From 3f5792544371ae4a4665863da3f7c461ac86c680 Mon Sep 17 00:00:00 2001 From: Brian Neumann-Fopiano Date: Fri, 11 Sep 2026 21:46:22 -0400 Subject: [PATCH] Consolidate source layout - Packages regrouped by domain: generation, world, pack, studio, structure, platform, command, localization, diagnostics - Forked VolmLib utilities dropped for the shared library: noise, stream, interpolation, hunk, matter - Engine-coupled stream decorators moved to generation.stream.GenerationStreams - Hunk section splits now run on the Iris burst pool through HunkBurst - Artifact entry lists, purity allowlists and shrink rules follow the new paths --- README.md | 2 +- .../nms/v26_2_R1/CustomBiomeSource.java | 32 +- .../DatapackStructureStateFilter.java | 8 +- .../nms/v26_2_R1/ImportedFeatureStage.java | 22 +- .../nms/v26_2_R1/IrisChunkGenerator.java | 56 +- .../bukkit}/nms/v26_2_R1/NMSBinding.java | 48 +- .../v26_2_R1/NativeStructurePoiUpdates.java | 2 +- .../NativeStructureWorldgenAccess.java | 2 +- .../nms/v26_2_R1/NmsGenerationHooks.java | 6 +- .../nms/v26_2_R1/NmsGenerationRegistry.java | 2 +- .../nms/v26_2_R1/NmsSavedTerrainCapture.java | 8 +- .../nms/v26_2_R1/NmsWorldLifecycle.java | 20 +- .../nms/v26_2_R1/VanillaStructureBiomes.java | 2 +- .../IrisChunkGeneratorHeightCacheTest.java | 12 +- .../NativeGenerationWriteGuardTest.java | 18 +- .../nativegen/NativeStructureFactoryTest.java | 4 +- ...tiveStructureOwnershipFingerprintTest.java | 12 +- .../NativeStructureOwnershipRecoveryTest.java | 14 +- ...ativeStructurePostProcessorEncaseTest.java | 8 +- ...iveStructurePostProcessorMonumentTest.java | 4 +- ...ucturePostProcessorSurfaceTerrainTest.java | 8 +- .../NativeStructureVolumeIndexTest.java | 8 +- .../nativegen/NativeTransitionColumnTest.java | 4 +- ...ustomBiomeSourceStructureContractTest.java | 6 +- ...IrisChunkGeneratorFailureContractTest.java | 2 +- ...nkGeneratorMonumentLocateContractTest.java | 2 +- .../IrisChunkGeneratorSpawnAdmissionTest.java | 16 +- .../NMSBindingDatapackStructureScopeTest.java | 10 +- .../NativeStructurePoiUpdatesTest.java | 2 +- .../NativeStructureWorldgenAccessTest.java | 6 +- .../nms/v26_2_R1/NmsChunkIOFlushTest.java | 2 +- .../nms/v26_2_R1/NmsChunkTaskPollingTest.java | 2 +- .../NmsEntitySpawnDifficultyTest.java | 2 +- .../NmsSavedTerrainCheckpointTest.java | 4 +- .../v26_2_R1/NmsSavedTerrainSnapshotTest.java | 4 +- .../NmsSavedTerrainWriteBarrierTest.java | 2 +- .../WorldgenTerrainHeightmapsTest.java | 2 +- ...terListPoolElementRuntimeContractTest.java | 6 +- .../src/main/java/art/arcane/iris/Iris.java | 156 +- .../java/art/arcane/iris/IrisBootstrap.java | 20 +- .../art/arcane/iris/IrisPluginLoader.java | 2 +- .../commands => command}/CommandDatapack.java | 15 +- .../CommandDeveloper.java | 51 +- .../commands => command}/CommandEdit.java | 17 +- .../commands => command}/CommandFind.java | 55 +- .../commands => command}/CommandIris.java | 59 +- .../commands => command}/CommandJigsaw.java | 75 +- .../CommandJigsawAdopt.java | 33 +- .../CommandJigsawConnector.java | 15 +- .../CommandJigsawExports.java | 20 +- .../CommandJigsawOpen.java | 34 +- .../CommandJigsawPiece.java | 29 +- .../CommandJigsawPool.java | 5 +- .../CommandJigsawPreview.java | 5 +- .../CommandJigsawRules.java | 9 +- .../CommandJigsawVariant.java | 13 +- .../CommandJigsawWorkcell.java | 9 +- .../commands => command}/CommandObject.java | 77 +- .../commands => command}/CommandPack.java | 31 +- .../commands => command}/CommandPregen.java | 19 +- .../{core/service => command}/CommandSVC.java | 24 +- .../CommandStructure.java | 59 +- .../commands => command}/CommandStudio.java | 87 +- .../commands => command}/CommandWhat.java | 37 +- .../ObjectPasteBounds.java | 8 +- .../PaperCommandRegistrar.java | 5 +- .../runtime}/IrisEngineSVC.java | 35 +- .../runtime}/IrisEngineStatus.java | 19 +- .../runtime}/IrisTelemetrySnapshot.java | 29 +- .../runtime}/IrisWorldPhaseLedger.java | 4 +- .../IrisIntegrationService.java | 9 +- .../IrisPapiExpansion.java | 2 +- .../IrisPapiInstaller.java | 2 +- .../IrisPapiListener.java | 2 +- .../IrisPapiPosition.java | 2 +- .../IrisPapiPregenView.java | 2 +- .../link => integration}/IrisPapiState.java | 2 +- .../IrisPapiWorldView.java | 2 +- .../datapack}/DatapackStructureScopeSVC.java | 20 +- .../bukkit/api}/IrisApiEventSVC.java | 12 +- .../bukkit/api}/IrisTerrainSVC.java | 30 +- .../bukkit}/terrain/IrisApiFaultGuard.java | 2 +- .../bukkit}/terrain/IrisColumnWalk.java | 2 +- .../bukkit}/terrain/IrisSampleLimits.java | 2 +- .../terrain/IrisSurfaceClassifier.java | 8 +- .../bukkit}/terrain/IrisWorldInfoFactory.java | 10 +- .../protocol}/IrisProtocolService.java | 19 +- .../{core => studio}/edit/BlockEditor.java | 2 +- .../edit/BukkitBlockEditor.java | 2 +- .../service => studio/edit}/EditSVC.java | 10 +- .../gui => studio/view}/BukkitGuiHost.java | 10 +- .../view}/BukkitVisionOverlay.java | 14 +- .../service => studio/wand}/WandSVC.java | 27 +- .../{core => studio}/wand/WandSelection.java | 4 +- .../BukkitWorldReconciler.java | 17 +- .../IrisFailClosedChunkGenerator.java | 2 +- .../IrisStartupAdmissionListener.java | 2 +- .../IrisWorldGeneratorResolver.java | 56 +- .../PaperWorldReplacementEntryListener.java | 2 +- .../PendingWorldDeleteQueue.java | 9 +- .../PendingWorldReplacementManager.java | 57 +- .../WorldReplacementProgress.java | 10 +- .../runtime/BukkitEnginePlatformHooks.java | 44 +- .../runtime/BukkitSavedTerrainCapture.java | 8 +- .../service => world/tree}/FellingRun.java | 8 +- .../tree}/RoutedBlockBreakEvent.java | 3 +- .../tree}/TreeFellerModel.java | 7 +- .../tree}/TreeFellerPresentation.java | 4 +- .../service => world/tree}/TreeFellerSVC.java | 19 +- .../tree}/TreeFellingRunner.java | 15 +- .../tree}/TreeProvenance.java | 20 +- .../iris/IrisApiServiceDiscoveryTest.java | 8 +- ...IrisBootstrapWorldStorageContractTest.java | 4 +- .../art/arcane/iris/IrisDiagnosticsTest.java | 10 +- .../CommandFindBiomeContractTest.java | 6 +- ...ommandIrisCreateOverwriteContractTest.java | 2 +- .../CommandIrisDownloadContractTest.java | 2 +- .../CommandIrisLoadWorldContractTest.java | 4 +- ...mmandIrisPackDimensionTypeHandlerTest.java | 2 +- ...CommandIrisRemovalCommandContractTest.java | 2 +- .../CommandJigsawContractTest.java | 54 +- .../CommandLanguageRoutingTest.java | 3 +- ...CommandObjectCustomBlockPlacementTest.java | 10 +- .../CommandObjectFluidHeightTest.java | 12 +- .../CommandObjectPasteRaycastTest.java | 2 +- .../CommandPackCompatTest.java | 10 +- .../CommandPackOptionalPackContractTest.java | 4 +- .../CommandPregenCompletionContractTest.java | 2 +- .../CommandSVCFindParsingTest.java | 18 +- .../CommandStudioCreationContractTest.java | 6 +- .../CommandWhatBiomeTest.java | 21 +- ...risStructureLocateCommandContractTest.java | 8 +- .../ObjectPasteBoundsTest.java | 6 +- .../PaperCommandRegistrarTest.java | 3 +- .../StudioScoreboardCommandTest.java | 2 +- .../IrisEngineLifecycleContractTest.java | 3 +- .../IrisEngineSVCUntrackedUnloadTest.java | 4 +- .../runtime}/IrisWorldPhaseLedgerTest.java | 2 +- .../FakeIrisTerrainService.java | 2 +- .../IrisIntegrationServiceTest.java | 6 +- .../IrisPapiExpansionTest.java | 2 +- .../IrisPapiListenerTest.java | 2 +- .../IrisPapiStateTest.java | 2 +- .../IrisPapiTestSupport.java | 2 +- .../IrisPlaceholderAbsenceTest.java | 10 +- .../DatapackStructureScopeSVCTest.java | 2 +- .../bukkit/api}/IrisTerrainSVCTest.java | 12 +- .../terrain/IrisApiFaultGuardTest.java | 2 +- .../bukkit}/terrain/IrisColumnWalkTest.java | 2 +- .../bukkit}/terrain/IrisSampleLimitsTest.java | 2 +- .../terrain/IrisSurfaceClassifierTest.java | 12 +- .../terrain/IrisWorldInfoFactoryTest.java | 2 +- .../IrisProtocolServiceCapabilitiesTest.java | 2 +- .../BukkitVisionOverlayFoliaContractTest.java | 8 +- .../service => studio/wand}/WandSVCTest.java | 4 +- .../wand/WandSelectionTest.java | 4 +- .../BukkitWorldReconcilerTest.java | 6 +- .../IrisStartupAdmissionListenerTest.java | 2 +- .../IrisWorldGeneratorResolverTest.java | 22 +- .../PendingWorldDeleteQueueTest.java | 2 +- .../PendingWorldReplacementAdmissionTest.java | 16 +- ...dingWorldReplacementManagerPolicyTest.java | 11 +- ...ingWorldReplacementThreadAffinityTest.java | 18 +- .../StudioRuntimeCleanupTest.java | 9 +- .../WorldReplacementProgressTest.java | 10 +- .../runtime/BukkitWorldBoundaryTest.java | 10 +- .../tree}/TreeFellerEventOrderTest.java | 3 +- .../tree}/TreeFellerPresentationTest.java | 2 +- .../tree}/TreeFellingRunnerPacingTest.java | 2 +- .../arcane/iris/client/IrisClientToasts.java | 2 +- .../art/arcane/iris/client/IrisPregenHud.java | 4 +- .../arcane/iris/client/IrisVisionScreen.java | 2 +- .../arcane/iris/client/IrisWhatOverlay.java | 2 +- .../client/mixin/IrisWorldOpenFlowsMixin.java | 2 +- adapters/fabric/build.gradle | 4 + adapters/forge/build.gradle | 4 + .../nativegen/NativeGenerationWriteGuard.java | 12 +- .../nativegen/NativeStructureFactory.java | 8 +- .../NativeStructureFoundationBuilder.java | 2 +- .../NativeStructureLocatePersistence.java | 6 +- .../NativeStructureOwnershipFingerprint.java | 8 +- .../NativeStructureOwnershipRecovery.java | 22 +- .../NativeStructurePostProcessor.java | 6 +- .../NativeStructureReferenceEnvelope.java | 4 +- .../NativeStructureReferenceRepair.java | 14 +- .../NativeStructureStartInjector.java | 16 +- .../NativeStructureSurfaceFitter.java | 6 +- .../NativeStructureSurfaceSupportBuilder.java | 2 +- .../NativeStructureTerrainIntegrator.java | 14 +- .../NativeStructureVerticalPlacer.java | 4 +- .../nativegen/NativeStructureVolumeIndex.java | 18 +- .../nativegen/NativeTransitionColumn.java | 2 +- .../iris/modded/IrisModdedBiomeSource.java | 26 +- .../iris/modded/IrisModdedChunkGenerator.java | 38 +- .../arcane/iris/modded/MainWorldService.java | 2 +- .../arcane/iris/modded/ModdedBiomeWriter.java | 16 +- .../iris/modded/ModdedBlockBreakHandler.java | 20 +- .../arcane/iris/modded/ModdedBlockBuffer.java | 2 +- .../iris/modded/ModdedBlockResolution.java | 2 +- .../arcane/iris/modded/ModdedDeathLoot.java | 6 +- .../iris/modded/ModdedDecoratorHooks.java | 6 +- .../iris/modded/ModdedDimensionManager.java | 10 +- .../iris/modded/ModdedDimensionMetadata.java | 16 +- .../iris/modded/ModdedDimensionStorage.java | 4 +- .../iris/modded/ModdedEngineBootstrap.java | 30 +- .../iris/modded/ModdedEngineEffects.java | 18 +- .../modded/ModdedEntityCommandRunner.java | 2 +- .../iris/modded/ModdedEntitySpawner.java | 14 +- .../iris/modded/ModdedForcedDatapack.java | 40 +- .../ModdedGenerationHistoryStorage.java | 26 +- .../modded/ModdedImportedFeatureStage.java | 22 +- .../art/arcane/iris/modded/ModdedIrisLog.java | 2 +- .../arcane/iris/modded/ModdedIrisSplash.java | 6 +- .../iris/modded/ModdedItemTranslator.java | 12 +- .../arcane/iris/modded/ModdedLootApplier.java | 18 +- .../modded/ModdedNativeStructureStage.java | 20 +- .../modded/ModdedNativeTerrainReceipts.java | 4 +- .../arcane/iris/modded/ModdedParityProbe.java | 14 +- .../iris/modded/ModdedProtocolHandler.java | 14 +- .../iris/modded/ModdedProtocolTransport.java | 2 +- .../iris/modded/ModdedRuntimeRegistry.java | 10 +- .../modded/ModdedSavedTerrainCapture.java | 4 +- .../iris/modded/ModdedSpawnTableMerger.java | 18 +- .../art/arcane/iris/modded/ModdedStartup.java | 12 +- .../arcane/iris/modded/ModdedStateMerger.java | 2 +- .../iris/modded/ModdedStateRotator.java | 4 +- .../ModdedStructureSetFrequencyOverrides.java | 4 +- .../arcane/iris/modded/ModdedTileData.java | 2 +- .../arcane/iris/modded/ModdedTileReader.java | 2 +- .../iris/modded/ModdedWorkspaceGenerator.java | 10 +- .../iris/modded/ModdedWorldEngines.java | 34 +- .../iris/modded/ModdedWorldManager.java | 40 +- .../arcane/iris/modded/ModdedWorldgenIds.java | 2 +- .../modded/WorldCheckDimensionContract.java | 4 +- .../iris/modded/WorldCheckPredicates.java | 2 +- .../iris/modded/WorldCheckStructureAudit.java | 6 +- .../arcane/iris/modded/api/IrisModdedAPI.java | 8 +- .../api/ModdedBlockPlacementContext.java | 2 +- .../api/ModdedCustomContentRegistry.java | 2 +- .../modded/command/IrisModdedCommands.java | 18 +- .../modded/command/ModdedCommandHelp.java | 4 +- .../command/ModdedCommandSuggestions.java | 20 +- .../command/ModdedDatapackCommands.java | 14 +- .../command/ModdedDeveloperCommands.java | 2 +- .../modded/command/ModdedDustRevealer.java | 16 +- .../modded/command/ModdedEditCommands.java | 12 +- .../iris/modded/command/ModdedGoldenHash.java | 10 +- .../iris/modded/command/ModdedGuiHost.java | 8 +- .../command/ModdedLanguageCommands.java | 2 +- .../modded/command/ModdedLocateCommands.java | 38 +- .../modded/command/ModdedObjectCommands.java | 22 +- .../modded/command/ModdedObjectPlacer.java | 8 +- .../modded/command/ModdedPackCommands.java | 14 +- .../modded/command/ModdedPregenBossBar.java | 10 +- .../modded/command/ModdedPregenCommands.java | 8 +- .../iris/modded/command/ModdedPregenJob.java | 20 +- .../modded/command/ModdedPregenMethod.java | 10 +- .../iris/modded/command/ModdedRegen.java | 14 +- .../command/ModdedStructureCommands.java | 22 +- .../modded/command/ModdedStudioCommands.java | 52 +- .../command/ModdedUnregisteredStructures.java | 12 +- .../modded/command/ModdedVisionOverlay.java | 12 +- .../modded/command/ModdedWandService.java | 4 +- .../modded/command/ModdedWhatCommands.java | 22 +- .../modded/command/ModdedWorldCommands.java | 12 +- .../localization/ModdedCommandMessages.java | 2 +- .../ModdedMessageContributor.java | 2 +- .../SerializableTerrainReceiptMixin.java | 2 +- .../service/ModdedChunkUpdateService.java | 14 +- .../ModdedEngineMaintenanceService.java | 12 +- .../service/ModdedEntitySpawnService.java | 4 +- .../service/ModdedPreservationService.java | 6 +- .../service/ModdedSettingsHotloadService.java | 2 +- .../service/ModdedStudioHotloadService.java | 22 +- .../service/ModdedTreeFellerService.java | 12 +- ....iris.localization.IrisMessageContributor} | 0 .../iris/client/IrisClientWireBoundsTest.java | 2 +- .../IrisTileAssemblerAdversarialTest.java | 2 +- .../client/IrisVisionTileRoundTripTest.java | 2 +- .../modded/IrisModdedStructureParityTest.java | 12 +- .../ModdedBlockResolutionContractTest.java | 6 +- .../modded/ModdedDimensionTypeParityTest.java | 18 +- .../ModdedEntitySpawnDifficultyTest.java | 4 +- .../modded/ModdedEntitySpawnerParityTest.java | 2 +- .../iris/modded/ModdedForcedDatapackTest.java | 14 +- .../ModdedGenerationHistoryStorageTest.java | 10 +- .../iris/modded/ModdedLootApplierTest.java | 4 +- ...ddedNativeStructureWorldgenAccessTest.java | 4 +- .../modded/ModdedSavedBiomeConsumersTest.java | 22 +- ...ddedSchedulerDownloadCancellationTest.java | 4 +- .../modded/ModdedSpawnerRarityParityTest.java | 12 +- ...dedStructureSetFrequencyOverridesTest.java | 4 +- .../modded/ModdedTileDataIdentityTest.java | 2 +- .../iris/modded/ModdedTileParityTest.java | 2 +- .../modded/ModdedWaterEntitySpawnTest.java | 8 +- .../SchemaBuilderPlatformIsolationTest.java | 14 +- .../command/IrisModdedBiomeCommandTest.java | 2 +- .../command/IrisModdedCommandParityTest.java | 8 +- .../IrisModdedStructureCommandTest.java | 4 +- .../command/ModdedLanguageCommandsTest.java | 2 +- .../ModdedMessageContributorTest.java | 4 +- .../service/ModdedChunkUpdateServiceTest.java | 8 +- .../ModdedStudioHotloadServiceTest.java | 2 +- .../service/ModdedWorldBoundaryTest.java | 4 +- .../NativeStructureReferenceRepairTest.java | 36 +- .../NativeStructureVacuumParityTest.java | 4 +- adapters/neoforge/build.gradle | 4 + build.gradle | 44 +- .../buildtools/GenerationRevisionScope.java | 70 +- .../test/java/BukkitArtifactVerifierTest.java | 2 +- .../java/GenerationRevisionScopeTest.java | 12 +- .../test/java/ModdedArtifactVerifierTest.java | 24 +- core/agent/build.gradle | 4 +- .../{util => platform}/agent/Installer.java | 2 +- .../agent/ClassLoaderCloseDeferralTest.java | 2 +- core/build.gradle | 54 +- core/minecraft-purity-allowlist.txt | 12 +- core/purity-allowlist.txt | 401 ++- .../data/CraftEngineDataProviderTest.java | 14 +- .../data/ItemAdderDataProviderTest.java | 8 +- .../data/OraxenDataProviderTest.java | 8 +- .../director => command}/DirectorContext.java | 4 +- .../DirectorContextHandler.java | 6 +- .../DirectorExecutor.java | 14 +- .../DirectorParameterHandler.java | 2 +- .../director => command}/DirectorSystem.java | 36 +- .../object => command}/IrisCommand.java | 29 +- .../IrisCommandRegistry.java | 34 +- .../context/BiomeContextHandler.java | 18 +- .../context/DimensionContextHandler.java | 16 +- .../context/GeneratorContextHandler.java | 18 +- .../context/RegionContextHandler.java | 18 +- .../context/VectorContextHandler.java | 74 +- .../context/WorldContextHandler.java | 6 +- .../handlers/BiomeHandler.java | 6 +- .../handlers/BlockVectorHandler.java | 6 +- .../handlers/DataVersionHandler.java | 4 +- .../handlers/DimensionHandler.java | 10 +- .../handlers/EntityHandler.java | 6 +- .../handlers/GeneratorHandler.java | 6 +- .../handlers/PlayerHandler.java | 2 +- .../handlers/RegionHandler.java | 6 +- .../handlers/VectorHandler.java | 6 +- .../handlers/WorldHandler.java | 2 +- .../specialhandlers/HydrologyTypeHandler.java | 10 +- .../specialhandlers/IrisStructureHandler.java | 8 +- .../LocatableObjectHandler.java | 6 +- .../NullableDimensionHandler.java | 8 +- .../NullablePlayerHandler.java | 4 +- .../specialhandlers/ObjectHandler.java | 8 +- .../specialhandlers/ObjectScaleHandler.java | 4 +- .../specialhandlers/ObjectTargetHandler.java | 8 +- .../ReachableBiomeHandler.java | 8 +- .../ReachableRegionHandler.java | 8 +- .../specialhandlers/RegistrantHandler.java | 10 +- .../specialhandlers/StructureHandler.java | 18 +- .../{core => configuration}/IrisSettings.java | 9 +- .../SettingsHotloadWatch.java | 4 +- .../iris/core/nms/container/BlockPos.java | 14 - .../service => diagnostics}/LogFilterSVC.java | 4 +- .../{core/report => diagnostics}/Report.java | 2 +- .../report => diagnostics}/ReportType.java | 2 +- .../splash/IrisSplashComposer.java | 2 +- .../splash/IrisSplashPackScanner.java | 4 +- .../splash/IrisSplashRenderer.java | 2 +- .../engine/hydrology/OutletCourseKey.java | 4 - .../runtime/IrisHydrologyNaturalSample.java | 12 - .../art/arcane/iris/engine/object/IRare.java | 115 - .../object/IrisBiomeCustomCategory.java | 75 - .../engine/object/IrisCaveAnchorMode.java | 21 - .../engine/object/IrisCaveFieldModule.java | 36 - .../iris/engine/object/IrisCaveProfile.java | 148 -- .../object/IrisCoastalRiverGrottoConfig.java | 53 - .../arcane/iris/engine/object/IrisCoral.java | 238 -- .../iris/engine/object/IrisCoralForm.java | 39 - .../iris/engine/object/IrisCrystal.java | 219 -- .../engine/object/IrisCrystalSurface.java | 33 - .../engine/object/IrisDeepFluidConfig.java | 71 - .../engine/object/IrisDepositBiomeScope.java | 11 - .../object/IrisDepositHeightDistribution.java | 13 - .../object/IrisDepositPlacementScope.java | 13 - .../iris/engine/object/IrisDepositShape.java | 13 - .../iris/engine/object/IrisFormation.java | 293 --- .../iris/engine/object/IrisFormationForm.java | 45 - .../engine/object/IrisFormationProfile.java | 35 - .../arcane/iris/engine/object/IrisFungus.java | 251 -- .../engine/object/IrisFungusCapShape.java | 35 - .../engine/object/IrisGrottoPoolLevel.java | 9 - .../iris/engine/object/IrisHydrology.java | 25 - .../iris/engine/object/IrisImageMapAlpha.java | 11 - .../object/IrisImageMapApplication.java | 13 - .../engine/object/IrisImageMapBinding.java | 29 - .../iris/engine/object/IrisImageMapMask.java | 33 - .../object/IrisImageMapMaskOperation.java | 12 - .../engine/object/IrisImageMapOrigin.java | 23 - .../object/IrisImageMapOutOfBounds.java | 12 - .../engine/object/IrisImageMapRotation.java | 11 - .../engine/object/IrisImageMapSampling.java | 10 - .../iris/engine/object/IrisImageMapType.java | 13 - .../object/IrisImageMapUnknownColor.java | 10 - .../object/IrisInlandRiverGrottoConfig.java | 40 - .../object/IrisJigsawBranchFailurePolicy.java | 12 - .../object/IrisJigsawCompatibility.java | 12 - .../engine/object/IrisJigsawHeightmap.java | 30 - .../object/IrisJigsawLiquidSettings.java | 15 - .../iris/engine/object/IrisJigsawMode.java | 12 - .../engine/object/IrisJigsawThemeSet.java | 24 - .../engine/object/IrisJigsawWorkcell.java | 40 - .../engine/object/IrisNativeStructure.java | 29 - .../engine/object/IrisRiverBedProfile.java | 15 - .../engine/object/IrisRiverBlendStyle.java | 17 - .../object/IrisRiverChannelShapeConfig.java | 74 - .../object/IrisRiverDropShapeConfig.java | 54 - .../object/IrisRiverExcavationConfig.java | 29 - .../object/IrisRiverGeometryConfig.java | 30 - .../object/IrisRiverMaterialConfig.java | 25 - .../engine/object/IrisRiverMeanderConfig.java | 49 - .../engine/object/IrisRiverMouthConfig.java | 49 - .../engine/object/IrisRiverPlacementMode.java | 17 - .../iris/engine/object/IrisRiverPolicy.java | 176 -- .../iris/engine/object/IrisRiverProfile.java | 21 - .../object/IrisRiverRegionalConfig.java | 55 - .../engine/object/IrisRiverRoutingConfig.java | 91 - .../engine/object/IrisRiverRoutingMode.java | 15 - .../arcane/iris/engine/object/IrisRuin.java | 207 -- .../iris/engine/object/IrisRuinDecorator.java | 58 - .../iris/engine/object/IrisRuinForm.java | 35 - .../iris/engine/object/IrisSeaCaveConfig.java | 42 - .../iris/engine/object/IrisStiltSettings.java | 46 - .../object/IrisStructureAnchorMode.java | 34 - .../engine/object/IrisStructurePlacement.java | 171 -- .../object/IrisStructureStiltSettings.java | 32 - .../object/IrisStructureTerrainMode.java | 27 - .../engine/object/IrisSurfacePoolConfig.java | 54 - .../object/IrisSurfaceRiverBankConfig.java | 56 - .../object/IrisSurfaceRiverBedConfig.java | 28 - .../object/IrisSurfaceRiverChannelConfig.java | 75 - .../object/IrisSurfaceRiverErosionConfig.java | 53 - .../object/IrisSurfaceRiverFlowConfig.java | 44 - .../object/IrisSurfaceRiverPondConfig.java | 38 - .../object/IrisSurfaceRiverPondsConfig.java | 18 - .../object/IrisSurfaceRiverShapeConfig.java | 74 - .../object/IrisSurfaceRiverSourceConfig.java | 34 - .../engine/object/IrisTreeAzimuthMode.java | 45 - .../object/IrisTreeBranchProbability.java | 47 - .../iris/engine/object/IrisTreeBranches.java | 131 - .../object/IrisTreeDecoratorTarget.java | 45 - .../iris/engine/object/IrisTreeFunction.java | 47 - .../iris/engine/object/IrisTreeProfile.java | 53 - .../object/IrisUndergroundRiverConfig.java | 67 - .../IrisUndergroundRiverSourceConfig.java | 29 - .../engine/object/IrisVacuumSettings.java | 39 - .../IrisVanillaStructureAdjustment.java | 68 - .../object/NativeStructureSuppression.java | 12 - .../iris/engine/object/ObjectPlaceMode.java | 108 - .../iris/engine/object/annotations/Desc.java | 33 - .../biome}/FloatingBottomPaletteMode.java | 12 +- .../biome}/FloatingIslandBoundarySampler.java | 10 +- .../biome}/FloatingIslandEdgeProfile.java | 4 +- .../biome}/FloatingIslandSample.java | 10 +- .../biome}/IrisBiome.java | 150 +- .../biome}/IrisBiomeColorRenderer.java | 9 +- .../biome}/IrisBiomeCustom.java | 54 +- .../biome/IrisBiomeCustomCategory.java | 75 + .../biome}/IrisBiomeCustomParticle.java | 22 +- .../biome}/IrisBiomeCustomPrecipType.java | 12 +- .../biome}/IrisBiomeCustomSpawn.java | 30 +- .../biome}/IrisBiomeCustomSpawnType.java | 22 +- .../biome}/IrisBiomeDerivatives.java | 6 +- .../biome}/IrisBiomeGenLinks.java | 6 +- .../biome}/IrisBiomeGeneratorLink.java | 32 +- .../biome}/IrisBiomeLayerGenerator.java | 23 +- .../biome}/IrisBiomeOres.java | 12 +- .../biome}/IrisBiomePaletteLayer.java | 45 +- .../biome}/IrisCustomBiomeAliasResolver.java | 6 +- .../biome}/IrisFloatingChildBiomes.java | 125 +- .../biome}/IrisVanillaBiomeTags.java | 2 +- .../biome}/TopShapeMode.java | 12 +- .../common/data => generation/block}/B.java | 2 +- .../block}/BlockDataMergeSupport.java | 4 +- .../block}/BoundBlockState.java | 2 +- .../block}/DataProvider.java | 4 +- .../block}/IrisBlockData.java | 43 +- .../block}/IrisCustomData.java | 4 +- .../block}/LegacyTileData.java | 10 +- .../object => generation/block}/TileData.java | 4 +- .../data => generation/block}/VectorMap.java | 4 +- .../cache/AtomicCache.java | 2 +- .../data => generation}/cache/Cache.java | 2 +- .../cache/LazyBoundedCache.java | 2 +- .../cave}/CarveResult.java | 2 +- .../cave}/CarvingMode.java | 12 +- .../cave}/CaveResult.java | 2 +- .../generation/cave/IrisCaveAnchorMode.java | 21 + .../generation/cave/IrisCaveFieldModule.java | 40 + .../iris/generation/cave/IrisCaveProfile.java | 154 ++ .../cave}/IrisCaveProfileSampler.java | 10 +- .../chunk}/ChunkBiomeHunkView.java | 6 +- .../chunk}/ChunkDataHunkHolder.java | 10 +- .../chunk}/ChunkDataHunkView.java | 6 +- .../chunk}/ChunkHunkView.java | 6 +- .../chunk/LinkedTerrainChunk.java | 4 +- .../chunk/TerrainChunk.java | 2 +- .../chunk}/TerrainChunkBiomeHunkView.java | 8 +- .../concurrent}/BurstExecutor.java | 2 +- .../concurrent}/GridLock.java | 2 +- .../concurrent}/HyperLock.java | 2 +- .../concurrent}/MultiBurst.java | 12 +- .../context/ChunkContext.java | 24 +- .../context/ChunkedDataCache.java | 6 +- .../context/ChunkedDoubleDataCache.java | 8 +- .../context/IrisContext.java | 12 +- .../decoration}/DecoratorCore.java | 15 +- .../decoration}/DecoratorPlatformHooks.java | 6 +- .../decoration}/FloatingDecorator.java | 10 +- .../decoration}/IrisCeilingDecorator.java | 14 +- .../decoration}/IrisDecorationPart.java | 16 +- .../decoration}/IrisDecorationStep.java | 28 +- .../decoration}/IrisDecorator.java | 64 +- .../decoration/IrisDepositBiomeScope.java | 11 + .../decoration}/IrisDepositGenerator.java | 74 +- .../IrisDepositHeightDistribution.java | 13 + .../decoration/IrisDepositPlacementScope.java | 13 + .../decoration/IrisDepositShape.java | 13 + .../decoration}/IrisDepositVariant.java | 26 +- .../decoration}/IrisEngineDecorator.java | 9 +- .../decoration}/IrisOreGenerator.java | 31 +- .../decoration}/IrisOreGeneratorBounds.java | 4 +- .../decoration}/IrisProceduralBlocks.java | 13 +- .../decoration}/IrisProceduralObjects.java | 29 +- .../decoration}/IrisProceduralPlacement.java | 7 +- .../decoration}/IrisSeaFloorDecorator.java | 10 +- .../decoration}/IrisSeaSurfaceDecorator.java | 10 +- .../decoration}/IrisShoreLineDecorator.java | 12 +- .../decoration}/IrisSpeleothems.java | 7 +- .../decoration/IrisStiltSettings.java | 48 + .../decoration}/IrisSugarCane.java | 16 +- .../decoration}/IrisSurface.java | 16 +- .../decoration}/IrisSurfaceDecorator.java | 15 +- .../decoration/IrisVacuumSettings.java | 39 + .../decoration}/coral/CoralCanvas.java | 2 +- .../decoration}/coral/CoralGenerator.java | 13 +- .../decoration/coral/IrisCoral.java | 249 ++ .../coral}/IrisCoralBranchAzimuth.java | 12 +- .../decoration/coral/IrisCoralForm.java | 39 + .../crystal/CrystalBaseBuilder.java | 5 +- .../decoration}/crystal/CrystalCanvas.java | 4 +- .../decoration}/crystal/CrystalGenerator.java | 11 +- .../decoration}/crystal/CrystalGeometry.java | 3 +- .../decoration}/crystal/CrystalRole.java | 2 +- .../crystal/CrystalShardBuilder.java | 4 +- .../decoration/crystal/IrisCrystal.java | 230 ++ .../crystal}/IrisCrystalDistribution.java | 10 +- .../crystal/IrisCrystalSurface.java | 33 + .../formation/FormationBlockResolver.java | 11 +- .../formation/FormationCanvas.java | 4 +- .../formation/FormationGenerator.java | 11 +- .../formation/FormationProfiles.java | 3 +- .../formation/FormationShapeBuilder.java | 7 +- .../decoration/formation/IrisFormation.java | 304 +++ .../formation/IrisFormationForm.java | 45 + .../formation/IrisFormationProfile.java | 35 + .../decoration/fungus}/FungusCapBuilder.java | 12 +- .../decoration/fungus}/FungusCellRole.java | 2 +- .../decoration/fungus}/FungusGenerator.java | 11 +- .../fungus}/FungusShelfBuilder.java | 7 +- .../decoration/fungus}/FungusStemBuilder.java | 7 +- .../decoration/fungus/IrisFungus.java | 262 ++ .../decoration/fungus/IrisFungusCapShape.java | 35 + .../generation/decoration/ruin/IrisRuin.java | 218 ++ .../decoration/ruin/IrisRuinDecorator.java | 60 + .../ruin}/IrisRuinDecoratorTarget.java | 12 +- .../decoration/ruin/IrisRuinForm.java | 35 + .../decoration}/ruin/RuinBlockCanvas.java | 4 +- .../ruin/RuinDecoratorApplier.java | 9 +- .../decoration}/ruin/RuinGenerator.java | 15 +- .../decoration}/ruin/RuinShapes.java | 6 +- .../decoration/tree}/IrisProceduralTree.java | 157 +- .../decoration/tree}/IrisTree.java | 16 +- .../decoration/tree/IrisTreeAzimuthMode.java | 45 + .../tree/IrisTreeBranchProbability.java | 47 + .../decoration/tree/IrisTreeBranches.java | 131 + .../decoration/tree}/IrisTreeCanopy.java | 30 +- .../decoration/tree}/IrisTreeDecorator.java | 30 +- .../tree/IrisTreeDecoratorTarget.java | 45 + .../decoration/tree/IrisTreeFunction.java | 47 + .../decoration/tree}/IrisTreeLayer.java | 14 +- .../decoration/tree}/IrisTreeLeafMode.java | 24 +- .../decoration/tree}/IrisTreeModes.java | 10 +- .../decoration/tree/IrisTreeProfile.java | 53 + .../decoration/tree}/IrisTreeRootStyle.java | 12 +- .../tree}/IrisTreeSecondaryLeaf.java | 18 +- .../decoration/tree}/IrisTreeSettings.java | 14 +- .../decoration/tree}/IrisTreeSize.java | 14 +- .../decoration/tree}/IrisTreeSubBranches.java | 28 +- .../tree/ProceduralTreeGenerator.java | 9 +- .../decoration}/tree/TreeBlockCanvas.java | 2 +- .../decoration/tree}/TreeBlockMaterial.java | 2 +- .../decoration}/tree/TreeBlockResolver.java | 13 +- .../decoration}/tree/TreeCanopyBuilder.java | 11 +- .../tree/TreeDecoratorApplier.java | 6 +- .../decoration}/tree/TreeFunctions.java | 6 +- .../decoration}/tree/TreePlausibility.java | 5 +- .../decoration}/tree/TreeProfiles.java | 3 +- .../decoration}/tree/TreeRootBuilder.java | 4 +- .../decoration}/tree/TreeSupport.java | 2 +- .../decoration}/tree/TreeTrunkBuilder.java | 6 +- .../geometry}/AxisAlignedBB.java | 4 +- .../geometry}/IrisBlockVector.java | 2 +- .../geometry}/IrisVector.java | 2 +- .../hydrology/CaveCandidateBounds.java | 4 +- .../hydrology/CaveCandidateBuilder.java | 20 +- .../hydrology/CaveCandidateSpanBuilder.java | 6 +- .../hydrology/CaveCourseGraph.java | 2 +- .../hydrology/CaveSpanSet.java | 2 +- .../hydrology/CaveSurfaceComposition.java | 4 +- .../hydrology/CaveSurfaceOpening.java | 4 +- .../hydrology/CaveYSpan.java | 2 +- .../hydrology/CompiledGraph.java | 2 +- .../hydrology/CourseEdgeKey.java | 2 +- .../hydrology/CrossTileBlockers.java | 2 +- .../hydrology/CrossTileDraftAdmission.java | 2 +- .../CrossTilePublicationAdmission.java | 2 +- .../hydrology/CrossTileRejectedCourse.java | 2 +- .../hydrology/CrossTileRejectionKey.java | 2 +- .../hydrology/CrossTileResolution.java | 2 +- .../hydrology/CrossTileResolutionContext.java | 2 +- .../hydrology/CrossTileResolvedOwner.java | 2 +- .../hydrology/DraftPhase.java | 2 +- .../hydrology/DraftProfile.java | 2 +- .../hydrology/DrainageEdge.java | 2 +- .../hydrology/DrainageNode.java | 2 +- .../FootprintCenterlineProjection.java | 2 +- .../hydrology/FootprintCourseRasterKey.java | 2 +- .../hydrology/FootprintFeatureKey.java | 2 +- .../hydrology/FootprintLayerShape.java | 2 +- .../hydrology/FootprintMutableColumn.java | 2 +- .../hydrology/FootprintRasterStencil.java | 2 +- .../FootprintRasterStencilBuilder.java | 2 +- .../hydrology/FootprintRasterStencilKey.java | 2 +- .../FootprintValidationCourseRaster.java | 4 +- .../hydrology/HydraulicChannelProfile.java | 2 +- .../hydrology/HydraulicSegment.java | 2 +- .../hydrology/HydrologyCandidateKind.java | 2 +- .../HydrologyCandidateRejection.java | 2 +- .../hydrology/HydrologyCaveCourseFilter.java | 20 +- .../HydrologyCaveVoxelViewFactory.java | 4 +- .../hydrology/HydrologyChannelGeometry.java | 4 +- .../hydrology/HydrologyColumnLayer.java | 2 +- .../hydrology/HydrologyColumnSample.java | 4 +- .../hydrology/HydrologyColumnSnapshot.java | 2 +- .../hydrology/HydrologyCoursePath.java | 2 +- .../HydrologyCrossTileCaveAdmission.java | 6 +- .../hydrology/HydrologyCrossTileResolver.java | 14 +- .../HydrologyCrossTileSurfaceAdmission.java | 2 +- .../HydrologyDiagnosticCandidate.java | 2 +- .../HydrologyDiagnosticRenderSample.java | 2 +- .../hydrology/HydrologyFeatureQuery.java | 2 +- .../hydrology/HydrologyFeatureRef.java | 2 +- .../HydrologyFeatureSitePlanner.java | 12 +- .../hydrology/HydrologyFeatureType.java | 2 +- .../hydrology/HydrologyFootprintCompiler.java | 12 +- .../HydrologyFootprintRasterizer.java | 2 +- .../hydrology/HydrologyForkJoin.java | 2 +- .../hydrology/HydrologyGeometrySampler.java | 2 +- .../hydrology/HydrologyGridNode.java | 2 +- .../hydrology/HydrologyGridOffset.java | 2 +- .../hydrology/HydrologyHash.java | 2 +- .../HydrologyNaturalTerrainSampler.java | 2 +- .../HydrologyObservedPlannedSurface.java | 2 +- .../HydrologyOceanBoundaryRefiner.java | 2 +- .../hydrology/HydrologyOceanReceiver.java | 2 +- .../hydrology/HydrologyOutletPlanner.java | 4 +- .../hydrology/HydrologyOwnerDraft.java | 2 +- .../hydrology/HydrologyPlanner.java | 12 +- .../hydrology/HydrologyPlannerSettings.java | 4 +- .../hydrology/HydrologyPoint.java | 2 +- .../HydrologyRegionalConnectivity.java | 6 +- .../HydrologyRegionalCourseGraph.java | 2 +- .../hydrology/HydrologyRegionalFalls.java | 20 +- .../hydrology/HydrologyRegionalFlow.java | 2 +- .../hydrology/HydrologyRegionalGraph.java | 2 +- .../HydrologyRegionalHydraulics.java | 4 +- .../HydrologyRegionalMorphology.java | 2 +- .../hydrology/HydrologyRegionalNetwork.java | 4 +- .../hydrology/HydrologyRegionalPlanner.java | 22 +- .../HydrologyRegionalProtection.java | 10 +- .../hydrology/HydrologyRegionalRoute.java | 4 +- .../HydrologyRegionalSourceTrials.java | 2 +- .../HydrologyRegionalTerrainRefiner.java | 2 +- .../HydrologyRegionalTributaries.java | 10 +- .../hydrology/HydrologyRenderSample.java | 2 +- .../hydrology/HydrologyRouteGeometry.java | 2 +- .../hydrology/HydrologyRoutePath.java | 2 +- .../hydrology/HydrologyRoutingPlan.java | 2 +- .../HydrologyRoutingTerrainSampler.java | 2 +- .../hydrology/HydrologySampledGrid.java | 2 +- .../hydrology/HydrologySegmentBuilder.java | 2 +- .../hydrology/HydrologySourcePlanner.java | 4 +- .../hydrology/HydrologySurfaceBudgets.java | 4 +- .../HydrologySurfaceCoursePlanner.java | 8 +- .../HydrologySurfaceDropBankBounds.java | 2 +- .../hydrology/HydrologySurfaceDropRaster.java | 6 +- .../hydrology/HydrologySurfaceProfiles.java | 6 +- .../HydrologyTerrainCaveVoxelView.java | 8 +- .../hydrology/HydrologyTerrainSample.java | 4 +- .../hydrology/HydrologyTerrainSampler.java | 2 +- .../hydrology/HydrologyTile.java | 8 +- .../hydrology/HydrologyTileCache.java | 4 +- .../hydrology/HydrologyTileKey.java | 2 +- .../hydrology/HydrologyTributaryPlanner.java | 6 +- .../HydrologyUndergroundCoursePlanner.java | 2 +- .../IrisCoastalRiverGrottoConfig.java | 53 + .../hydrology/IrisDeepFluidConfig.java | 76 + .../hydrology/IrisGrottoPoolLevel.java | 9 + .../generation/hydrology/IrisHydrology.java | 25 + .../IrisInlandRiverGrottoConfig.java | 40 + .../hydrology}/IrisRiverBank3DConfig.java | 27 +- .../hydrology/IrisRiverBedProfile.java | 15 + .../hydrology/IrisRiverBlendStyle.java | 17 + .../IrisRiverChannelShapeConfig.java | 74 + .../hydrology/IrisRiverDropShapeConfig.java | 54 + .../hydrology/IrisRiverExcavationConfig.java | 29 + .../hydrology/IrisRiverGeometryConfig.java | 30 + .../hydrology}/IrisRiverGrottoConfig.java | 10 +- .../hydrology}/IrisRiverHydrology.java | 22 +- .../hydrology}/IrisRiverInlandOutlet.java | 2 +- .../hydrology/IrisRiverMaterialConfig.java | 27 + .../hydrology/IrisRiverMeanderConfig.java | 49 + .../hydrology/IrisRiverMouthConfig.java | 49 + .../hydrology/IrisRiverPlacementMode.java | 17 + .../generation/hydrology/IrisRiverPolicy.java | 179 ++ .../hydrology/IrisRiverProfile.java | 23 + .../hydrology/IrisRiverRegionalConfig.java | 55 + .../hydrology/IrisRiverRoutingConfig.java | 91 + .../hydrology/IrisRiverRoutingMode.java | 15 + .../hydrology/IrisSeaCaveConfig.java | 42 + .../hydrology/IrisSurfacePoolConfig.java | 57 + .../hydrology/IrisSurfaceRiverBankConfig.java | 57 + .../hydrology/IrisSurfaceRiverBedConfig.java | 30 + .../IrisSurfaceRiverChannelConfig.java | 79 + .../hydrology}/IrisSurfaceRiverConfig.java | 24 +- .../IrisSurfaceRiverErosionConfig.java | 53 + .../hydrology/IrisSurfaceRiverFlowConfig.java | 44 + .../hydrology/IrisSurfaceRiverPondConfig.java | 38 + .../IrisSurfaceRiverPondsConfig.java | 18 + .../IrisSurfaceRiverShapeConfig.java | 74 + .../IrisSurfaceRiverSourceConfig.java | 34 + .../hydrology/IrisUndergroundRiverConfig.java | 71 + .../IrisUndergroundRiverSourceConfig.java | 29 + .../hydrology/MinimumLandHeightKey.java | 2 +- .../hydrology/OutletCandidate.java | 2 +- .../generation/hydrology/OutletCourseKey.java | 4 + .../hydrology/RefinedEdgeKey.java | 2 +- .../hydrology/RiverCourse.java | 2 +- .../hydrology/RiverCourseType.java | 2 +- .../hydrology/RiverFootprint.java | 2 +- .../hydrology/RiverOutlet.java | 2 +- .../hydrology/RouteCandidate.java | 2 +- .../hydrology/RouteDirection.java | 2 +- .../hydrology/RoutePosition.java | 2 +- .../hydrology/RouteTerrainEstimate.java | 2 +- .../hydrology/RoutingContextLoad.java | 2 +- .../hydrology/RoutingQueueEntry.java | 2 +- .../hydrology/SourceAdmissionSelection.java | 2 +- .../hydrology/SourceCandidate.java | 2 +- .../hydrology/SourceRoutingContext.java | 2 +- .../hydrology/SourceSelection.java | 2 +- .../hydrology/StudioHydrologyTileStore.java | 14 +- .../hydrology/SurfaceCourseDraft.java | 2 +- .../hydrology/SurfaceRouteKey.java | 2 +- .../hydrology/UndergroundCourseDraft.java | 2 +- .../hydrology/UndergroundSegmentCapKey.java | 2 +- .../hydrology/cave/CaveBoundaryResult.java | 2 +- .../hydrology/cave/CaveCachedValidation.java | 2 +- .../hydrology/cave/CaveClaimGroup.java | 2 +- .../hydrology/cave/CaveComponentResult.java | 2 +- .../hydrology/cave/CaveGrottoResult.java | 2 +- .../cave/CaveIndependentDecision.java | 2 +- .../hydrology/cave/CavePathResult.java | 2 +- .../hydrology/cave/CavePosition.java | 2 +- .../hydrology/cave/CavePositionIndex.java | 2 +- .../cave/CaveSurfaceObservations.java | 4 +- .../hydrology/cave/CaveValidationBatch.java | 2 +- .../hydrology/cave/CaveViewObservations.java | 2 +- .../hydrology/cave/CaveVoxel.java | 2 +- .../hydrology/cave/CaveVoxelPrecondition.java | 2 +- .../hydrology/cave/CaveVoxelView.java | 2 +- .../hydrology/cave/HydrologyCaveAction.java | 2 +- .../cave/HydrologyCaveCandidate.java | 2 +- .../hydrology/cave/HydrologyCaveCell.java | 2 +- .../cave/HydrologyCaveChamberPlanner.java | 2 +- .../cave/HydrologyCaveConflictPolicy.java | 2 +- .../cave/HydrologyCaveContainmentPlanner.java | 4 +- .../cave/HydrologyCaveFluidPolicy.java | 2 +- .../cave/HydrologyCaveGrottoShape.java | 2 +- .../hydrology/cave/HydrologyCaveMode.java | 2 +- .../hydrology/cave/HydrologyCavePlan.java | 2 +- .../cave/HydrologyCavePlannerSettings.java | 2 +- .../cave/HydrologyCavePlanningResult.java | 2 +- .../cave/HydrologyCaveRejection.java | 2 +- .../hydrology/cave/HydrologyCaveSource.java | 2 +- .../hydrology/cave/HydrologyCaveStorage.java | 2 +- .../cave/RecordingCaveVoxelView.java | 2 +- .../policy/EffectiveRiverPolicy.java | 6 +- .../hydrology/policy/RiverConfinement.java | 2 +- .../hydrology/policy/RiverPolicyResolver.java | 18 +- .../hydrology/policy/SurfaceRiverPolicy.java | 2 +- .../runtime/HydrologyFeatureSearch.java | 4 +- .../runtime/HydrologyFeatureSearchBounds.java | 2 +- .../IrisHydrologyNaturalHeightDescriber.java | 2 +- .../IrisHydrologyNaturalHeightProvider.java | 2 +- .../IrisHydrologyNaturalOceanClassifier.java | 2 +- .../runtime/IrisHydrologyNaturalSample.java | 12 + .../IrisHydrologyNaturalSampleProvider.java | 2 +- .../IrisHydrologyRoutingTerrainSampler.java | 14 +- .../runtime/IrisHydrologyRuntime.java | 74 +- .../runtime/IrisHydrologyRuntimeContext.java | 8 +- .../IrisHydrologySettingsCompiler.java | 70 +- .../hydrology/surface/ChannelProfile.java | 2 +- .../surface/ChannelProfileBuilder.java | 10 +- .../hydrology/surface/ErosionField.java | 6 +- .../surface/ErosionFieldCompiler.java | 20 +- .../hydrology/surface/SurfaceBankSupport.java | 8 +- .../hydrology/surface/SurfaceBendProfile.java | 2 +- .../hydrology/surface/SurfaceBounds.java | 2 +- .../surface/SurfaceCellAdmission.java | 4 +- .../hydrology/surface/SurfaceCenterline.java | 4 +- .../hydrology/surface/SurfaceColumn.java | 4 +- .../surface/SurfaceCourseBuilder.java | 20 +- .../surface/SurfaceCourseResult.java | 8 +- .../surface/SurfaceExcavationMetrics.java | 16 +- .../hydrology/surface/SurfaceFeatureRefs.java | 10 +- .../hydrology/surface/SurfaceFootprint.java | 4 +- .../surface/SurfaceFootprintCompiler.java | 36 +- .../hydrology/surface/SurfaceLayerColumn.java | 6 +- .../hydrology/surface/SurfaceNoise.java | 4 +- .../surface/SurfaceRasterContext.java | 4 +- .../hydrology/surface/SurfaceRole.java | 2 +- .../hydrology/surface/SurfaceRunBoundary.java | 4 +- .../surface/SurfaceSegmentLabeler.java | 14 +- .../hydrology/surface/SurfaceTerminal.java | 2 +- .../hydrology/surface/ValleyProfile.java | 4 +- .../surface/ValleyProfileSolver.java | 10 +- .../image/CompiledIrisImageMap.java | 7 +- .../image}/IrisImage.java | 4 +- .../image}/IrisImageColorMode.java | 2 +- .../image}/IrisImageMap.java | 64 +- .../generation/image/IrisImageMapAlpha.java | 11 + .../image/IrisImageMapApplication.java | 13 + .../generation/image/IrisImageMapBinding.java | 29 + .../image/IrisImageMapCompiler.java | 11 +- .../generation/image/IrisImageMapMask.java | 33 + .../image/IrisImageMapMaskOperation.java | 12 + .../image/IrisImageMapMaskSampler.java | 4 +- .../generation/image/IrisImageMapOrigin.java | 23 + .../image/IrisImageMapOutOfBounds.java | 12 + .../image/IrisImageMapRotation.java | 11 + .../image/IrisImageMapRuntime.java | 22 +- .../image/IrisImageMapSampling.java | 10 + .../image/IrisImageMapSourceMetadata.java | 3 +- .../generation/image/IrisImageMapType.java | 13 + .../image/IrisImageMapUnknownColor.java | 10 + .../IrisImageMapValidationException.java | 2 +- .../locator}/HintedLocator.java | 28 +- .../locator}/HistoryAwareLocator.java | 15 +- .../locator}/Locator.java | 34 +- .../locator}/LocatorCanceller.java | 2 +- .../mantle}/CarveOrphanSweep.java | 2 +- .../mantle}/CaveCarveScratch.java | 2 +- .../mantle}/CaveFieldModuleState.java | 8 +- .../mantle}/CaveFluidSupportPlan.java | 2 +- .../CaveObjectPlacementTransaction.java | 18 +- .../mantle/ComponentFlag.java | 2 +- .../mantle/EngineMantle.java | 41 +- .../mantle}/FloatingIslandSampleResolver.java | 17 +- .../FloatingObjectPlacementTransaction.java | 14 +- .../mantle}/GoldenDebugObjectPlacer.java | 10 +- .../mantle}/IrisCaveCarver3D.java | 19 +- .../mantle/IrisMantleComponent.java | 2 +- .../mantle}/IrisStructureComponent.java | 60 +- .../mantle}/IslandObjectPlacer.java | 15 +- .../mantle}/MantleCarvingComponent.java | 35 +- .../mantle/MantleComponent.java | 12 +- .../MantleFloatingObjectComponent.java | 40 +- .../mantle}/MantleHydrologyCaveVoxelView.java | 28 +- .../mantle}/MantleHydrologyComponent.java | 43 +- .../mantle}/MantleObjectComponent.java | 72 +- .../mantle/MantlePass.java | 2 +- .../mantle/MantleSliceRetention.java | 2 +- .../mantle/MantleWriter.java | 43 +- .../mantle/MatterGenerationPhase.java | 2 +- .../mantle/MatterGenerator.java | 14 +- .../mantle}/ObjectDestinationTransaction.java | 20 +- .../mantle}/ObjectPassPlacer.java | 4 +- .../mantle}/ObjectSourcePlan.java | 2 +- .../mantle}/ObjectSourcePlanCache.java | 4 +- .../mantle}/StructureCarveEnvelope.java | 6 +- .../mantle}/StructureCarvingFootprint.java | 12 +- .../mantle}/StructureFoundationPlanner.java | 2 +- .../mantle}/SurfaceFluidBoundaryPlan.java | 2 +- .../mantle/TerrainMatterView.java | 6 +- .../mode/ModeEnclosure.java | 12 +- .../mode/ModeIslands.java | 12 +- .../mode/ModeOverworld.java | 30 +- .../mode/ModeSuperFlat.java | 12 +- .../noise/ExpressionNoise.java | 5 +- .../noise/ImageNoise.java | 16 +- .../noise}/IrisExpression.java | 26 +- .../noise}/IrisExpressionFunction.java | 24 +- .../noise}/IrisExpressionLoad.java | 35 +- .../noise}/IrisGenerator.java | 52 +- .../noise}/IrisGeneratorStyle.java | 48 +- .../noise}/IrisInterpolator.java | 24 +- .../noise}/IrisNoiseGenerator.java | 56 +- .../noise}/IrisShapedGeneratorStyle.java | 22 +- .../noise}/IrisStyledRange.java | 20 +- .../noise}/NoiseStyle.java | 387 ++- .../runtime}/BiomeEnvironment.java | 10 +- .../runtime}/BlockEditAccess.java | 2 +- .../runtime}/BlockUpdater.java | 2 +- .../runtime}/BukkitEngineWorldManager.java | 2 +- .../runtime}/DimensionStackContext.java | 15 +- .../runtime}/DimensionStackLayout.java | 8 +- .../runtime}/DimensionTerrainContext.java | 66 +- .../runtime}/Engine.java | 86 +- .../runtime}/EngineActuator.java | 6 +- .../runtime}/EngineAssignedActuator.java | 6 +- .../runtime}/EngineAssignedComponent.java | 2 +- .../runtime}/EngineAssignedModifier.java | 6 +- .../runtime}/EngineAssignedWorldManager.java | 14 +- .../runtime}/EngineBackgroundTasks.java | 12 +- .../runtime}/EngineComponent.java | 9 +- .../runtime}/EngineComponentCleanup.java | 2 +- .../runtime}/EngineDataStore.java | 7 +- .../runtime}/EngineDecorator.java | 8 +- .../runtime}/EngineDiagnostics.java | 8 +- .../runtime}/EngineEffects.java | 2 +- .../runtime}/EngineEffectsProvider.java | 2 +- .../runtime}/EngineHotloader.java | 33 +- .../runtime}/EngineLifecycleTasks.java | 4 +- .../runtime}/EngineMaintenance.java | 13 +- .../runtime}/EngineMetrics.java | 2 +- .../runtime}/EngineMetricsReport.java | 20 +- .../runtime}/EngineMode.java | 18 +- .../runtime}/EngineModifier.java | 6 +- .../runtime}/EnginePanic.java | 2 +- .../runtime}/EnginePlatformHooks.java | 10 +- .../runtime}/EnginePlayer.java | 14 +- .../runtime}/EngineRuntime.java | 4 +- .../runtime}/EngineRuntimeBuilder.java | 35 +- .../runtime}/EngineShutdownSequence.java | 21 +- .../runtime}/EngineStage.java | 6 +- .../runtime}/EngineTarget.java | 10 +- .../runtime}/EngineTelemetrySnapshot.java | 3 +- .../runtime}/EngineTickRegistry.java | 4 +- .../runtime}/EngineWorldManager.java | 2 +- .../runtime}/EngineWorldManagerProvider.java | 2 +- .../runtime}/Fallible.java | 2 +- .../runtime}/GenerationCacheWarmer.java | 19 +- .../runtime}/GenerationRuntime.java | 15 +- .../runtime}/GenerationRuntimeScopeState.java | 6 +- .../runtime}/GenerationSessionException.java | 2 +- .../runtime}/GenerationSessionLease.java | 2 +- .../runtime}/GenerationSessionManager.java | 4 +- .../runtime}/GenerationTransitionGate.java | 2 +- .../runtime}/GlobalCacheSVC.java | 12 +- .../runtime}/Hotloadable.java | 2 +- .../runtime}/IrisComplex.java | 226 +- .../runtime}/IrisEngine.java | 84 +- .../runtime}/IrisEngineData.java | 7 +- .../runtime}/IrisEngineEffects.java | 8 +- .../runtime}/IrisEngineMantle.java | 40 +- .../runtime}/IrisEngineMode.java | 4 +- .../runtime}/IrisEngineStatistics.java | 2 +- .../runtime}/IrisEngineStreamType.java | 31 +- .../runtime}/IrisEngineValueType.java | 15 +- .../runtime}/IrisWorldManager.java | 12 +- .../runtime}/ListFunction.java | 4 +- .../runtime}/MarkerSpawnScanner.java | 19 +- .../runtime}/MeteredCache.java | 2 +- .../NativeStructureBootstrapBarrier.java | 2 +- .../runtime}/PreservationRegistry.java | 2 +- .../runtime}/PreservationSVC.java | 8 +- .../runtime}/ResolvedTerrainProvider.java | 26 +- .../runtime}/SeedManager.java | 6 +- .../runtime}/SharedCornerBounds.java | 2 +- .../runtime}/Staged.java | 2 +- .../runtime}/StudioGenerationUpdate.java | 26 +- .../runtime}/UpperDimensionContext.java | 19 +- .../runtime}/WorldBlockDropRouter.java | 20 +- .../runtime}/WorldChunkMaintenance.java | 18 +- .../runtime}/WorldEntitySpawner.java | 29 +- .../runtime}/WorldTeleportWarmup.java | 2 +- .../runtime}/WrongEngineBroException.java | 2 +- .../simd/ScalarSimdKernels.java | 2 +- .../simd/SimdKernels.java | 2 +- .../simd/SimdSupport.java | 6 +- .../simd/VectorSimdKernels.java | 2 +- .../stage}/HydrologyFluidLayerSelector.java | 2 +- .../stage}/IrisBiomeActuator.java | 26 +- .../stage}/IrisCarveModifier.java | 45 +- .../stage}/IrisCarveScratch.java | 4 +- .../stage}/IrisCustomModifier.java | 16 +- .../stage}/IrisDecorantActuator.java | 34 +- .../stage}/IrisDepositModifier.java | 44 +- .../stage}/IrisDimensionStackActuator.java | 32 +- .../IrisFloatingChildBiomeModifier.java | 50 +- .../stage}/IrisPerfectionModifier.java | 20 +- .../stage}/IrisPostModifier.java | 26 +- .../stage}/IrisTerrainNormalActuator.java | 46 +- .../IrisTransitionGeometryActuator.java | 24 +- .../stream}/CachedDoubleStream2D.java | 12 +- .../stream}/CachedStream2D.java | 12 +- .../stream}/CachedStream3D.java | 12 +- .../stream}/ChunkFillableDoubleStream2D.java | 2 +- .../stream}/ChunkFillableStream2D.java | 2 +- .../stream}/ContextInjectingStream.java | 12 +- .../generation/stream/GenerationStreams.java | 43 + .../terrain/HydrologyBankTerrainRuntime.java | 14 +- .../terrain}/InferredType.java | 14 +- .../terrain}/IrisDimension.java | 231 +- .../terrain}/IrisDimensionCarvingEntry.java | 42 +- .../IrisDimensionCarvingResolver.java | 16 +- .../IrisDimensionContractException.java | 2 +- .../terrain}/IrisDimensionMode.java | 14 +- .../terrain}/IrisDimensionModeType.java | 26 +- .../IrisDimensionRuntimeContract.java | 4 +- .../terrain}/IrisDimensionStack.java | 22 +- .../terrain}/IrisDimensionStackBlend.java | 17 +- .../terrain}/IrisDimensionType.java | 4 +- .../terrain}/IrisDimensionTypeOptions.java | 50 +- .../terrain}/IrisMaterialPalette.java | 35 +- .../terrain}/IrisRegion.java | 106 +- .../terrain}/IrisSlopeClip.java | 16 +- .../terrain}/IrisTerrain3D.java | 43 +- .../terrain/Terrain3DColumn.java | 2 +- .../terrain/Terrain3DFragmentFilter.java | 2 +- .../terrain/Terrain3DRuntime.java | 11 +- .../validation}/GoldenHashEngine.java | 14 +- .../validation}/GoldenHashScanner.java | 21 +- .../ExternalDataProvider.java | 16 +- .../ExternalDataSVC.java | 18 +- .../link => integration}/Identifier.java | 2 +- .../MultiverseCoreLink.java | 8 +- .../MultiverseGuardListener.java | 12 +- .../MultiverseSVC.java | 6 +- .../link => integration}/WorldEditLink.java | 4 +- .../data/CraftEngineDataProvider.java | 18 +- .../link => integration}/data/DataType.java | 6 +- .../data/EcoItemsDataProvider.java | 6 +- .../data/ExecutableItemsDataProvider.java | 6 +- .../data/ItemAdderDataProvider.java | 12 +- .../data/KGeneratorsDataProvider.java | 12 +- .../data/MMOItemsDataProvider.java | 8 +- .../data/MythicCrucibleDataProvider.java | 20 +- .../data/MythicMobsDataProvider.java | 16 +- .../data/NexoDataProvider.java | 20 +- .../data/OraxenDataProvider.java | 12 +- .../localization/BukkitCommandMessages.java | 3 +- .../BukkitCommandMessagesExtended.java | 3 +- .../localization/BukkitRuntimeMessages.java | 3 +- .../localization/BukkitUiMessages.java | 3 +- .../common/format => localization}/C.java | 4 +- .../localization/DesktopUiMessages.java | 2 +- .../localization/DirectorCommandMessages.java | 2 +- .../{core => }/localization/IrisLanguage.java | 4 +- .../localization/IrisLanguageGuide.java | 2 +- .../localization/IrisMessageContributor.java | 2 +- .../{core => }/localization/IrisMessages.java | 2 +- .../localization/LocaleHotloadSnapshot.java | 2 +- .../localization/PackDownloadMessages.java | 3 +- .../localization/RuntimeProgressMessages.java | 3 +- .../localization/RuntimeUiMessages.java | 2 +- .../pack/AtomicDirectoryPublisher.java | 2 +- .../{core => }/pack/BrokenPackException.java | 2 +- .../{core => }/pack/ContentKeyValidator.java | 6 +- .../pack/DefaultPackBootstrapProvisioner.java | 14 +- .../pack/ImageMapPackageClosure.java | 6 +- .../{core/tools => pack}/IrisConverter.java | 16 +- .../arcane/iris/{core => }/pack/IrisPack.java | 14 +- .../tools => pack}/IrisPackBenchmarking.java | 18 +- .../{core => }/pack/IrisPackRepository.java | 16 +- .../pack/PackBiomeLayerValidator.java | 2 +- .../pack/PackCaveProfileValidator.java | 2 +- .../pack/PackDimensionValidator.java | 8 +- .../pack/PackDirectoryResolver.java | 2 +- .../pack/PackDownloadExecution.java | 4 +- .../iris/{core => }/pack/PackDownloader.java | 12 +- .../{core => }/pack/PackExportClosure.java | 12 +- .../pack/PackGeneratorDuplicateValidator.java | 2 +- .../pack/PackHydrologyValidator.java | 10 +- .../pack/PackImageMapValidator.java | 42 +- .../{core => }/pack/PackJsonFieldChecks.java | 2 +- .../{core => }/pack/PackLootValidator.java | 8 +- .../pack/PackNativeStructureValidator.java | 4 +- .../pack/PackObjectSurfaceValidator.java | 2 +- .../{core => }/pack/PackResourceCleanup.java | 2 +- .../pack/PackRiverBank3DValidator.java | 4 +- .../{core => }/pack/PackSpawnValidator.java | 4 +- .../pack/PackStaticObjectValidator.java | 6 +- .../pack/PackStructurePlacementValidator.java | 2 +- .../pack/PackStyledRangeDefaultValidator.java | 2 +- .../pack/PackTerrain3DValidator.java | 6 +- .../{core => }/pack/PackValidationCache.java | 12 +- .../{core => }/pack/PackValidationIo.java | 2 +- .../pack/PackValidationRegistry.java | 2 +- .../{core => }/pack/PackValidationResult.java | 4 +- .../iris/{core => }/pack/PackValidator.java | 26 +- .../pack/StructureGraphPackValidator.java | 30 +- .../pack/StructurePackageClosure.java | 4 +- .../datapack/CoordinatorDirectory.java | 2 +- .../datapack/CoordinatorEditable.java | 2 +- .../datapack/CoordinatorJournal.java | 2 +- .../datapack/CoordinatorOperation.java | 2 +- .../datapack/CoordinatorPhase.java | 2 +- .../datapack/DatapackArchive.java | 6 +- .../datapack/DatapackCoordinator.java | 2 +- .../DatapackCoordinatorResolution.java | 8 +- .../datapack/DatapackImportSources.java | 6 +- .../datapack/DatapackIngestService.java | 23 +- .../datapack/DatapackInstall.java | 4 +- .../datapack/DatapackInstallPlanner.java | 4 +- .../datapack}/DatapackInstallResult.java | 2 +- .../datapack/DatapackManifestStore.java | 4 +- .../datapack/DatapackOwnership.java | 4 +- .../datapack/DatapackPackMetadata.java | 9 +- .../datapack/DatapackRemoval.java | 15 +- .../datapack/DatapackScratchRecovery.java | 2 +- .../datapack/DatapackStagingGuard.java | 10 +- .../datapack/DatapackStagingReapply.java | 6 +- .../datapack/DatapackStartupValidation.java | 9 +- .../datapack/DatapackStructureImports.java | 19 +- .../datapack/DatapackStructureScopeIndex.java | 2 +- .../datapack/DatapackSupport.java | 6 +- .../datapack/DatapackTransactions.java | 6 +- .../datapack/DirectoryDeleter.java | 2 +- .../datapack/DirectoryMove.java | 2 +- .../datapack/DirectoryRemoval.java | 2 +- .../datapack/DownloadResult.java | 2 +- .../datapack/EditableImportRemoval.java | 6 +- .../datapack/InstallExecution.java | 4 +- .../{core => pack}/datapack/InstallPlan.java | 2 +- .../datapack/InstallResult.java | 2 +- .../datapack}/IrisDatapackCompiler.java | 38 +- .../{core => pack}/datapack/Manifest.java | 4 +- .../datapack/ManifestWrite.java | 2 +- .../datapack/MetadataEntry.java | 2 +- .../datapack/ModrinthResolver.java | 2 +- .../{core => pack}/datapack/Ownership.java | 4 +- .../datapack/PackResources.java | 2 +- .../datapack/PreparedEditableImport.java | 4 +- .../datapack/RemoveOutcome.java | 2 +- .../datapack}/ServerConfigurator.java | 48 +- .../datapack/StagingInspection.java | 2 +- .../datapack/StartupValidationCache.java | 2 +- .../datapack/VerifiedStagingInstall.java | 4 +- .../loading}/ImageResourceLoader.java | 8 +- .../loader => pack/loading}/IrisData.java | 80 +- .../loading}/IrisRegistrant.java | 6 +- .../loading}/JsonSchemaValidator.java | 4 +- .../loading}/MatterObjectResourceLoader.java | 6 +- .../loading}/ObjectResourceLoader.java | 6 +- .../loading}/ResourceLoader.java | 28 +- .../{engine/object => pack/mod}/IrisMod.java | 60 +- .../mod}/IrisModBiomeInjector.java | 21 +- .../mod}/IrisModBiomeReplacer.java | 20 +- .../mod}/IrisModNoiseStyleReplacer.java | 19 +- .../IrisModObjectPlacementBiomeInjector.java | 21 +- .../IrisModObjectPlacementRegionInjector.java | 21 +- .../mod}/IrisModObjectReplacer.java | 20 +- .../mod}/IrisModRegionReplacer.java | 20 +- .../schema}/SchemaBlockStates.java | 2 +- .../schema}/SchemaBuilder.java | 28 +- .../project => pack/schema}/SchemaEnums.java | 10 +- .../schema}/SchemaKeyedTypes.java | 4 +- .../schema}/SchemaPropertyBuilder.java | 14 +- .../schema}/SchemaRegistryCatalog.java | 2 +- .../schema}/SchemaRegistryProperties.java | 36 +- .../schema/annotation}/ArrayType.java | 2 +- .../schema/annotation}/DependsOn.java | 2 +- .../schema/annotation}/MaxNumber.java | 2 +- .../schema/annotation}/MinNumber.java | 2 +- .../schema/annotation}/RegistryListBiome.java | 2 +- .../annotation}/RegistryListBlockType.java | 2 +- .../annotation}/RegistryListEnchantment.java | 2 +- .../annotation}/RegistryListEntityType.java | 2 +- .../schema/annotation}/RegistryListFont.java | 2 +- .../annotation}/RegistryListFunction.java | 4 +- .../annotation}/RegistryListItemType.java | 2 +- .../RegistryListNativeJigsawPool.java | 2 +- .../annotation}/RegistryListPotionEffect.java | 2 +- .../annotation}/RegistryListResource.java | 4 +- .../RegistryListSpecialEntity.java | 2 +- .../annotation}/RegistryListStructure.java | 2 +- .../RegistryListVanillaStructure.java | 2 +- .../RegistryListVanillaStructureSet.java | 2 +- .../annotation}/RegistryMapBlockState.java | 2 +- .../schema/annotation}/Required.java | 2 +- .../schema/annotation}/Snippet.java | 2 +- .../functions/ComponentFlagFunction.java | 14 +- .../functions/LootTableKeyFunction.java | 6 +- .../validation}/CompatAction.java | 2 +- .../validation}/CompatFinding.java | 2 +- .../validation}/CompatPools.java | 25 +- .../validation}/CompatRegistry.java | 2 +- .../validation}/CompatStatus.java | 2 +- .../validation}/CompatWalker.java | 55 +- .../validation}/ContentGate.java | 10 +- .../validation}/IrisCompat.java | 5 +- .../IrisCompatabilityBlockFilter.java | 16 +- .../IrisCompatabilityItemFilter.java | 14 +- .../compat => pack/validation}/KeyStatus.java | 2 +- .../validation}/LegacyBlockRenames.java | 2 +- .../validation}/MissingBlockState.java | 2 +- .../validation}/PackCompatReport.java | 2 +- .../object => pack/value}/IrisColor.java | 22 +- .../object => pack/value}/IrisDirection.java | 18 +- .../object => pack/value}/IrisDuration.java | 28 +- .../object => pack/value}/IrisPosition.java | 14 +- .../object => pack/value}/IrisRange.java | 12 +- .../value}/IrisRaritySelection.java | 8 +- .../object => pack/value}/IrisRate.java | 12 +- .../object => pack/value}/OverrideMode.java | 12 +- .../project => platform}/agent/Agent.java | 4 +- .../misc => platform/bootstrap}/Bindings.java | 10 +- .../bootstrap}/ServerProperties.java | 4 +- .../misc => platform/bootstrap}/SlimJar.java | 4 +- .../misc => platform/bootstrap}/WebCache.java | 2 +- .../bootstrap}/getHardware.java | 6 +- .../service => platform/bukkit}/BoardSVC.java | 32 +- .../platform/bukkit/BukkitBiomeWriter.java | 2 +- .../bukkit/BukkitBlockResolution.java | 20 +- .../platform/bukkit/BukkitBlockState.java | 14 +- .../platform/bukkit/BukkitEntityType.java | 2 +- .../platform/bukkit/BukkitEnvironment.java | 2 +- .../iris/platform/bukkit/BukkitPlatform.java | 12 +- .../platform/bukkit/BukkitRegistries.java | 12 +- .../iris/platform/bukkit/BukkitScheduler.java | 2 +- .../platform/bukkit/BukkitStructureHooks.java | 2 +- .../platform/bukkit/BukkitWorldBinding.java | 4 +- .../bukkit}/chunk/ChunkTickets.java | 2 +- .../bukkit}/chunk/TicketHolder.java | 4 +- .../nms/DatapackStructureScopeResult.java | 2 +- .../{core => platform/bukkit}/nms/INMS.java | 8 +- .../bukkit}/nms/INMSBinding.java | 30 +- .../bukkit}/nms/MinecraftVersion.java | 2 +- .../bukkit}/nms/NmsBindingSelector.java | 2 +- .../bukkit}/nms/ServerShutdownBoundary.java | 2 +- .../bukkit}/nms/container/BiomeColor.java | 2 +- .../bukkit}/nms/container/BlockProperty.java | 2 +- .../bukkit}/nms/container/Pair.java | 2 +- .../bukkit}/nms/datapack/DataVersion.java | 6 +- .../bukkit}/nms/datapack/IDataFixer.java | 6 +- .../nms/datapack/v1192/DataFixerV1192.java | 10 +- .../nms/datapack/v1206/DataFixerV1206.java | 10 +- .../nms/datapack/v1213/DataFixerV1213.java | 6 +- .../nms/datapack/v1217/DataFixerV1217.java | 6 +- .../bukkit}/nms/v1X/NMSBinding1X.java | 18 +- .../bukkit}/plugin/Chunks.java | 2 +- .../bukkit}/plugin/IrisService.java | 2 +- .../bukkit}/plugin/VolmitPlugin.java | 4 +- .../bukkit}/plugin/VolmitSender.java | 6 +- .../bukkit}/registry/Attributes.java | 2 +- .../bukkit}/registry/KeyedRegistry.java | 2 +- .../bukkit}/registry/Materials.java | 4 +- .../bukkit}/registry/Particles.java | 4 +- .../bukkit}/registry/RegistryTypeAdapter.java | 2 +- .../bukkit}/registry/RegistryUtil.java | 8 +- .../generation}/BukkitChunkGenerator.java | 85 +- .../generation}/DummyBiomeProvider.java | 2 +- .../generation}/DummyChunkGenerator.java | 2 +- .../generation}/EngineBukkitOps.java | 52 +- .../generation}/PlatformChunkGenerator.java | 12 +- .../protocol/CursorInfoRequestHandler.java | 2 +- .../protocol/EngineResolver.java | 4 +- .../protocol/IrisCursorRequestService.java | 6 +- .../protocol/IrisCursorResolver.java | 8 +- .../protocol/IrisProtocolServer.java | 4 +- .../protocol/IrisServerTransport.java | 2 +- .../protocol/IrisSession.java | 2 +- .../protocol/IrisSessionRegistry.java | 2 +- .../protocol/IrisTileEncoder.java | 8 +- .../protocol/IrisVisionRequestService.java | 6 +- .../protocol/VisionTileRequestHandler.java | 2 +- .../reflect/KeyedType.java | 6 +- .../{util/common => platform}/reflect/W.java | 2 +- .../reflect/WrappedField.java | 2 +- .../reflect/WrappedReturningMethod.java | 2 +- .../structure/BulkStructureImporter.java | 14 +- .../{core => }/structure/FeatureImporter.java | 38 +- .../structure/StructureCaptureImporter.java | 18 +- .../structure/StructureImporter.java | 32 +- .../structure/StructureIndexService.java | 4 +- .../structure/StructureSchemaKeys.java | 2 +- .../{core => }/structure/VillageImporter.java | 28 +- .../authoring/IrisStructureBundleFactory.java | 4 +- .../structure/authoring/StructureBackend.java | 2 +- .../authoring/StructureCapability.java | 2 +- .../authoring/StructureFileOperations.java | 4 +- .../structure/authoring/StructureHash.java | 2 +- .../structure/authoring/StructureKey.java | 2 +- .../structure/authoring/StructureLoss.java | 2 +- .../authoring/StructureOwnershipManifest.java | 2 +- .../authoring/StructureRecoveryResult.java | 2 +- .../authoring/StructureResourceBundle.java | 2 +- .../structure/authoring/StructureSource.java | 2 +- .../StructureTransactionJournal.java | 2 +- .../StructureTransactionReadSet.java | 2 +- .../authoring/StructureTransactionWriter.java | 2 +- .../authoring/StructureWriteMode.java | 2 +- .../authoring/StructureWriteOptions.java | 2 +- .../authoring/StructureWriteResult.java | 2 +- .../IrisStructureAdoptionDiagnostic.java | 2 +- .../IrisStructureAdoptionDisposition.java | 2 +- .../IrisStructureAdoptionInputKind.java | 2 +- .../IrisStructureAdoptionLimits.java | 2 +- .../conversion/IrisStructureAdoptionPlan.java | 8 +- .../IrisStructureAdoptionReceipt.java | 8 +- .../IrisStructureAdoptionRequest.java | 6 +- .../IrisStructureAdoptionResult.java | 4 +- .../IrisStructureAdoptionService.java | 26 +- .../IrisStructureAdoptionStrategy.java | 2 +- .../export/AtomicDatapackPublisher.java | 2 +- .../structure/export/VanillaBlockState.java | 2 +- .../export/VanillaJigsawDatapackExporter.java | 2 +- .../export/VanillaJigsawExportCompiler.java | 38 +- .../export/VanillaJigsawExportDiagnostic.java | 2 +- .../export/VanillaJigsawExportFormat.java | 2 +- .../export/VanillaJigsawExportRequest.java | 2 +- .../export/VanillaJigsawExportResult.java | 2 +- .../export/VanillaJigsawExportSettings.java | 2 +- .../export/VanillaJigsawExportSource.java | 8 +- .../export/VanillaJigsawExportValidation.java | 2 +- .../export/VanillaResourceIdentifier.java | 2 +- .../VanillaStructureTemplateEncoder.java | 16 +- .../graph}/CompiledStructureGraph.java | 10 +- .../graph}/IrisObjectFrameReader.java | 4 +- .../graph}/JigsawPoolSelection.java | 14 +- .../graph}/PlanarJigsawWorkcellResolver.java | 14 +- .../graph}/StructureAssemblyResult.java | 4 +- .../graph}/StructureAssemblyStatus.java | 2 +- .../graph}/StructureGraphAssemblySample.java | 2 +- .../graph}/StructureGraphCatalog.java | 10 +- .../graph}/StructureGraphCompilation.java | 16 +- .../graph}/StructureGraphCompiler.java | 36 +- .../graph}/StructureGraphDiagnostic.java | 2 +- .../graph}/StructureGraphResolver.java | 10 +- .../StructureGraphValidationException.java | 2 +- .../StructureResourceBundleGraphCompiler.java | 16 +- .../jigsaw/IrisJigsawBranchFailurePolicy.java | 12 + .../jigsaw/IrisJigsawCompatibility.java | 12 + .../jigsaw}/IrisJigsawConfiguration.java | 32 +- .../jigsaw}/IrisJigsawConnector.java | 35 +- .../structure/jigsaw/IrisJigsawHeightmap.java | 30 + .../jigsaw/IrisJigsawLiquidSettings.java | 15 + .../iris/structure/jigsaw/IrisJigsawMode.java | 12 + .../jigsaw}/IrisJigsawPiece.java | 43 +- .../jigsaw}/IrisJigsawPieceEntry.java | 20 +- .../jigsaw}/IrisJigsawPieceRules.java | 20 +- .../jigsaw}/IrisJigsawPool.java | 30 +- .../structure/jigsaw/IrisJigsawThemeSet.java | 24 + .../structure/jigsaw/IrisJigsawWorkcell.java | 40 + .../jigsaw}/IrisJigsawWorkcellArchetype.java | 18 +- .../jigsaw}/JigsawJoint.java | 10 +- .../IrisImportedFeatureControl.java | 18 +- .../IrisImportedStructureControl.java | 31 +- .../nativegen/IrisNativeStructure.java | 31 + .../IrisNativeStructureDecision.java | 6 +- .../IrisVanillaStructureAdjustment.java | 72 + .../NativeFeatureGenerationPolicy.java | 10 +- .../NativeFeatureGenerationStatus.java | 2 +- .../NativeStructureFrequencyScale.java | 2 +- .../NativeStructureGenerationPolicy.java | 10 +- .../NativeStructureGenerationStatus.java | 2 +- .../NativeStructureOwnershipBundle.java | 4 +- .../NativeStructureOwnershipRecord.java | 8 +- .../NativeStructureOwnershipStore.java | 10 +- .../NativeStructurePlacementPlanner.java | 17 +- .../nativegen}/NativeStructureStartPlan.java | 5 +- .../nativegen/NativeStructureSuppression.java | 12 + .../nativegen}/NativeStructureVolume.java | 2 +- .../nativegen}/NativeStructureVolumeMemo.java | 5 +- .../object/DecayControlPlacer.java | 8 +- .../object/FloatingObjectFootprint.java | 4 +- .../object}/HeightmapObjectPlacer.java | 10 +- .../object/IObjectLoot.java | 6 +- .../object/IObjectPlacer.java | 10 +- .../object/IPostBlockAccess.java | 4 +- .../object/IrisAxisRotationClamp.java | 24 +- .../object/IrisObject.java | 35 +- .../object/IrisObjectCompat.java | 16 +- .../object/IrisObjectIO.java | 22 +- .../object/IrisObjectLimit.java | 16 +- .../object/IrisObjectLoot.java | 33 +- .../object/IrisObjectMarker.java | 33 +- .../object/IrisObjectPlacement.java | 141 +- .../object/IrisObjectPlacementRunner.java | 35 +- .../IrisObjectPlacementScaleInterpolator.java | 14 +- .../object/IrisObjectReplace.java | 35 +- .../object/IrisObjectRotation.java | 25 +- .../object/IrisObjectScale.java | 26 +- .../object/IrisObjectShaping.java | 11 +- .../object/IrisObjectTransforms.java | 19 +- .../object/IrisObjectTranslate.java | 24 +- .../object/IrisObjectVacuum.java | 4 +- .../object/IrisObjectVanillaLoot.java | 32 +- .../object/IrisPaintSurfaceProjection.java | 4 +- .../object/IrisStaticObject.java | 52 +- .../object/IrisStaticObjectLayer.java | 18 +- .../object/IrisStaticObjectRotation.java | 16 +- .../object/IrisSurfaceSupport.java | 15 +- .../structure/object/ObjectPlaceMode.java | 108 + .../object}/WorldObjectPlacer.java | 29 +- .../object/matter/IrisMatterObject.java | 12 +- .../placement}/IrisStructure.java | 75 +- .../placement/IrisStructureAnchorMode.java | 34 + .../placement}/IrisStructureCarveShape.java | 12 +- .../placement}/IrisStructureLocator.java | 34 +- .../placement/IrisStructurePlacement.java | 176 ++ .../IrisStructureSetFrequencyOverride.java | 16 +- .../placement/IrisStructureStiltSettings.java | 34 + .../placement}/IrisStructureTerrain.java | 34 +- .../placement/IrisStructureTerrainMode.java | 27 + .../placement}/IrisStructureYBand.java | 14 +- .../placement}/LootResolver.java | 14 +- .../placement}/PlacedObject.java | 6 +- .../placement}/PlacedStructurePiece.java | 8 +- .../placement}/StructureAssembler.java | 49 +- .../StructureCaveAnchorResolver.java | 12 +- .../placement}/StructureDistribution.java | 12 +- .../placement}/StructurePlacementGrid.java | 6 +- .../placement}/StructurePlacementMarker.java | 2 +- .../placement}/StructurePlacementScope.java | 11 +- .../placement}/StructureReachability.java | 6 +- .../placement}/StructureVerticalBounds.java | 2 +- .../PackDownloadProgressReporter.java | 16 +- .../{engine/object => studio}/StudioMode.java | 30 +- .../{core/service => studio}/StudioSVC.java | 92 +- .../{core => studio}/edit/BlockSignal.java | 4 +- .../{core => studio}/edit/DustRevealer.java | 24 +- .../generation}/BiomeBuffetGenerator.java | 21 +- .../generation}/BiomeBuffetLayout.java | 12 +- .../generation}/EnginedStudioGenerator.java | 8 +- .../generation}/JigsawStudioGenerator.java | 59 +- .../generation}/ObjectStudioGenerator.java | 33 +- .../generation}/StudioGenerator.java | 8 +- .../jigsaw/JigsawPlanarArchetype.java | 4 +- .../jigsaw/JigsawPlanarDirection.java | 4 +- .../jigsaw/JigsawPlanarTopology.java | 2 +- .../jigsaw/JigsawPlanarTopologyKind.java | 2 +- .../jigsaw/JigsawStudioActivation.java | 4 +- .../jigsaw/JigsawStudioAuthoringAccess.java | 4 +- .../JigsawStudioAutosaveScheduler.java | 50 +- .../jigsaw/JigsawStudioBay.java | 2 +- .../jigsaw/JigsawStudioBayKind.java | 2 +- .../jigsaw}/JigsawStudioBoardContext.java | 3 +- .../jigsaw}/JigsawStudioBoardState.java | 2 +- .../jigsaw/JigsawStudioBounds.java | 2 +- .../jigsaw}/JigsawStudioCapture.java | 32 +- .../jigsaw}/JigsawStudioCaptureScheduler.java | 63 +- .../jigsaw/JigsawStudioCellDimensions.java | 2 +- .../jigsaw}/JigsawStudioChunkWriter.java | 34 +- .../JigsawStudioCompatibilityTarget.java | 2 +- .../jigsaw/JigsawStudioControlPosition.java | 2 +- .../jigsaw}/JigsawStudioDetailsMenu.java | 34 +- .../jigsaw}/JigsawStudioDirtyTracker.java | 11 +- .../jigsaw}/JigsawStudioEvaluationState.java | 2 +- .../jigsaw}/JigsawStudioEvaluator.java | 29 +- .../jigsaw/JigsawStudioGraphDocuments.java | 10 +- .../jigsaw/JigsawStudioGraphEditor.java | 42 +- .../jigsaw}/JigsawStudioGraphEvaluation.java | 2 +- .../jigsaw/JigsawStudioGraphInspector.java | 14 +- .../jigsaw/JigsawStudioGraphMapper.java | 32 +- .../jigsaw}/JigsawStudioGraphMutations.java | 38 +- .../jigsaw}/JigsawStudioHistoryStore.java | 28 +- .../jigsaw/JigsawStudioLayout.java | 2 +- .../jigsaw}/JigsawStudioMainMenu.java | 36 +- .../jigsaw/JigsawStudioMarkerKeyCodec.java | 2 +- .../jigsaw}/JigsawStudioMarkerParser.java | 11 +- .../jigsaw}/JigsawStudioMaterializer.java | 31 +- .../jigsaw}/JigsawStudioMenuActions.java | 5 +- .../jigsaw}/JigsawStudioMenuController.java | 27 +- .../jigsaw}/JigsawStudioMenuFormat.java | 11 +- .../jigsaw}/JigsawStudioMenuState.java | 6 +- .../jigsaw/JigsawStudioMode.java | 2 +- .../jigsaw/JigsawStudioObjectResizer.java | 18 +- .../jigsaw/JigsawStudioPieceRules.java | 4 +- .../jigsaw}/JigsawStudioPlayerContext.java | 15 +- .../jigsaw/JigsawStudioPoolEditor.java | 18 +- .../jigsaw/JigsawStudioPoolMembership.java | 2 +- .../jigsaw}/JigsawStudioPreviewRenderer.java | 16 +- .../jigsaw/JigsawStudioProjectCreator.java | 50 +- .../JigsawStudioProjectDeletionService.java | 14 +- .../jigsaw}/JigsawStudioProtection.java | 13 +- .../JigsawStudioProtectionListener.java | 28 +- .../jigsaw}/JigsawStudioRegistry.java | 20 +- .../JigsawStudioResourceBundleAssembler.java | 21 +- .../jigsaw}/JigsawStudioSaveLifecycle.java | 32 +- .../jigsaw}/JigsawStudioService.java | 45 +- .../jigsaw/JigsawStudioSession.java | 2 +- .../jigsaw/JigsawStudioStructureEditor.java | 32 +- .../jigsaw}/JigsawStudioStructureMenu.java | 24 +- .../jigsaw}/JigsawStudioTileWatcher.java | 12 +- .../jigsaw/JigsawStudioToolAction.java | 2 +- .../jigsaw}/JigsawStudioToolCodec.java | 4 +- .../jigsaw/JigsawStudioToolPayload.java | 2 +- .../jigsaw}/JigsawStudioToolbelt.java | 31 +- .../jigsaw}/JigsawStudioToolboxMenu.java | 27 +- .../JigsawStudioTripleSneakTracker.java | 2 +- .../jigsaw/JigsawStudioVariant.java | 4 +- .../jigsaw/JigsawStudioVariantCatalog.java | 2 +- .../jigsaw}/JigsawStudioVariantEditor.java | 49 +- .../jigsaw}/JigsawStudioVariantMenu.java | 24 +- .../JigsawStudioVariantProperties.java | 41 +- .../jigsaw}/JigsawStudioVisualization.java | 20 +- .../jigsaw}/JigsawStudioWorkcellEditor.java | 35 +- .../jigsaw}/JigsawStudioWorkcellMenu.java | 24 +- .../jigsaw/JigsawStudioWorkcellSpec.java | 2 +- .../service => studio/object}/ObjectSVC.java | 10 +- .../object}/ObjectStudioActivation.java | 4 +- .../object}/ObjectStudioLayout.java | 8 +- .../object}/ObjectStudioSaveService.java | 28 +- .../object}/StudioOpenCoordinator.java | 38 +- .../render/IrisRenderer.java | 30 +- .../render/RenderType.java | 2 +- .../framework => studio}/render/Renderer.java | 2 +- .../tree}/TreePlausibilizeBatch.java | 12 +- .../tree}/TreePlausibilizer.java | 10 +- .../{core/gui => studio/view}/GuiHost.java | 6 +- .../{core/gui => studio/view}/GuiMarker.java | 2 +- .../{core/gui => studio/view}/GuiOverlay.java | 4 +- .../view}/ImageMapStudioGUI.java | 42 +- .../view}/ImageMapStudioModel.java | 20 +- .../view}/ImageMapStudioPreviewPanel.java | 20 +- .../gui => studio/view}/NoiseExplorerGUI.java | 20 +- .../gui => studio/view}/NoisePalette.java | 2 +- .../view}/NoiseRenderCoordinator.java | 4 +- .../gui => studio/view}/NoiseViewport.java | 2 +- .../gui => studio/view}/PregenMapPanel.java | 2 +- .../view}/PregenRenderSnapshot.java | 2 +- .../view}/PregenRenderSource.java | 2 +- .../gui => studio/view}/PregenRenderer.java | 8 +- .../gui => studio/view}/PregeneratorJob.java | 30 +- .../{core/gui => studio/view}/VisionGUI.java | 22 +- .../view}/VisionRenderController.java | 8 +- .../gui => studio/view}/VisionViewport.java | 2 +- .../workspace}/ImageMapStudioExporter.java | 30 +- .../workspace}/IrisCodeWorkspace.java | 16 +- .../workspace}/IrisPackageCompiler.java | 46 +- .../workspace}/IrisProject.java | 16 +- .../workspace}/IrisProjectCopier.java | 4 +- .../StudioOpenProgressReporter.java | 16 +- .../director/handlers/BooleanHandler.java | 7 - .../common/director/handlers/ByteHandler.java | 7 - .../director/handlers/DoubleHandler.java | 7 - .../director/handlers/FloatHandler.java | 7 - .../director/handlers/IntegerHandler.java | 7 - .../common/director/handlers/LongHandler.java | 7 - .../director/handlers/ShortHandler.java | 7 - .../director/handlers/StringHandler.java | 7 - .../iris/util/common/math/ChunkSpiral.java | 44 - .../iris/util/common/math/Direction.java | 158 -- .../iris/util/common/math/Vector3i.java | 65 - .../arcane/iris/util/project/hunk/Hunk.java | 1206 --------- .../util/project/hunk/SharedHunkAdapter.java | 63 - .../util/project/hunk/storage/ArrayHunk.java | 27 - .../hunk/storage/AtomicDoubleHunk.java | 27 - .../util/project/hunk/storage/AtomicHunk.java | 27 - .../hunk/storage/AtomicIntegerHunk.java | 27 - .../project/hunk/storage/AtomicLongHunk.java | 27 - .../project/hunk/storage/StorageHunk.java | 27 - .../hunk/storage/SynchronizedArrayHunk.java | 27 - .../interpolation/Interpolation3D.java | 322 --- .../interpolation/InterpolationMethod.java | 133 - .../interpolation/InterpolationMethod3D.java | 37 - .../interpolation/IrisInterpolation.java | 593 ----- .../project/interpolation/NoiseBounds.java | 25 - .../interpolation/NoiseBoundsProvider.java | 24 - .../NoiseBoundsSampleCache2D.java | 216 -- .../interpolation/NoiseSampleCache2D.java | 170 -- .../arcane/iris/util/project/noise/CNG.java | 1132 --------- .../iris/util/project/noise/CNGFactory.java | 26 - .../util/project/noise/CellGenerator.java | 93 - .../util/project/noise/CellHeightNoise.java | 52 - .../util/project/noise/CellularNoise.java | 47 - .../iris/util/project/noise/ChladniNoise.java | 34 - .../iris/util/project/noise/CircuitNoise.java | 73 - .../iris/util/project/noise/CloverNoise.java | 1167 --------- .../iris/util/project/noise/CraterNoise.java | 62 - .../iris/util/project/noise/CubicNoise.java | 48 - .../iris/util/project/noise/DuneNoise.java | 61 - .../iris/util/project/noise/FastNoise.java | 2197 ----------------- .../util/project/noise/FastNoiseDouble.java | 2161 ---------------- .../iris/util/project/noise/FlatNoise.java | 40 - .../noise/FractalBillowPerlinNoise.java | 56 - .../noise/FractalBillowSimplexNoise.java | 55 - .../util/project/noise/FractalCubicNoise.java | 55 - .../project/noise/FractalFBMSimplexNoise.java | 70 - .../noise/FractalRigidMultiSimplexNoise.java | 55 - .../iris/util/project/noise/GaborNoise.java | 72 - .../iris/util/project/noise/GlobNoise.java | 51 - .../iris/util/project/noise/GyroidNoise.java | 44 - .../util/project/noise/HexJamesNoise.java | 90 - .../project/noise/HexRandomSizeNoise.java | 78 - .../util/project/noise/HexSimplexNoise.java | 28 - .../iris/util/project/noise/HexagonNoise.java | 28 - .../util/project/noise/HexagonalNoise.java | 71 - .../util/project/noise/InterpolatedNoise.java | 57 - .../util/project/noise/KaleidoscopeNoise.java | 43 - .../iris/util/project/noise/MarbleNoise.java | 36 - .../util/project/noise/MengerSpongeNoise.java | 48 - .../iris/util/project/noise/NoiseFactory.java | 24 - .../util/project/noise/NoiseGenerator.java | 57 - .../iris/util/project/noise/NoiseType.java | 126 - .../iris/util/project/noise/OctaveNoise.java | 23 - .../project/noise/OffsetNoiseGenerator.java | 126 - .../iris/util/project/noise/PatternNoise.java | 40 - .../iris/util/project/noise/PerlinNoise.java | 119 - .../util/project/noise/QuasicrystalNoise.java | 37 - .../iris/util/project/noise/ScalesNoise.java | 61 - .../noise/SierpinskiTriangleNoise.java | 69 - .../iris/util/project/noise/SimplexNoise.java | 109 - .../iris/util/project/noise/StrataNoise.java | 37 - .../iris/util/project/noise/TruchetNoise.java | 49 - .../util/project/noise/VascularNoise.java | 80 - .../iris/util/project/noise/VortexNoise.java | 63 - .../iris/util/project/noise/WhiteNoise.java | 50 - .../iris/util/project/noise/WoodNoise.java | 56 - .../iris/util/project/stream/BasicStream.java | 56 - .../util/project/stream/ProceduralStream.java | 601 ----- .../stream/arithmetic/AddingStream.java | 60 - .../stream/arithmetic/ClampedStream.java | 57 - .../CoordinateBitShiftLeftStream.java | 51 - .../CoordinateBitShiftRightStream.java | 51 - .../stream/arithmetic/DividingStream.java | 60 - .../stream/arithmetic/FittedStream.java | 65 - .../stream/arithmetic/MaxingStream.java | 61 - .../stream/arithmetic/MinningStream.java | 61 - .../stream/arithmetic/ModuloStream.java | 60 - .../stream/arithmetic/MultiplyingStream.java | 60 - .../stream/arithmetic/OffsetStream.java | 55 - .../stream/arithmetic/RadialStream.java | 59 - .../arithmetic/RoundingDoubleStream.java | 55 - .../stream/arithmetic/SlopeStream.java | 60 - .../stream/arithmetic/SubtractingStream.java | 60 - .../project/stream/arithmetic/ZoomStream.java | 55 - .../convert/AwareConversionStream2D.java | 62 - .../convert/AwareConversionStream3D.java | 64 - .../convert/CachedConversionStream.java | 67 - .../stream/convert/ConversionStream.java | 68 - .../stream/convert/ForceDoubleStream.java | 51 - .../stream/convert/RoundingStream.java | 54 - .../stream/convert/SelectionStream.java | 68 - .../stream/convert/SignificanceStream.java | 85 - .../project/stream/convert/To3DStream.java | 47 - .../stream/interpolation/BiHermiteStream.java | 97 - .../interpolation/BiStarcastStream.java | 67 - .../stream/interpolation/BicubicStream.java | 89 - .../stream/interpolation/BilinearStream.java | 73 - .../stream/interpolation/Interpolated.java | 68 - .../interpolation/InterpolatingStream.java | 61 - .../stream/interpolation/Interpolator.java | 31 - .../interpolation/InterpolatorFactory.java | 106 - .../interpolation/TriStarcastStream.java | 68 - .../stream/interpolation/TricubicStream.java | 148 -- .../stream/interpolation/TrilinearStream.java | 83 - .../project/stream/sources/CNGStream.java | 71 - .../stream/sources/FunctionStream.java | 56 - .../stream/utility/NullSafeStream.java | 54 - .../stream/utility/SynchronizedStream.java | 51 - .../ExactWorldSlotPathPolicy.java | 2 +- .../{core/tools => world}/IrisCreator.java | 56 +- .../object => world}/IrisEnvironment.java | 14 +- .../IrisPaperLikeBackendMode.java | 2 +- .../tools => world}/IrisReflectiveAPI.java | 2 +- .../IrisRuntimeSchedulerMode.java | 4 +- .../IrisStartupValidation.java | 2 +- .../object => world}/IrisTimeBlock.java | 12 +- .../{core/tools => world}/IrisToolbelt.java | 55 +- .../{engine/object => world}/IrisWeather.java | 14 +- .../{engine/object => world}/IrisWorld.java | 2 +- .../object => world}/IrisWorldBoundary.java | 20 +- .../IrisWorldBoundaryCenter.java | 14 +- .../tools => world}/IrisWorldCreator.java | 13 +- .../{core => world}/IrisWorldStorage.java | 4 +- .../iris/{core => world}/IrisWorlds.java | 18 +- .../SnapshotDirectoryTreeDeleter.java | 2 +- .../WorldCreationProgressReporter.java | 12 +- .../{core => world}/WorldCreatorCompat.java | 2 +- .../tools => world}/WorldMaintenance.java | 6 +- .../WorldRemovalPathPolicy.java | 2 +- .../iris/{core => world}/WorldSlotKey.java | 2 +- .../entity}/EntityRiseSVC.java | 4 +- .../entity}/IrisAttributeModifier.java | 26 +- .../object => world/entity}/IrisEffect.java | 78 +- .../entity}/IrisEnchantment.java | 26 +- .../entity}/IrisEngineSpawnerCooldown.java | 6 +- .../object => world/entity}/IrisEntity.java | 112 +- .../entity}/IrisEntitySpawn.java | 41 +- .../object => world/entity}/IrisMarker.java | 20 +- .../entity}/IrisPotionEffect.java | 28 +- .../entity}/IrisSpawnGroup.java | 14 +- .../object => world/entity}/IrisSpawner.java | 45 +- .../entity}/IrisSpawnerCooldowns.java | 4 +- .../entity}/PotionEffectTypes.java | 6 +- .../event}/IrisEngineEvent.java | 4 +- .../event}/IrisEngineHotloadEvent.java | 4 +- .../events => world/event}/IrisLootEvent.java | 10 +- .../history/BoundaryColumnGeometry.java | 2 +- .../history/BoundaryGeometryInfluence.java | 2 +- .../history/ChunkGenerationOwnership.java | 2 +- .../history/ChunkGenerationSemantics.java | 4 +- .../history/DiskBoundaryCapture.java | 2 +- .../history/FloatingBiomeOverlay.java | 2 +- .../history/GenerationActivation.java | 2 +- .../history/GenerationAdmission.java | 2 +- .../history/GenerationBlend.java | 2 +- .../history/GenerationBoundary.java | 2 +- .../GenerationBoundarySignatureSampler.java | 4 +- .../history/GenerationBoundaryStore.java | 2 +- .../history/GenerationBuildRevision.java | 2 +- .../history/GenerationEpoch.java | 2 +- .../GenerationEpochContractFactory.java | 18 +- .../history/GenerationFindCatalog.java | 12 +- .../history/GenerationHistory.java | 6 +- .../history/GenerationHistoryPaths.java | 2 +- .../GenerationHistoryRuntimeRouter.java | 14 +- .../history/GenerationHistoryStore.java | 4 +- .../history/GenerationKernelCatalog.java | 2 +- .../history/GenerationKernelRegistry.java | 16 +- .../history/GenerationKernelV1.java | 30 +- .../history/GenerationManifest.java | 2 +- .../history/GenerationPackFingerprint.java | 4 +- .../history/GenerationPackRepository.java | 6 +- .../history/GenerationPublicationLock.java | 2 +- .../history/GenerationRegistryContract.java | 2 +- .../GenerationRegistryContractFactory.java | 44 +- .../history/GenerationSemanticCapture.java | 24 +- .../history/GenerationSemanticIndex.java | 6 +- .../history/GenerationSemanticQueries.java | 16 +- .../history/GenerationTransition.java | 2 +- .../history/IrisBoundarySignatureSampler.java | 4 +- .../history/NativeBiomeSpawnSelection.java | 14 +- .../history/NativeTerrainReceipt.java | 2 +- .../history/RegionGenerationOwnership.java | 2 +- .../history/SavedBiomeCapture.java | 8 +- .../history/SavedBiomeChunk.java | 2 +- .../history/SavedBiomeRecovery.java | 12 +- .../history/SavedBiomeRuntime.java | 14 +- .../history/SavedBiomeStore.java | 2 +- .../SavedBiomeUnavailableException.java | 2 +- .../history/SavedTerrainChunk.java | 2 +- .../history/SavedTerrainChunkReader.java | 2 +- .../history/TerrainBoundarySignature.java | 2 +- .../TerrainBoundarySignatureStore.java | 2 +- .../history/TransitionBoundarySampler.java | 2 +- .../history/TransitionFluidContainment.java | 2 +- .../history/TransitionGenerationPlan.java | 2 +- .../history/TransitionGeometryBlender.java | 2 +- .../history/WorldChunkInventory.java | 6 +- .../lifecycle/BukkitPublicBackend.java | 4 +- .../lifecycle/BukkitStartupPaths.java | 2 +- .../lifecycle/BukkitWorldConfiguration.java | 10 +- .../lifecycle/CapabilityResolution.java | 2 +- .../lifecycle/CapabilitySnapshot.java | 4 +- .../lifecycle/DirectoryDurability.java | 4 +- .../lifecycle/HuskWorldQuarantine.java | 8 +- .../lifecycle/IrisRuntimeStatics.java | 10 +- .../lifecycle/IrisWorldRemovalService.java | 24 +- .../LifecycleOperationCoordinator.java | 2 +- .../lifecycle/ManagedWorldLoader.java | 2 +- .../lifecycle/MissingWorldStorageLog.java | 2 +- .../lifecycle/PaperLibBootstrap.java | 2 +- .../lifecycle/PaperLikeRuntimeBackend.java | 2 +- .../lifecycle/ServerFamily.java | 2 +- .../lifecycle/VanishedWorldStorage.java | 2 +- .../lifecycle/WorldLifecycleBackend.java | 2 +- .../lifecycle/WorldLifecycleCaller.java | 2 +- .../lifecycle/WorldLifecycleRequest.java | 4 +- .../lifecycle/WorldLifecycleService.java | 10 +- .../lifecycle/WorldLifecycleStaging.java | 2 +- .../lifecycle/WorldLifecycleSupport.java | 14 +- .../lifecycle/WorldReplacementBootstrap.java | 14 +- .../WorldReplacementBootstrapMarker.java | 2 +- .../lifecycle/WorldReplacementEntryGuard.java | 2 +- .../lifecycle/WorldReplacementFilesystem.java | 10 +- .../lifecycle/WorldReplacementJournal.java | 12 +- .../lifecycle/WorldReplacementSeed.java | 2 +- .../WorldUnloadBoundaryRegistry.java | 2 +- .../lifecycle/WorldsProviderBackend.java | 4 +- .../loot}/InventorySlotType.java | 16 +- .../object => world/loot}/IrisBlockDrops.java | 30 +- .../object => world/loot}/IrisLoot.java | 65 +- .../object => world/loot}/IrisLootMode.java | 14 +- .../loot}/IrisLootReference.java | 30 +- .../object => world/loot}/IrisLootTable.java | 36 +- .../loot}/IrisVanillaLootTable.java | 8 +- .../pregen}/AsyncOrMedievalPregenMethod.java | 4 +- .../pregen}/AsyncPregenMethod.java | 25 +- .../pregen}/CachedPregenMethod.java | 7 +- .../pregen}/HybridPregenMethod.java | 4 +- .../pregen}/IrisPregenerator.java | 10 +- .../pregen}/MantleHeapPressure.java | 2 +- .../pregen}/MedievalPregenMethod.java | 21 +- .../pregen}/PregenAdmissionGate.java | 2 +- .../pregen}/PregenApiPhase.java | 2 +- .../pregen}/PregenApiSink.java | 4 +- .../cache => world/pregen}/PregenCache.java | 2 +- .../pregen}/PregenCacheImpl.java | 4 +- .../pregen}/PregenDiagnostics.java | 2 +- .../pregen}/PregenListener.java | 2 +- .../pregen}/PregenMantleBackpressure.java | 2 +- .../pregen}/PregenPerformanceProfile.java | 16 +- .../pregen}/PregenPhaseTracker.java | 2 +- .../pregen}/PregenRateTracker.java | 2 +- .../pregen}/PregenRates.java | 2 +- .../pregen}/PregenSavedChunkStatus.java | 4 +- .../pregen}/PregenSerialWorker.java | 2 +- .../pregen}/PregenTask.java | 2 +- .../pregen}/PregeneratorMethod.java | 2 +- .../BukkitPublicRuntimeControlBackend.java | 4 +- .../{core => world}/runtime/ChunkClearer.java | 14 +- .../runtime/ChunkJobReporter.java | 16 +- .../runtime/InPlaceChunkRegenerator.java | 27 +- .../PaperLikeRuntimeControlBackend.java | 4 +- .../runtime/RuntimeInjection.java | 10 +- .../runtime/TransientWorldCleanupSupport.java | 2 +- .../runtime/WorldDeletionQueue.java | 2 +- .../runtime/WorldRuntimeControlBackend.java | 2 +- .../runtime/WorldRuntimeControlService.java | 28 +- .../task => world/safeguard}/CheckResult.java | 3 +- .../task => world/safeguard}/Diagnostic.java | 4 +- .../safeguard/IrisSafeguard.java | 10 +- .../iris/{core => world}/safeguard/Mode.java | 10 +- .../safeguard/RuntimeLockNotice.java | 2 +- .../task => world/safeguard}/Task.java | 3 +- .../task => world/safeguard}/Tasks.java | 23 +- .../io => world/storage}/Durability.java | 2 +- .../storage/matter}/EntityMatter.java | 6 +- .../storage/matter}/HydrologyCaveMatter.java | 6 +- .../storage/matter}/IdentifierMatter.java | 4 +- .../storage}/matter/IrisMatterContext.java | 4 +- .../storage}/matter/IrisMatterSupport.java | 15 +- .../NativeStructureOwnershipMatter.java | 4 +- .../storage/matter}/PlatformBlockMatter.java | 4 +- .../storage/matter}/PreObjectMatter.java | 41 +- .../storage}/matter/PreObjectMatterCell.java | 4 +- .../storage/matter}/RegistryMatter.java | 9 +- .../storage/matter}/SpawnerMatter.java | 4 +- .../storage/matter}/TileMatter.java | 5 +- .../storage}/matter/TileWrapper.java | 4 +- .../matter}/TreeBlockMaterialMatter.java | 4 +- .../storage}/matter/WorldMatter.java | 2 +- .../mca => world/storage/region}/Chunk.java | 4 +- .../mca => world/storage/region}/MCAFile.java | 4 +- .../mca => world/storage/region}/MCAUtil.java | 2 +- .../storage/region}/NBTWorld.java | 10 +- .../mca => world/storage/region}/Section.java | 4 +- .../common/scheduling => world/task}/J.java | 6 +- .../task}/jobs/DownloadJob.java | 6 +- .../scheduling => world/task}/jobs/Job.java | 12 +- .../task}/jobs/JobCollection.java | 2 +- .../task}/jobs/ParallelQueueJob.java | 6 +- .../task}/jobs/QueueJob.java | 2 +- .../task}/jobs/SingleJob.java | 2 +- .../tree/BlockDropRouter.java | 2 +- .../tree/TreeDefinitionIndex.java | 16 +- .../tree/TreeMarkerTraversal.java | 2 +- .../{core/service => world/tree}/TreeSVC.java | 40 +- .../DirectorAuthoringDataTest.java | 10 +- .../handlers/DataVersionHandlerTest.java | 4 +- .../handlers/GeneratorHandlerTest.java | 2 +- .../handlers/PrimitiveHandlerParsingTest.java | 52 +- .../handlers/VectorHandlerParsingTest.java | 2 +- .../handlers/WorldHandlerTest.java | 2 +- .../ObjectScaleHandlerTest.java | 2 +- .../ReachableBiomeHandlerTest.java | 6 +- .../specialhandlers/StructureHandlerTest.java | 28 +- .../IrisSettingsDefaultsTest.java | 2 +- .../IrisSettingsRewriteFailureTest.java | 2 +- .../SettingsHotloadWatchTest.java | 6 +- .../LogFilterSVCTest.java | 2 +- .../splash/IrisSplashComposerTest.java | 2 +- .../FloatingIslandBoundarySamplerTest.java | 10 +- .../FloatingIslandSampleBottomYTest.java | 6 +- .../biome}/IrisBiomeCeilingLayerTest.java | 4 +- .../biome}/IrisBiomeCompatChildrenTest.java | 23 +- .../biome}/IrisBiomeCustomCompatTest.java | 12 +- .../biome}/IrisBiomeCustomSpawnTest.java | 2 +- .../IrisBiomeCustomTagInheritanceTest.java | 2 +- .../biome}/IrisBiomeDerivativeCompatTest.java | 4 +- .../IrisBiomeGeneratorSeedIsolationTest.java | 10 +- .../IrisBiomeInferenceIsolationTest.java | 6 +- .../biome}/IrisBiomeLayerSlopeSourceTest.java | 13 +- .../biome}/IrisBiomeLockedLayerTest.java | 2 +- ...isBiomePaletteLayerGeneratorCacheTest.java | 10 +- .../IrisBiomeStructureDerivativeTest.java | 4 +- ...atingChildBiomesCarvingResolutionTest.java | 11 +- .../IrisFloatingChildBiomesResolverTest.java | 5 +- .../IslandObjectPlacerAnchorFaceTest.java | 8 +- .../block}/IrisObjectBlockDataMergeTest.java | 4 +- .../block}/PlatformStateRebindTest.java | 22 +- .../cache/AtomicCacheTest.java | 2 +- .../cache/LazyBoundedCacheTest.java | 2 +- .../BurstExecutorSupportReentrantTest.java | 2 +- .../context/ChunkContextPrefillPlanTest.java | 12 +- .../ChunkedDoubleDataCacheOverrideTest.java | 4 +- .../context/IrisContextIsolationTest.java | 4 +- .../decoration}/DecoratorCoreTest.java | 15 +- .../IrisDecoratorCaveContextTest.java | 22 +- .../decoration}/IrisDecoratorHeightTest.java | 6 +- .../decoration}/IrisDepositTuningTest.java | 15 +- .../decoration}/IrisOreGeneratorTest.java | 8 +- .../IrisSeaDecoratorBoundsTest.java | 10 +- .../IrisShoreLineDecoratorTest.java | 24 +- .../IrisSugarCanePlacementTest.java | 19 +- .../decoration}/IrisSugarCaneTest.java | 25 +- .../IrisSurfaceDecoratorSlopeTest.java | 9 +- .../decoration}/coral/CoralGeneratorTest.java | 12 +- .../formation/FormationBlockResolverTest.java | 9 +- .../formation/FormationShapeBuilderTest.java | 5 +- .../fungus}/FungusStemBuilderTest.java | 5 +- .../tree/ProceduralTreeGeneratorTest.java | 12 +- .../tree}/TreeBlockMaterialTest.java | 2 +- .../tree/TreeBlockResolverTest.java | 10 +- .../tree/TreeDecoratorApplierTest.java | 5 +- .../HydrologyCaveCourseFilterTest.java | 18 +- .../HydrologyCaveTerminalAlignmentTest.java | 28 +- .../HydrologyCoastalDropReservoirTest.java | 4 +- .../HydrologyColumnSampleAccessorTest.java | 2 +- .../HydrologyCrossTileCaveAdmissionTest.java | 18 +- ...ydrologyCrossTileSurfaceAdmissionTest.java | 2 +- .../HydrologyFootprintCompilerTest.java | 2 +- .../hydrology/HydrologyForkJoinTest.java | 2 +- .../hydrology/HydrologyModelTest.java | 18 +- .../HydrologyMouthDropReservoirTest.java | 4 +- .../HydrologyOceanBoundaryRefinerTest.java | 2 +- .../hydrology/HydrologyOceanReceiverTest.java | 2 +- .../HydrologyOutletBoundaryPolicyTest.java | 4 +- .../hydrology/HydrologyPlanHashTest.java | 6 +- .../HydrologyPlannerConfinementTest.java | 4 +- ...CrossTileCaveAdmissionIntegrationTest.java | 18 +- .../HydrologyPlannerGlobalInvariantTest.java | 16 +- .../HydrologyPlannerRoutingSamplerTest.java | 2 +- .../HydrologyPlannerSeaCaveTest.java | 6 +- .../HydrologyPlannerSettingsTest.java | 4 +- .../HydrologyPlannerSurfacePoolTest.java | 2 +- .../hydrology/HydrologyPlannerTest.java | 14 +- .../HydrologyPlannerTributaryTest.java | 4 +- .../HydrologyPlannerUndergroundKnobsTest.java | 10 +- .../HydrologyRegionalAdaptiveBendsTest.java | 2 +- .../HydrologyRegionalBankSupportTest.java | 14 +- .../hydrology/HydrologyRegionalCacheTest.java | 2 +- ...drologyRegionalCandidateSelectionTest.java | 2 +- .../HydrologyRegionalConnectivityTest.java | 2 +- .../HydrologyRegionalCourseGraphTest.java | 2 +- .../hydrology/HydrologyRegionalFallsTest.java | 14 +- .../HydrologyRegionalFloodedMouthTest.java | 4 +- .../hydrology/HydrologyRegionalGraphTest.java | 4 +- .../HydrologyRegionalHydraulicsTest.java | 4 +- .../HydrologyRegionalMeanderScaleTest.java | 4 +- .../HydrologyRegionalMorphologyTest.java | 2 +- .../HydrologyRegionalMouthRefinementTest.java | 10 +- .../HydrologyRegionalPlannerTest.java | 4 +- .../HydrologyRegionalSkippedWaypointTest.java | 2 +- .../HydrologyRegionalSourceTrialsTest.java | 2 +- .../HydrologyRegionalSurfacePolicyTest.java | 4 +- .../HydrologyRegionalTerrainRefinerTest.java | 6 +- .../HydrologyRegionalTributariesTest.java | 4 +- .../HydrologyRegionalWidthAdaptationTest.java | 8 +- .../HydrologyRegionalWidthSupportTest.java | 16 +- .../hydrology/HydrologyRouteLengthsTest.java | 2 +- .../HydrologyRouteTurnCacheTest.java | 2 +- .../HydrologyStyledGeometryTest.java | 10 +- .../HydrologySurfaceDropRasterTest.java | 28 +- .../HydrologySurfaceGeometryPolicyTest.java | 14 +- .../HydrologySurfaceProfilesTest.java | 8 +- .../HydrologySurfaceRouteGeometryTest.java | 2 +- .../HydrologyTerrainCaveVoxelViewTest.java | 6 +- .../hydrology/HydrologyTerrainSampleTest.java | 4 +- .../HydrologyTerrainSamplerTest.java | 2 +- .../hydrology/HydrologyTileCacheTest.java | 6 +- .../IrisRiverConfigurationTest.java | 6 +- .../hydrology/RiverFootprintTest.java | 2 +- .../StudioHydrologyTileStoreTest.java | 4 +- .../hydrology/cave/CavePositionIndexTest.java | 2 +- .../HydrologyCaveContainmentPlannerTest.java | 6 +- .../cave/HydrologyCaveIterationOrderTest.java | 2 +- .../hydrology/cave/HydrologyCavePlanTest.java | 2 +- .../cave/HydrologyCaveStorageTest.java | 2 +- .../policy/RiverPolicyResolverTest.java | 14 +- .../HydrologyFeatureSearchBoundsTest.java | 2 +- .../runtime/HydrologyFeatureSearchTest.java | 4 +- .../runtime/IrisHydrologyBiomePatchTest.java | 2 +- .../IrisHydrologyPhysicalOceanTest.java | 48 +- .../runtime/IrisHydrologyPolicyCacheTest.java | 24 +- ...risHydrologyRoutingTerrainSamplerTest.java | 8 +- .../IrisHydrologyRuntimeDiagnosticsTest.java | 2 +- .../IrisHydrologySettingsCompilerTest.java | 34 +- .../surface/ChannelProfileBuilderTest.java | 14 +- .../surface/ErosionFieldCompilerTest.java | 22 +- .../surface/SurfaceBendProfileTest.java | 10 +- .../surface/SurfaceCellAdmissionTest.java | 4 +- .../surface/SurfaceCenterlineTest.java | 4 +- .../surface/SurfaceCourseBuilderTest.java | 18 +- .../surface/SurfaceExcavationMetricsTest.java | 4 +- .../surface/SurfaceFootprintCompilerTest.java | 30 +- .../hydrology/surface/SurfaceNoiseTest.java | 2 +- .../surface/SurfaceSegmentLabelerTest.java | 10 +- .../surface/ValleyProfileSolverTest.java | 14 +- .../image/IrisImageMapCompilerTest.java | 11 +- .../image/IrisImageMapMaskSamplerTest.java | 8 +- .../image/IrisImageMapRuntimeTest.java | 13 +- .../locator}/HintedLocatorTest.java | 41 +- .../locator}/LocatorCancellerTest.java | 2 +- .../locator}/LocatorPoiCoordinateTest.java | 12 +- .../mantle}/CarveOrphanSweepTest.java | 2 +- .../mantle}/CaveDensityTasksTest.java | 2 +- .../CaveObjectPlacementTransactionTest.java | 14 +- .../mantle/EngineMantleCleanupTest.java | 12 +- .../mantle/EngineMantleCoverageTest.java | 4 +- .../mantle/EngineMantleMarkerTest.java | 8 +- ...loatingObjectPlacementTransactionTest.java | 6 +- .../IrisCaveCarver3DNearParityTest.java | 29 +- .../IrisStructureComponentMarkerTest.java | 12 +- .../IrisStructureComponentOverboreTest.java | 2 +- .../IrisStructureFoundationWriteTest.java | 7 +- ...tleCarvingComponentBoundaryRadiusTest.java | 16 +- .../MantleCarvingComponentScratchTest.java | 24 +- .../MantleCarvingComponentTop2BlendTest.java | 8 +- ...tingObjectComponentBoundaryRadiusTest.java | 21 +- ...gObjectComponentInvertedPlacementTest.java | 10 +- .../MantleHydrologyCaveVoxelViewTest.java | 22 +- .../mantle}/MantleHydrologyComponentTest.java | 74 +- ...ntleObjectComponentBoundaryRadiusTest.java | 49 +- .../MantleObjectComponentCaveAnchorTest.java | 10 +- ...jectComponentCollisionDeterminismTest.java | 3 +- ...leObjectComponentProceduralChanceTest.java | 2 +- ...MantleWriterNeighborhoodBenchmarkTest.java | 4 +- .../mantle/MantleWriterNeighborhoodTest.java | 4 +- .../mantle/MantleWriterOverlayTest.java | 16 +- .../mantle/MantleWriterParallelismTest.java | 2 +- .../MantleWriterPreObjectJournalTest.java | 12 +- .../MatterGeneratorCarvePassRadiusTest.java | 10 +- .../MatterGeneratorConcurrencyTest.java | 14 +- .../ObjectDestinationTransactionTest.java | 24 +- .../mantle}/ObjectSourcePlanCacheTest.java | 2 +- .../mantle/ResolvedTerrainPlacementTest.java | 16 +- .../mantle}/StructureCarveEnvelopeTest.java | 8 +- .../StructureCarvingFootprintTest.java | 10 +- .../StructureFoundationPlannerTest.java | 2 +- .../mantle}/SurfaceFluidBoundaryPlanTest.java | 2 +- .../mantle/TerrainComposedCavernTest.java | 12 +- .../mantle/TerrainMatterViewTest.java | 12 +- .../noise/ImageNoiseTest.java | 12 +- .../IrisExpressionLoadEngineCacheTest.java | 13 +- .../IrisGeneratorStyleCacheIsolationTest.java | 8 +- .../noise}/IrisNoiseGeneratorCacheTest.java | 8 +- .../noise}/IrisNoiseGeneratorRemapTest.java | 2 +- .../noise}/NoiseStyleContractTest.java | 10 +- .../noise/PatternNoiseStyleTest.java | 33 + .../runtime}/DimensionStackLayoutTest.java | 2 +- .../DimensionTerrain3DCompositionTest.java | 34 +- .../DimensionTerrainContextFallbackTest.java | 17 +- ...gineAssignedWorldManagerLifecycleTest.java | 2 +- ...ngineAssignedWorldManagerTeleportTest.java | 4 +- .../EngineBackgroundTasksAdmissionTest.java | 7 +- .../runtime}/EngineComponentTest.java | 2 +- .../EngineDiagnosticsFailureTest.java | 2 +- .../runtime}/EngineHostHeightTest.java | 11 +- .../runtime}/EngineLifecycleTasksTest.java | 4 +- .../runtime}/EngineMaintenanceTest.java | 4 +- .../runtime}/EngineModeBurstAroundTest.java | 8 +- .../runtime}/EngineModeMaintenanceTest.java | 2 +- .../runtime}/EngineMulticoreDecisionTest.java | 2 +- .../runtime}/EnginePanicTest.java | 2 +- .../runtime}/EnginePlayerTest.java | 14 +- .../runtime}/EnginePreviewColorTest.java | 12 +- ...EngineRuntimeBuilderStudioServiceTest.java | 12 +- .../runtime}/EngineShutdownDrainTest.java | 37 +- .../runtime}/EngineTelemetrySnapshotTest.java | 2 +- .../GenerationSessionManagerTest.java | 2 +- .../GenerationTransitionGateTest.java | 2 +- .../runtime}/GlobalCacheSVCTest.java | 4 +- .../IrisCarveWallPaletteScopeTest.java | 30 +- .../runtime}/IrisComplexBiomeBuffetTest.java | 18 +- .../IrisComplexBoundsBiomeCacheTest.java | 23 +- ...risComplexConstantGeneratorBoundsTest.java | 4 +- .../IrisComplexGeneratorOrderingTest.java | 8 +- .../IrisComplexGridBoundsCacheTest.java | 15 +- .../IrisComplexImplodeParityTest.java | 8 +- ...isComplexInferredBiomeStreamCacheTest.java | 12 +- .../IrisComplexNaturalBiomeReuseTest.java | 23 +- .../IrisComplexSelfSelectionTest.java | 10 +- .../runtime}/IrisComplexStudioCacheTest.java | 3 +- .../runtime}/IrisComplexSurfaceBiomeTest.java | 20 +- .../runtime}/IrisComplexTransitionTest.java | 10 +- .../IrisEngineDataPersistenceTest.java | 5 +- .../IrisEngineGenerationRuntimeScopeTest.java | 54 +- .../runtime}/IrisEngineLifecycleGateTest.java | 2 +- .../runtime}/IrisEngineModeLifecycleTest.java | 2 +- .../IrisEnginePlatformHookIsolationTest.java | 34 +- .../runtime}/IrisEnginePreviewTest.java | 16 +- .../IrisEngineStudioEntryHydrologyTest.java | 21 +- .../runtime}/IrisEngineWorldSaveTest.java | 11 +- .../runtime}/IrisWorldManagerMarkerTest.java | 2 +- .../IrisWorldManagerNativePoiTest.java | 7 +- .../IrisWorldManagerShutdownTest.java | 6 +- .../NativeStructureBootstrapBarrierTest.java | 2 +- .../runtime}/PreservationSVCTest.java | 4 +- .../runtime}/ResolvedTerrainProviderTest.java | 31 +- .../runtime}/SharedCornerBoundsTest.java | 2 +- .../runtime}/StudioGenerationUpdateTest.java | 10 +- .../UpperDimensionImageMapRuntimeTest.java | 8 +- .../UpperDimensionTransitionTest.java | 13 +- .../runtime}/WorldBlockDropRouterTest.java | 22 +- .../WorldChunkMaintenanceRoutingTest.java | 14 +- .../WorldChunkMaintenanceSavedBiomeTest.java | 9 +- .../runtime}/WorldEntitySpawnerBiomeTest.java | 24 +- .../WorldEntitySpawnerLifecycleTest.java | 20 +- .../runtime}/WorldTeleportWarmupTest.java | 2 +- .../simd/SimdKernelsTest.java | 2 +- .../simd/SimdSupportStatusTest.java | 4 +- .../IrisBiomeActuatorCoordinateTest.java | 22 +- .../IrisCarveModifierBiomeBlendTest.java | 10 +- .../IrisCarveModifierBoundarySupportTest.java | 22 +- .../IrisCarveModifierFluidIntentTest.java | 2 +- ...risCarveModifierHydrologyMaterialTest.java | 12 +- .../IrisCarveModifierHydrologyTest.java | 6 +- ...isCarveModifierInferenceIsolationTest.java | 24 +- .../IrisCarveModifierZoneParityTest.java | 2 +- .../stage}/IrisCarveScratchTest.java | 2 +- .../stage}/IrisDecorantActuatorRiverTest.java | 12 +- .../IrisDepositModifierContainmentTest.java | 12 +- .../IrisDepositModifierContextTest.java | 24 +- .../IrisDepositModifierOrderingTest.java | 26 +- .../stage}/IrisDepositModifierParityTest.java | 30 +- .../IrisDepositModifierProbabilityTest.java | 2 +- ...risDimensionStackActuatorMetadataTest.java | 12 +- ...isFloatingChildBiomeModifierStackTest.java | 4 +- .../stage}/IrisNaturalCaveScanTest.java | 25 +- .../IrisPerfectionModifierSpeleothemTest.java | 8 +- .../stage}/IrisPostModifierHydrologyTest.java | 2 +- ...risTerrainNormalActuatorHydrologyTest.java | 46 +- .../IrisTransitionGeometryActuatorTest.java | 20 +- .../stream}/ContextInjectingStreamTest.java | 10 +- .../HydrologyBankTerrainRuntimeTest.java | 22 +- .../terrain}/IrisDimensionBiomeTagTest.java | 2 +- ...risDimensionCarvingResolverParityTest.java | 20 +- .../IrisDimensionCompatRegionTest.java | 26 +- .../IrisDimensionFocusRegionTest.java | 9 +- .../IrisDimensionReachableBiomesTest.java | 12 +- .../IrisDimensionRuntimeContractTest.java | 7 +- .../terrain}/IrisDimensionTypeKeyTest.java | 2 +- ...IrisMaterialPaletteGeneratorCacheTest.java | 10 +- .../terrain}/IrisRegionCompatPoolTest.java | 29 +- .../terrain/Terrain3DColumnFixtures.java | 2 +- .../terrain/Terrain3DFragmentFilterTest.java | 2 +- .../terrain/Terrain3DRuntimeTest.java | 5 +- .../terrain/Terrain3DSurfaceSlopeTest.java | 6 +- .../validation}/GoldenHashEngineTest.java | 8 +- .../ExternalDataSVCBlockRoutingTest.java | 14 +- .../ExternalDataSVCContentChangeTest.java | 6 +- .../ExternalDataSVCRegistryTest.java | 4 +- .../link => integration}/IdentifierTest.java | 2 +- .../MultiverseCoreLinkTest.java | 2 +- .../MultiverseGuardListenerTest.java | 6 +- .../MultiverseSVCTest.java | 6 +- .../WorldEditLinkDetectionTest.java | 2 +- .../data/DataTypeProbeContractTest.java | 6 +- .../ExternalDataProviderDefaultsTest.java | 6 +- .../data/ProviderNamespaceClaimTest.java | 4 +- .../IrisDownloadValidationTest.java | 2 +- .../localization/IrisLanguageEditorTest.java | 2 +- .../localization/IrisLanguageGuideTest.java | 2 +- .../IrisLanguageHotloadSnapshotTest.java | 2 +- .../localization/IrisLanguageTest.java | 4 +- .../localization/ResetMantleHelpTextTest.java | 2 +- .../pack/AtomicDirectoryPublisherTest.java | 2 +- .../pack/ContentKeyValidatorTest.java | 6 +- .../DefaultPackBootstrapProvisionerTest.java | 8 +- .../pack/PackBiomeLayerValidatorTest.java | 2 +- .../pack/PackCaveProfileValidatorTest.java | 2 +- .../pack/PackDirectoryResolverTest.java | 2 +- .../pack/PackDownloadExecutionTest.java | 4 +- .../{core => }/pack/PackDownloaderTest.java | 16 +- .../pack/PackExportClosureTest.java | 16 +- .../PackGeneratorDuplicateValidatorTest.java | 2 +- .../pack/PackHydrologyValidatorTest.java | 2 +- .../pack/PackImageMapValidatorTest.java | 2 +- .../pack/PackObjectScaleFactorTest.java | 2 +- .../pack/PackResourceCleanupTest.java | 2 +- .../pack/PackRiverBank3DValidatorTest.java | 2 +- .../pack/PackStaticObjectValidatorTest.java | 2 +- .../PackStyledRangeDefaultValidatorTest.java | 2 +- .../pack/PackTerrain3DValidatorTest.java | 2 +- .../pack/PackValidationCacheTest.java | 8 +- .../pack/PackValidationRegistryTest.java | 2 +- .../pack/PackValidatorCompatTest.java | 8 +- .../PackValidatorCustomBiomeSpawnTest.java | 2 +- .../PackValidatorDimensionHeightTest.java | 8 +- .../pack/PackValidatorDimensionStackTest.java | 2 +- ...kValidatorImportedStructurePolicyTest.java | 2 +- .../pack/PackValidatorLootTest.java | 8 +- .../pack/PackValidatorReadOnlyTest.java | 2 +- ...PackValidatorRemovedWorldgenFieldTest.java | 2 +- .../pack/PackValidatorSpawnerEntityTest.java | 2 +- .../pack/PackValidatorStructureGraphTest.java | 2 +- ...kValidatorStructureTerrainBackendTest.java | 2 +- .../PackValidatorStructureTransformTest.java | 2 +- .../pack/PackValidatorSurfaceSupportTest.java | 2 +- .../pack/PackValidatorWorldBoundaryTest.java | 2 +- .../pack/StructureGraphPackValidatorTest.java | 2 +- .../StructurePackageClosureLimitsTest.java | 2 +- .../pack/StructurePackageClosureTest.java | 2 +- .../datapack/DatapackIngestServiceTest.java | 22 +- .../datapack}/DatapackInstallResultTest.java | 2 +- .../DatapackStructureScopeIndexTest.java | 2 +- ...sDatapackCompilerInputFingerprintTest.java | 16 +- .../datapack}/IrisDatapackCompilerTest.java | 30 +- .../datapack/ModrinthResolverTest.java | 2 +- ...erConfiguratorDatapackFingerprintTest.java | 3 +- ...rConfiguratorRegistryVerificationTest.java | 18 +- .../ServerConfiguratorStartupRestartTest.java | 2 +- .../loading}/ImageResourceLoaderTest.java | 2 +- .../loading}/IrisDataAuthoringCacheTest.java | 8 +- .../IrisDataDatapackCompilerCacheTest.java | 6 +- .../loading}/IrisDataEngineRegistryTest.java | 10 +- .../loading}/IrisDataRetainedPackTest.java | 8 +- .../loading}/ResourceLoaderPrefetchTest.java | 12 +- ...ourceLoaderStaticObjectValidationTest.java | 8 +- .../schema}/SchemaBuilderIdentityTest.java | 42 +- .../schema}/SchemaBuilderParityTest.java | 86 +- .../validation}/CompatFixtures.java | 6 +- .../ContentGatePlaceholderTest.java | 20 +- .../validation}/ContentGateTest.java | 6 +- .../validation}/ContentGateWalkerTest.java | 36 +- .../IrisBlockDataResolutionTest.java | 8 +- .../validation}/PackCompatReportTest.java | 2 +- .../value}/HydrologyEnumDescriptionsTest.java | 22 +- .../value}/IrisDurationTest.java | 2 +- .../IrisMathNoiseHotPathParityTest.java | 15 +- .../value}/IrisPlatformIsolationTest.java | 6 +- .../value}/IrisRaritySelectionTest.java | 8 +- .../value}/PlatformStateHookContractTest.java | 6 +- .../value}/RemovedDeadFieldsTest.java | 10 +- .../value}/SchemaMetadataCorrectionsTest.java | 25 +- .../bootstrap}/WebCacheTest.java | 2 +- .../bukkit}/BoardSVCJigsawContextTest.java | 7 +- .../bukkit}/BoardSVCSavedBiomeTest.java | 37 +- .../BoardSVCStudioEligibilityTest.java | 6 +- .../BukkitCustomBlockTransformTest.java | 10 +- .../bukkit/BukkitSpiConformanceTest.java | 6 +- .../bukkit}/nms/MinecraftVersionTest.java | 2 +- .../bukkit}/nms/NmsBindingSelectorTest.java | 2 +- .../nms/ServerShutdownBoundaryTest.java | 2 +- .../bukkit}/nms/datapack/DataVersionTest.java | 2 +- .../v1217/DataFixerV1217ClockTest.java | 4 +- .../v1217/DataFixerV1217CustomBiomeTest.java | 6 +- .../DataFixerV1217DimensionTypeTest.java | 6 +- .../v1X/NMSBinding1XWorldGenerationTest.java | 4 +- .../VolmitSenderComponentDeliveryTest.java | 6 +- .../BukkitChunkGeneratorCloseTest.java | 4 +- ...ChunkGeneratorGenerationStageGateTest.java | 2 +- .../BukkitChunkGeneratorInitialSpawnTest.java | 4 +- ...tChunkGeneratorInitializationModeTest.java | 16 +- ...ukkitChunkGeneratorSpawnHydrologyTest.java | 16 +- ...ukkitChunkGeneratorStartupContentTest.java | 12 +- ...kkitChunkGeneratorStudioSelectionTest.java | 20 +- .../generation}/EngineBukkitOpsBiomeTest.java | 8 +- ...eBukkitOpsDeferredMaterializationTest.java | 24 +- .../generation}/EngineBukkitOpsLootTest.java | 2 +- .../IrisCursorRequestServiceTest.java | 6 +- .../protocol/IrisCursorResolverTest.java | 10 +- .../protocol/IrisMessageCodecTest.java | 2 +- .../IrisProtocolMessageCoverageTest.java | 2 +- .../protocol/IrisProtocolServerTest.java | 10 +- .../protocol/IrisTileEncoderTest.java | 2 +- .../IrisVisionRequestServiceTest.java | 2 +- .../CoreProcessStreamPurityGateTest.java | 2 +- .../purity/PackTypeBukkitPurityGateTest.java | 60 +- .../purity/SwallowedFailurePolicyTest.java | 43 +- .../iris/spi/PacksFolderContractTest.java | 2 +- ...BulkStructureImporterTemplateNameTest.java | 2 +- .../FeatureImporterScratchLifecycleTest.java | 2 +- .../StructureCaptureImporterFailureTest.java | 2 +- ...ureCaptureImporterTargetSelectionTest.java | 2 +- .../StructureImporterCaptureTest.java | 4 +- .../structure/StructureImporterModeTest.java | 2 +- .../structure/StructureIndexServiceTest.java | 12 +- .../structure/StructureSchemaKeysTest.java | 2 +- .../structure/VillageImporterBundleTest.java | 24 +- ...VillageImporterConnectorRoundTripTest.java | 30 +- .../VillageImporterFailureLogTest.java | 2 +- .../VillageImporterListPoolElementTest.java | 8 +- .../VillageImporterMaxDistanceReadTest.java | 2 +- .../IrisDataStructureRecoveryTest.java | 8 +- .../structure/authoring/StructureKeyTest.java | 2 +- .../StructureOwnershipProvenanceTest.java | 2 +- .../StructureResourceBundleTest.java | 2 +- .../StructureTransactionClaimTest.java | 2 +- .../StructureTransactionWriterTest.java | 2 +- .../IrisStructureAdoptionServiceTest.java | 14 +- .../IrisStructureAdoptionValueTest.java | 2 +- .../export/VanillaBlockStateTest.java | 2 +- .../VanillaJigsawDatapackExporterTest.java | 34 +- .../VanillaJigsawExportRequestTest.java | 6 +- .../export/VanillaResourceIdentifierTest.java | 2 +- ...nillaStructureTemplateOrientationTest.java | 4 +- .../graph}/IrisObjectFrameReaderTest.java | 4 +- .../graph}/JigsawPoolSelectionTest.java | 12 +- .../PlanarJigsawWorkcellResolverTest.java | 18 +- .../graph}/StructureAssemblyResultTest.java | 4 +- .../graph}/StructureGraphCompilerTest.java | 30 +- ...uctureResourceBundleGraphCompilerTest.java | 10 +- .../jigsaw}/IrisJigsawCompatTest.java | 11 +- .../jigsaw}/IrisJigsawModelMetadataTest.java | 5 +- .../jigsaw}/IrisJigsawRulesModelTest.java | 10 +- .../IrisImportedFeatureControlTest.java | 4 +- .../IrisImportedStructureControlTest.java | 8 +- .../NativeFeatureGenerationPolicyTest.java | 12 +- .../NativeStructureFrequencyScaleTest.java | 2 +- .../NativeStructureGenerationPolicyTest.java | 16 +- .../NativeStructureObjectVetoTest.java | 21 +- .../NativeStructureOwnershipRecordTest.java | 12 +- .../NativeStructureOwnershipStoreTest.java | 16 +- .../NativeStructurePlacementPlannerTest.java | 25 +- .../NativeStructureVolumeMemoTest.java | 5 +- .../NativeStructureVolumeSuppressionTest.java | 14 +- .../nativegen}/NativeStructureVolumeTest.java | 2 +- .../object}/HeightmapObjectPlacerTest.java | 6 +- .../object/IObjectPlacerFluidHeightTest.java | 10 +- .../IrisAxisRotationClampPurityTest.java | 2 +- .../object/IrisObjectCopyTest.java | 8 +- .../object/IrisObjectDirectPlacementTest.java | 8 +- .../object/IrisObjectGlobalScaleTest.java | 8 +- .../object/IrisObjectIoPaletteTest.java | 6 +- .../object/IrisObjectIoWriteLimitsTest.java | 7 +- .../object/IrisObjectPaletteScanTest.java | 2 +- .../object/IrisObjectPlacementCompatTest.java | 15 +- ...isObjectPlacementRunnerRegressionTest.java | 17 +- ...isObjectPlacementSurfaceWarpCacheTest.java | 13 +- .../IrisObjectPlacementToPlacementTest.java | 12 +- .../object/IrisObjectRotationFlipTest.java | 4 +- .../object/IrisObjectScaleCacheTest.java | 4 +- .../object/IrisObjectShapingTest.java | 4 +- .../IrisObjectStructurePieceAirTest.java | 2 +- ...IrisObjectSurfaceSupportPlacementTest.java | 15 +- ...ObjectTransformsNearestBlockIndexTest.java | 8 +- .../object/IrisObjectTransformsTileTest.java | 8 +- .../object/IrisObjectTransientBlockTest.java | 7 +- .../object/IrisObjectVacuumTest.java | 4 +- .../IrisPaintSurfaceProjectionTest.java | 2 +- .../object/IrisStaticObjectCompatTest.java | 21 +- .../object/IrisStaticObjectLayerTest.java | 20 +- .../object/IrisStaticObjectTest.java | 5 +- .../object/IrisSurfaceSupportTest.java | 16 +- .../IrisStructureAnchorModeTest.java | 2 +- .../IrisStructureLocatorContractTest.java | 44 +- .../IrisStructureLootPlacementTest.java | 4 +- ...isStructurePlacementCarveSettingsTest.java | 8 +- ...IrisStructurePlacementRingLocatorTest.java | 13 +- .../IrisStructureStiltSettingsTest.java | 6 +- .../placement}/IrisStructureYBandTest.java | 6 +- .../placement}/LootResolverClearModeTest.java | 4 +- .../placement}/LootResolverTest.java | 26 +- .../StructureAssemblerCompatTest.java | 33 +- .../placement}/StructureAssemblerTest.java | 33 +- .../StructureCaveAnchorResolverTest.java | 12 +- .../StructurePlacementGridTest.java | 5 +- .../StructurePlacementMarkerTest.java | 2 +- .../StructurePlacementScopeTest.java | 14 +- .../StructureReachabilityContractTest.java | 8 +- .../StructureVerticalBoundsTest.java | 2 +- .../PackDownloadProgressReporterTest.java | 8 +- .../StudioSVCJigsawProtectionTest.java | 26 +- .../StudioSVCPackAdmissionTest.java | 12 +- .../StudioSVCPackDownloadContractTest.java | 8 +- .../StudioSVCProjectSafetyTest.java | 6 +- .../StudioSVCWorldPackPublishTest.java | 16 +- .../JigsawStudioGeneratorTest.java | 56 +- .../generation}/ObjectStudioGeometryTest.java | 28 +- .../jigsaw/JigsawPlanarTopologyTest.java | 4 +- .../jigsaw/JigsawStudioActivationTest.java | 4 +- .../JigsawStudioGraphEditorResizeTest.java | 14 +- .../jigsaw/JigsawStudioGraphMapperTest.java | 36 +- .../jigsaw}/JigsawStudioHistoryStoreTest.java | 24 +- .../jigsaw/JigsawStudioLayoutTest.java | 2 +- .../jigsaw}/JigsawStudioLifecycleTest.java | 20 +- ...JigsawStudioManagedAuthoringGuardTest.java | 12 +- .../jigsaw}/JigsawStudioMarkerParserTest.java | 8 +- .../JigsawStudioMenuControllerTest.java | 12 +- .../JigsawStudioPersistenceEditorsTest.java | 24 +- .../JigsawStudioPersistenceIdentityTest.java | 15 +- .../JigsawStudioPreviewRendererTest.java | 12 +- .../JigsawStudioProjectCreatorTest.java | 22 +- ...gsawStudioResourceBundleAssemblerTest.java | 32 +- .../JigsawStudioServiceCaptureTest.java | 52 +- .../jigsaw/JigsawStudioSessionTest.java | 2 +- .../jigsaw}/JigsawStudioToolCodecTest.java | 4 +- .../JigsawStudioTripleSneakTrackerTest.java | 2 +- .../JigsawStudioVisualizationBoundsTest.java | 13 +- .../object}/ObjectSVCUndoCustomBlockTest.java | 10 +- .../object}/ObjectStudioLayoutTest.java | 8 +- .../object}/ObjectStudioSaveSourceTest.java | 6 +- .../ObjectStudioTileRestorationTest.java | 14 +- .../object}/StudioEntitySpawningTest.java | 5 +- ...tudioOpenCoordinatorCloseSequenceTest.java | 4 +- .../StudioOpenCoordinatorOpenKindTest.java | 6 +- ...enCoordinatorSpawnStuckRegressionTest.java | 2 +- .../IrisRendererPerformanceContractTest.java | 10 +- .../render/IrisRendererRiverTest.java | 28 +- .../tree}/TreePlausibilizerTest.java | 6 +- .../view}/GuiHostServerGuiLaunchTest.java | 4 +- .../gui => studio/view}/GuiHostTest.java | 2 +- .../view}/ImageMapStudioGUITest.java | 4 +- .../view}/ImageMapStudioModelTest.java | 18 +- .../view}/ImageMapStudioPreviewPanelTest.java | 22 +- .../view}/NoiseExplorerGUITest.java | 6 +- .../gui => studio/view}/NoisePaletteTest.java | 2 +- .../view}/NoiseRenderCoordinatorTest.java | 2 +- .../view}/NoiseViewportTest.java | 2 +- .../view}/PregenMapPanelTest.java | 4 +- .../view}/PregeneratorJobOwnerDrainTest.java | 4 +- .../PregeneratorJobPlatformIsolationTest.java | 2 +- .../PregeneratorJobRenderSnapshotTest.java | 8 +- .../view}/PregeneratorJobSavedBiomeTest.java | 6 +- .../PregeneratorJobShutdownDispatchTest.java | 12 +- .../PregeneratorJobTerminalProgressTest.java | 14 +- .../view}/VisionRenderControllerTest.java | 6 +- .../view}/VisionRenderTypeTest.java | 6 +- .../view}/VisionViewportTest.java | 2 +- .../workspace}/ExternalBlockSchemaTest.java | 10 +- .../ImageMapStudioExporterTest.java | 16 +- .../ImportedFeatureControlSchemaTest.java | 18 +- .../workspace}/IrisCodeWorkspaceTest.java | 10 +- .../IrisDimensionStackSchemaTest.java | 20 +- .../workspace}/IrisImageMapSchemaTest.java | 20 +- .../workspace}/IrisProjectCopierTest.java | 2 +- .../IrisProjectEntityDependencyTest.java | 6 +- .../workspace}/IrisRiverSchemaTest.java | 20 +- .../IrisStaticObjectSchemaTest.java | 22 +- .../IrisWorldBoundarySchemaTest.java | 10 +- .../NativeStructureSuppressionSchemaTest.java | 18 +- .../VanillaStructurePrefixSchemaTest.java | 22 +- .../CompatTestPlatform.java | 18 +- .../KeyedBlockState.java | 6 +- .../PackCompatFixtures.java | 45 +- .../util/common/math/ChunkSpiralTest.java | 55 - .../IrisInterpolationBoundsTest.java | 141 -- .../IrisInterpolationSamplingTest.java | 168 -- .../noise/CNGDimensionDispatchTest.java | 260 -- .../project/noise/CNGFastPathParityTest.java | 148 -- .../project/noise/CNGInjectorParityTest.java | 188 -- .../noise/CNGSignedStateMutationTest.java | 176 -- .../noise/CellularNoisePrecisionTest.java | 57 - .../util/project/noise/ChladniNoiseTest.java | 69 - .../util/project/noise/CircuitNoiseTest.java | 45 - .../noise/ClassicNoiseQualityTest.java | 178 -- .../noise/CloverNoiseBoundaryTest.java | 46 - .../project/noise/CloverNoiseParityTest.java | 105 - .../util/project/noise/CraterNoiseTest.java | 82 - .../FastNoiseDoubleCellularParityTest.java | 222 -- .../project/noise/FastNoiseFloorTest.java | 33 - .../util/project/noise/GaborNoiseTest.java | 40 - .../project/noise/GeometricNoiseTest.java | 156 -- .../noise/InterpolatedNoiseDimensionTest.java | 87 - .../project/noise/KaleidoscopeNoiseTest.java | 92 - .../util/project/noise/MarbleNoiseTest.java | 29 - .../noise/MaterialPatternNoiseTest.java | 114 - .../project/noise/MengerSpongeNoiseTest.java | 83 - .../util/project/noise/NoiseOctaveTest.java | 104 - .../util/project/noise/PatternNoiseTest.java | 114 - .../util/project/noise/ScalesNoiseTest.java | 38 - .../util/project/noise/TextureNoiseTest.java | 105 - .../util/project/noise/TruchetNoiseTest.java | 70 - .../util/project/noise/VortexNoiseTest.java | 37 - .../project/noise/WavePatternNoiseTest.java | 85 - .../util/project/noise/WhiteNoiseTest.java | 40 - .../ExactWorldSlotPathPolicyTest.java | 2 +- .../IrisCreatorDatapackPreparationTest.java | 2 +- .../IrisCreatorInitialSpawnTest.java | 4 +- .../IrisCreatorTeleportTest.java | 8 +- .../IrisRuntimeSchedulerModeRoutingTest.java | 4 +- .../IrisSafeguardLockPolicyTest.java | 14 +- .../{core => world}/IrisSafeguardTest.java | 10 +- .../IrisStartupValidationTest.java | 2 +- .../IrisToolbeltEvacuationTest.java | 2 +- .../IrisToolbeltPackReferenceTest.java | 4 +- .../IrisWorldBoundaryTest.java | 2 +- .../IrisWorldIdentityTest.java | 2 +- .../{core => world}/IrisWorldStorageTest.java | 12 +- .../iris/{core => world}/IrisWorldsTest.java | 4 +- .../ProgressBossBarToggleTest.java | 4 +- .../SnapshotDirectoryTreeDeleterTest.java | 2 +- .../WorldCreationProgressReporterTest.java | 6 +- .../WorldCreatorCompatTest.java | 2 +- .../entity}/IrisEffectSurfaceTest.java | 4 +- .../entity}/IrisEntitySpawnTest.java | 9 +- .../entity}/IrisSpawnerCompatTest.java | 30 +- .../history/ArchivedRegistryCompilerTest.java | 12 +- .../history/ArchivedSemanticQueryTest.java | 10 +- .../history/BoundaryColumnGeometryTest.java | 2 +- .../BoundarySamplingConcurrencyTest.java | 2 +- .../history/ChunkGenerationOwnershipTest.java | 2 +- .../history/ChunkGenerationSemanticsTest.java | 2 +- .../DenseTransitionGeometryReference.java | 2 +- .../history/FloatingBiomeOverlayTest.java | 2 +- .../history/GenerationAdmissionTest.java | 2 +- .../history/GenerationBlendTest.java | 2 +- .../history/GenerationBoundaryStoreTest.java | 2 +- .../history/GenerationBoundaryTest.java | 2 +- .../history/GenerationBuildRevisionTest.java | 2 +- .../GenerationEpochContractFactoryTest.java | 22 +- .../history/GenerationEpochTest.java | 2 +- .../history/GenerationFindCatalogTest.java | 16 +- .../GenerationHistoryAdmissionTest.java | 2 +- .../GenerationHistoryLegacyAdoptionTest.java | 2 +- .../history/GenerationHistoryPathsTest.java | 2 +- .../GenerationHistoryRecoveryTest.java | 2 +- ...tionHistoryRuntimeRouterLifecycleTest.java | 4 +- ...tionHistoryRuntimeRouterPromotionTest.java | 4 +- ...rationHistoryRuntimeRouterRoutingTest.java | 18 +- ...GenerationHistoryRuntimeRouterSupport.java | 12 +- .../history/GenerationHistoryStoreTest.java | 2 +- .../history/GenerationHistorySupport.java | 2 +- .../history/GenerationHistoryTest.java | 2 +- .../history/GenerationKernelCatalogTest.java | 4 +- .../history/GenerationKernelRegistryTest.java | 8 +- .../history/GenerationManifestTest.java | 2 +- .../history/GenerationOrphanRecoveryTest.java | 2 +- .../GenerationPackFingerprintTest.java | 2 +- .../history/GenerationPackRepositoryTest.java | 2 +- ...GenerationRegistryContractFactoryTest.java | 30 +- .../GenerationRegistryContractTest.java | 2 +- .../GenerationSemanticBatchWriteTest.java | 2 +- .../GenerationSemanticCaptureTest.java | 22 +- .../history/GenerationSemanticIndexTest.java | 4 +- .../GenerationSemanticJournalWriteTest.java | 2 +- .../GenerationSemanticKeyValidationTest.java | 2 +- .../GenerationSemanticPointReadTest.java | 2 +- .../GenerationSemanticQueriesTest.java | 18 +- .../history/GenerationTransitionTest.java | 2 +- .../IrisBoundarySignatureSamplerTest.java | 6 +- .../NativeBiomeSpawnSelectionTest.java | 14 +- .../history/NativeTerrainReceiptTest.java | 2 +- .../RegionGenerationOwnershipTest.java | 2 +- .../history/SavedBiomeCaptureTest.java | 10 +- .../history/SavedBiomeRecoveryTest.java | 18 +- .../history/SavedBiomeRuntimeTest.java | 18 +- .../history/SavedBiomeStoreBatchTest.java | 2 +- .../history/SavedBiomeStoreTest.java | 2 +- .../history/SavedBiomeStoreWriteTest.java | 2 +- .../history/SavedTerrainChunkTest.java | 2 +- .../history/SavedTerrainTestRegion.java | 4 +- .../TerrainBoundarySignatureStoreTest.java | 2 +- .../history/TerrainBoundarySignatureTest.java | 2 +- .../TransitionFluidContainmentTest.java | 2 +- .../history/TransitionGenerationPlanTest.java | 2 +- .../TransitionGeometryBlenderTest.java | 2 +- .../history/TransitionGeometryCursorTest.java | 2 +- .../history/WorldChunkInventoryTest.java | 4 +- .../lifecycle/BukkitPublicBackendTest.java | 6 +- .../lifecycle/BukkitStartupPathsTest.java | 2 +- .../BukkitWorldConfigurationTest.java | 6 +- .../lifecycle/CapabilityResolutionTest.java | 2 +- .../lifecycle/CapabilitySnapshotFixtures.java | 4 +- .../lifecycle/HuskWorldQuarantineTest.java | 4 +- .../lifecycle/IrisRuntimeStaticsTest.java | 4 +- .../IrisWorldRemovalServiceTest.java | 4 +- .../LifecycleOperationCoordinatorTest.java | 2 +- .../lifecycle/MissingWorldStorageLogTest.java | 2 +- .../lifecycle/PaperLibBootstrapTest.java | 2 +- .../WorldLifecycleDiagnosticsTest.java | 2 +- .../lifecycle/WorldLifecycleRequestTest.java | 4 +- .../WorldLifecycleRuntimeLevelStemTest.java | 12 +- .../lifecycle/WorldLifecycleSeedTest.java | 2 +- .../WorldLifecycleSelectionTest.java | 4 +- .../lifecycle/WorldLifecycleStagingTest.java | 2 +- ...WorldLifecycleSupportCloseFailureTest.java | 2 +- .../WorldLifecycleUnloadAsyncTest.java | 2 +- .../lifecycle/WorldRemovalPathPolicyTest.java | 4 +- .../WorldReplacementBootstrapTest.java | 24 +- .../WorldReplacementEntryGuardTest.java | 2 +- .../WorldReplacementFilesystemTest.java | 12 +- .../lifecycle/WorldReplacementSeedTest.java | 2 +- .../WorldUnloadBoundaryRegistryTest.java | 2 +- .../loot}/IrisLootKeyAccessorTest.java | 2 +- .../loot}/IrisLootTableCompatTest.java | 24 +- .../AsyncPregenMethodConcurrencyCapTest.java | 3 +- .../AsyncPregenServerSaveOwnershipTest.java | 10 +- .../CachedPregenMethodCompletionTest.java | 7 +- .../pregen}/IrisPregeneratorInitTest.java | 4 +- .../pregen}/MantleHeapPressureTest.java | 2 +- .../MantleHeapPressureUrgencyTest.java | 2 +- .../MedievalPregenFlushOwnershipTest.java | 8 +- .../pregen}/PregenAdmissionGateTest.java | 2 +- .../pregen}/PregenCacheConcurrencyTest.java | 2 +- .../pregen}/PregenCacheDefaultsTest.java | 2 +- .../PregenCacheExecutorRegistrationTest.java | 6 +- .../PregenCacheImplPersistenceTest.java | 2 +- .../PregenDiagnosticsDescriptionTest.java | 2 +- .../pregen}/PregenDiagnosticsTest.java | 2 +- .../pregen}/PregenListenerDefaultsTest.java | 2 +- .../pregen}/PregenMantleBackpressureTest.java | 2 +- .../pregen}/PregenPerformanceProfileTest.java | 16 +- .../pregen}/PregenPhaseTrackerTest.java | 2 +- .../pregen}/PregenRateTrackerTest.java | 2 +- .../pregen}/PregenSavedChunkStatusTest.java | 2 +- .../pregen}/PregenSerialWorkerTest.java | 2 +- .../PregenSilentFailureContractTest.java | 16 +- .../pregen}/PregenTaskBoundsOverflowTest.java | 2 +- .../pregen}/PregenTaskChunkCountTest.java | 2 +- .../PregenTaskInterleavedTraversalTest.java | 2 +- .../pregen}/PregenTaskLatticeOrderTest.java | 2 +- .../pregen}/PregenWaitPolicyContractTest.java | 12 +- .../runtime/ChunkClearerBlocksTest.java | 2 +- .../InPlaceChunkRegeneratorDiffTest.java | 2 +- .../runtime/RuntimeInjectionTest.java | 4 +- .../TransientWorldCleanupSupportTest.java | 2 +- ...WorldRuntimeControlBackendUrgencyTest.java | 2 +- ...rldRuntimeControlServiceSafeEntryTest.java | 6 +- ...orldRuntimeControlServiceTeleportTest.java | 4 +- ...orldRuntimeControlServiceTimeLockTest.java | 6 +- .../safeguard/RuntimeLockNoticeTest.java | 2 +- .../safeguard/TasksIncompatibilityTest.java | 6 +- .../safeguard/TasksInjectionDeferralTest.java | 8 +- .../matter}/HydrologyCaveMatterTest.java | 6 +- .../matter/IrisMatterContextTest.java | 4 +- .../IrisMatterPlatformSelectionTest.java | 2 +- .../storage/matter}/PreObjectMatterTest.java | 36 +- .../matter/RegistryMatterContextTest.java | 11 +- .../task}/JHybridPlatformTest.java | 2 +- .../task}/JRepeatingTaskLifecycleTest.java | 2 +- .../tree/TreeDefinitionIndexTest.java | 20 +- .../tree/TreeMarkerTraversalTest.java | 2 +- .../tree}/TreeSVCFluidHeightTest.java | 6 +- .../tree}/TreeSVCLifecycleTest.java | 22 +- .../world-lifecycle-smoke-matrix.txt | 0 .../iris/testsupport/BukkitTestServer.java | 1 + .../iris/testsupport/DurabilityMode.java | 3 +- .../iris/testsupport/PlatformBinding.java | 1 + .../iris/testsupport/PlatformLeakGuard.java | 1 + packaging/shrink.pro | 6 +- .../art/arcane/iris/probe/ClassloadProbe.java | 12 +- .../iris/probe/DeserializationProbe.java | 16 +- .../iris/probe/GenerationOrderProbe.java | 4 +- .../arcane/iris/probe/GenerationProbe.java | 34 +- .../iris/probe/HydrologyBlockProbe.java | 14 +- .../arcane/iris/probe/HydrologyPackProbe.java | 72 +- .../iris/probe/HydrologyPlannerProbe.java | 30 +- .../iris/probe/RealPackProbeSupport.java | 38 +- .../arcane/iris/probe/RiverTransectProbe.java | 44 +- .../art/arcane/iris/probe/StubPlatform.java | 10 +- .../art/arcane/iris/probe/StubTileData.java | 2 +- .../art/arcane/iris/probe/Terrain3DProbe.java | 14 +- .../main/resources/classload-allowlist.tsv | 196 +- .../DimensionStackSuperflatProbeTest.java | 6 +- .../iris/probe/GenerationOrderProbeTest.java | 2 +- .../iris/probe/HydrologyBlockProbeTest.java | 12 +- .../iris/probe/HydrologyPackProbeTest.java | 30 +- .../iris/probe/HydrologyPlannerProbeTest.java | 6 +- .../IdentifierPlatformIsolationTest.java | 2 +- .../iris/probe/RiverTransectProbeTest.java | 8 +- .../iris/probe/StubPlatformStateTest.java | 6 +- 2666 files changed, 18279 insertions(+), 37104 deletions(-) rename adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/{core => platform/bukkit}/nms/v26_2_R1/CustomBiomeSource.java (98%) rename adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/{core => platform/bukkit}/nms/v26_2_R1/DatapackStructureStateFilter.java (98%) rename adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/{core => platform/bukkit}/nms/v26_2_R1/ImportedFeatureStage.java (96%) rename adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/{core => platform/bukkit}/nms/v26_2_R1/IrisChunkGenerator.java (97%) rename adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/{core => platform/bukkit}/nms/v26_2_R1/NMSBinding.java (97%) rename adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/{core => platform/bukkit}/nms/v26_2_R1/NativeStructurePoiUpdates.java (99%) rename adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/{core => platform/bukkit}/nms/v26_2_R1/NativeStructureWorldgenAccess.java (99%) rename adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/{core => platform/bukkit}/nms/v26_2_R1/NmsGenerationHooks.java (94%) rename adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/{core => platform/bukkit}/nms/v26_2_R1/NmsGenerationRegistry.java (99%) rename adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/{core => platform/bukkit}/nms/v26_2_R1/NmsSavedTerrainCapture.java (98%) rename adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/{core => platform/bukkit}/nms/v26_2_R1/NmsWorldLifecycle.java (95%) rename adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/{core => platform/bukkit}/nms/v26_2_R1/VanillaStructureBiomes.java (98%) rename adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/{core => platform/bukkit}/nms/v26_2_R1/CustomBiomeSourceStructureContractTest.java (93%) rename adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/{core => platform/bukkit}/nms/v26_2_R1/IrisChunkGeneratorFailureContractTest.java (98%) rename adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/{core => platform/bukkit}/nms/v26_2_R1/IrisChunkGeneratorMonumentLocateContractTest.java (98%) rename adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/{core => platform/bukkit}/nms/v26_2_R1/IrisChunkGeneratorSpawnAdmissionTest.java (93%) rename adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/{core => platform/bukkit}/nms/v26_2_R1/NMSBindingDatapackStructureScopeTest.java (98%) rename adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/{core => platform/bukkit}/nms/v26_2_R1/NativeStructurePoiUpdatesTest.java (99%) rename adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/{core => platform/bukkit}/nms/v26_2_R1/NativeStructureWorldgenAccessTest.java (99%) rename adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/{core => platform/bukkit}/nms/v26_2_R1/NmsChunkIOFlushTest.java (98%) rename adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/{core => platform/bukkit}/nms/v26_2_R1/NmsChunkTaskPollingTest.java (98%) rename adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/{core => platform/bukkit}/nms/v26_2_R1/NmsEntitySpawnDifficultyTest.java (98%) rename adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/{core => platform/bukkit}/nms/v26_2_R1/NmsSavedTerrainCheckpointTest.java (98%) rename adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/{core => platform/bukkit}/nms/v26_2_R1/NmsSavedTerrainSnapshotTest.java (99%) rename adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/{core => platform/bukkit}/nms/v26_2_R1/NmsSavedTerrainWriteBarrierTest.java (99%) rename adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/{core => platform/bukkit}/nms/v26_2_R1/WorldgenTerrainHeightmapsTest.java (99%) rename adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/{core => }/structure/VillageImporterListPoolElementRuntimeContractTest.java (98%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/commands => command}/CommandDatapack.java (91%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/commands => command}/CommandDeveloper.java (94%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/commands => command}/CommandEdit.java (92%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/commands => command}/CommandFind.java (95%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/commands => command}/CommandIris.java (96%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/commands => command}/CommandJigsaw.java (93%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/commands => command}/CommandJigsawAdopt.java (94%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/commands => command}/CommandJigsawConnector.java (88%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/commands => command}/CommandJigsawExports.java (91%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/commands => command}/CommandJigsawOpen.java (92%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/commands => command}/CommandJigsawPiece.java (92%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/commands => command}/CommandJigsawPool.java (90%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/commands => command}/CommandJigsawPreview.java (85%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/commands => command}/CommandJigsawRules.java (91%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/commands => command}/CommandJigsawVariant.java (94%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/commands => command}/CommandJigsawWorkcell.java (91%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/commands => command}/CommandObject.java (94%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/commands => command}/CommandPack.java (96%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/commands => command}/CommandPregen.java (93%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/service => command}/CommandSVC.java (94%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/commands => command}/CommandStructure.java (93%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/commands => command}/CommandStudio.java (94%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/commands => command}/CommandWhat.java (93%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/commands => command}/ObjectPasteBounds.java (91%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/commands => command}/PaperCommandRegistrar.java (94%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/service => generation/runtime}/IrisEngineSVC.java (96%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/service => generation/runtime}/IrisEngineStatus.java (91%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/service => generation/runtime}/IrisTelemetrySnapshot.java (85%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/service => generation/runtime}/IrisWorldPhaseLedger.java (92%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/service => integration}/IrisIntegrationService.java (98%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/link => integration}/IrisPapiExpansion.java (98%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/link => integration}/IrisPapiInstaller.java (91%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/link => integration}/IrisPapiListener.java (99%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/link => integration}/IrisPapiPosition.java (88%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/link => integration}/IrisPapiPregenView.java (97%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/link => integration}/IrisPapiState.java (99%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/link => integration}/IrisPapiWorldView.java (97%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/service => pack/datapack}/DatapackStructureScopeSVC.java (89%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/service => platform/bukkit/api}/IrisApiEventSVC.java (91%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/service => platform/bukkit/api}/IrisTerrainSVC.java (94%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/service => platform/bukkit}/terrain/IrisApiFaultGuard.java (95%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/service => platform/bukkit}/terrain/IrisColumnWalk.java (97%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/service => platform/bukkit}/terrain/IrisSampleLimits.java (93%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/service => platform/bukkit}/terrain/IrisSurfaceClassifier.java (87%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/service => platform/bukkit}/terrain/IrisWorldInfoFactory.java (87%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/service => platform/protocol}/IrisProtocolService.java (92%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core => studio}/edit/BlockEditor.java (97%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core => studio}/edit/BukkitBlockEditor.java (98%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/service => studio/edit}/EditSVC.java (91%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/gui => studio/view}/BukkitGuiHost.java (91%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/gui => studio/view}/BukkitVisionOverlay.java (97%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/service => studio/wand}/WandSVC.java (96%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core => studio}/wand/WandSelection.java (98%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core => world}/BukkitWorldReconciler.java (98%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core => world}/IrisFailClosedChunkGenerator.java (99%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core => world}/IrisStartupAdmissionListener.java (95%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core => world}/IrisWorldGeneratorResolver.java (96%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core => world}/PaperWorldReplacementEntryListener.java (98%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core => world}/PendingWorldDeleteQueue.java (98%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core => world}/PendingWorldReplacementManager.java (96%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core => world}/WorldReplacementProgress.java (94%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core => world}/runtime/BukkitEnginePlatformHooks.java (88%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core => world}/runtime/BukkitSavedTerrainCapture.java (78%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/service => world/tree}/FellingRun.java (86%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/service => world/tree}/RoutedBlockBreakEvent.java (86%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/service => world/tree}/TreeFellerModel.java (90%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/service => world/tree}/TreeFellerPresentation.java (99%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/service => world/tree}/TreeFellerSVC.java (95%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/service => world/tree}/TreeFellingRunner.java (98%) rename adapters/bukkit/plugin/src/main/java/art/arcane/iris/{core/service => world/tree}/TreeProvenance.java (89%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/commands => command}/CommandFindBiomeContractTest.java (76%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/commands => command}/CommandIrisCreateOverwriteContractTest.java (98%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/commands => command}/CommandIrisDownloadContractTest.java (98%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/commands => command}/CommandIrisLoadWorldContractTest.java (91%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/commands => command}/CommandIrisPackDimensionTypeHandlerTest.java (97%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/commands => command}/CommandIrisRemovalCommandContractTest.java (96%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/commands => command}/CommandJigsawContractTest.java (94%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/commands => command}/CommandLanguageRoutingTest.java (95%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/commands => command}/CommandObjectCustomBlockPlacementTest.java (93%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/commands => command}/CommandObjectFluidHeightTest.java (82%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/commands => command}/CommandObjectPasteRaycastTest.java (96%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/commands => command}/CommandPackCompatTest.java (92%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/commands => command}/CommandPackOptionalPackContractTest.java (97%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/commands => command}/CommandPregenCompletionContractTest.java (97%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/service => command}/CommandSVCFindParsingTest.java (93%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/commands => command}/CommandStudioCreationContractTest.java (89%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/commands => command}/CommandWhatBiomeTest.java (84%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/commands => command}/IrisStructureLocateCommandContractTest.java (97%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/commands => command}/ObjectPasteBoundsTest.java (91%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/commands => command}/PaperCommandRegistrarTest.java (97%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/commands => command}/StudioScoreboardCommandTest.java (95%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/service => generation/runtime}/IrisEngineLifecycleContractTest.java (95%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/service => generation/runtime}/IrisEngineSVCUntrackedUnloadTest.java (95%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/service => generation/runtime}/IrisWorldPhaseLedgerTest.java (98%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/link => integration}/FakeIrisTerrainService.java (98%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/service => integration}/IrisIntegrationServiceTest.java (97%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/link => integration}/IrisPapiExpansionTest.java (99%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/link => integration}/IrisPapiListenerTest.java (99%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/link => integration}/IrisPapiStateTest.java (99%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/link => integration}/IrisPapiTestSupport.java (98%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/link => integration}/IrisPlaceholderAbsenceTest.java (89%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/service => pack/datapack}/DatapackStructureScopeSVCTest.java (97%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/service => platform/bukkit/api}/IrisTerrainSVCTest.java (92%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/service => platform/bukkit}/terrain/IrisApiFaultGuardTest.java (96%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/service => platform/bukkit}/terrain/IrisColumnWalkTest.java (98%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/service => platform/bukkit}/terrain/IrisSampleLimitsTest.java (97%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/service => platform/bukkit}/terrain/IrisSurfaceClassifierTest.java (93%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/service => platform/bukkit}/terrain/IrisWorldInfoFactoryTest.java (97%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/service => platform/protocol}/IrisProtocolServiceCapabilitiesTest.java (93%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/gui => studio/view}/BukkitVisionOverlayFoliaContractTest.java (97%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/service => studio/wand}/WandSVCTest.java (97%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core => studio}/wand/WandSelectionTest.java (96%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core => world}/BukkitWorldReconcilerTest.java (99%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core => world}/IrisStartupAdmissionListenerTest.java (98%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core => world}/IrisWorldGeneratorResolverTest.java (97%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core => world}/PendingWorldDeleteQueueTest.java (99%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core => world}/PendingWorldReplacementAdmissionTest.java (74%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core => world}/PendingWorldReplacementManagerPolicyTest.java (95%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core => world}/PendingWorldReplacementThreadAffinityTest.java (91%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core => world}/StudioRuntimeCleanupTest.java (85%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core => world}/WorldReplacementProgressTest.java (96%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core => world}/runtime/BukkitWorldBoundaryTest.java (83%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/service => world/tree}/TreeFellerEventOrderTest.java (96%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/service => world/tree}/TreeFellerPresentationTest.java (96%) rename adapters/bukkit/plugin/src/test/java/art/arcane/iris/{core/service => world/tree}/TreeFellingRunnerPacingTest.java (93%) rename adapters/modded-common/src/main/resources/META-INF/services/{art.arcane.iris.core.localization.IrisMessageContributor => art.arcane.iris.localization.IrisMessageContributor} (100%) rename core/agent/src/main/java/art/arcane/iris/{util => platform}/agent/Installer.java (97%) rename core/agent/src/test/java/art/arcane/iris/{util/project => platform}/agent/ClassLoaderCloseDeferralTest.java (99%) rename core/src/externalProviderTest/java/art/arcane/iris/{core/link => integration}/data/CraftEngineDataProviderTest.java (98%) rename core/src/externalProviderTest/java/art/arcane/iris/{core/link => integration}/data/ItemAdderDataProviderTest.java (97%) rename core/src/externalProviderTest/java/art/arcane/iris/{core/link => integration}/data/OraxenDataProviderTest.java (95%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/DirectorContext.java (80%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/DirectorContextHandler.java (85%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/DirectorExecutor.java (89%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/DirectorParameterHandler.java (75%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/DirectorSystem.java (57%) rename core/src/main/java/art/arcane/iris/{engine/object => command}/IrisCommand.java (70%) rename core/src/main/java/art/arcane/iris/{engine/object => command}/IrisCommandRegistry.java (72%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/context/BiomeContextHandler.java (77%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/context/DimensionContextHandler.java (77%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/context/GeneratorContextHandler.java (76%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/context/RegionContextHandler.java (77%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/context/VectorContextHandler.java (84%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/context/WorldContextHandler.java (71%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/handlers/BiomeHandler.java (84%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/handlers/BlockVectorHandler.java (86%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/handlers/DataVersionHandler.java (91%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/handlers/DimensionHandler.java (90%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/handlers/EntityHandler.java (84%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/handlers/GeneratorHandler.java (84%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/handlers/PlayerHandler.java (95%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/handlers/RegionHandler.java (84%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/handlers/VectorHandler.java (86%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/handlers/WorldHandler.java (86%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/specialhandlers/HydrologyTypeHandler.java (83%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/specialhandlers/IrisStructureHandler.java (87%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/specialhandlers/LocatableObjectHandler.java (66%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/specialhandlers/NullableDimensionHandler.java (93%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/specialhandlers/NullablePlayerHandler.java (80%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/specialhandlers/ObjectHandler.java (91%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/specialhandlers/ObjectScaleHandler.java (88%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/specialhandlers/ObjectTargetHandler.java (92%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/specialhandlers/ReachableBiomeHandler.java (71%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/specialhandlers/ReachableRegionHandler.java (70%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/specialhandlers/RegistrantHandler.java (88%) rename core/src/main/java/art/arcane/iris/{util/common/director => command}/specialhandlers/StructureHandler.java (91%) rename core/src/main/java/art/arcane/iris/{core => configuration}/IrisSettings.java (98%) rename core/src/main/java/art/arcane/iris/{core => configuration}/SettingsHotloadWatch.java (99%) delete mode 100644 core/src/main/java/art/arcane/iris/core/nms/container/BlockPos.java rename core/src/main/java/art/arcane/iris/{core/service => diagnostics}/LogFilterSVC.java (98%) rename core/src/main/java/art/arcane/iris/{core/report => diagnostics}/Report.java (97%) rename core/src/main/java/art/arcane/iris/{core/report => diagnostics}/ReportType.java (95%) rename core/src/main/java/art/arcane/iris/{core => diagnostics}/splash/IrisSplashComposer.java (98%) rename core/src/main/java/art/arcane/iris/{core => diagnostics}/splash/IrisSplashPackScanner.java (96%) rename core/src/main/java/art/arcane/iris/{core => diagnostics}/splash/IrisSplashRenderer.java (99%) delete mode 100644 core/src/main/java/art/arcane/iris/engine/hydrology/OutletCourseKey.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyNaturalSample.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IRare.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustomCategory.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisCaveAnchorMode.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisCaveFieldModule.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisCaveProfile.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisCoastalRiverGrottoConfig.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisCoral.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisCoralForm.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisCrystal.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisCrystalSurface.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisDeepFluidConfig.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisDepositBiomeScope.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisDepositHeightDistribution.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisDepositPlacementScope.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisDepositShape.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisFormation.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisFormationForm.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisFormationProfile.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisFungus.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisFungusCapShape.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisGrottoPoolLevel.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisHydrology.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisImageMapAlpha.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisImageMapApplication.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisImageMapBinding.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisImageMapMask.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisImageMapMaskOperation.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisImageMapOrigin.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisImageMapOutOfBounds.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisImageMapRotation.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisImageMapSampling.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisImageMapType.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisImageMapUnknownColor.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisInlandRiverGrottoConfig.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisJigsawBranchFailurePolicy.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisJigsawCompatibility.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisJigsawHeightmap.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisJigsawLiquidSettings.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisJigsawMode.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisJigsawThemeSet.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisJigsawWorkcell.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisNativeStructure.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisRiverBedProfile.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisRiverBlendStyle.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisRiverChannelShapeConfig.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisRiverDropShapeConfig.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisRiverExcavationConfig.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisRiverGeometryConfig.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisRiverMaterialConfig.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisRiverMeanderConfig.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisRiverMouthConfig.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisRiverPlacementMode.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisRiverPolicy.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisRiverProfile.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisRiverRegionalConfig.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisRiverRoutingConfig.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisRiverRoutingMode.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisRuin.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisRuinDecorator.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisRuinForm.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisSeaCaveConfig.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisStiltSettings.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisStructureAnchorMode.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisStructurePlacement.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisStructureStiltSettings.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisStructureTerrainMode.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisSurfacePoolConfig.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverBankConfig.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverBedConfig.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverChannelConfig.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverErosionConfig.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverFlowConfig.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverPondConfig.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverPondsConfig.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverShapeConfig.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverSourceConfig.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisTreeAzimuthMode.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisTreeBranchProbability.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisTreeBranches.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisTreeDecoratorTarget.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisTreeFunction.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisTreeProfile.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisUndergroundRiverConfig.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisUndergroundRiverSourceConfig.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisVacuumSettings.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/IrisVanillaStructureAdjustment.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/NativeStructureSuppression.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/ObjectPlaceMode.java delete mode 100644 core/src/main/java/art/arcane/iris/engine/object/annotations/Desc.java rename core/src/main/java/art/arcane/iris/{engine/object => generation/biome}/FloatingBottomPaletteMode.java (62%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/biome}/FloatingIslandBoundarySampler.java (99%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/biome}/FloatingIslandEdgeProfile.java (97%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/biome}/FloatingIslandSample.java (99%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/biome}/IrisBiome.java (72%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/biome}/IrisBiomeColorRenderer.java (93%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/biome}/IrisBiomeCustom.java (82%) create mode 100644 core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeCustomCategory.java rename core/src/main/java/art/arcane/iris/{engine/object => generation/biome}/IrisBiomeCustomParticle.java (78%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/biome}/IrisBiomeCustomPrecipType.java (77%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/biome}/IrisBiomeCustomSpawn.java (73%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/biome}/IrisBiomeCustomSpawnType.java (66%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/biome}/IrisBiomeDerivatives.java (97%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/biome}/IrisBiomeGenLinks.java (96%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/biome}/IrisBiomeGeneratorLink.java (71%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/biome}/IrisBiomeLayerGenerator.java (94%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/biome}/IrisBiomeOres.java (94%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/biome}/IrisBiomePaletteLayer.java (83%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/biome}/IrisCustomBiomeAliasResolver.java (85%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/biome}/IrisFloatingChildBiomes.java (50%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/biome}/IrisVanillaBiomeTags.java (99%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/biome}/TopShapeMode.java (57%) rename core/src/main/java/art/arcane/iris/{util/common/data => generation/block}/B.java (99%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/block}/BlockDataMergeSupport.java (94%) rename core/src/main/java/art/arcane/iris/{util/common/data => generation/block}/BoundBlockState.java (97%) rename core/src/main/java/art/arcane/iris/{util/common/data => generation/block}/DataProvider.java (90%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/block}/IrisBlockData.java (85%) rename core/src/main/java/art/arcane/iris/{util/common/data => generation/block}/IrisCustomData.java (96%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/block}/LegacyTileData.java (98%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/block}/TileData.java (99%) rename core/src/main/java/art/arcane/iris/{util/common/data => generation/block}/VectorMap.java (99%) rename core/src/main/java/art/arcane/iris/{engine/data => generation}/cache/AtomicCache.java (99%) rename core/src/main/java/art/arcane/iris/{engine/data => generation}/cache/Cache.java (96%) rename core/src/main/java/art/arcane/iris/{engine/data => generation}/cache/LazyBoundedCache.java (97%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/cave}/CarveResult.java (96%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/cave}/CarvingMode.java (75%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/cave}/CaveResult.java (96%) create mode 100644 core/src/main/java/art/arcane/iris/generation/cave/IrisCaveAnchorMode.java create mode 100644 core/src/main/java/art/arcane/iris/generation/cave/IrisCaveFieldModule.java create mode 100644 core/src/main/java/art/arcane/iris/generation/cave/IrisCaveProfile.java rename core/src/main/java/art/arcane/iris/{engine/object => generation/cave}/IrisCaveProfileSampler.java (96%) rename core/src/main/java/art/arcane/iris/{util/project/hunk/view => generation/chunk}/ChunkBiomeHunkView.java (91%) rename core/src/main/java/art/arcane/iris/{util/project/hunk/view => generation/chunk}/ChunkDataHunkHolder.java (94%) rename core/src/main/java/art/arcane/iris/{util/project/hunk/view => generation/chunk}/ChunkDataHunkView.java (94%) rename core/src/main/java/art/arcane/iris/{util/project/hunk/view => generation/chunk}/ChunkHunkView.java (92%) rename core/src/main/java/art/arcane/iris/{engine/data => generation}/chunk/LinkedTerrainChunk.java (97%) rename core/src/main/java/art/arcane/iris/{engine/data => generation}/chunk/TerrainChunk.java (97%) rename core/src/main/java/art/arcane/iris/{util/project/hunk/view => generation/chunk}/TerrainChunkBiomeHunkView.java (88%) rename core/src/main/java/art/arcane/iris/{util/common/parallel => generation/concurrent}/BurstExecutor.java (92%) rename core/src/main/java/art/arcane/iris/{util/common/parallel => generation/concurrent}/GridLock.java (83%) rename core/src/main/java/art/arcane/iris/{util/common/parallel => generation/concurrent}/HyperLock.java (89%) rename core/src/main/java/art/arcane/iris/{util/common/parallel => generation/concurrent}/MultiBurst.java (91%) rename core/src/main/java/art/arcane/iris/{util/project => generation}/context/ChunkContext.java (93%) rename core/src/main/java/art/arcane/iris/{util/project => generation}/context/ChunkedDataCache.java (90%) rename core/src/main/java/art/arcane/iris/{util/project => generation}/context/ChunkedDoubleDataCache.java (93%) rename core/src/main/java/art/arcane/iris/{util/project => generation}/context/IrisContext.java (93%) rename core/src/main/java/art/arcane/iris/{engine/decorator => generation/decoration}/DecoratorCore.java (98%) rename core/src/main/java/art/arcane/iris/{engine/decorator => generation/decoration}/DecoratorPlatformHooks.java (93%) rename core/src/main/java/art/arcane/iris/{engine/decorator => generation/decoration}/FloatingDecorator.java (88%) rename core/src/main/java/art/arcane/iris/{engine/decorator => generation/decoration}/IrisCeilingDecorator.java (88%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/IrisDecorationPart.java (62%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/IrisDecorationStep.java (71%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/IrisDecorator.java (79%) create mode 100644 core/src/main/java/art/arcane/iris/generation/decoration/IrisDepositBiomeScope.java rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/IrisDepositGenerator.java (85%) create mode 100644 core/src/main/java/art/arcane/iris/generation/decoration/IrisDepositHeightDistribution.java create mode 100644 core/src/main/java/art/arcane/iris/generation/decoration/IrisDepositPlacementScope.java create mode 100644 core/src/main/java/art/arcane/iris/generation/decoration/IrisDepositShape.java rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/IrisDepositVariant.java (66%) rename core/src/main/java/art/arcane/iris/{engine/decorator => generation/decoration}/IrisEngineDecorator.java (84%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/IrisOreGenerator.java (57%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/IrisOreGeneratorBounds.java (93%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/IrisProceduralBlocks.java (94%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/IrisProceduralObjects.java (64%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/IrisProceduralPlacement.java (88%) rename core/src/main/java/art/arcane/iris/{engine/decorator => generation/decoration}/IrisSeaFloorDecorator.java (91%) rename core/src/main/java/art/arcane/iris/{engine/decorator => generation/decoration}/IrisSeaSurfaceDecorator.java (91%) rename core/src/main/java/art/arcane/iris/{engine/decorator => generation/decoration}/IrisShoreLineDecorator.java (94%) rename core/src/main/java/art/arcane/iris/{engine/decorator => generation/decoration}/IrisSpeleothems.java (97%) create mode 100644 core/src/main/java/art/arcane/iris/generation/decoration/IrisStiltSettings.java rename core/src/main/java/art/arcane/iris/{engine/decorator => generation/decoration}/IrisSugarCane.java (89%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/IrisSurface.java (84%) rename core/src/main/java/art/arcane/iris/{engine/decorator => generation/decoration}/IrisSurfaceDecorator.java (95%) create mode 100644 core/src/main/java/art/arcane/iris/generation/decoration/IrisVacuumSettings.java rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/coral/CoralCanvas.java (97%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/coral/CoralGenerator.java (97%) create mode 100644 core/src/main/java/art/arcane/iris/generation/decoration/coral/IrisCoral.java rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration/coral}/IrisCoralBranchAzimuth.java (57%) create mode 100644 core/src/main/java/art/arcane/iris/generation/decoration/coral/IrisCoralForm.java rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/crystal/CrystalBaseBuilder.java (91%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/crystal/CrystalCanvas.java (93%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/crystal/CrystalGenerator.java (93%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/crystal/CrystalGeometry.java (96%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/crystal/CrystalRole.java (93%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/crystal/CrystalShardBuilder.java (97%) create mode 100644 core/src/main/java/art/arcane/iris/generation/decoration/crystal/IrisCrystal.java rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration/crystal}/IrisCrystalDistribution.java (59%) create mode 100644 core/src/main/java/art/arcane/iris/generation/decoration/crystal/IrisCrystalSurface.java rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/formation/FormationBlockResolver.java (90%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/formation/FormationCanvas.java (94%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/formation/FormationGenerator.java (91%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/formation/FormationProfiles.java (95%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/formation/FormationShapeBuilder.java (99%) create mode 100644 core/src/main/java/art/arcane/iris/generation/decoration/formation/IrisFormation.java create mode 100644 core/src/main/java/art/arcane/iris/generation/decoration/formation/IrisFormationForm.java create mode 100644 core/src/main/java/art/arcane/iris/generation/decoration/formation/IrisFormationProfile.java rename core/src/main/java/art/arcane/iris/{engine/object/fungi => generation/decoration/fungus}/FungusCapBuilder.java (92%) rename core/src/main/java/art/arcane/iris/{engine/object/fungi => generation/decoration/fungus}/FungusCellRole.java (93%) rename core/src/main/java/art/arcane/iris/{engine/object/fungi => generation/decoration/fungus}/FungusGenerator.java (93%) rename core/src/main/java/art/arcane/iris/{engine/object/fungi => generation/decoration/fungus}/FungusShelfBuilder.java (93%) rename core/src/main/java/art/arcane/iris/{engine/object/fungi => generation/decoration/fungus}/FungusStemBuilder.java (93%) create mode 100644 core/src/main/java/art/arcane/iris/generation/decoration/fungus/IrisFungus.java create mode 100644 core/src/main/java/art/arcane/iris/generation/decoration/fungus/IrisFungusCapShape.java create mode 100644 core/src/main/java/art/arcane/iris/generation/decoration/ruin/IrisRuin.java create mode 100644 core/src/main/java/art/arcane/iris/generation/decoration/ruin/IrisRuinDecorator.java rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration/ruin}/IrisRuinDecoratorTarget.java (57%) create mode 100644 core/src/main/java/art/arcane/iris/generation/decoration/ruin/IrisRuinForm.java rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/ruin/RuinBlockCanvas.java (96%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/ruin/RuinDecoratorApplier.java (94%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/ruin/RuinGenerator.java (94%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/ruin/RuinShapes.java (95%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration/tree}/IrisProceduralTree.java (53%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration/tree}/IrisTree.java (81%) create mode 100644 core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeAzimuthMode.java create mode 100644 core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeBranchProbability.java create mode 100644 core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeBranches.java rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration/tree}/IrisTreeCanopy.java (53%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration/tree}/IrisTreeDecorator.java (53%) create mode 100644 core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeDecoratorTarget.java create mode 100644 core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeFunction.java rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration/tree}/IrisTreeLayer.java (67%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration/tree}/IrisTreeLeafMode.java (50%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration/tree}/IrisTreeModes.java (67%) create mode 100644 core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeProfile.java rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration/tree}/IrisTreeRootStyle.java (61%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration/tree}/IrisTreeSecondaryLeaf.java (65%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration/tree}/IrisTreeSettings.java (77%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration/tree}/IrisTreeSize.java (79%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration/tree}/IrisTreeSubBranches.java (56%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/tree/ProceduralTreeGenerator.java (94%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/tree/TreeBlockCanvas.java (98%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/decoration/tree}/TreeBlockMaterial.java (94%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/tree/TreeBlockResolver.java (94%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/tree/TreeCanopyBuilder.java (96%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/tree/TreeDecoratorApplier.java (98%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/tree/TreeFunctions.java (96%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/tree/TreePlausibility.java (96%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/tree/TreeProfiles.java (97%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/tree/TreeRootBuilder.java (97%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/tree/TreeSupport.java (98%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/decoration}/tree/TreeTrunkBuilder.java (97%) rename core/src/main/java/art/arcane/iris/{util/common/math => generation/geometry}/AxisAlignedBB.java (96%) rename core/src/main/java/art/arcane/iris/{util/common/math => generation/geometry}/IrisBlockVector.java (94%) rename core/src/main/java/art/arcane/iris/{util/common/math => generation/geometry}/IrisVector.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/CaveCandidateBounds.java (89%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/CaveCandidateBuilder.java (91%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/CaveCandidateSpanBuilder.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/CaveCourseGraph.java (77%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/CaveSpanSet.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/CaveSurfaceComposition.java (77%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/CaveSurfaceOpening.java (96%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/CaveYSpan.java (52%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/CompiledGraph.java (83%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/CourseEdgeKey.java (77%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/CrossTileBlockers.java (90%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/CrossTileDraftAdmission.java (75%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/CrossTilePublicationAdmission.java (89%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/CrossTileRejectedCourse.java (80%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/CrossTileRejectionKey.java (60%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/CrossTileResolution.java (90%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/CrossTileResolutionContext.java (97%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/CrossTileResolvedOwner.java (93%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/DraftPhase.java (60%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/DraftProfile.java (97%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/DrainageEdge.java (96%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/DrainageNode.java (94%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/FootprintCenterlineProjection.java (78%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/FootprintCourseRasterKey.java (80%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/FootprintFeatureKey.java (78%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/FootprintLayerShape.java (90%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/FootprintMutableColumn.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/FootprintRasterStencil.java (78%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/FootprintRasterStencilBuilder.java (95%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/FootprintRasterStencilKey.java (72%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/FootprintValidationCourseRaster.java (59%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydraulicChannelProfile.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydraulicSegment.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyCandidateKind.java (83%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyCandidateRejection.java (93%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyCaveCourseFilter.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyCaveVoxelViewFactory.java (70%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyChannelGeometry.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyColumnLayer.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyColumnSample.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyColumnSnapshot.java (94%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyCoursePath.java (91%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyCrossTileCaveAdmission.java (96%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyCrossTileResolver.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyCrossTileSurfaceAdmission.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyDiagnosticCandidate.java (92%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyDiagnosticRenderSample.java (95%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyFeatureQuery.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyFeatureRef.java (93%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyFeatureSitePlanner.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyFeatureType.java (97%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyFootprintCompiler.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyFootprintRasterizer.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyForkJoin.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyGeometrySampler.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyGridNode.java (86%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyGridOffset.java (50%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyHash.java (96%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyNaturalTerrainSampler.java (86%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyObservedPlannedSurface.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyOceanBoundaryRefiner.java (97%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyOceanReceiver.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyOutletPlanner.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyOwnerDraft.java (90%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyPlanner.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyPlannerSettings.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyPoint.java (87%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalConnectivity.java (97%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalCourseGraph.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalFalls.java (91%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalFlow.java (97%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalGraph.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalHydraulics.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalMorphology.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalNetwork.java (90%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalPlanner.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalProtection.java (94%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalRoute.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalSourceTrials.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalTerrainRefiner.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalTributaries.java (97%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRenderSample.java (96%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRouteGeometry.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRoutePath.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRoutingPlan.java (84%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRoutingTerrainSampler.java (92%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologySampledGrid.java (96%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologySegmentBuilder.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologySourcePlanner.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologySurfaceBudgets.java (97%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologySurfaceCoursePlanner.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologySurfaceDropBankBounds.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologySurfaceDropRaster.java (97%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologySurfaceProfiles.java (97%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyTerrainCaveVoxelView.java (93%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyTerrainSample.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyTerrainSampler.java (88%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyTile.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyTileCache.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyTileKey.java (96%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyTributaryPlanner.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyUndergroundCoursePlanner.java (99%) create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisCoastalRiverGrottoConfig.java create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisDeepFluidConfig.java create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisGrottoPoolLevel.java create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisHydrology.java create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisInlandRiverGrottoConfig.java rename core/src/main/java/art/arcane/iris/{engine/object => generation/hydrology}/IrisRiverBank3DConfig.java (69%) create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverBedProfile.java create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverBlendStyle.java create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverChannelShapeConfig.java create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverDropShapeConfig.java create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverExcavationConfig.java create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverGeometryConfig.java rename core/src/main/java/art/arcane/iris/{engine/object => generation/hydrology}/IrisRiverGrottoConfig.java (54%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/hydrology}/IrisRiverHydrology.java (52%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/hydrology}/IrisRiverInlandOutlet.java (56%) create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverMaterialConfig.java create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverMeanderConfig.java create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverMouthConfig.java create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverPlacementMode.java create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverPolicy.java create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverProfile.java create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverRegionalConfig.java create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverRoutingConfig.java create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverRoutingMode.java create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisSeaCaveConfig.java create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfacePoolConfig.java create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverBankConfig.java create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverBedConfig.java create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverChannelConfig.java rename core/src/main/java/art/arcane/iris/{engine/object => generation/hydrology}/IrisSurfaceRiverConfig.java (52%) create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverErosionConfig.java create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverFlowConfig.java create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverPondConfig.java create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverPondsConfig.java create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverShapeConfig.java create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverSourceConfig.java create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisUndergroundRiverConfig.java create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/IrisUndergroundRiverSourceConfig.java rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/MinimumLandHeightKey.java (56%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/OutletCandidate.java (63%) create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/OutletCourseKey.java rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/RefinedEdgeKey.java (86%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/RiverCourse.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/RiverCourseType.java (81%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/RiverFootprint.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/RiverOutlet.java (96%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/RouteCandidate.java (84%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/RouteDirection.java (50%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/RoutePosition.java (68%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/RouteTerrainEstimate.java (58%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/RoutingContextLoad.java (75%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/RoutingQueueEntry.java (92%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/SourceAdmissionSelection.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/SourceCandidate.java (72%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/SourceRoutingContext.java (88%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/SourceSelection.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/StudioHydrologyTileStore.java (97%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/SurfaceCourseDraft.java (76%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/SurfaceRouteKey.java (67%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/UndergroundCourseDraft.java (68%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/UndergroundSegmentCapKey.java (84%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/cave/CaveBoundaryResult.java (91%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/cave/CaveCachedValidation.java (89%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/cave/CaveClaimGroup.java (74%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/cave/CaveComponentResult.java (91%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/cave/CaveGrottoResult.java (91%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/cave/CaveIndependentDecision.java (90%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/cave/CavePathResult.java (88%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/cave/CavePosition.java (91%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/cave/CavePositionIndex.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/cave/CaveSurfaceObservations.java (89%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/cave/CaveValidationBatch.java (82%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/cave/CaveViewObservations.java (95%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/cave/CaveVoxel.java (71%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/cave/CaveVoxelPrecondition.java (78%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/cave/CaveVoxelView.java (93%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/cave/HydrologyCaveAction.java (66%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/cave/HydrologyCaveCandidate.java (95%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/cave/HydrologyCaveCell.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/cave/HydrologyCaveChamberPlanner.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/cave/HydrologyCaveConflictPolicy.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/cave/HydrologyCaveContainmentPlanner.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/cave/HydrologyCaveFluidPolicy.java (67%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/cave/HydrologyCaveGrottoShape.java (93%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/cave/HydrologyCaveMode.java (73%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/cave/HydrologyCavePlan.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/cave/HydrologyCavePlannerSettings.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/cave/HydrologyCavePlanningResult.java (93%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/cave/HydrologyCaveRejection.java (88%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/cave/HydrologyCaveSource.java (87%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/cave/HydrologyCaveStorage.java (96%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/cave/RecordingCaveVoxelView.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/policy/EffectiveRiverPolicy.java (93%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/policy/RiverConfinement.java (76%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/policy/RiverPolicyResolver.java (94%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/policy/SurfaceRiverPolicy.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/runtime/HydrologyFeatureSearch.java (95%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/runtime/HydrologyFeatureSearchBounds.java (97%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/runtime/IrisHydrologyNaturalHeightDescriber.java (83%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/runtime/IrisHydrologyNaturalHeightProvider.java (69%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/runtime/IrisHydrologyNaturalOceanClassifier.java (69%) create mode 100644 core/src/main/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyNaturalSample.java rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/runtime/IrisHydrologyNaturalSampleProvider.java (75%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/runtime/IrisHydrologyRoutingTerrainSampler.java (96%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/runtime/IrisHydrologyRuntime.java (94%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/runtime/IrisHydrologyRuntimeContext.java (86%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/runtime/IrisHydrologySettingsCompiler.java (90%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/surface/ChannelProfile.java (83%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/surface/ChannelProfileBuilder.java (95%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/surface/ErosionField.java (88%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/surface/ErosionFieldCompiler.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/surface/SurfaceBankSupport.java (94%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/surface/SurfaceBendProfile.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/surface/SurfaceBounds.java (94%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/surface/SurfaceCellAdmission.java (78%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/surface/SurfaceCenterline.java (97%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/surface/SurfaceColumn.java (87%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/surface/SurfaceCourseBuilder.java (91%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/surface/SurfaceCourseResult.java (74%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/surface/SurfaceExcavationMetrics.java (93%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/surface/SurfaceFeatureRefs.java (85%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/surface/SurfaceFootprint.java (83%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/surface/SurfaceFootprintCompiler.java (94%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/surface/SurfaceLayerColumn.java (75%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/surface/SurfaceNoise.java (91%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/surface/SurfaceRasterContext.java (82%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/surface/SurfaceRole.java (53%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/surface/SurfaceRunBoundary.java (89%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/surface/SurfaceSegmentLabeler.java (91%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/surface/SurfaceTerminal.java (80%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/surface/ValleyProfile.java (86%) rename core/src/main/java/art/arcane/iris/{engine => generation}/hydrology/surface/ValleyProfileSolver.java (97%) rename core/src/main/java/art/arcane/iris/{engine => generation}/image/CompiledIrisImageMap.java (98%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/image}/IrisImage.java (98%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/image}/IrisImageColorMode.java (70%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/image}/IrisImageMap.java (50%) create mode 100644 core/src/main/java/art/arcane/iris/generation/image/IrisImageMapAlpha.java create mode 100644 core/src/main/java/art/arcane/iris/generation/image/IrisImageMapApplication.java create mode 100644 core/src/main/java/art/arcane/iris/generation/image/IrisImageMapBinding.java rename core/src/main/java/art/arcane/iris/{engine => generation}/image/IrisImageMapCompiler.java (98%) create mode 100644 core/src/main/java/art/arcane/iris/generation/image/IrisImageMapMask.java create mode 100644 core/src/main/java/art/arcane/iris/generation/image/IrisImageMapMaskOperation.java rename core/src/main/java/art/arcane/iris/{engine => generation}/image/IrisImageMapMaskSampler.java (96%) create mode 100644 core/src/main/java/art/arcane/iris/generation/image/IrisImageMapOrigin.java create mode 100644 core/src/main/java/art/arcane/iris/generation/image/IrisImageMapOutOfBounds.java create mode 100644 core/src/main/java/art/arcane/iris/generation/image/IrisImageMapRotation.java rename core/src/main/java/art/arcane/iris/{engine => generation}/image/IrisImageMapRuntime.java (95%) create mode 100644 core/src/main/java/art/arcane/iris/generation/image/IrisImageMapSampling.java rename core/src/main/java/art/arcane/iris/{engine => generation}/image/IrisImageMapSourceMetadata.java (78%) create mode 100644 core/src/main/java/art/arcane/iris/generation/image/IrisImageMapType.java create mode 100644 core/src/main/java/art/arcane/iris/generation/image/IrisImageMapUnknownColor.java rename core/src/main/java/art/arcane/iris/{engine => generation}/image/IrisImageMapValidationException.java (96%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/locator}/HintedLocator.java (96%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/locator}/HistoryAwareLocator.java (94%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/locator}/Locator.java (89%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/locator}/LocatorCanceller.java (98%) rename core/src/main/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/CarveOrphanSweep.java (99%) rename core/src/main/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/CaveCarveScratch.java (98%) rename core/src/main/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/CaveFieldModuleState.java (91%) rename core/src/main/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/CaveFluidSupportPlan.java (98%) rename core/src/main/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/CaveObjectPlacementTransaction.java (95%) rename core/src/main/java/art/arcane/iris/{engine => generation}/mantle/ComponentFlag.java (88%) rename core/src/main/java/art/arcane/iris/{engine => generation}/mantle/EngineMantle.java (92%) rename core/src/main/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/FloatingIslandSampleResolver.java (84%) rename core/src/main/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/FloatingObjectPlacementTransaction.java (94%) rename core/src/main/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/GoldenDebugObjectPlacer.java (95%) rename core/src/main/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/IrisCaveCarver3D.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation}/mantle/IrisMantleComponent.java (97%) rename core/src/main/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/IrisStructureComponent.java (94%) rename core/src/main/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/IslandObjectPlacer.java (94%) rename core/src/main/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/MantleCarvingComponent.java (96%) rename core/src/main/java/art/arcane/iris/{engine => generation}/mantle/MantleComponent.java (89%) rename core/src/main/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/MantleFloatingObjectComponent.java (95%) rename core/src/main/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/MantleHydrologyCaveVoxelView.java (92%) rename core/src/main/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/MantleHydrologyComponent.java (96%) rename core/src/main/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/MantleObjectComponent.java (97%) rename core/src/main/java/art/arcane/iris/{engine => generation}/mantle/MantlePass.java (97%) rename core/src/main/java/art/arcane/iris/{engine => generation}/mantle/MantleSliceRetention.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation}/mantle/MantleWriter.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation}/mantle/MatterGenerationPhase.java (82%) rename core/src/main/java/art/arcane/iris/{engine => generation}/mantle/MatterGenerator.java (98%) rename core/src/main/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/ObjectDestinationTransaction.java (95%) rename core/src/main/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/ObjectPassPlacer.java (78%) rename core/src/main/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/ObjectSourcePlan.java (93%) rename core/src/main/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/ObjectSourcePlanCache.java (91%) rename core/src/main/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/StructureCarveEnvelope.java (97%) rename core/src/main/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/StructureCarvingFootprint.java (98%) rename core/src/main/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/StructureFoundationPlanner.java (98%) rename core/src/main/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/SurfaceFluidBoundaryPlan.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation}/mantle/TerrainMatterView.java (96%) rename core/src/main/java/art/arcane/iris/{engine => generation}/mode/ModeEnclosure.java (79%) rename core/src/main/java/art/arcane/iris/{engine => generation}/mode/ModeIslands.java (79%) rename core/src/main/java/art/arcane/iris/{engine => generation}/mode/ModeOverworld.java (86%) rename core/src/main/java/art/arcane/iris/{engine => generation}/mode/ModeSuperFlat.java (79%) rename core/src/main/java/art/arcane/iris/{util/project => generation}/noise/ExpressionNoise.java (93%) rename core/src/main/java/art/arcane/iris/{util/project => generation}/noise/ImageNoise.java (84%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/noise}/IrisExpression.java (84%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/noise}/IrisExpressionFunction.java (76%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/noise}/IrisExpressionLoad.java (82%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/noise}/IrisGenerator.java (82%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/noise}/IrisGeneratorStyle.java (87%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/noise}/IrisInterpolator.java (76%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/noise}/IrisNoiseGenerator.java (79%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/noise}/IrisShapedGeneratorStyle.java (79%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/noise}/IrisStyledRange.java (78%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/noise}/NoiseStyle.java (58%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/BiomeEnvironment.java (72%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/BlockEditAccess.java (95%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/BlockUpdater.java (95%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/BukkitEngineWorldManager.java (96%) rename core/src/main/java/art/arcane/iris/{engine => generation/runtime}/DimensionStackContext.java (97%) rename core/src/main/java/art/arcane/iris/{engine => generation/runtime}/DimensionStackLayout.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation/runtime}/DimensionTerrainContext.java (93%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/Engine.java (92%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/EngineActuator.java (87%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/EngineAssignedActuator.java (93%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/EngineAssignedComponent.java (97%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/EngineAssignedModifier.java (93%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/EngineAssignedWorldManager.java (95%) rename core/src/main/java/art/arcane/iris/{engine => generation/runtime}/EngineBackgroundTasks.java (96%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/EngineComponent.java (89%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/EngineComponentCleanup.java (95%) rename core/src/main/java/art/arcane/iris/{engine => generation/runtime}/EngineDataStore.java (97%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/EngineDecorator.java (90%) rename core/src/main/java/art/arcane/iris/{engine => generation/runtime}/EngineDiagnostics.java (93%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/EngineEffects.java (95%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/EngineEffectsProvider.java (95%) rename core/src/main/java/art/arcane/iris/{engine => generation/runtime}/EngineHotloader.java (94%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/EngineLifecycleTasks.java (96%) rename core/src/main/java/art/arcane/iris/{core/service => generation/runtime}/EngineMaintenance.java (91%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/EngineMetrics.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation/runtime}/EngineMetricsReport.java (74%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/EngineMode.java (94%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/EngineModifier.java (87%) rename core/src/main/java/art/arcane/iris/{engine => generation/runtime}/EnginePanic.java (98%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/EnginePlatformHooks.java (91%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/EnginePlayer.java (91%) rename core/src/main/java/art/arcane/iris/{engine => generation/runtime}/EngineRuntime.java (91%) rename core/src/main/java/art/arcane/iris/{engine => generation/runtime}/EngineRuntimeBuilder.java (94%) rename core/src/main/java/art/arcane/iris/{engine => generation/runtime}/EngineShutdownSequence.java (97%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/EngineStage.java (89%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/EngineTarget.java (85%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/EngineTelemetrySnapshot.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation/runtime}/EngineTickRegistry.java (96%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/EngineWorldManager.java (95%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/EngineWorldManagerProvider.java (95%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/Fallible.java (96%) rename core/src/main/java/art/arcane/iris/{engine => generation/runtime}/GenerationCacheWarmer.java (89%) rename core/src/main/java/art/arcane/iris/{engine => generation/runtime}/GenerationRuntime.java (88%) rename core/src/main/java/art/arcane/iris/{engine => generation/runtime}/GenerationRuntimeScopeState.java (90%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/GenerationSessionException.java (91%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/GenerationSessionLease.java (96%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/GenerationSessionManager.java (98%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/GenerationTransitionGate.java (99%) rename core/src/main/java/art/arcane/iris/{core/service => generation/runtime}/GlobalCacheSVC.java (95%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/Hotloadable.java (94%) rename core/src/main/java/art/arcane/iris/{engine => generation/runtime}/IrisComplex.java (90%) rename core/src/main/java/art/arcane/iris/{engine => generation/runtime}/IrisEngine.java (95%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/runtime}/IrisEngineData.java (91%) rename core/src/main/java/art/arcane/iris/{engine => generation/runtime}/IrisEngineEffects.java (93%) rename core/src/main/java/art/arcane/iris/{engine => generation/runtime}/IrisEngineMantle.java (94%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/IrisEngineMode.java (94%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/runtime}/IrisEngineStatistics.java (97%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/runtime}/IrisEngineStreamType.java (57%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/runtime}/IrisEngineValueType.java (67%) rename core/src/main/java/art/arcane/iris/{engine => generation/runtime}/IrisWorldManager.java (97%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/ListFunction.java (62%) rename core/src/main/java/art/arcane/iris/{engine => generation/runtime}/MarkerSpawnScanner.java (94%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/MeteredCache.java (95%) rename core/src/main/java/art/arcane/iris/{engine => generation/runtime}/NativeStructureBootstrapBarrier.java (98%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/PreservationRegistry.java (95%) rename core/src/main/java/art/arcane/iris/{core/service => generation/runtime}/PreservationSVC.java (95%) rename core/src/main/java/art/arcane/iris/{engine => generation/runtime}/ResolvedTerrainProvider.java (93%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/SeedManager.java (96%) rename core/src/main/java/art/arcane/iris/{engine => generation/runtime}/SharedCornerBounds.java (98%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/Staged.java (95%) rename core/src/main/java/art/arcane/iris/{engine => generation/runtime}/StudioGenerationUpdate.java (83%) rename core/src/main/java/art/arcane/iris/{engine => generation/runtime}/UpperDimensionContext.java (92%) rename core/src/main/java/art/arcane/iris/{engine => generation/runtime}/WorldBlockDropRouter.java (92%) rename core/src/main/java/art/arcane/iris/{engine => generation/runtime}/WorldChunkMaintenance.java (97%) rename core/src/main/java/art/arcane/iris/{engine => generation/runtime}/WorldEntitySpawner.java (96%) rename core/src/main/java/art/arcane/iris/{engine => generation/runtime}/WorldTeleportWarmup.java (98%) rename core/src/main/java/art/arcane/iris/{engine/framework => generation/runtime}/WrongEngineBroException.java (96%) rename core/src/main/java/art/arcane/iris/{util => generation}/simd/ScalarSimdKernels.java (95%) rename core/src/main/java/art/arcane/iris/{util => generation}/simd/SimdKernels.java (83%) rename core/src/main/java/art/arcane/iris/{util => generation}/simd/SimdSupport.java (95%) rename core/src/main/java/art/arcane/iris/{util => generation}/simd/VectorSimdKernels.java (98%) rename core/src/main/java/art/arcane/iris/{engine/actuator => generation/stage}/HydrologyFluidLayerSelector.java (92%) rename core/src/main/java/art/arcane/iris/{engine/actuator => generation/stage}/IrisBiomeActuator.java (94%) rename core/src/main/java/art/arcane/iris/{engine/modifier => generation/stage}/IrisCarveModifier.java (97%) rename core/src/main/java/art/arcane/iris/{engine/modifier => generation/stage}/IrisCarveScratch.java (98%) rename core/src/main/java/art/arcane/iris/{engine/modifier => generation/stage}/IrisCustomModifier.java (84%) rename core/src/main/java/art/arcane/iris/{engine/actuator => generation/stage}/IrisDecorantActuator.java (91%) rename core/src/main/java/art/arcane/iris/{engine/modifier => generation/stage}/IrisDepositModifier.java (94%) rename core/src/main/java/art/arcane/iris/{engine/actuator => generation/stage}/IrisDimensionStackActuator.java (93%) rename core/src/main/java/art/arcane/iris/{engine/modifier => generation/stage}/IrisFloatingChildBiomeModifier.java (93%) rename core/src/main/java/art/arcane/iris/{engine/modifier => generation/stage}/IrisPerfectionModifier.java (94%) rename core/src/main/java/art/arcane/iris/{engine/modifier => generation/stage}/IrisPostModifier.java (95%) rename core/src/main/java/art/arcane/iris/{engine/actuator => generation/stage}/IrisTerrainNormalActuator.java (93%) rename core/src/main/java/art/arcane/iris/{engine/actuator => generation/stage}/IrisTransitionGeometryActuator.java (91%) rename core/src/main/java/art/arcane/iris/{util/project/stream/utility => generation/stream}/CachedDoubleStream2D.java (86%) rename core/src/main/java/art/arcane/iris/{util/project/stream/utility => generation/stream}/CachedStream2D.java (88%) rename core/src/main/java/art/arcane/iris/{util/project/stream/utility => generation/stream}/CachedStream3D.java (87%) rename core/src/main/java/art/arcane/iris/{util/project/stream/utility => generation/stream}/ChunkFillableDoubleStream2D.java (69%) rename core/src/main/java/art/arcane/iris/{util/project/stream/utility => generation/stream}/ChunkFillableStream2D.java (67%) rename core/src/main/java/art/arcane/iris/{util/project/stream/utility => generation/stream}/ContextInjectingStream.java (85%) create mode 100644 core/src/main/java/art/arcane/iris/generation/stream/GenerationStreams.java rename core/src/main/java/art/arcane/iris/{engine => generation}/terrain/HydrologyBankTerrainRuntime.java (96%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/terrain}/InferredType.java (70%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/terrain}/IrisDimension.java (77%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/terrain}/IrisDimensionCarvingEntry.java (58%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/terrain}/IrisDimensionCarvingResolver.java (95%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/terrain}/IrisDimensionContractException.java (95%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/terrain}/IrisDimensionMode.java (77%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/terrain}/IrisDimensionModeType.java (59%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/terrain}/IrisDimensionRuntimeContract.java (98%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/terrain}/IrisDimensionStack.java (61%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/terrain}/IrisDimensionStackBlend.java (66%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/terrain}/IrisDimensionType.java (97%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/terrain}/IrisDimensionTypeOptions.java (82%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/terrain}/IrisMaterialPalette.java (86%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/terrain}/IrisRegion.java (78%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/terrain}/IrisSlopeClip.java (77%) rename core/src/main/java/art/arcane/iris/{engine/object => generation/terrain}/IrisTerrain3D.java (63%) rename core/src/main/java/art/arcane/iris/{engine => generation}/terrain/Terrain3DColumn.java (98%) rename core/src/main/java/art/arcane/iris/{engine => generation}/terrain/Terrain3DFragmentFilter.java (99%) rename core/src/main/java/art/arcane/iris/{engine => generation}/terrain/Terrain3DRuntime.java (98%) rename core/src/main/java/art/arcane/iris/{core/runtime => generation/validation}/GoldenHashEngine.java (98%) rename core/src/main/java/art/arcane/iris/{core/runtime => generation/validation}/GoldenHashScanner.java (86%) rename core/src/main/java/art/arcane/iris/{core/link => integration}/ExternalDataProvider.java (93%) rename core/src/main/java/art/arcane/iris/{core/service => integration}/ExternalDataSVC.java (97%) rename core/src/main/java/art/arcane/iris/{core/link => integration}/Identifier.java (92%) rename core/src/main/java/art/arcane/iris/{core/link => integration}/MultiverseCoreLink.java (99%) rename core/src/main/java/art/arcane/iris/{core/link => integration}/MultiverseGuardListener.java (98%) rename core/src/main/java/art/arcane/iris/{core/service => integration}/MultiverseSVC.java (95%) rename core/src/main/java/art/arcane/iris/{core/link => integration}/WorldEditLink.java (97%) rename core/src/main/java/art/arcane/iris/{core/link => integration}/data/CraftEngineDataProvider.java (96%) rename core/src/main/java/art/arcane/iris/{core/link => integration}/data/DataType.java (85%) rename core/src/main/java/art/arcane/iris/{core/link => integration}/data/EcoItemsDataProvider.java (92%) rename core/src/main/java/art/arcane/iris/{core/link => integration}/data/ExecutableItemsDataProvider.java (92%) rename core/src/main/java/art/arcane/iris/{core/link => integration}/data/ItemAdderDataProvider.java (94%) rename core/src/main/java/art/arcane/iris/{core/link => integration}/data/KGeneratorsDataProvider.java (91%) rename core/src/main/java/art/arcane/iris/{core/link => integration}/data/MMOItemsDataProvider.java (96%) rename core/src/main/java/art/arcane/iris/{core/link => integration}/data/MythicCrucibleDataProvider.java (91%) rename core/src/main/java/art/arcane/iris/{core/link => integration}/data/MythicMobsDataProvider.java (93%) rename core/src/main/java/art/arcane/iris/{core/link => integration}/data/NexoDataProvider.java (91%) rename core/src/main/java/art/arcane/iris/{core/link => integration}/data/OraxenDataProvider.java (90%) rename core/src/main/java/art/arcane/iris/{core => }/localization/BukkitCommandMessages.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/localization/BukkitCommandMessagesExtended.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/localization/BukkitRuntimeMessages.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/localization/BukkitUiMessages.java (96%) rename core/src/main/java/art/arcane/iris/{util/common/format => localization}/C.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/localization/DesktopUiMessages.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/localization/DirectorCommandMessages.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/localization/IrisLanguage.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/localization/IrisLanguageGuide.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/localization/IrisMessageContributor.java (78%) rename core/src/main/java/art/arcane/iris/{core => }/localization/IrisMessages.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/localization/LocaleHotloadSnapshot.java (95%) rename core/src/main/java/art/arcane/iris/{core => }/localization/PackDownloadMessages.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/localization/RuntimeProgressMessages.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/localization/RuntimeUiMessages.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/pack/AtomicDirectoryPublisher.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/pack/BrokenPackException.java (98%) rename core/src/main/java/art/arcane/iris/{core => }/pack/ContentKeyValidator.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/pack/DefaultPackBootstrapProvisioner.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/pack/ImageMapPackageClosure.java (93%) rename core/src/main/java/art/arcane/iris/{core/tools => pack}/IrisConverter.java (96%) rename core/src/main/java/art/arcane/iris/{core => }/pack/IrisPack.java (97%) rename core/src/main/java/art/arcane/iris/{core/tools => pack}/IrisPackBenchmarking.java (94%) rename core/src/main/java/art/arcane/iris/{core => }/pack/IrisPackRepository.java (91%) rename core/src/main/java/art/arcane/iris/{core => }/pack/PackBiomeLayerValidator.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/pack/PackCaveProfileValidator.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/pack/PackDimensionValidator.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/pack/PackDirectoryResolver.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/pack/PackDownloadExecution.java (97%) rename core/src/main/java/art/arcane/iris/{core => }/pack/PackDownloader.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/pack/PackExportClosure.java (94%) rename core/src/main/java/art/arcane/iris/{core => }/pack/PackGeneratorDuplicateValidator.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/pack/PackHydrologyValidator.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/pack/PackImageMapValidator.java (97%) rename core/src/main/java/art/arcane/iris/{core => }/pack/PackJsonFieldChecks.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/pack/PackLootValidator.java (98%) rename core/src/main/java/art/arcane/iris/{core => }/pack/PackNativeStructureValidator.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/pack/PackObjectSurfaceValidator.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/pack/PackResourceCleanup.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/pack/PackRiverBank3DValidator.java (95%) rename core/src/main/java/art/arcane/iris/{core => }/pack/PackSpawnValidator.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/pack/PackStaticObjectValidator.java (98%) rename core/src/main/java/art/arcane/iris/{core => }/pack/PackStructurePlacementValidator.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/pack/PackStyledRangeDefaultValidator.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/pack/PackTerrain3DValidator.java (98%) rename core/src/main/java/art/arcane/iris/{core => }/pack/PackValidationCache.java (97%) rename core/src/main/java/art/arcane/iris/{core => }/pack/PackValidationIo.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/pack/PackValidationRegistry.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/pack/PackValidationResult.java (97%) rename core/src/main/java/art/arcane/iris/{core => }/pack/PackValidator.java (96%) rename core/src/main/java/art/arcane/iris/{core => }/pack/StructureGraphPackValidator.java (93%) rename core/src/main/java/art/arcane/iris/{core => }/pack/StructurePackageClosure.java (99%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/CoordinatorDirectory.java (96%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/CoordinatorEditable.java (95%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/CoordinatorJournal.java (96%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/CoordinatorOperation.java (95%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/CoordinatorPhase.java (96%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/DatapackArchive.java (99%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/DatapackCoordinator.java (97%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/DatapackCoordinatorResolution.java (98%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/DatapackImportSources.java (97%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/DatapackIngestService.java (98%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/DatapackInstall.java (99%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/DatapackInstallPlanner.java (99%) rename core/src/main/java/art/arcane/iris/{core => pack/datapack}/DatapackInstallResult.java (96%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/DatapackManifestStore.java (99%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/DatapackOwnership.java (99%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/DatapackPackMetadata.java (96%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/DatapackRemoval.java (97%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/DatapackScratchRecovery.java (99%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/DatapackStagingGuard.java (97%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/DatapackStagingReapply.java (98%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/DatapackStartupValidation.java (98%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/DatapackStructureImports.java (97%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/DatapackStructureScopeIndex.java (99%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/DatapackSupport.java (98%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/DatapackTransactions.java (98%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/DirectoryDeleter.java (95%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/DirectoryMove.java (96%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/DirectoryRemoval.java (99%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/DownloadResult.java (95%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/EditableImportRemoval.java (97%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/InstallExecution.java (96%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/InstallPlan.java (97%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/InstallResult.java (95%) rename core/src/main/java/art/arcane/iris/{core => pack/datapack}/IrisDatapackCompiler.java (97%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/Manifest.java (94%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/ManifestWrite.java (98%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/MetadataEntry.java (95%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/ModrinthResolver.java (99%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/Ownership.java (95%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/PackResources.java (95%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/PreparedEditableImport.java (88%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/RemoveOutcome.java (95%) rename core/src/main/java/art/arcane/iris/{core => pack/datapack}/ServerConfigurator.java (97%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/StagingInspection.java (95%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/StartupValidationCache.java (96%) rename core/src/main/java/art/arcane/iris/{core => pack}/datapack/VerifiedStagingInstall.java (99%) rename core/src/main/java/art/arcane/iris/{core/loader => pack/loading}/ImageResourceLoader.java (97%) rename core/src/main/java/art/arcane/iris/{core/loader => pack/loading}/IrisData.java (94%) rename core/src/main/java/art/arcane/iris/{core/loader => pack/loading}/IrisRegistrant.java (94%) rename core/src/main/java/art/arcane/iris/{core/loader => pack/loading}/JsonSchemaValidator.java (98%) rename core/src/main/java/art/arcane/iris/{core/loader => pack/loading}/MatterObjectResourceLoader.java (97%) rename core/src/main/java/art/arcane/iris/{core/loader => pack/loading}/ObjectResourceLoader.java (97%) rename core/src/main/java/art/arcane/iris/{core/loader => pack/loading}/ResourceLoader.java (97%) rename core/src/main/java/art/arcane/iris/{engine/object => pack/mod}/IrisMod.java (73%) rename core/src/main/java/art/arcane/iris/{engine/object => pack/mod}/IrisModBiomeInjector.java (70%) rename core/src/main/java/art/arcane/iris/{engine/object => pack/mod}/IrisModBiomeReplacer.java (72%) rename core/src/main/java/art/arcane/iris/{engine/object => pack/mod}/IrisModNoiseStyleReplacer.java (65%) rename core/src/main/java/art/arcane/iris/{engine/object => pack/mod}/IrisModObjectPlacementBiomeInjector.java (69%) rename core/src/main/java/art/arcane/iris/{engine/object => pack/mod}/IrisModObjectPlacementRegionInjector.java (69%) rename core/src/main/java/art/arcane/iris/{engine/object => pack/mod}/IrisModObjectReplacer.java (72%) rename core/src/main/java/art/arcane/iris/{engine/object => pack/mod}/IrisModRegionReplacer.java (72%) rename core/src/main/java/art/arcane/iris/{core/project => pack/schema}/SchemaBlockStates.java (99%) rename core/src/main/java/art/arcane/iris/{core/project => pack/schema}/SchemaBuilder.java (87%) rename core/src/main/java/art/arcane/iris/{core/project => pack/schema}/SchemaEnums.java (92%) rename core/src/main/java/art/arcane/iris/{core/project => pack/schema}/SchemaKeyedTypes.java (91%) rename core/src/main/java/art/arcane/iris/{core/project => pack/schema}/SchemaPropertyBuilder.java (96%) rename core/src/main/java/art/arcane/iris/{core/project => pack/schema}/SchemaRegistryCatalog.java (99%) rename core/src/main/java/art/arcane/iris/{core/project => pack/schema}/SchemaRegistryProperties.java (92%) rename core/src/main/java/art/arcane/iris/{engine/object/annotations => pack/schema/annotation}/ArrayType.java (95%) rename core/src/main/java/art/arcane/iris/{engine/object/annotations => pack/schema/annotation}/DependsOn.java (95%) rename core/src/main/java/art/arcane/iris/{engine/object/annotations => pack/schema/annotation}/MaxNumber.java (95%) rename core/src/main/java/art/arcane/iris/{engine/object/annotations => pack/schema/annotation}/MinNumber.java (95%) rename core/src/main/java/art/arcane/iris/{engine/object/annotations => pack/schema/annotation}/RegistryListBiome.java (96%) rename core/src/main/java/art/arcane/iris/{engine/object/annotations => pack/schema/annotation}/RegistryListBlockType.java (95%) rename core/src/main/java/art/arcane/iris/{engine/object/annotations => pack/schema/annotation}/RegistryListEnchantment.java (88%) rename core/src/main/java/art/arcane/iris/{engine/object/annotations => pack/schema/annotation}/RegistryListEntityType.java (95%) rename core/src/main/java/art/arcane/iris/{engine/object/annotations => pack/schema/annotation}/RegistryListFont.java (95%) rename core/src/main/java/art/arcane/iris/{engine/object/annotations => pack/schema/annotation}/RegistryListFunction.java (82%) rename core/src/main/java/art/arcane/iris/{engine/object/annotations => pack/schema/annotation}/RegistryListItemType.java (95%) rename core/src/main/java/art/arcane/iris/{engine/object/annotations => pack/schema/annotation}/RegistryListNativeJigsawPool.java (88%) rename core/src/main/java/art/arcane/iris/{engine/object/annotations => pack/schema/annotation}/RegistryListPotionEffect.java (88%) rename core/src/main/java/art/arcane/iris/{engine/object/annotations => pack/schema/annotation}/RegistryListResource.java (92%) rename core/src/main/java/art/arcane/iris/{engine/object/annotations => pack/schema/annotation}/RegistryListSpecialEntity.java (95%) rename core/src/main/java/art/arcane/iris/{engine/object/annotations => pack/schema/annotation}/RegistryListStructure.java (95%) rename core/src/main/java/art/arcane/iris/{engine/object/annotations => pack/schema/annotation}/RegistryListVanillaStructure.java (97%) rename core/src/main/java/art/arcane/iris/{engine/object/annotations => pack/schema/annotation}/RegistryListVanillaStructureSet.java (95%) rename core/src/main/java/art/arcane/iris/{engine/object/annotations => pack/schema/annotation}/RegistryMapBlockState.java (85%) rename core/src/main/java/art/arcane/iris/{engine/object/annotations => pack/schema/annotation}/Required.java (95%) rename core/src/main/java/art/arcane/iris/{engine/object/annotations => pack/schema/annotation}/Snippet.java (95%) rename core/src/main/java/art/arcane/iris/{engine/object/annotations => pack/schema/annotation}/functions/ComponentFlagFunction.java (76%) rename core/src/main/java/art/arcane/iris/{engine/object/annotations => pack/schema/annotation}/functions/LootTableKeyFunction.java (75%) rename core/src/main/java/art/arcane/iris/{core/compat => pack/validation}/CompatAction.java (97%) rename core/src/main/java/art/arcane/iris/{core/compat => pack/validation}/CompatFinding.java (98%) rename core/src/main/java/art/arcane/iris/{engine/object => pack/validation}/CompatPools.java (91%) rename core/src/main/java/art/arcane/iris/{core/compat => pack/validation}/CompatRegistry.java (96%) rename core/src/main/java/art/arcane/iris/{core/compat => pack/validation}/CompatStatus.java (97%) rename core/src/main/java/art/arcane/iris/{core/compat => pack/validation}/CompatWalker.java (91%) rename core/src/main/java/art/arcane/iris/{core/compat => pack/validation}/ContentGate.java (98%) rename core/src/main/java/art/arcane/iris/{engine/object => pack/validation}/IrisCompat.java (98%) rename core/src/main/java/art/arcane/iris/{engine/object => pack/validation}/IrisCompatabilityBlockFilter.java (78%) rename core/src/main/java/art/arcane/iris/{engine/object => pack/validation}/IrisCompatabilityItemFilter.java (81%) rename core/src/main/java/art/arcane/iris/{core/compat => pack/validation}/KeyStatus.java (96%) rename core/src/main/java/art/arcane/iris/{core/compat => pack/validation}/LegacyBlockRenames.java (99%) rename core/src/main/java/art/arcane/iris/{core/compat => pack/validation}/MissingBlockState.java (99%) rename core/src/main/java/art/arcane/iris/{core/compat => pack/validation}/PackCompatReport.java (99%) rename core/src/main/java/art/arcane/iris/{engine/object => pack/value}/IrisColor.java (77%) rename core/src/main/java/art/arcane/iris/{engine/object => pack/value}/IrisDirection.java (97%) rename core/src/main/java/art/arcane/iris/{engine/object => pack/value}/IrisDuration.java (68%) rename core/src/main/java/art/arcane/iris/{engine/object => pack/value}/IrisPosition.java (86%) rename core/src/main/java/art/arcane/iris/{engine/object => pack/value}/IrisRange.java (85%) rename core/src/main/java/art/arcane/iris/{engine/object => pack/value}/IrisRaritySelection.java (89%) rename core/src/main/java/art/arcane/iris/{engine/object => pack/value}/IrisRate.java (78%) rename core/src/main/java/art/arcane/iris/{engine/object => pack/value}/OverrideMode.java (58%) rename core/src/main/java/art/arcane/iris/{util/project => platform}/agent/Agent.java (97%) rename core/src/main/java/art/arcane/iris/{util/common/misc => platform/bootstrap}/Bindings.java (89%) rename core/src/main/java/art/arcane/iris/{util/common/misc => platform/bootstrap}/ServerProperties.java (90%) rename core/src/main/java/art/arcane/iris/{util/common/misc => platform/bootstrap}/SlimJar.java (97%) rename core/src/main/java/art/arcane/iris/{util/common/misc => platform/bootstrap}/WebCache.java (99%) rename core/src/main/java/art/arcane/iris/{util/common/misc => platform/bootstrap}/getHardware.java (98%) rename core/src/main/java/art/arcane/iris/{core/service => platform/bukkit}/BoardSVC.java (96%) rename core/src/main/java/art/arcane/iris/{util/common/plugin => platform/bukkit}/chunk/ChunkTickets.java (97%) rename core/src/main/java/art/arcane/iris/{util/common/plugin => platform/bukkit}/chunk/TicketHolder.java (94%) rename core/src/main/java/art/arcane/iris/{core => platform/bukkit}/nms/DatapackStructureScopeResult.java (72%) rename core/src/main/java/art/arcane/iris/{core => platform/bukkit}/nms/INMS.java (94%) rename core/src/main/java/art/arcane/iris/{core => platform/bukkit}/nms/INMSBinding.java (92%) rename core/src/main/java/art/arcane/iris/{core => platform/bukkit}/nms/MinecraftVersion.java (98%) rename core/src/main/java/art/arcane/iris/{core => platform/bukkit}/nms/NmsBindingSelector.java (94%) rename core/src/main/java/art/arcane/iris/{core => platform/bukkit}/nms/ServerShutdownBoundary.java (97%) rename core/src/main/java/art/arcane/iris/{core => platform/bukkit}/nms/container/BiomeColor.java (63%) rename core/src/main/java/art/arcane/iris/{core => platform/bukkit}/nms/container/BlockProperty.java (99%) rename core/src/main/java/art/arcane/iris/{core => platform/bukkit}/nms/container/Pair.java (78%) rename core/src/main/java/art/arcane/iris/{core => platform/bukkit}/nms/datapack/DataVersion.java (92%) rename core/src/main/java/art/arcane/iris/{core => platform/bukkit}/nms/datapack/IDataFixer.java (82%) rename core/src/main/java/art/arcane/iris/{core => platform/bukkit}/nms/datapack/v1192/DataFixerV1192.java (89%) rename core/src/main/java/art/arcane/iris/{core => platform/bukkit}/nms/datapack/v1206/DataFixerV1206.java (88%) rename core/src/main/java/art/arcane/iris/{core => platform/bukkit}/nms/datapack/v1213/DataFixerV1213.java (65%) rename core/src/main/java/art/arcane/iris/{core => platform/bukkit}/nms/datapack/v1217/DataFixerV1217.java (97%) rename core/src/main/java/art/arcane/iris/{core => platform/bukkit}/nms/v1X/NMSBinding1X.java (94%) rename core/src/main/java/art/arcane/iris/{util/common => platform/bukkit}/plugin/Chunks.java (97%) rename core/src/main/java/art/arcane/iris/{util/common => platform/bukkit}/plugin/IrisService.java (95%) rename core/src/main/java/art/arcane/iris/{util/common => platform/bukkit}/plugin/VolmitPlugin.java (98%) rename core/src/main/java/art/arcane/iris/{util/common => platform/bukkit}/plugin/VolmitSender.java (98%) rename core/src/main/java/art/arcane/iris/{util/common/data => platform/bukkit}/registry/Attributes.java (78%) rename core/src/main/java/art/arcane/iris/{util/common/data => platform/bukkit}/registry/KeyedRegistry.java (98%) rename core/src/main/java/art/arcane/iris/{util/common/data => platform/bukkit}/registry/Materials.java (53%) rename core/src/main/java/art/arcane/iris/{util/common/data => platform/bukkit}/registry/Particles.java (91%) rename core/src/main/java/art/arcane/iris/{util/common/data => platform/bukkit}/registry/RegistryTypeAdapter.java (95%) rename core/src/main/java/art/arcane/iris/{util/common/data => platform/bukkit}/registry/RegistryUtil.java (96%) rename core/src/main/java/art/arcane/iris/{engine/platform => platform/generation}/BukkitChunkGenerator.java (96%) rename core/src/main/java/art/arcane/iris/{engine/platform => platform/generation}/DummyBiomeProvider.java (95%) rename core/src/main/java/art/arcane/iris/{engine/platform => platform/generation}/DummyChunkGenerator.java (95%) rename core/src/main/java/art/arcane/iris/{engine/platform => platform/generation}/EngineBukkitOps.java (95%) rename core/src/main/java/art/arcane/iris/{engine/platform => platform/generation}/PlatformChunkGenerator.java (88%) rename core/src/main/java/art/arcane/iris/{core => platform}/protocol/CursorInfoRequestHandler.java (95%) rename core/src/main/java/art/arcane/iris/{core => platform}/protocol/EngineResolver.java (90%) rename core/src/main/java/art/arcane/iris/{core => platform}/protocol/IrisCursorRequestService.java (97%) rename core/src/main/java/art/arcane/iris/{core => platform}/protocol/IrisCursorResolver.java (90%) rename core/src/main/java/art/arcane/iris/{core => platform}/protocol/IrisProtocolServer.java (99%) rename core/src/main/java/art/arcane/iris/{core => platform}/protocol/IrisServerTransport.java (95%) rename core/src/main/java/art/arcane/iris/{core => platform}/protocol/IrisSession.java (99%) rename core/src/main/java/art/arcane/iris/{core => platform}/protocol/IrisSessionRegistry.java (97%) rename core/src/main/java/art/arcane/iris/{core => platform}/protocol/IrisTileEncoder.java (96%) rename core/src/main/java/art/arcane/iris/{core => platform}/protocol/IrisVisionRequestService.java (98%) rename core/src/main/java/art/arcane/iris/{core => platform}/protocol/VisionTileRequestHandler.java (95%) rename core/src/main/java/art/arcane/iris/{util/common => platform}/reflect/KeyedType.java (93%) rename core/src/main/java/art/arcane/iris/{util/common => platform}/reflect/W.java (78%) rename core/src/main/java/art/arcane/iris/{util/common => platform}/reflect/WrappedField.java (97%) rename core/src/main/java/art/arcane/iris/{util/common => platform}/reflect/WrappedReturningMethod.java (96%) rename core/src/main/java/art/arcane/iris/{core => }/structure/BulkStructureImporter.java (98%) rename core/src/main/java/art/arcane/iris/{core => }/structure/FeatureImporter.java (97%) rename core/src/main/java/art/arcane/iris/{core => }/structure/StructureCaptureImporter.java (96%) rename core/src/main/java/art/arcane/iris/{core => }/structure/StructureImporter.java (96%) rename core/src/main/java/art/arcane/iris/{core => }/structure/StructureIndexService.java (98%) rename core/src/main/java/art/arcane/iris/{core => }/structure/StructureSchemaKeys.java (97%) rename core/src/main/java/art/arcane/iris/{core => }/structure/VillageImporter.java (98%) rename core/src/main/java/art/arcane/iris/{core => }/structure/authoring/IrisStructureBundleFactory.java (97%) rename core/src/main/java/art/arcane/iris/{core => }/structure/authoring/StructureBackend.java (94%) rename core/src/main/java/art/arcane/iris/{core => }/structure/authoring/StructureCapability.java (95%) rename core/src/main/java/art/arcane/iris/{core => }/structure/authoring/StructureFileOperations.java (98%) rename core/src/main/java/art/arcane/iris/{core => }/structure/authoring/StructureHash.java (97%) rename core/src/main/java/art/arcane/iris/{core => }/structure/authoring/StructureKey.java (98%) rename core/src/main/java/art/arcane/iris/{core => }/structure/authoring/StructureLoss.java (97%) rename core/src/main/java/art/arcane/iris/{core => }/structure/authoring/StructureOwnershipManifest.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/structure/authoring/StructureRecoveryResult.java (97%) rename core/src/main/java/art/arcane/iris/{core => }/structure/authoring/StructureResourceBundle.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/structure/authoring/StructureSource.java (97%) rename core/src/main/java/art/arcane/iris/{core => }/structure/authoring/StructureTransactionJournal.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/structure/authoring/StructureTransactionReadSet.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/structure/authoring/StructureTransactionWriter.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/structure/authoring/StructureWriteMode.java (94%) rename core/src/main/java/art/arcane/iris/{core => }/structure/authoring/StructureWriteOptions.java (97%) rename core/src/main/java/art/arcane/iris/{core => }/structure/authoring/StructureWriteResult.java (98%) rename core/src/main/java/art/arcane/iris/{core => }/structure/conversion/IrisStructureAdoptionDiagnostic.java (98%) rename core/src/main/java/art/arcane/iris/{core => }/structure/conversion/IrisStructureAdoptionDisposition.java (65%) rename core/src/main/java/art/arcane/iris/{core => }/structure/conversion/IrisStructureAdoptionInputKind.java (63%) rename core/src/main/java/art/arcane/iris/{core => }/structure/conversion/IrisStructureAdoptionLimits.java (97%) rename core/src/main/java/art/arcane/iris/{core => }/structure/conversion/IrisStructureAdoptionPlan.java (94%) rename core/src/main/java/art/arcane/iris/{core => }/structure/conversion/IrisStructureAdoptionReceipt.java (92%) rename core/src/main/java/art/arcane/iris/{core => }/structure/conversion/IrisStructureAdoptionRequest.java (91%) rename core/src/main/java/art/arcane/iris/{core => }/structure/conversion/IrisStructureAdoptionResult.java (93%) rename core/src/main/java/art/arcane/iris/{core => }/structure/conversion/IrisStructureAdoptionService.java (98%) rename core/src/main/java/art/arcane/iris/{core => }/structure/conversion/IrisStructureAdoptionStrategy.java (61%) rename core/src/main/java/art/arcane/iris/{core => }/structure/export/AtomicDatapackPublisher.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/structure/export/VanillaBlockState.java (98%) rename core/src/main/java/art/arcane/iris/{core => }/structure/export/VanillaJigsawDatapackExporter.java (98%) rename core/src/main/java/art/arcane/iris/{core => }/structure/export/VanillaJigsawExportCompiler.java (97%) rename core/src/main/java/art/arcane/iris/{core => }/structure/export/VanillaJigsawExportDiagnostic.java (97%) rename core/src/main/java/art/arcane/iris/{core => }/structure/export/VanillaJigsawExportFormat.java (58%) rename core/src/main/java/art/arcane/iris/{core => }/structure/export/VanillaJigsawExportRequest.java (98%) rename core/src/main/java/art/arcane/iris/{core => }/structure/export/VanillaJigsawExportResult.java (94%) rename core/src/main/java/art/arcane/iris/{core => }/structure/export/VanillaJigsawExportSettings.java (99%) rename core/src/main/java/art/arcane/iris/{core => }/structure/export/VanillaJigsawExportSource.java (89%) rename core/src/main/java/art/arcane/iris/{core => }/structure/export/VanillaJigsawExportValidation.java (92%) rename core/src/main/java/art/arcane/iris/{core => }/structure/export/VanillaResourceIdentifier.java (97%) rename core/src/main/java/art/arcane/iris/{core => }/structure/export/VanillaStructureTemplateEncoder.java (94%) rename core/src/main/java/art/arcane/iris/{engine/framework/structure => structure/graph}/CompiledStructureGraph.java (91%) rename core/src/main/java/art/arcane/iris/{engine/framework/structure => structure/graph}/IrisObjectFrameReader.java (99%) rename core/src/main/java/art/arcane/iris/{engine/framework/structure => structure/graph}/JigsawPoolSelection.java (90%) rename core/src/main/java/art/arcane/iris/{engine/framework/structure => structure/graph}/PlanarJigsawWorkcellResolver.java (94%) rename core/src/main/java/art/arcane/iris/{engine/framework/structure => structure/graph}/StructureAssemblyResult.java (95%) rename core/src/main/java/art/arcane/iris/{engine/framework/structure => structure/graph}/StructureAssemblyStatus.java (85%) rename core/src/main/java/art/arcane/iris/{engine/framework/structure => structure/graph}/StructureGraphAssemblySample.java (94%) rename core/src/main/java/art/arcane/iris/{engine/framework/structure => structure/graph}/StructureGraphCatalog.java (94%) rename core/src/main/java/art/arcane/iris/{engine/framework/structure => structure/graph}/StructureGraphCompilation.java (94%) rename core/src/main/java/art/arcane/iris/{engine/framework/structure => structure/graph}/StructureGraphCompiler.java (98%) rename core/src/main/java/art/arcane/iris/{engine/framework/structure => structure/graph}/StructureGraphDiagnostic.java (97%) rename core/src/main/java/art/arcane/iris/{engine/framework/structure => structure/graph}/StructureGraphResolver.java (87%) rename core/src/main/java/art/arcane/iris/{engine/framework/structure => structure/graph}/StructureGraphValidationException.java (85%) rename core/src/main/java/art/arcane/iris/{engine/framework/structure => structure/graph}/StructureResourceBundleGraphCompiler.java (95%) create mode 100644 core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawBranchFailurePolicy.java create mode 100644 core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawCompatibility.java rename core/src/main/java/art/arcane/iris/{engine/object => structure/jigsaw}/IrisJigsawConfiguration.java (52%) rename core/src/main/java/art/arcane/iris/{engine/object => structure/jigsaw}/IrisJigsawConnector.java (59%) create mode 100644 core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawHeightmap.java create mode 100644 core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawLiquidSettings.java create mode 100644 core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawMode.java rename core/src/main/java/art/arcane/iris/{engine/object => structure/jigsaw}/IrisJigsawPiece.java (67%) rename core/src/main/java/art/arcane/iris/{engine/object => structure/jigsaw}/IrisJigsawPieceEntry.java (67%) rename core/src/main/java/art/arcane/iris/{engine/object => structure/jigsaw}/IrisJigsawPieceRules.java (53%) rename core/src/main/java/art/arcane/iris/{engine/object => structure/jigsaw}/IrisJigsawPool.java (78%) create mode 100644 core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawThemeSet.java create mode 100644 core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawWorkcell.java rename core/src/main/java/art/arcane/iris/{engine/object => structure/jigsaw}/IrisJigsawWorkcellArchetype.java (71%) rename core/src/main/java/art/arcane/iris/{engine/object => structure/jigsaw}/JigsawJoint.java (59%) rename core/src/main/java/art/arcane/iris/{engine/object => structure/nativegen}/IrisImportedFeatureControl.java (65%) rename core/src/main/java/art/arcane/iris/{engine/object => structure/nativegen}/IrisImportedStructureControl.java (65%) create mode 100644 core/src/main/java/art/arcane/iris/structure/nativegen/IrisNativeStructure.java rename core/src/main/java/art/arcane/iris/{engine/object => structure/nativegen}/IrisNativeStructureDecision.java (84%) create mode 100644 core/src/main/java/art/arcane/iris/structure/nativegen/IrisVanillaStructureAdjustment.java rename core/src/main/java/art/arcane/iris/{engine/framework => structure/nativegen}/NativeFeatureGenerationPolicy.java (94%) rename core/src/main/java/art/arcane/iris/{engine/object => structure/nativegen}/NativeFeatureGenerationStatus.java (95%) rename core/src/main/java/art/arcane/iris/{engine/framework => structure/nativegen}/NativeStructureFrequencyScale.java (98%) rename core/src/main/java/art/arcane/iris/{engine/framework => structure/nativegen}/NativeStructureGenerationPolicy.java (91%) rename core/src/main/java/art/arcane/iris/{engine/object => structure/nativegen}/NativeStructureGenerationStatus.java (95%) rename core/src/main/java/art/arcane/iris/{engine/framework => structure/nativegen}/NativeStructureOwnershipBundle.java (97%) rename core/src/main/java/art/arcane/iris/{engine/framework => structure/nativegen}/NativeStructureOwnershipRecord.java (97%) rename core/src/main/java/art/arcane/iris/{engine/framework => structure/nativegen}/NativeStructureOwnershipStore.java (98%) rename core/src/main/java/art/arcane/iris/{engine/framework => structure/nativegen}/NativeStructurePlacementPlanner.java (94%) rename core/src/main/java/art/arcane/iris/{engine/framework => structure/nativegen}/NativeStructureStartPlan.java (53%) create mode 100644 core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructureSuppression.java rename core/src/main/java/art/arcane/iris/{engine/framework => structure/nativegen}/NativeStructureVolume.java (98%) rename core/src/main/java/art/arcane/iris/{engine/framework => structure/nativegen}/NativeStructureVolumeMemo.java (96%) rename core/src/main/java/art/arcane/iris/{engine => structure}/object/DecayControlPlacer.java (93%) rename core/src/main/java/art/arcane/iris/{engine => structure}/object/FloatingObjectFootprint.java (98%) rename core/src/main/java/art/arcane/iris/{engine/framework/placer => structure/object}/HeightmapObjectPlacer.java (91%) rename core/src/main/java/art/arcane/iris/{engine => structure}/object/IObjectLoot.java (67%) rename core/src/main/java/art/arcane/iris/{engine => structure}/object/IObjectPlacer.java (91%) rename core/src/main/java/art/arcane/iris/{engine => structure}/object/IPostBlockAccess.java (93%) rename core/src/main/java/art/arcane/iris/{engine => structure}/object/IrisAxisRotationClamp.java (65%) rename core/src/main/java/art/arcane/iris/{engine => structure}/object/IrisObject.java (94%) rename core/src/main/java/art/arcane/iris/{engine => structure}/object/IrisObjectCompat.java (95%) rename core/src/main/java/art/arcane/iris/{engine => structure}/object/IrisObjectIO.java (96%) rename core/src/main/java/art/arcane/iris/{engine => structure}/object/IrisObjectLimit.java (72%) rename core/src/main/java/art/arcane/iris/{engine => structure}/object/IrisObjectLoot.java (70%) rename core/src/main/java/art/arcane/iris/{engine => structure}/object/IrisObjectMarker.java (67%) rename core/src/main/java/art/arcane/iris/{engine => structure}/object/IrisObjectPlacement.java (74%) rename core/src/main/java/art/arcane/iris/{engine => structure}/object/IrisObjectPlacementRunner.java (98%) rename core/src/main/java/art/arcane/iris/{engine => structure}/object/IrisObjectPlacementScaleInterpolator.java (61%) rename core/src/main/java/art/arcane/iris/{engine => structure}/object/IrisObjectReplace.java (84%) rename core/src/main/java/art/arcane/iris/{engine => structure}/object/IrisObjectRotation.java (96%) rename core/src/main/java/art/arcane/iris/{engine => structure}/object/IrisObjectScale.java (91%) rename core/src/main/java/art/arcane/iris/{engine => structure}/object/IrisObjectShaping.java (96%) rename core/src/main/java/art/arcane/iris/{engine => structure}/object/IrisObjectTransforms.java (97%) rename core/src/main/java/art/arcane/iris/{engine => structure}/object/IrisObjectTranslate.java (74%) rename core/src/main/java/art/arcane/iris/{engine => structure}/object/IrisObjectVacuum.java (97%) rename core/src/main/java/art/arcane/iris/{engine => structure}/object/IrisObjectVanillaLoot.java (56%) rename core/src/main/java/art/arcane/iris/{engine => structure}/object/IrisPaintSurfaceProjection.java (98%) rename core/src/main/java/art/arcane/iris/{engine => structure}/object/IrisStaticObject.java (77%) rename core/src/main/java/art/arcane/iris/{engine => structure}/object/IrisStaticObjectLayer.java (95%) rename core/src/main/java/art/arcane/iris/{engine => structure}/object/IrisStaticObjectRotation.java (68%) rename core/src/main/java/art/arcane/iris/{engine => structure}/object/IrisSurfaceSupport.java (95%) create mode 100644 core/src/main/java/art/arcane/iris/structure/object/ObjectPlaceMode.java rename core/src/main/java/art/arcane/iris/{engine/framework/placer => structure/object}/WorldObjectPlacer.java (86%) rename core/src/main/java/art/arcane/iris/{engine => structure}/object/matter/IrisMatterObject.java (80%) rename core/src/main/java/art/arcane/iris/{engine/object => structure/placement}/IrisStructure.java (56%) create mode 100644 core/src/main/java/art/arcane/iris/structure/placement/IrisStructureAnchorMode.java rename core/src/main/java/art/arcane/iris/{engine/object => structure/placement}/IrisStructureCarveShape.java (62%) rename core/src/main/java/art/arcane/iris/{engine/framework => structure/placement}/IrisStructureLocator.java (98%) create mode 100644 core/src/main/java/art/arcane/iris/structure/placement/IrisStructurePlacement.java rename core/src/main/java/art/arcane/iris/{engine/object => structure/placement}/IrisStructureSetFrequencyOverride.java (52%) create mode 100644 core/src/main/java/art/arcane/iris/structure/placement/IrisStructureStiltSettings.java rename core/src/main/java/art/arcane/iris/{engine/object => structure/placement}/IrisStructureTerrain.java (59%) create mode 100644 core/src/main/java/art/arcane/iris/structure/placement/IrisStructureTerrainMode.java rename core/src/main/java/art/arcane/iris/{engine/object => structure/placement}/IrisStructureYBand.java (53%) rename core/src/main/java/art/arcane/iris/{engine/framework => structure/placement}/LootResolver.java (96%) rename core/src/main/java/art/arcane/iris/{engine/framework => structure/placement}/PlacedObject.java (87%) rename core/src/main/java/art/arcane/iris/{engine/framework => structure/placement}/PlacedStructurePiece.java (89%) rename core/src/main/java/art/arcane/iris/{engine/framework => structure/placement}/StructureAssembler.java (97%) rename core/src/main/java/art/arcane/iris/{engine/framework => structure/placement}/StructureCaveAnchorResolver.java (97%) rename core/src/main/java/art/arcane/iris/{engine/object => structure/placement}/StructureDistribution.java (60%) rename core/src/main/java/art/arcane/iris/{engine/framework => structure/placement}/StructurePlacementGrid.java (98%) rename core/src/main/java/art/arcane/iris/{engine/framework => structure/placement}/StructurePlacementMarker.java (98%) rename core/src/main/java/art/arcane/iris/{engine/framework => structure/placement}/StructurePlacementScope.java (95%) rename core/src/main/java/art/arcane/iris/{engine/framework => structure/placement}/StructureReachability.java (97%) rename core/src/main/java/art/arcane/iris/{engine/framework => structure/placement}/StructureVerticalBounds.java (97%) rename core/src/main/java/art/arcane/iris/{core/service => studio}/PackDownloadProgressReporter.java (98%) rename core/src/main/java/art/arcane/iris/{engine/object => studio}/StudioMode.java (52%) rename core/src/main/java/art/arcane/iris/{core/service => studio}/StudioSVC.java (96%) rename core/src/main/java/art/arcane/iris/{core => studio}/edit/BlockSignal.java (98%) rename core/src/main/java/art/arcane/iris/{core => studio}/edit/DustRevealer.java (96%) rename core/src/main/java/art/arcane/iris/{engine/platform/studio/generators => studio/generation}/BiomeBuffetGenerator.java (73%) rename core/src/main/java/art/arcane/iris/{engine/platform/studio => studio/generation}/BiomeBuffetLayout.java (85%) rename core/src/main/java/art/arcane/iris/{engine/platform/studio => studio/generation}/EnginedStudioGenerator.java (83%) rename core/src/main/java/art/arcane/iris/{engine/platform/studio/generators => studio/generation}/JigsawStudioGenerator.java (95%) rename core/src/main/java/art/arcane/iris/{engine/platform/studio/generators => studio/generation}/ObjectStudioGenerator.java (93%) rename core/src/main/java/art/arcane/iris/{engine/platform/studio => studio/generation}/StudioGenerator.java (80%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawPlanarArchetype.java (96%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawPlanarDirection.java (90%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawPlanarTopology.java (98%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawPlanarTopologyKind.java (70%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioActivation.java (99%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioAuthoringAccess.java (89%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioAutosaveScheduler.java (92%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioBay.java (98%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioBayKind.java (63%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioBoardContext.java (94%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioBoardState.java (91%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioBounds.java (95%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioCapture.java (96%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioCaptureScheduler.java (89%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioCellDimensions.java (96%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioChunkWriter.java (95%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioCompatibilityTarget.java (66%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioControlPosition.java (64%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioDetailsMenu.java (92%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioDirtyTracker.java (88%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioEvaluationState.java (72%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioEvaluator.java (92%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioGraphDocuments.java (97%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioGraphEditor.java (97%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioGraphEvaluation.java (97%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioGraphInspector.java (93%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioGraphMapper.java (94%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioGraphMutations.java (91%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioHistoryStore.java (95%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioLayout.java (99%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioMainMenu.java (91%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioMarkerKeyCodec.java (96%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioMarkerParser.java (93%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioMaterializer.java (95%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioMenuActions.java (92%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioMenuController.java (97%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioMenuFormat.java (97%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioMenuState.java (97%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioMode.java (61%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioObjectResizer.java (98%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioPieceRules.java (92%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioPlayerContext.java (93%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioPoolEditor.java (96%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioPoolMembership.java (95%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioPreviewRenderer.java (97%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioProjectCreator.java (89%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioProjectDeletionService.java (97%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioProtection.java (95%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioProtectionListener.java (96%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioRegistry.java (94%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioResourceBundleAssembler.java (92%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioSaveLifecycle.java (94%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioService.java (94%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioSession.java (99%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioStructureEditor.java (95%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioStructureMenu.java (91%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioTileWatcher.java (96%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioToolAction.java (97%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioToolCodec.java (97%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioToolPayload.java (98%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioToolbelt.java (95%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioToolboxMenu.java (93%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioTripleSneakTracker.java (98%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioVariant.java (98%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioVariantCatalog.java (98%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioVariantEditor.java (92%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioVariantMenu.java (91%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioVariantProperties.java (92%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioVisualization.java (95%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioWorkcellEditor.java (92%) rename core/src/main/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioWorkcellMenu.java (96%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioWorkcellSpec.java (93%) rename core/src/main/java/art/arcane/iris/{core/service => studio/object}/ObjectSVC.java (93%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio/object}/ObjectStudioActivation.java (96%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio/object}/ObjectStudioLayout.java (98%) rename core/src/main/java/art/arcane/iris/{core/service => studio/object}/ObjectStudioSaveService.java (95%) rename core/src/main/java/art/arcane/iris/{core/runtime => studio/object}/StudioOpenCoordinator.java (97%) rename core/src/main/java/art/arcane/iris/{engine/framework => studio}/render/IrisRenderer.java (97%) rename core/src/main/java/art/arcane/iris/{engine/framework => studio}/render/RenderType.java (94%) rename core/src/main/java/art/arcane/iris/{engine/framework => studio}/render/Renderer.java (94%) rename core/src/main/java/art/arcane/iris/{core/tools => studio/tree}/TreePlausibilizeBatch.java (96%) rename core/src/main/java/art/arcane/iris/{core/tools => studio/tree}/TreePlausibilizer.java (99%) rename core/src/main/java/art/arcane/iris/{core/gui => studio/view}/GuiHost.java (97%) rename core/src/main/java/art/arcane/iris/{core/gui => studio/view}/GuiMarker.java (97%) rename core/src/main/java/art/arcane/iris/{core/gui => studio/view}/GuiOverlay.java (91%) rename core/src/main/java/art/arcane/iris/{core/gui => studio/view}/ImageMapStudioGUI.java (97%) rename core/src/main/java/art/arcane/iris/{core/gui => studio/view}/ImageMapStudioModel.java (96%) rename core/src/main/java/art/arcane/iris/{core/gui => studio/view}/ImageMapStudioPreviewPanel.java (98%) rename core/src/main/java/art/arcane/iris/{core/gui => studio/view}/NoiseExplorerGUI.java (99%) rename core/src/main/java/art/arcane/iris/{core/gui => studio/view}/NoisePalette.java (98%) rename core/src/main/java/art/arcane/iris/{core/gui => studio/view}/NoiseRenderCoordinator.java (99%) rename core/src/main/java/art/arcane/iris/{core/gui => studio/view}/NoiseViewport.java (97%) rename core/src/main/java/art/arcane/iris/{core/gui => studio/view}/PregenMapPanel.java (99%) rename core/src/main/java/art/arcane/iris/{core/gui => studio/view}/PregenRenderSnapshot.java (97%) rename core/src/main/java/art/arcane/iris/{core/gui => studio/view}/PregenRenderSource.java (95%) rename core/src/main/java/art/arcane/iris/{core/gui => studio/view}/PregenRenderer.java (99%) rename core/src/main/java/art/arcane/iris/{core/gui => studio/view}/PregeneratorJob.java (96%) rename core/src/main/java/art/arcane/iris/{core/gui => studio/view}/VisionGUI.java (98%) rename core/src/main/java/art/arcane/iris/{core/gui => studio/view}/VisionRenderController.java (99%) rename core/src/main/java/art/arcane/iris/{core/gui => studio/view}/VisionViewport.java (97%) rename core/src/main/java/art/arcane/iris/{core/project => studio/workspace}/ImageMapStudioExporter.java (96%) rename core/src/main/java/art/arcane/iris/{core/project => studio/workspace}/IrisCodeWorkspace.java (96%) rename core/src/main/java/art/arcane/iris/{core/project => studio/workspace}/IrisPackageCompiler.java (93%) rename core/src/main/java/art/arcane/iris/{core/project => studio/workspace}/IrisProject.java (93%) rename core/src/main/java/art/arcane/iris/{core/project => studio/workspace}/IrisProjectCopier.java (99%) rename core/src/main/java/art/arcane/iris/{core/project => studio/workspace}/StudioOpenProgressReporter.java (95%) delete mode 100644 core/src/main/java/art/arcane/iris/util/common/director/handlers/BooleanHandler.java delete mode 100644 core/src/main/java/art/arcane/iris/util/common/director/handlers/ByteHandler.java delete mode 100644 core/src/main/java/art/arcane/iris/util/common/director/handlers/DoubleHandler.java delete mode 100644 core/src/main/java/art/arcane/iris/util/common/director/handlers/FloatHandler.java delete mode 100644 core/src/main/java/art/arcane/iris/util/common/director/handlers/IntegerHandler.java delete mode 100644 core/src/main/java/art/arcane/iris/util/common/director/handlers/LongHandler.java delete mode 100644 core/src/main/java/art/arcane/iris/util/common/director/handlers/ShortHandler.java delete mode 100644 core/src/main/java/art/arcane/iris/util/common/director/handlers/StringHandler.java delete mode 100644 core/src/main/java/art/arcane/iris/util/common/math/ChunkSpiral.java delete mode 100644 core/src/main/java/art/arcane/iris/util/common/math/Direction.java delete mode 100644 core/src/main/java/art/arcane/iris/util/common/math/Vector3i.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/hunk/Hunk.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/hunk/SharedHunkAdapter.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/hunk/storage/ArrayHunk.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/hunk/storage/AtomicDoubleHunk.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/hunk/storage/AtomicHunk.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/hunk/storage/AtomicIntegerHunk.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/hunk/storage/AtomicLongHunk.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/hunk/storage/StorageHunk.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/hunk/storage/SynchronizedArrayHunk.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/interpolation/Interpolation3D.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/interpolation/InterpolationMethod.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/interpolation/InterpolationMethod3D.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/interpolation/IrisInterpolation.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/interpolation/NoiseBounds.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/interpolation/NoiseBoundsProvider.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/interpolation/NoiseBoundsSampleCache2D.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/interpolation/NoiseSampleCache2D.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/CNG.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/CNGFactory.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/CellGenerator.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/CellHeightNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/CellularNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/ChladniNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/CircuitNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/CloverNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/CraterNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/CubicNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/DuneNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/FastNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/FastNoiseDouble.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/FlatNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/FractalBillowPerlinNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/FractalBillowSimplexNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/FractalCubicNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/FractalFBMSimplexNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/FractalRigidMultiSimplexNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/GaborNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/GlobNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/GyroidNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/HexJamesNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/HexRandomSizeNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/HexSimplexNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/HexagonNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/HexagonalNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/InterpolatedNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/KaleidoscopeNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/MarbleNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/MengerSpongeNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/NoiseFactory.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/NoiseGenerator.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/NoiseType.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/OctaveNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/OffsetNoiseGenerator.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/PatternNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/PerlinNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/QuasicrystalNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/ScalesNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/SierpinskiTriangleNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/SimplexNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/StrataNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/TruchetNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/VascularNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/VortexNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/WhiteNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/noise/WoodNoise.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/BasicStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/ProceduralStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/AddingStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ClampedStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/CoordinateBitShiftLeftStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/CoordinateBitShiftRightStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/DividingStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/FittedStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MaxingStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MinningStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ModuloStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MultiplyingStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/OffsetStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/RadialStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/RoundingDoubleStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/SlopeStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/SubtractingStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ZoomStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/convert/AwareConversionStream2D.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/convert/AwareConversionStream3D.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/convert/CachedConversionStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/convert/ConversionStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/convert/ForceDoubleStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/convert/RoundingStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/convert/SelectionStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/convert/SignificanceStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/convert/To3DStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BiHermiteStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BiStarcastStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BicubicStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BilinearStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/interpolation/Interpolated.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/interpolation/InterpolatingStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/interpolation/Interpolator.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/interpolation/InterpolatorFactory.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TriStarcastStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TricubicStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TrilinearStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/sources/CNGStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/sources/FunctionStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/utility/NullSafeStream.java delete mode 100644 core/src/main/java/art/arcane/iris/util/project/stream/utility/SynchronizedStream.java rename core/src/main/java/art/arcane/iris/{core => world}/ExactWorldSlotPathPolicy.java (99%) rename core/src/main/java/art/arcane/iris/{core/tools => world}/IrisCreator.java (95%) rename core/src/main/java/art/arcane/iris/{engine/object => world}/IrisEnvironment.java (73%) rename core/src/main/java/art/arcane/iris/{core => world}/IrisPaperLikeBackendMode.java (71%) rename core/src/main/java/art/arcane/iris/{core/tools => world}/IrisReflectiveAPI.java (97%) rename core/src/main/java/art/arcane/iris/{core => world}/IrisRuntimeSchedulerMode.java (97%) rename core/src/main/java/art/arcane/iris/{core => world}/IrisStartupValidation.java (99%) rename core/src/main/java/art/arcane/iris/{engine/object => world}/IrisTimeBlock.java (69%) rename core/src/main/java/art/arcane/iris/{core/tools => world}/IrisToolbelt.java (94%) rename core/src/main/java/art/arcane/iris/{engine/object => world}/IrisWeather.java (78%) rename core/src/main/java/art/arcane/iris/{engine/object => world}/IrisWorld.java (97%) rename core/src/main/java/art/arcane/iris/{engine/object => world}/IrisWorldBoundary.java (81%) rename core/src/main/java/art/arcane/iris/{engine/object => world}/IrisWorldBoundaryCenter.java (54%) rename core/src/main/java/art/arcane/iris/{core/tools => world}/IrisWorldCreator.java (92%) rename core/src/main/java/art/arcane/iris/{core => world}/IrisWorldStorage.java (99%) rename core/src/main/java/art/arcane/iris/{core => world}/IrisWorlds.java (97%) rename core/src/main/java/art/arcane/iris/{core => world}/SnapshotDirectoryTreeDeleter.java (99%) rename core/src/main/java/art/arcane/iris/{core/tools => world}/WorldCreationProgressReporter.java (97%) rename core/src/main/java/art/arcane/iris/{core => world}/WorldCreatorCompat.java (99%) rename core/src/main/java/art/arcane/iris/{core/tools => world}/WorldMaintenance.java (96%) rename core/src/main/java/art/arcane/iris/{core => world}/WorldRemovalPathPolicy.java (99%) rename core/src/main/java/art/arcane/iris/{core => world}/WorldSlotKey.java (98%) rename core/src/main/java/art/arcane/iris/{core/service => world/entity}/EntityRiseSVC.java (96%) rename core/src/main/java/art/arcane/iris/{engine/object => world/entity}/IrisAttributeModifier.java (72%) rename core/src/main/java/art/arcane/iris/{engine/object => world/entity}/IrisEffect.java (82%) rename core/src/main/java/art/arcane/iris/{engine/object => world/entity}/IrisEnchantment.java (81%) rename core/src/main/java/art/arcane/iris/{engine/object => world/entity}/IrisEngineSpawnerCooldown.java (89%) rename core/src/main/java/art/arcane/iris/{engine/object => world/entity}/IrisEntity.java (79%) rename core/src/main/java/art/arcane/iris/{engine/object => world/entity}/IrisEntitySpawn.java (90%) rename core/src/main/java/art/arcane/iris/{engine/object => world/entity}/IrisMarker.java (67%) rename core/src/main/java/art/arcane/iris/{engine/object => world/entity}/IrisPotionEffect.java (79%) rename core/src/main/java/art/arcane/iris/{engine/object => world/entity}/IrisSpawnGroup.java (69%) rename core/src/main/java/art/arcane/iris/{engine/object => world/entity}/IrisSpawner.java (79%) rename core/src/main/java/art/arcane/iris/{engine/object => world/entity}/IrisSpawnerCooldowns.java (91%) rename core/src/main/java/art/arcane/iris/{engine/object => world/entity}/PotionEffectTypes.java (95%) rename core/src/main/java/art/arcane/iris/{core/events => world/event}/IrisEngineEvent.java (93%) rename core/src/main/java/art/arcane/iris/{core/events => world/event}/IrisEngineHotloadEvent.java (93%) rename core/src/main/java/art/arcane/iris/{core/events => world/event}/IrisLootEvent.java (95%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/BoundaryColumnGeometry.java (99%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/BoundaryGeometryInfluence.java (97%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/ChunkGenerationOwnership.java (99%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/ChunkGenerationSemantics.java (99%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/DiskBoundaryCapture.java (97%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/FloatingBiomeOverlay.java (98%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/GenerationActivation.java (99%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/GenerationAdmission.java (99%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/GenerationBlend.java (98%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/GenerationBoundary.java (99%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/GenerationBoundarySignatureSampler.java (80%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/GenerationBoundaryStore.java (99%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/GenerationBuildRevision.java (99%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/GenerationEpoch.java (99%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/GenerationEpochContractFactory.java (94%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/GenerationFindCatalog.java (95%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/GenerationHistory.java (99%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/GenerationHistoryPaths.java (98%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/GenerationHistoryRuntimeRouter.java (99%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/GenerationHistoryStore.java (99%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/GenerationKernelCatalog.java (99%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/GenerationKernelRegistry.java (96%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/GenerationKernelV1.java (85%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/GenerationManifest.java (99%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/GenerationPackFingerprint.java (98%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/GenerationPackRepository.java (98%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/GenerationPublicationLock.java (98%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/GenerationRegistryContract.java (99%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/GenerationRegistryContractFactory.java (98%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/GenerationSemanticCapture.java (93%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/GenerationSemanticIndex.java (99%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/GenerationSemanticQueries.java (95%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/GenerationTransition.java (99%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/IrisBoundarySignatureSampler.java (97%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/NativeBiomeSpawnSelection.java (87%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/NativeTerrainReceipt.java (99%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/RegionGenerationOwnership.java (99%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/SavedBiomeCapture.java (97%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/SavedBiomeChunk.java (99%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/SavedBiomeRecovery.java (94%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/SavedBiomeRuntime.java (98%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/SavedBiomeStore.java (99%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/SavedBiomeUnavailableException.java (92%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/SavedTerrainChunk.java (99%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/SavedTerrainChunkReader.java (99%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/TerrainBoundarySignature.java (99%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/TerrainBoundarySignatureStore.java (99%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/TransitionBoundarySampler.java (99%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/TransitionFluidContainment.java (99%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/TransitionGenerationPlan.java (99%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/TransitionGeometryBlender.java (99%) rename core/src/main/java/art/arcane/iris/{engine => world}/history/WorldChunkInventory.java (98%) rename core/src/main/java/art/arcane/iris/{core => world}/lifecycle/BukkitPublicBackend.java (95%) rename core/src/main/java/art/arcane/iris/{core => world}/lifecycle/BukkitStartupPaths.java (99%) rename core/src/main/java/art/arcane/iris/{core => world}/lifecycle/BukkitWorldConfiguration.java (99%) rename core/src/main/java/art/arcane/iris/{core => world}/lifecycle/CapabilityResolution.java (99%) rename core/src/main/java/art/arcane/iris/{core => world}/lifecycle/CapabilitySnapshot.java (99%) rename core/src/main/java/art/arcane/iris/{core => world}/lifecycle/DirectoryDurability.java (94%) rename core/src/main/java/art/arcane/iris/{core => world}/lifecycle/HuskWorldQuarantine.java (98%) rename core/src/main/java/art/arcane/iris/{core => world}/lifecycle/IrisRuntimeStatics.java (60%) rename core/src/main/java/art/arcane/iris/{core => world}/lifecycle/IrisWorldRemovalService.java (98%) rename core/src/main/java/art/arcane/iris/{core => world}/lifecycle/LifecycleOperationCoordinator.java (99%) rename core/src/main/java/art/arcane/iris/{core => world}/lifecycle/ManagedWorldLoader.java (97%) rename core/src/main/java/art/arcane/iris/{core => world}/lifecycle/MissingWorldStorageLog.java (99%) rename core/src/main/java/art/arcane/iris/{core => world}/lifecycle/PaperLibBootstrap.java (98%) rename core/src/main/java/art/arcane/iris/{core => world}/lifecycle/PaperLikeRuntimeBackend.java (99%) rename core/src/main/java/art/arcane/iris/{core => world}/lifecycle/ServerFamily.java (89%) rename core/src/main/java/art/arcane/iris/{core => world}/lifecycle/VanishedWorldStorage.java (98%) rename core/src/main/java/art/arcane/iris/{core => world}/lifecycle/WorldLifecycleBackend.java (90%) rename core/src/main/java/art/arcane/iris/{core => world}/lifecycle/WorldLifecycleCaller.java (69%) rename core/src/main/java/art/arcane/iris/{core => world}/lifecycle/WorldLifecycleRequest.java (95%) rename core/src/main/java/art/arcane/iris/{core => world}/lifecycle/WorldLifecycleService.java (97%) rename core/src/main/java/art/arcane/iris/{core => world}/lifecycle/WorldLifecycleStaging.java (98%) rename core/src/main/java/art/arcane/iris/{core => world}/lifecycle/WorldLifecycleSupport.java (99%) rename core/src/main/java/art/arcane/iris/{core => world}/lifecycle/WorldReplacementBootstrap.java (96%) rename core/src/main/java/art/arcane/iris/{core => world}/lifecycle/WorldReplacementBootstrapMarker.java (89%) rename core/src/main/java/art/arcane/iris/{core => world}/lifecycle/WorldReplacementEntryGuard.java (99%) rename core/src/main/java/art/arcane/iris/{core => world}/lifecycle/WorldReplacementFilesystem.java (98%) rename core/src/main/java/art/arcane/iris/{core => world}/lifecycle/WorldReplacementJournal.java (98%) rename core/src/main/java/art/arcane/iris/{core => world}/lifecycle/WorldReplacementSeed.java (99%) rename core/src/main/java/art/arcane/iris/{core => world}/lifecycle/WorldUnloadBoundaryRegistry.java (97%) rename core/src/main/java/art/arcane/iris/{core => world}/lifecycle/WorldsProviderBackend.java (97%) rename core/src/main/java/art/arcane/iris/{engine/object => world/loot}/InventorySlotType.java (60%) rename core/src/main/java/art/arcane/iris/{engine/object => world/loot}/IrisBlockDrops.java (69%) rename core/src/main/java/art/arcane/iris/{engine/object => world/loot}/IrisLoot.java (82%) rename core/src/main/java/art/arcane/iris/{engine/object => world/loot}/IrisLootMode.java (52%) rename core/src/main/java/art/arcane/iris/{engine/object => world/loot}/IrisLootReference.java (69%) rename core/src/main/java/art/arcane/iris/{engine/object => world/loot}/IrisLootTable.java (76%) rename core/src/main/java/art/arcane/iris/{engine/object => world/loot}/IrisVanillaLootTable.java (94%) rename core/src/main/java/art/arcane/iris/{core/pregenerator/methods => world/pregen}/AsyncOrMedievalPregenMethod.java (94%) rename core/src/main/java/art/arcane/iris/{core/pregenerator/methods => world/pregen}/AsyncPregenMethod.java (98%) rename core/src/main/java/art/arcane/iris/{core/pregenerator/methods => world/pregen}/CachedPregenMethod.java (94%) rename core/src/main/java/art/arcane/iris/{core/pregenerator/methods => world/pregen}/HybridPregenMethod.java (94%) rename core/src/main/java/art/arcane/iris/{core/pregenerator => world/pregen}/IrisPregenerator.java (98%) rename core/src/main/java/art/arcane/iris/{core/pregenerator => world/pregen}/MantleHeapPressure.java (99%) rename core/src/main/java/art/arcane/iris/{core/pregenerator/methods => world/pregen}/MedievalPregenMethod.java (95%) rename core/src/main/java/art/arcane/iris/{core/pregenerator => world/pregen}/PregenAdmissionGate.java (98%) rename core/src/main/java/art/arcane/iris/{core/pregenerator => world/pregen}/PregenApiPhase.java (95%) rename core/src/main/java/art/arcane/iris/{core/pregenerator => world/pregen}/PregenApiSink.java (90%) rename core/src/main/java/art/arcane/iris/{core/pregenerator/cache => world/pregen}/PregenCache.java (96%) rename core/src/main/java/art/arcane/iris/{core/pregenerator/cache => world/pregen}/PregenCacheImpl.java (99%) rename core/src/main/java/art/arcane/iris/{core/pregenerator => world/pregen}/PregenDiagnostics.java (97%) rename core/src/main/java/art/arcane/iris/{core/pregenerator => world/pregen}/PregenListener.java (97%) rename core/src/main/java/art/arcane/iris/{core/pregenerator => world/pregen}/PregenMantleBackpressure.java (99%) rename core/src/main/java/art/arcane/iris/{core/pregenerator => world/pregen}/PregenPerformanceProfile.java (89%) rename core/src/main/java/art/arcane/iris/{core/pregenerator => world/pregen}/PregenPhaseTracker.java (98%) rename core/src/main/java/art/arcane/iris/{core/pregenerator => world/pregen}/PregenRateTracker.java (98%) rename core/src/main/java/art/arcane/iris/{core/pregenerator => world/pregen}/PregenRates.java (95%) rename core/src/main/java/art/arcane/iris/{core/pregenerator/cache => world/pregen}/PregenSavedChunkStatus.java (96%) rename core/src/main/java/art/arcane/iris/{core/pregenerator/methods => world/pregen}/PregenSerialWorker.java (98%) rename core/src/main/java/art/arcane/iris/{core/pregenerator => world/pregen}/PregenTask.java (99%) rename core/src/main/java/art/arcane/iris/{core/pregenerator => world/pregen}/PregeneratorMethod.java (98%) rename core/src/main/java/art/arcane/iris/{core => world}/runtime/BukkitPublicRuntimeControlBackend.java (95%) rename core/src/main/java/art/arcane/iris/{core => world}/runtime/ChunkClearer.java (93%) rename core/src/main/java/art/arcane/iris/{core => world}/runtime/ChunkJobReporter.java (95%) rename core/src/main/java/art/arcane/iris/{core => world}/runtime/InPlaceChunkRegenerator.java (90%) rename core/src/main/java/art/arcane/iris/{core => world}/runtime/PaperLikeRuntimeControlBackend.java (99%) rename core/src/main/java/art/arcane/iris/{core => world}/runtime/RuntimeInjection.java (90%) rename core/src/main/java/art/arcane/iris/{core => world}/runtime/TransientWorldCleanupSupport.java (98%) rename core/src/main/java/art/arcane/iris/{core => world}/runtime/WorldDeletionQueue.java (96%) rename core/src/main/java/art/arcane/iris/{core => world}/runtime/WorldRuntimeControlBackend.java (98%) rename core/src/main/java/art/arcane/iris/{core => world}/runtime/WorldRuntimeControlService.java (96%) rename core/src/main/java/art/arcane/iris/{core/safeguard/task => world/safeguard}/CheckResult.java (93%) rename core/src/main/java/art/arcane/iris/{core/safeguard/task => world/safeguard}/Diagnostic.java (96%) rename core/src/main/java/art/arcane/iris/{core => world}/safeguard/IrisSafeguard.java (94%) rename core/src/main/java/art/arcane/iris/{core => world}/safeguard/Mode.java (92%) rename core/src/main/java/art/arcane/iris/{core => world}/safeguard/RuntimeLockNotice.java (95%) rename core/src/main/java/art/arcane/iris/{core/safeguard/task => world/safeguard}/Task.java (92%) rename core/src/main/java/art/arcane/iris/{core/safeguard/task => world/safeguard}/Tasks.java (95%) rename core/src/main/java/art/arcane/iris/{util/common/io => world/storage}/Durability.java (94%) rename core/src/main/java/art/arcane/iris/{util/project/matter/slices => world/storage/matter}/EntityMatter.java (97%) rename core/src/main/java/art/arcane/iris/{util/project/matter/slices => world/storage/matter}/HydrologyCaveMatter.java (91%) rename core/src/main/java/art/arcane/iris/{util/project/matter/slices => world/storage/matter}/IdentifierMatter.java (89%) rename core/src/main/java/art/arcane/iris/{util/project => world/storage}/matter/IrisMatterContext.java (95%) rename core/src/main/java/art/arcane/iris/{util/project => world/storage}/matter/IrisMatterSupport.java (81%) rename core/src/main/java/art/arcane/iris/{util/project/matter/slices => world/storage/matter}/NativeStructureOwnershipMatter.java (89%) rename core/src/main/java/art/arcane/iris/{util/project/matter/slices => world/storage/matter}/PlatformBlockMatter.java (91%) rename core/src/main/java/art/arcane/iris/{util/project/matter/slices => world/storage/matter}/PreObjectMatter.java (83%) rename core/src/main/java/art/arcane/iris/{util/project => world/storage}/matter/PreObjectMatterCell.java (97%) rename core/src/main/java/art/arcane/iris/{util/project/matter/slices => world/storage/matter}/RegistryMatter.java (87%) rename core/src/main/java/art/arcane/iris/{util/project/matter/slices => world/storage/matter}/SpawnerMatter.java (91%) rename core/src/main/java/art/arcane/iris/{util/project/matter/slices => world/storage/matter}/TileMatter.java (93%) rename core/src/main/java/art/arcane/iris/{util/project => world/storage}/matter/TileWrapper.java (89%) rename core/src/main/java/art/arcane/iris/{util/project/matter/slices => world/storage/matter}/TreeBlockMaterialMatter.java (89%) rename core/src/main/java/art/arcane/iris/{util/project => world/storage}/matter/WorldMatter.java (97%) rename core/src/main/java/art/arcane/iris/{util/common/nbt/mca => world/storage/region}/Chunk.java (95%) rename core/src/main/java/art/arcane/iris/{util/common/nbt/mca => world/storage/region}/MCAFile.java (97%) rename core/src/main/java/art/arcane/iris/{util/common/nbt/mca => world/storage/region}/MCAUtil.java (99%) rename core/src/main/java/art/arcane/iris/{util/common/nbt/mca => world/storage/region}/NBTWorld.java (97%) rename core/src/main/java/art/arcane/iris/{util/common/nbt/mca => world/storage/region}/Section.java (98%) rename core/src/main/java/art/arcane/iris/{util/common/scheduling => world/task}/J.java (99%) rename core/src/main/java/art/arcane/iris/{util/common/scheduling => world/task}/jobs/DownloadJob.java (93%) rename core/src/main/java/art/arcane/iris/{util/common/scheduling => world/task}/jobs/Job.java (90%) rename core/src/main/java/art/arcane/iris/{util/common/scheduling => world/task}/jobs/JobCollection.java (97%) rename core/src/main/java/art/arcane/iris/{util/common/scheduling => world/task}/jobs/ParallelQueueJob.java (88%) rename core/src/main/java/art/arcane/iris/{util/common/scheduling => world/task}/jobs/QueueJob.java (97%) rename core/src/main/java/art/arcane/iris/{util/common/scheduling => world/task}/jobs/SingleJob.java (96%) rename core/src/main/java/art/arcane/iris/{core/service => world}/tree/BlockDropRouter.java (68%) rename core/src/main/java/art/arcane/iris/{core/service => world}/tree/TreeDefinitionIndex.java (87%) rename core/src/main/java/art/arcane/iris/{core/service => world}/tree/TreeMarkerTraversal.java (98%) rename core/src/main/java/art/arcane/iris/{core/service => world/tree}/TreeSVC.java (94%) rename core/src/test/java/art/arcane/iris/{util/common/director => command}/DirectorAuthoringDataTest.java (95%) rename core/src/test/java/art/arcane/iris/{util/common/director => command}/handlers/DataVersionHandlerTest.java (95%) rename core/src/test/java/art/arcane/iris/{util/common/director => command}/handlers/GeneratorHandlerTest.java (82%) rename core/src/test/java/art/arcane/iris/{util/common/director => command}/handlers/PrimitiveHandlerParsingTest.java (59%) rename core/src/test/java/art/arcane/iris/{util/common/director => command}/handlers/VectorHandlerParsingTest.java (98%) rename core/src/test/java/art/arcane/iris/{util/common/director => command}/handlers/WorldHandlerTest.java (97%) rename core/src/test/java/art/arcane/iris/{util/common/director => command}/specialhandlers/ObjectScaleHandlerTest.java (94%) rename core/src/test/java/art/arcane/iris/{util/common/director => command}/specialhandlers/ReachableBiomeHandlerTest.java (90%) rename core/src/test/java/art/arcane/iris/{util/common/director => command}/specialhandlers/StructureHandlerTest.java (93%) rename core/src/test/java/art/arcane/iris/{core => configuration}/IrisSettingsDefaultsTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => configuration}/IrisSettingsRewriteFailureTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => configuration}/SettingsHotloadWatchTest.java (99%) rename core/src/test/java/art/arcane/iris/{core/service => diagnostics}/LogFilterSVCTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => diagnostics}/splash/IrisSplashComposerTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/biome}/FloatingIslandBoundarySamplerTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/biome}/FloatingIslandSampleBottomYTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/biome}/IrisBiomeCeilingLayerTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/biome}/IrisBiomeCompatChildrenTest.java (83%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/biome}/IrisBiomeCustomCompatTest.java (90%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/biome}/IrisBiomeCustomSpawnTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/biome}/IrisBiomeCustomTagInheritanceTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/biome}/IrisBiomeDerivativeCompatTest.java (92%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/biome}/IrisBiomeGeneratorSeedIsolationTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/biome}/IrisBiomeInferenceIsolationTest.java (88%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/biome}/IrisBiomeLayerSlopeSourceTest.java (92%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/biome}/IrisBiomeLockedLayerTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/biome}/IrisBiomePaletteLayerGeneratorCacheTest.java (93%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/biome}/IrisBiomeStructureDerivativeTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/biome}/IrisFloatingChildBiomesCarvingResolutionTest.java (90%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/biome}/IrisFloatingChildBiomesResolverTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/biome}/IslandObjectPlacerAnchorFaceTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/block}/IrisObjectBlockDataMergeTest.java (97%) rename core/src/test/java/art/arcane/iris/{util/common/data => generation/block}/PlatformStateRebindTest.java (85%) rename core/src/test/java/art/arcane/iris/{engine/data => generation}/cache/AtomicCacheTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine/data => generation}/cache/LazyBoundedCacheTest.java (99%) rename core/src/test/java/art/arcane/iris/{util/common/parallel => generation/concurrent}/BurstExecutorSupportReentrantTest.java (97%) rename core/src/test/java/art/arcane/iris/{util/project => generation}/context/ChunkContextPrefillPlanTest.java (97%) rename core/src/test/java/art/arcane/iris/{util/project => generation}/context/ChunkedDoubleDataCacheOverrideTest.java (89%) rename core/src/test/java/art/arcane/iris/{util/project => generation}/context/IrisContextIsolationTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine/decorator => generation/decoration}/DecoratorCoreTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine/decorator => generation/decoration}/IrisDecoratorCaveContextTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/decoration}/IrisDecoratorHeightTest.java (86%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/decoration}/IrisDepositTuningTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/decoration}/IrisOreGeneratorTest.java (91%) rename core/src/test/java/art/arcane/iris/{engine/decorator => generation/decoration}/IrisSeaDecoratorBoundsTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine/decorator => generation/decoration}/IrisShoreLineDecoratorTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine/decorator => generation/decoration}/IrisSugarCanePlacementTest.java (91%) rename core/src/test/java/art/arcane/iris/{engine/decorator => generation/decoration}/IrisSugarCaneTest.java (91%) rename core/src/test/java/art/arcane/iris/{engine/decorator => generation/decoration}/IrisSurfaceDecoratorSlopeTest.java (87%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/decoration}/coral/CoralGeneratorTest.java (89%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/decoration}/formation/FormationBlockResolverTest.java (93%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/decoration}/formation/FormationShapeBuilderTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine/object/fungi => generation/decoration/fungus}/FungusStemBuilderTest.java (93%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/decoration}/tree/ProceduralTreeGeneratorTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine/framework => generation/decoration/tree}/TreeBlockMaterialTest.java (89%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/decoration}/tree/TreeBlockResolverTest.java (93%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/decoration}/tree/TreeDecoratorApplierTest.java (88%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyCaveCourseFilterTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyCaveTerminalAlignmentTest.java (91%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyCoastalDropReservoirTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyColumnSampleAccessorTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyCrossTileCaveAdmissionTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyCrossTileSurfaceAdmissionTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyFootprintCompilerTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyForkJoinTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyModelTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyMouthDropReservoirTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyOceanBoundaryRefinerTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyOceanReceiverTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyOutletBoundaryPolicyTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyPlanHashTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyPlannerConfinementTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyPlannerCrossTileCaveAdmissionIntegrationTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyPlannerGlobalInvariantTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyPlannerRoutingSamplerTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyPlannerSeaCaveTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyPlannerSettingsTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyPlannerSurfacePoolTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyPlannerTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyPlannerTributaryTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyPlannerUndergroundKnobsTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalAdaptiveBendsTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalBankSupportTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalCacheTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalCandidateSelectionTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalConnectivityTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalCourseGraphTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalFallsTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalFloodedMouthTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalGraphTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalHydraulicsTest.java (93%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalMeanderScaleTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalMorphologyTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalMouthRefinementTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalPlannerTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalSkippedWaypointTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalSourceTrialsTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalSurfacePolicyTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalTerrainRefinerTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalTributariesTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalWidthAdaptationTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRegionalWidthSupportTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRouteLengthsTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyRouteTurnCacheTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyStyledGeometryTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologySurfaceDropRasterTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologySurfaceGeometryPolicyTest.java (92%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologySurfaceProfilesTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologySurfaceRouteGeometryTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyTerrainCaveVoxelViewTest.java (93%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyTerrainSampleTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyTerrainSamplerTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/HydrologyTileCacheTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/hydrology}/IrisRiverConfigurationTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/RiverFootprintTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/StudioHydrologyTileStoreTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/cave/CavePositionIndexTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/cave/HydrologyCaveContainmentPlannerTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/cave/HydrologyCaveIterationOrderTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/cave/HydrologyCavePlanTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/cave/HydrologyCaveStorageTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/policy/RiverPolicyResolverTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/runtime/HydrologyFeatureSearchBoundsTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/runtime/HydrologyFeatureSearchTest.java (93%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/runtime/IrisHydrologyBiomePatchTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/runtime/IrisHydrologyPhysicalOceanTest.java (83%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/runtime/IrisHydrologyPolicyCacheTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/runtime/IrisHydrologyRoutingTerrainSamplerTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/runtime/IrisHydrologyRuntimeDiagnosticsTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/runtime/IrisHydrologySettingsCompilerTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/surface/ChannelProfileBuilderTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/surface/ErosionFieldCompilerTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/surface/SurfaceBendProfileTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/surface/SurfaceCellAdmissionTest.java (89%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/surface/SurfaceCenterlineTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/surface/SurfaceCourseBuilderTest.java (93%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/surface/SurfaceExcavationMetricsTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/surface/SurfaceFootprintCompilerTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/surface/SurfaceNoiseTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/surface/SurfaceSegmentLabelerTest.java (87%) rename core/src/test/java/art/arcane/iris/{engine => generation}/hydrology/surface/ValleyProfileSolverTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => generation}/image/IrisImageMapCompilerTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine => generation}/image/IrisImageMapMaskSamplerTest.java (92%) rename core/src/test/java/art/arcane/iris/{engine => generation}/image/IrisImageMapRuntimeTest.java (91%) rename core/src/test/java/art/arcane/iris/{engine/framework => generation/locator}/HintedLocatorTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine/framework => generation/locator}/LocatorCancellerTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine/framework => generation/locator}/LocatorPoiCoordinateTest.java (59%) rename core/src/test/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/CarveOrphanSweepTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/CaveDensityTasksTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/CaveObjectPlacementTransactionTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine => generation}/mantle/EngineMantleCleanupTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine => generation}/mantle/EngineMantleCoverageTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => generation}/mantle/EngineMantleMarkerTest.java (93%) rename core/src/test/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/FloatingObjectPlacementTransactionTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/IrisCaveCarver3DNearParityTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/IrisStructureComponentMarkerTest.java (92%) rename core/src/test/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/IrisStructureComponentOverboreTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/IrisStructureFoundationWriteTest.java (90%) rename core/src/test/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/MantleCarvingComponentBoundaryRadiusTest.java (90%) rename core/src/test/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/MantleCarvingComponentScratchTest.java (91%) rename core/src/test/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/MantleCarvingComponentTop2BlendTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/MantleFloatingObjectComponentBoundaryRadiusTest.java (85%) rename core/src/test/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/MantleFloatingObjectComponentInvertedPlacementTest.java (93%) rename core/src/test/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/MantleHydrologyCaveVoxelViewTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/MantleHydrologyComponentTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/MantleObjectComponentBoundaryRadiusTest.java (92%) rename core/src/test/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/MantleObjectComponentCaveAnchorTest.java (93%) rename core/src/test/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/MantleObjectComponentCollisionDeterminismTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/MantleObjectComponentProceduralChanceTest.java (91%) rename core/src/test/java/art/arcane/iris/{engine => generation}/mantle/MantleWriterNeighborhoodBenchmarkTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => generation}/mantle/MantleWriterNeighborhoodTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => generation}/mantle/MantleWriterOverlayTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine => generation}/mantle/MantleWriterParallelismTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine => generation}/mantle/MantleWriterPreObjectJournalTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine => generation}/mantle/MatterGeneratorCarvePassRadiusTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => generation}/mantle/MatterGeneratorConcurrencyTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/ObjectDestinationTransactionTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/ObjectSourcePlanCacheTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => generation}/mantle/ResolvedTerrainPlacementTest.java (93%) rename core/src/test/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/StructureCarveEnvelopeTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/StructureCarvingFootprintTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/StructureFoundationPlannerTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine/mantle/components => generation/mantle}/SurfaceFluidBoundaryPlanTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => generation}/mantle/TerrainComposedCavernTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine => generation}/mantle/TerrainMatterViewTest.java (96%) rename core/src/test/java/art/arcane/iris/{util/project => generation}/noise/ImageNoiseTest.java (89%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/noise}/IrisExpressionLoadEngineCacheTest.java (87%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/noise}/IrisGeneratorStyleCacheIsolationTest.java (92%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/noise}/IrisNoiseGeneratorCacheTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/noise}/IrisNoiseGeneratorRemapTest.java (93%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/noise}/NoiseStyleContractTest.java (97%) create mode 100644 core/src/test/java/art/arcane/iris/generation/noise/PatternNoiseStyleTest.java rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/DimensionStackLayoutTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/DimensionTerrain3DCompositionTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/DimensionTerrainContextFallbackTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine/framework => generation/runtime}/EngineAssignedWorldManagerLifecycleTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine/framework => generation/runtime}/EngineAssignedWorldManagerTeleportTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/EngineBackgroundTasksAdmissionTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine/framework => generation/runtime}/EngineComponentTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/EngineDiagnosticsFailureTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine/framework => generation/runtime}/EngineHostHeightTest.java (93%) rename core/src/test/java/art/arcane/iris/{engine/framework => generation/runtime}/EngineLifecycleTasksTest.java (98%) rename core/src/test/java/art/arcane/iris/{core/service => generation/runtime}/EngineMaintenanceTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine/framework => generation/runtime}/EngineModeBurstAroundTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine/framework => generation/runtime}/EngineModeMaintenanceTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine/framework => generation/runtime}/EngineMulticoreDecisionTest.java (92%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/EnginePanicTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine/framework => generation/runtime}/EnginePlayerTest.java (87%) rename core/src/test/java/art/arcane/iris/{engine/framework => generation/runtime}/EnginePreviewColorTest.java (85%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/EngineRuntimeBuilderStudioServiceTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/EngineShutdownDrainTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine/framework => generation/runtime}/EngineTelemetrySnapshotTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine/framework => generation/runtime}/GenerationSessionManagerTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine/framework => generation/runtime}/GenerationTransitionGateTest.java (99%) rename core/src/test/java/art/arcane/iris/{core/service => generation/runtime}/GlobalCacheSVCTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/IrisCarveWallPaletteScopeTest.java (93%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/IrisComplexBiomeBuffetTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/IrisComplexBoundsBiomeCacheTest.java (91%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/IrisComplexConstantGeneratorBoundsTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/IrisComplexGeneratorOrderingTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/IrisComplexGridBoundsCacheTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/IrisComplexImplodeParityTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/IrisComplexInferredBiomeStreamCacheTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/IrisComplexNaturalBiomeReuseTest.java (90%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/IrisComplexSelfSelectionTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/IrisComplexStudioCacheTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/IrisComplexSurfaceBiomeTest.java (90%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/IrisComplexTransitionTest.java (91%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/IrisEngineDataPersistenceTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/IrisEngineGenerationRuntimeScopeTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/IrisEngineLifecycleGateTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine/framework => generation/runtime}/IrisEngineModeLifecycleTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/IrisEnginePlatformHookIsolationTest.java (74%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/IrisEnginePreviewTest.java (82%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/IrisEngineStudioEntryHydrologyTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/IrisEngineWorldSaveTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/IrisWorldManagerMarkerTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/IrisWorldManagerNativePoiTest.java (92%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/IrisWorldManagerShutdownTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/NativeStructureBootstrapBarrierTest.java (99%) rename core/src/test/java/art/arcane/iris/{core/service => generation/runtime}/PreservationSVCTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/ResolvedTerrainProviderTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/SharedCornerBoundsTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/StudioGenerationUpdateTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/UpperDimensionImageMapRuntimeTest.java (92%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/UpperDimensionTransitionTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/WorldBlockDropRouterTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/WorldChunkMaintenanceRoutingTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/WorldChunkMaintenanceSavedBiomeTest.java (93%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/WorldEntitySpawnerBiomeTest.java (88%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/WorldEntitySpawnerLifecycleTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine => generation/runtime}/WorldTeleportWarmupTest.java (99%) rename core/src/test/java/art/arcane/iris/{util => generation}/simd/SimdKernelsTest.java (99%) rename core/src/test/java/art/arcane/iris/{util => generation}/simd/SimdSupportStatusTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine/actuator => generation/stage}/IrisBiomeActuatorCoordinateTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine/modifier => generation/stage}/IrisCarveModifierBiomeBlendTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine/modifier => generation/stage}/IrisCarveModifierBoundarySupportTest.java (93%) rename core/src/test/java/art/arcane/iris/{engine/modifier => generation/stage}/IrisCarveModifierFluidIntentTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine/modifier => generation/stage}/IrisCarveModifierHydrologyMaterialTest.java (89%) rename core/src/test/java/art/arcane/iris/{engine/modifier => generation/stage}/IrisCarveModifierHydrologyTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine/modifier => generation/stage}/IrisCarveModifierInferenceIsolationTest.java (86%) rename core/src/test/java/art/arcane/iris/{engine/modifier => generation/stage}/IrisCarveModifierZoneParityTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine/modifier => generation/stage}/IrisCarveScratchTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine/actuator => generation/stage}/IrisDecorantActuatorRiverTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine/modifier => generation/stage}/IrisDepositModifierContainmentTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine/modifier => generation/stage}/IrisDepositModifierContextTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine/modifier => generation/stage}/IrisDepositModifierOrderingTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine/modifier => generation/stage}/IrisDepositModifierParityTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine/modifier => generation/stage}/IrisDepositModifierProbabilityTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine/actuator => generation/stage}/IrisDimensionStackActuatorMetadataTest.java (92%) rename core/src/test/java/art/arcane/iris/{engine/modifier => generation/stage}/IrisFloatingChildBiomeModifierStackTest.java (88%) rename core/src/test/java/art/arcane/iris/{engine/modifier => generation/stage}/IrisNaturalCaveScanTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine/modifier => generation/stage}/IrisPerfectionModifierSpeleothemTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine/modifier => generation/stage}/IrisPostModifierHydrologyTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine/actuator => generation/stage}/IrisTerrainNormalActuatorHydrologyTest.java (92%) rename core/src/test/java/art/arcane/iris/{engine/actuator => generation/stage}/IrisTransitionGeometryActuatorTest.java (92%) rename core/src/test/java/art/arcane/iris/{util/project/stream/utility => generation/stream}/ContextInjectingStreamTest.java (90%) rename core/src/test/java/art/arcane/iris/{engine => generation}/terrain/HydrologyBankTerrainRuntimeTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/terrain}/IrisDimensionBiomeTagTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/terrain}/IrisDimensionCarvingResolverParityTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/terrain}/IrisDimensionCompatRegionTest.java (81%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/terrain}/IrisDimensionFocusRegionTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/terrain}/IrisDimensionReachableBiomesTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/terrain}/IrisDimensionRuntimeContractTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/terrain}/IrisDimensionTypeKeyTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/terrain}/IrisMaterialPaletteGeneratorCacheTest.java (93%) rename core/src/test/java/art/arcane/iris/{engine/object => generation/terrain}/IrisRegionCompatPoolTest.java (86%) rename core/src/test/java/art/arcane/iris/{engine => generation}/terrain/Terrain3DColumnFixtures.java (85%) rename core/src/test/java/art/arcane/iris/{engine => generation}/terrain/Terrain3DFragmentFilterTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine => generation}/terrain/Terrain3DRuntimeTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => generation}/terrain/Terrain3DSurfaceSlopeTest.java (95%) rename core/src/test/java/art/arcane/iris/{core/runtime => generation/validation}/GoldenHashEngineTest.java (98%) rename core/src/test/java/art/arcane/iris/{core/service => integration}/ExternalDataSVCBlockRoutingTest.java (96%) rename core/src/test/java/art/arcane/iris/{core/service => integration}/ExternalDataSVCContentChangeTest.java (96%) rename core/src/test/java/art/arcane/iris/{core/service => integration}/ExternalDataSVCRegistryTest.java (94%) rename core/src/test/java/art/arcane/iris/{core/link => integration}/IdentifierTest.java (97%) rename core/src/test/java/art/arcane/iris/{core/link => integration}/MultiverseCoreLinkTest.java (99%) rename core/src/test/java/art/arcane/iris/{core/link => integration}/MultiverseGuardListenerTest.java (99%) rename core/src/test/java/art/arcane/iris/{core/service => integration}/MultiverseSVCTest.java (95%) rename core/src/test/java/art/arcane/iris/{core/link => integration}/WorldEditLinkDetectionTest.java (97%) rename core/src/test/java/art/arcane/iris/{core/link => integration}/data/DataTypeProbeContractTest.java (97%) rename core/src/test/java/art/arcane/iris/{core/link => integration}/data/ExternalDataProviderDefaultsTest.java (96%) rename core/src/test/java/art/arcane/iris/{core/link => integration}/data/ProviderNamespaceClaimTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => }/localization/IrisDownloadValidationTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => }/localization/IrisLanguageEditorTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => }/localization/IrisLanguageGuideTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => }/localization/IrisLanguageHotloadSnapshotTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => }/localization/IrisLanguageTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => }/localization/ResetMantleHelpTextTest.java (97%) rename core/src/test/java/art/arcane/iris/{core => }/pack/AtomicDirectoryPublisherTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => }/pack/ContentKeyValidatorTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => }/pack/DefaultPackBootstrapProvisionerTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => }/pack/PackBiomeLayerValidatorTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => }/pack/PackCaveProfileValidatorTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => }/pack/PackDirectoryResolverTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => }/pack/PackDownloadExecutionTest.java (97%) rename core/src/test/java/art/arcane/iris/{core => }/pack/PackDownloaderTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => }/pack/PackExportClosureTest.java (94%) rename core/src/test/java/art/arcane/iris/{core => }/pack/PackGeneratorDuplicateValidatorTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => }/pack/PackHydrologyValidatorTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => }/pack/PackImageMapValidatorTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => }/pack/PackObjectScaleFactorTest.java (97%) rename core/src/test/java/art/arcane/iris/{core => }/pack/PackResourceCleanupTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => }/pack/PackRiverBank3DValidatorTest.java (97%) rename core/src/test/java/art/arcane/iris/{core => }/pack/PackStaticObjectValidatorTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => }/pack/PackStyledRangeDefaultValidatorTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => }/pack/PackTerrain3DValidatorTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => }/pack/PackValidationCacheTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => }/pack/PackValidationRegistryTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => }/pack/PackValidatorCompatTest.java (96%) rename core/src/test/java/art/arcane/iris/{core => }/pack/PackValidatorCustomBiomeSpawnTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => }/pack/PackValidatorDimensionHeightTest.java (96%) rename core/src/test/java/art/arcane/iris/{core => }/pack/PackValidatorDimensionStackTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => }/pack/PackValidatorImportedStructurePolicyTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => }/pack/PackValidatorLootTest.java (97%) rename core/src/test/java/art/arcane/iris/{core => }/pack/PackValidatorReadOnlyTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => }/pack/PackValidatorRemovedWorldgenFieldTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => }/pack/PackValidatorSpawnerEntityTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => }/pack/PackValidatorStructureGraphTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => }/pack/PackValidatorStructureTerrainBackendTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => }/pack/PackValidatorStructureTransformTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => }/pack/PackValidatorSurfaceSupportTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => }/pack/PackValidatorWorldBoundaryTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => }/pack/StructureGraphPackValidatorTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => }/pack/StructurePackageClosureLimitsTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => }/pack/StructurePackageClosureTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => pack}/datapack/DatapackIngestServiceTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => pack/datapack}/DatapackInstallResultTest.java (97%) rename core/src/test/java/art/arcane/iris/{core => pack}/datapack/DatapackStructureScopeIndexTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => pack/datapack}/IrisDatapackCompilerInputFingerprintTest.java (96%) rename core/src/test/java/art/arcane/iris/{core => pack/datapack}/IrisDatapackCompilerTest.java (97%) rename core/src/test/java/art/arcane/iris/{core => pack}/datapack/ModrinthResolverTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => pack/datapack}/ServerConfiguratorDatapackFingerprintTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => pack/datapack}/ServerConfiguratorRegistryVerificationTest.java (90%) rename core/src/test/java/art/arcane/iris/{core => pack/datapack}/ServerConfiguratorStartupRestartTest.java (99%) rename core/src/test/java/art/arcane/iris/{core/loader => pack/loading}/ImageResourceLoaderTest.java (93%) rename core/src/test/java/art/arcane/iris/{core/loader => pack/loading}/IrisDataAuthoringCacheTest.java (95%) rename core/src/test/java/art/arcane/iris/{core/loader => pack/loading}/IrisDataDatapackCompilerCacheTest.java (94%) rename core/src/test/java/art/arcane/iris/{core/loader => pack/loading}/IrisDataEngineRegistryTest.java (92%) rename core/src/test/java/art/arcane/iris/{core/loader => pack/loading}/IrisDataRetainedPackTest.java (90%) rename core/src/test/java/art/arcane/iris/{core/loader => pack/loading}/ResourceLoaderPrefetchTest.java (96%) rename core/src/test/java/art/arcane/iris/{core/loader => pack/loading}/ResourceLoaderStaticObjectValidationTest.java (95%) rename core/src/test/java/art/arcane/iris/{core/project => pack/schema}/SchemaBuilderIdentityTest.java (91%) rename core/src/test/java/art/arcane/iris/{core/project => pack/schema}/SchemaBuilderParityTest.java (91%) rename core/src/test/java/art/arcane/iris/{core/compat => pack/validation}/CompatFixtures.java (98%) rename core/src/test/java/art/arcane/iris/{core/compat => pack/validation}/ContentGatePlaceholderTest.java (94%) rename core/src/test/java/art/arcane/iris/{core/compat => pack/validation}/ContentGateTest.java (98%) rename core/src/test/java/art/arcane/iris/{core/compat => pack/validation}/ContentGateWalkerTest.java (96%) rename core/src/test/java/art/arcane/iris/{core/compat => pack/validation}/IrisBlockDataResolutionTest.java (97%) rename core/src/test/java/art/arcane/iris/{core/compat => pack/validation}/PackCompatReportTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine/object => pack/value}/HydrologyEnumDescriptionsTest.java (59%) rename core/src/test/java/art/arcane/iris/{engine/object => pack/value}/IrisDurationTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine/object => pack/value}/IrisMathNoiseHotPathParityTest.java (82%) rename core/src/test/java/art/arcane/iris/{engine/object => pack/value}/IrisPlatformIsolationTest.java (92%) rename core/src/test/java/art/arcane/iris/{engine/object => pack/value}/IrisRaritySelectionTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine/object => pack/value}/PlatformStateHookContractTest.java (93%) rename core/src/test/java/art/arcane/iris/{engine/object => pack/value}/RemovedDeadFieldsTest.java (88%) rename core/src/test/java/art/arcane/iris/{engine/object => pack/value}/SchemaMetadataCorrectionsTest.java (63%) rename core/src/test/java/art/arcane/iris/{util/common/misc => platform/bootstrap}/WebCacheTest.java (99%) rename core/src/test/java/art/arcane/iris/{core/service => platform/bukkit}/BoardSVCJigsawContextTest.java (96%) rename core/src/test/java/art/arcane/iris/{core/service => platform/bukkit}/BoardSVCSavedBiomeTest.java (94%) rename core/src/test/java/art/arcane/iris/{core/service => platform/bukkit}/BoardSVCStudioEligibilityTest.java (93%) rename core/src/test/java/art/arcane/iris/{core => platform/bukkit}/nms/MinecraftVersionTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => platform/bukkit}/nms/NmsBindingSelectorTest.java (97%) rename core/src/test/java/art/arcane/iris/{core => platform/bukkit}/nms/ServerShutdownBoundaryTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => platform/bukkit}/nms/datapack/DataVersionTest.java (94%) rename core/src/test/java/art/arcane/iris/{core => platform/bukkit}/nms/datapack/v1217/DataFixerV1217ClockTest.java (90%) rename core/src/test/java/art/arcane/iris/{core => platform/bukkit}/nms/datapack/v1217/DataFixerV1217CustomBiomeTest.java (91%) rename core/src/test/java/art/arcane/iris/{core => platform/bukkit}/nms/datapack/v1217/DataFixerV1217DimensionTypeTest.java (90%) rename core/src/test/java/art/arcane/iris/{core => platform/bukkit}/nms/v1X/NMSBinding1XWorldGenerationTest.java (96%) rename core/src/test/java/art/arcane/iris/{util/common => platform/bukkit}/plugin/VolmitSenderComponentDeliveryTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine/platform => platform/generation}/BukkitChunkGeneratorCloseTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine/platform => platform/generation}/BukkitChunkGeneratorGenerationStageGateTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine/platform => platform/generation}/BukkitChunkGeneratorInitialSpawnTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine/platform => platform/generation}/BukkitChunkGeneratorInitializationModeTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine/platform => platform/generation}/BukkitChunkGeneratorSpawnHydrologyTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine/platform => platform/generation}/BukkitChunkGeneratorStartupContentTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine/platform => platform/generation}/BukkitChunkGeneratorStudioSelectionTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine/platform => platform/generation}/EngineBukkitOpsBiomeTest.java (83%) rename core/src/test/java/art/arcane/iris/{engine/platform => platform/generation}/EngineBukkitOpsDeferredMaterializationTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine/platform => platform/generation}/EngineBukkitOpsLootTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => platform}/protocol/IrisCursorRequestServiceTest.java (97%) rename core/src/test/java/art/arcane/iris/{core => platform}/protocol/IrisCursorResolverTest.java (93%) rename core/src/test/java/art/arcane/iris/{core => platform}/protocol/IrisMessageCodecTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => platform}/protocol/IrisProtocolMessageCoverageTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => platform}/protocol/IrisProtocolServerTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => platform}/protocol/IrisTileEncoderTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => platform}/protocol/IrisVisionRequestServiceTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => }/structure/BulkStructureImporterTemplateNameTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => }/structure/FeatureImporterScratchLifecycleTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => }/structure/StructureCaptureImporterFailureTest.java (97%) rename core/src/test/java/art/arcane/iris/{core => }/structure/StructureCaptureImporterTargetSelectionTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => }/structure/StructureImporterCaptureTest.java (97%) rename core/src/test/java/art/arcane/iris/{core => }/structure/StructureImporterModeTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => }/structure/StructureIndexServiceTest.java (92%) rename core/src/test/java/art/arcane/iris/{core => }/structure/StructureSchemaKeysTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => }/structure/VillageImporterBundleTest.java (90%) rename core/src/test/java/art/arcane/iris/{core => }/structure/VillageImporterConnectorRoundTripTest.java (86%) rename core/src/test/java/art/arcane/iris/{core => }/structure/VillageImporterFailureLogTest.java (97%) rename core/src/test/java/art/arcane/iris/{core => }/structure/VillageImporterListPoolElementTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => }/structure/VillageImporterMaxDistanceReadTest.java (97%) rename core/src/test/java/art/arcane/iris/{core => }/structure/authoring/IrisDataStructureRecoveryTest.java (93%) rename core/src/test/java/art/arcane/iris/{core => }/structure/authoring/StructureKeyTest.java (97%) rename core/src/test/java/art/arcane/iris/{core => }/structure/authoring/StructureOwnershipProvenanceTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => }/structure/authoring/StructureResourceBundleTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => }/structure/authoring/StructureTransactionClaimTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => }/structure/authoring/StructureTransactionWriterTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => }/structure/conversion/IrisStructureAdoptionServiceTest.java (97%) rename core/src/test/java/art/arcane/iris/{core => }/structure/conversion/IrisStructureAdoptionValueTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => }/structure/export/VanillaBlockStateTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => }/structure/export/VanillaJigsawDatapackExporterTest.java (95%) rename core/src/test/java/art/arcane/iris/{core => }/structure/export/VanillaJigsawExportRequestTest.java (96%) rename core/src/test/java/art/arcane/iris/{core => }/structure/export/VanillaResourceIdentifierTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => }/structure/export/VanillaStructureTemplateOrientationTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine/framework/structure => structure/graph}/IrisObjectFrameReaderTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine/framework/structure => structure/graph}/JigsawPoolSelectionTest.java (85%) rename core/src/test/java/art/arcane/iris/{engine/framework/structure => structure/graph}/PlanarJigsawWorkcellResolverTest.java (83%) rename core/src/test/java/art/arcane/iris/{engine/framework/structure => structure/graph}/StructureAssemblyResultTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine/framework/structure => structure/graph}/StructureGraphCompilerTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine/framework/structure => structure/graph}/StructureResourceBundleGraphCompilerTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine/object => structure/jigsaw}/IrisJigsawCompatTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine/object => structure/jigsaw}/IrisJigsawModelMetadataTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine/object => structure/jigsaw}/IrisJigsawRulesModelTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine/object => structure/nativegen}/IrisImportedFeatureControlTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine/object => structure/nativegen}/IrisImportedStructureControlTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine/framework => structure/nativegen}/NativeFeatureGenerationPolicyTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine/framework => structure/nativegen}/NativeStructureFrequencyScaleTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine/framework => structure/nativegen}/NativeStructureGenerationPolicyTest.java (89%) rename core/src/test/java/art/arcane/iris/{engine/object => structure/nativegen}/NativeStructureObjectVetoTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine/framework => structure/nativegen}/NativeStructureOwnershipRecordTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine/framework => structure/nativegen}/NativeStructureOwnershipStoreTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine/framework => structure/nativegen}/NativeStructurePlacementPlannerTest.java (93%) rename core/src/test/java/art/arcane/iris/{engine/framework => structure/nativegen}/NativeStructureVolumeMemoTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine/framework => structure/nativegen}/NativeStructureVolumeSuppressionTest.java (86%) rename core/src/test/java/art/arcane/iris/{engine/framework => structure/nativegen}/NativeStructureVolumeTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine/framework/placer => structure/object}/HeightmapObjectPlacerTest.java (82%) rename core/src/test/java/art/arcane/iris/{engine => structure}/object/IObjectPlacerFluidHeightTest.java (91%) rename core/src/test/java/art/arcane/iris/{engine => structure}/object/IrisAxisRotationClampPurityTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => structure}/object/IrisObjectCopyTest.java (93%) rename core/src/test/java/art/arcane/iris/{engine => structure}/object/IrisObjectDirectPlacementTest.java (93%) rename core/src/test/java/art/arcane/iris/{engine => structure}/object/IrisObjectGlobalScaleTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine => structure}/object/IrisObjectIoPaletteTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine => structure}/object/IrisObjectIoWriteLimitsTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine => structure}/object/IrisObjectPaletteScanTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => structure}/object/IrisObjectPlacementCompatTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine => structure}/object/IrisObjectPlacementRunnerRegressionTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine => structure}/object/IrisObjectPlacementSurfaceWarpCacheTest.java (84%) rename core/src/test/java/art/arcane/iris/{engine => structure}/object/IrisObjectPlacementToPlacementTest.java (90%) rename core/src/test/java/art/arcane/iris/{engine => structure}/object/IrisObjectRotationFlipTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine => structure}/object/IrisObjectScaleCacheTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => structure}/object/IrisObjectShapingTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine => structure}/object/IrisObjectStructurePieceAirTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine => structure}/object/IrisObjectSurfaceSupportPlacementTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine => structure}/object/IrisObjectTransformsNearestBlockIndexTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine => structure}/object/IrisObjectTransformsTileTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => structure}/object/IrisObjectTransientBlockTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine => structure}/object/IrisObjectVacuumTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => structure}/object/IrisPaintSurfaceProjectionTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => structure}/object/IrisStaticObjectCompatTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine => structure}/object/IrisStaticObjectLayerTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine => structure}/object/IrisStaticObjectTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine => structure}/object/IrisSurfaceSupportTest.java (93%) rename core/src/test/java/art/arcane/iris/{engine/object => structure/placement}/IrisStructureAnchorModeTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine/framework => structure/placement}/IrisStructureLocatorContractTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine/object => structure/placement}/IrisStructureLootPlacementTest.java (93%) rename core/src/test/java/art/arcane/iris/{engine/object => structure/placement}/IrisStructurePlacementCarveSettingsTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine/framework => structure/placement}/IrisStructurePlacementRingLocatorTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine/object => structure/placement}/IrisStructureStiltSettingsTest.java (91%) rename core/src/test/java/art/arcane/iris/{engine/object => structure/placement}/IrisStructureYBandTest.java (93%) rename core/src/test/java/art/arcane/iris/{engine/framework => structure/placement}/LootResolverClearModeTest.java (91%) rename core/src/test/java/art/arcane/iris/{engine/framework => structure/placement}/LootResolverTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine/framework => structure/placement}/StructureAssemblerCompatTest.java (84%) rename core/src/test/java/art/arcane/iris/{engine/framework => structure/placement}/StructureAssemblerTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine/framework => structure/placement}/StructureCaveAnchorResolverTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine/framework => structure/placement}/StructurePlacementGridTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine/framework => structure/placement}/StructurePlacementMarkerTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine/framework => structure/placement}/StructurePlacementScopeTest.java (92%) rename core/src/test/java/art/arcane/iris/{engine/framework => structure/placement}/StructureReachabilityContractTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine/framework => structure/placement}/StructureVerticalBoundsTest.java (97%) rename core/src/test/java/art/arcane/iris/{core/service => studio}/PackDownloadProgressReporterTest.java (97%) rename core/src/test/java/art/arcane/iris/{core/service => studio}/StudioSVCJigsawProtectionTest.java (88%) rename core/src/test/java/art/arcane/iris/{core/service => studio}/StudioSVCPackAdmissionTest.java (91%) rename core/src/test/java/art/arcane/iris/{core/service => studio}/StudioSVCPackDownloadContractTest.java (84%) rename core/src/test/java/art/arcane/iris/{core/service => studio}/StudioSVCProjectSafetyTest.java (96%) rename core/src/test/java/art/arcane/iris/{core/service => studio}/StudioSVCWorldPackPublishTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine/platform/studio/generators => studio/generation}/JigsawStudioGeneratorTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine/platform/studio/generators => studio/generation}/ObjectStudioGeometryTest.java (95%) rename core/src/test/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawPlanarTopologyTest.java (97%) rename core/src/test/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioActivationTest.java (99%) rename core/src/test/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioGraphEditorResizeTest.java (97%) rename core/src/test/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioGraphMapperTest.java (93%) rename core/src/test/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioHistoryStoreTest.java (89%) rename core/src/test/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioLayoutTest.java (99%) rename core/src/test/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioLifecycleTest.java (94%) rename core/src/test/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioManagedAuthoringGuardTest.java (95%) rename core/src/test/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioMarkerParserTest.java (95%) rename core/src/test/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioMenuControllerTest.java (98%) rename core/src/test/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioPersistenceEditorsTest.java (97%) rename core/src/test/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioPersistenceIdentityTest.java (92%) rename core/src/test/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioPreviewRendererTest.java (93%) rename core/src/test/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioProjectCreatorTest.java (97%) rename core/src/test/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioResourceBundleAssemblerTest.java (92%) rename core/src/test/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioServiceCaptureTest.java (97%) rename core/src/test/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioSessionTest.java (99%) rename core/src/test/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioToolCodecTest.java (98%) rename core/src/test/java/art/arcane/iris/{core/runtime => studio}/jigsaw/JigsawStudioTripleSneakTrackerTest.java (99%) rename core/src/test/java/art/arcane/iris/{core/service => studio/jigsaw}/JigsawStudioVisualizationBoundsTest.java (95%) rename core/src/test/java/art/arcane/iris/{core/service => studio/object}/ObjectSVCUndoCustomBlockTest.java (92%) rename core/src/test/java/art/arcane/iris/{core/runtime => studio/object}/ObjectStudioLayoutTest.java (95%) rename core/src/test/java/art/arcane/iris/{core/service => studio/object}/ObjectStudioSaveSourceTest.java (93%) rename core/src/test/java/art/arcane/iris/{core/service => studio/object}/ObjectStudioTileRestorationTest.java (92%) rename core/src/test/java/art/arcane/iris/{core/runtime => studio/object}/StudioEntitySpawningTest.java (83%) rename core/src/test/java/art/arcane/iris/{core/runtime => studio/object}/StudioOpenCoordinatorCloseSequenceTest.java (98%) rename core/src/test/java/art/arcane/iris/{core/runtime => studio/object}/StudioOpenCoordinatorOpenKindTest.java (95%) rename core/src/test/java/art/arcane/iris/{core/runtime => studio/object}/StudioOpenCoordinatorSpawnStuckRegressionTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine/framework => studio}/render/IrisRendererPerformanceContractTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine/framework => studio}/render/IrisRendererRiverTest.java (92%) rename core/src/test/java/art/arcane/iris/{core/tools => studio/tree}/TreePlausibilizerTest.java (99%) rename core/src/test/java/art/arcane/iris/{core/gui => studio/view}/GuiHostServerGuiLaunchTest.java (95%) rename core/src/test/java/art/arcane/iris/{core/gui => studio/view}/GuiHostTest.java (98%) rename core/src/test/java/art/arcane/iris/{core/gui => studio/view}/ImageMapStudioGUITest.java (84%) rename core/src/test/java/art/arcane/iris/{core/gui => studio/view}/ImageMapStudioModelTest.java (93%) rename core/src/test/java/art/arcane/iris/{core/gui => studio/view}/ImageMapStudioPreviewPanelTest.java (89%) rename core/src/test/java/art/arcane/iris/{core/gui => studio/view}/NoiseExplorerGUITest.java (96%) rename core/src/test/java/art/arcane/iris/{core/gui => studio/view}/NoisePaletteTest.java (97%) rename core/src/test/java/art/arcane/iris/{core/gui => studio/view}/NoiseRenderCoordinatorTest.java (99%) rename core/src/test/java/art/arcane/iris/{core/gui => studio/view}/NoiseViewportTest.java (96%) rename core/src/test/java/art/arcane/iris/{core/gui => studio/view}/PregenMapPanelTest.java (98%) rename core/src/test/java/art/arcane/iris/{core/gui => studio/view}/PregeneratorJobOwnerDrainTest.java (98%) rename core/src/test/java/art/arcane/iris/{core/gui => studio/view}/PregeneratorJobPlatformIsolationTest.java (97%) rename core/src/test/java/art/arcane/iris/{core/gui => studio/view}/PregeneratorJobRenderSnapshotTest.java (96%) rename core/src/test/java/art/arcane/iris/{core/gui => studio/view}/PregeneratorJobSavedBiomeTest.java (96%) rename core/src/test/java/art/arcane/iris/{core/gui => studio/view}/PregeneratorJobShutdownDispatchTest.java (96%) rename core/src/test/java/art/arcane/iris/{core/gui => studio/view}/PregeneratorJobTerminalProgressTest.java (94%) rename core/src/test/java/art/arcane/iris/{core/gui => studio/view}/VisionRenderControllerTest.java (98%) rename core/src/test/java/art/arcane/iris/{core/gui => studio/view}/VisionRenderTypeTest.java (89%) rename core/src/test/java/art/arcane/iris/{core/gui => studio/view}/VisionViewportTest.java (97%) rename core/src/test/java/art/arcane/iris/{core/project => studio/workspace}/ExternalBlockSchemaTest.java (92%) rename core/src/test/java/art/arcane/iris/{core/project => studio/workspace}/ImageMapStudioExporterTest.java (95%) rename core/src/test/java/art/arcane/iris/{core/project => studio/workspace}/ImportedFeatureControlSchemaTest.java (88%) rename core/src/test/java/art/arcane/iris/{core/project => studio/workspace}/IrisCodeWorkspaceTest.java (96%) rename core/src/test/java/art/arcane/iris/{core/project => studio/workspace}/IrisDimensionStackSchemaTest.java (89%) rename core/src/test/java/art/arcane/iris/{core/project => studio/workspace}/IrisImageMapSchemaTest.java (85%) rename core/src/test/java/art/arcane/iris/{core/project => studio/workspace}/IrisProjectCopierTest.java (99%) rename core/src/test/java/art/arcane/iris/{core/project => studio/workspace}/IrisProjectEntityDependencyTest.java (88%) rename core/src/test/java/art/arcane/iris/{core/project => studio/workspace}/IrisRiverSchemaTest.java (98%) rename core/src/test/java/art/arcane/iris/{core/project => studio/workspace}/IrisStaticObjectSchemaTest.java (89%) rename core/src/test/java/art/arcane/iris/{core/project => studio/workspace}/IrisWorldBoundarySchemaTest.java (87%) rename core/src/test/java/art/arcane/iris/{core/project => studio/workspace}/NativeStructureSuppressionSchemaTest.java (77%) rename core/src/test/java/art/arcane/iris/{core/project => studio/workspace}/VanillaStructurePrefixSchemaTest.java (81%) rename core/src/test/java/art/arcane/iris/{engine/object => testsupport}/CompatTestPlatform.java (93%) rename core/src/test/java/art/arcane/iris/{engine/object => testsupport}/KeyedBlockState.java (94%) rename core/src/test/java/art/arcane/iris/{engine/object => testsupport}/PackCompatFixtures.java (56%) delete mode 100644 core/src/test/java/art/arcane/iris/util/common/math/ChunkSpiralTest.java delete mode 100644 core/src/test/java/art/arcane/iris/util/project/interpolation/IrisInterpolationBoundsTest.java delete mode 100644 core/src/test/java/art/arcane/iris/util/project/interpolation/IrisInterpolationSamplingTest.java delete mode 100644 core/src/test/java/art/arcane/iris/util/project/noise/CNGDimensionDispatchTest.java delete mode 100644 core/src/test/java/art/arcane/iris/util/project/noise/CNGFastPathParityTest.java delete mode 100644 core/src/test/java/art/arcane/iris/util/project/noise/CNGInjectorParityTest.java delete mode 100644 core/src/test/java/art/arcane/iris/util/project/noise/CNGSignedStateMutationTest.java delete mode 100644 core/src/test/java/art/arcane/iris/util/project/noise/CellularNoisePrecisionTest.java delete mode 100644 core/src/test/java/art/arcane/iris/util/project/noise/ChladniNoiseTest.java delete mode 100644 core/src/test/java/art/arcane/iris/util/project/noise/CircuitNoiseTest.java delete mode 100644 core/src/test/java/art/arcane/iris/util/project/noise/ClassicNoiseQualityTest.java delete mode 100644 core/src/test/java/art/arcane/iris/util/project/noise/CloverNoiseBoundaryTest.java delete mode 100644 core/src/test/java/art/arcane/iris/util/project/noise/CloverNoiseParityTest.java delete mode 100644 core/src/test/java/art/arcane/iris/util/project/noise/CraterNoiseTest.java delete mode 100644 core/src/test/java/art/arcane/iris/util/project/noise/FastNoiseDoubleCellularParityTest.java delete mode 100644 core/src/test/java/art/arcane/iris/util/project/noise/FastNoiseFloorTest.java delete mode 100644 core/src/test/java/art/arcane/iris/util/project/noise/GaborNoiseTest.java delete mode 100644 core/src/test/java/art/arcane/iris/util/project/noise/GeometricNoiseTest.java delete mode 100644 core/src/test/java/art/arcane/iris/util/project/noise/InterpolatedNoiseDimensionTest.java delete mode 100644 core/src/test/java/art/arcane/iris/util/project/noise/KaleidoscopeNoiseTest.java delete mode 100644 core/src/test/java/art/arcane/iris/util/project/noise/MarbleNoiseTest.java delete mode 100644 core/src/test/java/art/arcane/iris/util/project/noise/MaterialPatternNoiseTest.java delete mode 100644 core/src/test/java/art/arcane/iris/util/project/noise/MengerSpongeNoiseTest.java delete mode 100644 core/src/test/java/art/arcane/iris/util/project/noise/NoiseOctaveTest.java delete mode 100644 core/src/test/java/art/arcane/iris/util/project/noise/PatternNoiseTest.java delete mode 100644 core/src/test/java/art/arcane/iris/util/project/noise/ScalesNoiseTest.java delete mode 100644 core/src/test/java/art/arcane/iris/util/project/noise/TextureNoiseTest.java delete mode 100644 core/src/test/java/art/arcane/iris/util/project/noise/TruchetNoiseTest.java delete mode 100644 core/src/test/java/art/arcane/iris/util/project/noise/VortexNoiseTest.java delete mode 100644 core/src/test/java/art/arcane/iris/util/project/noise/WavePatternNoiseTest.java delete mode 100644 core/src/test/java/art/arcane/iris/util/project/noise/WhiteNoiseTest.java rename core/src/test/java/art/arcane/iris/{core => world}/ExactWorldSlotPathPolicyTest.java (99%) rename core/src/test/java/art/arcane/iris/{core/tools => world}/IrisCreatorDatapackPreparationTest.java (96%) rename core/src/test/java/art/arcane/iris/{core/tools => world}/IrisCreatorInitialSpawnTest.java (96%) rename core/src/test/java/art/arcane/iris/{core/tools => world}/IrisCreatorTeleportTest.java (97%) rename core/src/test/java/art/arcane/iris/{core => world}/IrisRuntimeSchedulerModeRoutingTest.java (96%) rename core/src/test/java/art/arcane/iris/{core => world}/IrisSafeguardLockPolicyTest.java (94%) rename core/src/test/java/art/arcane/iris/{core => world}/IrisSafeguardTest.java (91%) rename core/src/test/java/art/arcane/iris/{core => world}/IrisStartupValidationTest.java (99%) rename core/src/test/java/art/arcane/iris/{core/tools => world}/IrisToolbeltEvacuationTest.java (97%) rename core/src/test/java/art/arcane/iris/{core/tools => world}/IrisToolbeltPackReferenceTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine/object => world}/IrisWorldBoundaryTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine/object => world}/IrisWorldIdentityTest.java (96%) rename core/src/test/java/art/arcane/iris/{core => world}/IrisWorldStorageTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => world}/IrisWorldsTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => world}/ProgressBossBarToggleTest.java (94%) rename core/src/test/java/art/arcane/iris/{core => world}/SnapshotDirectoryTreeDeleterTest.java (98%) rename core/src/test/java/art/arcane/iris/{core/tools => world}/WorldCreationProgressReporterTest.java (96%) rename core/src/test/java/art/arcane/iris/{core => world}/WorldCreatorCompatTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine/object => world/entity}/IrisEffectSurfaceTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine/object => world/entity}/IrisEntitySpawnTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine/object => world/entity}/IrisSpawnerCompatTest.java (83%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/ArchivedRegistryCompilerTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/ArchivedSemanticQueryTest.java (92%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/BoundaryColumnGeometryTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/BoundarySamplingConcurrencyTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/ChunkGenerationOwnershipTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/ChunkGenerationSemanticsTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/DenseTransitionGeometryReference.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/FloatingBiomeOverlayTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationAdmissionTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationBlendTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationBoundaryStoreTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationBoundaryTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationBuildRevisionTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationEpochContractFactoryTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationEpochTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationFindCatalogTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationHistoryAdmissionTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationHistoryLegacyAdoptionTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationHistoryPathsTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationHistoryRecoveryTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationHistoryRuntimeRouterLifecycleTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationHistoryRuntimeRouterPromotionTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationHistoryRuntimeRouterRoutingTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationHistoryRuntimeRouterSupport.java (97%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationHistoryStoreTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationHistorySupport.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationHistoryTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationKernelCatalogTest.java (92%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationKernelRegistryTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationManifestTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationOrphanRecoveryTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationPackFingerprintTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationPackRepositoryTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationRegistryContractFactoryTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationRegistryContractTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationSemanticBatchWriteTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationSemanticCaptureTest.java (93%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationSemanticIndexTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationSemanticJournalWriteTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationSemanticKeyValidationTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationSemanticPointReadTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationSemanticQueriesTest.java (96%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/GenerationTransitionTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/IrisBoundarySignatureSamplerTest.java (95%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/NativeBiomeSpawnSelectionTest.java (92%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/NativeTerrainReceiptTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/RegionGenerationOwnershipTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/SavedBiomeCaptureTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/SavedBiomeRecoveryTest.java (94%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/SavedBiomeRuntimeTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/SavedBiomeStoreBatchTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/SavedBiomeStoreTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/SavedBiomeStoreWriteTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/SavedTerrainChunkTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/SavedTerrainTestRegion.java (97%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/TerrainBoundarySignatureStoreTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/TerrainBoundarySignatureTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/TransitionFluidContainmentTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/TransitionGenerationPlanTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/TransitionGeometryBlenderTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/TransitionGeometryCursorTest.java (99%) rename core/src/test/java/art/arcane/iris/{engine => world}/history/WorldChunkInventoryTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => world}/lifecycle/BukkitPublicBackendTest.java (95%) rename core/src/test/java/art/arcane/iris/{core => world}/lifecycle/BukkitStartupPathsTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => world}/lifecycle/BukkitWorldConfigurationTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => world}/lifecycle/CapabilityResolutionTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => world}/lifecycle/CapabilitySnapshotFixtures.java (97%) rename core/src/test/java/art/arcane/iris/{core => world}/lifecycle/HuskWorldQuarantineTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => world}/lifecycle/IrisRuntimeStaticsTest.java (93%) rename core/src/test/java/art/arcane/iris/{core => world}/lifecycle/IrisWorldRemovalServiceTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => world}/lifecycle/LifecycleOperationCoordinatorTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => world}/lifecycle/MissingWorldStorageLogTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => world}/lifecycle/PaperLibBootstrapTest.java (96%) rename core/src/test/java/art/arcane/iris/{core => world}/lifecycle/WorldLifecycleDiagnosticsTest.java (97%) rename core/src/test/java/art/arcane/iris/{core => world}/lifecycle/WorldLifecycleRequestTest.java (94%) rename core/src/test/java/art/arcane/iris/{core => world}/lifecycle/WorldLifecycleRuntimeLevelStemTest.java (92%) rename core/src/test/java/art/arcane/iris/{core => world}/lifecycle/WorldLifecycleSeedTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => world}/lifecycle/WorldLifecycleSelectionTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => world}/lifecycle/WorldLifecycleStagingTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => world}/lifecycle/WorldLifecycleSupportCloseFailureTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => world}/lifecycle/WorldLifecycleUnloadAsyncTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => world}/lifecycle/WorldRemovalPathPolicyTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => world}/lifecycle/WorldReplacementBootstrapTest.java (97%) rename core/src/test/java/art/arcane/iris/{core => world}/lifecycle/WorldReplacementEntryGuardTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => world}/lifecycle/WorldReplacementFilesystemTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => world}/lifecycle/WorldReplacementSeedTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => world}/lifecycle/WorldUnloadBoundaryRegistryTest.java (98%) rename core/src/test/java/art/arcane/iris/{engine/object => world/loot}/IrisLootKeyAccessorTest.java (97%) rename core/src/test/java/art/arcane/iris/{engine/object => world/loot}/IrisLootTableCompatTest.java (85%) rename core/src/test/java/art/arcane/iris/{core/pregenerator/methods => world/pregen}/AsyncPregenMethodConcurrencyCapTest.java (97%) rename core/src/test/java/art/arcane/iris/{core/pregenerator/methods => world/pregen}/AsyncPregenServerSaveOwnershipTest.java (98%) rename core/src/test/java/art/arcane/iris/{core/pregenerator/methods => world/pregen}/CachedPregenMethodCompletionTest.java (96%) rename core/src/test/java/art/arcane/iris/{core/pregenerator => world/pregen}/IrisPregeneratorInitTest.java (99%) rename core/src/test/java/art/arcane/iris/{core/pregenerator => world/pregen}/MantleHeapPressureTest.java (99%) rename core/src/test/java/art/arcane/iris/{core/pregenerator => world/pregen}/MantleHeapPressureUrgencyTest.java (97%) rename core/src/test/java/art/arcane/iris/{core/pregenerator/methods => world/pregen}/MedievalPregenFlushOwnershipTest.java (96%) rename core/src/test/java/art/arcane/iris/{core/pregenerator => world/pregen}/PregenAdmissionGateTest.java (99%) rename core/src/test/java/art/arcane/iris/{core/pregenerator/cache => world/pregen}/PregenCacheConcurrencyTest.java (99%) rename core/src/test/java/art/arcane/iris/{core/pregenerator/cache => world/pregen}/PregenCacheDefaultsTest.java (95%) rename core/src/test/java/art/arcane/iris/{core/pregenerator/cache => world/pregen}/PregenCacheExecutorRegistrationTest.java (92%) rename core/src/test/java/art/arcane/iris/{core/pregenerator/cache => world/pregen}/PregenCacheImplPersistenceTest.java (97%) rename core/src/test/java/art/arcane/iris/{core/pregenerator => world/pregen}/PregenDiagnosticsDescriptionTest.java (97%) rename core/src/test/java/art/arcane/iris/{core/pregenerator => world/pregen}/PregenDiagnosticsTest.java (98%) rename core/src/test/java/art/arcane/iris/{core/pregenerator => world/pregen}/PregenListenerDefaultsTest.java (98%) rename core/src/test/java/art/arcane/iris/{core/pregenerator => world/pregen}/PregenMantleBackpressureTest.java (99%) rename core/src/test/java/art/arcane/iris/{core/pregenerator => world/pregen}/PregenPerformanceProfileTest.java (92%) rename core/src/test/java/art/arcane/iris/{core/pregenerator => world/pregen}/PregenPhaseTrackerTest.java (98%) rename core/src/test/java/art/arcane/iris/{core/pregenerator => world/pregen}/PregenRateTrackerTest.java (98%) rename core/src/test/java/art/arcane/iris/{core/pregenerator/cache => world/pregen}/PregenSavedChunkStatusTest.java (98%) rename core/src/test/java/art/arcane/iris/{core/pregenerator/methods => world/pregen}/PregenSerialWorkerTest.java (98%) rename core/src/test/java/art/arcane/iris/{core/pregenerator => world/pregen}/PregenSilentFailureContractTest.java (88%) rename core/src/test/java/art/arcane/iris/{core/pregenerator => world/pregen}/PregenTaskBoundsOverflowTest.java (99%) rename core/src/test/java/art/arcane/iris/{core/pregenerator => world/pregen}/PregenTaskChunkCountTest.java (97%) rename core/src/test/java/art/arcane/iris/{core/pregenerator => world/pregen}/PregenTaskInterleavedTraversalTest.java (98%) rename core/src/test/java/art/arcane/iris/{core/pregenerator => world/pregen}/PregenTaskLatticeOrderTest.java (98%) rename core/src/test/java/art/arcane/iris/{core/pregenerator => world/pregen}/PregenWaitPolicyContractTest.java (89%) rename core/src/test/java/art/arcane/iris/{core => world}/runtime/ChunkClearerBlocksTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => world}/runtime/InPlaceChunkRegeneratorDiffTest.java (99%) rename core/src/test/java/art/arcane/iris/{core => world}/runtime/RuntimeInjectionTest.java (96%) rename core/src/test/java/art/arcane/iris/{core => world}/runtime/TransientWorldCleanupSupportTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => world}/runtime/WorldRuntimeControlBackendUrgencyTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => world}/runtime/WorldRuntimeControlServiceSafeEntryTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => world}/runtime/WorldRuntimeControlServiceTeleportTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => world}/runtime/WorldRuntimeControlServiceTimeLockTest.java (98%) rename core/src/test/java/art/arcane/iris/{core => world}/safeguard/RuntimeLockNoticeTest.java (97%) rename core/src/test/java/art/arcane/iris/{core => world}/safeguard/TasksIncompatibilityTest.java (91%) rename core/src/test/java/art/arcane/iris/{core => world}/safeguard/TasksInjectionDeferralTest.java (89%) rename core/src/test/java/art/arcane/iris/{util/project/matter/slices => world/storage/matter}/HydrologyCaveMatterTest.java (92%) rename core/src/test/java/art/arcane/iris/{util/project => world/storage}/matter/IrisMatterContextTest.java (93%) rename core/src/test/java/art/arcane/iris/{util/project/matter/slices => world/storage/matter}/IrisMatterPlatformSelectionTest.java (97%) rename core/src/test/java/art/arcane/iris/{util/project/matter/slices => world/storage/matter}/PreObjectMatterTest.java (82%) rename core/src/test/java/art/arcane/iris/{util/project => world/storage}/matter/RegistryMatterContextTest.java (88%) rename core/src/test/java/art/arcane/iris/{util/common/scheduling => world/task}/JHybridPlatformTest.java (97%) rename core/src/test/java/art/arcane/iris/{util/common/scheduling => world/task}/JRepeatingTaskLifecycleTest.java (96%) rename core/src/test/java/art/arcane/iris/{core/service => world}/tree/TreeDefinitionIndexTest.java (78%) rename core/src/test/java/art/arcane/iris/{core/service => world}/tree/TreeMarkerTraversalTest.java (98%) rename core/src/test/java/art/arcane/iris/{core/service => world/tree}/TreeSVCFluidHeightTest.java (81%) rename core/src/test/java/art/arcane/iris/{core/service => world/tree}/TreeSVCLifecycleTest.java (91%) rename core/src/test/resources/art/arcane/iris/{core => world}/lifecycle/world-lifecycle-smoke-matrix.txt (100%) diff --git a/README.md b/README.md index dc9d0a495..3888df2b8 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ Consider supporting development by buying Iris on Spigot. ## Language and localization -Canonical English is defined in the typed Java catalogs under `core/src/main/java/art/arcane/iris/core/localization`, next to the command, Studio, runtime, and UI surfaces that use it. Iris does not ship an English server translation file; the required Minecraft client asset remains at `assets/irisworldgen/lang/en_us.json`. Complete server bundles and matching client assets are included for German, Spanish, Finnish, French, Hebrew, Italian, Japanese, Korean, Lithuanian, Dutch, Polish, Portuguese, Russian, Turkish, Vietnamese, Simplified Chinese, and Traditional Chinese. Set `language` in Iris settings to select one. A JSON file at `languages/overrides/.json` can override only selected server messages; omitted entries resolve from the bundle and then code-owned English. +Canonical English is defined in the typed Java catalogs under `core/src/main/java/art/arcane/iris/localization`, next to the command, Studio, runtime, and UI surfaces that use it. Iris does not ship an English server translation file; the required Minecraft client asset remains at `assets/irisworldgen/lang/en_us.json`. Complete server bundles and matching client assets are included for German, Spanish, Finnish, French, Hebrew, Italian, Japanese, Korean, Lithuanian, Dutch, Polish, Portuguese, Russian, Turkish, Vietnamese, Simplified Chinese, and Traditional Chinese. Set `language` in Iris settings to select one. A JSON file at `languages/overrides/.json` can override only selected server messages; omitted entries resolve from the bundle and then code-owned English. ## Platforms diff --git a/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/CustomBiomeSource.java b/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/CustomBiomeSource.java similarity index 98% rename from adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/CustomBiomeSource.java rename to adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/CustomBiomeSource.java index 03f5acb3d..4e4d5ea8a 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/CustomBiomeSource.java +++ b/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/CustomBiomeSource.java @@ -1,24 +1,24 @@ -package art.arcane.iris.core.nms.v26_2_R1; +package art.arcane.iris.platform.bukkit.nms.v26_2_R1; import art.arcane.iris.platform.bukkit.BukkitWorldBinding; import com.mojang.datafixers.util.Pair; import com.mojang.serialization.MapCodec; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.engine.DimensionStackContext; -import art.arcane.iris.engine.DimensionStackLayout; -import art.arcane.iris.engine.DimensionTerrainContext; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.GenerationSessionException; -import art.arcane.iris.engine.framework.GenerationSessionLease; -import art.arcane.iris.engine.history.GenerationHistoryRuntimeRouter; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBiomeCustom; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisDimensionCarvingResolver; -import art.arcane.iris.engine.platform.BukkitChunkGenerator; -import art.arcane.iris.util.project.context.IrisContext; +import art.arcane.iris.generation.runtime.DimensionStackContext; +import art.arcane.iris.generation.runtime.DimensionStackLayout; +import art.arcane.iris.generation.runtime.DimensionTerrainContext; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.GenerationSessionException; +import art.arcane.iris.generation.runtime.GenerationSessionLease; +import art.arcane.iris.world.history.GenerationHistoryRuntimeRouter; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiomeCustom; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisDimensionCarvingResolver; +import art.arcane.iris.platform.generation.BukkitChunkGenerator; +import art.arcane.iris.generation.context.IrisContext; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.math.RNG; import net.minecraft.core.BlockPos; diff --git a/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/DatapackStructureStateFilter.java b/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/DatapackStructureStateFilter.java similarity index 98% rename from adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/DatapackStructureStateFilter.java rename to adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/DatapackStructureStateFilter.java index 3c2346d0f..d642e45ef 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/DatapackStructureStateFilter.java +++ b/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/DatapackStructureStateFilter.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.nms.v26_2_R1; +package art.arcane.iris.platform.bukkit.nms.v26_2_R1; -import art.arcane.iris.core.datapack.DatapackStructureScopeIndex; -import art.arcane.iris.engine.framework.NativeStructureFrequencyScale; -import art.arcane.iris.engine.object.IrisImportedStructureControl; +import art.arcane.iris.pack.datapack.DatapackStructureScopeIndex; +import art.arcane.iris.structure.nativegen.NativeStructureFrequencyScale; +import art.arcane.iris.structure.nativegen.IrisImportedStructureControl; import net.minecraft.core.Holder; import net.minecraft.core.HolderOwner; import net.minecraft.core.Vec3i; diff --git a/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/ImportedFeatureStage.java b/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/ImportedFeatureStage.java similarity index 96% rename from adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/ImportedFeatureStage.java rename to adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/ImportedFeatureStage.java index 1ff76da7c..73bbcfc8c 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/ImportedFeatureStage.java +++ b/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/ImportedFeatureStage.java @@ -1,16 +1,16 @@ -package art.arcane.iris.core.nms.v26_2_R1; +package art.arcane.iris.platform.bukkit.nms.v26_2_R1; -import art.arcane.iris.engine.DimensionStackContext; -import art.arcane.iris.engine.DimensionStackLayout; +import art.arcane.iris.generation.runtime.DimensionStackContext; +import art.arcane.iris.generation.runtime.DimensionStackLayout; import art.arcane.iris.nativegen.NativeGenerationWriteGuard; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.NativeFeatureGenerationPolicy; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBiomeCustom; -import art.arcane.iris.engine.object.IrisDecorationStep; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisImportedFeatureControl; -import art.arcane.iris.engine.object.IrisStaticObjectLayer; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.nativegen.NativeFeatureGenerationPolicy; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiomeCustom; +import art.arcane.iris.generation.decoration.IrisDecorationStep; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.structure.nativegen.IrisImportedFeatureControl; +import art.arcane.iris.structure.object.IrisStaticObjectLayer; import art.arcane.iris.spi.IrisLogging; import it.unimi.dsi.fastutil.ints.IntArraySet; import it.unimi.dsi.fastutil.ints.IntSet; diff --git a/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/IrisChunkGenerator.java b/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/IrisChunkGenerator.java similarity index 97% rename from adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/IrisChunkGenerator.java rename to adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/IrisChunkGenerator.java index d9857b2db..c5421e98c 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/IrisChunkGenerator.java +++ b/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/IrisChunkGenerator.java @@ -1,35 +1,35 @@ -package art.arcane.iris.core.nms.v26_2_R1; +package art.arcane.iris.platform.bukkit.nms.v26_2_R1; import art.arcane.iris.nativegen.NativeTransitionColumn; import art.arcane.iris.nativegen.NativeTerrainHeightCache; -import art.arcane.iris.engine.history.TerrainBoundarySignature; +import art.arcane.iris.world.history.TerrainBoundarySignature; import java.util.Optional; import art.arcane.iris.nativegen.NativeGenerationWriteGuard; import java.util.function.LongPredicate; -import art.arcane.iris.engine.DimensionStackContext; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineLifecycleTasks; -import art.arcane.iris.engine.framework.GenerationSessionException; -import art.arcane.iris.engine.framework.GenerationSessionLease; -import art.arcane.iris.engine.framework.IrisStructureLocator; -import art.arcane.iris.engine.framework.NativeStructureOwnershipRecord; -import art.arcane.iris.engine.framework.NativeStructureOwnershipStore; -import art.arcane.iris.engine.framework.NativeStructureStartPlan; -import art.arcane.iris.engine.framework.NativeStructureGenerationPolicy; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.history.GenerationHistoryRuntimeRouter; -import art.arcane.iris.engine.history.NativeTerrainReceipt; -import art.arcane.iris.engine.history.NativeBiomeSpawnSelection; -import art.arcane.iris.engine.history.SavedTerrainChunk; +import art.arcane.iris.generation.runtime.DimensionStackContext; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineLifecycleTasks; +import art.arcane.iris.generation.runtime.GenerationSessionException; +import art.arcane.iris.generation.runtime.GenerationSessionLease; +import art.arcane.iris.structure.placement.IrisStructureLocator; +import art.arcane.iris.structure.nativegen.NativeStructureOwnershipRecord; +import art.arcane.iris.structure.nativegen.NativeStructureOwnershipStore; +import art.arcane.iris.structure.nativegen.NativeStructureStartPlan; +import art.arcane.iris.structure.nativegen.NativeStructureGenerationPolicy; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.world.history.GenerationHistoryRuntimeRouter; +import art.arcane.iris.world.history.NativeTerrainReceipt; +import art.arcane.iris.world.history.NativeBiomeSpawnSelection; +import art.arcane.iris.world.history.SavedTerrainChunk; import org.bukkit.NamespacedKey; import org.bukkit.persistence.PersistentDataType; -import art.arcane.iris.engine.platform.BukkitChunkGenerator; -import art.arcane.iris.engine.platform.studio.generators.JigsawStudioGenerator; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisDimensionCarvingResolver; -import art.arcane.iris.engine.object.IrisMaterialPalette; -import art.arcane.iris.engine.object.IrisNativeStructureDecision; -import art.arcane.iris.engine.object.IrisStaticObjectLayer; +import art.arcane.iris.platform.generation.BukkitChunkGenerator; +import art.arcane.iris.studio.generation.JigsawStudioGenerator; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisDimensionCarvingResolver; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; +import art.arcane.iris.structure.nativegen.IrisNativeStructureDecision; +import art.arcane.iris.structure.object.IrisStaticObjectLayer; import art.arcane.iris.nativegen.NativeStructureGenerationException; import art.arcane.iris.nativegen.NativeStructureStartInjector; import art.arcane.iris.nativegen.NativeStructureReferenceEnvelope; @@ -47,10 +47,10 @@ import art.arcane.iris.nativegen.NativeStructureVolumeIndex; import art.arcane.iris.nativegen.WorldgenTerrainHeightmaps; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.IrisCustomData; -import art.arcane.iris.util.common.reflect.WrappedField; -import art.arcane.iris.util.common.reflect.WrappedReturningMethod; -import art.arcane.iris.util.project.context.IrisContext; +import art.arcane.iris.generation.block.IrisCustomData; +import art.arcane.iris.platform.reflect.WrappedField; +import art.arcane.iris.platform.reflect.WrappedReturningMethod; +import art.arcane.iris.generation.context.IrisContext; import art.arcane.volmlib.util.math.RNG; import com.mojang.datafixers.util.Pair; import com.mojang.serialization.MapCodec; diff --git a/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/NMSBinding.java b/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NMSBinding.java similarity index 97% rename from adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/NMSBinding.java rename to adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NMSBinding.java index 5c6789d4d..d1d24de79 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/NMSBinding.java +++ b/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NMSBinding.java @@ -1,39 +1,39 @@ -package art.arcane.iris.core.nms.v26_2_R1; +package art.arcane.iris.platform.bukkit.nms.v26_2_R1; -import art.arcane.iris.engine.history.SavedTerrainChunk; +import art.arcane.iris.world.history.SavedTerrainChunk; import ca.spottedleaf.moonrise.patches.chunk_system.io.MoonriseRegionFileIO; import ca.spottedleaf.moonrise.patches.chunk_system.scheduling.ChunkHolderManager; import ca.spottedleaf.moonrise.patches.chunk_system.scheduling.NewChunkHolder; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import art.arcane.iris.core.datapack.DatapackStructureScopeIndex; -import art.arcane.iris.core.nms.DatapackStructureScopeResult; -import art.arcane.iris.engine.object.IrisImportedStructureControl; +import art.arcane.iris.pack.datapack.DatapackStructureScopeIndex; +import art.arcane.iris.platform.bukkit.nms.DatapackStructureScopeResult; +import art.arcane.iris.structure.nativegen.IrisImportedStructureControl; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.core.nms.INMSBinding; -import art.arcane.iris.core.nms.MinecraftVersion; -import art.arcane.iris.core.nms.ServerShutdownBoundary; -import art.arcane.iris.core.nms.container.BiomeColor; -import art.arcane.iris.core.nms.container.Pair; -import art.arcane.iris.core.nms.container.BlockProperty; -import art.arcane.iris.core.nms.datapack.DataVersion; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.data.chunk.TerrainChunk; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.NativeStructureVolume; +import art.arcane.iris.platform.bukkit.nms.INMSBinding; +import art.arcane.iris.platform.bukkit.nms.MinecraftVersion; +import art.arcane.iris.platform.bukkit.nms.ServerShutdownBoundary; +import art.arcane.iris.platform.bukkit.nms.container.BiomeColor; +import art.arcane.iris.platform.bukkit.nms.container.Pair; +import art.arcane.iris.platform.bukkit.nms.container.BlockProperty; +import art.arcane.iris.platform.bukkit.nms.datapack.DataVersion; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.generation.chunk.TerrainChunk; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.nativegen.NativeStructureVolume; import art.arcane.iris.nativegen.NativeStructureVolumeIndex; -import art.arcane.iris.engine.object.IrisDimensionRuntimeContract; -import art.arcane.iris.engine.platform.BukkitChunkGenerator; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.generation.terrain.IrisDimensionRuntimeContract; +import art.arcane.iris.platform.generation.BukkitChunkGenerator; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; import art.arcane.iris.nativegen.NativeStructureFactory; import art.arcane.iris.nativegen.NativeStructureGenerationException; import art.arcane.iris.spi.PlatformStructureHooks.JigsawSourceMetadata; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; -import art.arcane.iris.util.project.hunk.Hunk; -import art.arcane.iris.util.project.hunk.view.ChunkDataHunkHolder; +import art.arcane.volmlib.util.hunk.Hunk; +import art.arcane.iris.generation.chunk.ChunkDataHunkHolder; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformGenerationRegistry; -import art.arcane.iris.util.common.data.IrisCustomData; +import art.arcane.iris.generation.block.IrisCustomData; import art.arcane.volmlib.util.json.JSONObject; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.matter.Matter; @@ -41,7 +41,7 @@ import art.arcane.volmlib.util.math.Vector3d; import art.arcane.volmlib.util.scheduling.FoliaScheduler; import art.arcane.volmlib.util.matter.MatterBiomeInject; import art.arcane.iris.spi.PlatformBiome; -import art.arcane.iris.util.nbt.common.mca.NBTWorld; +import art.arcane.iris.world.storage.region.NBTWorld; import art.arcane.volmlib.util.nbt.mca.palette.MCABiomeContainer; import art.arcane.volmlib.util.nbt.mca.palette.MCAChunkBiomeContainer; import art.arcane.volmlib.util.nbt.mca.palette.MCAGlobalPalette; @@ -52,7 +52,7 @@ import art.arcane.volmlib.util.nbt.mca.palette.MCAPaletteAccess; import art.arcane.volmlib.util.nbt.mca.palette.MCAPalettedContainer; import art.arcane.volmlib.util.nbt.mca.palette.MCAWrappedPalettedContainer; import art.arcane.volmlib.util.nbt.tag.CompoundTag; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import it.unimi.dsi.fastutil.objects.Object2IntMap; import net.minecraft.core.BlockPos; import net.minecraft.core.Holder; diff --git a/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/NativeStructurePoiUpdates.java b/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NativeStructurePoiUpdates.java similarity index 99% rename from adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/NativeStructurePoiUpdates.java rename to adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NativeStructurePoiUpdates.java index 9b4c907b9..45b4c87ab 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/NativeStructurePoiUpdates.java +++ b/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NativeStructurePoiUpdates.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.nms.v26_2_R1; +package art.arcane.iris.platform.bukkit.nms.v26_2_R1; import ca.spottedleaf.moonrise.common.util.TickThread; import net.minecraft.core.BlockPos; diff --git a/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/NativeStructureWorldgenAccess.java b/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NativeStructureWorldgenAccess.java similarity index 99% rename from adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/NativeStructureWorldgenAccess.java rename to adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NativeStructureWorldgenAccess.java index 6c25b02b7..13eb3291a 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/NativeStructureWorldgenAccess.java +++ b/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NativeStructureWorldgenAccess.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.nms.v26_2_R1; +package art.arcane.iris.platform.bukkit.nms.v26_2_R1; import art.arcane.iris.nativegen.WorldgenTerrainHeightmaps; import it.unimi.dsi.fastutil.longs.Long2LongOpenHashMap; diff --git a/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/NmsGenerationHooks.java b/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NmsGenerationHooks.java similarity index 94% rename from adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/NmsGenerationHooks.java rename to adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NmsGenerationHooks.java index 43faccb97..151563fff 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/NmsGenerationHooks.java +++ b/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NmsGenerationHooks.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.nms.v26_2_R1; +package art.arcane.iris.platform.bukkit.nms.v26_2_R1; -import art.arcane.iris.util.project.agent.Agent; +import art.arcane.iris.platform.agent.Agent; import it.unimi.dsi.fastutil.shorts.ShortList; import net.bytebuddy.ByteBuddy; import net.bytebuddy.asm.Advice; @@ -44,7 +44,7 @@ final class NmsGenerationHooks { } ChunkGenerator generator = region.getLevel().getChunkSource().getGenerator(); if (generator instanceof LongPredicate predicate - && generator.getClass().getName().equals("art.arcane.iris.core.nms.v26_2_R1.IrisChunkGenerator") + && generator.getClass().getName().equals("art.arcane.iris.platform.bukkit.nms.v26_2_R1.IrisChunkGenerator") && region.getChunk(position.getX() >> 4, position.getZ() >> 4) .getPersistedStatus().isOrAfter(ChunkStatus.FULL)) { allowed = predicate.test(ChunkPos.pack(position.getX() >> 4, position.getZ() >> 4)); diff --git a/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/NmsGenerationRegistry.java b/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NmsGenerationRegistry.java similarity index 99% rename from adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/NmsGenerationRegistry.java rename to adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NmsGenerationRegistry.java index 7c84c9c62..ef8c5cf12 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/NmsGenerationRegistry.java +++ b/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NmsGenerationRegistry.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.nms.v26_2_R1; +package art.arcane.iris.platform.bukkit.nms.v26_2_R1; import art.arcane.iris.spi.PlatformGenerationRegistry; import com.google.gson.JsonElement; diff --git a/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/NmsSavedTerrainCapture.java b/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NmsSavedTerrainCapture.java similarity index 98% rename from adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/NmsSavedTerrainCapture.java rename to adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NmsSavedTerrainCapture.java index 4a480abd5..61f21b26c 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/NmsSavedTerrainCapture.java +++ b/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NmsSavedTerrainCapture.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.nms.v26_2_R1; +package art.arcane.iris.platform.bukkit.nms.v26_2_R1; -import art.arcane.iris.engine.history.NativeTerrainReceipt; -import art.arcane.iris.engine.history.SavedTerrainChunk; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.history.NativeTerrainReceipt; +import art.arcane.iris.world.history.SavedTerrainChunk; +import art.arcane.iris.world.task.J; import ca.spottedleaf.concurrentutil.completable.Completable; import ca.spottedleaf.concurrentutil.executor.PrioritisedExecutor; import ca.spottedleaf.concurrentutil.util.Priority; diff --git a/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/NmsWorldLifecycle.java b/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NmsWorldLifecycle.java similarity index 95% rename from adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/NmsWorldLifecycle.java rename to adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NmsWorldLifecycle.java index 986dec79f..818f8b6c1 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/NmsWorldLifecycle.java +++ b/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NmsWorldLifecycle.java @@ -1,9 +1,9 @@ -package art.arcane.iris.core.nms.v26_2_R1; +package art.arcane.iris.platform.bukkit.nms.v26_2_R1; -import art.arcane.iris.core.nms.ServerShutdownBoundary; +import art.arcane.iris.platform.bukkit.nms.ServerShutdownBoundary; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.format.C; -import art.arcane.iris.util.project.agent.Agent; +import art.arcane.iris.localization.C; +import art.arcane.iris.platform.agent.Agent; import net.bytebuddy.agent.builder.AgentBuilder; import net.bytebuddy.agent.builder.ResettableClassFileTransformer; import net.bytebuddy.asm.Advice; @@ -219,7 +219,7 @@ final class NmsWorldLifecycle { @Advice.OnMethodEnter(skipOn = Advice.OnNonDefaultValue.class) static boolean enter(@Advice.This ClassLoader loader) throws ReflectiveOperationException { Class installer = Class.forName( - "art.arcane.iris.util.project.agent.Installer", true, ClassLoader.getSystemClassLoader()); + "art.arcane.iris.platform.agent.Installer", true, ClassLoader.getSystemClassLoader()); return Boolean.TRUE.equals(installer.getMethod("deferClassLoaderClose", ClassLoader.class) .invoke(null, loader)); } @@ -244,8 +244,8 @@ final class NmsWorldLifecycle { return; } pluginClassLoader = irisPlugin.getClass().getClassLoader(); - generatorType = Class.forName("art.arcane.iris.engine.platform.PlatformChunkGenerator", true, pluginClassLoader); - stagingType = Class.forName("art.arcane.iris.core.lifecycle.WorldLifecycleStaging", true, pluginClassLoader); + generatorType = Class.forName("art.arcane.iris.platform.generation.PlatformChunkGenerator", true, pluginClassLoader); + stagingType = Class.forName("art.arcane.iris.world.lifecycle.WorldLifecycleStaging", true, pluginClassLoader); } catch (Throwable ignored) { return; } @@ -317,8 +317,8 @@ final class NmsWorldLifecycle { return; } pluginClassLoader = irisPlugin.getClass().getClassLoader(); - generatorType = Class.forName("art.arcane.iris.engine.platform.PlatformChunkGenerator", true, pluginClassLoader); - stagingType = Class.forName("art.arcane.iris.core.lifecycle.WorldLifecycleStaging", true, pluginClassLoader); + generatorType = Class.forName("art.arcane.iris.platform.generation.PlatformChunkGenerator", true, pluginClassLoader); + stagingType = Class.forName("art.arcane.iris.world.lifecycle.WorldLifecycleStaging", true, pluginClassLoader); } catch (Throwable ignored) { // Iris absent or half-loaded: fail OPEN for a world we cannot prove ours. return; @@ -356,7 +356,7 @@ final class NmsWorldLifecycle { // Past the ownership gate the world is Iris-owned; silently handing back the // vanilla stem would corrupt generation, so failures from here rethrow. try { - Object bindings = Class.forName("art.arcane.iris.core.nms.INMS", true, pluginClassLoader) + Object bindings = Class.forName("art.arcane.iris.platform.bukkit.nms.INMS", true, pluginClassLoader) .getDeclaredMethod("get") .invoke(null); if (bindings == null) { diff --git a/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/VanillaStructureBiomes.java b/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/VanillaStructureBiomes.java similarity index 98% rename from adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/VanillaStructureBiomes.java rename to adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/VanillaStructureBiomes.java index a9f94b0df..a10ae10ef 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/VanillaStructureBiomes.java +++ b/adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/VanillaStructureBiomes.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.nms.v26_2_R1; +package art.arcane.iris.platform.bukkit.nms.v26_2_R1; import art.arcane.iris.nativegen.NativeStructureGenerationKeys; import net.minecraft.core.Holder; diff --git a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/IrisChunkGeneratorHeightCacheTest.java b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/IrisChunkGeneratorHeightCacheTest.java index 65d60c5a9..8a0b176c9 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/IrisChunkGeneratorHeightCacheTest.java +++ b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/IrisChunkGeneratorHeightCacheTest.java @@ -1,11 +1,11 @@ package art.arcane.iris.nativegen; -import art.arcane.iris.core.nms.v26_2_R1.IrisChunkGenerator; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.GenerationSessionLease; -import art.arcane.iris.engine.history.BoundaryColumnGeometry; -import art.arcane.iris.engine.history.TerrainBoundarySignature; +import art.arcane.iris.platform.bukkit.nms.v26_2_R1.IrisChunkGenerator; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.GenerationSessionLease; +import art.arcane.iris.world.history.BoundaryColumnGeometry; +import art.arcane.iris.world.history.TerrainBoundarySignature; import art.arcane.iris.testsupport.PlatformLeakGuard; import net.minecraft.SharedConstants; import net.minecraft.server.Bootstrap; diff --git a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeGenerationWriteGuardTest.java b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeGenerationWriteGuardTest.java index 071fc4524..1080273f1 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeGenerationWriteGuardTest.java +++ b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeGenerationWriteGuardTest.java @@ -1,14 +1,14 @@ package art.arcane.iris.nativegen; -import art.arcane.iris.engine.DimensionStackContext; -import art.arcane.iris.engine.DimensionStackLayout; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.history.GenerationActivation; -import art.arcane.iris.engine.history.GenerationHistory; -import art.arcane.iris.engine.history.GenerationHistoryRuntimeRouter; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisStaticObjectLayer; +import art.arcane.iris.generation.runtime.DimensionStackContext; +import art.arcane.iris.generation.runtime.DimensionStackLayout; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.world.history.GenerationActivation; +import art.arcane.iris.world.history.GenerationHistory; +import art.arcane.iris.world.history.GenerationHistoryRuntimeRouter; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.object.IrisStaticObjectLayer; import net.minecraft.SharedConstants; import net.minecraft.core.BlockPos; import net.minecraft.server.Bootstrap; diff --git a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeStructureFactoryTest.java b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeStructureFactoryTest.java index 0e57ae53d..3a4b97404 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeStructureFactoryTest.java +++ b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeStructureFactoryTest.java @@ -1,7 +1,7 @@ package art.arcane.iris.nativegen; -import art.arcane.iris.engine.object.IrisJigsawConfiguration; -import art.arcane.iris.engine.object.IrisStructureTerrain; +import art.arcane.iris.structure.jigsaw.IrisJigsawConfiguration; +import art.arcane.iris.structure.placement.IrisStructureTerrain; import com.mojang.datafixers.util.Either; import com.mojang.datafixers.util.Pair; import com.mojang.serialization.MapCodec; diff --git a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeStructureOwnershipFingerprintTest.java b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeStructureOwnershipFingerprintTest.java index 542e869ef..e952f3daf 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeStructureOwnershipFingerprintTest.java +++ b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeStructureOwnershipFingerprintTest.java @@ -1,11 +1,11 @@ package art.arcane.iris.nativegen; -import art.arcane.iris.engine.framework.NativeStructureOwnershipRecord; -import art.arcane.iris.engine.framework.NativeStructureStartPlan; -import art.arcane.iris.engine.object.IrisNativeStructure; -import art.arcane.iris.engine.object.IrisStructurePlacement; -import art.arcane.iris.engine.object.IrisStructureTerrain; -import art.arcane.iris.engine.object.IrisStructureTerrainMode; +import art.arcane.iris.structure.nativegen.NativeStructureOwnershipRecord; +import art.arcane.iris.structure.nativegen.NativeStructureStartPlan; +import art.arcane.iris.structure.nativegen.IrisNativeStructure; +import art.arcane.iris.structure.placement.IrisStructurePlacement; +import art.arcane.iris.structure.placement.IrisStructureTerrain; +import art.arcane.iris.structure.placement.IrisStructureTerrainMode; import art.arcane.volmlib.util.collection.KList; import net.minecraft.SharedConstants; import net.minecraft.core.BlockPos; diff --git a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeStructureOwnershipRecoveryTest.java b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeStructureOwnershipRecoveryTest.java index e4bee55cf..76552761d 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeStructureOwnershipRecoveryTest.java +++ b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeStructureOwnershipRecoveryTest.java @@ -1,12 +1,12 @@ package art.arcane.iris.nativegen; -import art.arcane.iris.engine.framework.NativeStructureOwnershipRecord; -import art.arcane.iris.engine.framework.NativeStructureStartPlan; -import art.arcane.iris.engine.framework.StructurePlacementGrid; -import art.arcane.iris.engine.object.IrisNativeStructure; -import art.arcane.iris.engine.object.IrisStructurePlacement; -import art.arcane.iris.engine.object.IrisStructureTerrain; -import art.arcane.iris.engine.object.IrisStructureTerrainMode; +import art.arcane.iris.structure.nativegen.NativeStructureOwnershipRecord; +import art.arcane.iris.structure.nativegen.NativeStructureStartPlan; +import art.arcane.iris.structure.placement.StructurePlacementGrid; +import art.arcane.iris.structure.nativegen.IrisNativeStructure; +import art.arcane.iris.structure.placement.IrisStructurePlacement; +import art.arcane.iris.structure.placement.IrisStructureTerrain; +import art.arcane.iris.structure.placement.IrisStructureTerrainMode; import art.arcane.volmlib.util.collection.KList; import net.minecraft.SharedConstants; import net.minecraft.core.Direction; diff --git a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeStructurePostProcessorEncaseTest.java b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeStructurePostProcessorEncaseTest.java index e9fb25846..2bbc447ce 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeStructurePostProcessorEncaseTest.java +++ b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeStructurePostProcessorEncaseTest.java @@ -1,9 +1,9 @@ package art.arcane.iris.nativegen; -import art.arcane.iris.engine.object.IrisMaterialPalette; -import art.arcane.iris.engine.object.IrisStructureTerrain; -import art.arcane.iris.engine.object.IrisStructureTerrainMode; -import art.arcane.iris.engine.object.IrisStructureYBand; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; +import art.arcane.iris.structure.placement.IrisStructureTerrain; +import art.arcane.iris.structure.placement.IrisStructureTerrainMode; +import art.arcane.iris.structure.placement.IrisStructureYBand; import art.arcane.volmlib.util.math.RNG; import net.minecraft.SharedConstants; import net.minecraft.core.BlockPos; diff --git a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeStructurePostProcessorMonumentTest.java b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeStructurePostProcessorMonumentTest.java index ccb4971a8..d6673c473 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeStructurePostProcessorMonumentTest.java +++ b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeStructurePostProcessorMonumentTest.java @@ -1,7 +1,7 @@ package art.arcane.iris.nativegen; -import art.arcane.iris.engine.object.IrisStructureTerrain; -import art.arcane.iris.engine.object.IrisStructureTerrainMode; +import art.arcane.iris.structure.placement.IrisStructureTerrain; +import art.arcane.iris.structure.placement.IrisStructureTerrainMode; import net.minecraft.SharedConstants; import net.minecraft.core.Direction; import net.minecraft.core.HolderSet; diff --git a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeStructurePostProcessorSurfaceTerrainTest.java b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeStructurePostProcessorSurfaceTerrainTest.java index d111389f1..b8e367d8a 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeStructurePostProcessorSurfaceTerrainTest.java +++ b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeStructurePostProcessorSurfaceTerrainTest.java @@ -1,9 +1,9 @@ package art.arcane.iris.nativegen; -import art.arcane.iris.engine.mantle.components.StructureCarvingFootprint; -import art.arcane.iris.engine.object.IrisStructureCarveShape; -import art.arcane.iris.engine.object.IrisStructureTerrain; -import art.arcane.iris.engine.object.IrisStructureTerrainMode; +import art.arcane.iris.generation.mantle.StructureCarvingFootprint; +import art.arcane.iris.structure.placement.IrisStructureCarveShape; +import art.arcane.iris.structure.placement.IrisStructureTerrain; +import art.arcane.iris.structure.placement.IrisStructureTerrainMode; import com.mojang.datafixers.util.Either; import com.mojang.serialization.Codec; import net.minecraft.SharedConstants; diff --git a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeStructureVolumeIndexTest.java b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeStructureVolumeIndexTest.java index 5d04ddd8c..565ce0959 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeStructureVolumeIndexTest.java +++ b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeStructureVolumeIndexTest.java @@ -1,9 +1,9 @@ package art.arcane.iris.nativegen; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.NativeStructureVolume; -import art.arcane.iris.engine.history.GenerationHistoryRuntimeRouter; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.nativegen.NativeStructureVolume; +import art.arcane.iris.world.history.GenerationHistoryRuntimeRouter; import art.arcane.volmlib.util.collection.KList; import net.minecraft.SharedConstants; import net.minecraft.core.HolderSet; diff --git a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeTransitionColumnTest.java b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeTransitionColumnTest.java index 82b350995..fd3515b60 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeTransitionColumnTest.java +++ b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/nativegen/NativeTransitionColumnTest.java @@ -1,7 +1,7 @@ package art.arcane.iris.nativegen; -import art.arcane.iris.engine.history.BoundaryColumnGeometry; -import art.arcane.iris.engine.history.TerrainBoundarySignature; +import art.arcane.iris.world.history.BoundaryColumnGeometry; +import art.arcane.iris.world.history.TerrainBoundarySignature; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBlockState; diff --git a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/CustomBiomeSourceStructureContractTest.java b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/CustomBiomeSourceStructureContractTest.java similarity index 93% rename from adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/CustomBiomeSourceStructureContractTest.java rename to adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/CustomBiomeSourceStructureContractTest.java index b25a4c8fb..9f83d1d70 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/CustomBiomeSourceStructureContractTest.java +++ b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/CustomBiomeSourceStructureContractTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.nms.v26_2_R1; +package art.arcane.iris.platform.bukkit.nms.v26_2_R1; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.terrain.IrisDimension; import net.minecraft.SharedConstants; import net.minecraft.server.Bootstrap; import org.junit.BeforeClass; diff --git a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/IrisChunkGeneratorFailureContractTest.java b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/IrisChunkGeneratorFailureContractTest.java similarity index 98% rename from adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/IrisChunkGeneratorFailureContractTest.java rename to adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/IrisChunkGeneratorFailureContractTest.java index fb172335f..05139f71e 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/IrisChunkGeneratorFailureContractTest.java +++ b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/IrisChunkGeneratorFailureContractTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.nms.v26_2_R1; +package art.arcane.iris.platform.bukkit.nms.v26_2_R1; import org.junit.Test; diff --git a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/IrisChunkGeneratorMonumentLocateContractTest.java b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/IrisChunkGeneratorMonumentLocateContractTest.java similarity index 98% rename from adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/IrisChunkGeneratorMonumentLocateContractTest.java rename to adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/IrisChunkGeneratorMonumentLocateContractTest.java index 21760675f..7e06960bf 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/IrisChunkGeneratorMonumentLocateContractTest.java +++ b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/IrisChunkGeneratorMonumentLocateContractTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.nms.v26_2_R1; +package art.arcane.iris.platform.bukkit.nms.v26_2_R1; import art.arcane.iris.nativegen.NativeStructureLocateResults; import com.mojang.datafixers.util.Pair; diff --git a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/IrisChunkGeneratorSpawnAdmissionTest.java b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/IrisChunkGeneratorSpawnAdmissionTest.java similarity index 93% rename from adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/IrisChunkGeneratorSpawnAdmissionTest.java rename to adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/IrisChunkGeneratorSpawnAdmissionTest.java index ca3cff99e..57427d9f9 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/IrisChunkGeneratorSpawnAdmissionTest.java +++ b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/IrisChunkGeneratorSpawnAdmissionTest.java @@ -1,12 +1,12 @@ -package art.arcane.iris.core.nms.v26_2_R1; +package art.arcane.iris.platform.bukkit.nms.v26_2_R1; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.framework.GenerationSessionManager; -import art.arcane.iris.engine.framework.GenerationTransitionGate; -import art.arcane.iris.engine.history.GenerationHistoryRuntimeRouter; -import art.arcane.iris.engine.history.NativeBiomeSpawnSelection; -import art.arcane.iris.engine.history.SavedBiomeRuntime; -import art.arcane.iris.util.project.context.IrisContext; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.runtime.GenerationSessionManager; +import art.arcane.iris.generation.runtime.GenerationTransitionGate; +import art.arcane.iris.world.history.GenerationHistoryRuntimeRouter; +import art.arcane.iris.world.history.NativeBiomeSpawnSelection; +import art.arcane.iris.world.history.SavedBiomeRuntime; +import art.arcane.iris.generation.context.IrisContext; import net.minecraft.SharedConstants; import net.minecraft.core.BlockPos; import net.minecraft.core.Holder; diff --git a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/NMSBindingDatapackStructureScopeTest.java b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NMSBindingDatapackStructureScopeTest.java similarity index 98% rename from adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/NMSBindingDatapackStructureScopeTest.java rename to adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NMSBindingDatapackStructureScopeTest.java index 3dd760088..da026c026 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/NMSBindingDatapackStructureScopeTest.java +++ b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NMSBindingDatapackStructureScopeTest.java @@ -1,9 +1,9 @@ -package art.arcane.iris.core.nms.v26_2_R1; +package art.arcane.iris.platform.bukkit.nms.v26_2_R1; -import art.arcane.iris.core.datapack.DatapackIngestService; -import art.arcane.iris.core.datapack.DatapackStructureScopeIndex; -import art.arcane.iris.engine.object.IrisImportedStructureControl; -import art.arcane.iris.engine.object.IrisStructureSetFrequencyOverride; +import art.arcane.iris.pack.datapack.DatapackIngestService; +import art.arcane.iris.pack.datapack.DatapackStructureScopeIndex; +import art.arcane.iris.structure.nativegen.IrisImportedStructureControl; +import art.arcane.iris.structure.placement.IrisStructureSetFrequencyOverride; import art.arcane.volmlib.util.collection.KList; import com.mojang.datafixers.util.Either; import net.minecraft.SharedConstants; diff --git a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/NativeStructurePoiUpdatesTest.java b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NativeStructurePoiUpdatesTest.java similarity index 99% rename from adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/NativeStructurePoiUpdatesTest.java rename to adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NativeStructurePoiUpdatesTest.java index 5ab44d916..e95ea23fa 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/NativeStructurePoiUpdatesTest.java +++ b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NativeStructurePoiUpdatesTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.nms.v26_2_R1; +package art.arcane.iris.platform.bukkit.nms.v26_2_R1; import ca.spottedleaf.moonrise.common.util.TickThread; import com.mojang.serialization.Codec; diff --git a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/NativeStructureWorldgenAccessTest.java b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NativeStructureWorldgenAccessTest.java similarity index 99% rename from adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/NativeStructureWorldgenAccessTest.java rename to adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NativeStructureWorldgenAccessTest.java index 89105bb97..46bf5b7f9 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/NativeStructureWorldgenAccessTest.java +++ b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NativeStructureWorldgenAccessTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.nms.v26_2_R1; +package art.arcane.iris.platform.bukkit.nms.v26_2_R1; -import art.arcane.iris.engine.object.IrisStructureTerrain; -import art.arcane.iris.engine.object.IrisStructureTerrainMode; +import art.arcane.iris.structure.placement.IrisStructureTerrain; +import art.arcane.iris.structure.placement.IrisStructureTerrainMode; import art.arcane.iris.nativegen.NativeStructurePostProcessor; import art.arcane.iris.nativegen.NativeStructureTerrainIntegrator; import net.minecraft.SharedConstants; diff --git a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/NmsChunkIOFlushTest.java b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NmsChunkIOFlushTest.java similarity index 98% rename from adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/NmsChunkIOFlushTest.java rename to adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NmsChunkIOFlushTest.java index 88552a7d0..82d65e665 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/NmsChunkIOFlushTest.java +++ b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NmsChunkIOFlushTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.nms.v26_2_R1; +package art.arcane.iris.platform.bukkit.nms.v26_2_R1; import ca.spottedleaf.moonrise.patches.chunk_system.io.MoonriseRegionFileIO.RegionDataController; import net.minecraft.SharedConstants; diff --git a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/NmsChunkTaskPollingTest.java b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NmsChunkTaskPollingTest.java similarity index 98% rename from adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/NmsChunkTaskPollingTest.java rename to adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NmsChunkTaskPollingTest.java index 1f61cfd04..37e60eeeb 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/NmsChunkTaskPollingTest.java +++ b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NmsChunkTaskPollingTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.nms.v26_2_R1; +package art.arcane.iris.platform.bukkit.nms.v26_2_R1; import art.arcane.volmlib.util.scheduling.FoliaScheduler; import net.minecraft.SharedConstants; diff --git a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/NmsEntitySpawnDifficultyTest.java b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NmsEntitySpawnDifficultyTest.java similarity index 98% rename from adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/NmsEntitySpawnDifficultyTest.java rename to adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NmsEntitySpawnDifficultyTest.java index a16e4aa8d..e3f01d057 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/NmsEntitySpawnDifficultyTest.java +++ b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NmsEntitySpawnDifficultyTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.nms.v26_2_R1; +package art.arcane.iris.platform.bukkit.nms.v26_2_R1; import net.minecraft.SharedConstants; import net.minecraft.core.registries.BuiltInRegistries; diff --git a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/NmsSavedTerrainCheckpointTest.java b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NmsSavedTerrainCheckpointTest.java similarity index 98% rename from adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/NmsSavedTerrainCheckpointTest.java rename to adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NmsSavedTerrainCheckpointTest.java index 359bcc3f9..58535530a 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/NmsSavedTerrainCheckpointTest.java +++ b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NmsSavedTerrainCheckpointTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.nms.v26_2_R1; +package art.arcane.iris.platform.bukkit.nms.v26_2_R1; -import art.arcane.iris.engine.history.SavedTerrainChunk; +import art.arcane.iris.world.history.SavedTerrainChunk; import ca.spottedleaf.concurrentutil.util.Priority; import ca.spottedleaf.moonrise.patches.chunk_system.io.MoonriseRegionFileIO; import net.minecraft.SharedConstants; diff --git a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/NmsSavedTerrainSnapshotTest.java b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NmsSavedTerrainSnapshotTest.java similarity index 99% rename from adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/NmsSavedTerrainSnapshotTest.java rename to adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NmsSavedTerrainSnapshotTest.java index 4e38ebed1..58288c28f 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/NmsSavedTerrainSnapshotTest.java +++ b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NmsSavedTerrainSnapshotTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.nms.v26_2_R1; +package art.arcane.iris.platform.bukkit.nms.v26_2_R1; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import ca.spottedleaf.concurrentutil.completable.Completable; import ca.spottedleaf.concurrentutil.executor.PrioritisedExecutor; import ca.spottedleaf.concurrentutil.executor.thread.BalancedPrioritisedThreadPool; diff --git a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/NmsSavedTerrainWriteBarrierTest.java b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NmsSavedTerrainWriteBarrierTest.java similarity index 99% rename from adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/NmsSavedTerrainWriteBarrierTest.java rename to adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NmsSavedTerrainWriteBarrierTest.java index f22281a63..899ee2195 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/NmsSavedTerrainWriteBarrierTest.java +++ b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NmsSavedTerrainWriteBarrierTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.nms.v26_2_R1; +package art.arcane.iris.platform.bukkit.nms.v26_2_R1; import ca.spottedleaf.concurrentutil.executor.thread.BalancedPrioritisedThreadPool; import ca.spottedleaf.concurrentutil.util.Priority; diff --git a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/WorldgenTerrainHeightmapsTest.java b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/WorldgenTerrainHeightmapsTest.java similarity index 99% rename from adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/WorldgenTerrainHeightmapsTest.java rename to adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/WorldgenTerrainHeightmapsTest.java index 757a450fe..d37f9f51b 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/nms/v26_2_R1/WorldgenTerrainHeightmapsTest.java +++ b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/WorldgenTerrainHeightmapsTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.nms.v26_2_R1; +package art.arcane.iris.platform.bukkit.nms.v26_2_R1; import art.arcane.iris.nativegen.WorldgenTerrainHeightmaps; import com.mojang.serialization.Codec; diff --git a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/structure/VillageImporterListPoolElementRuntimeContractTest.java b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/structure/VillageImporterListPoolElementRuntimeContractTest.java similarity index 98% rename from adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/structure/VillageImporterListPoolElementRuntimeContractTest.java rename to adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/structure/VillageImporterListPoolElementRuntimeContractTest.java index 3c472a150..4e4f08681 100644 --- a/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/core/structure/VillageImporterListPoolElementRuntimeContractTest.java +++ b/adapters/bukkit/nms/v26_2_R1/src/test/java/art/arcane/iris/structure/VillageImporterListPoolElementRuntimeContractTest.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.structure; +package art.arcane.iris.structure; -import art.arcane.iris.core.structure.authoring.StructureCapability; -import art.arcane.iris.core.structure.authoring.StructureLoss; +import art.arcane.iris.structure.authoring.StructureCapability; +import art.arcane.iris.structure.authoring.StructureLoss; import net.minecraft.SharedConstants; import net.minecraft.server.Bootstrap; import net.minecraft.world.level.levelgen.structure.pools.ListPoolElement; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/Iris.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/Iris.java index 2165b997d..219e6778a 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/Iris.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/Iris.java @@ -19,77 +19,77 @@ package art.arcane.iris; import art.arcane.volmlib.util.diagnostics.BukkitDebugDump; -import art.arcane.iris.engine.IrisEngineEffects; -import art.arcane.iris.engine.IrisWorldManager; +import art.arcane.iris.generation.runtime.IrisEngineEffects; +import art.arcane.iris.generation.runtime.IrisWorldManager; -import art.arcane.iris.engine.framework.EngineComponentCleanup; -import art.arcane.iris.engine.framework.EngineEffectsProvider; -import art.arcane.iris.engine.framework.EnginePlatformHooks; -import art.arcane.iris.engine.framework.EngineWorldManagerProvider; -import art.arcane.iris.core.splash.IrisSplashComposer; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.IrisStartupValidation; -import art.arcane.iris.core.IrisStartupAdmissionListener; -import art.arcane.iris.core.BukkitWorldReconciler; -import art.arcane.iris.core.IrisWorldGeneratorResolver; -import art.arcane.iris.core.IrisWorldStorage; -import art.arcane.iris.core.PendingWorldDeleteQueue; -import art.arcane.iris.core.PendingWorldReplacementManager; -import art.arcane.iris.core.SettingsHotloadWatch; -import art.arcane.iris.core.ServerConfigurator; -import art.arcane.iris.core.datapack.DatapackIngestService; -import art.arcane.iris.core.datapack.DatapackIngestService.StartupValidationOutcome; -import art.arcane.iris.core.lifecycle.IrisRuntimeStatics; -import art.arcane.iris.core.lifecycle.ManagedWorldLoader; -import art.arcane.iris.core.lifecycle.MissingWorldStorageLog; -import art.arcane.iris.core.lifecycle.PaperLibBootstrap; -import art.arcane.iris.core.lifecycle.WorldLifecycleService; -import art.arcane.iris.core.runtime.BukkitEnginePlatformHooks; -import art.arcane.iris.core.runtime.WorldDeletionQueue; -import art.arcane.iris.core.runtime.WorldRuntimeControlService; +import art.arcane.iris.generation.runtime.EngineComponentCleanup; +import art.arcane.iris.generation.runtime.EngineEffectsProvider; +import art.arcane.iris.generation.runtime.EnginePlatformHooks; +import art.arcane.iris.generation.runtime.EngineWorldManagerProvider; +import art.arcane.iris.diagnostics.splash.IrisSplashComposer; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.world.IrisStartupValidation; +import art.arcane.iris.world.IrisStartupAdmissionListener; +import art.arcane.iris.world.BukkitWorldReconciler; +import art.arcane.iris.world.IrisWorldGeneratorResolver; +import art.arcane.iris.world.IrisWorldStorage; +import art.arcane.iris.world.PendingWorldDeleteQueue; +import art.arcane.iris.world.PendingWorldReplacementManager; +import art.arcane.iris.configuration.SettingsHotloadWatch; +import art.arcane.iris.pack.datapack.ServerConfigurator; +import art.arcane.iris.pack.datapack.DatapackIngestService; +import art.arcane.iris.pack.datapack.DatapackIngestService.StartupValidationOutcome; +import art.arcane.iris.world.lifecycle.IrisRuntimeStatics; +import art.arcane.iris.world.lifecycle.ManagedWorldLoader; +import art.arcane.iris.world.lifecycle.MissingWorldStorageLog; +import art.arcane.iris.world.lifecycle.PaperLibBootstrap; +import art.arcane.iris.world.lifecycle.WorldLifecycleService; +import art.arcane.iris.world.runtime.BukkitEnginePlatformHooks; +import art.arcane.iris.world.runtime.WorldDeletionQueue; +import art.arcane.iris.world.runtime.WorldRuntimeControlService; import art.arcane.iris.api.terrain.IrisTerrainService; -import art.arcane.iris.core.link.IrisPapiInstaller; -import art.arcane.iris.core.link.IrisPapiListener; -import art.arcane.iris.core.link.IrisPapiState; -import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.integration.IrisPapiInstaller; +import art.arcane.iris.integration.IrisPapiListener; +import art.arcane.iris.integration.IrisPapiState; +import art.arcane.iris.localization.IrisLanguage; import art.arcane.volmlib.util.director.help.DirectorMiniMenu; import art.arcane.volmlib.util.localization.BukkitLanguageSwitcher; -import art.arcane.iris.core.link.MultiverseCoreLink; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.core.nms.ServerShutdownBoundary; -import art.arcane.iris.core.gui.BukkitGuiHost; -import art.arcane.iris.core.gui.PregeneratorJob; -import art.arcane.iris.core.service.BoardSVC; -import art.arcane.iris.core.service.CommandSVC; -import art.arcane.iris.core.service.DatapackStructureScopeSVC; -import art.arcane.iris.core.service.EditSVC; -import art.arcane.iris.core.service.EntityRiseSVC; -import art.arcane.iris.core.service.ExternalDataSVC; -import art.arcane.iris.core.service.GlobalCacheSVC; -import art.arcane.iris.core.service.IrisApiEventSVC; -import art.arcane.iris.core.service.IrisEngineSVC; -import art.arcane.iris.core.service.IrisIntegrationService; -import art.arcane.iris.core.service.IrisProtocolService; -import art.arcane.iris.core.service.IrisTerrainSVC; -import art.arcane.iris.core.service.JigsawStudioService; -import art.arcane.iris.core.service.LogFilterSVC; -import art.arcane.iris.core.service.MultiverseSVC; -import art.arcane.iris.core.service.ObjectSVC; -import art.arcane.iris.core.service.ObjectStudioSaveService; -import art.arcane.iris.core.service.PreservationSVC; -import art.arcane.iris.core.service.StudioSVC; -import art.arcane.iris.core.service.TreeFellerSVC; -import art.arcane.iris.core.service.TreeSVC; -import art.arcane.iris.core.service.WandSVC; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.EnginePanic; -import art.arcane.iris.engine.framework.BlockEditAccess; -import art.arcane.iris.engine.framework.PreservationRegistry; -import art.arcane.iris.engine.framework.TreeBlockMaterial; -import art.arcane.iris.engine.object.IrisCompat; -import art.arcane.iris.core.safeguard.IrisSafeguard; -import art.arcane.iris.core.safeguard.RuntimeLockNotice; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.integration.MultiverseCoreLink; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.platform.bukkit.nms.ServerShutdownBoundary; +import art.arcane.iris.studio.view.BukkitGuiHost; +import art.arcane.iris.studio.view.PregeneratorJob; +import art.arcane.iris.platform.bukkit.BoardSVC; +import art.arcane.iris.command.CommandSVC; +import art.arcane.iris.pack.datapack.DatapackStructureScopeSVC; +import art.arcane.iris.studio.edit.EditSVC; +import art.arcane.iris.world.entity.EntityRiseSVC; +import art.arcane.iris.integration.ExternalDataSVC; +import art.arcane.iris.generation.runtime.GlobalCacheSVC; +import art.arcane.iris.platform.bukkit.api.IrisApiEventSVC; +import art.arcane.iris.generation.runtime.IrisEngineSVC; +import art.arcane.iris.integration.IrisIntegrationService; +import art.arcane.iris.platform.protocol.IrisProtocolService; +import art.arcane.iris.platform.bukkit.api.IrisTerrainSVC; +import art.arcane.iris.studio.jigsaw.JigsawStudioService; +import art.arcane.iris.diagnostics.LogFilterSVC; +import art.arcane.iris.integration.MultiverseSVC; +import art.arcane.iris.studio.object.ObjectSVC; +import art.arcane.iris.studio.object.ObjectStudioSaveService; +import art.arcane.iris.generation.runtime.PreservationSVC; +import art.arcane.iris.studio.StudioSVC; +import art.arcane.iris.world.tree.TreeFellerSVC; +import art.arcane.iris.world.tree.TreeSVC; +import art.arcane.iris.studio.wand.WandSVC; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.generation.runtime.EnginePanic; +import art.arcane.iris.generation.runtime.BlockEditAccess; +import art.arcane.iris.generation.runtime.PreservationRegistry; +import art.arcane.iris.generation.decoration.tree.TreeBlockMaterial; +import art.arcane.iris.pack.validation.IrisCompat; +import art.arcane.iris.world.safeguard.IrisSafeguard; +import art.arcane.iris.world.safeguard.RuntimeLockNotice; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; @@ -100,7 +100,7 @@ import art.arcane.volmlib.util.bukkit.papi.PlaceholderRegistration; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.exceptions.IrisException; -import art.arcane.iris.util.common.format.C; +import art.arcane.iris.localization.C; import art.arcane.volmlib.util.function.NastyRunnable; import art.arcane.volmlib.util.hud.HudActionBar; import art.arcane.volmlib.util.hud.HudBossBarLane; @@ -111,16 +111,16 @@ import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.plugin.ComponentLog; import art.arcane.volmlib.util.plugin.ComponentMessenger; import art.arcane.volmlib.util.plugin.ComponentText; -import art.arcane.iris.util.common.misc.Bindings; -import art.arcane.iris.util.common.misc.ServerProperties; -import art.arcane.iris.util.common.misc.SlimJar; -import art.arcane.iris.util.common.parallel.MultiBurst; -import art.arcane.iris.util.common.plugin.IrisService; -import art.arcane.iris.util.common.plugin.VolmitPlugin; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.plugin.chunk.ChunkTickets; -import art.arcane.iris.util.common.scheduling.J; -import art.arcane.iris.util.simd.SimdSupport; +import art.arcane.iris.platform.bootstrap.Bindings; +import art.arcane.iris.platform.bootstrap.ServerProperties; +import art.arcane.iris.platform.bootstrap.SlimJar; +import art.arcane.iris.generation.concurrent.MultiBurst; +import art.arcane.iris.platform.bukkit.plugin.IrisService; +import art.arcane.iris.platform.bukkit.plugin.VolmitPlugin; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.platform.bukkit.chunk.ChunkTickets; +import art.arcane.iris.world.task.J; +import art.arcane.iris.generation.simd.SimdSupport; import art.arcane.volmlib.util.scheduling.Queue; import art.arcane.volmlib.util.scheduling.ShurikenQueue; import org.bukkit.Bukkit; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/IrisBootstrap.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/IrisBootstrap.java index c6faf44b0..be35b826f 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/IrisBootstrap.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/IrisBootstrap.java @@ -1,15 +1,15 @@ package art.arcane.iris; -import art.arcane.iris.core.lifecycle.BukkitStartupPaths; -import art.arcane.iris.core.lifecycle.BukkitWorldConfiguration; -import art.arcane.iris.core.lifecycle.BukkitWorldConfiguration.IrisWorldStorageEntry; -import art.arcane.iris.core.lifecycle.HuskWorldQuarantine; -import art.arcane.iris.core.lifecycle.MissingWorldStorageLog; -import art.arcane.iris.core.lifecycle.WorldReplacementBootstrap; -import art.arcane.iris.core.lifecycle.WorldReplacementBootstrapMarker; -import art.arcane.iris.core.pack.DefaultPackBootstrapProvisioner; -import art.arcane.iris.core.pack.DefaultPackBootstrapProvisioner.ProvisionResult; -import art.arcane.iris.util.common.misc.SlimJar; +import art.arcane.iris.world.lifecycle.BukkitStartupPaths; +import art.arcane.iris.world.lifecycle.BukkitWorldConfiguration; +import art.arcane.iris.world.lifecycle.BukkitWorldConfiguration.IrisWorldStorageEntry; +import art.arcane.iris.world.lifecycle.HuskWorldQuarantine; +import art.arcane.iris.world.lifecycle.MissingWorldStorageLog; +import art.arcane.iris.world.lifecycle.WorldReplacementBootstrap; +import art.arcane.iris.world.lifecycle.WorldReplacementBootstrapMarker; +import art.arcane.iris.pack.DefaultPackBootstrapProvisioner; +import art.arcane.iris.pack.DefaultPackBootstrapProvisioner.ProvisionResult; +import art.arcane.iris.platform.bootstrap.SlimJar; import io.papermc.paper.plugin.bootstrap.BootstrapContext; import io.papermc.paper.plugin.bootstrap.PluginBootstrap; import io.papermc.paper.plugin.lifecycle.event.LifecycleEvent; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/IrisPluginLoader.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/IrisPluginLoader.java index 1ab909f78..86b3d95ae 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/IrisPluginLoader.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/IrisPluginLoader.java @@ -1,6 +1,6 @@ package art.arcane.iris; -import art.arcane.iris.util.common.misc.SlimJar; +import art.arcane.iris.platform.bootstrap.SlimJar; import io.papermc.paper.plugin.bootstrap.PluginProviderContext; import io.papermc.paper.plugin.loader.PluginClasspathBuilder; import io.papermc.paper.plugin.loader.PluginLoader; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandDatapack.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandDatapack.java similarity index 91% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandDatapack.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandDatapack.java index 306f9a7ef..bb3d3d790 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandDatapack.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandDatapack.java @@ -16,21 +16,20 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; -import art.arcane.iris.core.datapack.DatapackIngestService; +import art.arcane.iris.pack.datapack.DatapackIngestService; import art.arcane.volmlib.util.collection.KList; -import art.arcane.iris.util.common.director.DirectorExecutor; -import art.arcane.iris.util.common.format.C; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.localization.C; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; import java.util.List; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.BukkitCommandMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.BukkitCommandMessages; import art.arcane.volmlib.util.localization.MessageArgument; @Director(name = "datapack", aliases = {"datapacks", "dp"}, description = "Download & manage external datapack imports", descriptionKey = "iris.director.commanddatapack.director.download_manage_external_datapack_imports_modrinth") public class CommandDatapack implements DirectorExecutor { diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandDeveloper.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandDeveloper.java similarity index 94% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandDeveloper.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandDeveloper.java index b9814e788..d763722d4 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandDeveloper.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandDeveloper.java @@ -16,39 +16,38 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; import com.google.gson.JsonObject; import art.arcane.iris.Iris; -import art.arcane.iris.core.ServerConfigurator; -import art.arcane.iris.core.lifecycle.LifecycleOperationCoordinator; -import art.arcane.iris.core.nms.datapack.DataVersion; -import art.arcane.iris.core.runtime.ChunkClearer; -import art.arcane.iris.core.runtime.GoldenHashScanner; -import art.arcane.iris.core.runtime.InPlaceChunkRegenerator; -import art.arcane.iris.core.service.IrisEngineSVC; -import art.arcane.iris.core.service.StudioSVC; -import art.arcane.iris.core.tools.IrisPackBenchmarking; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.IrisEngineMantle; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; -import art.arcane.iris.util.project.matter.IrisMatterContext; -import art.arcane.iris.util.common.director.DirectorExecutor; +import art.arcane.iris.pack.datapack.ServerConfigurator; +import art.arcane.iris.world.lifecycle.LifecycleOperationCoordinator; +import art.arcane.iris.platform.bukkit.nms.datapack.DataVersion; +import art.arcane.iris.world.runtime.ChunkClearer; +import art.arcane.iris.generation.validation.GoldenHashScanner; +import art.arcane.iris.world.runtime.InPlaceChunkRegenerator; +import art.arcane.iris.generation.runtime.IrisEngineSVC; +import art.arcane.iris.studio.StudioSVC; +import art.arcane.iris.pack.IrisPackBenchmarking; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.generation.runtime.IrisEngineMantle; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; +import art.arcane.iris.world.storage.matter.IrisMatterContext; import art.arcane.volmlib.util.director.DirectorOrigin; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; -import art.arcane.iris.util.common.format.C; +import art.arcane.iris.localization.C; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.io.CountingDataInputStream; import art.arcane.volmlib.util.mantle.runtime.TectonicPlate; import art.arcane.volmlib.util.math.M; import art.arcane.volmlib.util.matter.Matter; -import art.arcane.iris.util.nbt.common.mca.MCAFile; -import art.arcane.iris.util.nbt.common.mca.MCAUtil; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.storage.region.MCAFile; +import art.arcane.iris.world.storage.region.MCAUtil; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.entity.Player; @@ -65,11 +64,11 @@ import java.util.Enumeration; import java.util.Map; import java.util.TreeMap; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.BukkitCommandMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.BukkitCommandMessages; import art.arcane.volmlib.util.localization.MessageArgument; -import art.arcane.iris.core.localization.BukkitCommandMessagesExtended; -import art.arcane.iris.core.localization.BukkitRuntimeMessages; +import art.arcane.iris.localization.BukkitCommandMessagesExtended; +import art.arcane.iris.localization.BukkitRuntimeMessages; @Director(name = "Developer", origin = DirectorOrigin.BOTH, description = "Iris World Manager", descriptionKey = "iris.director.commanddeveloper.director.iris_world_manager", aliases = {"dev"}) public class CommandDeveloper implements DirectorExecutor { @Director(description = "Get Loaded TectonicPlates Count", descriptionKey = "iris.director.commanddeveloper.director.get_loaded_tectonicplates_count", origin = DirectorOrigin.BOTH, sync = true) diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandEdit.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandEdit.java similarity index 92% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandEdit.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandEdit.java index cdfe9c10b..3e294e919 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandEdit.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandEdit.java @@ -16,25 +16,24 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; import art.arcane.iris.Iris; -import art.arcane.iris.core.service.StudioSVC; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.util.common.director.DirectorExecutor; +import art.arcane.iris.studio.StudioSVC; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; import art.arcane.volmlib.util.director.DirectorOrigin; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; -import art.arcane.iris.util.common.format.C; +import art.arcane.iris.localization.C; import java.awt.Desktop; import java.awt.GraphicsEnvironment; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.BukkitCommandMessagesExtended; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.BukkitCommandMessagesExtended; import art.arcane.volmlib.util.localization.MessageArgument; @Director(name = "edit", origin = DirectorOrigin.PLAYER, description = "Edit something", descriptionKey = "iris.director.commandedit.director.edit_something") public class CommandEdit implements DirectorExecutor { diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandFind.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandFind.java similarity index 95% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandFind.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandFind.java index f3f9f86d4..75777bdd7 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandFind.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandFind.java @@ -16,39 +16,38 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; import art.arcane.iris.Iris; -import art.arcane.iris.core.localization.BukkitCommandMessages; -import art.arcane.iris.core.localization.BukkitCommandMessagesExtended; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.datapack.DatapackIngestService; -import art.arcane.iris.core.service.ObjectStudioSaveService; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.IrisStructureLocator; -import art.arcane.iris.engine.framework.NativeStructureGenerationPolicy; -import art.arcane.iris.engine.framework.StructureReachability; -import art.arcane.iris.engine.history.GenerationSemanticQueries; -import art.arcane.iris.engine.hydrology.HydrologyFeatureQuery; -import art.arcane.iris.engine.hydrology.runtime.IrisHydrologyRuntime; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisNativeStructureDecision; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.NativeStructureGenerationStatus; -import art.arcane.iris.engine.platform.EngineBukkitOps; +import art.arcane.iris.localization.BukkitCommandMessages; +import art.arcane.iris.localization.BukkitCommandMessagesExtended; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.pack.datapack.DatapackIngestService; +import art.arcane.iris.studio.object.ObjectStudioSaveService; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.placement.IrisStructureLocator; +import art.arcane.iris.structure.nativegen.NativeStructureGenerationPolicy; +import art.arcane.iris.structure.placement.StructureReachability; +import art.arcane.iris.world.history.GenerationSemanticQueries; +import art.arcane.iris.generation.hydrology.HydrologyFeatureQuery; +import art.arcane.iris.generation.hydrology.runtime.IrisHydrologyRuntime; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.structure.nativegen.IrisNativeStructureDecision; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.structure.nativegen.NativeStructureGenerationStatus; +import art.arcane.iris.platform.generation.EngineBukkitOps; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformStructureHooks; -import art.arcane.iris.util.common.director.DirectorExecutor; -import art.arcane.iris.util.common.director.specialhandlers.HydrologyTypeHandler; -import art.arcane.iris.engine.history.GenerationFindCatalog; -import art.arcane.iris.util.common.director.specialhandlers.LocatableObjectHandler; -import art.arcane.iris.util.common.director.specialhandlers.ReachableBiomeHandler; -import art.arcane.iris.util.common.director.specialhandlers.ReachableRegionHandler; -import art.arcane.iris.util.common.director.specialhandlers.StructureHandler; -import art.arcane.iris.util.common.format.C; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.command.specialhandlers.HydrologyTypeHandler; +import art.arcane.iris.world.history.GenerationFindCatalog; +import art.arcane.iris.command.specialhandlers.LocatableObjectHandler; +import art.arcane.iris.command.specialhandlers.ReachableBiomeHandler; +import art.arcane.iris.command.specialhandlers.ReachableRegionHandler; +import art.arcane.iris.command.specialhandlers.StructureHandler; +import art.arcane.iris.localization.C; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.director.DirectorOrigin; import art.arcane.volmlib.util.director.annotations.Director; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandIris.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandIris.java similarity index 96% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandIris.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandIris.java index 295bbf3e7..5bff5869c 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandIris.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandIris.java @@ -16,39 +16,38 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; import art.arcane.iris.Iris; -import art.arcane.iris.core.BukkitWorldReconciler; +import art.arcane.iris.world.BukkitWorldReconciler; import art.arcane.iris.platform.bukkit.BukkitPlatform; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.IrisWorldStorage; -import art.arcane.iris.core.IrisWorlds; -import art.arcane.iris.core.PendingWorldReplacementManager; -import art.arcane.iris.core.ServerConfigurator; -import art.arcane.iris.core.lifecycle.IrisWorldRemovalService; -import art.arcane.iris.core.lifecycle.LifecycleOperationCoordinator; -import art.arcane.iris.core.lifecycle.WorldLifecycleService; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.pack.PackDownloader; -import art.arcane.iris.core.pack.PackDirectoryResolver; -import art.arcane.iris.core.service.StudioSVC; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.world.IrisWorldStorage; +import art.arcane.iris.world.IrisWorlds; +import art.arcane.iris.world.PendingWorldReplacementManager; +import art.arcane.iris.pack.datapack.ServerConfigurator; +import art.arcane.iris.world.lifecycle.IrisWorldRemovalService; +import art.arcane.iris.world.lifecycle.LifecycleOperationCoordinator; +import art.arcane.iris.world.lifecycle.WorldLifecycleService; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.PackDownloader; +import art.arcane.iris.pack.PackDirectoryResolver; +import art.arcane.iris.studio.StudioSVC; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.bukkit.WorldIdentity; import art.arcane.volmlib.util.director.DirectorParameterHandler; -import art.arcane.iris.util.common.director.DirectorExecutor; import art.arcane.volmlib.util.director.DirectorOrigin; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; import art.arcane.volmlib.util.director.exceptions.DirectorParsingException; -import art.arcane.iris.util.common.director.specialhandlers.NullablePlayerHandler; -import art.arcane.iris.util.common.format.C; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.command.specialhandlers.NullablePlayerHandler; +import art.arcane.iris.localization.C; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; import org.bukkit.Location; @@ -68,15 +67,15 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import java.util.concurrent.atomic.AtomicBoolean; -import static art.arcane.iris.util.common.misc.ServerProperties.BUKKIT_YML; +import static art.arcane.iris.platform.bootstrap.ServerProperties.BUKKIT_YML; import static org.bukkit.Bukkit.getServer; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.IrisMessages; -import art.arcane.iris.core.localization.PackDownloadMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.IrisMessages; +import art.arcane.iris.localization.PackDownloadMessages; import art.arcane.volmlib.util.localization.MessageArgument; -import art.arcane.iris.core.localization.BukkitCommandMessagesExtended; -import art.arcane.iris.core.localization.RuntimeUiMessages; +import art.arcane.iris.localization.BukkitCommandMessagesExtended; +import art.arcane.iris.localization.RuntimeUiMessages; @Director(name = "iris", aliases = {"ir", "irs"}, description = "Basic Command", descriptionKey = "iris.director.commandiris.director.basic_command") public class CommandIris implements DirectorExecutor { private static final String NO_DOWNLOAD_SOURCE = "__none__"; @@ -479,7 +478,7 @@ public class CommandIris implements DirectorExecutor { return; } sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_SENDING_METRICS)); - engine().printMetrics(sender()); + engine().printMetrics(sender()::sendMessage); } @Director(description = "Reload configuration file (this is also done automatically)", descriptionKey = "iris.director.commandiris.director.reload_configuration_file_this_is_also_done_automatically") diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsaw.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsaw.java similarity index 93% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsaw.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsaw.java index be5ee3411..16714c0bf 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsaw.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsaw.java @@ -1,43 +1,42 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; import art.arcane.iris.Iris; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.runtime.StudioOpenCoordinator; -import art.arcane.iris.core.runtime.jigsaw.JigsawPlanarArchetype; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioActivation; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBay; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCellDimensions; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCompatibilityTarget; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioGraphMapper; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioLayout; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioMode; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioProjectCreator; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioSession; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioVariant; -import art.arcane.iris.core.service.JigsawStudioGraphEvaluation; -import art.arcane.iris.core.service.JigsawStudioService; -import art.arcane.iris.core.service.StudioSVC; -import art.arcane.iris.core.structure.StructureImporter; -import art.arcane.iris.core.structure.VillageImporter; -import art.arcane.iris.core.structure.authoring.StructureKey; -import art.arcane.iris.core.structure.authoring.StructureWriteResult; -import art.arcane.iris.core.structure.export.VanillaJigsawExportFormat; -import art.arcane.iris.core.structure.export.VanillaJigsawExportRequest; -import art.arcane.iris.core.structure.export.VanillaJigsawExportSource; -import art.arcane.iris.engine.framework.structure.PlanarJigsawWorkcellResolver; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisJigsawCompatibility; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisJigsawThemeSet; -import art.arcane.iris.engine.object.IrisJigsawWorkcellArchetype; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.IrisStructure; -import art.arcane.iris.util.common.director.DirectorExecutor; -import art.arcane.iris.util.common.director.specialhandlers.IrisStructureHandler; -import art.arcane.iris.util.common.format.C; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.studio.object.StudioOpenCoordinator; +import art.arcane.iris.studio.jigsaw.JigsawPlanarArchetype; +import art.arcane.iris.studio.jigsaw.JigsawStudioActivation; +import art.arcane.iris.studio.jigsaw.JigsawStudioBay; +import art.arcane.iris.studio.jigsaw.JigsawStudioCellDimensions; +import art.arcane.iris.studio.jigsaw.JigsawStudioCompatibilityTarget; +import art.arcane.iris.studio.jigsaw.JigsawStudioGraphMapper; +import art.arcane.iris.studio.jigsaw.JigsawStudioLayout; +import art.arcane.iris.studio.jigsaw.JigsawStudioMode; +import art.arcane.iris.studio.jigsaw.JigsawStudioProjectCreator; +import art.arcane.iris.studio.jigsaw.JigsawStudioSession; +import art.arcane.iris.studio.jigsaw.JigsawStudioVariant; +import art.arcane.iris.studio.jigsaw.JigsawStudioGraphEvaluation; +import art.arcane.iris.studio.jigsaw.JigsawStudioService; +import art.arcane.iris.studio.StudioSVC; +import art.arcane.iris.structure.StructureImporter; +import art.arcane.iris.structure.VillageImporter; +import art.arcane.iris.structure.authoring.StructureKey; +import art.arcane.iris.structure.authoring.StructureWriteResult; +import art.arcane.iris.structure.export.VanillaJigsawExportFormat; +import art.arcane.iris.structure.export.VanillaJigsawExportRequest; +import art.arcane.iris.structure.export.VanillaJigsawExportSource; +import art.arcane.iris.structure.graph.PlanarJigsawWorkcellResolver; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.structure.jigsaw.IrisJigsawCompatibility; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.jigsaw.IrisJigsawThemeSet; +import art.arcane.iris.structure.jigsaw.IrisJigsawWorkcellArchetype; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.structure.placement.IrisStructure; +import art.arcane.iris.command.specialhandlers.IrisStructureHandler; +import art.arcane.iris.localization.C; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.director.DirectorOrigin; import art.arcane.volmlib.util.director.DirectorParameterHandler; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawAdopt.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawAdopt.java similarity index 94% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawAdopt.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawAdopt.java index 61babbe2e..e6b55696c 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawAdopt.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawAdopt.java @@ -1,22 +1,21 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; import art.arcane.iris.Iris; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.structure.authoring.StructureKey; -import art.arcane.iris.core.structure.authoring.StructureOwnershipManifest; -import art.arcane.iris.core.structure.authoring.StructureTransactionWriter; -import art.arcane.iris.core.structure.conversion.IrisStructureAdoptionDiagnostic; -import art.arcane.iris.core.structure.conversion.IrisStructureAdoptionInputKind; -import art.arcane.iris.core.structure.conversion.IrisStructureAdoptionPlan; -import art.arcane.iris.core.structure.conversion.IrisStructureAdoptionRequest; -import art.arcane.iris.core.structure.conversion.IrisStructureAdoptionResult; -import art.arcane.iris.core.structure.conversion.IrisStructureAdoptionService; -import art.arcane.iris.core.structure.conversion.IrisStructureAdoptionStrategy; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.util.common.director.DirectorExecutor; -import art.arcane.iris.util.common.format.C; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.structure.authoring.StructureKey; +import art.arcane.iris.structure.authoring.StructureOwnershipManifest; +import art.arcane.iris.structure.authoring.StructureTransactionWriter; +import art.arcane.iris.structure.conversion.IrisStructureAdoptionDiagnostic; +import art.arcane.iris.structure.conversion.IrisStructureAdoptionInputKind; +import art.arcane.iris.structure.conversion.IrisStructureAdoptionPlan; +import art.arcane.iris.structure.conversion.IrisStructureAdoptionRequest; +import art.arcane.iris.structure.conversion.IrisStructureAdoptionResult; +import art.arcane.iris.structure.conversion.IrisStructureAdoptionService; +import art.arcane.iris.structure.conversion.IrisStructureAdoptionStrategy; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.localization.C; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.director.DirectorOrigin; import art.arcane.volmlib.util.director.DirectorParameterHandler; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawConnector.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawConnector.java similarity index 88% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawConnector.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawConnector.java index d466fdd0a..fd55b474d 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawConnector.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawConnector.java @@ -1,12 +1,11 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBay; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCellDimensions; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioGraphEditor; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioVariant; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.util.common.director.DirectorExecutor; +import art.arcane.iris.studio.jigsaw.JigsawStudioBay; +import art.arcane.iris.studio.jigsaw.JigsawStudioCellDimensions; +import art.arcane.iris.studio.jigsaw.JigsawStudioGraphEditor; +import art.arcane.iris.studio.jigsaw.JigsawStudioVariant; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.pack.value.IrisPosition; import art.arcane.volmlib.util.director.DirectorOrigin; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawExports.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawExports.java similarity index 91% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawExports.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawExports.java index cd5239509..3e70aa1b3 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawExports.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawExports.java @@ -1,15 +1,15 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; import art.arcane.iris.Iris; -import art.arcane.iris.core.service.JigsawStudioService; -import art.arcane.iris.core.structure.export.VanillaJigsawDatapackExporter; -import art.arcane.iris.core.structure.export.VanillaJigsawExportDiagnostic; -import art.arcane.iris.core.structure.export.VanillaJigsawExportFormat; -import art.arcane.iris.core.structure.export.VanillaJigsawExportRequest; -import art.arcane.iris.core.structure.export.VanillaJigsawExportResult; -import art.arcane.iris.util.common.format.C; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.studio.jigsaw.JigsawStudioService; +import art.arcane.iris.structure.export.VanillaJigsawDatapackExporter; +import art.arcane.iris.structure.export.VanillaJigsawExportDiagnostic; +import art.arcane.iris.structure.export.VanillaJigsawExportFormat; +import art.arcane.iris.structure.export.VanillaJigsawExportRequest; +import art.arcane.iris.structure.export.VanillaJigsawExportResult; +import art.arcane.iris.localization.C; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import org.bukkit.entity.Player; import java.nio.file.Path; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawOpen.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawOpen.java similarity index 92% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawOpen.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawOpen.java index da1575ba2..5f214f82f 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawOpen.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawOpen.java @@ -1,23 +1,23 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; import art.arcane.iris.Iris; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.pack.BrokenPackException; -import art.arcane.iris.core.runtime.WorldRuntimeControlService; -import art.arcane.iris.core.runtime.StudioOpenCoordinator; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioActivation; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBay; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioGraphMapper; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioLayout; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioSession; -import art.arcane.iris.core.service.JigsawStudioService; -import art.arcane.iris.core.service.StudioSVC; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisStructure; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.BrokenPackException; +import art.arcane.iris.world.runtime.WorldRuntimeControlService; +import art.arcane.iris.studio.object.StudioOpenCoordinator; +import art.arcane.iris.studio.jigsaw.JigsawStudioActivation; +import art.arcane.iris.studio.jigsaw.JigsawStudioBay; +import art.arcane.iris.studio.jigsaw.JigsawStudioGraphMapper; +import art.arcane.iris.studio.jigsaw.JigsawStudioLayout; +import art.arcane.iris.studio.jigsaw.JigsawStudioSession; +import art.arcane.iris.studio.jigsaw.JigsawStudioService; +import art.arcane.iris.studio.StudioSVC; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.structure.placement.IrisStructure; import art.arcane.iris.platform.bukkit.BukkitPlatform; -import art.arcane.iris.util.common.format.C; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.localization.C; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.World; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawPiece.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawPiece.java similarity index 92% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawPiece.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawPiece.java index 374c24ea6..d8e7298eb 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawPiece.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawPiece.java @@ -1,19 +1,18 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; -import art.arcane.iris.core.runtime.jigsaw.JigsawPlanarTopology; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBay; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCellDimensions; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCompatibilityTarget; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioGraphEditor; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioLayout; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioMode; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioPoolEditor; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioVariant; -import art.arcane.iris.core.service.JigsawStudioService; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.util.common.director.DirectorExecutor; +import art.arcane.iris.studio.jigsaw.JigsawPlanarTopology; +import art.arcane.iris.studio.jigsaw.JigsawStudioBay; +import art.arcane.iris.studio.jigsaw.JigsawStudioCellDimensions; +import art.arcane.iris.studio.jigsaw.JigsawStudioCompatibilityTarget; +import art.arcane.iris.studio.jigsaw.JigsawStudioGraphEditor; +import art.arcane.iris.studio.jigsaw.JigsawStudioLayout; +import art.arcane.iris.studio.jigsaw.JigsawStudioMode; +import art.arcane.iris.studio.jigsaw.JigsawStudioPoolEditor; +import art.arcane.iris.studio.jigsaw.JigsawStudioVariant; +import art.arcane.iris.studio.jigsaw.JigsawStudioService; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.pack.value.IrisPosition; import art.arcane.volmlib.util.director.DirectorOrigin; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawPool.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawPool.java similarity index 90% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawPool.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawPool.java index 9953188c3..c67d522a0 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawPool.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawPool.java @@ -1,7 +1,6 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioGraphEditor; -import art.arcane.iris.util.common.director.DirectorExecutor; +import art.arcane.iris.studio.jigsaw.JigsawStudioGraphEditor; import art.arcane.volmlib.util.director.DirectorOrigin; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawPreview.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawPreview.java similarity index 85% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawPreview.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawPreview.java index 173d99e1a..ed4325c7c 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawPreview.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawPreview.java @@ -1,7 +1,6 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; -import art.arcane.iris.core.service.JigsawStudioService; -import art.arcane.iris.util.common.director.DirectorExecutor; +import art.arcane.iris.studio.jigsaw.JigsawStudioService; import art.arcane.volmlib.util.director.DirectorOrigin; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawRules.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawRules.java similarity index 91% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawRules.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawRules.java index d8aa173e2..78b02d328 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawRules.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawRules.java @@ -1,9 +1,8 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCompatibilityTarget; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioPoolEditor; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioStructureEditor; -import art.arcane.iris.util.common.director.DirectorExecutor; +import art.arcane.iris.studio.jigsaw.JigsawStudioCompatibilityTarget; +import art.arcane.iris.studio.jigsaw.JigsawStudioPoolEditor; +import art.arcane.iris.studio.jigsaw.JigsawStudioStructureEditor; import art.arcane.volmlib.util.director.DirectorOrigin; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawVariant.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawVariant.java similarity index 94% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawVariant.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawVariant.java index 1933cf389..64939ef51 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawVariant.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawVariant.java @@ -1,11 +1,10 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBay; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCellDimensions; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioPoolEditor; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioVariant; -import art.arcane.iris.core.service.JigsawStudioService; -import art.arcane.iris.util.common.director.DirectorExecutor; +import art.arcane.iris.studio.jigsaw.JigsawStudioBay; +import art.arcane.iris.studio.jigsaw.JigsawStudioCellDimensions; +import art.arcane.iris.studio.jigsaw.JigsawStudioPoolEditor; +import art.arcane.iris.studio.jigsaw.JigsawStudioVariant; +import art.arcane.iris.studio.jigsaw.JigsawStudioService; import art.arcane.volmlib.util.director.DirectorOrigin; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawWorkcell.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawWorkcell.java similarity index 91% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawWorkcell.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawWorkcell.java index 8c0b99b81..639827108 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawWorkcell.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawWorkcell.java @@ -1,9 +1,8 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBay; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCellDimensions; -import art.arcane.iris.core.service.JigsawStudioService; -import art.arcane.iris.util.common.director.DirectorExecutor; +import art.arcane.iris.studio.jigsaw.JigsawStudioBay; +import art.arcane.iris.studio.jigsaw.JigsawStudioCellDimensions; +import art.arcane.iris.studio.jigsaw.JigsawStudioService; import art.arcane.volmlib.util.director.DirectorOrigin; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandObject.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandObject.java similarity index 94% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandObject.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandObject.java index eb7686363..5bc470cb3 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandObject.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandObject.java @@ -16,49 +16,48 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; import art.arcane.iris.Iris; import art.arcane.iris.platform.bukkit.BukkitPlatform; -import art.arcane.iris.core.link.WorldEditLink; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.pack.PackDirectoryResolver; -import art.arcane.iris.core.runtime.ObjectStudioActivation; -import art.arcane.iris.core.runtime.StudioOpenCoordinator; -import art.arcane.iris.core.runtime.WorldRuntimeControlService; -import art.arcane.iris.core.service.ExternalDataSVC; -import art.arcane.iris.core.service.ObjectSVC; -import art.arcane.iris.core.service.StudioSVC; -import art.arcane.iris.core.service.WandSVC; -import art.arcane.iris.core.tools.IrisConverter; -import art.arcane.iris.core.tools.TreePlausibilizeBatch; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IObjectPlacer; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisObjectPlacement; -import art.arcane.iris.engine.object.IrisObjectPlacementScaleInterpolator; -import art.arcane.iris.engine.object.IrisObjectRotation; -import art.arcane.iris.engine.object.IrisObjectScale; -import art.arcane.iris.engine.object.TileData; +import art.arcane.iris.integration.WorldEditLink; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.PackDirectoryResolver; +import art.arcane.iris.studio.object.ObjectStudioActivation; +import art.arcane.iris.studio.object.StudioOpenCoordinator; +import art.arcane.iris.world.runtime.WorldRuntimeControlService; +import art.arcane.iris.integration.ExternalDataSVC; +import art.arcane.iris.studio.object.ObjectSVC; +import art.arcane.iris.studio.StudioSVC; +import art.arcane.iris.studio.wand.WandSVC; +import art.arcane.iris.pack.IrisConverter; +import art.arcane.iris.studio.tree.TreePlausibilizeBatch; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.object.IObjectPlacer; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.structure.object.IrisObjectPlacementScaleInterpolator; +import art.arcane.iris.structure.object.IrisObjectRotation; +import art.arcane.iris.structure.object.IrisObjectScale; +import art.arcane.iris.generation.block.TileData; import art.arcane.iris.platform.bukkit.BukkitBlockState; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.volmlib.util.data.Cuboid; -import art.arcane.iris.util.common.data.IrisCustomData; -import art.arcane.iris.util.common.director.DirectorExecutor; -import art.arcane.iris.util.common.director.specialhandlers.NullableDimensionHandler; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.generation.block.IrisCustomData; +import art.arcane.iris.command.specialhandlers.NullableDimensionHandler; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.director.DirectorOrigin; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; -import art.arcane.iris.util.common.director.specialhandlers.ObjectHandler; -import art.arcane.iris.util.common.director.specialhandlers.ObjectScaleHandler; -import art.arcane.iris.util.common.director.specialhandlers.ObjectTargetHandler; -import art.arcane.iris.util.common.format.C; -import art.arcane.iris.util.common.math.Direction; +import art.arcane.iris.command.specialhandlers.ObjectHandler; +import art.arcane.iris.command.specialhandlers.ObjectScaleHandler; +import art.arcane.iris.command.specialhandlers.ObjectTargetHandler; +import art.arcane.iris.localization.C; +import art.arcane.volmlib.util.math.DirectionBasis; import art.arcane.volmlib.util.math.RNG; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -87,11 +86,11 @@ import java.util.Map; import java.util.Set; import java.util.TreeSet; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.BukkitCommandMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.BukkitCommandMessages; import art.arcane.volmlib.util.localization.MessageArgument; -import art.arcane.iris.core.localization.BukkitCommandMessagesExtended; -import art.arcane.iris.core.localization.RuntimeUiMessages; +import art.arcane.iris.localization.BukkitCommandMessagesExtended; +import art.arcane.iris.localization.RuntimeUiMessages; @Director(name = "object", aliases = "o", origin = DirectorOrigin.PLAYER, description = "Iris object manipulation", descriptionKey = "iris.director.commandobject.director.iris_object_manipulation") public class CommandObject implements DirectorExecutor { static final Set PASTE_TRANSPARENT_BLOCKS = Set.of( @@ -484,9 +483,9 @@ public class CommandObject implements DirectorExecutor { Location a1 = b[0].clone(); Location a2 = b[1].clone(); Cuboid cursor = new Cuboid(a1, a2); - Direction d = Direction.closest(player.getLocation().getDirection()).reverse(); + DirectionBasis d = DirectionBasis.closest(player.getLocation().getDirection()).reverse(); assert d != null; - cursor = cursor.expand(d.f(), -amount); + cursor = cursor.expand(d.getCuboidDirection(), -amount); b[0] = cursor.getLowerNE(); b[1] = cursor.getUpperSW(); player.getInventory().setItemInMainHand(WandSVC.createWand(b[0], b[1])); @@ -710,7 +709,7 @@ public class CommandObject implements DirectorExecutor { } Location a1 = b[0].clone(); Location a2 = b[1].clone(); - Direction d = Direction.closest(player.getLocation().getDirection()).reverse(); + DirectionBasis d = DirectionBasis.closest(player.getLocation().getDirection()).reverse(); if (d == null) { return; // HOW DID THIS HAPPEN } diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandPack.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandPack.java similarity index 96% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandPack.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandPack.java index 3eb1348c0..839ad8bf4 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandPack.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandPack.java @@ -16,21 +16,20 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; import art.arcane.iris.Iris; -import art.arcane.iris.core.compat.PackCompatReport; -import art.arcane.iris.core.pack.PackDirectoryResolver; -import art.arcane.iris.core.pack.PackResourceCleanup; -import art.arcane.iris.core.pack.PackValidationCache; -import art.arcane.iris.core.pack.PackValidationRegistry; -import art.arcane.iris.core.pack.PackValidationResult; -import art.arcane.iris.core.pack.PackValidator; -import art.arcane.iris.core.service.StudioSVC; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.util.common.director.DirectorExecutor; -import art.arcane.iris.util.common.director.handlers.DimensionHandler; -import art.arcane.iris.util.common.plugin.VolmitSender; +import art.arcane.iris.pack.validation.PackCompatReport; +import art.arcane.iris.pack.PackDirectoryResolver; +import art.arcane.iris.pack.PackResourceCleanup; +import art.arcane.iris.pack.PackValidationCache; +import art.arcane.iris.pack.PackValidationRegistry; +import art.arcane.iris.pack.PackValidationResult; +import art.arcane.iris.pack.PackValidator; +import art.arcane.iris.studio.StudioSVC; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.command.handlers.DimensionHandler; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; import art.arcane.volmlib.util.localization.TextKey; @@ -43,10 +42,10 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.BukkitCommandMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.BukkitCommandMessages; import art.arcane.volmlib.util.localization.MessageArgument; -import art.arcane.iris.core.localization.BukkitRuntimeMessages; +import art.arcane.iris.localization.BukkitRuntimeMessages; @Director(name = "pack", aliases = {"pk"}, description = "Pack validation and maintenance", descriptionKey = "iris.director.commandpack.director.pack_validation_maintenance") public class CommandPack implements DirectorExecutor { /** diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandPregen.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandPregen.java similarity index 93% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandPregen.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandPregen.java index 3f89ea16a..a94a26f5b 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandPregen.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandPregen.java @@ -16,25 +16,24 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; -import art.arcane.iris.core.localization.IrisMessages; +import art.arcane.iris.localization.IrisMessages; import art.arcane.iris.Iris; -import art.arcane.iris.core.gui.PregeneratorJob; -import art.arcane.iris.core.pregenerator.PregenTask; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.util.common.director.DirectorExecutor; +import art.arcane.iris.studio.view.PregeneratorJob; +import art.arcane.iris.world.pregen.PregenTask; +import art.arcane.iris.world.IrisToolbelt; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; -import art.arcane.iris.util.common.format.C; +import art.arcane.iris.localization.C; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.math.Position2; import org.bukkit.World; import org.bukkit.util.Vector; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.BukkitCommandMessagesExtended; -import art.arcane.iris.core.localization.RuntimeUiMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.BukkitCommandMessagesExtended; +import art.arcane.iris.localization.RuntimeUiMessages; import art.arcane.volmlib.util.localization.MessageArgument; @Director(name = "pregen", aliases = "pregenerate", description = "Pregenerate your Iris worlds!", descriptionKey = "iris.director.commandpregen.director.pregenerate_your_iris_worlds") public class CommandPregen implements DirectorExecutor { diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/CommandSVC.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandSVC.java similarity index 94% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/CommandSVC.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandSVC.java index 00e06b2e1..bc27424c8 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/CommandSVC.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandSVC.java @@ -16,19 +16,15 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.service; +package art.arcane.iris.command; import art.arcane.iris.Iris; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.commands.CommandIris; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.util.common.director.DirectorContext; -import art.arcane.iris.util.common.director.DirectorContextHandler; -import art.arcane.iris.util.common.director.DirectorSystem; -import art.arcane.iris.util.common.format.C; -import art.arcane.iris.util.common.plugin.IrisService; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.localization.C; +import art.arcane.iris.platform.bukkit.plugin.IrisService; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.director.DirectorEngineOptions; import art.arcane.volmlib.util.director.compat.DirectorEngineFactory; import art.arcane.volmlib.util.director.context.DirectorContextRegistry; @@ -61,8 +57,8 @@ import java.util.List; import java.util.Map; import java.util.Optional; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.IrisMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.IrisMessages; import art.arcane.volmlib.util.localization.MessageArgument; import art.arcane.volmlib.util.localization.LanguageAudience; import art.arcane.volmlib.util.plugin.ComponentMessenger; @@ -225,7 +221,7 @@ public class CommandSVC implements IrisService, CommandExecutor, TabCompleter, D private void registerPaperCommand() { try { Class registrarType = Class.forName( - "art.arcane.iris.core.commands.PaperCommandRegistrar", + "art.arcane.iris.command.PaperCommandRegistrar", true, getClass().getClassLoader() ); diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandStructure.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandStructure.java similarity index 93% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandStructure.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandStructure.java index 36203662f..351e41702 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandStructure.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandStructure.java @@ -16,40 +16,39 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; import art.arcane.iris.Iris; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.structure.BulkStructureImporter; -import art.arcane.iris.core.structure.StructureCaptureImporter; -import art.arcane.iris.core.structure.StructureImporter; -import art.arcane.iris.core.structure.StructureIndexService; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.IrisStructureLocator; -import art.arcane.iris.engine.framework.NativeStructureGenerationPolicy; -import art.arcane.iris.engine.framework.PlacedStructurePiece; -import art.arcane.iris.engine.framework.StructureAssembler; -import art.arcane.iris.engine.framework.StructureReachability; -import art.arcane.iris.engine.framework.structure.StructureAssemblyResult; -import art.arcane.iris.engine.object.IObjectPlacer; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisNativeStructureDecision; -import art.arcane.iris.engine.object.IrisObjectPlacement; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.IrisStructure; -import art.arcane.iris.engine.object.NativeStructureGenerationStatus; -import art.arcane.iris.engine.object.ObjectPlaceMode; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.structure.BulkStructureImporter; +import art.arcane.iris.structure.StructureCaptureImporter; +import art.arcane.iris.structure.StructureImporter; +import art.arcane.iris.structure.StructureIndexService; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.placement.IrisStructureLocator; +import art.arcane.iris.structure.nativegen.NativeStructureGenerationPolicy; +import art.arcane.iris.structure.placement.PlacedStructurePiece; +import art.arcane.iris.structure.placement.StructureAssembler; +import art.arcane.iris.structure.placement.StructureReachability; +import art.arcane.iris.structure.graph.StructureAssemblyResult; +import art.arcane.iris.structure.object.IObjectPlacer; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.structure.nativegen.IrisNativeStructureDecision; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.structure.placement.IrisStructure; +import art.arcane.iris.structure.nativegen.NativeStructureGenerationStatus; +import art.arcane.iris.structure.object.ObjectPlaceMode; import art.arcane.volmlib.util.collection.KList; -import art.arcane.iris.util.common.director.DirectorExecutor; -import art.arcane.iris.util.common.format.C; +import art.arcane.iris.localization.C; import art.arcane.volmlib.util.director.DirectorOrigin; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; -import art.arcane.iris.util.common.plugin.VolmitSender; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.NamespacedKey; @@ -67,10 +66,10 @@ import java.util.Locale; import java.util.Map; import java.util.Set; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.BukkitCommandMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.BukkitCommandMessages; import art.arcane.volmlib.util.localization.MessageArgument; -import art.arcane.iris.core.localization.BukkitCommandMessagesExtended; +import art.arcane.iris.localization.BukkitCommandMessagesExtended; @Director(name = "structure", aliases = {"struct", "str"}, description = "Iris structure tools (index, import, info)", descriptionKey = "iris.director.commandstructure.director.iris_structure_tools_index_import_info") public class CommandStructure implements DirectorExecutor { @Director(description = "Regenerate structure-index.json listing all vanilla, datapack & iris structures", descriptionKey = "iris.director.commandstructure.director.regenerate_structure_index_json_listing_all_vanilla_datapack_iris_structures", aliases = {"ls"}, origin = DirectorOrigin.BOTH) diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandStudio.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandStudio.java similarity index 94% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandStudio.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandStudio.java index 5d51e271e..c21870474 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandStudio.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandStudio.java @@ -16,63 +16,62 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; import art.arcane.iris.Iris; import art.arcane.iris.platform.bukkit.BukkitPlatform; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.gui.ImageMapStudioGUI; -import art.arcane.iris.core.gui.NoiseExplorerGUI; -import art.arcane.iris.core.gui.VisionGUI; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.project.IrisProject; -import art.arcane.iris.core.project.IrisCodeWorkspace; -import art.arcane.iris.core.localization.RuntimeUiMessages; -import art.arcane.iris.core.service.BoardSVC; -import art.arcane.iris.core.service.StudioSVC; -import art.arcane.iris.core.structure.BulkStructureImporter; -import art.arcane.iris.core.structure.FeatureImporter; -import art.arcane.iris.core.structure.StructureImporter; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.InventorySlotType; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBiomePaletteLayer; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisEntity; -import art.arcane.iris.engine.object.IrisGenerator; -import art.arcane.iris.engine.object.IrisInterpolator; -import art.arcane.iris.engine.object.IrisLootTable; -import art.arcane.iris.engine.object.IrisNoiseGenerator; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisObjectPlacement; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.NoiseStyle; -import art.arcane.iris.engine.platform.EngineBukkitOps; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.studio.view.ImageMapStudioGUI; +import art.arcane.iris.studio.view.NoiseExplorerGUI; +import art.arcane.iris.studio.view.VisionGUI; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.studio.workspace.IrisProject; +import art.arcane.iris.studio.workspace.IrisCodeWorkspace; +import art.arcane.iris.localization.RuntimeUiMessages; +import art.arcane.iris.platform.bukkit.BoardSVC; +import art.arcane.iris.studio.StudioSVC; +import art.arcane.iris.structure.BulkStructureImporter; +import art.arcane.iris.structure.FeatureImporter; +import art.arcane.iris.structure.StructureImporter; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.world.loot.InventorySlotType; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiomePaletteLayer; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.world.entity.IrisEntity; +import art.arcane.iris.generation.noise.IrisGenerator; +import art.arcane.iris.generation.noise.IrisInterpolator; +import art.arcane.iris.world.loot.IrisLootTable; +import art.arcane.iris.generation.noise.IrisNoiseGenerator; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.generation.noise.NoiseStyle; +import art.arcane.iris.platform.generation.EngineBukkitOps; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KSet; -import art.arcane.iris.util.common.director.DirectorExecutor; -import art.arcane.iris.util.common.director.handlers.DimensionHandler; -import art.arcane.iris.util.common.director.specialhandlers.NullableDimensionHandler; +import art.arcane.iris.command.handlers.DimensionHandler; +import art.arcane.iris.command.specialhandlers.NullableDimensionHandler; import art.arcane.volmlib.util.director.DirectorOrigin; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; -import art.arcane.iris.util.common.format.C; +import art.arcane.iris.localization.C; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.function.NoiseProvider; -import art.arcane.iris.util.project.interpolation.InterpolationMethod; +import art.arcane.volmlib.util.interpolation.InterpolationMethod; import art.arcane.volmlib.util.io.IO; import art.arcane.volmlib.util.json.JSONArray; import art.arcane.volmlib.util.json.JSONObject; import art.arcane.volmlib.util.math.M; import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.math.Spiraler; -import art.arcane.iris.util.project.noise.CNG; -import art.arcane.iris.util.common.parallel.MultiBurst; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.volmlib.util.noise.CNG; +import art.arcane.iris.generation.concurrent.MultiBurst; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.scheduling.O; import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import org.bukkit.Bukkit; @@ -101,10 +100,10 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.BukkitCommandMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.BukkitCommandMessages; import art.arcane.volmlib.util.localization.MessageArgument; -import art.arcane.iris.core.localization.BukkitCommandMessagesExtended; +import art.arcane.iris.localization.BukkitCommandMessagesExtended; @Director(name = "studio", aliases = {"std", "s"}, description = "Studio Commands", descriptionKey = "iris.director.commandstudio.director.studio_commands") public class CommandStudio implements DirectorExecutor { private static final long CHUNK_SCAN_TIMEOUT_MS = 3_000; @@ -862,7 +861,7 @@ public class CommandStudio implements DirectorExecutor { } File ff = g.getData().getObjectLoader().findFile(i); - art.arcane.iris.util.common.math.IrisBlockVector sz = IrisObject.sampleSize(ff); + art.arcane.iris.generation.geometry.IrisBlockVector sz = IrisObject.sampleSize(ff); nn3 = i + ": size=[" + sz.getBlockX() + "," + sz.getBlockY() + "," + sz.getBlockZ() + "] location=[" + ff.getPath() + "]"; stop.add(i); } catch (Throwable e) { diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandWhat.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandWhat.java similarity index 93% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandWhat.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandWhat.java index b7d784a91..1c1b194a1 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandWhat.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandWhat.java @@ -16,30 +16,29 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; import art.arcane.iris.platform.bukkit.BukkitBlockResolution; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.Iris; -import art.arcane.iris.core.edit.BlockSignal; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.GenerationSessionException; -import art.arcane.iris.engine.framework.GenerationSessionLease; -import art.arcane.iris.engine.platform.EngineBukkitOps; -import art.arcane.iris.util.project.context.IrisContext; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.history.SavedBiomeUnavailableException; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.util.common.director.DirectorExecutor; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.studio.edit.BlockSignal; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.GenerationSessionException; +import art.arcane.iris.generation.runtime.GenerationSessionLease; +import art.arcane.iris.platform.generation.EngineBukkitOps; +import art.arcane.iris.generation.context.IrisContext; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.world.history.SavedBiomeUnavailableException; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.director.DirectorOrigin; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; -import art.arcane.iris.util.common.format.C; +import art.arcane.iris.localization.C; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.matter.MatterMarker; import org.bukkit.Chunk; @@ -54,9 +53,9 @@ import org.bukkit.entity.Player; import java.lang.reflect.Method; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.BukkitCommandMessagesExtended; -import art.arcane.iris.core.localization.RuntimeUiMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.BukkitCommandMessagesExtended; +import art.arcane.iris.localization.RuntimeUiMessages; import art.arcane.volmlib.util.localization.MessageArgument; @Director(name = "what", origin = DirectorOrigin.PLAYER, description = "Iris What?", descriptionKey = "iris.director.commandwhat.director.iris_what") public class CommandWhat implements DirectorExecutor { diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/ObjectPasteBounds.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/ObjectPasteBounds.java similarity index 91% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/ObjectPasteBounds.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/ObjectPasteBounds.java index b03e75cdf..cdf489df2 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/ObjectPasteBounds.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/ObjectPasteBounds.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisObjectRotation; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectRotation; +import art.arcane.iris.generation.geometry.IrisBlockVector; import java.util.Objects; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/PaperCommandRegistrar.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/PaperCommandRegistrar.java similarity index 94% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/PaperCommandRegistrar.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/PaperCommandRegistrar.java index a08e7ed1b..0180997bb 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/PaperCommandRegistrar.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/PaperCommandRegistrar.java @@ -1,7 +1,6 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; import art.arcane.iris.Iris; -import art.arcane.iris.core.service.CommandSVC; import io.papermc.paper.command.brigadier.BasicCommand; import io.papermc.paper.command.brigadier.CommandSourceStack; import io.papermc.paper.plugin.lifecycle.event.types.LifecycleEvents; @@ -11,7 +10,7 @@ import java.util.Collection; import java.util.List; /** - * Paper-only command registration. Lives outside {@code art.arcane.iris.core.service} on purpose: + * Paper-only command registration. Lives outside {@code art.arcane.iris.generation.runtime} on purpose: * that package is eagerly Class.forName-scanned by JarScanner during enable, and resolving this * class on plain Spigot throws NoClassDefFoundError for the Paper lifecycle types. CommandSVC * loads it reflectively only when the Bukkit plugin.yml command is unavailable (Paper path). diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/IrisEngineSVC.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/generation/runtime/IrisEngineSVC.java similarity index 96% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/IrisEngineSVC.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/generation/runtime/IrisEngineSVC.java index f33697204..e0815a177 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/IrisEngineSVC.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/generation/runtime/IrisEngineSVC.java @@ -1,24 +1,21 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.gui.PregeneratorJob; -import art.arcane.iris.core.lifecycle.WorldUnloadBoundaryRegistry; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.core.pregenerator.MantleHeapPressure; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineTelemetrySnapshot; -import art.arcane.iris.engine.framework.MeteredCache; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.studio.view.PregeneratorJob; +import art.arcane.iris.world.lifecycle.WorldUnloadBoundaryRegistry; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.world.pregen.MantleHeapPressure; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.util.common.format.C; -import art.arcane.iris.util.common.plugin.IrisService; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; -import art.arcane.iris.util.project.stream.utility.CachedDoubleStream2D; -import art.arcane.iris.util.project.stream.utility.CachedStream2D; -import art.arcane.iris.util.project.stream.utility.CachedStream3D; +import art.arcane.iris.localization.C; +import art.arcane.iris.platform.bukkit.plugin.IrisService; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; +import art.arcane.iris.generation.stream.CachedDoubleStream2D; +import art.arcane.iris.generation.stream.CachedStream2D; +import art.arcane.iris.generation.stream.CachedStream3D; import art.arcane.volmlib.util.bukkit.WorldIdentity; import art.arcane.volmlib.util.format.Form; import org.bukkit.Bukkit; @@ -153,7 +150,7 @@ public final class IrisEngineSVC implements IrisService { metrics.get())); } - IrisTelemetrySnapshot telemetrySnapshot() { + public IrisTelemetrySnapshot telemetrySnapshot() { return telemetry.get(); } diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/IrisEngineStatus.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/generation/runtime/IrisEngineStatus.java similarity index 91% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/IrisEngineStatus.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/generation/runtime/IrisEngineStatus.java index 646c61e61..9c7d9a905 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/IrisEngineStatus.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/generation/runtime/IrisEngineStatus.java @@ -1,19 +1,18 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.engine.framework.MeteredCache; +import art.arcane.iris.pack.loading.ResourceLoader; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.project.stream.utility.CachedDoubleStream2D; -import art.arcane.iris.util.project.stream.utility.CachedStream2D; -import art.arcane.iris.util.project.stream.utility.CachedStream3D; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.generation.stream.CachedDoubleStream2D; +import art.arcane.iris.generation.stream.CachedStream2D; +import art.arcane.iris.generation.stream.CachedStream3D; import art.arcane.volmlib.util.format.Form; import java.util.List; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.BukkitCommandMessages; -import art.arcane.iris.core.localization.RuntimeUiMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.BukkitCommandMessages; +import art.arcane.iris.localization.RuntimeUiMessages; import art.arcane.volmlib.util.localization.MessageArgument; final class IrisEngineStatus { private IrisEngineStatus() { diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/IrisTelemetrySnapshot.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/generation/runtime/IrisTelemetrySnapshot.java similarity index 85% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/IrisTelemetrySnapshot.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/generation/runtime/IrisTelemetrySnapshot.java index 25cfea29b..b6cc78da1 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/IrisTelemetrySnapshot.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/generation/runtime/IrisTelemetrySnapshot.java @@ -1,10 +1,9 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.framework.EngineTelemetrySnapshot; import java.util.List; -record IrisTelemetrySnapshot( +public record IrisTelemetrySnapshot( long sampledAtMs, List worlds, EngineTelemetrySnapshot.Aggregate aggregate, @@ -17,7 +16,7 @@ record IrisTelemetrySnapshot( CacheSnapshot caches, PregenSnapshot pregenerator ) { - static final IrisTelemetrySnapshot EMPTY = new IrisTelemetrySnapshot( + public static final IrisTelemetrySnapshot EMPTY = new IrisTelemetrySnapshot( 0L, List.of(), EngineTelemetrySnapshot.aggregate(List.of()), @@ -31,7 +30,7 @@ record IrisTelemetrySnapshot( PregenSnapshot.INACTIVE ); - IrisTelemetrySnapshot { + public IrisTelemetrySnapshot { worlds = worlds == null ? List.of() : List.copyOf(worlds); aggregate = aggregate == null ? EngineTelemetrySnapshot.aggregate(worlds) : aggregate; maintenanceActiveTasks = Math.max(0, maintenanceActiveTasks); @@ -48,14 +47,14 @@ record IrisTelemetrySnapshot( return Double.isFinite(value) ? Math.max(0D, Math.min(1D, value)) : 0D; } - record CacheSnapshot( + public record CacheSnapshot( CacheBucket total, CacheBucket resource, CacheBucket stream2d, CacheBucket stream3d, CacheBucket other ) { - static final CacheSnapshot EMPTY = new CacheSnapshot( + public static final CacheSnapshot EMPTY = new CacheSnapshot( CacheBucket.EMPTY, CacheBucket.EMPTY, CacheBucket.EMPTY, @@ -63,7 +62,7 @@ record IrisTelemetrySnapshot( CacheBucket.EMPTY ); - CacheSnapshot { + public CacheSnapshot { total = total == null ? CacheBucket.EMPTY : total; resource = resource == null ? CacheBucket.EMPTY : resource; stream2d = stream2d == null ? CacheBucket.EMPTY : stream2d; @@ -72,16 +71,16 @@ record IrisTelemetrySnapshot( } } - record CacheBucket(int count, long entries, long capacity) { - static final CacheBucket EMPTY = new CacheBucket(0, 0L, 0L); + public record CacheBucket(int count, long entries, long capacity) { + public static final CacheBucket EMPTY = new CacheBucket(0, 0L, 0L); - CacheBucket { + public CacheBucket { count = Math.max(0, count); entries = Math.max(0L, entries); capacity = Math.max(0L, capacity); } - double usage() { + public double usage() { return capacity <= 0L ? 0D : Math.min(1D, entries / (double) capacity); } @@ -93,7 +92,7 @@ record IrisTelemetrySnapshot( } } - record PregenSnapshot( + public record PregenSnapshot( boolean active, String worldIdentity, String worldName, @@ -107,7 +106,7 @@ record IrisTelemetrySnapshot( long elapsedMs, long failed ) { - static final PregenSnapshot INACTIVE = new PregenSnapshot( + public static final PregenSnapshot INACTIVE = new PregenSnapshot( false, "", "", @@ -122,7 +121,7 @@ record IrisTelemetrySnapshot( 0L ); - PregenSnapshot { + public PregenSnapshot { worldIdentity = worldIdentity == null ? "" : worldIdentity.trim(); worldName = worldName == null ? "" : worldName.trim(); progressPercent = Double.isFinite(progressPercent) diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/IrisWorldPhaseLedger.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/generation/runtime/IrisWorldPhaseLedger.java similarity index 92% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/IrisWorldPhaseLedger.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/generation/runtime/IrisWorldPhaseLedger.java index 76a2d3849..72a924a92 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/IrisWorldPhaseLedger.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/generation/runtime/IrisWorldPhaseLedger.java @@ -1,4 +1,6 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.generation.runtime; + +import art.arcane.iris.platform.bukkit.api.IrisApiEventSVC; import art.arcane.iris.api.world.IrisWorldPhase; import org.bukkit.World; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/IrisIntegrationService.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/integration/IrisIntegrationService.java similarity index 98% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/IrisIntegrationService.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/integration/IrisIntegrationService.java index c8804e983..aabbeb53c 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/IrisIntegrationService.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/integration/IrisIntegrationService.java @@ -1,9 +1,12 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.integration; + +import art.arcane.iris.generation.runtime.IrisEngineSVC; +import art.arcane.iris.generation.runtime.IrisTelemetrySnapshot; import art.arcane.iris.Iris; -import art.arcane.iris.engine.framework.EngineTelemetrySnapshot; +import art.arcane.iris.generation.runtime.EngineTelemetrySnapshot; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.util.common.plugin.IrisService; +import art.arcane.iris.platform.bukkit.plugin.IrisService; import art.arcane.volmlib.integration.IntegrationHandshakeRequest; import art.arcane.volmlib.integration.IntegrationHandshakeResponse; import art.arcane.volmlib.integration.IntegrationHeartbeat; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/link/IrisPapiExpansion.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/integration/IrisPapiExpansion.java similarity index 98% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/link/IrisPapiExpansion.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/integration/IrisPapiExpansion.java index fb3b0c377..18ba1bf12 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/link/IrisPapiExpansion.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/integration/IrisPapiExpansion.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.link; +package art.arcane.iris.integration; import art.arcane.volmlib.util.bukkit.papi.PlaceholderKeyRegistry; import art.arcane.volmlib.util.bukkit.papi.VolmitPlaceholderExpansion; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/link/IrisPapiInstaller.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/integration/IrisPapiInstaller.java similarity index 91% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/link/IrisPapiInstaller.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/integration/IrisPapiInstaller.java index 5341c02b2..4357da765 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/link/IrisPapiInstaller.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/integration/IrisPapiInstaller.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.link; +package art.arcane.iris.integration; import art.arcane.volmlib.util.bukkit.papi.PlaceholderRegistration; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/link/IrisPapiListener.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/integration/IrisPapiListener.java similarity index 99% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/link/IrisPapiListener.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/integration/IrisPapiListener.java index 3256659a3..724df1428 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/link/IrisPapiListener.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/integration/IrisPapiListener.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.link; +package art.arcane.iris.integration; import art.arcane.iris.api.pregen.IrisPregenerationEvent; import org.bukkit.Location; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/link/IrisPapiPosition.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/integration/IrisPapiPosition.java similarity index 88% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/link/IrisPapiPosition.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/integration/IrisPapiPosition.java index b6df177dd..36aa529c9 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/link/IrisPapiPosition.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/integration/IrisPapiPosition.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.link; +package art.arcane.iris.integration; import org.bukkit.World; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/link/IrisPapiPregenView.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/integration/IrisPapiPregenView.java similarity index 97% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/link/IrisPapiPregenView.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/integration/IrisPapiPregenView.java index 2358daa68..e7482d1de 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/link/IrisPapiPregenView.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/integration/IrisPapiPregenView.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.link; +package art.arcane.iris.integration; import art.arcane.iris.api.pregen.IrisPregenProgress; import art.arcane.volmlib.util.bukkit.papi.PlaceholderValues; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/link/IrisPapiState.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/integration/IrisPapiState.java similarity index 99% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/link/IrisPapiState.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/integration/IrisPapiState.java index 13c282bec..29c4d6c4a 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/link/IrisPapiState.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/integration/IrisPapiState.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.link; +package art.arcane.iris.integration; import art.arcane.iris.api.pregen.IrisPregenPhase; import art.arcane.iris.api.pregen.IrisPregenProgress; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/link/IrisPapiWorldView.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/integration/IrisPapiWorldView.java similarity index 97% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/link/IrisPapiWorldView.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/integration/IrisPapiWorldView.java index b5692f485..cba8dc410 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/link/IrisPapiWorldView.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/integration/IrisPapiWorldView.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.link; +package art.arcane.iris.integration; import art.arcane.volmlib.util.bukkit.papi.PlaceholderValues; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/DatapackStructureScopeSVC.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/pack/datapack/DatapackStructureScopeSVC.java similarity index 89% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/DatapackStructureScopeSVC.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/pack/datapack/DatapackStructureScopeSVC.java index 403fd01c2..3f1108cb8 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/DatapackStructureScopeSVC.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/pack/datapack/DatapackStructureScopeSVC.java @@ -1,16 +1,14 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.pack.datapack; -import art.arcane.iris.core.IrisStartupValidation; -import art.arcane.iris.core.datapack.DatapackIngestService; -import art.arcane.iris.core.datapack.DatapackStructureScopeIndex; -import art.arcane.iris.core.nms.DatapackStructureScopeResult; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.platform.BukkitChunkGenerator; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; -import art.arcane.iris.engine.object.IrisImportedStructureControl; +import art.arcane.iris.world.IrisStartupValidation; +import art.arcane.iris.platform.bukkit.nms.DatapackStructureScopeResult; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.platform.generation.BukkitChunkGenerator; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; +import art.arcane.iris.structure.nativegen.IrisImportedStructureControl; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.plugin.IrisService; +import art.arcane.iris.platform.bukkit.plugin.IrisService; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.event.EventHandler; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/IrisApiEventSVC.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/platform/bukkit/api/IrisApiEventSVC.java similarity index 91% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/IrisApiEventSVC.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/platform/bukkit/api/IrisApiEventSVC.java index b90df0706..1e0292db4 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/IrisApiEventSVC.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/platform/bukkit/api/IrisApiEventSVC.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.platform.bukkit.api; import art.arcane.iris.Iris; import art.arcane.iris.api.pregen.IrisPregenPhase; @@ -7,13 +7,13 @@ import art.arcane.iris.api.pregen.IrisPregenerationEvent; import art.arcane.iris.api.terrain.IrisWorldInfo; import art.arcane.iris.api.world.IrisWorldEngineEvent; import art.arcane.iris.api.world.IrisWorldPhase; -import art.arcane.iris.core.gui.PregeneratorJob; -import art.arcane.iris.core.pregenerator.PregenApiPhase; -import art.arcane.iris.core.pregenerator.PregenApiSink; -import art.arcane.iris.core.service.terrain.IrisWorldInfoFactory; +import art.arcane.iris.studio.view.PregeneratorJob; +import art.arcane.iris.world.pregen.PregenApiPhase; +import art.arcane.iris.world.pregen.PregenApiSink; +import art.arcane.iris.platform.bukkit.terrain.IrisWorldInfoFactory; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.util.common.plugin.IrisService; +import art.arcane.iris.platform.bukkit.plugin.IrisService; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.event.Event; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/IrisTerrainSVC.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/platform/bukkit/api/IrisTerrainSVC.java similarity index 94% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/IrisTerrainSVC.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/platform/bukkit/api/IrisTerrainSVC.java index 53e31ae33..368d575e0 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/IrisTerrainSVC.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/platform/bukkit/api/IrisTerrainSVC.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.platform.bukkit.api; import art.arcane.iris.api.terrain.IrisColumnField; import art.arcane.iris.api.terrain.IrisColumnQuery; @@ -8,23 +8,23 @@ import art.arcane.iris.api.terrain.IrisRiverState; import art.arcane.iris.api.terrain.IrisSurfaceKind; import art.arcane.iris.api.terrain.IrisTerrainService; import art.arcane.iris.api.terrain.IrisWorldInfo; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.service.terrain.IrisApiFaultGuard; -import art.arcane.iris.core.service.terrain.IrisColumnWalk; -import art.arcane.iris.core.service.terrain.IrisSampleLimits; -import art.arcane.iris.core.service.terrain.IrisSurfaceClassifier; -import art.arcane.iris.core.service.terrain.IrisWorldInfoFactory; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.HydrologyColumnSample; -import art.arcane.iris.engine.object.InferredType; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.platform.bukkit.terrain.IrisApiFaultGuard; +import art.arcane.iris.platform.bukkit.terrain.IrisColumnWalk; +import art.arcane.iris.platform.bukkit.terrain.IrisSampleLimits; +import art.arcane.iris.platform.bukkit.terrain.IrisSurfaceClassifier; +import art.arcane.iris.platform.bukkit.terrain.IrisWorldInfoFactory; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.HydrologyColumnSample; +import art.arcane.iris.generation.terrain.InferredType; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.util.common.plugin.IrisService; +import art.arcane.iris.platform.bukkit.plugin.IrisService; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.generator.ChunkGenerator; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/terrain/IrisApiFaultGuard.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/platform/bukkit/terrain/IrisApiFaultGuard.java similarity index 95% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/terrain/IrisApiFaultGuard.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/platform/bukkit/terrain/IrisApiFaultGuard.java index 9d1aa8950..54b051aa6 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/terrain/IrisApiFaultGuard.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/platform/bukkit/terrain/IrisApiFaultGuard.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.service.terrain; +package art.arcane.iris.platform.bukkit.terrain; import java.util.concurrent.atomic.AtomicLong; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/terrain/IrisColumnWalk.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/platform/bukkit/terrain/IrisColumnWalk.java similarity index 97% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/terrain/IrisColumnWalk.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/platform/bukkit/terrain/IrisColumnWalk.java index 8e110b85b..84aedcdd1 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/terrain/IrisColumnWalk.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/platform/bukkit/terrain/IrisColumnWalk.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.service.terrain; +package art.arcane.iris.platform.bukkit.terrain; import art.arcane.iris.api.terrain.IrisColumnQuery; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/terrain/IrisSampleLimits.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/platform/bukkit/terrain/IrisSampleLimits.java similarity index 93% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/terrain/IrisSampleLimits.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/platform/bukkit/terrain/IrisSampleLimits.java index 0409a77f3..fc2cd21e9 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/terrain/IrisSampleLimits.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/platform/bukkit/terrain/IrisSampleLimits.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.service.terrain; +package art.arcane.iris.platform.bukkit.terrain; import art.arcane.iris.api.terrain.IrisColumnQuery; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/terrain/IrisSurfaceClassifier.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/platform/bukkit/terrain/IrisSurfaceClassifier.java similarity index 87% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/terrain/IrisSurfaceClassifier.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/platform/bukkit/terrain/IrisSurfaceClassifier.java index c1896436e..9a2a40642 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/terrain/IrisSurfaceClassifier.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/platform/bukkit/terrain/IrisSurfaceClassifier.java @@ -1,9 +1,9 @@ -package art.arcane.iris.core.service.terrain; +package art.arcane.iris.platform.bukkit.terrain; import art.arcane.iris.api.terrain.IrisSurfaceKind; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.HydrologyColumnSample; -import art.arcane.iris.engine.object.InferredType; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.HydrologyColumnSample; +import art.arcane.iris.generation.terrain.InferredType; public final class IrisSurfaceClassifier { private IrisSurfaceClassifier() { diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/terrain/IrisWorldInfoFactory.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/platform/bukkit/terrain/IrisWorldInfoFactory.java similarity index 87% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/terrain/IrisWorldInfoFactory.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/platform/bukkit/terrain/IrisWorldInfoFactory.java index 3226a70ef..bf45677a5 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/terrain/IrisWorldInfoFactory.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/platform/bukkit/terrain/IrisWorldInfoFactory.java @@ -1,10 +1,10 @@ -package art.arcane.iris.core.service.terrain; +package art.arcane.iris.platform.bukkit.terrain; import art.arcane.iris.api.terrain.IrisWorldInfo; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisWorld; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.world.IrisWorld; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; import org.bukkit.World; import org.bukkit.generator.ChunkGenerator; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/IrisProtocolService.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/platform/protocol/IrisProtocolService.java similarity index 92% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/IrisProtocolService.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/platform/protocol/IrisProtocolService.java index 42f10b4b6..eb6616f9c 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/IrisProtocolService.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/platform/protocol/IrisProtocolService.java @@ -16,23 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.service; +package art.arcane.iris.platform.protocol; import art.arcane.iris.Iris; -import art.arcane.iris.core.protocol.EngineResolver; -import art.arcane.iris.core.protocol.IrisCursorRequestService; -import art.arcane.iris.core.protocol.IrisProtocolServer; -import art.arcane.iris.core.protocol.IrisServerTransport; -import art.arcane.iris.core.protocol.IrisSession; -import art.arcane.iris.core.protocol.IrisSessionRegistry; -import art.arcane.iris.core.protocol.IrisVisionRequestService; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.spi.protocol.IrisProtocol; -import art.arcane.iris.util.common.plugin.IrisService; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.platform.bukkit.plugin.IrisService; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.bukkit.WorldIdentity; import org.bukkit.Bukkit; import org.bukkit.World; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/edit/BlockEditor.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/studio/edit/BlockEditor.java similarity index 97% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/edit/BlockEditor.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/studio/edit/BlockEditor.java index fcd952048..ce23cb325 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/edit/BlockEditor.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/studio/edit/BlockEditor.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.edit; +package art.arcane.iris.studio.edit; import org.bukkit.block.Biome; import org.bukkit.block.data.BlockData; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/edit/BukkitBlockEditor.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/studio/edit/BukkitBlockEditor.java similarity index 98% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/edit/BukkitBlockEditor.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/studio/edit/BukkitBlockEditor.java index e0a7510a5..48bc9ba38 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/edit/BukkitBlockEditor.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/studio/edit/BukkitBlockEditor.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.edit; +package art.arcane.iris.studio.edit; import art.arcane.volmlib.util.math.M; import org.bukkit.World; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/EditSVC.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/studio/edit/EditSVC.java similarity index 91% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/EditSVC.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/studio/edit/EditSVC.java index a62037704..44d8af073 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/EditSVC.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/studio/edit/EditSVC.java @@ -16,16 +16,14 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.edit; import art.arcane.iris.Iris; -import art.arcane.iris.core.edit.BlockEditor; -import art.arcane.iris.core.edit.BukkitBlockEditor; -import art.arcane.iris.engine.framework.BlockEditAccess; +import art.arcane.iris.generation.runtime.BlockEditAccess; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.math.M; -import art.arcane.iris.util.common.plugin.IrisService; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.platform.bukkit.plugin.IrisService; +import art.arcane.iris.world.task.J; import org.bukkit.World; import org.bukkit.block.Biome; import org.bukkit.block.data.BlockData; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/gui/BukkitGuiHost.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/studio/view/BukkitGuiHost.java similarity index 91% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/gui/BukkitGuiHost.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/studio/view/BukkitGuiHost.java index e10599847..72c267439 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/gui/BukkitGuiHost.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/studio/view/BukkitGuiHost.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; import art.arcane.iris.Iris; -import art.arcane.iris.core.events.IrisEngineHotloadEvent; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.world.event.IrisEngineHotloadEvent; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.event.EventHandler; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/gui/BukkitVisionOverlay.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/studio/view/BukkitVisionOverlay.java similarity index 97% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/gui/BukkitVisionOverlay.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/studio/view/BukkitVisionOverlay.java index ff21f5bc4..4ea0a13fb 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/gui/BukkitVisionOverlay.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/studio/view/BukkitVisionOverlay.java @@ -16,16 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.render.RenderType; -import art.arcane.iris.engine.object.IrisWorld; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.studio.render.RenderType; +import art.arcane.iris.world.IrisWorld; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.platform.bukkit.BukkitWorldBinding; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.format.Form; import org.bukkit.Location; import org.bukkit.World; @@ -45,7 +45,7 @@ import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicReference; import java.util.function.Consumer; -import static art.arcane.iris.util.common.data.registry.Attributes.MAX_HEALTH; +import static art.arcane.iris.platform.bukkit.registry.Attributes.MAX_HEALTH; public final class BukkitVisionOverlay implements GuiOverlay { private final Engine engine; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/WandSVC.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/studio/wand/WandSVC.java similarity index 96% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/WandSVC.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/studio/wand/WandSVC.java index 676e1bce8..0dac77d05 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/WandSVC.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/studio/wand/WandSVC.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.wand; import org.bukkit.Bukkit; import org.bukkit.Chunk; @@ -27,23 +27,22 @@ import org.bukkit.Particle; import org.bukkit.Sound; import org.bukkit.World; import art.arcane.iris.Iris; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.RuntimeUiMessages; -import art.arcane.iris.core.edit.DustRevealer; -import art.arcane.iris.core.wand.WandSelection; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.util.project.matter.WorldMatter; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.RuntimeUiMessages; +import art.arcane.iris.studio.edit.DustRevealer; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.world.storage.matter.WorldMatter; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.bukkit.WorldIdentity; import art.arcane.volmlib.util.data.Cuboid; -import art.arcane.iris.util.common.format.C; +import art.arcane.iris.localization.C; import art.arcane.volmlib.util.math.M; import art.arcane.volmlib.util.matter.Matter; -import art.arcane.iris.util.common.plugin.IrisService; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.platform.bukkit.plugin.IrisService; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.scheduling.SR; -import art.arcane.iris.util.common.scheduling.jobs.Job; +import art.arcane.iris.world.task.jobs.Job; import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -68,8 +67,8 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CountDownLatch; import java.util.concurrent.atomic.AtomicBoolean; -import static art.arcane.iris.util.common.data.registry.Particles.CRIT_MAGIC; -import static art.arcane.iris.util.common.data.registry.Particles.REDSTONE; +import static art.arcane.iris.platform.bukkit.registry.Particles.CRIT_MAGIC; +import static art.arcane.iris.platform.bukkit.registry.Particles.REDSTONE; public class WandSVC implements IrisService { private static final int MS_PER_TICK = Integer.parseInt(System.getProperty("iris.ms_per_tick", "30")); diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/wand/WandSelection.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/studio/wand/WandSelection.java similarity index 98% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/wand/WandSelection.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/studio/wand/WandSelection.java index 57aab383b..d523bd321 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/wand/WandSelection.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/studio/wand/WandSelection.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.wand; +package art.arcane.iris.studio.wand; import art.arcane.volmlib.util.data.Cuboid; import art.arcane.volmlib.util.math.M; @@ -26,7 +26,7 @@ import org.bukkit.entity.Player; import java.awt.Color; -import static art.arcane.iris.util.common.data.registry.Particles.REDSTONE; +import static art.arcane.iris.platform.bukkit.registry.Particles.REDSTONE; public class WandSelection { private static final double STEP = 0.10; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/BukkitWorldReconciler.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/BukkitWorldReconciler.java similarity index 98% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/BukkitWorldReconciler.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/BukkitWorldReconciler.java index 0263af5b5..ec96babae 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/BukkitWorldReconciler.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/BukkitWorldReconciler.java @@ -16,17 +16,18 @@ * along with this program. If not, see . */ -package art.arcane.iris.core; +package art.arcane.iris.world; + +import art.arcane.iris.pack.datapack.ServerConfigurator; import art.arcane.iris.Iris; -import art.arcane.iris.core.lifecycle.BukkitWorldConfiguration; -import art.arcane.iris.core.lifecycle.LifecycleOperationCoordinator; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.world.lifecycle.BukkitWorldConfiguration; +import art.arcane.iris.world.lifecycle.LifecycleOperationCoordinator; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.iris.platform.bukkit.BukkitEnvironment; -import art.arcane.iris.util.common.format.C; -import art.arcane.iris.util.common.misc.ServerProperties; +import art.arcane.iris.localization.C; +import art.arcane.iris.platform.bootstrap.ServerProperties; import art.arcane.volmlib.util.bukkit.WorldIdentity; import org.bukkit.Bukkit; import org.bukkit.NamespacedKey; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/IrisFailClosedChunkGenerator.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/IrisFailClosedChunkGenerator.java similarity index 99% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/IrisFailClosedChunkGenerator.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/IrisFailClosedChunkGenerator.java index 937c29902..9309e4e60 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/IrisFailClosedChunkGenerator.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/IrisFailClosedChunkGenerator.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core; +package art.arcane.iris.world; import org.bukkit.HeightMap; import org.bukkit.Location; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/IrisStartupAdmissionListener.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/IrisStartupAdmissionListener.java similarity index 95% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/IrisStartupAdmissionListener.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/IrisStartupAdmissionListener.java index 3ec38ddf1..4d35efbe6 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/IrisStartupAdmissionListener.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/IrisStartupAdmissionListener.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/IrisWorldGeneratorResolver.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/IrisWorldGeneratorResolver.java similarity index 96% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/IrisWorldGeneratorResolver.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/IrisWorldGeneratorResolver.java index 205dfb725..992576779 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/IrisWorldGeneratorResolver.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/IrisWorldGeneratorResolver.java @@ -16,38 +16,40 @@ * along with this program. If not, see . */ -package art.arcane.iris.core; +package art.arcane.iris.world; + +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.pack.datapack.ServerConfigurator; import art.arcane.iris.Iris; -import art.arcane.iris.core.lifecycle.WorldLifecycleStaging; -import art.arcane.iris.core.compat.CompatRegistry; -import art.arcane.iris.core.lifecycle.WorldReplacementSeed; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.pack.BrokenPackException; -import art.arcane.iris.core.pack.PackDownloader; -import art.arcane.iris.core.pack.PackDirectoryResolver; -import art.arcane.iris.core.pack.PackValidationCache; -import art.arcane.iris.core.pack.PackValidationRegistry; -import art.arcane.iris.core.pack.PackValidationResult; -import art.arcane.iris.core.pack.PackValidator; -import art.arcane.iris.core.runtime.RuntimeInjection; -import art.arcane.iris.core.service.ExternalDataSVC; +import art.arcane.iris.world.lifecycle.WorldLifecycleStaging; +import art.arcane.iris.pack.validation.CompatRegistry; +import art.arcane.iris.world.lifecycle.WorldReplacementSeed; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.BrokenPackException; +import art.arcane.iris.pack.PackDownloader; +import art.arcane.iris.pack.PackDirectoryResolver; +import art.arcane.iris.pack.PackValidationCache; +import art.arcane.iris.pack.PackValidationRegistry; +import art.arcane.iris.pack.PackValidationResult; +import art.arcane.iris.pack.PackValidator; +import art.arcane.iris.world.runtime.RuntimeInjection; +import art.arcane.iris.integration.ExternalDataSVC; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.engine.framework.EngineTarget; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisWorld; -import art.arcane.iris.engine.history.GenerationEpoch; -import art.arcane.iris.engine.history.GenerationEpochContractFactory; -import art.arcane.iris.engine.history.GenerationHistory; -import art.arcane.iris.engine.history.GenerationHistoryPaths; -import art.arcane.iris.engine.history.GenerationPackFingerprint; -import art.arcane.iris.engine.history.GenerationRegistryContract; -import art.arcane.iris.engine.history.GenerationRegistryContractFactory; -import art.arcane.iris.engine.platform.BukkitChunkGenerator; -import art.arcane.iris.util.common.plugin.VolmitPlugin; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.generation.runtime.EngineTarget; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.world.history.GenerationEpoch; +import art.arcane.iris.world.history.GenerationEpochContractFactory; +import art.arcane.iris.world.history.GenerationHistory; +import art.arcane.iris.world.history.GenerationHistoryPaths; +import art.arcane.iris.world.history.GenerationPackFingerprint; +import art.arcane.iris.world.history.GenerationRegistryContract; +import art.arcane.iris.world.history.GenerationRegistryContractFactory; +import art.arcane.iris.platform.generation.BukkitChunkGenerator; +import art.arcane.iris.platform.bukkit.plugin.VolmitPlugin; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.bukkit.WorldIdentity; import lombok.NonNull; import org.bukkit.Bukkit; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/PaperWorldReplacementEntryListener.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/PaperWorldReplacementEntryListener.java similarity index 98% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/PaperWorldReplacementEntryListener.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/PaperWorldReplacementEntryListener.java index 8b25b8d70..d0177b0b8 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/PaperWorldReplacementEntryListener.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/PaperWorldReplacementEntryListener.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; import io.papermc.paper.event.player.AsyncPlayerSpawnLocationEvent; import net.kyori.adventure.text.Component; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/PendingWorldDeleteQueue.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/PendingWorldDeleteQueue.java similarity index 98% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/PendingWorldDeleteQueue.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/PendingWorldDeleteQueue.java index 8bab4dd8b..ffc8be6f1 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/PendingWorldDeleteQueue.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/PendingWorldDeleteQueue.java @@ -16,13 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.core; +package art.arcane.iris.world; import art.arcane.iris.Iris; -import art.arcane.iris.core.runtime.WorldDeletionQueue; -import art.arcane.iris.core.runtime.TransientWorldCleanupSupport; -import art.arcane.iris.core.tools.IrisCreator; -import art.arcane.iris.util.common.plugin.VolmitPlugin; +import art.arcane.iris.world.runtime.WorldDeletionQueue; +import art.arcane.iris.world.runtime.TransientWorldCleanupSupport; +import art.arcane.iris.platform.bukkit.plugin.VolmitPlugin; import art.arcane.volmlib.util.bukkit.WorldIdentity; import org.bukkit.Bukkit; import org.bukkit.NamespacedKey; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/PendingWorldReplacementManager.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/PendingWorldReplacementManager.java similarity index 96% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/PendingWorldReplacementManager.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/PendingWorldReplacementManager.java index e2074b758..55657aa49 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/PendingWorldReplacementManager.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/PendingWorldReplacementManager.java @@ -1,32 +1,33 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; + +import art.arcane.iris.pack.datapack.DatapackInstallResult; +import art.arcane.iris.pack.datapack.ServerConfigurator; import art.arcane.iris.Iris; -import art.arcane.iris.core.ExactWorldSlotPathPolicy.SlotKind; -import art.arcane.iris.core.lifecycle.BukkitWorldConfiguration; -import art.arcane.iris.core.lifecycle.BukkitWorldConfiguration.GeneratorReplacement; -import art.arcane.iris.core.lifecycle.BukkitWorldConfiguration.WorldGeneratorSnapshot; -import art.arcane.iris.core.lifecycle.LifecycleOperationCoordinator; -import art.arcane.iris.core.lifecycle.WorldReplacementBootstrap; -import art.arcane.iris.core.lifecycle.WorldReplacementBootstrapMarker; -import art.arcane.iris.core.lifecycle.WorldReplacementEntryGuard; -import art.arcane.iris.core.lifecycle.WorldReplacementFilesystem; -import art.arcane.iris.core.lifecycle.WorldReplacementFilesystem.ReplacementPaths; -import art.arcane.iris.core.lifecycle.WorldReplacementJournal; -import art.arcane.iris.core.lifecycle.WorldReplacementJournal.Phase; -import art.arcane.iris.core.lifecycle.WorldReplacementJournal.Transaction; -import art.arcane.iris.core.lifecycle.WorldReplacementSeed; -import art.arcane.iris.core.localization.RuntimeProgressMessages; -import art.arcane.iris.core.pack.PackValidationRegistry; -import art.arcane.iris.core.runtime.WorldRuntimeControlService; -import art.arcane.iris.core.service.StudioSVC; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisEnvironment; -import art.arcane.iris.engine.platform.BukkitChunkGenerator; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; -import art.arcane.iris.util.common.misc.ServerProperties; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.ExactWorldSlotPathPolicy.SlotKind; +import art.arcane.iris.world.lifecycle.BukkitWorldConfiguration; +import art.arcane.iris.world.lifecycle.BukkitWorldConfiguration.GeneratorReplacement; +import art.arcane.iris.world.lifecycle.BukkitWorldConfiguration.WorldGeneratorSnapshot; +import art.arcane.iris.world.lifecycle.LifecycleOperationCoordinator; +import art.arcane.iris.world.lifecycle.WorldReplacementBootstrap; +import art.arcane.iris.world.lifecycle.WorldReplacementBootstrapMarker; +import art.arcane.iris.world.lifecycle.WorldReplacementEntryGuard; +import art.arcane.iris.world.lifecycle.WorldReplacementFilesystem; +import art.arcane.iris.world.lifecycle.WorldReplacementFilesystem.ReplacementPaths; +import art.arcane.iris.world.lifecycle.WorldReplacementJournal; +import art.arcane.iris.world.lifecycle.WorldReplacementJournal.Phase; +import art.arcane.iris.world.lifecycle.WorldReplacementJournal.Transaction; +import art.arcane.iris.world.lifecycle.WorldReplacementSeed; +import art.arcane.iris.localization.RuntimeProgressMessages; +import art.arcane.iris.pack.PackValidationRegistry; +import art.arcane.iris.world.runtime.WorldRuntimeControlService; +import art.arcane.iris.studio.StudioSVC; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.platform.generation.BukkitChunkGenerator; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; +import art.arcane.iris.platform.bootstrap.ServerProperties; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.bukkit.WorldIdentity; import org.bukkit.Bukkit; import org.bukkit.Chunk; @@ -91,7 +92,7 @@ public final class PendingWorldReplacementManager implements Listener { } try { Class listenerType = Class.forName( - "art.arcane.iris.core.PaperWorldReplacementEntryListener", + "art.arcane.iris.world.PaperWorldReplacementEntryListener", true, loader ); diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/WorldReplacementProgress.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/WorldReplacementProgress.java similarity index 94% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/WorldReplacementProgress.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/WorldReplacementProgress.java index 3778ad89a..12ac358b7 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/WorldReplacementProgress.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/WorldReplacementProgress.java @@ -1,10 +1,10 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.RuntimeProgressMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.RuntimeProgressMessages; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.localization.LanguageAudience; import art.arcane.volmlib.util.localization.MessageArgs; import art.arcane.volmlib.util.localization.MessageKey; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/runtime/BukkitEnginePlatformHooks.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/runtime/BukkitEnginePlatformHooks.java similarity index 88% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/runtime/BukkitEnginePlatformHooks.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/runtime/BukkitEnginePlatformHooks.java index 8497801ea..28b058d78 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/runtime/BukkitEnginePlatformHooks.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/runtime/BukkitEnginePlatformHooks.java @@ -16,35 +16,35 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.runtime; +package art.arcane.iris.world.runtime; import art.arcane.iris.api.world.IrisWorldPhase; -import art.arcane.iris.core.ServerConfigurator; -import art.arcane.iris.core.datapack.DatapackIngestService; -import art.arcane.iris.core.events.IrisEngineHotloadEvent; -import art.arcane.iris.core.gui.PregeneratorJob; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.core.project.IrisProject; -import art.arcane.iris.core.project.IrisCodeWorkspace; -import art.arcane.iris.core.service.IrisApiEventSVC; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.core.tools.WorldMaintenance; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.history.SavedTerrainChunk; +import art.arcane.iris.pack.datapack.ServerConfigurator; +import art.arcane.iris.pack.datapack.DatapackIngestService; +import art.arcane.iris.world.event.IrisEngineHotloadEvent; +import art.arcane.iris.studio.view.PregeneratorJob; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.studio.workspace.IrisProject; +import art.arcane.iris.studio.workspace.IrisCodeWorkspace; +import art.arcane.iris.platform.bukkit.api.IrisApiEventSVC; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.world.WorldMaintenance; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.world.history.SavedTerrainChunk; import java.util.concurrent.CompletableFuture; -import art.arcane.iris.engine.framework.EngineMode; -import art.arcane.iris.engine.framework.EnginePlatformHooks; -import art.arcane.iris.engine.framework.NativeStructureVolume; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisDimensionRuntimeContract; -import art.arcane.iris.engine.object.IrisWorld; -import art.arcane.iris.engine.object.IrisWorldBoundary; +import art.arcane.iris.generation.runtime.EngineMode; +import art.arcane.iris.generation.runtime.EnginePlatformHooks; +import art.arcane.iris.structure.nativegen.NativeStructureVolume; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisDimensionRuntimeContract; +import art.arcane.iris.world.IrisWorld; +import art.arcane.iris.world.IrisWorldBoundary; import art.arcane.iris.platform.bukkit.BukkitWorldBinding; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.collection.KList; import org.bukkit.Bukkit; import org.bukkit.World; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/runtime/BukkitSavedTerrainCapture.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/runtime/BukkitSavedTerrainCapture.java similarity index 78% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/runtime/BukkitSavedTerrainCapture.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/runtime/BukkitSavedTerrainCapture.java index ba50810ca..4535a7f06 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/runtime/BukkitSavedTerrainCapture.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/runtime/BukkitSavedTerrainCapture.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.runtime; +package art.arcane.iris.world.runtime; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.history.SavedTerrainChunk; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.world.history.SavedTerrainChunk; import art.arcane.iris.platform.bukkit.BukkitWorldBinding; import org.bukkit.World; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/FellingRun.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/tree/FellingRun.java similarity index 86% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/FellingRun.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/tree/FellingRun.java index 088a40b64..895f3f0f6 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/FellingRun.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/tree/FellingRun.java @@ -1,9 +1,9 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.world.tree; import art.arcane.iris.api.tree.TreeFellerRunHooks; -import art.arcane.iris.core.service.TreeFellerModel.TreeCandidate; -import art.arcane.iris.core.service.TreeFellerModel.TreeClaim; -import art.arcane.iris.core.service.TreeFellerModel.TreeMember; +import art.arcane.iris.world.tree.TreeFellerModel.TreeCandidate; +import art.arcane.iris.world.tree.TreeFellerModel.TreeClaim; +import art.arcane.iris.world.tree.TreeFellerModel.TreeMember; import org.bukkit.Location; import org.bukkit.inventory.ItemStack; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/RoutedBlockBreakEvent.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/tree/RoutedBlockBreakEvent.java similarity index 86% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/RoutedBlockBreakEvent.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/tree/RoutedBlockBreakEvent.java index a5c39a796..b720092bd 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/RoutedBlockBreakEvent.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/tree/RoutedBlockBreakEvent.java @@ -1,6 +1,5 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.world.tree; -import art.arcane.iris.core.service.tree.BlockDropRouter; import org.bukkit.block.Block; import org.bukkit.entity.Player; import org.bukkit.event.block.BlockBreakEvent; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/TreeFellerModel.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/tree/TreeFellerModel.java similarity index 90% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/TreeFellerModel.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/tree/TreeFellerModel.java index 180c51b97..1a6aa9c20 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/TreeFellerModel.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/tree/TreeFellerModel.java @@ -1,10 +1,9 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.world.tree; import art.arcane.iris.api.tree.TreeFellerAccess; import art.arcane.iris.api.tree.TreeFellerRunHooks; -import art.arcane.iris.core.service.tree.TreeMarkerTraversal; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.TreeBlockMaterial; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.decoration.tree.TreeBlockMaterial; import org.bukkit.World; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/TreeFellerPresentation.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/tree/TreeFellerPresentation.java similarity index 99% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/TreeFellerPresentation.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/tree/TreeFellerPresentation.java index 9b64a287d..524c0e241 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/TreeFellerPresentation.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/tree/TreeFellerPresentation.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.world.tree; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Particle; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/TreeFellerSVC.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/tree/TreeFellerSVC.java similarity index 95% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/TreeFellerSVC.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/tree/TreeFellerSVC.java index 3d2eb0a8e..a04c123f5 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/TreeFellerSVC.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/tree/TreeFellerSVC.java @@ -1,21 +1,20 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.world.tree; import art.arcane.iris.api.tree.IrisTreeFellerService; import art.arcane.iris.api.tree.TreeFellerAccess; import art.arcane.iris.api.tree.TreeFellerOptions; import art.arcane.iris.api.tree.TreeFellerRunHooks; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.service.TreeFellerModel.PendingFell; -import art.arcane.iris.core.service.TreeFellerModel.ProvenanceSnapshot; -import art.arcane.iris.core.service.TreeFellerModel.TreeCandidate; -import art.arcane.iris.core.service.TreeFellerModel.TreeClaim; -import art.arcane.iris.core.service.tree.TreeDefinitionIndex; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.world.tree.TreeFellerModel.PendingFell; +import art.arcane.iris.world.tree.TreeFellerModel.ProvenanceSnapshot; +import art.arcane.iris.world.tree.TreeFellerModel.TreeCandidate; +import art.arcane.iris.world.tree.TreeFellerModel.TreeClaim; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.util.common.plugin.IrisService; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.platform.bukkit.plugin.IrisService; +import art.arcane.iris.world.task.J; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/TreeFellingRunner.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/tree/TreeFellingRunner.java similarity index 98% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/TreeFellingRunner.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/tree/TreeFellingRunner.java index a1360af20..5775321c2 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/TreeFellingRunner.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/tree/TreeFellingRunner.java @@ -1,13 +1,12 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.world.tree; -import art.arcane.iris.core.service.TreeFellerModel.ChunkPosition; -import art.arcane.iris.core.service.TreeFellerModel.DamageReservation; -import art.arcane.iris.core.service.TreeFellerModel.TreeContext; -import art.arcane.iris.core.service.TreeFellerModel.TreeMember; -import art.arcane.iris.core.service.tree.TreeMarkerTraversal; -import art.arcane.iris.engine.framework.TreeBlockMaterial; +import art.arcane.iris.world.tree.TreeFellerModel.ChunkPosition; +import art.arcane.iris.world.tree.TreeFellerModel.DamageReservation; +import art.arcane.iris.world.tree.TreeFellerModel.TreeContext; +import art.arcane.iris.world.tree.TreeFellerModel.TreeMember; +import art.arcane.iris.generation.decoration.tree.TreeBlockMaterial; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Location; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/TreeProvenance.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/tree/TreeProvenance.java similarity index 89% rename from adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/TreeProvenance.java rename to adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/tree/TreeProvenance.java index 273073372..1a4981a0f 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/TreeProvenance.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/tree/TreeProvenance.java @@ -1,16 +1,14 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.world.tree; import art.arcane.iris.api.tree.TreeFellerAccess; -import art.arcane.iris.core.service.TreeFellerModel.ProvenanceSnapshot; -import art.arcane.iris.core.service.TreeFellerModel.TreeCandidate; -import art.arcane.iris.core.service.TreeFellerModel.TreeContext; -import art.arcane.iris.core.service.tree.TreeDefinitionIndex; -import art.arcane.iris.core.service.tree.TreeMarkerTraversal; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.StructurePlacementMarker; -import art.arcane.iris.engine.framework.TreeBlockMaterial; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.world.tree.TreeFellerModel.ProvenanceSnapshot; +import art.arcane.iris.world.tree.TreeFellerModel.TreeCandidate; +import art.arcane.iris.world.tree.TreeFellerModel.TreeContext; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.placement.StructurePlacementMarker; +import art.arcane.iris.generation.decoration.tree.TreeBlockMaterial; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; import org.bukkit.GameMode; import org.bukkit.Tag; import org.bukkit.World; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/IrisApiServiceDiscoveryTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/IrisApiServiceDiscoveryTest.java index 805be1530..21f0656ad 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/IrisApiServiceDiscoveryTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/IrisApiServiceDiscoveryTest.java @@ -1,9 +1,9 @@ package art.arcane.iris; -import art.arcane.iris.core.pregenerator.PregenApiSink; -import art.arcane.iris.core.service.IrisApiEventSVC; -import art.arcane.iris.core.service.IrisTerrainSVC; -import art.arcane.iris.util.common.plugin.IrisService; +import art.arcane.iris.world.pregen.PregenApiSink; +import art.arcane.iris.platform.bukkit.api.IrisApiEventSVC; +import art.arcane.iris.platform.bukkit.api.IrisTerrainSVC; +import art.arcane.iris.platform.bukkit.plugin.IrisService; import org.junit.Test; import static org.junit.Assert.assertTrue; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/IrisBootstrapWorldStorageContractTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/IrisBootstrapWorldStorageContractTest.java index 8e9216bec..101e43b1d 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/IrisBootstrapWorldStorageContractTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/IrisBootstrapWorldStorageContractTest.java @@ -1,7 +1,7 @@ package art.arcane.iris; -import art.arcane.iris.core.lifecycle.BukkitStartupPaths; -import art.arcane.iris.core.lifecycle.MissingWorldStorageLog; +import art.arcane.iris.world.lifecycle.BukkitStartupPaths; +import art.arcane.iris.world.lifecycle.MissingWorldStorageLog; import org.bukkit.configuration.file.YamlConfiguration; import org.junit.Before; import org.junit.Rule; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/IrisDiagnosticsTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/IrisDiagnosticsTest.java index 279409e80..84cab8263 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/IrisDiagnosticsTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/IrisDiagnosticsTest.java @@ -1,8 +1,8 @@ package art.arcane.iris; -import art.arcane.iris.core.splash.IrisSplashPackScanner; -import art.arcane.iris.core.service.CommandSVC; -import art.arcane.iris.util.common.plugin.IrisService; +import art.arcane.iris.diagnostics.splash.IrisSplashPackScanner; +import art.arcane.iris.command.CommandSVC; +import art.arcane.iris.platform.bukkit.plugin.IrisService; import org.junit.Test; import java.io.ByteArrayOutputStream; @@ -21,7 +21,7 @@ import static org.junit.Assert.assertTrue; public class IrisDiagnosticsTest { @Test public void serviceInitializationSkipsPackageHelperClasses() throws Exception { - Class registrar = Class.forName("art.arcane.iris.core.commands.PaperCommandRegistrar"); + Class registrar = Class.forName("art.arcane.iris.command.PaperCommandRegistrar"); assertFalse(Iris.isConcreteImplementation(registrar, IrisService.class)); assertTrue(Iris.isConcreteImplementation(CommandSVC.class, IrisService.class)); @@ -29,7 +29,7 @@ public class IrisDiagnosticsTest { // referencing Paper-only types there prints an NCDFE stack trace on plain Spigot. assertFalse( "Paper-only command registrar must stay out of the JarScanner-scanned services package", - "art.arcane.iris.core.service".equals(registrar.getPackageName())); + "art.arcane.iris.generation.runtime".equals(registrar.getPackageName())); } @Test diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandFindBiomeContractTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandFindBiomeContractTest.java similarity index 76% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandFindBiomeContractTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandFindBiomeContractTest.java index accdfd766..949d9e696 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandFindBiomeContractTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandFindBiomeContractTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.util.common.director.specialhandlers.ReachableBiomeHandler; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.command.specialhandlers.ReachableBiomeHandler; import art.arcane.volmlib.util.director.annotations.Param; import org.junit.Test; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandIrisCreateOverwriteContractTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandIrisCreateOverwriteContractTest.java similarity index 98% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandIrisCreateOverwriteContractTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandIrisCreateOverwriteContractTest.java index 1ad9b1891..f644ed3b2 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandIrisCreateOverwriteContractTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandIrisCreateOverwriteContractTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandIrisDownloadContractTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandIrisDownloadContractTest.java similarity index 98% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandIrisDownloadContractTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandIrisDownloadContractTest.java index 6cf1bb112..1ab071080 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandIrisDownloadContractTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandIrisDownloadContractTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; import art.arcane.volmlib.util.director.annotations.Param; import org.junit.Test; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandIrisLoadWorldContractTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandIrisLoadWorldContractTest.java similarity index 91% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandIrisLoadWorldContractTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandIrisLoadWorldContractTest.java index 349862f5e..467c57a19 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandIrisLoadWorldContractTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandIrisLoadWorldContractTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; -import art.arcane.iris.core.BukkitWorldReconciler; +import art.arcane.iris.world.BukkitWorldReconciler; import art.arcane.volmlib.util.director.annotations.Param; import org.junit.Test; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandIrisPackDimensionTypeHandlerTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandIrisPackDimensionTypeHandlerTest.java similarity index 97% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandIrisPackDimensionTypeHandlerTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandIrisPackDimensionTypeHandlerTest.java index 345328834..0e60238cd 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandIrisPackDimensionTypeHandlerTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandIrisPackDimensionTypeHandlerTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; import art.arcane.volmlib.util.collection.KList; import org.junit.Rule; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandIrisRemovalCommandContractTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandIrisRemovalCommandContractTest.java similarity index 96% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandIrisRemovalCommandContractTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandIrisRemovalCommandContractTest.java index b80044622..225df2de9 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandIrisRemovalCommandContractTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandIrisRemovalCommandContractTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; import art.arcane.volmlib.util.director.annotations.Param; import org.bukkit.World; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandJigsawContractTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandJigsawContractTest.java similarity index 94% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandJigsawContractTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandJigsawContractTest.java index e35ef220a..60ce6e21c 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandJigsawContractTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandJigsawContractTest.java @@ -1,31 +1,31 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; -import art.arcane.iris.core.pack.BrokenPackException; -import art.arcane.iris.core.runtime.StudioOpenCoordinator; -import art.arcane.iris.core.runtime.jigsaw.JigsawPlanarArchetype; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCellDimensions; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioLayout; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioMode; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioVariantCatalog; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioWorkcellSpec; -import art.arcane.iris.core.service.JigsawStudioService; -import art.arcane.iris.core.structure.authoring.StructureBackend; -import art.arcane.iris.core.structure.authoring.StructureCapability; -import art.arcane.iris.core.structure.authoring.StructureHash; -import art.arcane.iris.core.structure.authoring.StructureKey; -import art.arcane.iris.core.structure.authoring.StructureOwnershipManifest; -import art.arcane.iris.core.structure.authoring.StructureSource; -import art.arcane.iris.core.structure.authoring.StructureTransactionWriter; -import art.arcane.iris.core.structure.conversion.IrisStructureAdoptionInputKind; -import art.arcane.iris.core.structure.export.VanillaJigsawExportFormat; -import art.arcane.iris.core.tools.IrisCreator; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisDirection; -import art.arcane.iris.engine.object.IrisJigsawConnector; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.util.common.director.specialhandlers.IrisStructureHandler; +import art.arcane.iris.pack.BrokenPackException; +import art.arcane.iris.studio.object.StudioOpenCoordinator; +import art.arcane.iris.studio.jigsaw.JigsawPlanarArchetype; +import art.arcane.iris.studio.jigsaw.JigsawStudioCellDimensions; +import art.arcane.iris.studio.jigsaw.JigsawStudioLayout; +import art.arcane.iris.studio.jigsaw.JigsawStudioMode; +import art.arcane.iris.studio.jigsaw.JigsawStudioVariantCatalog; +import art.arcane.iris.studio.jigsaw.JigsawStudioWorkcellSpec; +import art.arcane.iris.studio.jigsaw.JigsawStudioService; +import art.arcane.iris.structure.authoring.StructureBackend; +import art.arcane.iris.structure.authoring.StructureCapability; +import art.arcane.iris.structure.authoring.StructureHash; +import art.arcane.iris.structure.authoring.StructureKey; +import art.arcane.iris.structure.authoring.StructureOwnershipManifest; +import art.arcane.iris.structure.authoring.StructureSource; +import art.arcane.iris.structure.authoring.StructureTransactionWriter; +import art.arcane.iris.structure.conversion.IrisStructureAdoptionInputKind; +import art.arcane.iris.structure.export.VanillaJigsawExportFormat; +import art.arcane.iris.world.IrisCreator; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.pack.value.IrisDirection; +import art.arcane.iris.structure.jigsaw.IrisJigsawConnector; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.command.specialhandlers.IrisStructureHandler; import art.arcane.volmlib.util.director.DirectorOrigin; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandLanguageRoutingTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandLanguageRoutingTest.java similarity index 95% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandLanguageRoutingTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandLanguageRoutingTest.java index 5acf8e61d..6b944b407 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandLanguageRoutingTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandLanguageRoutingTest.java @@ -1,7 +1,6 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; import art.arcane.iris.Iris; -import art.arcane.iris.core.service.CommandSVC; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.junit.After; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandObjectCustomBlockPlacementTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandObjectCustomBlockPlacementTest.java similarity index 93% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandObjectCustomBlockPlacementTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandObjectCustomBlockPlacementTest.java index 140fffb09..387f6a80c 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandObjectCustomBlockPlacementTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandObjectCustomBlockPlacementTest.java @@ -1,11 +1,11 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.core.service.ExternalDataSVC; -import art.arcane.iris.engine.object.IObjectPlacer; +import art.arcane.iris.integration.Identifier; +import art.arcane.iris.integration.ExternalDataSVC; +import art.arcane.iris.structure.object.IObjectPlacer; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.IrisCustomData; +import art.arcane.iris.generation.block.IrisCustomData; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.block.Block; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandObjectFluidHeightTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandObjectFluidHeightTest.java similarity index 82% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandObjectFluidHeightTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandObjectFluidHeightTest.java index ec5cecbe9..500dd2147 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandObjectFluidHeightTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandObjectFluidHeightTest.java @@ -1,10 +1,10 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IObjectPlacer; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.object.IObjectPlacer; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.volmlib.util.stream.ProceduralStream; import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.block.data.BlockData; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandObjectPasteRaycastTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandObjectPasteRaycastTest.java similarity index 96% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandObjectPasteRaycastTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandObjectPasteRaycastTest.java index 87253a21b..e2d821b55 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandObjectPasteRaycastTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandObjectPasteRaycastTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; import org.bukkit.Material; import org.junit.Test; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandPackCompatTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandPackCompatTest.java similarity index 92% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandPackCompatTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandPackCompatTest.java index 5853c4966..b924708f0 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandPackCompatTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandPackCompatTest.java @@ -1,9 +1,9 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; -import art.arcane.iris.core.compat.CompatAction; -import art.arcane.iris.core.compat.CompatFinding; -import art.arcane.iris.core.compat.CompatRegistry; -import art.arcane.iris.core.pack.PackValidationResult; +import art.arcane.iris.pack.validation.CompatAction; +import art.arcane.iris.pack.validation.CompatFinding; +import art.arcane.iris.pack.validation.CompatRegistry; +import art.arcane.iris.pack.PackValidationResult; import art.arcane.volmlib.util.director.compat.DirectorAnnotationCompatibility; import art.arcane.volmlib.util.director.runtime.DirectorNodeDescriptor; import art.arcane.volmlib.util.director.runtime.DirectorParameterDescriptor; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandPackOptionalPackContractTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandPackOptionalPackContractTest.java similarity index 97% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandPackOptionalPackContractTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandPackOptionalPackContractTest.java index 1e1a52af5..764e54bfe 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandPackOptionalPackContractTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandPackOptionalPackContractTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.volmlib.util.director.compat.DirectorAnnotationCompatibility; import art.arcane.volmlib.util.director.runtime.DirectorNodeDescriptor; import art.arcane.volmlib.util.director.runtime.DirectorParameterDescriptor; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandPregenCompletionContractTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandPregenCompletionContractTest.java similarity index 97% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandPregenCompletionContractTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandPregenCompletionContractTest.java index 6339c5bfd..a9baf3cbf 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandPregenCompletionContractTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandPregenCompletionContractTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; import art.arcane.volmlib.util.director.compat.DirectorEngineFactory; import art.arcane.volmlib.util.director.runtime.DirectorInvocation; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/CommandSVCFindParsingTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandSVCFindParsingTest.java similarity index 93% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/CommandSVCFindParsingTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandSVCFindParsingTest.java index df30ba43e..fd868352d 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/CommandSVCFindParsingTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandSVCFindParsingTest.java @@ -1,15 +1,13 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.command; import art.arcane.iris.Iris; -import art.arcane.iris.core.commands.CommandIris; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.history.GenerationFindCatalog; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.platform.EngineBukkitOps; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; -import art.arcane.iris.util.common.director.DirectorContext; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.world.history.GenerationFindCatalog; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.platform.generation.EngineBukkitOps; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.director.DirectorEngineOptions; import art.arcane.volmlib.util.director.compat.DirectorEngineFactory; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandStudioCreationContractTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandStudioCreationContractTest.java similarity index 89% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandStudioCreationContractTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandStudioCreationContractTest.java index 4747d1b73..9ab3d4f6d 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandStudioCreationContractTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandStudioCreationContractTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.util.common.director.specialhandlers.NullableDimensionHandler; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.command.specialhandlers.NullableDimensionHandler; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; import org.junit.Test; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandWhatBiomeTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandWhatBiomeTest.java similarity index 84% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandWhatBiomeTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandWhatBiomeTest.java index 15f6ddb65..a7edd54cc 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/CommandWhatBiomeTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/CommandWhatBiomeTest.java @@ -1,15 +1,14 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; -import art.arcane.iris.core.localization.BukkitCommandMessagesExtended; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.RuntimeUiMessages; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; -import art.arcane.iris.util.common.director.DirectorContext; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.localization.BukkitCommandMessagesExtended; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.RuntimeUiMessages; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.localization.MessageArgument; import org.bukkit.Location; import org.bukkit.World; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/IrisStructureLocateCommandContractTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/IrisStructureLocateCommandContractTest.java similarity index 97% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/IrisStructureLocateCommandContractTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/IrisStructureLocateCommandContractTest.java index a48e6bf91..f61236da5 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/IrisStructureLocateCommandContractTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/IrisStructureLocateCommandContractTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; -import art.arcane.iris.engine.framework.NativeStructureGenerationPolicy; -import art.arcane.iris.engine.object.IrisNativeStructureDecision; -import art.arcane.iris.engine.object.NativeStructureGenerationStatus; +import art.arcane.iris.structure.nativegen.NativeStructureGenerationPolicy; +import art.arcane.iris.structure.nativegen.IrisNativeStructureDecision; +import art.arcane.iris.structure.nativegen.NativeStructureGenerationStatus; import org.junit.Test; import java.util.List; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/ObjectPasteBoundsTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/ObjectPasteBoundsTest.java similarity index 91% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/ObjectPasteBoundsTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/ObjectPasteBoundsTest.java index a141763d9..d11b307e3 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/ObjectPasteBoundsTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/ObjectPasteBoundsTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisObjectRotation; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectRotation; import org.junit.Test; import static org.junit.Assert.assertEquals; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/PaperCommandRegistrarTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/PaperCommandRegistrarTest.java similarity index 97% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/PaperCommandRegistrarTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/PaperCommandRegistrarTest.java index 30de6e3e6..209887ad8 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/PaperCommandRegistrarTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/PaperCommandRegistrarTest.java @@ -1,6 +1,5 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; -import art.arcane.iris.core.service.CommandSVC; import io.papermc.paper.command.brigadier.BasicCommand; import io.papermc.paper.command.brigadier.CommandSourceStack; import org.bukkit.Location; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/StudioScoreboardCommandTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/StudioScoreboardCommandTest.java similarity index 95% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/StudioScoreboardCommandTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/StudioScoreboardCommandTest.java index 6d6d88e28..524c63daf 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/commands/StudioScoreboardCommandTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/command/StudioScoreboardCommandTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.commands; +package art.arcane.iris.command; import art.arcane.volmlib.util.director.DirectorOrigin; import art.arcane.volmlib.util.director.annotations.Director; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/IrisEngineLifecycleContractTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/generation/runtime/IrisEngineLifecycleContractTest.java similarity index 95% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/IrisEngineLifecycleContractTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/generation/runtime/IrisEngineLifecycleContractTest.java index c9f14ba6a..b16176861 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/IrisEngineLifecycleContractTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/generation/runtime/IrisEngineLifecycleContractTest.java @@ -1,6 +1,5 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.framework.EngineAssignedWorldManager; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.world.WorldUnloadEvent; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/IrisEngineSVCUntrackedUnloadTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/generation/runtime/IrisEngineSVCUntrackedUnloadTest.java similarity index 95% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/IrisEngineSVCUntrackedUnloadTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/generation/runtime/IrisEngineSVCUntrackedUnloadTest.java index e014d930a..310e08e5c 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/IrisEngineSVCUntrackedUnloadTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/generation/runtime/IrisEngineSVCUntrackedUnloadTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.platform.BukkitChunkGenerator; +import art.arcane.iris.platform.generation.BukkitChunkGenerator; import org.bukkit.NamespacedKey; import org.bukkit.World; import org.bukkit.event.world.WorldUnloadEvent; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/IrisWorldPhaseLedgerTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/generation/runtime/IrisWorldPhaseLedgerTest.java similarity index 98% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/IrisWorldPhaseLedgerTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/generation/runtime/IrisWorldPhaseLedgerTest.java index 0d6573a11..1bf0596e0 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/IrisWorldPhaseLedgerTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/generation/runtime/IrisWorldPhaseLedgerTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.generation.runtime; import art.arcane.iris.api.world.IrisWorldPhase; import org.bukkit.World; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/link/FakeIrisTerrainService.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/integration/FakeIrisTerrainService.java similarity index 98% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/link/FakeIrisTerrainService.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/integration/FakeIrisTerrainService.java index de2890d3c..52eda8005 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/link/FakeIrisTerrainService.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/integration/FakeIrisTerrainService.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.link; +package art.arcane.iris.integration; import art.arcane.iris.api.terrain.IrisColumnQuery; import art.arcane.iris.api.terrain.IrisColumnSink; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/IrisIntegrationServiceTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/integration/IrisIntegrationServiceTest.java similarity index 97% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/IrisIntegrationServiceTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/integration/IrisIntegrationServiceTest.java index 3596783f2..7d3c6314e 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/IrisIntegrationServiceTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/integration/IrisIntegrationServiceTest.java @@ -1,6 +1,8 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.integration; -import art.arcane.iris.engine.framework.EngineTelemetrySnapshot; +import art.arcane.iris.generation.runtime.IrisTelemetrySnapshot; + +import art.arcane.iris.generation.runtime.EngineTelemetrySnapshot; import art.arcane.volmlib.integration.IntegrationMetricGroup; import art.arcane.volmlib.integration.IntegrationMetricSample; import art.arcane.volmlib.integration.IntegrationMetricSchema; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/link/IrisPapiExpansionTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/integration/IrisPapiExpansionTest.java similarity index 99% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/link/IrisPapiExpansionTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/integration/IrisPapiExpansionTest.java index 633dad4b1..746eaa1c8 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/link/IrisPapiExpansionTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/integration/IrisPapiExpansionTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.link; +package art.arcane.iris.integration; import art.arcane.iris.api.pregen.IrisPregenPhase; import art.arcane.iris.api.pregen.IrisPregenProgress; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/link/IrisPapiListenerTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/integration/IrisPapiListenerTest.java similarity index 99% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/link/IrisPapiListenerTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/integration/IrisPapiListenerTest.java index 7a2f9fdfa..3772e7c5f 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/link/IrisPapiListenerTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/integration/IrisPapiListenerTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.link; +package art.arcane.iris.integration; import art.arcane.iris.api.pregen.IrisPregenPhase; import art.arcane.iris.api.pregen.IrisPregenProgress; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/link/IrisPapiStateTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/integration/IrisPapiStateTest.java similarity index 99% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/link/IrisPapiStateTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/integration/IrisPapiStateTest.java index 0e2d568e6..66051ebb6 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/link/IrisPapiStateTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/integration/IrisPapiStateTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.link; +package art.arcane.iris.integration; import art.arcane.iris.api.pregen.IrisPregenPhase; import art.arcane.iris.api.pregen.IrisPregenProgress; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/link/IrisPapiTestSupport.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/integration/IrisPapiTestSupport.java similarity index 98% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/link/IrisPapiTestSupport.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/integration/IrisPapiTestSupport.java index 24dc2c8c7..d7fe774fb 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/link/IrisPapiTestSupport.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/integration/IrisPapiTestSupport.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.link; +package art.arcane.iris.integration; import org.bukkit.Location; import org.bukkit.OfflinePlayer; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/link/IrisPlaceholderAbsenceTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/integration/IrisPlaceholderAbsenceTest.java similarity index 89% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/link/IrisPlaceholderAbsenceTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/integration/IrisPlaceholderAbsenceTest.java index d83f2fa46..a82177239 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/link/IrisPlaceholderAbsenceTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/integration/IrisPlaceholderAbsenceTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.link; +package art.arcane.iris.integration; import org.junit.Test; @@ -8,14 +8,14 @@ import java.net.URLClassLoader; public class IrisPlaceholderAbsenceTest { private static final String[] LOADS_WITHOUT_PLACEHOLDER_API = { - "art.arcane.iris.core.link.IrisPapiState", - "art.arcane.iris.core.link.IrisPapiListener", + "art.arcane.iris.integration.IrisPapiState", + "art.arcane.iris.integration.IrisPapiListener", "art.arcane.volmlib.util.bukkit.papi.PlaceholderRegistration" }; private static final String[] REQUIRES_PLACEHOLDER_API = { - "art.arcane.iris.core.link.IrisPapiInstaller", - "art.arcane.iris.core.link.IrisPapiExpansion" + "art.arcane.iris.integration.IrisPapiInstaller", + "art.arcane.iris.integration.IrisPapiExpansion" }; @Test diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/DatapackStructureScopeSVCTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/pack/datapack/DatapackStructureScopeSVCTest.java similarity index 97% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/DatapackStructureScopeSVCTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/pack/datapack/DatapackStructureScopeSVCTest.java index 78e4c50ce..7805357ea 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/DatapackStructureScopeSVCTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/pack/datapack/DatapackStructureScopeSVCTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.pack.datapack; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/IrisTerrainSVCTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/platform/bukkit/api/IrisTerrainSVCTest.java similarity index 92% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/IrisTerrainSVCTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/platform/bukkit/api/IrisTerrainSVCTest.java index f56b9e9ef..667454401 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/IrisTerrainSVCTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/platform/bukkit/api/IrisTerrainSVCTest.java @@ -1,15 +1,15 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.platform.bukkit.api; import art.arcane.iris.api.terrain.IrisColumnField; import art.arcane.iris.api.terrain.IrisColumnQuery; import art.arcane.iris.api.terrain.IrisRiverState; import art.arcane.iris.api.terrain.IrisSurfaceKind; import art.arcane.iris.api.terrain.IrisTerrainService; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.HydrologyColumnSample; -import art.arcane.iris.engine.hydrology.HydrologyFeatureRef; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.util.common.plugin.IrisService; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.HydrologyColumnSample; +import art.arcane.iris.generation.hydrology.HydrologyFeatureRef; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.platform.bukkit.plugin.IrisService; import org.bukkit.World; import org.junit.Test; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/terrain/IrisApiFaultGuardTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/platform/bukkit/terrain/IrisApiFaultGuardTest.java similarity index 96% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/terrain/IrisApiFaultGuardTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/platform/bukkit/terrain/IrisApiFaultGuardTest.java index 8da069dd6..f6a2f6748 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/terrain/IrisApiFaultGuardTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/platform/bukkit/terrain/IrisApiFaultGuardTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.service.terrain; +package art.arcane.iris.platform.bukkit.terrain; import org.junit.Test; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/terrain/IrisColumnWalkTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/platform/bukkit/terrain/IrisColumnWalkTest.java similarity index 98% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/terrain/IrisColumnWalkTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/platform/bukkit/terrain/IrisColumnWalkTest.java index 25794ecb9..ebec2f7b9 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/terrain/IrisColumnWalkTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/platform/bukkit/terrain/IrisColumnWalkTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.service.terrain; +package art.arcane.iris.platform.bukkit.terrain; import art.arcane.iris.api.terrain.IrisColumnField; import art.arcane.iris.api.terrain.IrisColumnQuery; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/terrain/IrisSampleLimitsTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/platform/bukkit/terrain/IrisSampleLimitsTest.java similarity index 97% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/terrain/IrisSampleLimitsTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/platform/bukkit/terrain/IrisSampleLimitsTest.java index 13bd2029a..6372c073e 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/terrain/IrisSampleLimitsTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/platform/bukkit/terrain/IrisSampleLimitsTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.service.terrain; +package art.arcane.iris.platform.bukkit.terrain; import art.arcane.iris.api.terrain.IrisColumnField; import art.arcane.iris.api.terrain.IrisColumnQuery; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/terrain/IrisSurfaceClassifierTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/platform/bukkit/terrain/IrisSurfaceClassifierTest.java similarity index 93% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/terrain/IrisSurfaceClassifierTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/platform/bukkit/terrain/IrisSurfaceClassifierTest.java index 648c9127c..8536b792b 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/terrain/IrisSurfaceClassifierTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/platform/bukkit/terrain/IrisSurfaceClassifierTest.java @@ -1,11 +1,11 @@ -package art.arcane.iris.core.service.terrain; +package art.arcane.iris.platform.bukkit.terrain; import art.arcane.iris.api.terrain.IrisSurfaceKind; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.HydrologyColumnSample; -import art.arcane.iris.engine.hydrology.HydrologyFeatureRef; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.engine.object.InferredType; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.HydrologyColumnSample; +import art.arcane.iris.generation.hydrology.HydrologyFeatureRef; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.terrain.InferredType; import org.junit.Test; import java.util.List; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/terrain/IrisWorldInfoFactoryTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/platform/bukkit/terrain/IrisWorldInfoFactoryTest.java similarity index 97% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/terrain/IrisWorldInfoFactoryTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/platform/bukkit/terrain/IrisWorldInfoFactoryTest.java index 9227ee86e..4a311b93a 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/terrain/IrisWorldInfoFactoryTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/platform/bukkit/terrain/IrisWorldInfoFactoryTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.service.terrain; +package art.arcane.iris.platform.bukkit.terrain; import art.arcane.iris.api.terrain.IrisWorldInfo; import org.junit.Test; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/IrisProtocolServiceCapabilitiesTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/platform/protocol/IrisProtocolServiceCapabilitiesTest.java similarity index 93% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/IrisProtocolServiceCapabilitiesTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/platform/protocol/IrisProtocolServiceCapabilitiesTest.java index 3b06b9017..9568af958 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/IrisProtocolServiceCapabilitiesTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/platform/protocol/IrisProtocolServiceCapabilitiesTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.platform.protocol; import art.arcane.iris.spi.protocol.IrisProtocol; import org.junit.Test; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/gui/BukkitVisionOverlayFoliaContractTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/studio/view/BukkitVisionOverlayFoliaContractTest.java similarity index 97% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/gui/BukkitVisionOverlayFoliaContractTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/studio/view/BukkitVisionOverlayFoliaContractTest.java index 8a5eef363..56a4cad3e 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/gui/BukkitVisionOverlayFoliaContractTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/studio/view/BukkitVisionOverlayFoliaContractTest.java @@ -1,10 +1,10 @@ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisWorld; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.world.IrisWorld; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.platform.bukkit.BukkitWorldBinding; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.entity.Player; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/WandSVCTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/studio/wand/WandSVCTest.java similarity index 97% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/WandSVCTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/studio/wand/WandSVCTest.java index 5c26c1abd..71487281d 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/WandSVCTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/studio/wand/WandSVCTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.wand; import art.arcane.iris.Iris; -import art.arcane.iris.core.link.WorldEditLink; +import art.arcane.iris.integration.WorldEditLink; import art.arcane.volmlib.util.bukkit.WorldIdentity; import art.arcane.volmlib.util.data.Cuboid; import org.bukkit.Location; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/wand/WandSelectionTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/studio/wand/WandSelectionTest.java similarity index 96% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/wand/WandSelectionTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/studio/wand/WandSelectionTest.java index 3feaf8cdf..919b46ce2 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/wand/WandSelectionTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/studio/wand/WandSelectionTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.wand; +package art.arcane.iris.studio.wand; -import art.arcane.iris.util.common.data.registry.RegistryUtil; +import art.arcane.iris.platform.bukkit.registry.RegistryUtil; import art.arcane.volmlib.util.data.Cuboid; import art.arcane.volmlib.util.math.M; import org.bukkit.Location; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/BukkitWorldReconcilerTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/BukkitWorldReconcilerTest.java similarity index 99% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/BukkitWorldReconcilerTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/BukkitWorldReconcilerTest.java index 9ab263a4f..2940acb71 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/BukkitWorldReconcilerTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/BukkitWorldReconcilerTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; -import art.arcane.iris.core.lifecycle.BukkitWorldConfiguration; -import art.arcane.iris.core.lifecycle.LifecycleOperationCoordinator; +import art.arcane.iris.world.lifecycle.BukkitWorldConfiguration; +import art.arcane.iris.world.lifecycle.LifecycleOperationCoordinator; import org.bukkit.NamespacedKey; import org.bukkit.World; import org.bukkit.configuration.file.YamlConfiguration; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/IrisStartupAdmissionListenerTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/IrisStartupAdmissionListenerTest.java similarity index 98% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/IrisStartupAdmissionListenerTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/IrisStartupAdmissionListenerTest.java index 750e807e7..63d600fda 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/IrisStartupAdmissionListenerTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/IrisStartupAdmissionListenerTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; import com.destroystokyo.paper.profile.PlayerProfile; import org.bukkit.event.player.AsyncPlayerPreLoginEvent; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/IrisWorldGeneratorResolverTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/IrisWorldGeneratorResolverTest.java similarity index 97% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/IrisWorldGeneratorResolverTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/IrisWorldGeneratorResolverTest.java index 72c15df4a..f7f073c44 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/IrisWorldGeneratorResolverTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/IrisWorldGeneratorResolverTest.java @@ -1,16 +1,16 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; import art.arcane.iris.Iris; -import art.arcane.iris.core.lifecycle.WorldLifecycleStaging; -import art.arcane.iris.core.compat.CompatAction; -import art.arcane.iris.core.compat.CompatFinding; -import art.arcane.iris.core.compat.CompatRegistry; -import art.arcane.iris.core.service.ExternalDataSVC; -import art.arcane.iris.core.pack.BrokenPackException; -import art.arcane.iris.core.pack.PackValidationRegistry; -import art.arcane.iris.core.pack.PackValidationResult; -import art.arcane.iris.util.common.plugin.VolmitPlugin; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.lifecycle.WorldLifecycleStaging; +import art.arcane.iris.pack.validation.CompatAction; +import art.arcane.iris.pack.validation.CompatFinding; +import art.arcane.iris.pack.validation.CompatRegistry; +import art.arcane.iris.integration.ExternalDataSVC; +import art.arcane.iris.pack.BrokenPackException; +import art.arcane.iris.pack.PackValidationRegistry; +import art.arcane.iris.pack.PackValidationResult; +import art.arcane.iris.platform.bukkit.plugin.VolmitPlugin; +import art.arcane.iris.world.task.J; import org.junit.After; import org.junit.Rule; import org.junit.Test; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/PendingWorldDeleteQueueTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/PendingWorldDeleteQueueTest.java similarity index 99% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/PendingWorldDeleteQueueTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/PendingWorldDeleteQueueTest.java index af7ee556f..9780406cd 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/PendingWorldDeleteQueueTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/PendingWorldDeleteQueueTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; import org.junit.Rule; import org.junit.Test; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/PendingWorldReplacementAdmissionTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/PendingWorldReplacementAdmissionTest.java similarity index 74% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/PendingWorldReplacementAdmissionTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/PendingWorldReplacementAdmissionTest.java index fc0a662c0..2acffefef 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/PendingWorldReplacementAdmissionTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/PendingWorldReplacementAdmissionTest.java @@ -1,13 +1,13 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; import art.arcane.iris.Iris; -import art.arcane.iris.core.lifecycle.LifecycleOperationCoordinator; -import art.arcane.iris.core.lifecycle.LifecycleOperationCoordinator.BusyException; -import art.arcane.iris.core.lifecycle.LifecycleOperationCoordinator.Domain; -import art.arcane.iris.core.lifecycle.LifecycleOperationCoordinator.Lease; -import art.arcane.iris.core.lifecycle.LifecycleOperationCoordinator.OperationKind; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.util.common.plugin.VolmitSender; +import art.arcane.iris.world.lifecycle.LifecycleOperationCoordinator; +import art.arcane.iris.world.lifecycle.LifecycleOperationCoordinator.BusyException; +import art.arcane.iris.world.lifecycle.LifecycleOperationCoordinator.Domain; +import art.arcane.iris.world.lifecycle.LifecycleOperationCoordinator.Lease; +import art.arcane.iris.world.lifecycle.LifecycleOperationCoordinator.OperationKind; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; import org.bukkit.NamespacedKey; import org.junit.Test; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/PendingWorldReplacementManagerPolicyTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/PendingWorldReplacementManagerPolicyTest.java similarity index 95% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/PendingWorldReplacementManagerPolicyTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/PendingWorldReplacementManagerPolicyTest.java index 3b3c0654f..a856389f1 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/PendingWorldReplacementManagerPolicyTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/PendingWorldReplacementManagerPolicyTest.java @@ -1,11 +1,10 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; import art.arcane.iris.Iris; -import art.arcane.iris.core.ExactWorldSlotPathPolicy.SlotKind; -import art.arcane.iris.core.lifecycle.WorldReplacementBootstrapMarker; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisEnvironment; -import art.arcane.iris.util.common.plugin.VolmitSender; +import art.arcane.iris.world.ExactWorldSlotPathPolicy.SlotKind; +import art.arcane.iris.world.lifecycle.WorldReplacementBootstrapMarker; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; import org.bukkit.NamespacedKey; import org.junit.After; import org.junit.Test; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/PendingWorldReplacementThreadAffinityTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/PendingWorldReplacementThreadAffinityTest.java similarity index 91% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/PendingWorldReplacementThreadAffinityTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/PendingWorldReplacementThreadAffinityTest.java index a2b7b823d..cc52a8d60 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/PendingWorldReplacementThreadAffinityTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/PendingWorldReplacementThreadAffinityTest.java @@ -1,14 +1,12 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; -import art.arcane.iris.core.ExactWorldSlotPathPolicy.SlotKind; -import art.arcane.iris.core.lifecycle.BukkitWorldConfiguration.WorldGeneratorSnapshot; -import art.arcane.iris.core.lifecycle.WorldReplacementJournal.Phase; -import art.arcane.iris.core.lifecycle.WorldReplacementJournal.Transaction; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.framework.EngineTarget; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisEnvironment; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.world.ExactWorldSlotPathPolicy.SlotKind; +import art.arcane.iris.world.lifecycle.BukkitWorldConfiguration.WorldGeneratorSnapshot; +import art.arcane.iris.world.lifecycle.WorldReplacementJournal.Phase; +import art.arcane.iris.world.lifecycle.WorldReplacementJournal.Transaction; +import art.arcane.iris.generation.runtime.EngineTarget; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; import org.bukkit.NamespacedKey; import org.bukkit.World; import org.junit.Test; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/StudioRuntimeCleanupTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/StudioRuntimeCleanupTest.java similarity index 85% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/StudioRuntimeCleanupTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/StudioRuntimeCleanupTest.java index fe6ee5b9c..18a970f3d 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/StudioRuntimeCleanupTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/StudioRuntimeCleanupTest.java @@ -1,7 +1,8 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; -import art.arcane.iris.core.commands.CommandStudio; -import art.arcane.iris.core.tools.IrisCreator; +import art.arcane.iris.configuration.IrisSettings; + +import art.arcane.iris.command.CommandStudio; import org.junit.Test; import java.util.Arrays; @@ -37,7 +38,7 @@ public class StudioRuntimeCleanupTest { @Test public void noisemapPrebakePipelineClassIsRemoved() { try { - Class.forName("art.arcane.iris.engine.IrisNoisemapPrebakePipeline"); + Class.forName("art.arcane.iris.generation.runtime.IrisNoisemapPrebakePipeline"); } catch (ClassNotFoundException ignored) { return; } diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/WorldReplacementProgressTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/WorldReplacementProgressTest.java similarity index 96% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/WorldReplacementProgressTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/WorldReplacementProgressTest.java index 10f67f98d..6cbe64dfb 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/WorldReplacementProgressTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/WorldReplacementProgressTest.java @@ -1,10 +1,10 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.RuntimeProgressMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.RuntimeProgressMessages; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.localization.MessageArgs; import art.arcane.volmlib.util.localization.MessageKey; import org.bukkit.entity.Player; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/runtime/BukkitWorldBoundaryTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/runtime/BukkitWorldBoundaryTest.java similarity index 83% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/runtime/BukkitWorldBoundaryTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/runtime/BukkitWorldBoundaryTest.java index 2703250fd..9294ba296 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/runtime/BukkitWorldBoundaryTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/runtime/BukkitWorldBoundaryTest.java @@ -1,9 +1,9 @@ -package art.arcane.iris.core.runtime; +package art.arcane.iris.world.runtime; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisWorldBoundary; -import art.arcane.iris.engine.object.IrisWorldBoundaryCenter; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.world.IrisWorldBoundary; +import art.arcane.iris.world.IrisWorldBoundaryCenter; import org.bukkit.WorldBorder; import org.junit.Test; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/TreeFellerEventOrderTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/tree/TreeFellerEventOrderTest.java similarity index 96% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/TreeFellerEventOrderTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/tree/TreeFellerEventOrderTest.java index 6aec41a00..789c4b650 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/TreeFellerEventOrderTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/tree/TreeFellerEventOrderTest.java @@ -1,6 +1,5 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.world.tree; -import art.arcane.iris.core.service.tree.TreeMarkerTraversal; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.player.PlayerItemHeldEvent; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/TreeFellerPresentationTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/tree/TreeFellerPresentationTest.java similarity index 96% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/TreeFellerPresentationTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/tree/TreeFellerPresentationTest.java index 3126da560..853c831d6 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/TreeFellerPresentationTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/tree/TreeFellerPresentationTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.world.tree; import org.junit.Test; diff --git a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/TreeFellingRunnerPacingTest.java b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/tree/TreeFellingRunnerPacingTest.java similarity index 93% rename from adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/TreeFellingRunnerPacingTest.java rename to adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/tree/TreeFellingRunnerPacingTest.java index a3ab672e7..0eea3e486 100644 --- a/adapters/bukkit/plugin/src/test/java/art/arcane/iris/core/service/TreeFellingRunnerPacingTest.java +++ b/adapters/bukkit/plugin/src/test/java/art/arcane/iris/world/tree/TreeFellingRunnerPacingTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.world.tree; import org.junit.Test; diff --git a/adapters/client-common/src/main/java/art/arcane/iris/client/IrisClientToasts.java b/adapters/client-common/src/main/java/art/arcane/iris/client/IrisClientToasts.java index f98dc230d..e1d6d1b89 100644 --- a/adapters/client-common/src/main/java/art/arcane/iris/client/IrisClientToasts.java +++ b/adapters/client-common/src/main/java/art/arcane/iris/client/IrisClientToasts.java @@ -1,7 +1,7 @@ package art.arcane.iris.client; import art.arcane.iris.modded.localization.ClientUiMessages; -import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.localization.IrisLanguage; import art.arcane.iris.spi.protocol.IrisMessage; import art.arcane.volmlib.util.localization.MessageArgument; diff --git a/adapters/client-common/src/main/java/art/arcane/iris/client/IrisPregenHud.java b/adapters/client-common/src/main/java/art/arcane/iris/client/IrisPregenHud.java index 94e2fe60d..75e9dd718 100644 --- a/adapters/client-common/src/main/java/art/arcane/iris/client/IrisPregenHud.java +++ b/adapters/client-common/src/main/java/art/arcane/iris/client/IrisPregenHud.java @@ -1,8 +1,8 @@ package art.arcane.iris.client; import art.arcane.iris.modded.localization.ClientUiMessages; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.RuntimeUiMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.RuntimeUiMessages; import art.arcane.iris.spi.protocol.IrisMessage; import art.arcane.volmlib.util.localization.MessageArgument; import net.minecraft.client.Minecraft; diff --git a/adapters/client-common/src/main/java/art/arcane/iris/client/IrisVisionScreen.java b/adapters/client-common/src/main/java/art/arcane/iris/client/IrisVisionScreen.java index b07a1dc54..46c90ec89 100644 --- a/adapters/client-common/src/main/java/art/arcane/iris/client/IrisVisionScreen.java +++ b/adapters/client-common/src/main/java/art/arcane/iris/client/IrisVisionScreen.java @@ -1,7 +1,7 @@ package art.arcane.iris.client; import art.arcane.iris.modded.localization.ClientUiMessages; -import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.localization.IrisLanguage; import art.arcane.iris.spi.protocol.IrisMessage; import art.arcane.volmlib.util.localization.MessageArgument; import com.mojang.blaze3d.platform.NativeImage; diff --git a/adapters/client-common/src/main/java/art/arcane/iris/client/IrisWhatOverlay.java b/adapters/client-common/src/main/java/art/arcane/iris/client/IrisWhatOverlay.java index 41a347500..1adf3aa03 100644 --- a/adapters/client-common/src/main/java/art/arcane/iris/client/IrisWhatOverlay.java +++ b/adapters/client-common/src/main/java/art/arcane/iris/client/IrisWhatOverlay.java @@ -1,7 +1,7 @@ package art.arcane.iris.client; import art.arcane.iris.modded.localization.ClientUiMessages; -import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.localization.IrisLanguage; import art.arcane.iris.spi.protocol.IrisMessage; import art.arcane.volmlib.util.localization.MessageArgument; import net.minecraft.client.Minecraft; diff --git a/adapters/client-common/src/main/java/art/arcane/iris/client/mixin/IrisWorldOpenFlowsMixin.java b/adapters/client-common/src/main/java/art/arcane/iris/client/mixin/IrisWorldOpenFlowsMixin.java index 0350044be..59c83e6a6 100644 --- a/adapters/client-common/src/main/java/art/arcane/iris/client/mixin/IrisWorldOpenFlowsMixin.java +++ b/adapters/client-common/src/main/java/art/arcane/iris/client/mixin/IrisWorldOpenFlowsMixin.java @@ -1,7 +1,7 @@ package art.arcane.iris.client.mixin; import art.arcane.iris.modded.localization.ClientUiMessages; -import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.localization.IrisLanguage; import art.arcane.iris.modded.IrisModdedChunkGenerator; import art.arcane.iris.modded.ModdedMixinFlags; import com.mojang.serialization.Lifecycle; diff --git a/adapters/fabric/build.gradle b/adapters/fabric/build.gradle index db9b4e52b..60dddbdda 100644 --- a/adapters/fabric/build.gradle +++ b/adapters/fabric/build.gradle @@ -18,6 +18,7 @@ import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar import org.gradle.api.file.DeleteSpec +import org.gradle.api.file.FileCopyDetails import org.gradle.api.file.FileSystemOperations import org.gradle.api.file.FileTree import org.gradle.api.tasks.compile.JavaCompile @@ -307,6 +308,9 @@ tasks.named('shadowJar', ShadowJar).configure { // loader has. Shipping it only adds dead classes that reference a missing package. exclude('art/arcane/iris/platform/bukkit/**') duplicatesStrategy = DuplicatesStrategy.EXCLUDE + filesMatching('META-INF/services/**') { FileCopyDetails entry -> + entry.duplicatesStrategy = DuplicatesStrategy.INCLUDE + } relocate('org.objectweb.asm', 'art.arcane.iris.shadow.asm') // Split-package guard. A co-installed mod that ships any of these at their original coordinates // puts two copies of the same package on one module layer, which the loaders reject at boot diff --git a/adapters/forge/build.gradle b/adapters/forge/build.gradle index 2e509514e..3f9ee942a 100644 --- a/adapters/forge/build.gradle +++ b/adapters/forge/build.gradle @@ -18,6 +18,7 @@ import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar import org.gradle.api.file.DeleteSpec +import org.gradle.api.file.FileCopyDetails import org.gradle.api.file.FileSystemOperations import org.gradle.api.file.FileTree import org.gradle.api.tasks.compile.JavaCompile @@ -299,6 +300,9 @@ tasks.named('shadowJar', ShadowJar).configure { // loader has. Shipping it only adds dead classes that reference a missing package. exclude('art/arcane/iris/platform/bukkit/**') duplicatesStrategy = DuplicatesStrategy.EXCLUDE + filesMatching('META-INF/services/**') { FileCopyDetails entry -> + entry.duplicatesStrategy = DuplicatesStrategy.INCLUDE + } relocate('org.objectweb.asm', 'art.arcane.iris.shadow.asm') // Split-package guard. A co-installed mod that ships any of these at their original coordinates // puts two copies of the same package on one module layer, which the loaders reject at boot diff --git a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeGenerationWriteGuard.java b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeGenerationWriteGuard.java index eb1c4d170..96d3120c9 100644 --- a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeGenerationWriteGuard.java +++ b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeGenerationWriteGuard.java @@ -1,11 +1,11 @@ package art.arcane.iris.nativegen; -import art.arcane.iris.engine.DimensionStackContext; -import art.arcane.iris.engine.DimensionStackLayout; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.history.GenerationHistoryRuntimeRouter; -import art.arcane.iris.engine.object.IrisStaticObjectLayer; +import art.arcane.iris.generation.runtime.DimensionStackContext; +import art.arcane.iris.generation.runtime.DimensionStackLayout; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.world.history.GenerationHistoryRuntimeRouter; +import art.arcane.iris.structure.object.IrisStaticObjectLayer; import net.minecraft.core.BlockPos; import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.WorldGenLevel; diff --git a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureFactory.java b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureFactory.java index e0ab72059..14d9828ed 100644 --- a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureFactory.java +++ b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureFactory.java @@ -1,9 +1,9 @@ package art.arcane.iris.nativegen; -import art.arcane.iris.engine.framework.NativeStructureStartPlan; -import art.arcane.iris.engine.object.IrisJigsawConfiguration; -import art.arcane.iris.engine.object.IrisJigsawHeightmap; -import art.arcane.iris.engine.object.IrisJigsawLiquidSettings; +import art.arcane.iris.structure.nativegen.NativeStructureStartPlan; +import art.arcane.iris.structure.jigsaw.IrisJigsawConfiguration; +import art.arcane.iris.structure.jigsaw.IrisJigsawHeightmap; +import art.arcane.iris.structure.jigsaw.IrisJigsawLiquidSettings; import art.arcane.iris.spi.PlatformStructureHooks.JigsawSourceMetadata; import net.minecraft.core.Holder; import net.minecraft.core.RegistryAccess; diff --git a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureFoundationBuilder.java b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureFoundationBuilder.java index 161d9e436..daded307f 100644 --- a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureFoundationBuilder.java +++ b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureFoundationBuilder.java @@ -1,6 +1,6 @@ package art.arcane.iris.nativegen; -import art.arcane.iris.engine.object.IrisStructureStiltSettings; +import art.arcane.iris.structure.placement.IrisStructureStiltSettings; import art.arcane.volmlib.util.math.RNG; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; diff --git a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureLocatePersistence.java b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureLocatePersistence.java index fb5279fcd..4dfc6df06 100644 --- a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureLocatePersistence.java +++ b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureLocatePersistence.java @@ -1,8 +1,8 @@ package art.arcane.iris.nativegen; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.IrisStructureLocator; -import art.arcane.iris.engine.framework.NativeStructureOwnershipRecord; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.placement.IrisStructureLocator; +import art.arcane.iris.structure.nativegen.NativeStructureOwnershipRecord; import art.arcane.iris.spi.IrisLogging; import net.minecraft.SharedConstants; import net.minecraft.core.Registry; diff --git a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureOwnershipFingerprint.java b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureOwnershipFingerprint.java index febd5aada..966047de5 100644 --- a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureOwnershipFingerprint.java +++ b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureOwnershipFingerprint.java @@ -1,9 +1,9 @@ package art.arcane.iris.nativegen; -import art.arcane.iris.engine.framework.NativeStructureOwnershipRecord; -import art.arcane.iris.engine.framework.NativeStructurePlacementPlanner; -import art.arcane.iris.engine.framework.NativeStructureStartPlan; -import art.arcane.iris.engine.framework.StructurePlacementGrid; +import art.arcane.iris.structure.nativegen.NativeStructureOwnershipRecord; +import art.arcane.iris.structure.nativegen.NativeStructurePlacementPlanner; +import art.arcane.iris.structure.nativegen.NativeStructureStartPlan; +import art.arcane.iris.structure.placement.StructurePlacementGrid; import net.minecraft.core.Direction; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.Identifier; diff --git a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureOwnershipRecovery.java b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureOwnershipRecovery.java index 4b9714b0f..805b6cc9e 100644 --- a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureOwnershipRecovery.java +++ b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureOwnershipRecovery.java @@ -1,16 +1,16 @@ package art.arcane.iris.nativegen; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.NativeStructureGenerationPolicy; -import art.arcane.iris.engine.framework.NativeStructureOwnershipRecord; -import art.arcane.iris.engine.framework.NativeStructureOwnershipStore; -import art.arcane.iris.engine.framework.NativeStructurePlacementPlanner; -import art.arcane.iris.engine.framework.NativeStructureStartPlan; -import art.arcane.iris.engine.framework.StructurePlacementGrid; -import art.arcane.iris.engine.object.IrisStructureTerrain; -import art.arcane.iris.engine.object.IrisStructureTerrainMode; -import art.arcane.iris.engine.object.NativeStructureGenerationStatus; -import art.arcane.iris.engine.object.NativeStructureSuppression; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.nativegen.NativeStructureGenerationPolicy; +import art.arcane.iris.structure.nativegen.NativeStructureOwnershipRecord; +import art.arcane.iris.structure.nativegen.NativeStructureOwnershipStore; +import art.arcane.iris.structure.nativegen.NativeStructurePlacementPlanner; +import art.arcane.iris.structure.nativegen.NativeStructureStartPlan; +import art.arcane.iris.structure.placement.StructurePlacementGrid; +import art.arcane.iris.structure.placement.IrisStructureTerrain; +import art.arcane.iris.structure.placement.IrisStructureTerrainMode; +import art.arcane.iris.structure.nativegen.NativeStructureGenerationStatus; +import art.arcane.iris.structure.nativegen.NativeStructureSuppression; import net.minecraft.core.Holder; import net.minecraft.core.Registry; import net.minecraft.core.registries.Registries; diff --git a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructurePostProcessor.java b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructurePostProcessor.java index 6996e36fe..12498c842 100644 --- a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructurePostProcessor.java +++ b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructurePostProcessor.java @@ -1,8 +1,8 @@ package art.arcane.iris.nativegen; -import art.arcane.iris.engine.object.IrisMaterialPalette; -import art.arcane.iris.engine.object.IrisNativeStructureDecision; -import art.arcane.iris.engine.object.IrisStructureStiltSettings; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; +import art.arcane.iris.structure.nativegen.IrisNativeStructureDecision; +import art.arcane.iris.structure.placement.IrisStructureStiltSettings; import art.arcane.volmlib.util.math.RNG; import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.StructureManager; diff --git a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureReferenceEnvelope.java b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureReferenceEnvelope.java index 102fd21b5..9ee177491 100644 --- a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureReferenceEnvelope.java +++ b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureReferenceEnvelope.java @@ -1,7 +1,7 @@ package art.arcane.iris.nativegen; -import art.arcane.iris.engine.object.IrisStructureTerrain; -import art.arcane.iris.engine.object.IrisStructureTerrainMode; +import art.arcane.iris.structure.placement.IrisStructureTerrain; +import art.arcane.iris.structure.placement.IrisStructureTerrainMode; import art.arcane.iris.spi.IrisLogging; import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.levelgen.structure.BoundingBox; diff --git a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureReferenceRepair.java b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureReferenceRepair.java index 1c9daf4db..91bb8196e 100644 --- a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureReferenceRepair.java +++ b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureReferenceRepair.java @@ -1,12 +1,12 @@ package art.arcane.iris.nativegen; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.NativeStructureGenerationPolicy; -import art.arcane.iris.engine.framework.NativeStructureOwnershipRecord; -import art.arcane.iris.engine.framework.NativeStructureOwnershipStore; -import art.arcane.iris.engine.history.GenerationHistoryRuntimeRouter; -import art.arcane.iris.engine.object.IrisNativeStructureDecision; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.nativegen.NativeStructureGenerationPolicy; +import art.arcane.iris.structure.nativegen.NativeStructureOwnershipRecord; +import art.arcane.iris.structure.nativegen.NativeStructureOwnershipStore; +import art.arcane.iris.world.history.GenerationHistoryRuntimeRouter; +import art.arcane.iris.structure.nativegen.IrisNativeStructureDecision; import art.arcane.iris.spi.IrisLogging; import it.unimi.dsi.fastutil.longs.LongOpenHashSet; import it.unimi.dsi.fastutil.longs.LongSet; diff --git a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureStartInjector.java b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureStartInjector.java index 0a5d2d740..a1d915f8e 100644 --- a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureStartInjector.java +++ b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureStartInjector.java @@ -1,13 +1,13 @@ package art.arcane.iris.nativegen; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.NativeStructureGenerationPolicy; -import art.arcane.iris.engine.framework.NativeStructureOwnershipRecord; -import art.arcane.iris.engine.framework.NativeStructureOwnershipStore; -import art.arcane.iris.engine.framework.NativeStructurePlacementPlanner; -import art.arcane.iris.engine.framework.NativeStructureStartPlan; -import art.arcane.iris.engine.object.NativeStructureGenerationStatus; -import art.arcane.iris.engine.object.NativeStructureSuppression; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.nativegen.NativeStructureGenerationPolicy; +import art.arcane.iris.structure.nativegen.NativeStructureOwnershipRecord; +import art.arcane.iris.structure.nativegen.NativeStructureOwnershipStore; +import art.arcane.iris.structure.nativegen.NativeStructurePlacementPlanner; +import art.arcane.iris.structure.nativegen.NativeStructureStartPlan; +import art.arcane.iris.structure.nativegen.NativeStructureGenerationStatus; +import art.arcane.iris.structure.nativegen.NativeStructureSuppression; import art.arcane.iris.spi.IrisLogging; import net.minecraft.core.Holder; import net.minecraft.core.Registry; diff --git a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureSurfaceFitter.java b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureSurfaceFitter.java index 7e7feb5c2..81e0407af 100644 --- a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureSurfaceFitter.java +++ b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureSurfaceFitter.java @@ -1,8 +1,8 @@ package art.arcane.iris.nativegen; -import art.arcane.iris.engine.object.IrisObjectVacuum; -import art.arcane.iris.engine.object.IrisStructureTerrain; -import art.arcane.iris.engine.object.IrisStructureTerrainMode; +import art.arcane.iris.structure.object.IrisObjectVacuum; +import art.arcane.iris.structure.placement.IrisStructureTerrain; +import art.arcane.iris.structure.placement.IrisStructureTerrainMode; import art.arcane.iris.spi.IrisLogging; import net.minecraft.core.BlockPos; import net.minecraft.world.level.WorldGenLevel; diff --git a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureSurfaceSupportBuilder.java b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureSurfaceSupportBuilder.java index 10dd1ca98..988eed01f 100644 --- a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureSurfaceSupportBuilder.java +++ b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureSurfaceSupportBuilder.java @@ -1,6 +1,6 @@ package art.arcane.iris.nativegen; -import art.arcane.iris.engine.object.IrisStructureTerrainMode; +import art.arcane.iris.structure.placement.IrisStructureTerrainMode; import net.minecraft.core.BlockPos; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.state.BlockState; diff --git a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureTerrainIntegrator.java b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureTerrainIntegrator.java index fca513b1b..0509b4b7f 100644 --- a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureTerrainIntegrator.java +++ b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureTerrainIntegrator.java @@ -1,12 +1,12 @@ package art.arcane.iris.nativegen; -import art.arcane.iris.engine.mantle.components.StructureCarveEnvelope; -import art.arcane.iris.engine.mantle.components.StructureCarvingFootprint; -import art.arcane.iris.engine.object.IrisMaterialPalette; -import art.arcane.iris.engine.object.IrisStructureCarveShape; -import art.arcane.iris.engine.object.IrisStructureTerrain; -import art.arcane.iris.engine.object.IrisStructureTerrainMode; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.iris.generation.mantle.StructureCarveEnvelope; +import art.arcane.iris.generation.mantle.StructureCarvingFootprint; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; +import art.arcane.iris.structure.placement.IrisStructureCarveShape; +import art.arcane.iris.structure.placement.IrisStructureTerrain; +import art.arcane.iris.structure.placement.IrisStructureTerrainMode; +import art.arcane.volmlib.util.noise.CNG; import art.arcane.volmlib.util.math.RNG; import net.minecraft.core.BlockPos; import net.minecraft.core.Holder; diff --git a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureVerticalPlacer.java b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureVerticalPlacer.java index 789f24716..aaf555edc 100644 --- a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureVerticalPlacer.java +++ b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureVerticalPlacer.java @@ -1,7 +1,7 @@ package art.arcane.iris.nativegen; -import art.arcane.iris.engine.framework.StructureVerticalBounds; -import art.arcane.iris.engine.object.IrisStructureYBand; +import art.arcane.iris.structure.placement.StructureVerticalBounds; +import art.arcane.iris.structure.placement.IrisStructureYBand; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.math.RNG; import net.minecraft.world.level.ChunkPos; diff --git a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureVolumeIndex.java b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureVolumeIndex.java index aac977adb..bb1bfb14e 100644 --- a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureVolumeIndex.java +++ b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeStructureVolumeIndex.java @@ -1,14 +1,14 @@ package art.arcane.iris.nativegen; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.NativeStructureGenerationPolicy; -import art.arcane.iris.engine.framework.NativeStructureOwnershipRecord; -import art.arcane.iris.engine.framework.NativeStructurePlacementPlanner; -import art.arcane.iris.engine.framework.NativeStructureStartPlan; -import art.arcane.iris.engine.framework.NativeStructureVolume; -import art.arcane.iris.engine.history.GenerationHistoryRuntimeRouter; -import art.arcane.iris.engine.object.IrisNativeStructureDecision; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.nativegen.NativeStructureGenerationPolicy; +import art.arcane.iris.structure.nativegen.NativeStructureOwnershipRecord; +import art.arcane.iris.structure.nativegen.NativeStructurePlacementPlanner; +import art.arcane.iris.structure.nativegen.NativeStructureStartPlan; +import art.arcane.iris.structure.nativegen.NativeStructureVolume; +import art.arcane.iris.world.history.GenerationHistoryRuntimeRouter; +import art.arcane.iris.structure.nativegen.IrisNativeStructureDecision; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.collection.KList; import net.minecraft.core.Holder; diff --git a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeTransitionColumn.java b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeTransitionColumn.java index ce26f6dff..d0957441d 100644 --- a/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeTransitionColumn.java +++ b/adapters/minecraft-common/src/main/java/art/arcane/iris/nativegen/NativeTransitionColumn.java @@ -1,6 +1,6 @@ package art.arcane.iris.nativegen; -import art.arcane.iris.engine.history.TerrainBoundarySignature; +import art.arcane.iris.world.history.TerrainBoundarySignature; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBlockState; import com.mojang.brigadier.StringReader; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/IrisModdedBiomeSource.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/IrisModdedBiomeSource.java index 4642f1410..f0186ee25 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/IrisModdedBiomeSource.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/IrisModdedBiomeSource.java @@ -18,19 +18,19 @@ package art.arcane.iris.modded; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.DimensionStackContext; -import art.arcane.iris.engine.DimensionStackLayout; -import art.arcane.iris.engine.DimensionTerrainContext; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.GenerationSessionException; -import art.arcane.iris.engine.framework.GenerationSessionLease; -import art.arcane.iris.engine.history.GenerationHistoryRuntimeRouter; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBiomeCustom; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.util.project.context.IrisContext; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.DimensionStackContext; +import art.arcane.iris.generation.runtime.DimensionStackLayout; +import art.arcane.iris.generation.runtime.DimensionTerrainContext; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.GenerationSessionException; +import art.arcane.iris.generation.runtime.GenerationSessionLease; +import art.arcane.iris.world.history.GenerationHistoryRuntimeRouter; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiomeCustom; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.context.IrisContext; import art.arcane.volmlib.util.math.RNG; import com.mojang.datafixers.util.Pair; import com.mojang.serialization.MapCodec; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/IrisModdedChunkGenerator.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/IrisModdedChunkGenerator.java index 5358fcd60..877ed494f 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/IrisModdedChunkGenerator.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/IrisModdedChunkGenerator.java @@ -20,25 +20,25 @@ package art.arcane.iris.modded; import art.arcane.iris.nativegen.NativeTransitionColumn; import art.arcane.iris.nativegen.NativeTerrainHeightCache; -import art.arcane.iris.engine.history.TerrainBoundarySignature; -import art.arcane.iris.engine.history.NativeBiomeSpawnSelection; +import art.arcane.iris.world.history.TerrainBoundarySignature; +import art.arcane.iris.world.history.NativeBiomeSpawnSelection; import java.util.Optional; import art.arcane.iris.nativegen.NativeGenerationWriteGuard; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.pack.PackValidationRegistry; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.GenerationSessionException; -import art.arcane.iris.engine.framework.GenerationSessionLease; -import art.arcane.iris.engine.framework.NativeFeatureGenerationPolicy; -import art.arcane.iris.engine.framework.NativeStructureStartPlan; -import art.arcane.iris.engine.history.GenerationEpoch; -import art.arcane.iris.engine.history.GenerationHistory; -import art.arcane.iris.engine.history.GenerationHistoryRuntimeRouter; -import art.arcane.iris.engine.history.GenerationRegistryContract; -import art.arcane.iris.engine.history.GenerationRegistryContractFactory; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisImportedStructureControl; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.PackValidationRegistry; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.GenerationSessionException; +import art.arcane.iris.generation.runtime.GenerationSessionLease; +import art.arcane.iris.structure.nativegen.NativeFeatureGenerationPolicy; +import art.arcane.iris.structure.nativegen.NativeStructureStartPlan; +import art.arcane.iris.world.history.GenerationEpoch; +import art.arcane.iris.world.history.GenerationHistory; +import art.arcane.iris.world.history.GenerationHistoryRuntimeRouter; +import art.arcane.iris.world.history.GenerationRegistryContract; +import art.arcane.iris.world.history.GenerationRegistryContractFactory; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.structure.nativegen.IrisImportedStructureControl; import art.arcane.iris.nativegen.NativeStructureStartInjector; import art.arcane.iris.nativegen.NativeStructureReferenceRepair; import art.arcane.iris.nativegen.NativeStructureVanillaLocator; @@ -46,8 +46,8 @@ import art.arcane.iris.nativegen.NativeStructureVolumeIndex; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.context.IrisContext; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.iris.generation.context.IrisContext; +import art.arcane.volmlib.util.hunk.Hunk; import com.mojang.datafixers.util.Pair; import com.mojang.serialization.Codec; import com.mojang.serialization.MapCodec; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/MainWorldService.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/MainWorldService.java index ef2e55f8e..b382e21ba 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/MainWorldService.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/MainWorldService.java @@ -18,7 +18,7 @@ package art.arcane.iris.modded; -import art.arcane.iris.engine.IrisEngineMantle; +import art.arcane.iris.generation.runtime.IrisEngineMantle; import java.io.IOException; import java.nio.charset.StandardCharsets; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedBiomeWriter.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedBiomeWriter.java index b31a6d498..93021b5f1 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedBiomeWriter.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedBiomeWriter.java @@ -18,16 +18,16 @@ package art.arcane.iris.modded; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.DimensionStackContext; -import art.arcane.iris.engine.DimensionTerrainContext; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBiomeCustom; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.DimensionStackContext; +import art.arcane.iris.generation.runtime.DimensionTerrainContext; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiomeCustom; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBiomeWriter; -import art.arcane.iris.util.project.context.IrisContext; +import art.arcane.iris.generation.context.IrisContext; import net.minecraft.core.Registry; import net.minecraft.core.registries.Registries; import net.minecraft.resources.Identifier; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedBlockBreakHandler.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedBlockBreakHandler.java index a5f12408e..1bb552c53 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedBlockBreakHandler.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedBlockBreakHandler.java @@ -18,16 +18,16 @@ package art.arcane.iris.modded; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.LootResolver; -import art.arcane.iris.engine.framework.TreeBlockMaterial; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBlockData; -import art.arcane.iris.engine.object.IrisBlockDrops; -import art.arcane.iris.engine.object.IrisLoot; -import art.arcane.iris.engine.object.IrisMarker; -import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.placement.LootResolver; +import art.arcane.iris.generation.decoration.tree.TreeBlockMaterial; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.block.IrisBlockData; +import art.arcane.iris.world.loot.IrisBlockDrops; +import art.arcane.iris.world.loot.IrisLoot; +import art.arcane.iris.world.entity.IrisMarker; +import art.arcane.iris.generation.terrain.IrisRegion; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.modded.service.ModdedTreeFellerService; import art.arcane.volmlib.util.collection.KList; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedBlockBuffer.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedBlockBuffer.java index 52d68111c..f3e7e75a6 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedBlockBuffer.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedBlockBuffer.java @@ -19,7 +19,7 @@ package art.arcane.iris.modded; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; public final class ModdedBlockBuffer implements Hunk { private final PlatformBlockState[] data; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedBlockResolution.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedBlockResolution.java index 17c06b69b..93428a58c 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedBlockResolution.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedBlockResolution.java @@ -18,7 +18,7 @@ package art.arcane.iris.modded; -import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.configuration.IrisSettings; import art.arcane.iris.modded.api.ModdedCustomContentRegistry; import art.arcane.iris.modded.api.ModdedBlockData; import art.arcane.iris.spi.IrisLogging; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedDeathLoot.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedDeathLoot.java index 06ac3f694..487fefd48 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedDeathLoot.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedDeathLoot.java @@ -18,9 +18,9 @@ package art.arcane.iris.modded; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.InventorySlotType; -import art.arcane.iris.engine.object.IrisLootTable; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.world.loot.InventorySlotType; +import art.arcane.iris.world.loot.IrisLootTable; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedDecoratorHooks.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedDecoratorHooks.java index 381018d27..738804744 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedDecoratorHooks.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedDecoratorHooks.java @@ -18,10 +18,10 @@ package art.arcane.iris.modded; -import art.arcane.iris.engine.decorator.DecoratorPlatformHooks; -import art.arcane.iris.engine.mantle.EngineMantle; +import art.arcane.iris.generation.decoration.DecoratorPlatformHooks; +import art.arcane.iris.generation.mantle.EngineMantle; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.EmptyBlockGetter; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedDimensionManager.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedDimensionManager.java index 124ed0035..2e01f9652 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedDimensionManager.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedDimensionManager.java @@ -18,11 +18,11 @@ package art.arcane.iris.modded; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.pack.PackValidationRegistry; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.history.GenerationActivation; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.PackValidationRegistry; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.world.history.GenerationActivation; +import art.arcane.iris.generation.terrain.IrisDimension; import net.minecraft.core.BlockPos; import net.minecraft.core.Holder; import net.minecraft.core.Registry; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedDimensionMetadata.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedDimensionMetadata.java index 60d9185a1..2a39dbb2b 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedDimensionMetadata.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedDimensionMetadata.java @@ -18,14 +18,14 @@ package art.arcane.iris.modded; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.DimensionStackContext; -import art.arcane.iris.engine.DimensionTerrainContext; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBiomeCustom; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.DimensionStackContext; +import art.arcane.iris.generation.runtime.DimensionTerrainContext; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiomeCustom; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; import net.minecraft.resources.Identifier; import java.util.LinkedHashSet; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedDimensionStorage.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedDimensionStorage.java index 9713e0e05..8a8baa828 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedDimensionStorage.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedDimensionStorage.java @@ -18,8 +18,8 @@ package art.arcane.iris.modded; -import art.arcane.iris.engine.IrisEngineMantle; -import art.arcane.iris.engine.history.GenerationHistoryPaths; +import art.arcane.iris.generation.runtime.IrisEngineMantle; +import art.arcane.iris.world.history.GenerationHistoryPaths; import net.minecraft.resources.ResourceKey; import net.minecraft.server.MinecraftServer; import net.minecraft.world.level.Level; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedEngineBootstrap.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedEngineBootstrap.java index 4fd0ed2d1..b8b4170d3 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedEngineBootstrap.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedEngineBootstrap.java @@ -18,17 +18,17 @@ package art.arcane.iris.modded; -import art.arcane.iris.core.gui.GuiHost; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.engine.decorator.DecoratorPlatformHooks; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineEffectsProvider; -import art.arcane.iris.engine.framework.EnginePlatformHooks; -import art.arcane.iris.engine.framework.EngineWorldManagerProvider; -import art.arcane.iris.engine.framework.PreservationRegistry; -import art.arcane.iris.engine.object.BlockDataMergeSupport; -import art.arcane.iris.engine.object.IrisObjectRotation; -import art.arcane.iris.engine.object.TileData; +import art.arcane.iris.studio.view.GuiHost; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.generation.decoration.DecoratorPlatformHooks; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineEffectsProvider; +import art.arcane.iris.generation.runtime.EnginePlatformHooks; +import art.arcane.iris.generation.runtime.EngineWorldManagerProvider; +import art.arcane.iris.generation.runtime.PreservationRegistry; +import art.arcane.iris.generation.block.BlockDataMergeSupport; +import art.arcane.iris.structure.object.IrisObjectRotation; +import art.arcane.iris.generation.block.TileData; import art.arcane.iris.modded.api.ModdedCustomContentRegistry; import art.arcane.iris.modded.command.IrisModdedCommands; import art.arcane.iris.modded.command.ModdedGuiHost; @@ -48,7 +48,7 @@ import art.arcane.iris.modded.service.ModdedTreeFellerService; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.util.common.parallel.MultiBurst; +import art.arcane.iris.generation.concurrent.MultiBurst; import net.minecraft.core.BlockPos; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerLevel; @@ -60,9 +60,9 @@ import java.util.ArrayDeque; public final class ModdedEngineBootstrap { private static final String[] CORE_SELF_TEST_CLASSES = { - "art.arcane.iris.engine.IrisEngine", - "art.arcane.iris.util.common.data.B", - "art.arcane.iris.core.loader.IrisData" + "art.arcane.iris.generation.runtime.IrisEngine", + "art.arcane.iris.generation.block.B", + "art.arcane.iris.pack.loading.IrisData" }; private static final Object LOCK = new Object(); private static final ModdedServiceManager UNBOUND_SERVICE_MANAGER = new ModdedServiceManager(); diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedEngineEffects.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedEngineEffects.java index 1afb21b8f..8c6a7ec91 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedEngineEffects.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedEngineEffects.java @@ -18,15 +18,15 @@ package art.arcane.iris.modded; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.BiomeEnvironment; -import art.arcane.iris.engine.history.SavedBiomeUnavailableException; -import art.arcane.iris.engine.framework.EngineAssignedComponent; -import art.arcane.iris.engine.framework.EngineEffects; -import art.arcane.iris.engine.object.IrisCommand; -import art.arcane.iris.engine.object.IrisCommandRegistry; -import art.arcane.iris.engine.object.IrisEffect; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.BiomeEnvironment; +import art.arcane.iris.world.history.SavedBiomeUnavailableException; +import art.arcane.iris.generation.runtime.EngineAssignedComponent; +import art.arcane.iris.generation.runtime.EngineEffects; +import art.arcane.iris.command.IrisCommand; +import art.arcane.iris.command.IrisCommandRegistry; +import art.arcane.iris.world.entity.IrisEffect; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.math.RNG; import net.minecraft.core.Holder; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedEntityCommandRunner.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedEntityCommandRunner.java index f1a6709eb..695730fd4 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedEntityCommandRunner.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedEntityCommandRunner.java @@ -1,6 +1,6 @@ package art.arcane.iris.modded; -import art.arcane.iris.engine.object.IrisCommand; +import art.arcane.iris.command.IrisCommand; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.collection.KList; import net.minecraft.server.MinecraftServer; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedEntitySpawner.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedEntitySpawner.java index 7e882a604..93da76a3c 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedEntitySpawner.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedEntitySpawner.java @@ -18,13 +18,13 @@ package art.arcane.iris.modded; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.LootResolver; -import art.arcane.iris.engine.object.IrisAttributeModifier; -import art.arcane.iris.engine.object.IrisEntity; -import art.arcane.iris.engine.object.IrisEffect; -import art.arcane.iris.engine.object.IrisLoot; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.placement.LootResolver; +import art.arcane.iris.world.entity.IrisAttributeModifier; +import art.arcane.iris.world.entity.IrisEntity; +import art.arcane.iris.world.entity.IrisEffect; +import art.arcane.iris.world.loot.IrisLoot; import art.arcane.iris.modded.api.ModdedCustomContentRegistry; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.collection.KList; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedForcedDatapack.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedForcedDatapack.java index e7dbe3408..9d5c3487c 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedForcedDatapack.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedForcedDatapack.java @@ -18,26 +18,26 @@ package art.arcane.iris.modded; -import art.arcane.iris.core.IrisDatapackCompiler; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.RuntimeUiMessages; -import art.arcane.iris.core.nms.datapack.DataVersion; -import art.arcane.iris.core.nms.datapack.IDataFixer; -import art.arcane.iris.core.pack.PackDirectoryResolver; -import art.arcane.iris.core.pack.PackValidationResult; -import art.arcane.iris.core.pack.PackValidator; -import art.arcane.iris.engine.history.GenerationEpoch; -import art.arcane.iris.engine.history.GenerationHistory; -import art.arcane.iris.engine.history.GenerationHistoryPaths; -import art.arcane.iris.engine.history.GenerationRegistryContract; -import art.arcane.iris.engine.history.GenerationRegistryContract.PhysicalResourceKey; -import art.arcane.iris.engine.history.GenerationRegistryContractFactory; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBiomeCustom; -import art.arcane.iris.engine.object.IrisCustomBiomeAliasResolver; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisDimensionType; +import art.arcane.iris.pack.datapack.IrisDatapackCompiler; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.RuntimeUiMessages; +import art.arcane.iris.platform.bukkit.nms.datapack.DataVersion; +import art.arcane.iris.platform.bukkit.nms.datapack.IDataFixer; +import art.arcane.iris.pack.PackDirectoryResolver; +import art.arcane.iris.pack.PackValidationResult; +import art.arcane.iris.pack.PackValidator; +import art.arcane.iris.world.history.GenerationEpoch; +import art.arcane.iris.world.history.GenerationHistory; +import art.arcane.iris.world.history.GenerationHistoryPaths; +import art.arcane.iris.world.history.GenerationRegistryContract; +import art.arcane.iris.world.history.GenerationRegistryContract.PhysicalResourceKey; +import art.arcane.iris.world.history.GenerationRegistryContractFactory; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiomeCustom; +import art.arcane.iris.generation.biome.IrisCustomBiomeAliasResolver; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisDimensionType; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KSet; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedGenerationHistoryStorage.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedGenerationHistoryStorage.java index d62dfd464..9667912bf 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedGenerationHistoryStorage.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedGenerationHistoryStorage.java @@ -1,18 +1,18 @@ package art.arcane.iris.modded; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.pack.BrokenPackException; -import art.arcane.iris.core.pack.PackValidationRegistry; -import art.arcane.iris.core.pack.PackValidationResult; -import art.arcane.iris.core.pack.PackValidator; -import art.arcane.iris.engine.history.GenerationEpoch; -import art.arcane.iris.engine.history.GenerationEpochContractFactory; -import art.arcane.iris.engine.history.GenerationHistory; -import art.arcane.iris.engine.history.GenerationPackFingerprint; -import art.arcane.iris.engine.history.GenerationRegistryContract; -import art.arcane.iris.engine.history.GenerationRegistryContractFactory; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.pack.BrokenPackException; +import art.arcane.iris.pack.PackValidationRegistry; +import art.arcane.iris.pack.PackValidationResult; +import art.arcane.iris.pack.PackValidator; +import art.arcane.iris.world.history.GenerationEpoch; +import art.arcane.iris.world.history.GenerationEpochContractFactory; +import art.arcane.iris.world.history.GenerationHistory; +import art.arcane.iris.world.history.GenerationPackFingerprint; +import art.arcane.iris.world.history.GenerationRegistryContract; +import art.arcane.iris.world.history.GenerationRegistryContractFactory; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformGenerationRegistry; import net.minecraft.resources.ResourceKey; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedImportedFeatureStage.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedImportedFeatureStage.java index c8df3c137..aee3a386a 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedImportedFeatureStage.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedImportedFeatureStage.java @@ -18,18 +18,18 @@ package art.arcane.iris.modded; -import art.arcane.iris.engine.DimensionStackContext; -import art.arcane.iris.engine.DimensionStackLayout; +import art.arcane.iris.generation.runtime.DimensionStackContext; +import art.arcane.iris.generation.runtime.DimensionStackLayout; import art.arcane.iris.nativegen.NativeGenerationWriteGuard; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.GenerationSessionLease; -import art.arcane.iris.engine.framework.NativeFeatureGenerationPolicy; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBiomeCustom; -import art.arcane.iris.engine.object.IrisDecorationStep; -import art.arcane.iris.engine.object.IrisImportedFeatureControl; -import art.arcane.iris.engine.object.IrisStaticObjectLayer; -import art.arcane.iris.util.project.context.IrisContext; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.GenerationSessionLease; +import art.arcane.iris.structure.nativegen.NativeFeatureGenerationPolicy; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiomeCustom; +import art.arcane.iris.generation.decoration.IrisDecorationStep; +import art.arcane.iris.structure.nativegen.IrisImportedFeatureControl; +import art.arcane.iris.structure.object.IrisStaticObjectLayer; +import art.arcane.iris.generation.context.IrisContext; import it.unimi.dsi.fastutil.ints.IntArraySet; import it.unimi.dsi.fastutil.ints.IntSet; import net.minecraft.core.BlockPos; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedIrisLog.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedIrisLog.java index 7fcf1193b..6574d940b 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedIrisLog.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedIrisLog.java @@ -18,7 +18,7 @@ package art.arcane.iris.modded; -import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.configuration.IrisSettings; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.LogLevel; import org.slf4j.Logger; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedIrisSplash.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedIrisSplash.java index bf3ee022c..e356feab8 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedIrisSplash.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedIrisSplash.java @@ -19,9 +19,9 @@ package art.arcane.iris.modded; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.splash.IrisSplashComposer; -import art.arcane.iris.core.splash.IrisSplashRenderer; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.diagnostics.splash.IrisSplashComposer; +import art.arcane.iris.diagnostics.splash.IrisSplashRenderer; import art.arcane.iris.spi.IrisLogging; import java.io.File; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedItemTranslator.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedItemTranslator.java index 79149a98f..ee0ffd264 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedItemTranslator.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedItemTranslator.java @@ -18,12 +18,12 @@ package art.arcane.iris.modded; -import art.arcane.iris.engine.framework.LootResolver; -import art.arcane.iris.engine.object.InventorySlotType; -import art.arcane.iris.engine.object.IrisAttributeModifier; -import art.arcane.iris.engine.object.IrisEnchantment; -import art.arcane.iris.engine.object.IrisLoot; -import art.arcane.iris.engine.object.IrisLootTable; +import art.arcane.iris.structure.placement.LootResolver; +import art.arcane.iris.world.loot.InventorySlotType; +import art.arcane.iris.world.entity.IrisAttributeModifier; +import art.arcane.iris.world.entity.IrisEnchantment; +import art.arcane.iris.world.loot.IrisLoot; +import art.arcane.iris.world.loot.IrisLootTable; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedLootApplier.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedLootApplier.java index eab4ca87d..2886d4cc9 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedLootApplier.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedLootApplier.java @@ -18,15 +18,15 @@ package art.arcane.iris.modded; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.LootResolver; -import art.arcane.iris.engine.framework.PlacedObject; -import art.arcane.iris.engine.object.IObjectLoot; -import art.arcane.iris.engine.object.InventorySlotType; -import art.arcane.iris.engine.object.IrisLootTable; -import art.arcane.iris.engine.object.IrisObjectLoot; -import art.arcane.iris.engine.object.IrisObjectPlacement; -import art.arcane.iris.engine.object.IrisObjectVanillaLoot; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.placement.LootResolver; +import art.arcane.iris.structure.placement.PlacedObject; +import art.arcane.iris.structure.object.IObjectLoot; +import art.arcane.iris.world.loot.InventorySlotType; +import art.arcane.iris.world.loot.IrisLootTable; +import art.arcane.iris.structure.object.IrisObjectLoot; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.structure.object.IrisObjectVanillaLoot; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.volmlib.util.collection.KList; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedNativeStructureStage.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedNativeStructureStage.java index 679203341..36d15997f 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedNativeStructureStage.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedNativeStructureStage.java @@ -22,16 +22,16 @@ import net.minecraft.world.level.chunk.status.ChunkStatus; import art.arcane.iris.nativegen.NativeGenerationWriteGuard; -import art.arcane.iris.engine.DimensionStackContext; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.IrisStructureLocator; -import art.arcane.iris.engine.framework.NativeStructureGenerationPolicy; -import art.arcane.iris.engine.framework.NativeStructureOwnershipRecord; -import art.arcane.iris.engine.framework.NativeStructureOwnershipStore; -import art.arcane.iris.engine.framework.NativeStructureStartPlan; -import art.arcane.iris.engine.object.IrisMaterialPalette; -import art.arcane.iris.engine.object.IrisNativeStructureDecision; -import art.arcane.iris.engine.object.IrisStaticObjectLayer; +import art.arcane.iris.generation.runtime.DimensionStackContext; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.placement.IrisStructureLocator; +import art.arcane.iris.structure.nativegen.NativeStructureGenerationPolicy; +import art.arcane.iris.structure.nativegen.NativeStructureOwnershipRecord; +import art.arcane.iris.structure.nativegen.NativeStructureOwnershipStore; +import art.arcane.iris.structure.nativegen.NativeStructureStartPlan; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; +import art.arcane.iris.structure.nativegen.IrisNativeStructureDecision; +import art.arcane.iris.structure.object.IrisStaticObjectLayer; import art.arcane.iris.nativegen.NativeStructureGenerationException; import art.arcane.iris.nativegen.NativeStructureLocatePersistence; import art.arcane.iris.nativegen.NativeStructureLocateResults; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedNativeTerrainReceipts.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedNativeTerrainReceipts.java index 7fec60106..01bd31b01 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedNativeTerrainReceipts.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedNativeTerrainReceipts.java @@ -1,7 +1,7 @@ package art.arcane.iris.modded; -import art.arcane.iris.engine.history.GenerationHistoryRuntimeRouter; -import art.arcane.iris.engine.history.NativeTerrainReceipt; +import art.arcane.iris.world.history.GenerationHistoryRuntimeRouter; +import art.arcane.iris.world.history.NativeTerrainReceipt; import net.minecraft.world.level.chunk.ChunkAccess; import net.minecraft.world.level.chunk.ImposterProtoChunk; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedParityProbe.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedParityProbe.java index f99c7a0e3..08b971eed 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedParityProbe.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedParityProbe.java @@ -18,16 +18,16 @@ package art.arcane.iris.modded; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineTarget; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisWorld; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineTarget; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.world.IrisWorld; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; import net.minecraft.server.MinecraftServer; import java.io.File; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedProtocolHandler.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedProtocolHandler.java index f5ba0229e..4e8e03bad 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedProtocolHandler.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedProtocolHandler.java @@ -18,13 +18,13 @@ package art.arcane.iris.modded; -import art.arcane.iris.core.protocol.EngineResolver; -import art.arcane.iris.core.protocol.IrisCursorRequestService; -import art.arcane.iris.core.protocol.IrisProtocolServer; -import art.arcane.iris.core.protocol.IrisSession; -import art.arcane.iris.core.protocol.IrisSessionRegistry; -import art.arcane.iris.core.protocol.IrisVisionRequestService; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.platform.protocol.EngineResolver; +import art.arcane.iris.platform.protocol.IrisCursorRequestService; +import art.arcane.iris.platform.protocol.IrisProtocolServer; +import art.arcane.iris.platform.protocol.IrisSession; +import art.arcane.iris.platform.protocol.IrisSessionRegistry; +import art.arcane.iris.platform.protocol.IrisVisionRequestService; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.spi.protocol.IrisProtocol; import net.minecraft.server.MinecraftServer; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedProtocolTransport.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedProtocolTransport.java index a2daa7a5e..da51279b4 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedProtocolTransport.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedProtocolTransport.java @@ -18,7 +18,7 @@ package art.arcane.iris.modded; -import art.arcane.iris.core.protocol.IrisServerTransport; +import art.arcane.iris.platform.protocol.IrisServerTransport; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerPlayer; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedRuntimeRegistry.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedRuntimeRegistry.java index ac5a1ce53..7bb65d703 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedRuntimeRegistry.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedRuntimeRegistry.java @@ -18,11 +18,11 @@ package art.arcane.iris.modded; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBiomeCustom; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.util.common.data.DataProvider; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiomeCustom; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.block.DataProvider; import net.minecraft.core.Registry; import net.minecraft.core.RegistryAccess; import net.minecraft.core.registries.Registries; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedSavedTerrainCapture.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedSavedTerrainCapture.java index 19e536604..19295506e 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedSavedTerrainCapture.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedSavedTerrainCapture.java @@ -1,7 +1,7 @@ package art.arcane.iris.modded; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.history.SavedTerrainChunk; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.world.history.SavedTerrainChunk; import art.arcane.iris.modded.mixin.ChunkMapTerrainReceiptAccess; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.nbt.CompoundTag; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedSpawnTableMerger.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedSpawnTableMerger.java index 52e162a1f..7a92bf814 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedSpawnTableMerger.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedSpawnTableMerger.java @@ -18,15 +18,15 @@ package art.arcane.iris.modded; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.DimensionStackContext; -import art.arcane.iris.engine.DimensionTerrainContext; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.GenerationSessionLease; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBiomeCustom; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.util.project.context.IrisContext; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.DimensionStackContext; +import art.arcane.iris.generation.runtime.DimensionTerrainContext; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.GenerationSessionLease; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiomeCustom; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.context.IrisContext; import net.minecraft.core.Holder; import net.minecraft.core.Registry; import net.minecraft.resources.Identifier; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedStartup.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedStartup.java index ed4608108..6fdd41506 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedStartup.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedStartup.java @@ -18,12 +18,12 @@ package art.arcane.iris.modded; -import art.arcane.iris.core.pack.BrokenPackException; -import art.arcane.iris.core.pack.PackDirectoryResolver; -import art.arcane.iris.core.pack.PackDownloader; -import art.arcane.iris.core.pack.PackValidationRegistry; -import art.arcane.iris.core.pack.PackValidationResult; -import art.arcane.iris.core.pack.PackValidator; +import art.arcane.iris.pack.BrokenPackException; +import art.arcane.iris.pack.PackDirectoryResolver; +import art.arcane.iris.pack.PackDownloader; +import art.arcane.iris.pack.PackValidationRegistry; +import art.arcane.iris.pack.PackValidationResult; +import art.arcane.iris.pack.PackValidator; import art.arcane.iris.modded.command.ModdedPackCommands; import art.arcane.iris.spi.IrisPlatforms; import net.minecraft.commands.Commands; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedStateMerger.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedStateMerger.java index 1f527d00c..c6dcf0d6d 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedStateMerger.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedStateMerger.java @@ -18,7 +18,7 @@ package art.arcane.iris.modded; -import art.arcane.iris.engine.object.BlockDataMergeSupport; +import art.arcane.iris.generation.block.BlockDataMergeSupport; import art.arcane.iris.spi.PlatformBlockState; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.Property; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedStateRotator.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedStateRotator.java index e36a1d186..9e3ecfdcd 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedStateRotator.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedStateRotator.java @@ -18,10 +18,10 @@ package art.arcane.iris.modded; -import art.arcane.iris.engine.object.IrisObjectRotation; +import art.arcane.iris.structure.object.IrisObjectRotation; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.generation.geometry.IrisBlockVector; import net.minecraft.core.Direction; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BooleanProperty; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedStructureSetFrequencyOverrides.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedStructureSetFrequencyOverrides.java index 4e8dc72b0..bbc9a28fb 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedStructureSetFrequencyOverrides.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedStructureSetFrequencyOverrides.java @@ -18,8 +18,8 @@ package art.arcane.iris.modded; -import art.arcane.iris.engine.framework.NativeStructureFrequencyScale; -import art.arcane.iris.engine.object.IrisImportedStructureControl; +import art.arcane.iris.structure.nativegen.NativeStructureFrequencyScale; +import art.arcane.iris.structure.nativegen.IrisImportedStructureControl; import net.minecraft.core.Holder; import net.minecraft.core.HolderOwner; import net.minecraft.core.Vec3i; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedTileData.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedTileData.java index 59612886f..570474313 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedTileData.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedTileData.java @@ -18,7 +18,7 @@ package art.arcane.iris.modded; -import art.arcane.iris.engine.object.TileData; +import art.arcane.iris.generation.block.TileData; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.volmlib.util.collection.KMap; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedTileReader.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedTileReader.java index b0a3e4915..d526da956 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedTileReader.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedTileReader.java @@ -18,7 +18,7 @@ package art.arcane.iris.modded; -import art.arcane.iris.engine.object.TileData; +import art.arcane.iris.generation.block.TileData; import art.arcane.volmlib.util.collection.KMap; import com.google.gson.Gson; import com.google.gson.GsonBuilder; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedWorkspaceGenerator.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedWorkspaceGenerator.java index 9c96885b7..55b9b8cb7 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedWorkspaceGenerator.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedWorkspaceGenerator.java @@ -18,12 +18,12 @@ package art.arcane.iris.modded; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.core.project.SchemaBuilder; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.pack.schema.SchemaBuilder; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.io.IO; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedWorldEngines.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedWorldEngines.java index 9063dea2f..2dd11192d 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedWorldEngines.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedWorldEngines.java @@ -18,23 +18,23 @@ package art.arcane.iris.modded; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.pack.PackValidationRegistry; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineTarget; -import art.arcane.iris.engine.history.GenerationActivation; -import art.arcane.iris.engine.history.GenerationEpoch; -import art.arcane.iris.engine.history.GenerationEpochContractFactory; -import art.arcane.iris.engine.history.GenerationHistory; -import art.arcane.iris.engine.history.GenerationAdmission; -import art.arcane.iris.engine.history.GenerationHistoryRuntimeRouter; -import art.arcane.iris.engine.history.IrisBoundarySignatureSampler; -import art.arcane.iris.engine.history.TransitionGenerationPlan; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisDimensionRuntimeContract; -import art.arcane.iris.engine.object.IrisWorld; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.PackValidationRegistry; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineTarget; +import art.arcane.iris.world.history.GenerationActivation; +import art.arcane.iris.world.history.GenerationEpoch; +import art.arcane.iris.world.history.GenerationEpochContractFactory; +import art.arcane.iris.world.history.GenerationHistory; +import art.arcane.iris.world.history.GenerationAdmission; +import art.arcane.iris.world.history.GenerationHistoryRuntimeRouter; +import art.arcane.iris.world.history.IrisBoundarySignatureSampler; +import art.arcane.iris.world.history.TransitionGenerationPlan; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisDimensionRuntimeContract; +import art.arcane.iris.world.IrisWorld; import art.arcane.iris.modded.command.ModdedGuiHost; import art.arcane.iris.spi.IrisPlatforms; import net.minecraft.server.level.ServerLevel; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedWorldManager.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedWorldManager.java index 68e4caeaa..9fffc8245 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedWorldManager.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedWorldManager.java @@ -18,25 +18,25 @@ package art.arcane.iris.modded; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.gui.PregeneratorJob; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.BiomeEnvironment; -import art.arcane.iris.engine.history.SavedBiomeUnavailableException; -import art.arcane.iris.engine.framework.EngineLifecycleTasks; -import art.arcane.iris.engine.framework.EngineWorldManager; -import art.arcane.iris.engine.framework.LootResolver; -import art.arcane.iris.engine.object.IRare; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisEntity; -import art.arcane.iris.engine.object.IrisEntitySpawn; -import art.arcane.iris.engine.object.IrisMarker; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.IrisRange; -import art.arcane.iris.engine.object.IrisSpawnGroup; -import art.arcane.iris.engine.object.IrisSpawner; -import art.arcane.iris.engine.object.IrisSurface; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.studio.view.PregeneratorJob; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.BiomeEnvironment; +import art.arcane.iris.world.history.SavedBiomeUnavailableException; +import art.arcane.iris.generation.runtime.EngineLifecycleTasks; +import art.arcane.iris.generation.runtime.EngineWorldManager; +import art.arcane.iris.structure.placement.LootResolver; +import art.arcane.volmlib.util.math.Rarity; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.world.entity.IrisEntity; +import art.arcane.iris.world.entity.IrisEntitySpawn; +import art.arcane.iris.world.entity.IrisMarker; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.pack.value.IrisRange; +import art.arcane.iris.world.entity.IrisSpawnGroup; +import art.arcane.iris.world.entity.IrisSpawner; +import art.arcane.iris.generation.decoration.IrisSurface; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.mantle.flag.MantleFlag; @@ -823,7 +823,7 @@ public final class ModdedWorldManager implements EngineWorldManager { } private IrisEntitySpawn rarityPick(KList entries) { - KList weighted = IRare.expandWeighted(entries); + KList weighted = Rarity.expandWeighted(entries); return weighted.isEmpty() ? entries.getRandom() : weighted.getRandom(); } diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedWorldgenIds.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedWorldgenIds.java index c1f5ed255..d305dff4b 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedWorldgenIds.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedWorldgenIds.java @@ -1,6 +1,6 @@ package art.arcane.iris.modded; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.generation.runtime.Engine; import java.nio.charset.StandardCharsets; import java.util.HexFormat; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/WorldCheckDimensionContract.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/WorldCheckDimensionContract.java index 89bcbbf84..0342df0a0 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/WorldCheckDimensionContract.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/WorldCheckDimensionContract.java @@ -18,8 +18,8 @@ package art.arcane.iris.modded; -import art.arcane.iris.core.nms.datapack.DataVersion; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.platform.bukkit.nms.datapack.DataVersion; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.volmlib.util.json.JSONObject; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.item.ItemEntity; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/WorldCheckPredicates.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/WorldCheckPredicates.java index afce7142d..e19e006a8 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/WorldCheckPredicates.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/WorldCheckPredicates.java @@ -18,7 +18,7 @@ package art.arcane.iris.modded; -import art.arcane.iris.engine.framework.StructureVerticalBounds; +import art.arcane.iris.structure.placement.StructureVerticalBounds; import art.arcane.iris.modded.WorldCheckStructureAudit.StructureCheck; import java.security.MessageDigest; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/WorldCheckStructureAudit.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/WorldCheckStructureAudit.java index a8341cf5f..35ecb71f0 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/WorldCheckStructureAudit.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/WorldCheckStructureAudit.java @@ -18,9 +18,9 @@ package art.arcane.iris.modded; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.NativeStructureGenerationPolicy; -import art.arcane.iris.engine.object.IrisNativeStructureDecision; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.nativegen.NativeStructureGenerationPolicy; +import art.arcane.iris.structure.nativegen.IrisNativeStructureDecision; import art.arcane.iris.nativegen.NativeStructureFoundationBuilder; import art.arcane.iris.nativegen.NativeStructureVegetationClearer; import com.mojang.datafixers.util.Pair; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/api/IrisModdedAPI.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/api/IrisModdedAPI.java index 43b4dcf47..9c864aca4 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/api/IrisModdedAPI.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/api/IrisModdedAPI.java @@ -18,9 +18,9 @@ package art.arcane.iris.modded.api; -import art.arcane.iris.core.tools.WorldMaintenance; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineLifecycleTasks; +import art.arcane.iris.world.WorldMaintenance; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineLifecycleTasks; import art.arcane.iris.modded.IrisModdedChunkGenerator; import art.arcane.iris.modded.command.ModdedPregenJob; import net.minecraft.server.level.ServerLevel; @@ -39,7 +39,7 @@ import net.minecraft.world.level.chunk.ChunkGenerator; * global state and belong on the server thread, during mod setup or from a command. *

* Stability. This class and the {@code Modded*} types beside it are the intended integration surface. The - * types they expose from {@code art.arcane.iris.engine.*} and {@code art.arcane.iris.core.*} - notably + * types they expose from {@code art.arcane.iris.generation.runtime.*} and {@code art.arcane.iris.pack.*} - notably * {@link Engine} - are internal to Iris and change without a deprecation cycle. Treat {@link Engine} as an opaque * token to hand back to Iris, and prefer the wrappers here over reaching into it. * diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/api/ModdedBlockPlacementContext.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/api/ModdedBlockPlacementContext.java index dc5110b31..559d9af6c 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/api/ModdedBlockPlacementContext.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/api/ModdedBlockPlacementContext.java @@ -18,7 +18,7 @@ package art.arcane.iris.modded.api; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.generation.runtime.Engine; import net.minecraft.core.BlockPos; import net.minecraft.resources.Identifier; import net.minecraft.server.level.ServerLevel; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/api/ModdedCustomContentRegistry.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/api/ModdedCustomContentRegistry.java index e0338846c..19fa93339 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/api/ModdedCustomContentRegistry.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/api/ModdedCustomContentRegistry.java @@ -19,7 +19,7 @@ package art.arcane.iris.modded.api; import art.arcane.iris.modded.ModdedIrisLog; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.iris.modded.ModdedBlockResolution; import net.minecraft.core.BlockPos; import net.minecraft.resources.Identifier; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/IrisModdedCommands.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/IrisModdedCommands.java index 646ebfd38..0c2795b97 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/IrisModdedCommands.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/IrisModdedCommands.java @@ -19,16 +19,16 @@ package art.arcane.iris.modded.command; import art.arcane.iris.modded.ModdedIrisLog; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.IrisMessages; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.IrisMessages; import art.arcane.iris.modded.localization.ModdedCommandMessages; -import art.arcane.iris.core.localization.PackDownloadMessages; -import art.arcane.iris.core.localization.RuntimeUiMessages; -import art.arcane.iris.core.lifecycle.LifecycleOperationCoordinator; -import art.arcane.iris.core.pack.PackDownloadExecution; -import art.arcane.iris.core.pack.PackDownloader; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.localization.PackDownloadMessages; +import art.arcane.iris.localization.RuntimeUiMessages; +import art.arcane.iris.world.lifecycle.LifecycleOperationCoordinator; +import art.arcane.iris.pack.PackDownloadExecution; +import art.arcane.iris.pack.PackDownloader; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.iris.modded.IrisModdedChunkGenerator; import art.arcane.iris.modded.ModdedDimensionManager; import art.arcane.iris.modded.ModdedEngineBootstrap; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedCommandHelp.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedCommandHelp.java index 1bc0c377f..4c4dd4456 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedCommandHelp.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedCommandHelp.java @@ -18,8 +18,8 @@ package art.arcane.iris.modded.command; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.IrisMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.IrisMessages; import art.arcane.iris.modded.localization.ModdedHelpMessages; import art.arcane.volmlib.util.director.help.DirectorHelpMessages; import art.arcane.volmlib.util.localization.MessageArgument; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedCommandSuggestions.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedCommandSuggestions.java index f3a9c27a6..c31134ef6 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedCommandSuggestions.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedCommandSuggestions.java @@ -20,16 +20,16 @@ package art.arcane.iris.modded.command; import art.arcane.iris.modded.ModdedIrisLog; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.core.pack.PackDirectoryResolver; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.IrisStructureLocator; -import art.arcane.iris.engine.framework.NativeStructureGenerationPolicy; -import art.arcane.iris.engine.framework.StructureReachability; -import art.arcane.iris.engine.hydrology.HydrologyFeatureQuery; -import art.arcane.iris.engine.history.GenerationFindCatalog; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisNativeStructureDecision; -import art.arcane.iris.engine.object.NativeStructureGenerationStatus; +import art.arcane.iris.pack.PackDirectoryResolver; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.placement.IrisStructureLocator; +import art.arcane.iris.structure.nativegen.NativeStructureGenerationPolicy; +import art.arcane.iris.structure.placement.StructureReachability; +import art.arcane.iris.generation.hydrology.HydrologyFeatureQuery; +import art.arcane.iris.world.history.GenerationFindCatalog; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.structure.nativegen.IrisNativeStructureDecision; +import art.arcane.iris.structure.nativegen.NativeStructureGenerationStatus; import art.arcane.iris.modded.IrisModdedChunkGenerator; import art.arcane.iris.modded.ModdedEngineBootstrap; import art.arcane.iris.modded.ModdedServerLevels; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedDatapackCommands.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedDatapackCommands.java index 4ff0dbdb8..db97aea31 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedDatapackCommands.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedDatapackCommands.java @@ -19,11 +19,11 @@ package art.arcane.iris.modded.command; import art.arcane.iris.modded.ModdedIrisLog; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.nms.datapack.DataVersion; -import art.arcane.iris.core.pack.PackDirectoryResolver; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.platform.bukkit.nms.datapack.DataVersion; +import art.arcane.iris.pack.PackDirectoryResolver; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.iris.modded.IrisModdedChunkGenerator; import art.arcane.iris.modded.ModdedServerLevels; import art.arcane.volmlib.util.collection.KList; @@ -50,9 +50,9 @@ import java.util.Locale; import java.util.Set; import java.util.function.Predicate; -import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.localization.IrisLanguage; import art.arcane.iris.modded.localization.ModdedCommandMessages; -import art.arcane.iris.core.localization.RuntimeUiMessages; +import art.arcane.iris.localization.RuntimeUiMessages; import art.arcane.volmlib.util.localization.MessageArgument; public final class ModdedDatapackCommands { private static final Predicate GATE = Commands.hasPermission(Commands.LEVEL_GAMEMASTERS); diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedDeveloperCommands.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedDeveloperCommands.java index c434c05ed..f32ad02e2 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedDeveloperCommands.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedDeveloperCommands.java @@ -31,7 +31,7 @@ import java.util.Collections; import java.util.Enumeration; import java.util.function.Predicate; -import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.localization.IrisLanguage; import art.arcane.iris.modded.localization.ModdedCommandMessages; import art.arcane.volmlib.util.localization.MessageArgument; final class ModdedDeveloperCommands { diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedDustRevealer.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedDustRevealer.java index 5a6ccd212..e03a2e625 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedDustRevealer.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedDustRevealer.java @@ -19,17 +19,17 @@ package art.arcane.iris.modded.command; import art.arcane.iris.modded.ModdedIrisLog; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.RuntimeUiMessages; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.GenerationSessionException; -import art.arcane.iris.engine.framework.GenerationSessionLease; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.RuntimeUiMessages; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.GenerationSessionException; +import art.arcane.iris.generation.runtime.GenerationSessionLease; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisRegion; import art.arcane.iris.modded.ModdedBlockState; import art.arcane.iris.modded.ModdedEngineBootstrap; import art.arcane.iris.modded.ModdedScheduler; -import art.arcane.iris.util.project.context.IrisContext; +import art.arcane.iris.generation.context.IrisContext; import art.arcane.volmlib.util.localization.MessageArgument; import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedEditCommands.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedEditCommands.java index b561728b6..e2e6fee7c 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedEditCommands.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedEditCommands.java @@ -19,13 +19,13 @@ package art.arcane.iris.modded.command; import art.arcane.iris.modded.ModdedIrisLog; -import art.arcane.iris.core.gui.GuiHost; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.studio.view.GuiHost; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.localization.IrisLanguage; import art.arcane.iris.modded.localization.ModdedCommandMessages; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisRegion; import art.arcane.volmlib.util.localization.MessageArgument; import net.minecraft.commands.CommandSourceStack; import net.minecraft.core.BlockPos; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedGoldenHash.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedGoldenHash.java index 72c6a28e6..bca1d37fa 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedGoldenHash.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedGoldenHash.java @@ -19,14 +19,14 @@ package art.arcane.iris.modded.command; import art.arcane.iris.modded.ModdedIrisLog; -import art.arcane.iris.core.runtime.GoldenHashEngine; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.generation.validation.GoldenHashEngine; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.iris.modded.ModdedBlockBuffer; import art.arcane.iris.modded.ModdedEngineBootstrap; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; import net.minecraft.commands.CommandSourceStack; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerLevel; @@ -35,9 +35,9 @@ import java.io.File; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; -import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.localization.IrisLanguage; import art.arcane.iris.modded.localization.ModdedCommandMessages; -import art.arcane.iris.core.localization.RuntimeProgressMessages; +import art.arcane.iris.localization.RuntimeProgressMessages; import art.arcane.volmlib.util.localization.MessageArgument; public final class ModdedGoldenHash { public enum Mode { diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedGuiHost.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedGuiHost.java index 61f39298b..535453f5b 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedGuiHost.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedGuiHost.java @@ -18,10 +18,10 @@ package art.arcane.iris.modded.command; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.gui.GuiHost; -import art.arcane.iris.core.gui.GuiOverlay; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.studio.view.GuiHost; +import art.arcane.iris.studio.view.GuiOverlay; +import art.arcane.iris.generation.runtime.Engine; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerLevel; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedLanguageCommands.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedLanguageCommands.java index e9c90214c..9eb4becf9 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedLanguageCommands.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedLanguageCommands.java @@ -1,6 +1,6 @@ package art.arcane.iris.modded.command; -import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.localization.IrisLanguage; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.director.help.DirectorHelpMessages; import art.arcane.volmlib.util.localization.PluginLanguageService; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedLocateCommands.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedLocateCommands.java index 0b8c4f4f4..1a2566623 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedLocateCommands.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedLocateCommands.java @@ -19,27 +19,27 @@ package art.arcane.iris.modded.command; import art.arcane.iris.modded.ModdedIrisLog; -import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.localization.IrisLanguage; import art.arcane.iris.modded.localization.ModdedCommandMessages; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.GenerationSessionException; -import art.arcane.iris.engine.framework.GenerationSessionLease; -import art.arcane.iris.engine.framework.IrisStructureLocator; -import art.arcane.iris.engine.framework.Locator; -import art.arcane.iris.engine.framework.NativeStructureGenerationPolicy; -import art.arcane.iris.engine.framework.StructureReachability; -import art.arcane.iris.engine.framework.WrongEngineBroException; -import art.arcane.iris.engine.history.GenerationSemanticQueries; -import art.arcane.iris.engine.history.GenerationFindCatalog; -import art.arcane.iris.engine.hydrology.HydrologyFeatureQuery; -import art.arcane.iris.engine.hydrology.runtime.IrisHydrologyRuntime; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisNativeStructureDecision; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.NativeStructureGenerationStatus; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.GenerationSessionException; +import art.arcane.iris.generation.runtime.GenerationSessionLease; +import art.arcane.iris.structure.placement.IrisStructureLocator; +import art.arcane.iris.generation.locator.Locator; +import art.arcane.iris.structure.nativegen.NativeStructureGenerationPolicy; +import art.arcane.iris.structure.placement.StructureReachability; +import art.arcane.iris.generation.runtime.WrongEngineBroException; +import art.arcane.iris.world.history.GenerationSemanticQueries; +import art.arcane.iris.world.history.GenerationFindCatalog; +import art.arcane.iris.generation.hydrology.HydrologyFeatureQuery; +import art.arcane.iris.generation.hydrology.runtime.IrisHydrologyRuntime; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.structure.nativegen.IrisNativeStructureDecision; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.structure.nativegen.NativeStructureGenerationStatus; import art.arcane.iris.modded.IrisModdedChunkGenerator; -import art.arcane.iris.util.project.context.IrisContext; -import art.arcane.iris.util.common.parallel.MultiBurst; +import art.arcane.iris.generation.context.IrisContext; +import art.arcane.iris.generation.concurrent.MultiBurst; import art.arcane.volmlib.util.localization.MessageArgument; import art.arcane.volmlib.util.math.Position2; import com.mojang.datafixers.util.Pair; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedObjectCommands.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedObjectCommands.java index 5f8f9eac3..45616a02a 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedObjectCommands.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedObjectCommands.java @@ -19,18 +19,18 @@ package art.arcane.iris.modded.command; import art.arcane.iris.modded.ModdedIrisLog; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.tools.TreePlausibilizeBatch; -import art.arcane.iris.core.tools.TreePlausibilizer; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisObjectPlacement; -import art.arcane.iris.engine.object.IrisObjectRotation; -import art.arcane.iris.engine.object.TileData; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.studio.tree.TreePlausibilizeBatch; +import art.arcane.iris.studio.tree.TreePlausibilizer; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.structure.object.IrisObjectRotation; +import art.arcane.iris.generation.block.TileData; import art.arcane.iris.modded.ModdedBlockState; import art.arcane.iris.modded.ModdedTileData; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.math.RNG; import com.mojang.brigadier.arguments.IntegerArgumentType; import com.mojang.brigadier.arguments.StringArgumentType; @@ -68,9 +68,9 @@ import java.util.Map; import java.util.UUID; import java.util.function.Predicate; -import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.localization.IrisLanguage; import art.arcane.iris.modded.localization.ModdedCommandMessages; -import art.arcane.iris.core.localization.RuntimeUiMessages; +import art.arcane.iris.localization.RuntimeUiMessages; import art.arcane.volmlib.util.localization.MessageArgument; public final class ModdedObjectCommands { private static final Predicate GATE = Commands.hasPermission(Commands.LEVEL_GAMEMASTERS); diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedObjectPlacer.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedObjectPlacer.java index 8e320183f..9771bac5b 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedObjectPlacer.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedObjectPlacer.java @@ -19,10 +19,10 @@ package art.arcane.iris.modded.command; import art.arcane.iris.modded.ModdedIrisLog; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IObjectPlacer; -import art.arcane.iris.engine.object.TileData; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.object.IObjectPlacer; +import art.arcane.iris.generation.block.TileData; import art.arcane.iris.modded.ModdedBlockResolution; import art.arcane.iris.modded.ModdedBlockState; import art.arcane.iris.modded.ModdedTileData; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPackCommands.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPackCommands.java index b278eafe9..37f44db6a 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPackCommands.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPackCommands.java @@ -19,13 +19,13 @@ package art.arcane.iris.modded.command; import art.arcane.iris.modded.ModdedIrisLog; -import art.arcane.iris.core.compat.PackCompatReport; +import art.arcane.iris.pack.validation.PackCompatReport; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.core.pack.PackDirectoryResolver; -import art.arcane.iris.core.pack.PackResourceCleanup; -import art.arcane.iris.core.pack.PackValidationRegistry; -import art.arcane.iris.core.pack.PackValidationResult; -import art.arcane.iris.core.pack.PackValidator; +import art.arcane.iris.pack.PackDirectoryResolver; +import art.arcane.iris.pack.PackResourceCleanup; +import art.arcane.iris.pack.PackValidationRegistry; +import art.arcane.iris.pack.PackValidationResult; +import art.arcane.iris.pack.PackValidator; import art.arcane.iris.modded.ModdedEngineBootstrap; import com.mojang.brigadier.arguments.StringArgumentType; import com.mojang.brigadier.builder.LiteralArgumentBuilder; @@ -40,7 +40,7 @@ import java.util.List; import java.util.Map; import java.util.function.Predicate; -import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.localization.IrisLanguage; import art.arcane.iris.modded.localization.ModdedCommandMessages; import art.arcane.volmlib.util.localization.MessageArgument; public final class ModdedPackCommands { diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPregenBossBar.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPregenBossBar.java index 37d2399c6..aecd11925 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPregenBossBar.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPregenBossBar.java @@ -1,10 +1,10 @@ package art.arcane.iris.modded.command; -import art.arcane.iris.core.gui.PregeneratorJob; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.RuntimeUiMessages; -import art.arcane.iris.core.protocol.IrisProtocolServer; -import art.arcane.iris.core.protocol.IrisSession; +import art.arcane.iris.studio.view.PregeneratorJob; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.RuntimeUiMessages; +import art.arcane.iris.platform.protocol.IrisProtocolServer; +import art.arcane.iris.platform.protocol.IrisSession; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.spi.protocol.IrisProtocol; import art.arcane.volmlib.util.format.Form; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPregenCommands.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPregenCommands.java index dafdf3a60..063ad2422 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPregenCommands.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPregenCommands.java @@ -18,11 +18,11 @@ package art.arcane.iris.modded.command; -import art.arcane.iris.core.localization.IrisMessages; -import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.localization.IrisMessages; +import art.arcane.iris.localization.IrisLanguage; import art.arcane.iris.modded.localization.ModdedCommandMessages; -import art.arcane.iris.core.localization.RuntimeUiMessages; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.localization.RuntimeUiMessages; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.volmlib.util.localization.MessageArgument; import com.mojang.brigadier.arguments.IntegerArgumentType; import com.mojang.brigadier.context.CommandContext; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPregenJob.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPregenJob.java index 15ad2cf5d..e8ff62109 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPregenJob.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPregenJob.java @@ -18,16 +18,16 @@ package art.arcane.iris.modded.command; -import art.arcane.iris.core.gui.PregeneratorJob; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.RuntimeUiMessages; -import art.arcane.iris.core.pregenerator.PregenPerformanceProfile; -import art.arcane.iris.core.pregenerator.PregenTask; -import art.arcane.iris.core.pregenerator.PregeneratorMethod; -import art.arcane.iris.core.pregenerator.cache.PregenCache; -import art.arcane.iris.core.pregenerator.cache.PregenSavedChunkStatus; -import art.arcane.iris.core.pregenerator.methods.CachedPregenMethod; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.studio.view.PregeneratorJob; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.RuntimeUiMessages; +import art.arcane.iris.world.pregen.PregenPerformanceProfile; +import art.arcane.iris.world.pregen.PregenTask; +import art.arcane.iris.world.pregen.PregeneratorMethod; +import art.arcane.iris.world.pregen.PregenCache; +import art.arcane.iris.world.pregen.PregenSavedChunkStatus; +import art.arcane.iris.world.pregen.CachedPregenMethod; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.math.Position2; import art.arcane.volmlib.util.localization.MessageArgument; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPregenMethod.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPregenMethod.java index 393fc7a25..b410f12ba 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPregenMethod.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPregenMethod.java @@ -19,11 +19,11 @@ package art.arcane.iris.modded.command; import art.arcane.iris.modded.ModdedIrisLog; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.pregenerator.PregenListener; -import art.arcane.iris.core.pregenerator.PregenMantleBackpressure; -import art.arcane.iris.core.pregenerator.PregeneratorMethod; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.world.pregen.PregenListener; +import art.arcane.iris.world.pregen.PregenMantleBackpressure; +import art.arcane.iris.world.pregen.PregeneratorMethod; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.iris.modded.ModdedGenPool; import art.arcane.volmlib.util.mantle.runtime.Mantle; import net.minecraft.server.MinecraftServer; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedRegen.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedRegen.java index 086f4cd79..09171b09f 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedRegen.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedRegen.java @@ -19,9 +19,9 @@ package art.arcane.iris.modded.command; import art.arcane.iris.modded.ModdedIrisLog; -import art.arcane.iris.core.tools.WorldMaintenance; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.mantle.EngineMantle; +import art.arcane.iris.world.WorldMaintenance; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.mantle.EngineMantle; import art.arcane.iris.modded.IrisModdedChunkGenerator; import art.arcane.iris.modded.ModdedBlockBuffer; import art.arcane.iris.modded.ModdedEngineBootstrap; @@ -29,9 +29,9 @@ import art.arcane.iris.modded.service.ModdedChunkUpdateService; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.math.ChunkSpiral; -import art.arcane.iris.util.common.parallel.MultiBurst; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.math.ChunkSpiral; +import art.arcane.iris.generation.concurrent.MultiBurst; +import art.arcane.volmlib.util.hunk.Hunk; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.math.M; import net.minecraft.commands.CommandSourceStack; @@ -61,7 +61,7 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; -import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.localization.IrisLanguage; import art.arcane.iris.modded.localization.ModdedCommandMessages; public final class ModdedRegen { private static final int APPLY_AHEAD = 8; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedStructureCommands.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedStructureCommands.java index 2fe7a5a08..ca432b154 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedStructureCommands.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedStructureCommands.java @@ -19,16 +19,16 @@ package art.arcane.iris.modded.command; import art.arcane.iris.modded.ModdedIrisLog; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.structure.StructureIndexService; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.PlacedStructurePiece; -import art.arcane.iris.engine.framework.StructureAssembler; -import art.arcane.iris.engine.framework.structure.StructureAssemblyResult; -import art.arcane.iris.engine.object.IrisObjectPlacement; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.IrisStructure; -import art.arcane.iris.engine.object.ObjectPlaceMode; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.structure.StructureIndexService; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.placement.PlacedStructurePiece; +import art.arcane.iris.structure.placement.StructureAssembler; +import art.arcane.iris.structure.graph.StructureAssemblyResult; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.structure.placement.IrisStructure; +import art.arcane.iris.structure.object.ObjectPlaceMode; import art.arcane.volmlib.util.math.RNG; import com.mojang.brigadier.arguments.StringArgumentType; import com.mojang.brigadier.builder.LiteralArgumentBuilder; @@ -48,7 +48,7 @@ import java.util.UUID; import java.util.concurrent.CompletableFuture; import java.util.function.Predicate; -import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.localization.IrisLanguage; import art.arcane.iris.modded.localization.ModdedCommandMessages; import art.arcane.volmlib.util.localization.MessageArgument; public final class ModdedStructureCommands { diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedStudioCommands.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedStudioCommands.java index 1ee48d146..71a691aaf 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedStudioCommands.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedStudioCommands.java @@ -19,35 +19,35 @@ package art.arcane.iris.modded.command; import art.arcane.iris.modded.ModdedIrisLog; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.gui.GuiHost; -import art.arcane.iris.core.gui.ImageMapStudioGUI; -import art.arcane.iris.core.gui.NoiseExplorerGUI; -import art.arcane.iris.core.gui.VisionGUI; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.pack.StructurePackageClosure; -import art.arcane.iris.core.pack.ImageMapPackageClosure; -import art.arcane.iris.core.pack.PackValidationResult; -import art.arcane.iris.core.pack.PackValidator; -import art.arcane.iris.core.project.IrisProjectCopier; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBiomeGeneratorLink; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisEntitySpawn; -import art.arcane.iris.engine.object.IrisGenerator; -import art.arcane.iris.core.pack.PackExportClosure; -import art.arcane.iris.engine.object.IrisEntity; -import art.arcane.iris.engine.object.IrisMarker; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisSpawner; -import art.arcane.iris.engine.object.IrisStructurePlacement; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.studio.view.GuiHost; +import art.arcane.iris.studio.view.ImageMapStudioGUI; +import art.arcane.iris.studio.view.NoiseExplorerGUI; +import art.arcane.iris.studio.view.VisionGUI; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.StructurePackageClosure; +import art.arcane.iris.pack.ImageMapPackageClosure; +import art.arcane.iris.pack.PackValidationResult; +import art.arcane.iris.pack.PackValidator; +import art.arcane.iris.studio.workspace.IrisProjectCopier; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiomeGeneratorLink; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.world.entity.IrisEntitySpawn; +import art.arcane.iris.generation.noise.IrisGenerator; +import art.arcane.iris.pack.PackExportClosure; +import art.arcane.iris.world.entity.IrisEntity; +import art.arcane.iris.world.entity.IrisMarker; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.world.entity.IrisSpawner; +import art.arcane.iris.structure.placement.IrisStructurePlacement; import art.arcane.iris.modded.ModdedDimensionManager; import art.arcane.iris.modded.ModdedEngineBootstrap; import art.arcane.iris.modded.ModdedScheduler; import art.arcane.iris.modded.ModdedWorkspaceGenerator; -import art.arcane.iris.util.common.parallel.BurstExecutor; -import art.arcane.iris.util.common.parallel.MultiBurst; +import art.arcane.iris.generation.concurrent.BurstExecutor; +import art.arcane.iris.generation.concurrent.MultiBurst; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.io.IO; @@ -87,7 +87,7 @@ import java.util.function.Predicate; import java.util.regex.Pattern; import java.util.stream.Stream; -import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.localization.IrisLanguage; import art.arcane.iris.modded.localization.ModdedCommandMessages; import art.arcane.volmlib.util.localization.MessageArgument; public final class ModdedStudioCommands { diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedUnregisteredStructures.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedUnregisteredStructures.java index d13c72263..807f42443 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedUnregisteredStructures.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedUnregisteredStructures.java @@ -19,12 +19,12 @@ package art.arcane.iris.modded.command; import art.arcane.iris.modded.ModdedIrisLog; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.IrisStructureLocator; -import art.arcane.iris.engine.framework.NativeStructureGenerationPolicy; -import art.arcane.iris.engine.framework.StructureReachability; -import art.arcane.iris.engine.object.IrisNativeStructureDecision; -import art.arcane.iris.engine.object.NativeStructureGenerationStatus; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.placement.IrisStructureLocator; +import art.arcane.iris.structure.nativegen.NativeStructureGenerationPolicy; +import art.arcane.iris.structure.placement.StructureReachability; +import art.arcane.iris.structure.nativegen.IrisNativeStructureDecision; +import art.arcane.iris.structure.nativegen.NativeStructureGenerationStatus; import net.minecraft.commands.CommandSourceStack; import net.minecraft.core.Holder; import net.minecraft.core.Registry; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedVisionOverlay.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedVisionOverlay.java index fd0f55219..078d90f00 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedVisionOverlay.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedVisionOverlay.java @@ -18,12 +18,12 @@ package art.arcane.iris.modded.command; -import art.arcane.iris.core.gui.GuiHost; -import art.arcane.iris.core.gui.GuiMarker; -import art.arcane.iris.core.gui.GuiOverlay; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.render.RenderType; +import art.arcane.iris.studio.view.GuiHost; +import art.arcane.iris.studio.view.GuiMarker; +import art.arcane.iris.studio.view.GuiOverlay; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.studio.render.RenderType; import art.arcane.iris.modded.ModdedDimensionManager; import art.arcane.iris.modded.ModdedIrisLog; import net.minecraft.server.MinecraftServer; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedWandService.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedWandService.java index 8e1d16552..15f6b8823 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedWandService.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedWandService.java @@ -19,8 +19,8 @@ package art.arcane.iris.modded.command; import art.arcane.iris.modded.ModdedIrisLog; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.RuntimeUiMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.RuntimeUiMessages; import art.arcane.volmlib.util.localization.MessageArgument; import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedWhatCommands.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedWhatCommands.java index 6ed63a213..15ab7d0b7 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedWhatCommands.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedWhatCommands.java @@ -19,22 +19,22 @@ package art.arcane.iris.modded.command; import art.arcane.iris.modded.ModdedIrisLog; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.IrisMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.IrisMessages; import art.arcane.iris.modded.localization.ModdedCommandMessages; -import art.arcane.iris.core.localization.RuntimeUiMessages; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.history.SavedBiomeUnavailableException; -import art.arcane.iris.engine.framework.GenerationSessionException; -import art.arcane.iris.engine.framework.GenerationSessionLease; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.localization.RuntimeUiMessages; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.world.history.SavedBiomeUnavailableException; +import art.arcane.iris.generation.runtime.GenerationSessionException; +import art.arcane.iris.generation.runtime.GenerationSessionLease; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.generation.terrain.IrisRegion; import art.arcane.iris.modded.ModdedBlockState; import art.arcane.iris.modded.ModdedEngineBootstrap; import art.arcane.iris.modded.ModdedScheduler; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.context.IrisContext; +import art.arcane.iris.generation.context.IrisContext; import art.arcane.volmlib.util.localization.MessageArgument; import art.arcane.volmlib.util.localization.TextKey; import art.arcane.volmlib.util.matter.MatterMarker; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedWorldCommands.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedWorldCommands.java index f189c0207..b8b6f9719 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedWorldCommands.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedWorldCommands.java @@ -19,10 +19,10 @@ package art.arcane.iris.modded.command; import art.arcane.iris.modded.ModdedIrisLog; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.pack.BrokenPackException; -import art.arcane.iris.core.pack.PackValidationRegistry; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.BrokenPackException; +import art.arcane.iris.pack.PackValidationRegistry; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.iris.modded.IrisModdedChunkGenerator; import art.arcane.iris.modded.MainWorldService; import art.arcane.iris.modded.ModdedDimensionManager; @@ -51,9 +51,9 @@ import java.util.Locale; import java.util.concurrent.ThreadLocalRandom; import java.util.function.Predicate; -import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.localization.IrisLanguage; import art.arcane.iris.modded.localization.ModdedCommandMessages; -import art.arcane.iris.core.localization.RuntimeUiMessages; +import art.arcane.iris.localization.RuntimeUiMessages; import art.arcane.volmlib.util.localization.MessageArgument; public final class ModdedWorldCommands { private static final Predicate GATE = Commands.hasPermission(Commands.LEVEL_GAMEMASTERS); diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/localization/ModdedCommandMessages.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/localization/ModdedCommandMessages.java index 2371e68ca..e25c83ce8 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/localization/ModdedCommandMessages.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/localization/ModdedCommandMessages.java @@ -1,6 +1,6 @@ package art.arcane.iris.modded.localization; -import art.arcane.iris.util.common.format.C; +import art.arcane.iris.localization.C; import art.arcane.volmlib.util.localization.MessageKey; import art.arcane.volmlib.util.localization.TextKey; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/localization/ModdedMessageContributor.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/localization/ModdedMessageContributor.java index 0c508c5cc..9a738a938 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/localization/ModdedMessageContributor.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/localization/ModdedMessageContributor.java @@ -1,6 +1,6 @@ package art.arcane.iris.modded.localization; -import art.arcane.iris.core.localization.IrisMessageContributor; +import art.arcane.iris.localization.IrisMessageContributor; import art.arcane.volmlib.util.localization.MessageKey; import java.util.ArrayList; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/mixin/SerializableTerrainReceiptMixin.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/mixin/SerializableTerrainReceiptMixin.java index d6f96ddc5..31f569bf5 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/mixin/SerializableTerrainReceiptMixin.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/mixin/SerializableTerrainReceiptMixin.java @@ -1,6 +1,6 @@ package art.arcane.iris.modded.mixin; -import art.arcane.iris.engine.history.NativeTerrainReceipt; +import art.arcane.iris.world.history.NativeTerrainReceipt; import art.arcane.iris.modded.ModdedNativeTerrainReceipts; import art.arcane.iris.modded.NativeTerrainReceiptHolder; import net.minecraft.nbt.CompoundTag; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedChunkUpdateService.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedChunkUpdateService.java index 8135f3128..d8db9f4c7 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedChunkUpdateService.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedChunkUpdateService.java @@ -18,12 +18,12 @@ package art.arcane.iris.modded.service; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.gui.PregeneratorJob; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.engine.data.cache.Cache; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.TileData; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.studio.view.PregeneratorJob; +import art.arcane.iris.integration.Identifier; +import art.arcane.iris.generation.cache.Cache; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.block.TileData; import art.arcane.iris.modded.IrisModdedChunkGenerator; import art.arcane.iris.modded.ModdedBlockResolution; import art.arcane.iris.modded.ModdedLootApplier; @@ -31,7 +31,7 @@ import art.arcane.iris.modded.ModdedServerLevels; import art.arcane.iris.modded.ModdedTileData; import art.arcane.iris.modded.api.ModdedCustomContentRegistry; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.project.matter.TileWrapper; +import art.arcane.iris.world.storage.matter.TileWrapper; import art.arcane.volmlib.util.mantle.flag.MantleFlag; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedEngineMaintenanceService.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedEngineMaintenanceService.java index 464b9afb9..dab5344f6 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedEngineMaintenanceService.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedEngineMaintenanceService.java @@ -19,14 +19,14 @@ package art.arcane.iris.modded.service; import art.arcane.iris.modded.ModdedIrisLog; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.service.EngineMaintenance; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.GenerationSessionException; -import art.arcane.iris.engine.framework.GenerationSessionLease; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.generation.runtime.EngineMaintenance; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.GenerationSessionException; +import art.arcane.iris.generation.runtime.GenerationSessionLease; import art.arcane.iris.modded.ModdedWorldEngines; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.project.context.IrisContext; +import art.arcane.iris.generation.context.IrisContext; import net.minecraft.server.MinecraftServer; import java.util.Collection; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedEntitySpawnService.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedEntitySpawnService.java index 8678b15a7..ee0d406d7 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedEntitySpawnService.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedEntitySpawnService.java @@ -18,8 +18,8 @@ package art.arcane.iris.modded.service; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineWorldManager; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineWorldManager; import art.arcane.iris.modded.IrisModdedChunkGenerator; import art.arcane.iris.modded.ModdedServerLevels; import art.arcane.iris.modded.ModdedWorldManager; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedPreservationService.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedPreservationService.java index 6867c8c8a..f44af16e7 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedPreservationService.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedPreservationService.java @@ -19,9 +19,9 @@ package art.arcane.iris.modded.service; import art.arcane.iris.modded.ModdedIrisLog; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.MeteredCache; -import art.arcane.iris.engine.framework.PreservationRegistry; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.MeteredCache; +import art.arcane.iris.generation.runtime.PreservationRegistry; import java.lang.ref.WeakReference; import java.util.List; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedSettingsHotloadService.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedSettingsHotloadService.java index 6fe6aad57..c0a18f3ae 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedSettingsHotloadService.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedSettingsHotloadService.java @@ -18,7 +18,7 @@ package art.arcane.iris.modded.service; -import art.arcane.iris.core.SettingsHotloadWatch; +import art.arcane.iris.configuration.SettingsHotloadWatch; import art.arcane.iris.spi.IrisPlatforms; import net.minecraft.server.MinecraftServer; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedStudioHotloadService.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedStudioHotloadService.java index 8733bc044..ada3e0142 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedStudioHotloadService.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedStudioHotloadService.java @@ -19,20 +19,20 @@ package art.arcane.iris.modded.service; import art.arcane.iris.modded.ModdedIrisLog; -import art.arcane.iris.core.gui.PregeneratorJob; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.tools.WorldMaintenance; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.history.SavedTerrainChunk; +import art.arcane.iris.studio.view.PregeneratorJob; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.world.WorldMaintenance; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.world.history.SavedTerrainChunk; import art.arcane.iris.modded.ModdedSavedTerrainCapture; import java.util.concurrent.CompletableFuture; -import art.arcane.iris.engine.framework.EnginePlatformHooks; -import art.arcane.iris.engine.framework.NativeStructureVolume; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisDimensionRuntimeContract; -import art.arcane.iris.engine.object.IrisWorld; -import art.arcane.iris.engine.object.IrisWorldBoundary; +import art.arcane.iris.generation.runtime.EnginePlatformHooks; +import art.arcane.iris.structure.nativegen.NativeStructureVolume; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisDimensionRuntimeContract; +import art.arcane.iris.world.IrisWorld; +import art.arcane.iris.world.IrisWorldBoundary; import art.arcane.iris.modded.IrisModdedChunkGenerator; import art.arcane.iris.modded.ModdedDimensionManager; import art.arcane.iris.modded.ModdedForcedDatapack; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedTreeFellerService.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedTreeFellerService.java index c49ba5755..2393cefa0 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedTreeFellerService.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedTreeFellerService.java @@ -1,12 +1,12 @@ package art.arcane.iris.modded.service; import art.arcane.iris.modded.ModdedIrisLog; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.service.tree.TreeDefinitionIndex; -import art.arcane.iris.core.service.tree.TreeMarkerTraversal; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.StructurePlacementMarker; -import art.arcane.iris.engine.framework.TreeBlockMaterial; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.world.tree.TreeDefinitionIndex; +import art.arcane.iris.world.tree.TreeMarkerTraversal; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.placement.StructurePlacementMarker; +import art.arcane.iris.generation.decoration.tree.TreeBlockMaterial; import art.arcane.iris.modded.ModdedBlockBreakHandler; import art.arcane.iris.modded.ModdedBlockState; import art.arcane.iris.modded.ModdedEngineBootstrap; diff --git a/adapters/modded-common/src/main/resources/META-INF/services/art.arcane.iris.core.localization.IrisMessageContributor b/adapters/modded-common/src/main/resources/META-INF/services/art.arcane.iris.localization.IrisMessageContributor similarity index 100% rename from adapters/modded-common/src/main/resources/META-INF/services/art.arcane.iris.core.localization.IrisMessageContributor rename to adapters/modded-common/src/main/resources/META-INF/services/art.arcane.iris.localization.IrisMessageContributor diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/client/IrisClientWireBoundsTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/client/IrisClientWireBoundsTest.java index ed0af65d2..fcef5f151 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/client/IrisClientWireBoundsTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/client/IrisClientWireBoundsTest.java @@ -1,6 +1,6 @@ package art.arcane.iris.client; -import art.arcane.iris.core.protocol.IrisTileEncoder; +import art.arcane.iris.platform.protocol.IrisTileEncoder; import art.arcane.iris.spi.protocol.IrisMessage; import org.junit.Test; diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/client/IrisTileAssemblerAdversarialTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/client/IrisTileAssemblerAdversarialTest.java index f35327dcc..19096339a 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/client/IrisTileAssemblerAdversarialTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/client/IrisTileAssemblerAdversarialTest.java @@ -1,6 +1,6 @@ package art.arcane.iris.client; -import art.arcane.iris.core.protocol.IrisTileEncoder; +import art.arcane.iris.platform.protocol.IrisTileEncoder; import art.arcane.iris.spi.protocol.IrisMessage; import art.arcane.iris.spi.protocol.ProtocolException; import org.junit.Test; diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/client/IrisVisionTileRoundTripTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/client/IrisVisionTileRoundTripTest.java index 338d74a45..c8d109e8e 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/client/IrisVisionTileRoundTripTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/client/IrisVisionTileRoundTripTest.java @@ -1,6 +1,6 @@ package art.arcane.iris.client; -import art.arcane.iris.core.protocol.IrisTileEncoder; +import art.arcane.iris.platform.protocol.IrisTileEncoder; import art.arcane.iris.spi.protocol.IrisMessage; import art.arcane.iris.spi.protocol.IrisMessageCodec; import art.arcane.iris.spi.protocol.IrisProtocol; diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/modded/IrisModdedStructureParityTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/modded/IrisModdedStructureParityTest.java index f8ae89eae..0e6438ae3 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/modded/IrisModdedStructureParityTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/modded/IrisModdedStructureParityTest.java @@ -1,11 +1,11 @@ package art.arcane.iris.modded; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBiomeCustom; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisRange; -import art.arcane.iris.engine.object.InferredType; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiomeCustom; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.pack.value.IrisRange; +import art.arcane.iris.generation.terrain.InferredType; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.mantle.flag.MantleFlag; import net.minecraft.SharedConstants; diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedBlockResolutionContractTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedBlockResolutionContractTest.java index 430c372a1..da933df39 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedBlockResolutionContractTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedBlockResolutionContractTest.java @@ -1,9 +1,9 @@ package art.arcane.iris.modded; -import art.arcane.iris.engine.decorator.DecoratorPlatformHooks; -import art.arcane.iris.engine.decorator.IrisSpeleothems; +import art.arcane.iris.generation.decoration.DecoratorPlatformHooks; +import art.arcane.iris.generation.decoration.IrisSpeleothems; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; import net.minecraft.SharedConstants; import net.minecraft.server.Bootstrap; diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedDimensionTypeParityTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedDimensionTypeParityTest.java index 9bb4f97a4..825ce7f2c 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedDimensionTypeParityTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedDimensionTypeParityTest.java @@ -18,13 +18,13 @@ package art.arcane.iris.modded; -import art.arcane.iris.core.nms.datapack.DataVersion; -import art.arcane.iris.core.nms.datapack.IDataFixer; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisDimensionRuntimeContract; -import art.arcane.iris.engine.object.IrisDimensionTypeOptions; -import art.arcane.iris.engine.object.IrisEnvironment; -import art.arcane.iris.engine.object.IrisRange; +import art.arcane.iris.platform.bukkit.nms.datapack.DataVersion; +import art.arcane.iris.platform.bukkit.nms.datapack.IDataFixer; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisDimensionRuntimeContract; +import art.arcane.iris.generation.terrain.IrisDimensionTypeOptions; +import art.arcane.iris.world.IrisEnvironment; +import art.arcane.iris.pack.value.IrisRange; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.json.JSONObject; import org.junit.Test; @@ -40,8 +40,8 @@ import java.util.List; import java.util.Optional; import java.util.stream.Stream; -import static art.arcane.iris.engine.object.IrisDimensionTypeOptions.TriState.FALSE; -import static art.arcane.iris.engine.object.IrisDimensionTypeOptions.TriState.TRUE; +import static art.arcane.iris.generation.terrain.IrisDimensionTypeOptions.TriState.FALSE; +import static art.arcane.iris.generation.terrain.IrisDimensionTypeOptions.TriState.TRUE; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotEquals; diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedEntitySpawnDifficultyTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedEntitySpawnDifficultyTest.java index e6cd331cd..f643e4aac 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedEntitySpawnDifficultyTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedEntitySpawnDifficultyTest.java @@ -1,7 +1,7 @@ package art.arcane.iris.modded; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisEntity; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.world.entity.IrisEntity; import art.arcane.volmlib.util.math.RNG; import net.minecraft.SharedConstants; import net.minecraft.core.BlockPos; diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedEntitySpawnerParityTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedEntitySpawnerParityTest.java index 9c5478b44..90b6e90cd 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedEntitySpawnerParityTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedEntitySpawnerParityTest.java @@ -1,6 +1,6 @@ package art.arcane.iris.modded; -import art.arcane.iris.engine.object.IrisEffect; +import art.arcane.iris.world.entity.IrisEffect; import net.minecraft.core.BlockPos; import net.minecraft.world.entity.Mob; import net.minecraft.world.entity.EntitySpawnReason; diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedForcedDatapackTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedForcedDatapackTest.java index 25fb4a9b3..266a5151c 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedForcedDatapackTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedForcedDatapackTest.java @@ -19,13 +19,13 @@ package art.arcane.iris.modded; import art.arcane.volmlib.util.collection.KSet; -import art.arcane.iris.core.nms.datapack.v1217.DataFixerV1217; -import art.arcane.iris.engine.history.GenerationEpochContractFactory; -import art.arcane.iris.engine.history.GenerationRegistryContract; -import art.arcane.iris.engine.history.GenerationRegistryContractFactory; -import art.arcane.iris.engine.object.IrisCustomBiomeAliasResolver; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisDimensionType; +import art.arcane.iris.platform.bukkit.nms.datapack.v1217.DataFixerV1217; +import art.arcane.iris.world.history.GenerationEpochContractFactory; +import art.arcane.iris.world.history.GenerationRegistryContract; +import art.arcane.iris.world.history.GenerationRegistryContractFactory; +import art.arcane.iris.generation.biome.IrisCustomBiomeAliasResolver; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisDimensionType; import art.arcane.iris.spi.PlatformGenerationRegistry; import java.lang.reflect.Constructor; import java.util.Set; diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedGenerationHistoryStorageTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedGenerationHistoryStorageTest.java index 6ac1849d3..977587ffa 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedGenerationHistoryStorageTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedGenerationHistoryStorageTest.java @@ -1,10 +1,10 @@ package art.arcane.iris.modded; -import art.arcane.iris.engine.history.GenerationEpoch; -import art.arcane.iris.engine.history.GenerationEpochContractFactory; -import art.arcane.iris.engine.history.GenerationHistory; -import art.arcane.iris.engine.history.GenerationPackFingerprint; -import art.arcane.iris.engine.history.GenerationRegistryContract; +import art.arcane.iris.world.history.GenerationEpoch; +import art.arcane.iris.world.history.GenerationEpochContractFactory; +import art.arcane.iris.world.history.GenerationHistory; +import art.arcane.iris.world.history.GenerationPackFingerprint; +import art.arcane.iris.world.history.GenerationRegistryContract; import org.junit.Test; import java.io.IOException; diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedLootApplierTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedLootApplierTest.java index 07214edbf..2eaa73035 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedLootApplierTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedLootApplierTest.java @@ -1,7 +1,7 @@ package art.arcane.iris.modded; -import art.arcane.iris.engine.framework.LootResolver; -import art.arcane.iris.engine.object.IrisLootMode; +import art.arcane.iris.structure.placement.LootResolver; +import art.arcane.iris.world.loot.IrisLootMode; import art.arcane.volmlib.util.math.RNG; import net.minecraft.resources.Identifier; import net.minecraft.resources.ResourceKey; diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedNativeStructureWorldgenAccessTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedNativeStructureWorldgenAccessTest.java index 1544cb40e..788bc5315 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedNativeStructureWorldgenAccessTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedNativeStructureWorldgenAccessTest.java @@ -1,7 +1,7 @@ package art.arcane.iris.modded; -import art.arcane.iris.engine.object.IrisStructureTerrain; -import art.arcane.iris.engine.object.IrisStructureTerrainMode; +import art.arcane.iris.structure.placement.IrisStructureTerrain; +import art.arcane.iris.structure.placement.IrisStructureTerrainMode; import art.arcane.iris.nativegen.NativeStructurePostProcessor; import art.arcane.iris.nativegen.NativeStructureTerrainIntegrator; import net.minecraft.SharedConstants; diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedSavedBiomeConsumersTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedSavedBiomeConsumersTest.java index a2b5a7867..7d604df9f 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedSavedBiomeConsumersTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedSavedBiomeConsumersTest.java @@ -1,15 +1,15 @@ package art.arcane.iris.modded; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.BiomeEnvironment; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.history.SavedBiomeUnavailableException; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisWorld; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.BiomeEnvironment; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.world.history.SavedBiomeUnavailableException; +import art.arcane.iris.generation.mantle.EngineMantle; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.world.IrisWorld; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.matter.Matter; @@ -20,7 +20,7 @@ import net.minecraft.server.level.ServerPlayer; import org.junit.Test; import org.junit.BeforeClass; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; +import art.arcane.iris.generation.block.B; import org.mockito.MockedStatic; import java.lang.reflect.Constructor; diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedSchedulerDownloadCancellationTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedSchedulerDownloadCancellationTest.java index cbf857231..6ac945516 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedSchedulerDownloadCancellationTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedSchedulerDownloadCancellationTest.java @@ -1,7 +1,7 @@ package art.arcane.iris.modded; -import art.arcane.iris.core.lifecycle.LifecycleOperationCoordinator; -import art.arcane.iris.core.pack.PackDownloadExecution; +import art.arcane.iris.world.lifecycle.LifecycleOperationCoordinator; +import art.arcane.iris.pack.PackDownloadExecution; import org.junit.Test; import java.util.concurrent.CountDownLatch; diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedSpawnerRarityParityTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedSpawnerRarityParityTest.java index 944315acd..d7de4ce83 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedSpawnerRarityParityTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedSpawnerRarityParityTest.java @@ -1,7 +1,7 @@ package art.arcane.iris.modded; -import art.arcane.iris.engine.object.IRare; -import art.arcane.iris.engine.object.IrisEntitySpawn; +import art.arcane.volmlib.util.math.Rarity; +import art.arcane.iris.world.entity.IrisEntitySpawn; import art.arcane.volmlib.util.collection.KList; import org.junit.Test; @@ -21,7 +21,7 @@ public class ModdedSpawnerRarityParityTest { IrisEntitySpawn common = spawn(1); IrisEntitySpawn rare = spawn(4); - KList expanded = IRare.expandWeighted(List.of(common, rare)); + KList expanded = Rarity.expandWeighted(List.of(common, rare)); // totalRarity 5 -> common appears 5/1 = 5 times, rare 5/4 = 1 time. assertEquals(6, expanded.size()); @@ -31,8 +31,8 @@ public class ModdedSpawnerRarityParityTest { @Test public void rarityZeroAndNegativeAreClampedToOne() { - assertEquals(1, IRare.get(spawn(0))); - assertEquals(1, IRare.get(spawn(-5))); - assertEquals(3, IRare.get(spawn(3))); + assertEquals(1, Rarity.get(spawn(0))); + assertEquals(1, Rarity.get(spawn(-5))); + assertEquals(3, Rarity.get(spawn(3))); } } diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedStructureSetFrequencyOverridesTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedStructureSetFrequencyOverridesTest.java index a75a6f05a..33cf7d02b 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedStructureSetFrequencyOverridesTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedStructureSetFrequencyOverridesTest.java @@ -1,7 +1,7 @@ package art.arcane.iris.modded; -import art.arcane.iris.engine.object.IrisImportedStructureControl; -import art.arcane.iris.engine.object.IrisStructureSetFrequencyOverride; +import art.arcane.iris.structure.nativegen.IrisImportedStructureControl; +import art.arcane.iris.structure.placement.IrisStructureSetFrequencyOverride; import art.arcane.volmlib.util.collection.KList; import net.minecraft.SharedConstants; import net.minecraft.core.Holder; diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedTileDataIdentityTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedTileDataIdentityTest.java index 030d4547d..b1c682793 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedTileDataIdentityTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedTileDataIdentityTest.java @@ -1,6 +1,6 @@ package art.arcane.iris.modded; -import art.arcane.iris.engine.object.TileData; +import art.arcane.iris.generation.block.TileData; import art.arcane.volmlib.util.collection.KMap; import com.google.gson.Gson; import com.google.gson.GsonBuilder; diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedTileParityTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedTileParityTest.java index d29756b04..7fc5b6f80 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedTileParityTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedTileParityTest.java @@ -1,6 +1,6 @@ package art.arcane.iris.modded; -import art.arcane.iris.engine.object.TileData; +import art.arcane.iris.generation.block.TileData; import art.arcane.volmlib.util.collection.KMap; import net.minecraft.SharedConstants; import net.minecraft.core.BlockPos; diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedWaterEntitySpawnTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedWaterEntitySpawnTest.java index cf9f478c7..e7e7925bb 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedWaterEntitySpawnTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedWaterEntitySpawnTest.java @@ -1,9 +1,9 @@ package art.arcane.iris.modded; -import art.arcane.iris.engine.object.IrisEntity; -import art.arcane.iris.engine.object.IrisEntitySpawn; -import art.arcane.iris.engine.object.IrisSpawnGroup; -import art.arcane.iris.engine.object.IrisSurface; +import art.arcane.iris.world.entity.IrisEntity; +import art.arcane.iris.world.entity.IrisEntitySpawn; +import art.arcane.iris.world.entity.IrisSpawnGroup; +import art.arcane.iris.generation.decoration.IrisSurface; import art.arcane.volmlib.util.math.RNG; import net.minecraft.SharedConstants; import net.minecraft.core.BlockPos; diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/modded/SchemaBuilderPlatformIsolationTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/modded/SchemaBuilderPlatformIsolationTest.java index e58411058..6f1fba953 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/modded/SchemaBuilderPlatformIsolationTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/modded/SchemaBuilderPlatformIsolationTest.java @@ -1,9 +1,9 @@ package art.arcane.iris.modded; -import art.arcane.iris.core.project.SchemaBuilder; -import art.arcane.iris.engine.object.IrisDirection; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.iris.pack.schema.SchemaBuilder; +import art.arcane.iris.pack.value.IrisDirection; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.json.JSONArray; import art.arcane.volmlib.util.json.JSONObject; @@ -38,12 +38,12 @@ public class SchemaBuilderPlatformIsolationTest { .getJSONObject("items").getString("$ref")); } - @Desc("Direction model.") + @Description("Direction model.") public static class DirectionModel { - @Desc("Direction.") + @Description("Direction.") private IrisDirection direction = IrisDirection.NORTH_NEGATIVE_Z; - @Desc("Directions.") + @Description("Directions.") @ArrayType(type = IrisDirection.class) private KList directions = new KList<>(); } diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/modded/command/IrisModdedBiomeCommandTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/modded/command/IrisModdedBiomeCommandTest.java index a6b75523c..3561dc00f 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/modded/command/IrisModdedBiomeCommandTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/modded/command/IrisModdedBiomeCommandTest.java @@ -1,6 +1,6 @@ package art.arcane.iris.modded.command; -import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiome; import art.arcane.volmlib.util.collection.KList; import org.junit.Test; diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/modded/command/IrisModdedCommandParityTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/modded/command/IrisModdedCommandParityTest.java index a3bde1867..c4bff9bd2 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/modded/command/IrisModdedCommandParityTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/modded/command/IrisModdedCommandParityTest.java @@ -1,9 +1,9 @@ package art.arcane.iris.modded.command; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.PackDownloadMessages; -import art.arcane.iris.core.lifecycle.LifecycleOperationCoordinator; -import art.arcane.iris.core.pack.PackDownloader; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.PackDownloadMessages; +import art.arcane.iris.world.lifecycle.LifecycleOperationCoordinator; +import art.arcane.iris.pack.PackDownloader; import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.tree.CommandNode; import net.minecraft.SharedConstants; diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/modded/command/IrisModdedStructureCommandTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/modded/command/IrisModdedStructureCommandTest.java index 8549f7b06..5356d452f 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/modded/command/IrisModdedStructureCommandTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/modded/command/IrisModdedStructureCommandTest.java @@ -1,7 +1,7 @@ package art.arcane.iris.modded.command; -import art.arcane.iris.engine.object.IrisNativeStructureDecision; -import art.arcane.iris.engine.object.NativeStructureGenerationStatus; +import art.arcane.iris.structure.nativegen.IrisNativeStructureDecision; +import art.arcane.iris.structure.nativegen.NativeStructureGenerationStatus; import art.arcane.iris.nativegen.NativeStructureLocateResults; import com.mojang.datafixers.util.Pair; import net.minecraft.core.BlockPos; diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/modded/command/ModdedLanguageCommandsTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/modded/command/ModdedLanguageCommandsTest.java index 976c02d24..089ec44d6 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/modded/command/ModdedLanguageCommandsTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/modded/command/ModdedLanguageCommandsTest.java @@ -1,6 +1,6 @@ package art.arcane.iris.modded.command; -import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.localization.IrisLanguage; import art.arcane.volmlib.util.director.help.DirectorHelpMessages; import art.arcane.volmlib.util.localization.PluginLanguageService; import com.mojang.brigadier.CommandDispatcher; diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/modded/localization/ModdedMessageContributorTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/modded/localization/ModdedMessageContributorTest.java index 97873c1cb..743636d1c 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/modded/localization/ModdedMessageContributorTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/modded/localization/ModdedMessageContributorTest.java @@ -1,7 +1,7 @@ package art.arcane.iris.modded.localization; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.IrisMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.IrisMessages; import art.arcane.iris.testsupport.ProjectPaths; import art.arcane.volmlib.util.localization.MessageKey; import art.arcane.volmlib.util.localization.VolmitLocales; diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/modded/service/ModdedChunkUpdateServiceTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/modded/service/ModdedChunkUpdateServiceTest.java index ad50be673..ae516ecb1 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/modded/service/ModdedChunkUpdateServiceTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/modded/service/ModdedChunkUpdateServiceTest.java @@ -1,9 +1,9 @@ package art.arcane.iris.modded.service; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineMetrics; -import art.arcane.iris.engine.object.IrisWorld; -import art.arcane.iris.util.project.matter.TileWrapper; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineMetrics; +import art.arcane.iris.world.IrisWorld; +import art.arcane.iris.world.storage.matter.TileWrapper; import art.arcane.volmlib.util.function.Consumer4; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.mantle.runtime.MantleDataAdapter; diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/modded/service/ModdedStudioHotloadServiceTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/modded/service/ModdedStudioHotloadServiceTest.java index 129cb0292..a5b6a8c25 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/modded/service/ModdedStudioHotloadServiceTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/modded/service/ModdedStudioHotloadServiceTest.java @@ -1,6 +1,6 @@ package art.arcane.iris.modded.service; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.iris.modded.ModdedScheduler; import art.arcane.volmlib.util.collection.KList; import org.junit.Test; diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/modded/service/ModdedWorldBoundaryTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/modded/service/ModdedWorldBoundaryTest.java index 9421d1171..ea094179e 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/modded/service/ModdedWorldBoundaryTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/modded/service/ModdedWorldBoundaryTest.java @@ -1,7 +1,7 @@ package art.arcane.iris.modded.service; -import art.arcane.iris.engine.object.IrisWorldBoundary; -import art.arcane.iris.engine.object.IrisWorldBoundaryCenter; +import art.arcane.iris.world.IrisWorldBoundary; +import art.arcane.iris.world.IrisWorldBoundaryCenter; import net.minecraft.world.level.border.WorldBorder; import org.junit.Test; diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/nativegen/NativeStructureReferenceRepairTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/nativegen/NativeStructureReferenceRepairTest.java index 9f012fed5..e87f2c093 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/nativegen/NativeStructureReferenceRepairTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/nativegen/NativeStructureReferenceRepairTest.java @@ -1,21 +1,21 @@ package art.arcane.iris.nativegen; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.NativeStructureGenerationPolicy; -import art.arcane.iris.engine.framework.NativeStructureOwnershipBundle; -import art.arcane.iris.engine.framework.NativeStructureOwnershipRecord; -import art.arcane.iris.engine.framework.NativeStructureOwnershipStore; -import art.arcane.iris.engine.framework.NativeStructureStartPlan; -import art.arcane.iris.engine.history.GenerationHistoryRuntimeRouter; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisNativeStructure; -import art.arcane.iris.engine.object.IrisNativeStructureDecision; -import art.arcane.iris.engine.object.IrisStructurePlacement; -import art.arcane.iris.engine.object.IrisStructureTerrain; -import art.arcane.iris.engine.object.IrisStructureTerrainMode; -import art.arcane.iris.engine.object.NativeStructureGenerationStatus; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.nativegen.NativeStructureGenerationPolicy; +import art.arcane.iris.structure.nativegen.NativeStructureOwnershipBundle; +import art.arcane.iris.structure.nativegen.NativeStructureOwnershipRecord; +import art.arcane.iris.structure.nativegen.NativeStructureOwnershipStore; +import art.arcane.iris.structure.nativegen.NativeStructureStartPlan; +import art.arcane.iris.world.history.GenerationHistoryRuntimeRouter; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.structure.nativegen.IrisNativeStructure; +import art.arcane.iris.structure.nativegen.IrisNativeStructureDecision; +import art.arcane.iris.structure.placement.IrisStructurePlacement; +import art.arcane.iris.structure.placement.IrisStructureTerrain; +import art.arcane.iris.structure.placement.IrisStructureTerrainMode; +import art.arcane.iris.structure.nativegen.NativeStructureGenerationStatus; import art.arcane.volmlib.util.collection.KList; import com.github.benmanes.caffeine.cache.Cache; import net.minecraft.SharedConstants; @@ -336,7 +336,7 @@ public class NativeStructureReferenceRepairTest { NativeStructureOwnershipBundle bundle = NativeStructureOwnershipBundle.empty().with(ownership); Class storageType = Class.forName( - "art.arcane.iris.engine.framework.NativeStructureOwnershipStore$Storage"); + "art.arcane.iris.structure.nativegen.NativeStructureOwnershipStore$Storage"); InvocationHandler storageHandler = (Object proxy, Method method, Object[] arguments) -> { return switch (method.getName()) { @@ -354,7 +354,7 @@ public class NativeStructureReferenceRepairTest { new Class[]{storageType}, storageHandler); Class stateType = Class.forName( - "art.arcane.iris.engine.framework.NativeStructureOwnershipStore$State"); + "art.arcane.iris.structure.nativegen.NativeStructureOwnershipStore$State"); Constructor constructor = stateType.getDeclaredConstructor(Engine.class, storageType); constructor.setAccessible(true); Object state = constructor.newInstance(engine, storage); diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/nativegen/NativeStructureVacuumParityTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/nativegen/NativeStructureVacuumParityTest.java index 6d0d365e9..0895299cc 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/nativegen/NativeStructureVacuumParityTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/nativegen/NativeStructureVacuumParityTest.java @@ -1,7 +1,7 @@ package art.arcane.iris.nativegen; -import art.arcane.iris.engine.object.IrisStructureTerrain; -import art.arcane.iris.engine.object.IrisStructureTerrainMode; +import art.arcane.iris.structure.placement.IrisStructureTerrain; +import art.arcane.iris.structure.placement.IrisStructureTerrainMode; import net.minecraft.SharedConstants; import net.minecraft.core.HolderSet; import net.minecraft.server.Bootstrap; diff --git a/adapters/neoforge/build.gradle b/adapters/neoforge/build.gradle index 90cb64c20..68abae4a0 100644 --- a/adapters/neoforge/build.gradle +++ b/adapters/neoforge/build.gradle @@ -18,6 +18,7 @@ import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar import org.gradle.api.file.DeleteSpec +import org.gradle.api.file.FileCopyDetails import org.gradle.api.file.FileSystemOperations import org.gradle.api.file.FileTree import org.gradle.api.tasks.compile.JavaCompile @@ -275,6 +276,9 @@ tasks.named('shadowJar', ShadowJar).configure { // loader has. Shipping it only adds dead classes that reference a missing package. exclude('art/arcane/iris/platform/bukkit/**') duplicatesStrategy = DuplicatesStrategy.EXCLUDE + filesMatching('META-INF/services/**') { FileCopyDetails entry -> + entry.duplicatesStrategy = DuplicatesStrategy.INCLUDE + } relocate('org.objectweb.asm', 'art.arcane.iris.shadow.asm') // Split-package guard. A co-installed mod that ships any of these at their original coordinates // puts two copies of the same package on one module layer, which the loaders reject at boot diff --git a/build.gradle b/build.gradle index 7aa3e00a3..0e6c3ada1 100644 --- a/build.gradle +++ b/build.gradle @@ -502,10 +502,11 @@ tasks.named('check').configure { List commonModdedArtifactEntries = [ 'META-INF/iris/generation-kernels/catalog.tsv', 'META-INF/iris/generation-kernels/abi-1.revision', - 'art/arcane/iris/engine/IrisEngine.class', + 'META-INF/services/art.arcane.iris.localization.IrisMessageContributor', + 'art/arcane/iris/generation/runtime/IrisEngine.class', 'art/arcane/iris/spi/IrisPlatform.class', 'art/arcane/volmlib/util/mantle/io/Lz4IOWorkerCodecSupport.class', - 'art/arcane/iris/util/common/misc/getHardware.class', + 'art/arcane/iris/platform/bootstrap/getHardware.class', // Both shared mixin configs plus the lang file and mod icon every loader's metadata points at. // A shadowJar exclude or a renamed resource that drops any of these is silent at build time and // shows up as a non-applied mixin or a missing-translation report from a user. @@ -585,6 +586,25 @@ tasks.register('verifyModdedArtifacts') { // instrumentation agent, the JarScanner-driven command and service discovery, the Matter codec - plus // the two plugin descriptors and the slimjar manifests. Nothing in the reference graph points at // them, so a shadowJar exclude that drops one is silent until a server hits that path. +File commandSourceRoot = layout.projectDirectory.dir('core/src/main/java').asFile +FileTree commandHandlerSources = fileTree(commandSourceRoot) { + include('art/arcane/iris/command/handlers/**/*.java') + include('art/arcane/iris/command/context/**/*.java') + include('art/arcane/iris/command/specialhandlers/**/*.java') +} +List requiredCommandHandlerEntries = commandHandlerSources.files.collect { File source -> + commandSourceRoot.toPath().relativize(source.toPath()).toString() + .replace(File.separator, '/').replaceAll(/\.java$/, '.class') +}.sort() +FileTree mantleComponentSources = fileTree(commandSourceRoot) { + include('art/arcane/iris/generation/mantle/**/*.java') +} +List requiredMantleComponentEntries = mantleComponentSources.files.findAll { File source -> + source.getText('UTF-8') =~ /(?m)^\s*@ComponentFlag\b/ +}.collect { File source -> + commandSourceRoot.toPath().relativize(source.toPath()).toString() + .replace(File.separator, '/').replaceAll(/\.java$/, '.class') +}.sort() List requiredBukkitArtifactEntries = [ 'META-INF/iris/generation-kernels/catalog.tsv', 'META-INF/iris/generation-kernels/abi-1.revision', @@ -596,25 +616,27 @@ List requiredBukkitArtifactEntries = [ 'agent.jar', 'art/arcane/iris/Iris.class', 'art/arcane/iris/IrisBootstrap.class', - 'art/arcane/iris/core/nms/INMS.class', - 'art/arcane/iris/core/nms/v26_2_R1/NMSBinding.class', - 'art/arcane/iris/core/nms/v1X/NMSBinding1X.class', - 'art/arcane/iris/engine/platform/PlatformChunkGenerator.class', - 'art/arcane/iris/core/lifecycle/WorldLifecycleStaging.class', - 'art/arcane/iris/util/simd/VectorSimdKernels.class', - 'art/arcane/iris/util/project/agent/Agent.class', - 'art/arcane/iris/util/common/misc/getHardware.class', + 'art/arcane/iris/platform/bukkit/nms/INMS.class', + 'art/arcane/iris/platform/bukkit/nms/v26_2_R1/NMSBinding.class', + 'art/arcane/iris/platform/bukkit/nms/v1X/NMSBinding1X.class', + 'art/arcane/iris/platform/generation/PlatformChunkGenerator.class', + 'art/arcane/iris/world/lifecycle/WorldLifecycleStaging.class', + 'art/arcane/iris/generation/simd/VectorSimdKernels.class', + 'art/arcane/iris/platform/agent/Agent.class', + 'art/arcane/iris/platform/bootstrap/getHardware.class', 'art/arcane/volmlib/util/io/JarScanner.class', 'art/arcane/volmlib/util/director/runtime/DirectorRuntimeEngine.class', 'art/arcane/volmlib/util/mantle/io/Lz4IOWorkerCodecSupport.class', 'art/arcane/volmlib/util/matter/Matter.class' -] +] + requiredCommandHandlerEntries + requiredMantleComponentEntries tasks.register('verifyBukkitArtifact') { group = 'verification' dependsOn('jar') File artifact = bukkitArtifact inputs.file(artifact) + inputs.files(commandHandlerSources) + inputs.files(mantleComponentSources) doLast { BukkitArtifactVerifier.verify( artifact, diff --git a/buildSrc/src/main/java/art/arcane/iris/buildtools/GenerationRevisionScope.java b/buildSrc/src/main/java/art/arcane/iris/buildtools/GenerationRevisionScope.java index 34370e81a..2f314bc3b 100644 --- a/buildSrc/src/main/java/art/arcane/iris/buildtools/GenerationRevisionScope.java +++ b/buildSrc/src/main/java/art/arcane/iris/buildtools/GenerationRevisionScope.java @@ -20,40 +20,40 @@ public final class GenerationRevisionScope { "adapters/neoforge/src/main/java" ); private static final List OPERATIONAL_EXCLUSIONS = List.of( - "core/src/main/java/art/arcane/iris/engine/EngineDiagnostics.java", - "core/src/main/java/art/arcane/iris/engine/EngineMetricsReport.java", - "core/src/main/java/art/arcane/iris/core/IrisStartupValidation.java", - "core/src/main/java/art/arcane/iris/core/safeguard/IrisSafeguard.java", - "core/src/main/java/art/arcane/iris/core/safeguard/Mode.java", - "core/src/main/java/art/arcane/iris/core/safeguard/task/Task.java", - "core/src/main/java/art/arcane/iris/core/safeguard/task/Tasks.java", - "core/src/main/java/art/arcane/iris/core/safeguard/task/Diagnostic.java", - "core/src/main/java/art/arcane/iris/core/safeguard/task/ValueWithDiagnostics.java", - "core/src/main/java/art/arcane/iris/core/splash/IrisSplashRenderer.java", - "adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/NmsWorldLifecycle.java", - "adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandDeveloper.java", - "adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandPregen.java", - "adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandIris.java", - "adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsaw.java", - "adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawAdopt.java", - "adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawConnector.java", - "adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawExports.java", - "adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawOpen.java", - "adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawPiece.java", - "adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawPool.java", - "adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawPreview.java", - "adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawRules.java", - "adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawVariant.java", - "adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandJigsawWorkcell.java", - "adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandStudio.java", - "adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandObject.java", - "adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/PaperCommandRegistrar.java", - "adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandPack.java", - "adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandStructure.java", - "adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandWhat.java", - "adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandFind.java", - "adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandEdit.java", - "adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandDatapack.java" + "core/src/main/java/art/arcane/iris/generation/runtime/EngineDiagnostics.java", + "core/src/main/java/art/arcane/iris/generation/runtime/EngineMetricsReport.java", + "core/src/main/java/art/arcane/iris/world/IrisStartupValidation.java", + "core/src/main/java/art/arcane/iris/world/safeguard/IrisSafeguard.java", + "core/src/main/java/art/arcane/iris/world/safeguard/Mode.java", + "core/src/main/java/art/arcane/iris/world/safeguard/Task.java", + "core/src/main/java/art/arcane/iris/world/safeguard/Tasks.java", + "core/src/main/java/art/arcane/iris/world/safeguard/Diagnostic.java", + "core/src/main/java/art/arcane/iris/world/safeguard/ValueWithDiagnostics.java", + "core/src/main/java/art/arcane/iris/diagnostics/splash/IrisSplashRenderer.java", + "adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/NmsWorldLifecycle.java", + "adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandDeveloper.java", + "adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandPregen.java", + "adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandIris.java", + "adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsaw.java", + "adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawAdopt.java", + "adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawConnector.java", + "adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawExports.java", + "adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawOpen.java", + "adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawPiece.java", + "adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawPool.java", + "adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawPreview.java", + "adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawRules.java", + "adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawVariant.java", + "adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandJigsawWorkcell.java", + "adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandStudio.java", + "adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandObject.java", + "adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/PaperCommandRegistrar.java", + "adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandPack.java", + "adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandStructure.java", + "adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandWhat.java", + "adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandFind.java", + "adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandEdit.java", + "adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/CommandDatapack.java" ); private GenerationRevisionScope() { @@ -61,7 +61,7 @@ public final class GenerationRevisionScope { public static GenerationBuildRevision.CaptureOptions current(Path repository) { return new GenerationBuildRevision.CaptureOptions(repository, 1, - "art.arcane.iris.engine.history.GenerationKernelV1", + "art.arcane.iris.world.history.GenerationKernelV1", List.of(new GenerationBuildRevision.AlgorithmVersion(1, 1)), SOURCE_ROOTS, OPERATIONAL_EXCLUSIONS); } } diff --git a/buildSrc/src/test/java/BukkitArtifactVerifierTest.java b/buildSrc/src/test/java/BukkitArtifactVerifierTest.java index 24937d861..f4cf5a5af 100644 --- a/buildSrc/src/test/java/BukkitArtifactVerifierTest.java +++ b/buildSrc/src/test/java/BukkitArtifactVerifierTest.java @@ -22,7 +22,7 @@ public class BukkitArtifactVerifierTest { private static final String PLUGIN_DESCRIPTOR = "plugin.yml"; private static final String SLIMJAR_DEPENDENCIES = "slimjar.dat"; private static final String SLIMJAR_RESOLUTIONS = "slimjar-resolutions.dat"; - private static final String NMS_BINDING = "art/arcane/iris/core/nms/v26_2_R1/NMSBinding"; + private static final String NMS_BINDING = "art/arcane/iris/platform/bukkit/nms/v26_2_R1/NMSBinding"; private static final List REQUIRED_ENTRIES = List.of( PLUGIN_DESCRIPTOR, SLIMJAR_DEPENDENCIES, diff --git a/buildSrc/src/test/java/GenerationRevisionScopeTest.java b/buildSrc/src/test/java/GenerationRevisionScopeTest.java index c8fec653f..4770600b6 100644 --- a/buildSrc/src/test/java/GenerationRevisionScopeTest.java +++ b/buildSrc/src/test/java/GenerationRevisionScopeTest.java @@ -19,9 +19,9 @@ import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertTrue; public class GenerationRevisionScopeTest { - private static final String ENGINE_ROOT = "core/src/main/java/art/arcane/iris/engine/"; - private static final String NMS_ROOT = "adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/core/nms/v26_2_R1/"; - private static final String COMMAND_ROOT = "adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/"; + private static final String ENGINE_ROOT = "core/src/main/java/art/arcane/iris/generation/runtime/"; + private static final String NMS_ROOT = "adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/"; + private static final String COMMAND_ROOT = "adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/"; @Rule public final TemporaryFolder temporary = new TemporaryFolder(); @@ -72,7 +72,7 @@ public class GenerationRevisionScopeTest { assertNewSourceChangesRevision(fixture, ENGINE_ROOT + "NewDiagnostics.java"); assertNewSourceChangesRevision(fixture, NMS_ROOT + "NmsWorldLifecycleHelper.java"); assertNewSourceChangesRevision(fixture, COMMAND_ROOT + "NewCommand.java"); - assertNewSourceChangesRevision(fixture, "core/src/main/java/art/arcane/iris/core/safeguard/task/NewTask.java"); + assertNewSourceChangesRevision(fixture, "core/src/main/java/art/arcane/iris/world/safeguard/NewTask.java"); } @Test @@ -141,8 +141,8 @@ public class GenerationRevisionScopeTest { ENGINE_ROOT + "history/GenerationKernelV1.java", ENGINE_ROOT + "object/IrisDimension.java", ENGINE_ROOT + "mode/ModeOverworld.java", - "core/src/main/java/art/arcane/iris/core/loader/IrisData.java", - "core/src/main/java/art/arcane/iris/core/IrisSettings.java", + "core/src/main/java/art/arcane/iris/pack/loading/IrisData.java", + "core/src/main/java/art/arcane/iris/configuration/IrisSettings.java", "core/agent/src/main/java/GenerationTransformer.java", NMS_ROOT + "NmsGenerationHooks.java", NMS_ROOT + "NmsGenerationRegistry.java", diff --git a/buildSrc/src/test/java/ModdedArtifactVerifierTest.java b/buildSrc/src/test/java/ModdedArtifactVerifierTest.java index bfc13d7e9..71fe2b578 100644 --- a/buildSrc/src/test/java/ModdedArtifactVerifierTest.java +++ b/buildSrc/src/test/java/ModdedArtifactVerifierTest.java @@ -24,7 +24,7 @@ import static org.junit.Assert.assertTrue; public class ModdedArtifactVerifierTest { private static final String METADATA = "fabric.mod.json"; private static final String CODEC_CLASS = "art/arcane/volmlib/util/mantle/io/Lz4IOWorkerCodecSupport.class"; - private static final String HARDWARE_CLASS = "art/arcane/iris/util/common/misc/getHardware.class"; + private static final String HARDWARE_CLASS = "art/arcane/iris/platform/bootstrap/getHardware.class"; private static final String MIXIN_CONFIG = "irisworldgen.entity.mixins.json"; private static final String CLIENT_MIXIN_CONFIG = "irisworldgen.client.mixins.json"; private static final String NEOFORGE_METADATA = "META-INF/neoforge.mods.toml"; @@ -220,8 +220,8 @@ public class ModdedArtifactVerifierTest { @Test public void rejectsBukkitSupertypeOutsidePlatformPackage() throws Exception { Map entries = validEntries(); - entries.put("art/arcane/iris/engine/platform/BukkitChunkGenerator.class", - classExtending("art/arcane/iris/engine/platform/BukkitChunkGenerator", + entries.put("art/arcane/iris/platform/generation/BukkitChunkGenerator.class", + classExtending("art/arcane/iris/platform/generation/BukkitChunkGenerator", "org/bukkit/generator/ChunkGenerator")); File artifact = createArtifact(entries); @@ -255,25 +255,25 @@ public class ModdedArtifactVerifierTest { @Test public void acceptsBukkitSupertypeDeclaredInThePurityAllowlist() throws Exception { Map entries = validEntries(); - entries.put("art/arcane/iris/engine/platform/BukkitChunkGenerator.class", - classExtending("art/arcane/iris/engine/platform/BukkitChunkGenerator", + entries.put("art/arcane/iris/platform/generation/BukkitChunkGenerator.class", + classExtending("art/arcane/iris/platform/generation/BukkitChunkGenerator", "org/bukkit/generator/ChunkGenerator")); File artifact = createArtifact(entries); ModdedArtifactVerifier.verify(artifact, REQUIRED_ENTRIES, - Set.of("art/arcane/iris/engine/platform/BukkitChunkGenerator")); + Set.of("art/arcane/iris/platform/generation/BukkitChunkGenerator")); } @Test public void acceptsBukkitSupertypeOnNestedClassOfAllowlistedSource() throws Exception { Map entries = validEntries(); - entries.put("art/arcane/iris/engine/object/IrisEntity$BukkitOps$1.class", - classImplementing("art/arcane/iris/engine/object/IrisEntity$BukkitOps$1", + entries.put("art/arcane/iris/world/entity/IrisEntity$BukkitOps$1.class", + classImplementing("art/arcane/iris/world/entity/IrisEntity$BukkitOps$1", "org/bukkit/event/Listener")); File artifact = createArtifact(entries); ModdedArtifactVerifier.verify(artifact, REQUIRED_ENTRIES, - Set.of("art/arcane/iris/engine/object/IrisEntity")); + Set.of("art/arcane/iris/world/entity/IrisEntity")); } @Test @@ -289,14 +289,14 @@ public class ModdedArtifactVerifierTest { @Test public void rejectsBukkitSupertypeMissingFromThePurityAllowlist() throws Exception { Map entries = validEntries(); - entries.put("art/arcane/iris/core/link/data/OraxenDataProvider.class", - classImplementing("art/arcane/iris/core/link/data/OraxenDataProvider", + entries.put("art/arcane/iris/integration/data/OraxenDataProvider.class", + classImplementing("art/arcane/iris/integration/data/OraxenDataProvider", "org/bukkit/event/Listener")); File artifact = createArtifact(entries); GradleException failure = assertThrows(GradleException.class, () -> ModdedArtifactVerifier.verify(artifact, REQUIRED_ENTRIES, - Set.of("art/arcane/iris/core/link/data/ItemAdderDataProvider"))); + Set.of("art/arcane/iris/integration/data/ItemAdderDataProvider"))); assertTrue(failure.getMessage().contains("core/purity-allowlist.txt")); } diff --git a/core/agent/build.gradle b/core/agent/build.gradle index 5a51eb7ec..f041d106b 100644 --- a/core/agent/build.gradle +++ b/core/agent/build.gradle @@ -14,8 +14,8 @@ dependencies { tasks.named('jar', Jar).configure { manifest.attributes( - 'Agent-Class': 'art.arcane.iris.util.project.agent.Installer', - 'Premain-Class': 'art.arcane.iris.util.project.agent.Installer', + 'Agent-Class': 'art.arcane.iris.platform.agent.Installer', + 'Premain-Class': 'art.arcane.iris.platform.agent.Installer', 'Can-Redefine-Classes': true, 'Can-Retransform-Classes': true ) diff --git a/core/agent/src/main/java/art/arcane/iris/util/agent/Installer.java b/core/agent/src/main/java/art/arcane/iris/platform/agent/Installer.java similarity index 97% rename from core/agent/src/main/java/art/arcane/iris/util/agent/Installer.java rename to core/agent/src/main/java/art/arcane/iris/platform/agent/Installer.java index 2bc6ee73a..13c62424a 100644 --- a/core/agent/src/main/java/art/arcane/iris/util/agent/Installer.java +++ b/core/agent/src/main/java/art/arcane/iris/platform/agent/Installer.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.project.agent; +package art.arcane.iris.platform.agent; import java.lang.instrument.Instrumentation; import java.io.Closeable; diff --git a/core/agent/src/test/java/art/arcane/iris/util/project/agent/ClassLoaderCloseDeferralTest.java b/core/agent/src/test/java/art/arcane/iris/platform/agent/ClassLoaderCloseDeferralTest.java similarity index 99% rename from core/agent/src/test/java/art/arcane/iris/util/project/agent/ClassLoaderCloseDeferralTest.java rename to core/agent/src/test/java/art/arcane/iris/platform/agent/ClassLoaderCloseDeferralTest.java index f57dc8399..9b2e4e9f4 100644 --- a/core/agent/src/test/java/art/arcane/iris/util/project/agent/ClassLoaderCloseDeferralTest.java +++ b/core/agent/src/test/java/art/arcane/iris/platform/agent/ClassLoaderCloseDeferralTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.project.agent; +package art.arcane.iris.platform.agent; import org.junit.Test; diff --git a/core/build.gradle b/core/build.gradle index 818c6bc4d..9a729027c 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -265,22 +265,14 @@ tasks.named('test', Test).configure { configurations.matching { it.name.startsWith('slim') }.all { } -// VolmLib packages that Iris forked into art.arcane.iris.util.project.* or replaced outright. Every +// Unused VolmLib packages excluded from the Bukkit artifact. Every // class in each of these packages is unreachable from every other class shipped in the Bukkit jar, -// and none of them is a reflective target: Matter.read() resolves only matter/slices, JarScanner +// and none of them is a reflective target: Matter.read() resolves only world/storage/matter, JarScanner // only walks Iris' own packages, and the remaining VolmLib Class.forName calls name Bukkit/NMS or // runtime-downloaded types. Package granularity is deliberate - a partially used package stays whole. // verifyBukkitArtifact re-derives the reference graph over the shipped jar and fails on any dangling // reference, so an exclude that stops being dead is a build failure rather than a runtime crash. -List supersededVolmLibPackages = [ - 'art/arcane/volmlib/util/noise/**', - 'art/arcane/volmlib/util/stream/ProceduralStream.class', - 'art/arcane/volmlib/util/stream/BasicStream.class', - 'art/arcane/volmlib/util/stream/arithmetic/**', - 'art/arcane/volmlib/util/stream/convert/**', - 'art/arcane/volmlib/util/stream/interpolation/**', - 'art/arcane/volmlib/util/stream/sources/**', - 'art/arcane/volmlib/util/stream/utility/**', +List unusedVolmLibPackages = [ 'art/arcane/volmlib/util/uniques/**', 'art/arcane/volmlib/util/bukkit/json/**', 'art/arcane/volmlib/util/bukkit/registry/**', @@ -289,8 +281,7 @@ List supersededVolmLibPackages = [ 'art/arcane/volmlib/util/api/**', 'art/arcane/volmlib/util/entity/**', 'art/arcane/volmlib/util/reflect/**', - 'art/arcane/volmlib/util/documentation/**', - 'art/arcane/iris/core/report/**', + 'art/arcane/iris/diagnostics/Report*.class', 'art/arcane/volmlib/integration/VaultEconomy*.class' ] @@ -349,21 +340,10 @@ List unusedVolmLibClasses = [ 'art/arcane/volmlib/util/board/BoardManager', 'art/arcane/volmlib/util/board/BoardUpdateTask', 'art/arcane/volmlib/util/bukkit/Placeholders', - 'art/arcane/volmlib/util/hunk/HunkFactory', - 'art/arcane/volmlib/util/hunk/view/BiomeForceBridge', - 'art/arcane/volmlib/util/hunk/view/BiomeGridForceSupport', - 'art/arcane/volmlib/util/hunk/view/BiomeGridHunkHolder', - 'art/arcane/volmlib/util/hunk/view/BiomeGridHunkView', - 'art/arcane/volmlib/util/hunk/view/ChunkDataHunkHolder', - 'art/arcane/volmlib/util/hunk/view/RotatedXHunkView', - 'art/arcane/volmlib/util/hunk/view/RotatedYHunkView', - 'art/arcane/volmlib/util/hunk/view/RotatedZHunkView', 'art/arcane/volmlib/util/exceptions/MissingDimensionException', 'art/arcane/volmlib/util/function/Supplier2', 'art/arcane/volmlib/util/function/Supplier3', 'art/arcane/volmlib/util/hud/HudPriority', - 'art/arcane/volmlib/util/interpolation/InterpolationMethod3D', - 'art/arcane/volmlib/util/interpolation/InterpolationType', 'art/arcane/volmlib/util/inventorygui/UIRainbowDecorator', 'art/arcane/volmlib/util/io/Converter', 'art/arcane/volmlib/util/matter/MatterPlacer', @@ -399,18 +379,18 @@ List unusedVolmLibClasses = [ 'art/arcane/volmlib/util/bukkit/Events', 'art/arcane/volmlib/util/json/SingleCollectionTypeFactory', 'art/arcane/volmlib/util/collection/StateList', - 'art/arcane/iris/core/pack/IrisPack', - 'art/arcane/iris/core/pack/IrisPackRepository', - 'art/arcane/iris/util/common/scheduling/jobs/DownloadJob', - 'art/arcane/iris/util/common/scheduling/jobs/JobCollection', - 'art/arcane/iris/util/common/scheduling/jobs/ParallelQueueJob', - 'art/arcane/iris/util/common/scheduling/jobs/QueueJob', - 'art/arcane/iris/engine/framework/placer/WorldObjectPlacer', - 'art/arcane/iris/engine/object/IPostBlockAccess', - 'art/arcane/iris/engine/object/IrisPotionEffect', - 'art/arcane/iris/engine/platform/DummyChunkGenerator', - 'art/arcane/iris/util/common/parallel/GridLock', - 'art/arcane/iris/util/common/reflect/W', + 'art/arcane/iris/pack/IrisPack', + 'art/arcane/iris/pack/IrisPackRepository', + 'art/arcane/iris/world/task/jobs/DownloadJob', + 'art/arcane/iris/world/task/jobs/JobCollection', + 'art/arcane/iris/world/task/jobs/ParallelQueueJob', + 'art/arcane/iris/world/task/jobs/QueueJob', + 'art/arcane/iris/structure/object/WorldObjectPlacer', + 'art/arcane/iris/structure/object/IPostBlockAccess', + 'art/arcane/iris/world/entity/IrisPotionEffect', + 'art/arcane/iris/platform/generation/DummyChunkGenerator', + 'art/arcane/iris/generation/concurrent/GridLock', + 'art/arcane/iris/platform/reflect/W', 'art/arcane/iris/util/slimjar/BuildConstants', 'art/arcane/iris/util/slimjar/relocation/meta/AttributeMetaMediator', 'art/arcane/iris/util/slimjar/relocation/meta/AttributeMetaMediatorFactory' @@ -449,7 +429,7 @@ tasks.named('shadowJar', com.github.jengelman.gradle.plugins.shadow.tasks.Shadow relocate('io.github.slimjar', "${lib}.slimjar") relocate('com.moandjiezana.toml', "${lib}.toml") exclude('modules/loader-agent.isolated-jar') - exclude(supersededVolmLibPackages) + exclude(unusedVolmLibPackages) exclude { FileTreeElement entry -> !entry.isDirectory() && entry.path.startsWith('art/arcane/volmlib/util/config/') && !entry.path.matches(languageTomlSupportClassPattern) diff --git a/core/minecraft-purity-allowlist.txt b/core/minecraft-purity-allowlist.txt index 8301dff67..3c4708e81 100644 --- a/core/minecraft-purity-allowlist.txt +++ b/core/minecraft-purity-allowlist.txt @@ -1,6 +1,6 @@ -art/arcane/iris/core/lifecycle/CapabilitySnapshot.java -art/arcane/iris/core/lifecycle/WorldLifecycleSupport.java -art/arcane/iris/core/runtime/WorldRuntimeControlService.java -art/arcane/iris/core/service/LogFilterSVC.java -art/arcane/iris/core/structure/BulkStructureImporter.java -art/arcane/iris/core/structure/VillageImporter.java +art/arcane/iris/diagnostics/LogFilterSVC.java +art/arcane/iris/structure/BulkStructureImporter.java +art/arcane/iris/structure/VillageImporter.java +art/arcane/iris/world/lifecycle/CapabilitySnapshot.java +art/arcane/iris/world/lifecycle/WorldLifecycleSupport.java +art/arcane/iris/world/runtime/WorldRuntimeControlService.java diff --git a/core/purity-allowlist.txt b/core/purity-allowlist.txt index bb2dc80e8..4837aca58 100644 --- a/core/purity-allowlist.txt +++ b/core/purity-allowlist.txt @@ -1,166 +1,72 @@ -art/arcane/iris/core/IrisRuntimeSchedulerMode.java -art/arcane/iris/core/IrisWorldStorage.java -art/arcane/iris/core/IrisWorlds.java -art/arcane/iris/core/ServerConfigurator.java -art/arcane/iris/core/WorldCreatorCompat.java -art/arcane/iris/core/WorldRemovalPathPolicy.java -art/arcane/iris/core/datapack/DatapackIngestService.java -art/arcane/iris/core/edit/BlockSignal.java -art/arcane/iris/core/edit/DustRevealer.java -art/arcane/iris/core/events/IrisEngineEvent.java -art/arcane/iris/core/events/IrisEngineHotloadEvent.java -art/arcane/iris/core/events/IrisLootEvent.java -art/arcane/iris/core/lifecycle/BukkitWorldConfiguration.java -art/arcane/iris/core/lifecycle/BukkitPublicBackend.java -art/arcane/iris/core/lifecycle/CapabilitySnapshot.java -art/arcane/iris/core/lifecycle/IrisWorldRemovalService.java -art/arcane/iris/core/lifecycle/PaperLibBootstrap.java -art/arcane/iris/core/lifecycle/PaperLikeRuntimeBackend.java -art/arcane/iris/core/lifecycle/WorldLifecycleBackend.java -art/arcane/iris/core/lifecycle/WorldLifecycleRequest.java -art/arcane/iris/core/lifecycle/WorldLifecycleService.java -art/arcane/iris/core/lifecycle/WorldLifecycleStaging.java -art/arcane/iris/core/lifecycle/WorldLifecycleSupport.java -art/arcane/iris/core/lifecycle/WorldsProviderBackend.java -art/arcane/iris/core/link/ExternalDataProvider.java -art/arcane/iris/core/link/MultiverseCoreLink.java -art/arcane/iris/core/link/MultiverseGuardListener.java -art/arcane/iris/core/link/WorldEditLink.java -art/arcane/iris/core/link/data/CraftEngineDataProvider.java -art/arcane/iris/core/link/data/EcoItemsDataProvider.java -art/arcane/iris/core/link/data/ExecutableItemsDataProvider.java -art/arcane/iris/core/link/data/ItemAdderDataProvider.java -art/arcane/iris/core/link/data/KGeneratorsDataProvider.java -art/arcane/iris/core/link/data/MMOItemsDataProvider.java -art/arcane/iris/core/link/data/MythicCrucibleDataProvider.java -art/arcane/iris/core/link/data/MythicMobsDataProvider.java -art/arcane/iris/core/link/data/NexoDataProvider.java -art/arcane/iris/core/link/data/OraxenDataProvider.java -art/arcane/iris/core/nms/INMS.java -art/arcane/iris/core/nms/INMSBinding.java -art/arcane/iris/core/nms/MinecraftVersion.java -art/arcane/iris/core/nms/v1X/NMSBinding1X.java -art/arcane/iris/core/pack/IrisPack.java -art/arcane/iris/core/pregenerator/methods/AsyncOrMedievalPregenMethod.java -art/arcane/iris/core/pregenerator/methods/AsyncPregenMethod.java -art/arcane/iris/core/pregenerator/methods/HybridPregenMethod.java -art/arcane/iris/core/pregenerator/methods/MedievalPregenMethod.java -art/arcane/iris/core/project/IrisProject.java -art/arcane/iris/core/project/StudioOpenProgressReporter.java -art/arcane/iris/core/runtime/BukkitPublicRuntimeControlBackend.java -art/arcane/iris/core/runtime/ChunkClearer.java -art/arcane/iris/core/runtime/ChunkJobReporter.java -art/arcane/iris/core/runtime/GoldenHashScanner.java -art/arcane/iris/core/runtime/InPlaceChunkRegenerator.java -art/arcane/iris/core/runtime/PaperLikeRuntimeControlBackend.java -art/arcane/iris/core/runtime/StudioOpenCoordinator.java -art/arcane/iris/core/runtime/WorldRuntimeControlBackend.java -art/arcane/iris/core/runtime/WorldRuntimeControlService.java -art/arcane/iris/core/safeguard/Mode.java -art/arcane/iris/core/safeguard/task/Tasks.java -art/arcane/iris/core/service/BoardSVC.java -art/arcane/iris/core/service/EntityRiseSVC.java -art/arcane/iris/core/service/ExternalDataSVC.java -art/arcane/iris/core/service/GlobalCacheSVC.java -art/arcane/iris/core/service/JigsawStudioAutosaveScheduler.java -art/arcane/iris/core/service/JigsawStudioCapture.java -art/arcane/iris/core/service/JigsawStudioCaptureScheduler.java -art/arcane/iris/core/service/JigsawStudioChunkWriter.java -art/arcane/iris/core/service/JigsawStudioDetailsMenu.java -art/arcane/iris/core/service/JigsawStudioDirtyTracker.java -art/arcane/iris/core/service/JigsawStudioGraphMutations.java -art/arcane/iris/core/service/JigsawStudioMainMenu.java -art/arcane/iris/core/service/JigsawStudioMarkerParser.java -art/arcane/iris/core/service/JigsawStudioMaterializer.java -art/arcane/iris/core/service/JigsawStudioMenuActions.java -art/arcane/iris/core/service/JigsawStudioMenuController.java -art/arcane/iris/core/service/JigsawStudioMenuFormat.java -art/arcane/iris/core/service/JigsawStudioPlayerContext.java -art/arcane/iris/core/service/JigsawStudioPreviewRenderer.java -art/arcane/iris/core/service/JigsawStudioProtection.java -art/arcane/iris/core/service/JigsawStudioProtectionListener.java -art/arcane/iris/core/service/JigsawStudioRegistry.java -art/arcane/iris/core/service/JigsawStudioSaveLifecycle.java -art/arcane/iris/core/service/JigsawStudioService.java -art/arcane/iris/core/service/JigsawStudioStructureMenu.java -art/arcane/iris/core/service/JigsawStudioTileWatcher.java -art/arcane/iris/core/service/JigsawStudioToolCodec.java -art/arcane/iris/core/service/JigsawStudioToolbelt.java -art/arcane/iris/core/service/JigsawStudioToolboxMenu.java -art/arcane/iris/core/service/JigsawStudioVariantEditor.java -art/arcane/iris/core/service/JigsawStudioVariantMenu.java -art/arcane/iris/core/service/JigsawStudioVariantProperties.java -art/arcane/iris/core/service/JigsawStudioVisualization.java -art/arcane/iris/core/service/JigsawStudioWorkcellEditor.java -art/arcane/iris/core/service/JigsawStudioWorkcellMenu.java -art/arcane/iris/core/service/MultiverseSVC.java -art/arcane/iris/core/service/ObjectSVC.java -art/arcane/iris/core/service/ObjectStudioSaveService.java -art/arcane/iris/core/service/PackDownloadProgressReporter.java -art/arcane/iris/core/service/StudioSVC.java -art/arcane/iris/core/service/TreeSVC.java -art/arcane/iris/core/structure/BulkStructureImporter.java -art/arcane/iris/core/structure/FeatureImporter.java -art/arcane/iris/core/structure/StructureCaptureImporter.java -art/arcane/iris/core/structure/StructureImporter.java -art/arcane/iris/core/structure/VillageImporter.java -art/arcane/iris/core/tools/IrisConverter.java -art/arcane/iris/core/tools/IrisCreator.java -art/arcane/iris/core/tools/IrisPackBenchmarking.java -art/arcane/iris/core/tools/IrisReflectiveAPI.java -art/arcane/iris/core/tools/IrisToolbelt.java -art/arcane/iris/core/tools/IrisWorldCreator.java -art/arcane/iris/engine/IrisEngineEffects.java -art/arcane/iris/engine/IrisWorldManager.java -art/arcane/iris/engine/MarkerSpawnScanner.java -art/arcane/iris/engine/WorldBlockDropRouter.java -art/arcane/iris/engine/WorldChunkMaintenance.java -art/arcane/iris/engine/WorldEntitySpawner.java -art/arcane/iris/engine/WorldTeleportWarmup.java -art/arcane/iris/engine/data/chunk/LinkedTerrainChunk.java -art/arcane/iris/engine/data/chunk/TerrainChunk.java -art/arcane/iris/engine/decorator/DecoratorCore.java -art/arcane/iris/engine/decorator/IrisSpeleothems.java -art/arcane/iris/engine/framework/BukkitEngineWorldManager.java -art/arcane/iris/engine/framework/EngineAssignedWorldManager.java -art/arcane/iris/engine/framework/EnginePlayer.java -art/arcane/iris/engine/framework/placer/WorldObjectPlacer.java -art/arcane/iris/engine/mantle/MantleWriter.java -art/arcane/iris/engine/object/BlockDataMergeSupport.java -art/arcane/iris/engine/object/IPostBlockAccess.java -art/arcane/iris/engine/object/IrisAttributeModifier.java -art/arcane/iris/engine/object/IrisBiome.java -art/arcane/iris/engine/object/IrisBiomeCustomParticle.java -art/arcane/iris/engine/object/IrisBiomeDerivatives.java -art/arcane/iris/engine/object/IrisBiomeCustomSpawn.java -art/arcane/iris/engine/object/IrisBlockDrops.java -art/arcane/iris/engine/object/IrisCommandRegistry.java -art/arcane/iris/engine/object/IrisCompat.java -art/arcane/iris/engine/object/IrisCompatabilityBlockFilter.java -art/arcane/iris/engine/object/IrisCompatabilityItemFilter.java -art/arcane/iris/engine/object/IrisDirection.java -art/arcane/iris/engine/object/IrisEffect.java -art/arcane/iris/engine/object/IrisEnchantment.java -art/arcane/iris/engine/object/IrisEntity.java -art/arcane/iris/engine/object/IrisEntitySpawn.java -art/arcane/iris/engine/object/IrisLoot.java -art/arcane/iris/engine/object/IrisLootTable.java -art/arcane/iris/engine/object/IrisObject.java -art/arcane/iris/engine/object/IrisObjectPlacement.java -art/arcane/iris/engine/object/IrisObjectRotation.java -art/arcane/iris/engine/object/IrisPotionEffect.java -art/arcane/iris/engine/object/IrisSurface.java -art/arcane/iris/engine/object/IrisTree.java -art/arcane/iris/engine/object/IrisVanillaLootTable.java -art/arcane/iris/engine/object/LegacyTileData.java -art/arcane/iris/engine/object/PotionEffectTypes.java -art/arcane/iris/engine/object/TileData.java -art/arcane/iris/engine/platform/BukkitChunkGenerator.java -art/arcane/iris/engine/platform/DummyBiomeProvider.java -art/arcane/iris/engine/platform/DummyChunkGenerator.java -art/arcane/iris/engine/platform/EngineBukkitOps.java -art/arcane/iris/engine/platform/studio/generators/JigsawStudioGenerator.java -art/arcane/iris/engine/platform/studio/generators/ObjectStudioGenerator.java +art/arcane/iris/command/DirectorExecutor.java +art/arcane/iris/command/IrisCommandRegistry.java +art/arcane/iris/command/context/VectorContextHandler.java +art/arcane/iris/command/context/WorldContextHandler.java +art/arcane/iris/command/handlers/BlockVectorHandler.java +art/arcane/iris/command/handlers/PlayerHandler.java +art/arcane/iris/command/handlers/VectorHandler.java +art/arcane/iris/command/handlers/WorldHandler.java +art/arcane/iris/command/specialhandlers/NullablePlayerHandler.java +art/arcane/iris/generation/biome/IrisBiome.java +art/arcane/iris/generation/biome/IrisBiomeCustomParticle.java +art/arcane/iris/generation/biome/IrisBiomeCustomSpawn.java +art/arcane/iris/generation/biome/IrisBiomeDerivatives.java +art/arcane/iris/generation/block/BlockDataMergeSupport.java +art/arcane/iris/generation/block/IrisCustomData.java +art/arcane/iris/generation/block/LegacyTileData.java +art/arcane/iris/generation/block/TileData.java +art/arcane/iris/generation/chunk/ChunkBiomeHunkView.java +art/arcane/iris/generation/chunk/ChunkDataHunkHolder.java +art/arcane/iris/generation/chunk/ChunkDataHunkView.java +art/arcane/iris/generation/chunk/ChunkHunkView.java +art/arcane/iris/generation/chunk/LinkedTerrainChunk.java +art/arcane/iris/generation/chunk/TerrainChunk.java +art/arcane/iris/generation/decoration/DecoratorCore.java +art/arcane/iris/generation/decoration/IrisSpeleothems.java +art/arcane/iris/generation/decoration/IrisSurface.java +art/arcane/iris/generation/decoration/tree/IrisTree.java +art/arcane/iris/generation/geometry/AxisAlignedBB.java +art/arcane/iris/generation/mantle/MantleWriter.java +art/arcane/iris/generation/runtime/BukkitEngineWorldManager.java +art/arcane/iris/generation/runtime/EngineAssignedWorldManager.java +art/arcane/iris/generation/runtime/EnginePlayer.java +art/arcane/iris/generation/runtime/GlobalCacheSVC.java +art/arcane/iris/generation/runtime/IrisEngineEffects.java +art/arcane/iris/generation/runtime/IrisWorldManager.java +art/arcane/iris/generation/runtime/MarkerSpawnScanner.java +art/arcane/iris/generation/runtime/WorldBlockDropRouter.java +art/arcane/iris/generation/runtime/WorldChunkMaintenance.java +art/arcane/iris/generation/runtime/WorldEntitySpawner.java +art/arcane/iris/generation/runtime/WorldTeleportWarmup.java +art/arcane/iris/generation/validation/GoldenHashScanner.java +art/arcane/iris/integration/ExternalDataProvider.java +art/arcane/iris/integration/ExternalDataSVC.java +art/arcane/iris/integration/MultiverseCoreLink.java +art/arcane/iris/integration/MultiverseGuardListener.java +art/arcane/iris/integration/MultiverseSVC.java +art/arcane/iris/integration/WorldEditLink.java +art/arcane/iris/integration/data/CraftEngineDataProvider.java +art/arcane/iris/integration/data/EcoItemsDataProvider.java +art/arcane/iris/integration/data/ExecutableItemsDataProvider.java +art/arcane/iris/integration/data/ItemAdderDataProvider.java +art/arcane/iris/integration/data/KGeneratorsDataProvider.java +art/arcane/iris/integration/data/MMOItemsDataProvider.java +art/arcane/iris/integration/data/MythicCrucibleDataProvider.java +art/arcane/iris/integration/data/MythicMobsDataProvider.java +art/arcane/iris/integration/data/NexoDataProvider.java +art/arcane/iris/integration/data/OraxenDataProvider.java +art/arcane/iris/localization/C.java +art/arcane/iris/pack/IrisConverter.java +art/arcane/iris/pack/IrisPack.java +art/arcane/iris/pack/IrisPackBenchmarking.java +art/arcane/iris/pack/datapack/DatapackIngestService.java +art/arcane/iris/pack/datapack/ServerConfigurator.java +art/arcane/iris/pack/validation/IrisCompat.java +art/arcane/iris/pack/validation/IrisCompatabilityBlockFilter.java +art/arcane/iris/pack/validation/IrisCompatabilityItemFilter.java +art/arcane/iris/pack/value/IrisDirection.java +art/arcane/iris/platform/bootstrap/Bindings.java +art/arcane/iris/platform/bukkit/BoardSVC.java art/arcane/iris/platform/bukkit/BukkitBiome.java art/arcane/iris/platform/bukkit/BukkitBlockResolution.java art/arcane/iris/platform/bukkit/BukkitBlockState.java @@ -172,42 +78,133 @@ art/arcane/iris/platform/bukkit/BukkitRegistries.java art/arcane/iris/platform/bukkit/BukkitScheduler.java art/arcane/iris/platform/bukkit/BukkitWorld.java art/arcane/iris/platform/bukkit/BukkitWorldBinding.java -art/arcane/iris/util/common/data/IrisCustomData.java -art/arcane/iris/util/common/data/registry/Attributes.java -art/arcane/iris/util/common/data/registry/KeyedRegistry.java -art/arcane/iris/util/common/data/registry/Materials.java -art/arcane/iris/util/common/data/registry/Particles.java -art/arcane/iris/util/common/data/registry/RegistryTypeAdapter.java -art/arcane/iris/util/common/data/registry/RegistryUtil.java -art/arcane/iris/util/common/director/DirectorExecutor.java -art/arcane/iris/util/common/director/context/VectorContextHandler.java -art/arcane/iris/util/common/director/context/WorldContextHandler.java -art/arcane/iris/util/common/director/handlers/BlockVectorHandler.java -art/arcane/iris/util/common/director/handlers/PlayerHandler.java -art/arcane/iris/util/common/director/handlers/VectorHandler.java -art/arcane/iris/util/common/director/handlers/WorldHandler.java -art/arcane/iris/util/common/director/specialhandlers/NullablePlayerHandler.java -art/arcane/iris/util/common/format/C.java -art/arcane/iris/util/common/math/AxisAlignedBB.java -art/arcane/iris/util/common/math/Direction.java -art/arcane/iris/util/common/math/VectorMath.java -art/arcane/iris/util/common/misc/Bindings.java -art/arcane/iris/util/common/nbt/mca/Chunk.java -art/arcane/iris/util/common/nbt/mca/NBTWorld.java -art/arcane/iris/util/common/plugin/Chunks.java -art/arcane/iris/util/common/plugin/IrisService.java -art/arcane/iris/util/common/plugin/VolmitPlugin.java -art/arcane/iris/util/common/plugin/VolmitSender.java -art/arcane/iris/util/common/plugin/chunk/ChunkTickets.java -art/arcane/iris/util/common/plugin/chunk/TicketHolder.java -art/arcane/iris/util/common/reflect/KeyedType.java -art/arcane/iris/util/common/scheduling/J.java -art/arcane/iris/util/project/hunk/Hunk.java -art/arcane/iris/util/project/hunk/view/ChunkBiomeHunkView.java -art/arcane/iris/util/project/hunk/view/ChunkDataHunkHolder.java -art/arcane/iris/util/project/hunk/view/ChunkDataHunkView.java -art/arcane/iris/util/project/hunk/view/ChunkHunkView.java -art/arcane/iris/util/project/matter/IrisMatterSupport.java -art/arcane/iris/util/project/matter/WorldMatter.java -art/arcane/iris/util/project/matter/slices/EntityMatter.java -art/arcane/iris/util/project/matter/slices/TileMatter.java +art/arcane/iris/platform/bukkit/chunk/ChunkTickets.java +art/arcane/iris/platform/bukkit/chunk/TicketHolder.java +art/arcane/iris/platform/bukkit/nms/INMS.java +art/arcane/iris/platform/bukkit/nms/INMSBinding.java +art/arcane/iris/platform/bukkit/nms/MinecraftVersion.java +art/arcane/iris/platform/bukkit/nms/v1X/NMSBinding1X.java +art/arcane/iris/platform/bukkit/plugin/Chunks.java +art/arcane/iris/platform/bukkit/plugin/IrisService.java +art/arcane/iris/platform/bukkit/plugin/VolmitPlugin.java +art/arcane/iris/platform/bukkit/plugin/VolmitSender.java +art/arcane/iris/platform/bukkit/registry/Attributes.java +art/arcane/iris/platform/bukkit/registry/KeyedRegistry.java +art/arcane/iris/platform/bukkit/registry/Materials.java +art/arcane/iris/platform/bukkit/registry/Particles.java +art/arcane/iris/platform/bukkit/registry/RegistryTypeAdapter.java +art/arcane/iris/platform/bukkit/registry/RegistryUtil.java +art/arcane/iris/platform/generation/BukkitChunkGenerator.java +art/arcane/iris/platform/generation/DummyBiomeProvider.java +art/arcane/iris/platform/generation/DummyChunkGenerator.java +art/arcane/iris/platform/generation/EngineBukkitOps.java +art/arcane/iris/platform/reflect/KeyedType.java +art/arcane/iris/structure/BulkStructureImporter.java +art/arcane/iris/structure/FeatureImporter.java +art/arcane/iris/structure/StructureCaptureImporter.java +art/arcane/iris/structure/StructureImporter.java +art/arcane/iris/structure/VillageImporter.java +art/arcane/iris/structure/object/IPostBlockAccess.java +art/arcane/iris/structure/object/IrisObject.java +art/arcane/iris/structure/object/IrisObjectPlacement.java +art/arcane/iris/structure/object/IrisObjectRotation.java +art/arcane/iris/structure/object/WorldObjectPlacer.java +art/arcane/iris/studio/PackDownloadProgressReporter.java +art/arcane/iris/studio/StudioSVC.java +art/arcane/iris/studio/edit/BlockSignal.java +art/arcane/iris/studio/edit/DustRevealer.java +art/arcane/iris/studio/generation/JigsawStudioGenerator.java +art/arcane/iris/studio/generation/ObjectStudioGenerator.java +art/arcane/iris/studio/jigsaw/JigsawStudioAutosaveScheduler.java +art/arcane/iris/studio/jigsaw/JigsawStudioCapture.java +art/arcane/iris/studio/jigsaw/JigsawStudioCaptureScheduler.java +art/arcane/iris/studio/jigsaw/JigsawStudioChunkWriter.java +art/arcane/iris/studio/jigsaw/JigsawStudioDetailsMenu.java +art/arcane/iris/studio/jigsaw/JigsawStudioDirtyTracker.java +art/arcane/iris/studio/jigsaw/JigsawStudioGraphMutations.java +art/arcane/iris/studio/jigsaw/JigsawStudioMainMenu.java +art/arcane/iris/studio/jigsaw/JigsawStudioMarkerParser.java +art/arcane/iris/studio/jigsaw/JigsawStudioMaterializer.java +art/arcane/iris/studio/jigsaw/JigsawStudioMenuActions.java +art/arcane/iris/studio/jigsaw/JigsawStudioMenuController.java +art/arcane/iris/studio/jigsaw/JigsawStudioMenuFormat.java +art/arcane/iris/studio/jigsaw/JigsawStudioPlayerContext.java +art/arcane/iris/studio/jigsaw/JigsawStudioPreviewRenderer.java +art/arcane/iris/studio/jigsaw/JigsawStudioProtection.java +art/arcane/iris/studio/jigsaw/JigsawStudioProtectionListener.java +art/arcane/iris/studio/jigsaw/JigsawStudioRegistry.java +art/arcane/iris/studio/jigsaw/JigsawStudioSaveLifecycle.java +art/arcane/iris/studio/jigsaw/JigsawStudioService.java +art/arcane/iris/studio/jigsaw/JigsawStudioStructureMenu.java +art/arcane/iris/studio/jigsaw/JigsawStudioTileWatcher.java +art/arcane/iris/studio/jigsaw/JigsawStudioToolCodec.java +art/arcane/iris/studio/jigsaw/JigsawStudioToolbelt.java +art/arcane/iris/studio/jigsaw/JigsawStudioToolboxMenu.java +art/arcane/iris/studio/jigsaw/JigsawStudioVariantEditor.java +art/arcane/iris/studio/jigsaw/JigsawStudioVariantMenu.java +art/arcane/iris/studio/jigsaw/JigsawStudioVariantProperties.java +art/arcane/iris/studio/jigsaw/JigsawStudioVisualization.java +art/arcane/iris/studio/jigsaw/JigsawStudioWorkcellEditor.java +art/arcane/iris/studio/jigsaw/JigsawStudioWorkcellMenu.java +art/arcane/iris/studio/object/ObjectSVC.java +art/arcane/iris/studio/object/ObjectStudioSaveService.java +art/arcane/iris/studio/object/StudioOpenCoordinator.java +art/arcane/iris/studio/workspace/IrisProject.java +art/arcane/iris/studio/workspace/StudioOpenProgressReporter.java +art/arcane/iris/world/IrisCreator.java +art/arcane/iris/world/IrisReflectiveAPI.java +art/arcane/iris/world/IrisRuntimeSchedulerMode.java +art/arcane/iris/world/IrisToolbelt.java +art/arcane/iris/world/IrisWorldCreator.java +art/arcane/iris/world/IrisWorldStorage.java +art/arcane/iris/world/IrisWorlds.java +art/arcane/iris/world/WorldCreatorCompat.java +art/arcane/iris/world/WorldRemovalPathPolicy.java +art/arcane/iris/world/entity/EntityRiseSVC.java +art/arcane/iris/world/entity/IrisAttributeModifier.java +art/arcane/iris/world/entity/IrisEffect.java +art/arcane/iris/world/entity/IrisEnchantment.java +art/arcane/iris/world/entity/IrisEntity.java +art/arcane/iris/world/entity/IrisEntitySpawn.java +art/arcane/iris/world/entity/IrisPotionEffect.java +art/arcane/iris/world/entity/PotionEffectTypes.java +art/arcane/iris/world/event/IrisEngineEvent.java +art/arcane/iris/world/event/IrisEngineHotloadEvent.java +art/arcane/iris/world/event/IrisLootEvent.java +art/arcane/iris/world/lifecycle/BukkitPublicBackend.java +art/arcane/iris/world/lifecycle/BukkitWorldConfiguration.java +art/arcane/iris/world/lifecycle/CapabilitySnapshot.java +art/arcane/iris/world/lifecycle/IrisWorldRemovalService.java +art/arcane/iris/world/lifecycle/PaperLibBootstrap.java +art/arcane/iris/world/lifecycle/PaperLikeRuntimeBackend.java +art/arcane/iris/world/lifecycle/WorldLifecycleBackend.java +art/arcane/iris/world/lifecycle/WorldLifecycleRequest.java +art/arcane/iris/world/lifecycle/WorldLifecycleService.java +art/arcane/iris/world/lifecycle/WorldLifecycleStaging.java +art/arcane/iris/world/lifecycle/WorldLifecycleSupport.java +art/arcane/iris/world/lifecycle/WorldsProviderBackend.java +art/arcane/iris/world/loot/IrisBlockDrops.java +art/arcane/iris/world/loot/IrisLoot.java +art/arcane/iris/world/loot/IrisLootTable.java +art/arcane/iris/world/loot/IrisVanillaLootTable.java +art/arcane/iris/world/pregen/AsyncOrMedievalPregenMethod.java +art/arcane/iris/world/pregen/AsyncPregenMethod.java +art/arcane/iris/world/pregen/HybridPregenMethod.java +art/arcane/iris/world/pregen/MedievalPregenMethod.java +art/arcane/iris/world/runtime/BukkitPublicRuntimeControlBackend.java +art/arcane/iris/world/runtime/ChunkClearer.java +art/arcane/iris/world/runtime/ChunkJobReporter.java +art/arcane/iris/world/runtime/InPlaceChunkRegenerator.java +art/arcane/iris/world/runtime/PaperLikeRuntimeControlBackend.java +art/arcane/iris/world/runtime/WorldRuntimeControlBackend.java +art/arcane/iris/world/runtime/WorldRuntimeControlService.java +art/arcane/iris/world/safeguard/Mode.java +art/arcane/iris/world/safeguard/Tasks.java +art/arcane/iris/world/storage/matter/EntityMatter.java +art/arcane/iris/world/storage/matter/IrisMatterSupport.java +art/arcane/iris/world/storage/matter/TileMatter.java +art/arcane/iris/world/storage/matter/WorldMatter.java +art/arcane/iris/world/storage/region/Chunk.java +art/arcane/iris/world/storage/region/NBTWorld.java +art/arcane/iris/world/task/J.java +art/arcane/iris/world/tree/TreeSVC.java diff --git a/core/src/externalProviderTest/java/art/arcane/iris/core/link/data/CraftEngineDataProviderTest.java b/core/src/externalProviderTest/java/art/arcane/iris/integration/data/CraftEngineDataProviderTest.java similarity index 98% rename from core/src/externalProviderTest/java/art/arcane/iris/core/link/data/CraftEngineDataProviderTest.java rename to core/src/externalProviderTest/java/art/arcane/iris/integration/data/CraftEngineDataProviderTest.java index 0cd4566de..4d44a567e 100644 --- a/core/src/externalProviderTest/java/art/arcane/iris/core/link/data/CraftEngineDataProviderTest.java +++ b/core/src/externalProviderTest/java/art/arcane/iris/integration/data/CraftEngineDataProviderTest.java @@ -1,14 +1,14 @@ -package art.arcane.iris.core.link.data; +package art.arcane.iris.integration.data; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.core.service.ExternalDataSVC; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.SeedManager; +import art.arcane.iris.integration.Identifier; +import art.arcane.iris.integration.ExternalDataSVC; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.SeedManager; import art.arcane.iris.platform.bukkit.BukkitBlockResolution; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.testsupport.BukkitTestServer; -import art.arcane.iris.util.common.data.IrisCustomData; -import art.arcane.iris.util.common.data.registry.RegistryUtil; +import art.arcane.iris.generation.block.IrisCustomData; +import art.arcane.iris.platform.bukkit.registry.RegistryUtil; import art.arcane.volmlib.util.collection.KMap; import net.momirealms.craftengine.bukkit.api.CraftEngineBlocks; import net.momirealms.craftengine.bukkit.api.CraftEngineFurniture; diff --git a/core/src/externalProviderTest/java/art/arcane/iris/core/link/data/ItemAdderDataProviderTest.java b/core/src/externalProviderTest/java/art/arcane/iris/integration/data/ItemAdderDataProviderTest.java similarity index 97% rename from core/src/externalProviderTest/java/art/arcane/iris/core/link/data/ItemAdderDataProviderTest.java rename to core/src/externalProviderTest/java/art/arcane/iris/integration/data/ItemAdderDataProviderTest.java index 056849caf..4952aabcf 100644 --- a/core/src/externalProviderTest/java/art/arcane/iris/core/link/data/ItemAdderDataProviderTest.java +++ b/core/src/externalProviderTest/java/art/arcane/iris/integration/data/ItemAdderDataProviderTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.link.data; +package art.arcane.iris.integration.data; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.util.common.data.IrisCustomData; +import art.arcane.iris.integration.Identifier; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.block.IrisCustomData; import art.arcane.volmlib.util.collection.KMap; import dev.lone.itemsadder.api.CustomBlock; import dev.lone.itemsadder.api.CustomStack; diff --git a/core/src/externalProviderTest/java/art/arcane/iris/core/link/data/OraxenDataProviderTest.java b/core/src/externalProviderTest/java/art/arcane/iris/integration/data/OraxenDataProviderTest.java similarity index 95% rename from core/src/externalProviderTest/java/art/arcane/iris/core/link/data/OraxenDataProviderTest.java rename to core/src/externalProviderTest/java/art/arcane/iris/integration/data/OraxenDataProviderTest.java index 8603846f3..0e0101c1f 100644 --- a/core/src/externalProviderTest/java/art/arcane/iris/core/link/data/OraxenDataProviderTest.java +++ b/core/src/externalProviderTest/java/art/arcane/iris/integration/data/OraxenDataProviderTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.link.data; +package art.arcane.iris.integration.data; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.util.common.data.IrisCustomData; +import art.arcane.iris.integration.Identifier; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.block.IrisCustomData; import art.arcane.volmlib.util.collection.KMap; import io.th0rgal.oraxen.api.OraxenBlocks; import org.bukkit.Location; diff --git a/core/src/main/java/art/arcane/iris/util/common/director/DirectorContext.java b/core/src/main/java/art/arcane/iris/command/DirectorContext.java similarity index 80% rename from core/src/main/java/art/arcane/iris/util/common/director/DirectorContext.java rename to core/src/main/java/art/arcane/iris/command/DirectorContext.java index bfba53c03..232385135 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/DirectorContext.java +++ b/core/src/main/java/art/arcane/iris/command/DirectorContext.java @@ -1,7 +1,7 @@ -package art.arcane.iris.util.common.director; +package art.arcane.iris.command; import art.arcane.volmlib.util.director.context.DirectorContextBase; -import art.arcane.iris.util.common.plugin.VolmitSender; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; public class DirectorContext { private static final DirectorContextBase context = new DirectorContextBase<>(); diff --git a/core/src/main/java/art/arcane/iris/util/common/director/DirectorContextHandler.java b/core/src/main/java/art/arcane/iris/command/DirectorContextHandler.java similarity index 85% rename from core/src/main/java/art/arcane/iris/util/common/director/DirectorContextHandler.java rename to core/src/main/java/art/arcane/iris/command/DirectorContextHandler.java index 83637371b..4830736be 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/DirectorContextHandler.java +++ b/core/src/main/java/art/arcane/iris/command/DirectorContextHandler.java @@ -1,9 +1,9 @@ -package art.arcane.iris.util.common.director; +package art.arcane.iris.command; import art.arcane.volmlib.util.director.context.DirectorContextHandlers; import art.arcane.volmlib.util.director.context.DirectorContextHandlerType; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.plugin.VolmitSender; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; import java.util.Map; @@ -12,7 +12,7 @@ public interface DirectorContextHandler extends DirectorContextHandlerType, DirectorContextHandler> buildContextHandlers() { return DirectorContextHandlers.buildOrEmpty( - DirectorSystem.initializePackage("art.arcane.iris.util.common.director.context"), + DirectorSystem.initializePackage("art.arcane.iris.command.context"), DirectorContextHandler.class, h -> ((DirectorContextHandler) h).getType(), e -> { diff --git a/core/src/main/java/art/arcane/iris/util/common/director/DirectorExecutor.java b/core/src/main/java/art/arcane/iris/command/DirectorExecutor.java similarity index 89% rename from core/src/main/java/art/arcane/iris/util/common/director/DirectorExecutor.java rename to core/src/main/java/art/arcane/iris/command/DirectorExecutor.java index dca53e89c..96b2c3f5f 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/DirectorExecutor.java +++ b/core/src/main/java/art/arcane/iris/command/DirectorExecutor.java @@ -16,16 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.director; +package art.arcane.iris.command; import art.arcane.volmlib.util.director.DirectorExecutorBase; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.pack.PackDirectoryResolver; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.PackDirectoryResolver; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.util.common.plugin.VolmitSender; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; import org.bukkit.entity.Player; import java.io.File; diff --git a/core/src/main/java/art/arcane/iris/util/common/director/DirectorParameterHandler.java b/core/src/main/java/art/arcane/iris/command/DirectorParameterHandler.java similarity index 75% rename from core/src/main/java/art/arcane/iris/util/common/director/DirectorParameterHandler.java rename to core/src/main/java/art/arcane/iris/command/DirectorParameterHandler.java index ead5defa8..5caf0362e 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/DirectorParameterHandler.java +++ b/core/src/main/java/art/arcane/iris/command/DirectorParameterHandler.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.common.director; +package art.arcane.iris.command; public interface DirectorParameterHandler extends DirectorExecutor, art.arcane.volmlib.util.director.DirectorParameterHandler { diff --git a/core/src/main/java/art/arcane/iris/util/common/director/DirectorSystem.java b/core/src/main/java/art/arcane/iris/command/DirectorSystem.java similarity index 57% rename from core/src/main/java/art/arcane/iris/util/common/director/DirectorSystem.java rename to core/src/main/java/art/arcane/iris/command/DirectorSystem.java index 78ffa58f0..4b3c77d97 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/DirectorSystem.java +++ b/core/src/main/java/art/arcane/iris/command/DirectorSystem.java @@ -16,16 +16,26 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.director; +package art.arcane.iris.command; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; +import art.arcane.volmlib.util.director.DirectorParameterHandler; import art.arcane.volmlib.util.director.DirectorSystemSupport; import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.director.handlers.StringHandlerBase; +import art.arcane.volmlib.util.director.handlers.base.BooleanHandlerBase; +import art.arcane.volmlib.util.director.handlers.base.ByteHandlerBase; +import art.arcane.volmlib.util.director.handlers.base.DoubleHandlerBase; +import art.arcane.volmlib.util.director.handlers.base.FloatHandlerBase; +import art.arcane.volmlib.util.director.handlers.base.IntegerHandlerBase; +import art.arcane.volmlib.util.director.handlers.base.LongHandlerBase; +import art.arcane.volmlib.util.director.handlers.base.ShortHandlerBase; import art.arcane.volmlib.util.io.JarScanner; + public final class DirectorSystem { - public static final KList> handlers = initializePackage("art.arcane.iris.util.common.director.handlers").convert((i) -> (art.arcane.volmlib.util.director.DirectorParameterHandler) i); + public static final KList> handlers = initializeHandlers(); private DirectorSystem() { } @@ -55,8 +65,8 @@ public final class DirectorSystem { * @param type The type to handle * @return The corresponding {@link DirectorParameterHandler}, or null */ - public static art.arcane.volmlib.util.director.DirectorParameterHandler getHandler(Class type) { - art.arcane.volmlib.util.director.DirectorParameterHandler handler = DirectorSystemSupport.getHandler(handlers, type, (h, t) -> h.supports(t)); + public static DirectorParameterHandler getHandler(Class type) { + DirectorParameterHandler handler = DirectorSystemSupport.getHandler(handlers, type, (h, t) -> h.supports(t)); if (handler != null) { return handler; } @@ -64,4 +74,20 @@ public final class DirectorSystem { IrisLogging.error("Unhandled type in Director Parameter: " + type.getName() + ". This is bad!"); return null; } + + private static KList> initializeHandlers() { + KList> handlers = new KList<>( + new BooleanHandlerBase(), + new ByteHandlerBase(), + new DoubleHandlerBase(), + new FloatHandlerBase(), + new IntegerHandlerBase(), + new LongHandlerBase(), + new ShortHandlerBase(), + new StringHandlerBase()); + for (Object handler : initializePackage("art.arcane.iris.command.handlers")) { + handlers.add((DirectorParameterHandler) handler); + } + return handlers; + } } diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisCommand.java b/core/src/main/java/art/arcane/iris/command/IrisCommand.java similarity index 70% rename from core/src/main/java/art/arcane/iris/engine/object/IrisCommand.java rename to core/src/main/java/art/arcane/iris/command/IrisCommand.java index bd9262b9a..a16e233d5 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisCommand.java +++ b/core/src/main/java/art/arcane/iris/command/IrisCommand.java @@ -16,15 +16,18 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.command; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.world.IrisTimeBlock; +import art.arcane.iris.world.IrisWeather; + +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformWorld; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.collection.KList; import lombok.Data; import lombok.NoArgsConstructor; @@ -33,28 +36,28 @@ import lombok.experimental.Accessors; @Snippet("command") @Accessors(chain = true) @NoArgsConstructor -@Desc("Represents a set of Iris commands") +@Description("Represents a set of Iris commands") @Data public class IrisCommand { @Required @ArrayType(min = 1, type = String.class) - @Desc("List of commands. Iris replaces {x} {y} and {z} with the location of the entity spawn") + @Description("List of commands. Iris replaces {x} {y} and {z} with the location of the entity spawn") private KList commands = new KList<>(); - @Desc("The delay for running the command. Instant by default") + @Description("The delay for running the command. Instant by default") private long delay = 0; - @Desc("If this should be repeated (indefinitely, cannot be cancelled). This does not persist with server-restarts, so it only repeats when the chunk is generated.") + @Description("If this should be repeated (indefinitely, cannot be cancelled). This does not persist with server-restarts, so it only repeats when the chunk is generated.") private boolean repeat = false; - @Desc("The delay between repeats, in server ticks (by default 100, so 5 seconds)") + @Description("The delay between repeats, in server ticks (by default 100, so 5 seconds)") private long repeatDelay = 100; - @Desc("The block of 24 hour time in which the command should execute.") + @Description("The block of 24 hour time in which the command should execute.") private IrisTimeBlock timeBlock = new IrisTimeBlock(); - @Desc("The weather that is required for the command to execute.") + @Description("The weather that is required for the command to execute.") private IrisWeather weather = IrisWeather.ANY; public boolean isValid(PlatformWorld world) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisCommandRegistry.java b/core/src/main/java/art/arcane/iris/command/IrisCommandRegistry.java similarity index 72% rename from core/src/main/java/art/arcane/iris/engine/object/IrisCommandRegistry.java rename to core/src/main/java/art/arcane/iris/command/IrisCommandRegistry.java index b850e3ec6..651db97b4 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisCommandRegistry.java +++ b/core/src/main/java/art/arcane/iris/command/IrisCommandRegistry.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.command; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.DependsOn; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.iris.pack.schema.annotation.DependsOn; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.iris.platform.bukkit.BukkitWorld; import art.arcane.iris.spi.PlatformWorld; import art.arcane.volmlib.util.collection.KList; @@ -38,39 +38,39 @@ import org.bukkit.entity.Player; @Snippet("command-registry") @Accessors(chain = true) @NoArgsConstructor -@Desc("Represents a casting location for a command") +@Description("Represents a casting location for a command") @Data public class IrisCommandRegistry { @Required @ArrayType(min = 1, type = IrisCommand.class) - @Desc("Run commands, at the exact location of the player") + @Description("Run commands, at the exact location of the player") private KList rawCommands = new KList<>(); @DependsOn({"rawCommands"}) @MinNumber(-8) @MaxNumber(8) - @Desc("The alt x, usually represents motion if the particle count is zero. Otherwise an offset.") + @Description("The alt x, usually represents motion if the particle count is zero. Otherwise an offset.") private double commandOffsetX = 0; @DependsOn({"rawCommands"}) @MinNumber(-8) @MaxNumber(8) - @Desc("The alt y, usually represents motion if the particle count is zero. Otherwise an offset.") + @Description("The alt y, usually represents motion if the particle count is zero. Otherwise an offset.") private double commandOffsetY = 0; @DependsOn({"rawCommands"}) @MinNumber(-8) @MaxNumber(8) - @Desc("The alt z, usually represents motion if the particle count is zero. Otherwise an offset.") + @Description("The alt z, usually represents motion if the particle count is zero. Otherwise an offset.") private double commandOffsetZ = 0; @DependsOn({"rawCommands"}) - @Desc("Randomize the altX from -altX to altX") + @Description("Randomize the altX from -altX to altX") private boolean commandRandomAltX = true; @DependsOn({"rawCommands"}) - @Desc("Randomize the altY from -altY to altY") + @Description("Randomize the altY from -altY to altY") private boolean commandRandomAltY = false; @DependsOn({"rawCommands"}) - @Desc("Randomize the altZ from -altZ to altZ") + @Description("Randomize the altZ from -altZ to altZ") private boolean commandRandomAltZ = true; @DependsOn({"rawCommands"}) - @Desc("Randomize location for all separate commands (true), or run all on the same location (false)") + @Description("Randomize location for all separate commands (true), or run all on the same location (false)") private boolean commandAllRandomLocations = true; public void run(Player p) { diff --git a/core/src/main/java/art/arcane/iris/util/common/director/context/BiomeContextHandler.java b/core/src/main/java/art/arcane/iris/command/context/BiomeContextHandler.java similarity index 77% rename from core/src/main/java/art/arcane/iris/util/common/director/context/BiomeContextHandler.java rename to core/src/main/java/art/arcane/iris/command/context/BiomeContextHandler.java index a8fa25c56..cf4dc3586 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/context/BiomeContextHandler.java +++ b/core/src/main/java/art/arcane/iris/command/context/BiomeContextHandler.java @@ -16,16 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.director.context; +package art.arcane.iris.command.context; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.platform.EngineBukkitOps; -import art.arcane.iris.util.common.director.DirectorContextHandler; -import art.arcane.iris.util.common.director.DirectorExecutor; -import art.arcane.iris.util.common.plugin.VolmitSender; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.platform.generation.EngineBukkitOps; +import art.arcane.iris.command.DirectorContextHandler; +import art.arcane.iris.command.DirectorExecutor; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; public class BiomeContextHandler implements DirectorContextHandler { public Class getType() { diff --git a/core/src/main/java/art/arcane/iris/util/common/director/context/DimensionContextHandler.java b/core/src/main/java/art/arcane/iris/command/context/DimensionContextHandler.java similarity index 77% rename from core/src/main/java/art/arcane/iris/util/common/director/context/DimensionContextHandler.java rename to core/src/main/java/art/arcane/iris/command/context/DimensionContextHandler.java index 6d2d3e99c..a612081d8 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/context/DimensionContextHandler.java +++ b/core/src/main/java/art/arcane/iris/command/context/DimensionContextHandler.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.director.context; +package art.arcane.iris.command.context; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.util.common.director.DirectorContextHandler; -import art.arcane.iris.util.common.director.DirectorExecutor; -import art.arcane.iris.util.common.plugin.VolmitSender; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.command.DirectorContextHandler; +import art.arcane.iris.command.DirectorExecutor; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; public class DimensionContextHandler implements DirectorContextHandler { public Class getType() { diff --git a/core/src/main/java/art/arcane/iris/util/common/director/context/GeneratorContextHandler.java b/core/src/main/java/art/arcane/iris/command/context/GeneratorContextHandler.java similarity index 76% rename from core/src/main/java/art/arcane/iris/util/common/director/context/GeneratorContextHandler.java rename to core/src/main/java/art/arcane/iris/command/context/GeneratorContextHandler.java index 5cf596b52..0e354526d 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/context/GeneratorContextHandler.java +++ b/core/src/main/java/art/arcane/iris/command/context/GeneratorContextHandler.java @@ -16,16 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.director.context; +package art.arcane.iris.command.context; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisGenerator; -import art.arcane.iris.engine.platform.EngineBukkitOps; -import art.arcane.iris.util.common.director.DirectorContextHandler; -import art.arcane.iris.util.common.director.DirectorExecutor; -import art.arcane.iris.util.common.plugin.VolmitSender; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.noise.IrisGenerator; +import art.arcane.iris.platform.generation.EngineBukkitOps; +import art.arcane.iris.command.DirectorContextHandler; +import art.arcane.iris.command.DirectorExecutor; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; public class GeneratorContextHandler implements DirectorContextHandler { @Override diff --git a/core/src/main/java/art/arcane/iris/util/common/director/context/RegionContextHandler.java b/core/src/main/java/art/arcane/iris/command/context/RegionContextHandler.java similarity index 77% rename from core/src/main/java/art/arcane/iris/util/common/director/context/RegionContextHandler.java rename to core/src/main/java/art/arcane/iris/command/context/RegionContextHandler.java index c11db665a..e5c2f0d45 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/context/RegionContextHandler.java +++ b/core/src/main/java/art/arcane/iris/command/context/RegionContextHandler.java @@ -16,16 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.director.context; +package art.arcane.iris.command.context; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.platform.EngineBukkitOps; -import art.arcane.iris.util.common.director.DirectorContextHandler; -import art.arcane.iris.util.common.director.DirectorExecutor; -import art.arcane.iris.util.common.plugin.VolmitSender; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.platform.generation.EngineBukkitOps; +import art.arcane.iris.command.DirectorContextHandler; +import art.arcane.iris.command.DirectorExecutor; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; public class RegionContextHandler implements DirectorContextHandler { public Class getType() { diff --git a/core/src/main/java/art/arcane/iris/util/common/director/context/VectorContextHandler.java b/core/src/main/java/art/arcane/iris/command/context/VectorContextHandler.java similarity index 84% rename from core/src/main/java/art/arcane/iris/util/common/director/context/VectorContextHandler.java rename to core/src/main/java/art/arcane/iris/command/context/VectorContextHandler.java index 2fa2bdfa6..4625970a1 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/context/VectorContextHandler.java +++ b/core/src/main/java/art/arcane/iris/command/context/VectorContextHandler.java @@ -1,37 +1,37 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.common.director.context; - -import art.arcane.iris.util.common.director.DirectorContextHandler; -import art.arcane.iris.util.common.plugin.VolmitSender; -import org.bukkit.util.Vector; - -public class VectorContextHandler implements DirectorContextHandler { - public Class getType() { - return Vector.class; - } - - public Vector handle(VolmitSender sender) { - if (sender.isPlayer()) { - return sender.player().getLocation().toVector(); - } - - return null; - } -} +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2022 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package art.arcane.iris.command.context; + +import art.arcane.iris.command.DirectorContextHandler; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import org.bukkit.util.Vector; + +public class VectorContextHandler implements DirectorContextHandler { + public Class getType() { + return Vector.class; + } + + public Vector handle(VolmitSender sender) { + if (sender.isPlayer()) { + return sender.player().getLocation().toVector(); + } + + return null; + } +} diff --git a/core/src/main/java/art/arcane/iris/util/common/director/context/WorldContextHandler.java b/core/src/main/java/art/arcane/iris/command/context/WorldContextHandler.java similarity index 71% rename from core/src/main/java/art/arcane/iris/util/common/director/context/WorldContextHandler.java rename to core/src/main/java/art/arcane/iris/command/context/WorldContextHandler.java index 7bbf082ca..bdc970a54 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/context/WorldContextHandler.java +++ b/core/src/main/java/art/arcane/iris/command/context/WorldContextHandler.java @@ -1,8 +1,8 @@ -package art.arcane.iris.util.common.director.context; +package art.arcane.iris.command.context; import art.arcane.volmlib.util.director.context.WorldContextHandlerBase; -import art.arcane.iris.util.common.director.DirectorContextHandler; -import art.arcane.iris.util.common.plugin.VolmitSender; +import art.arcane.iris.command.DirectorContextHandler; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; import org.bukkit.World; public class WorldContextHandler extends WorldContextHandlerBase implements DirectorContextHandler { diff --git a/core/src/main/java/art/arcane/iris/util/common/director/handlers/BiomeHandler.java b/core/src/main/java/art/arcane/iris/command/handlers/BiomeHandler.java similarity index 84% rename from core/src/main/java/art/arcane/iris/util/common/director/handlers/BiomeHandler.java rename to core/src/main/java/art/arcane/iris/command/handlers/BiomeHandler.java index dd89b2c7d..1d7203ff4 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/handlers/BiomeHandler.java +++ b/core/src/main/java/art/arcane/iris/command/handlers/BiomeHandler.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.director.handlers; +package art.arcane.iris.command.handlers; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.util.common.director.specialhandlers.RegistrantHandler; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.command.specialhandlers.RegistrantHandler; public class BiomeHandler extends RegistrantHandler { public BiomeHandler() { diff --git a/core/src/main/java/art/arcane/iris/util/common/director/handlers/BlockVectorHandler.java b/core/src/main/java/art/arcane/iris/command/handlers/BlockVectorHandler.java similarity index 86% rename from core/src/main/java/art/arcane/iris/util/common/director/handlers/BlockVectorHandler.java rename to core/src/main/java/art/arcane/iris/command/handlers/BlockVectorHandler.java index 60c74cb2a..523137ce8 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/handlers/BlockVectorHandler.java +++ b/core/src/main/java/art/arcane/iris/command/handlers/BlockVectorHandler.java @@ -1,8 +1,8 @@ -package art.arcane.iris.util.common.director.handlers; +package art.arcane.iris.command.handlers; -import art.arcane.iris.util.common.director.DirectorContext; +import art.arcane.iris.command.DirectorContext; import art.arcane.volmlib.util.director.DirectorParameterHandler; -import art.arcane.iris.util.common.director.DirectorSystem; +import art.arcane.iris.command.DirectorSystem; import art.arcane.volmlib.util.director.handlers.base.BlockVectorHandlerBase; import art.arcane.volmlib.util.format.Form; import org.bukkit.FluidCollisionMode; diff --git a/core/src/main/java/art/arcane/iris/util/common/director/handlers/DataVersionHandler.java b/core/src/main/java/art/arcane/iris/command/handlers/DataVersionHandler.java similarity index 91% rename from core/src/main/java/art/arcane/iris/util/common/director/handlers/DataVersionHandler.java rename to core/src/main/java/art/arcane/iris/command/handlers/DataVersionHandler.java index 71f740502..2766d40e2 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/handlers/DataVersionHandler.java +++ b/core/src/main/java/art/arcane/iris/command/handlers/DataVersionHandler.java @@ -1,6 +1,6 @@ -package art.arcane.iris.util.common.director.handlers; +package art.arcane.iris.command.handlers; -import art.arcane.iris.core.nms.datapack.DataVersion; +import art.arcane.iris.platform.bukkit.nms.datapack.DataVersion; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.director.DirectorParameterHandler; import art.arcane.volmlib.util.director.exceptions.DirectorParsingException; diff --git a/core/src/main/java/art/arcane/iris/util/common/director/handlers/DimensionHandler.java b/core/src/main/java/art/arcane/iris/command/handlers/DimensionHandler.java similarity index 90% rename from core/src/main/java/art/arcane/iris/util/common/director/handlers/DimensionHandler.java rename to core/src/main/java/art/arcane/iris/command/handlers/DimensionHandler.java index 27c0b80b8..1ac724cd6 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/handlers/DimensionHandler.java +++ b/core/src/main/java/art/arcane/iris/command/handlers/DimensionHandler.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.director.handlers; +package art.arcane.iris.command.handlers; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.director.exceptions.DirectorParsingException; -import art.arcane.iris.util.common.director.specialhandlers.RegistrantHandler; +import art.arcane.iris.command.specialhandlers.RegistrantHandler; import java.util.Locale; diff --git a/core/src/main/java/art/arcane/iris/util/common/director/handlers/EntityHandler.java b/core/src/main/java/art/arcane/iris/command/handlers/EntityHandler.java similarity index 84% rename from core/src/main/java/art/arcane/iris/util/common/director/handlers/EntityHandler.java rename to core/src/main/java/art/arcane/iris/command/handlers/EntityHandler.java index 53c831a47..d07b5db7d 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/handlers/EntityHandler.java +++ b/core/src/main/java/art/arcane/iris/command/handlers/EntityHandler.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.director.handlers; +package art.arcane.iris.command.handlers; -import art.arcane.iris.engine.object.IrisEntity; -import art.arcane.iris.util.common.director.specialhandlers.RegistrantHandler; +import art.arcane.iris.world.entity.IrisEntity; +import art.arcane.iris.command.specialhandlers.RegistrantHandler; public class EntityHandler extends RegistrantHandler { diff --git a/core/src/main/java/art/arcane/iris/util/common/director/handlers/GeneratorHandler.java b/core/src/main/java/art/arcane/iris/command/handlers/GeneratorHandler.java similarity index 84% rename from core/src/main/java/art/arcane/iris/util/common/director/handlers/GeneratorHandler.java rename to core/src/main/java/art/arcane/iris/command/handlers/GeneratorHandler.java index 73773a857..c96861309 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/handlers/GeneratorHandler.java +++ b/core/src/main/java/art/arcane/iris/command/handlers/GeneratorHandler.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.director.handlers; +package art.arcane.iris.command.handlers; -import art.arcane.iris.engine.object.IrisGenerator; -import art.arcane.iris.util.common.director.specialhandlers.RegistrantHandler; +import art.arcane.iris.generation.noise.IrisGenerator; +import art.arcane.iris.command.specialhandlers.RegistrantHandler; public class GeneratorHandler extends RegistrantHandler { public GeneratorHandler() { diff --git a/core/src/main/java/art/arcane/iris/util/common/director/handlers/PlayerHandler.java b/core/src/main/java/art/arcane/iris/command/handlers/PlayerHandler.java similarity index 95% rename from core/src/main/java/art/arcane/iris/util/common/director/handlers/PlayerHandler.java rename to core/src/main/java/art/arcane/iris/command/handlers/PlayerHandler.java index ae4db26b5..5ee15abe4 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/handlers/PlayerHandler.java +++ b/core/src/main/java/art/arcane/iris/command/handlers/PlayerHandler.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.director.handlers; +package art.arcane.iris.command.handlers; import art.arcane.volmlib.util.director.handlers.base.BukkitPlayerHandlerBase; import art.arcane.volmlib.util.director.DirectorParameterHandler; diff --git a/core/src/main/java/art/arcane/iris/util/common/director/handlers/RegionHandler.java b/core/src/main/java/art/arcane/iris/command/handlers/RegionHandler.java similarity index 84% rename from core/src/main/java/art/arcane/iris/util/common/director/handlers/RegionHandler.java rename to core/src/main/java/art/arcane/iris/command/handlers/RegionHandler.java index 42e8d34c4..2989a132d 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/handlers/RegionHandler.java +++ b/core/src/main/java/art/arcane/iris/command/handlers/RegionHandler.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.director.handlers; +package art.arcane.iris.command.handlers; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.util.common.director.specialhandlers.RegistrantHandler; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.command.specialhandlers.RegistrantHandler; public class RegionHandler extends RegistrantHandler { public RegionHandler() { diff --git a/core/src/main/java/art/arcane/iris/util/common/director/handlers/VectorHandler.java b/core/src/main/java/art/arcane/iris/command/handlers/VectorHandler.java similarity index 86% rename from core/src/main/java/art/arcane/iris/util/common/director/handlers/VectorHandler.java rename to core/src/main/java/art/arcane/iris/command/handlers/VectorHandler.java index 45f31491d..d490d5f1a 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/handlers/VectorHandler.java +++ b/core/src/main/java/art/arcane/iris/command/handlers/VectorHandler.java @@ -1,8 +1,8 @@ -package art.arcane.iris.util.common.director.handlers; +package art.arcane.iris.command.handlers; -import art.arcane.iris.util.common.director.DirectorContext; +import art.arcane.iris.command.DirectorContext; import art.arcane.volmlib.util.director.DirectorParameterHandler; -import art.arcane.iris.util.common.director.DirectorSystem; +import art.arcane.iris.command.DirectorSystem; import art.arcane.volmlib.util.director.handlers.base.VectorHandlerBase; import art.arcane.volmlib.util.format.Form; import org.bukkit.FluidCollisionMode; diff --git a/core/src/main/java/art/arcane/iris/util/common/director/handlers/WorldHandler.java b/core/src/main/java/art/arcane/iris/command/handlers/WorldHandler.java similarity index 86% rename from core/src/main/java/art/arcane/iris/util/common/director/handlers/WorldHandler.java rename to core/src/main/java/art/arcane/iris/command/handlers/WorldHandler.java index 5516894af..a5540f8dc 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/handlers/WorldHandler.java +++ b/core/src/main/java/art/arcane/iris/command/handlers/WorldHandler.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.common.director.handlers; +package art.arcane.iris.command.handlers; import art.arcane.volmlib.util.director.handlers.base.WorldHandlerBase; import art.arcane.volmlib.util.director.DirectorParameterHandler; diff --git a/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/HydrologyTypeHandler.java b/core/src/main/java/art/arcane/iris/command/specialhandlers/HydrologyTypeHandler.java similarity index 83% rename from core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/HydrologyTypeHandler.java rename to core/src/main/java/art/arcane/iris/command/specialhandlers/HydrologyTypeHandler.java index 40bafd240..5c27b448e 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/HydrologyTypeHandler.java +++ b/core/src/main/java/art/arcane/iris/command/specialhandlers/HydrologyTypeHandler.java @@ -1,9 +1,9 @@ -package art.arcane.iris.util.common.director.specialhandlers; +package art.arcane.iris.command.specialhandlers; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.hydrology.HydrologyFeatureQuery; -import art.arcane.iris.engine.hydrology.runtime.IrisHydrologyRuntime; -import art.arcane.iris.util.common.director.DirectorParameterHandler; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.hydrology.HydrologyFeatureQuery; +import art.arcane.iris.generation.hydrology.runtime.IrisHydrologyRuntime; +import art.arcane.iris.command.DirectorParameterHandler; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.director.exceptions.DirectorParsingException; diff --git a/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/IrisStructureHandler.java b/core/src/main/java/art/arcane/iris/command/specialhandlers/IrisStructureHandler.java similarity index 87% rename from core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/IrisStructureHandler.java rename to core/src/main/java/art/arcane/iris/command/specialhandlers/IrisStructureHandler.java index 45526850f..23c97b828 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/IrisStructureHandler.java +++ b/core/src/main/java/art/arcane/iris/command/specialhandlers/IrisStructureHandler.java @@ -1,9 +1,9 @@ -package art.arcane.iris.util.common.director.specialhandlers; +package art.arcane.iris.command.specialhandlers; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.pack.PackDirectoryResolver; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.PackDirectoryResolver; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.util.common.director.DirectorParameterHandler; +import art.arcane.iris.command.DirectorParameterHandler; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.director.exceptions.DirectorParsingException; diff --git a/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/LocatableObjectHandler.java b/core/src/main/java/art/arcane/iris/command/specialhandlers/LocatableObjectHandler.java similarity index 66% rename from core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/LocatableObjectHandler.java rename to core/src/main/java/art/arcane/iris/command/specialhandlers/LocatableObjectHandler.java index c36229318..38aa49685 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/LocatableObjectHandler.java +++ b/core/src/main/java/art/arcane/iris/command/specialhandlers/LocatableObjectHandler.java @@ -1,7 +1,7 @@ -package art.arcane.iris.util.common.director.specialhandlers; +package art.arcane.iris.command.specialhandlers; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.history.GenerationFindCatalog; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.world.history.GenerationFindCatalog; import art.arcane.volmlib.util.collection.KList; public class LocatableObjectHandler extends ObjectHandler { diff --git a/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/NullableDimensionHandler.java b/core/src/main/java/art/arcane/iris/command/specialhandlers/NullableDimensionHandler.java similarity index 93% rename from core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/NullableDimensionHandler.java rename to core/src/main/java/art/arcane/iris/command/specialhandlers/NullableDimensionHandler.java index fcfa38d80..5d4ed0668 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/NullableDimensionHandler.java +++ b/core/src/main/java/art/arcane/iris/command/specialhandlers/NullableDimensionHandler.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.director.specialhandlers; +package art.arcane.iris.command.specialhandlers; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.director.exceptions.DirectorParsingException; diff --git a/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/NullablePlayerHandler.java b/core/src/main/java/art/arcane/iris/command/specialhandlers/NullablePlayerHandler.java similarity index 80% rename from core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/NullablePlayerHandler.java rename to core/src/main/java/art/arcane/iris/command/specialhandlers/NullablePlayerHandler.java index 7549c71e4..5184a5735 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/NullablePlayerHandler.java +++ b/core/src/main/java/art/arcane/iris/command/specialhandlers/NullablePlayerHandler.java @@ -1,9 +1,9 @@ -package art.arcane.iris.util.common.director.specialhandlers; +package art.arcane.iris.command.specialhandlers; import art.arcane.volmlib.util.director.handlers.base.NullablePlayerHandlerBase; import art.arcane.volmlib.util.director.exceptions.DirectorParsingException; import art.arcane.volmlib.util.director.DirectorParameterHandler; -import art.arcane.iris.util.common.director.handlers.PlayerHandler; +import art.arcane.iris.command.handlers.PlayerHandler; import org.bukkit.entity.Player; public class NullablePlayerHandler extends PlayerHandler implements DirectorParameterHandler { diff --git a/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/ObjectHandler.java b/core/src/main/java/art/arcane/iris/command/specialhandlers/ObjectHandler.java similarity index 91% rename from core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/ObjectHandler.java rename to core/src/main/java/art/arcane/iris/command/specialhandlers/ObjectHandler.java index ec8669a4c..10456b735 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/ObjectHandler.java +++ b/core/src/main/java/art/arcane/iris/command/specialhandlers/ObjectHandler.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.director.specialhandlers; +package art.arcane.iris.command.specialhandlers; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.pack.PackDirectoryResolver; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.PackDirectoryResolver; import art.arcane.volmlib.util.collection.KList; -import art.arcane.iris.util.common.director.DirectorParameterHandler; +import art.arcane.iris.command.DirectorParameterHandler; import art.arcane.volmlib.util.director.exceptions.DirectorParsingException; import java.io.File; diff --git a/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/ObjectScaleHandler.java b/core/src/main/java/art/arcane/iris/command/specialhandlers/ObjectScaleHandler.java similarity index 88% rename from core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/ObjectScaleHandler.java rename to core/src/main/java/art/arcane/iris/command/specialhandlers/ObjectScaleHandler.java index 789c590dc..31bd852d7 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/ObjectScaleHandler.java +++ b/core/src/main/java/art/arcane/iris/command/specialhandlers/ObjectScaleHandler.java @@ -1,6 +1,6 @@ -package art.arcane.iris.util.common.director.specialhandlers; +package art.arcane.iris.command.specialhandlers; -import art.arcane.iris.engine.object.IrisObjectScale; +import art.arcane.iris.structure.object.IrisObjectScale; import art.arcane.volmlib.util.director.exceptions.DirectorParsingException; import art.arcane.volmlib.util.director.handlers.base.DoubleHandlerBase; diff --git a/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/ObjectTargetHandler.java b/core/src/main/java/art/arcane/iris/command/specialhandlers/ObjectTargetHandler.java similarity index 92% rename from core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/ObjectTargetHandler.java rename to core/src/main/java/art/arcane/iris/command/specialhandlers/ObjectTargetHandler.java index dcd5be950..3e35a7330 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/ObjectTargetHandler.java +++ b/core/src/main/java/art/arcane/iris/command/specialhandlers/ObjectTargetHandler.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.director.specialhandlers; +package art.arcane.iris.command.specialhandlers; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.pack.PackDirectoryResolver; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.PackDirectoryResolver; import art.arcane.volmlib.util.collection.KList; -import art.arcane.iris.util.common.director.DirectorParameterHandler; +import art.arcane.iris.command.DirectorParameterHandler; import art.arcane.volmlib.util.director.exceptions.DirectorParsingException; import java.io.File; diff --git a/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/ReachableBiomeHandler.java b/core/src/main/java/art/arcane/iris/command/specialhandlers/ReachableBiomeHandler.java similarity index 71% rename from core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/ReachableBiomeHandler.java rename to core/src/main/java/art/arcane/iris/command/specialhandlers/ReachableBiomeHandler.java index 1eaa50993..d026ab2aa 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/ReachableBiomeHandler.java +++ b/core/src/main/java/art/arcane/iris/command/specialhandlers/ReachableBiomeHandler.java @@ -1,8 +1,8 @@ -package art.arcane.iris.util.common.director.specialhandlers; +package art.arcane.iris.command.specialhandlers; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.history.GenerationFindCatalog; -import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.world.history.GenerationFindCatalog; +import art.arcane.iris.generation.biome.IrisBiome; import art.arcane.volmlib.util.collection.KList; public class ReachableBiomeHandler extends RegistrantHandler { diff --git a/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/ReachableRegionHandler.java b/core/src/main/java/art/arcane/iris/command/specialhandlers/ReachableRegionHandler.java similarity index 70% rename from core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/ReachableRegionHandler.java rename to core/src/main/java/art/arcane/iris/command/specialhandlers/ReachableRegionHandler.java index 4425520ca..9103db620 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/ReachableRegionHandler.java +++ b/core/src/main/java/art/arcane/iris/command/specialhandlers/ReachableRegionHandler.java @@ -1,8 +1,8 @@ -package art.arcane.iris.util.common.director.specialhandlers; +package art.arcane.iris.command.specialhandlers; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.history.GenerationFindCatalog; -import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.world.history.GenerationFindCatalog; +import art.arcane.iris.generation.terrain.IrisRegion; import art.arcane.volmlib.util.collection.KList; public class ReachableRegionHandler extends RegistrantHandler { diff --git a/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/RegistrantHandler.java b/core/src/main/java/art/arcane/iris/command/specialhandlers/RegistrantHandler.java similarity index 88% rename from core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/RegistrantHandler.java rename to core/src/main/java/art/arcane/iris/command/specialhandlers/RegistrantHandler.java index c11a99aff..95bc06bcc 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/RegistrantHandler.java +++ b/core/src/main/java/art/arcane/iris/command/specialhandlers/RegistrantHandler.java @@ -1,11 +1,11 @@ -package art.arcane.iris.util.common.director.specialhandlers; +package art.arcane.iris.command.specialhandlers; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.core.pack.PackDirectoryResolver; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.pack.PackDirectoryResolver; import art.arcane.volmlib.util.collection.KList; -import art.arcane.iris.util.common.director.DirectorParameterHandler; +import art.arcane.iris.command.DirectorParameterHandler; import art.arcane.volmlib.util.director.exceptions.DirectorParsingException; import java.io.File; diff --git a/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/StructureHandler.java b/core/src/main/java/art/arcane/iris/command/specialhandlers/StructureHandler.java similarity index 91% rename from core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/StructureHandler.java rename to core/src/main/java/art/arcane/iris/command/specialhandlers/StructureHandler.java index f0005f62e..b9707b1fa 100644 --- a/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/StructureHandler.java +++ b/core/src/main/java/art/arcane/iris/command/specialhandlers/StructureHandler.java @@ -16,18 +16,18 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.director.specialhandlers; +package art.arcane.iris.command.specialhandlers; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.IrisStructureLocator; -import art.arcane.iris.engine.framework.NativeStructureGenerationPolicy; -import art.arcane.iris.engine.framework.StructureReachability; -import art.arcane.iris.engine.history.GenerationFindCatalog; -import art.arcane.iris.engine.object.IrisNativeStructureDecision; -import art.arcane.iris.engine.object.NativeStructureGenerationStatus; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.placement.IrisStructureLocator; +import art.arcane.iris.structure.nativegen.NativeStructureGenerationPolicy; +import art.arcane.iris.structure.placement.StructureReachability; +import art.arcane.iris.world.history.GenerationFindCatalog; +import art.arcane.iris.structure.nativegen.IrisNativeStructureDecision; +import art.arcane.iris.structure.nativegen.NativeStructureGenerationStatus; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformStructureHooks; -import art.arcane.iris.util.common.director.DirectorParameterHandler; +import art.arcane.iris.command.DirectorParameterHandler; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.director.exceptions.DirectorParsingException; diff --git a/core/src/main/java/art/arcane/iris/core/IrisSettings.java b/core/src/main/java/art/arcane/iris/configuration/IrisSettings.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/IrisSettings.java rename to core/src/main/java/art/arcane/iris/configuration/IrisSettings.java index f4f29db1c..e5fd81a6c 100644 --- a/core/src/main/java/art/arcane/iris/core/IrisSettings.java +++ b/core/src/main/java/art/arcane/iris/configuration/IrisSettings.java @@ -16,7 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.core; +package art.arcane.iris.configuration; + +import art.arcane.iris.world.IrisPaperLikeBackendMode; +import art.arcane.iris.world.IrisRuntimeSchedulerMode; import com.google.gson.Gson; import art.arcane.iris.spi.IrisLogging; @@ -24,8 +27,8 @@ import art.arcane.iris.spi.IrisPlatforms; import art.arcane.volmlib.util.io.IO; import art.arcane.volmlib.util.json.JSONException; import art.arcane.volmlib.util.json.JSONObject; -import art.arcane.iris.util.common.misc.getHardware; -import art.arcane.iris.util.common.plugin.VolmitSender; +import art.arcane.iris.platform.bootstrap.getHardware; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; import lombok.Data; import java.io.File; diff --git a/core/src/main/java/art/arcane/iris/core/SettingsHotloadWatch.java b/core/src/main/java/art/arcane/iris/configuration/SettingsHotloadWatch.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/SettingsHotloadWatch.java rename to core/src/main/java/art/arcane/iris/configuration/SettingsHotloadWatch.java index f2337181f..7050a5ccb 100644 --- a/core/src/main/java/art/arcane/iris/core/SettingsHotloadWatch.java +++ b/core/src/main/java/art/arcane/iris/configuration/SettingsHotloadWatch.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core; +package art.arcane.iris.configuration; -import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.localization.IrisLanguage; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.hotload.ConfigHotloadEngine; diff --git a/core/src/main/java/art/arcane/iris/core/nms/container/BlockPos.java b/core/src/main/java/art/arcane/iris/core/nms/container/BlockPos.java deleted file mode 100644 index 09c475378..000000000 --- a/core/src/main/java/art/arcane/iris/core/nms/container/BlockPos.java +++ /dev/null @@ -1,14 +0,0 @@ -package art.arcane.iris.core.nms.container; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@AllArgsConstructor -@NoArgsConstructor -public class BlockPos { - private int x; - private int y; - private int z; -} diff --git a/core/src/main/java/art/arcane/iris/core/service/LogFilterSVC.java b/core/src/main/java/art/arcane/iris/diagnostics/LogFilterSVC.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/service/LogFilterSVC.java rename to core/src/main/java/art/arcane/iris/diagnostics/LogFilterSVC.java index 1b6dc15dd..7431bfb61 100644 --- a/core/src/main/java/art/arcane/iris/core/service/LogFilterSVC.java +++ b/core/src/main/java/art/arcane/iris/diagnostics/LogFilterSVC.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.diagnostics; -import art.arcane.iris.util.common.plugin.IrisService; +import art.arcane.iris.platform.bukkit.plugin.IrisService; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Marker; diff --git a/core/src/main/java/art/arcane/iris/core/report/Report.java b/core/src/main/java/art/arcane/iris/diagnostics/Report.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/report/Report.java rename to core/src/main/java/art/arcane/iris/diagnostics/Report.java index f97de5995..7df6f76cd 100644 --- a/core/src/main/java/art/arcane/iris/core/report/Report.java +++ b/core/src/main/java/art/arcane/iris/diagnostics/Report.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.report; +package art.arcane.iris.diagnostics; import lombok.Builder; import lombok.Data; diff --git a/core/src/main/java/art/arcane/iris/core/report/ReportType.java b/core/src/main/java/art/arcane/iris/diagnostics/ReportType.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/report/ReportType.java rename to core/src/main/java/art/arcane/iris/diagnostics/ReportType.java index 8fd19b339..37e377f47 100644 --- a/core/src/main/java/art/arcane/iris/core/report/ReportType.java +++ b/core/src/main/java/art/arcane/iris/diagnostics/ReportType.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.report; +package art.arcane.iris.diagnostics; public enum ReportType { ERROR, diff --git a/core/src/main/java/art/arcane/iris/core/splash/IrisSplashComposer.java b/core/src/main/java/art/arcane/iris/diagnostics/splash/IrisSplashComposer.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/splash/IrisSplashComposer.java rename to core/src/main/java/art/arcane/iris/diagnostics/splash/IrisSplashComposer.java index 930c68c5b..9af62b5f5 100644 --- a/core/src/main/java/art/arcane/iris/core/splash/IrisSplashComposer.java +++ b/core/src/main/java/art/arcane/iris/diagnostics/splash/IrisSplashComposer.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.splash; +package art.arcane.iris.diagnostics.splash; import art.arcane.iris.BuildConstants; diff --git a/core/src/main/java/art/arcane/iris/core/splash/IrisSplashPackScanner.java b/core/src/main/java/art/arcane/iris/diagnostics/splash/IrisSplashPackScanner.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/splash/IrisSplashPackScanner.java rename to core/src/main/java/art/arcane/iris/diagnostics/splash/IrisSplashPackScanner.java index 68d442f73..fe69865fe 100644 --- a/core/src/main/java/art/arcane/iris/core/splash/IrisSplashPackScanner.java +++ b/core/src/main/java/art/arcane/iris/diagnostics/splash/IrisSplashPackScanner.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.splash; +package art.arcane.iris.diagnostics.splash; -import art.arcane.iris.core.pack.PackDirectoryResolver; +import art.arcane.iris.pack.PackDirectoryResolver; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParseException; diff --git a/core/src/main/java/art/arcane/iris/core/splash/IrisSplashRenderer.java b/core/src/main/java/art/arcane/iris/diagnostics/splash/IrisSplashRenderer.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/splash/IrisSplashRenderer.java rename to core/src/main/java/art/arcane/iris/diagnostics/splash/IrisSplashRenderer.java index 6a01a8428..ec038969b 100644 --- a/core/src/main/java/art/arcane/iris/core/splash/IrisSplashRenderer.java +++ b/core/src/main/java/art/arcane/iris/diagnostics/splash/IrisSplashRenderer.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.splash; +package art.arcane.iris.diagnostics.splash; import java.util.concurrent.ThreadLocalRandom; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/OutletCourseKey.java b/core/src/main/java/art/arcane/iris/engine/hydrology/OutletCourseKey.java deleted file mode 100644 index 63d472fa6..000000000 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/OutletCourseKey.java +++ /dev/null @@ -1,4 +0,0 @@ -package art.arcane.iris.engine.hydrology; - -record OutletCourseKey(long outletId) { -} diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyNaturalSample.java b/core/src/main/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyNaturalSample.java deleted file mode 100644 index 8ca2e263e..000000000 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyNaturalSample.java +++ /dev/null @@ -1,12 +0,0 @@ -package art.arcane.iris.engine.hydrology.runtime; - -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisRegion; - -public record IrisHydrologyNaturalSample( - double naturalHeight, - boolean ocean, - IrisBiome biome, - IrisRegion region -) { -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IRare.java b/core/src/main/java/art/arcane/iris/engine/object/IRare.java deleted file mode 100644 index 2c13b2708..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IRare.java +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.engine.object; - -import art.arcane.volmlib.util.collection.KList; -import art.arcane.iris.util.project.stream.ProceduralStream; -import art.arcane.iris.util.project.stream.interpolation.Interpolated; -import java.util.List; - -public interface IRare { - static ProceduralStream stream(ProceduralStream noise, List possibilities) { - return ProceduralStream.of((x, z) -> pick(possibilities, noise.get(x, z)), - (x, y, z) -> pick(possibilities, noise.get(x, y, z)), - new Interpolated() { - @Override - public double toDouble(T t) { - return 0; - } - - @Override - public T fromDouble(double d) { - return null; - } - }); - } - - - static T pickSlowly(List possibilities, double noiseValue) { - if (possibilities.isEmpty()) { - return null; - } - - if (possibilities.size() == 1) { - return possibilities.get(0); - } - - KList rarityTypes = new KList<>(); - int totalRarity = 0; - for (T i : possibilities) { - totalRarity += IRare.get(i); - } - - for (T i : possibilities) { - rarityTypes.addMultiple(i, totalRarity / IRare.get(i)); - } - - return rarityTypes.get((int) (noiseValue * rarityTypes.last())); - } - - static T pick(List possibilities, double noiseValue) { - if (possibilities.isEmpty()) { - return null; - } - - if (possibilities.size() == 1) { - return possibilities.getFirst(); - } - - double total = 0; - for (T i : possibilities) { - total += 1d / IRare.get(i); - } - - double threshold = total * noiseValue; - double buffer = 0; - for (T i : possibilities) { - buffer += 1d / IRare.get(i); - if (buffer >= threshold) { - return i; - } - } - - return possibilities.getLast(); - } - - static int get(Object v) { - return v instanceof IRare ? Math.max(1, ((IRare) v).getRarity()) : 1; - } - - /** - * Expands a candidate list into a rarity-weighted list: each entry appears totalRarity/rarity - * times, so picking uniformly from the result applies rarity exactly once. Both the Bukkit and - * modded entity spawners select through this expansion; rarity must never be applied a second - * time per spawn position. - */ - static KList expandWeighted(List possibilities) { - KList rarityTypes = new KList<>(); - int totalRarity = 0; - for (T i : possibilities) { - totalRarity += get(i); - } - for (T i : possibilities) { - rarityTypes.addMultiple(i, totalRarity / get(i)); - } - return rarityTypes; - } - - int getRarity(); -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustomCategory.java b/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustomCategory.java deleted file mode 100644 index 52dd71a38..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustomCategory.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("The custom biome category. Vanilla asks for this, basically what represents your biome closest?") -public enum IrisBiomeCustomCategory { - @Desc("Tags the generated datapack biome as vanilla category 'beach' (shoreline biomes).") - beach, - - @Desc("Tags the generated datapack biome as vanilla category 'desert' (hot, dry sand biomes).") - desert, - - @Desc("Tags the generated datapack biome as vanilla category 'extreme_hills' (mountain biomes).") - extreme_hills, - - @Desc("Tags the generated datapack biome as vanilla category 'forest' (tree-dense temperate biomes).") - forest, - - @Desc("Tags the generated datapack biome as vanilla category 'icy' (snow and ice biomes).") - icy, - - @Desc("Tags the generated datapack biome as vanilla category 'jungle'.") - jungle, - - @Desc("Tags the generated datapack biome as vanilla category 'mesa' (badlands).") - mesa, - - @Desc("Tags the generated datapack biome as vanilla category 'mushroom' (mushroom fields).") - mushroom, - - @Desc("Tags the generated datapack biome as vanilla category 'nether'.") - nether, - - @Desc("Tags the generated datapack biome as vanilla category 'none' (no classification).") - none, - - @Desc("Tags the generated datapack biome as vanilla category 'ocean'.") - ocean, - - @Desc("Tags the generated datapack biome as vanilla category 'plains'. This is the default when category is omitted.") - plains, - - @Desc("Tags the generated datapack biome as vanilla category 'river'.") - river, - - @Desc("Tags the generated datapack biome as vanilla category 'savanna'.") - savanna, - - @Desc("Tags the generated datapack biome as vanilla category 'swamp'.") - swamp, - - @Desc("Tags the generated datapack biome as vanilla category 'taiga'.") - taiga, - - @Desc("Tags the generated datapack biome as vanilla category 'the_end'.") - the_end -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisCaveAnchorMode.java b/core/src/main/java/art/arcane/iris/engine/object/IrisCaveAnchorMode.java deleted file mode 100644 index e6a82f168..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisCaveAnchorMode.java +++ /dev/null @@ -1,21 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("Defines which carved-space anchor to target for cave object placement.") -public enum IrisCaveAnchorMode { - @Desc("Use the active cave profile default anchor mode.") - PROFILE_DEFAULT, - - @Desc("Target cave floor anchors where carved space has solid support below.") - FLOOR, - - @Desc("Target cave ceiling anchors where carved space has solid support above.") - CEILING, - - @Desc("Target carved positions with no immediate solid support above or below.") - CENTER, - - @Desc("Target any carved-space anchor.") - ANY -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisCaveFieldModule.java b/core/src/main/java/art/arcane/iris/engine/object/IrisCaveFieldModule.java deleted file mode 100644 index 0368457cb..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisCaveFieldModule.java +++ /dev/null @@ -1,36 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Snippet; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Snippet("cave-field-module") -@Accessors(chain = true) -@NoArgsConstructor -@AllArgsConstructor -@Desc("Represents a modular cave-density layer.") -@Data -public class IrisCaveFieldModule { - @Desc("Density style used by this module.") - private IrisGeneratorStyle style = NoiseStyle.CELLULAR_IRIS_DOUBLE.style(); - - @MinNumber(0) - @Desc("Layer contribution multiplier.") - private double weight = 1; - - @MinNumber(-1) - @MaxNumber(1) - @Desc("Threshold offset applied to this layer before blending.") - private double threshold = 0; - - @Desc("Vertical bounds where this module can contribute, in engine-local Y where 0 is the bottom of the dimension, not world Y.") - private IrisRange verticalRange = new IrisRange(0, 384); - - @Desc("Invert this module before weighting.") - private boolean invert = false; -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisCaveProfile.java b/core/src/main/java/art/arcane/iris/engine/object/IrisCaveProfile.java deleted file mode 100644 index 39aac502c..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisCaveProfile.java +++ /dev/null @@ -1,148 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Snippet; -import art.arcane.volmlib.util.collection.KList; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Snippet("cave-profile") -@Accessors(chain = true) -@NoArgsConstructor -@AllArgsConstructor -@Desc("Represents a configurable 3D cave profile.") -@Data -public class IrisCaveProfile { - @Desc("Enable profile-driven cave carving.") - private boolean enabled = false; - - @Desc("Global vertical bounds for profile cave carving, in engine-local Y where 0 is the bottom of the dimension, not world Y.") - private IrisRange verticalRange = new IrisRange(0, 384); - - @MinNumber(0) - @MaxNumber(128) - @Desc("Vertical fade range applied near cave profile min/max bounds to avoid abrupt hard-stop ceilings/floors.") - private int verticalEdgeFade = 20; - - @MinNumber(0) - @MaxNumber(1) - @Desc("Strength of the vertical edge fade at cave profile min/max bounds.") - private double verticalEdgeFadeStrength = 0.18; - - @Desc("Base density style for cave field generation.") - private IrisGeneratorStyle baseDensityStyle = NoiseStyle.CELLULAR_IRIS_DOUBLE.style(); - - @Desc("Detail density style blended into base caves.") - private IrisGeneratorStyle detailDensityStyle = new IrisGeneratorStyle(NoiseStyle.SIMPLEX); - - @Desc("Warp style used to distort cave coordinates.") - private IrisGeneratorStyle warpStyle = new IrisGeneratorStyle(NoiseStyle.FLAT); - - @MinNumber(0) - @Desc("Base cave field multiplier.") - private double baseWeight = 1; - - @MinNumber(0) - @Desc("Detail cave field multiplier.") - private double detailWeight = 0.35; - - @MinNumber(0) - @Desc("Coordinate warp strength for cave fields.") - private double warpStrength = 0; - - @Desc("Threshold range used for carve cutoff decisions.") - private IrisStyledRange densityThreshold = new IrisStyledRange(-0.2, 0.2, NoiseStyle.CELLULAR_IRIS_DOUBLE.style()); - - @MinNumber(0) - @MaxNumber(1) - @Desc("Extra threshold bias subtracted from sampled threshold before carve tests.") - private double thresholdBias = 0.16; - - @MinNumber(1) - @MaxNumber(8) - @Desc("Vertical sample step used while evaluating cave density.") - private int sampleStep = 1; - - @Desc("Use adaptive cave density prediction so only threshold-adjacent cells fall back to full-resolution evaluation.") - private boolean adaptiveSampling = true; - - @MinNumber(2) - @MaxNumber(4) - @Desc("Horizontal adaptive predictor tuning. The carver always samples the predictor grid at a fixed step of 8; values below 8 only widen the ambiguity margin slightly and do not tighten the grid.") - private int adaptiveSampleStep = 2; - - @MinNumber(0) - @MaxNumber(1) - @Desc("Additional adaptive ambiguity margin used before the cave predictor falls back to exact sampling.") - private double adaptiveThresholdMargin = 0.04; - - @MinNumber(0) - @MaxNumber(64) - @Desc("Minimum solid clearance below terrain surface where carving may occur.") - private int surfaceClearance = 4; - - @Desc("Allow profile-driven cave carving to break through terrain surface in selected columns.") - private boolean allowSurfaceBreak = true; - - @Desc("Noise style used to decide where surface-breaking cave columns are allowed.") - private IrisGeneratorStyle surfaceBreakStyle = new IrisGeneratorStyle(NoiseStyle.SIMPLEX).zoomed(0.08); - - @MinNumber(-1) - @MaxNumber(1) - @Desc("Minimum signed surface-break noise value required before near-surface carving is allowed.") - private double surfaceBreakNoiseThreshold = 0.62; - - @MinNumber(0) - @MaxNumber(64) - @Desc("Near-surface depth window used for surface-break carve logic.") - private int surfaceBreakDepth = 18; - - @MinNumber(0) - @MaxNumber(1) - @Desc("Additional threshold boost applied while carving in the surface-break depth window.") - private double surfaceBreakThresholdBoost = 0.2; - - @MinNumber(0) - @MaxNumber(64) - @Desc("Minimum depth below terrain surface required for cave-only object anchor placement.") - private int objectMinDepthBelowSurface = 6; - - @ArrayType(type = IrisCaveFieldModule.class, min = 1) - @Desc("Additional layered cave-density modules.") - private KList modules = new KList<>(); - - @Desc("Default cave anchor mode for cave-only object placement.") - private IrisCaveAnchorMode defaultObjectAnchor = IrisCaveAnchorMode.FLOOR; - - @Desc("Default placement mode for cave objects. Only applies to placements that are still on the default CENTER_HEIGHT mode; an explicit mode on the placement always wins. Stilt modes tile the object base block down to the cave floor surface. FAST_MIN_STILT is recommended for cave objects to prevent floating.") - private ObjectPlaceMode defaultObjectPlaceMode = null; - - @MinNumber(1) - @MaxNumber(8) - @Desc("Vertical scan step used while searching cave anchors.") - private int anchorScanStep = 1; - - @MinNumber(1) - @MaxNumber(64) - @Desc("Maximum random column retries while searching a valid cave object anchor in the chunk.") - private int anchorSearchAttempts = 6; - - @Desc("Allow cave fluid placement from the dimension fluid palette below fluid level.") - private boolean allowFluid = true; - - @MinNumber(0) - @MaxNumber(64) - @Desc("Minimum depth below terrain surface required before cave fluid may be placed.") - private int fluidMinDepthBelowSurface = 12; - - @Desc("Require solid floor support below cave fluid to reduce unsupported fluid flows.") - private boolean fluidRequiresFloor = true; - - @Desc("Allow cave lava placement based on lava height.") - private boolean allowLava = true; -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisCoastalRiverGrottoConfig.java b/core/src/main/java/art/arcane/iris/engine/object/IrisCoastalRiverGrottoConfig.java deleted file mode 100644 index fdbcc7c53..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisCoastalRiverGrottoConfig.java +++ /dev/null @@ -1,53 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@Desc("Controls coastal grottos: sea-level chambers whose only opening is their ocean face, admitted either as a river outlet or as a standalone sea cave.") -@Data -public class IrisCoastalRiverGrottoConfig { - @Desc("Allow a coastal grotto to serve as an explicit accepted outlet.") - private boolean enabled = true; - - @Desc("Hydraulic level assigned to the contained coastal grotto pool.") - private IrisGrottoPoolLevel poolLevel = IrisGrottoPoolLevel.SEA_LEVEL; - - @MinNumber(1) - @MaxNumber(128) - @Desc("Maximum horizontal radius in blocks of an accepted coastal grotto.") - private int horizontalRadius = 12; - - @MinNumber(1) - @MaxNumber(64) - @Desc("Maximum vertical radius in blocks of an accepted coastal grotto.") - private int verticalRadius = 7; - - @MinNumber(1) - @MaxNumber(63) - @Desc("Required dry clearance above a coastal grotto pool.") - private int headroom = 10; - - @MinNumber(1) - @MaxNumber(1048576) - @Desc("Maximum accepted coastal grotto volume in blocks.") - private int maximumVolume = 8192; - - @MinNumber(0) - @MaxNumber(128) - @Desc("Blocks the coast must stand above the sea at the outlet for a river to end in a coastal grotto instead of an open mouth. Null uses the larger of 4 and verticalRadius.") - private Integer cliffMinimumHeight = null; - - @MinNumber(0) - @MaxNumber(4) - @Desc("Share of cliffMinimumHeight the coast's slope must reach at the outlet before a grotto is chosen over an open mouth; 0 ignores the slope and decides on height alone.") - private double cliffSlopeFactor = 0.5D; - - @Desc("Standalone sea caves: coastal grottos opening from the ocean into the coast without a river.") - private IrisSeaCaveConfig seaCaves = new IrisSeaCaveConfig(); -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisCoral.java b/core/src/main/java/art/arcane/iris/engine/object/IrisCoral.java deleted file mode 100644 index 08377ba22..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisCoral.java +++ /dev/null @@ -1,238 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.engine.object; - -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListBlockType; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; -import art.arcane.iris.engine.object.coral.CoralGenerator; -import art.arcane.volmlib.util.collection.KList; -import art.arcane.volmlib.util.math.RNG; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Snippet("coral") -@Accessors(chain = true) -@NoArgsConstructor -@AllArgsConstructor -@Desc("A single procedurally generated coral reef structure. Iris bakes a pool of deterministic variants from these settings and scatters them across the seafloor at world-gen time, exactly like an object placement but generated from scratch instead of loaded from an iob file. Mirrors the procedural tree system but tuned for underwater reefs: structural blocks are waterlogged so the coral stays alive, and placement defaults to anchoring on the terrain beneath the water surface.") -@Data -public class IrisCoral implements IrisProceduralPlacement { - private final transient AtomicCache> variantCache = new AtomicCache<>(); - - @Desc("A human readable name used in logs and as the variant load key.") - private String name = "coral"; - - @MinNumber(0) - @MaxNumber(1) - @Desc("The chance per chunk for this coral to attempt placement. Use density for multiple per chunk.") - private double chance = 0.4; - - @MinNumber(1) - @Desc("If the chance check passes, attempt this many placements in the chunk.") - private int density = 1; - - @MinNumber(1) - @MaxNumber(64) - @Desc("How many distinct variants to pre-bake for this coral. Higher means more variety at a small memory cost.") - private int variants = 6; - - @Desc("The base seed for deterministic generation. The same seed and settings always bake the same variants.") - private long seed = 1337; - - @Desc("The placement mode used to anchor the coral to the seafloor.") - private ObjectPlaceMode mode = ObjectPlaceMode.CENTER_HEIGHT; - - @Desc("Rotate this coral's placement.") - private IrisObjectRotation rotation = new IrisObjectRotation(); - - @Desc("Limit the max or min height of placement.") - private IrisObjectLimit clamp = new IrisObjectLimit(); - - @Desc("Whether this coral may place on the terrain surface, under carvings, or both.") - private CarvingMode carvingSupport = CarvingMode.SURFACE_ONLY; - - @Desc("If true (default for coral), the coral anchors on the terrain height beneath the water, so it grows up from the seafloor rather than floating at the water surface.") - private boolean underwater = true; - - @Desc("Translate (offset) this placement along each axis; for example set a negative y to sink it into the seafloor.") - private IrisObjectTranslate translate = new IrisObjectTranslate(); - - @Desc("Settings for the stilt place modes (STILT, MIN_STILT, FAST_STILT, CENTER_STILT, ERODE_STILT, ORGANIC_STILT).") - private IrisStiltSettings stiltSettings; - - @Desc("Settings for the vacuum place modes (VACUUM, VACUUM_HIGH, VACUUM_FAST, VACUUM_ORGANIC).") - private IrisVacuumSettings vacuumSettings; - - @Desc("If true (default), every resolved coral block that is waterloggable is forced waterlogged so the coral does not die in water (coral fans, sea pickles and kelp also waterlog). Set false to place dead/dry coral.") - private boolean waterlogged = true; - - @Desc("The overall silhouette this coral grows into (branching, fan, brain, pillar, tendril). Each form runs a different generation routine.") - private IrisCoralForm form = IrisCoralForm.BRANCHING; - - @Required - @Desc("The structural coral block (the living wood of the reef), e.g. minecraft:tube_coral_block. Ignored when blockPalette is set.") - @RegistryListBlockType - private String block = "minecraft:tube_coral_block"; - - @Desc("A noise-driven palette for the structural coral block. When set this overrides the single block, letting the reef mix tube/brain/bubble/fire/horn coral_block tones across its body.") - private IrisMaterialPalette blockPalette = null; - - @Desc("Optional tip block placed at branch tips and at the very top of the structure, e.g. coral fans or minecraft:sea_pickle. Ignored when tipPalette is set. Null disables tips.") - @RegistryListBlockType - private String tipBlock = null; - - @Desc("A noise-driven palette for the tip block. When set this overrides the single tipBlock, letting tips mix fan / pickle decorations.") - private IrisMaterialPalette tipPalette = null; - - @MinNumber(0) - @MaxNumber(1) - @Desc("The chance per eligible tip position to place a tip block (coral fan / sea pickle).") - private double tipChance = 0.6; - - @MinNumber(1) - @Desc("Minimum overall height of the coral in blocks.") - private int heightMin = 4; - - @MinNumber(1) - @Desc("Maximum overall height of the coral in blocks.") - private int heightMax = 8; - - @MinNumber(0) - @Desc("Horizontal spread of the structure in blocks. For BRANCHING this is how far arms reach out, for BRAIN/PILLAR/FAN it widens the base footprint.") - private double spread = 3; - - @MinNumber(0) - @MaxNumber(1) - @Desc("Lateral noise wobble (0-1) applied to branches and tendrils so they are not ruler-straight. 0 is perfectly straight, 1 is heavily wandering.") - private double sway = 0.5; - - @MinNumber(1) - @MaxNumber(12) - @Desc("BRANCHING only: how many arms sprout from the central stalk.") - private int branchCount = 4; - - @MinNumber(1) - @Desc("BRANCHING only: the length of each arm in blocks before reaching its tip.") - private double branchLength = 3; - - @MinNumber(0) - @MaxNumber(90) - @Desc("BRANCHING only: the upward elevation in degrees of each arm from horizontal. 90 is straight up, 0 is flat out.") - private double branchElevation = 55; - - @Desc("BRANCHING only: how the arms are distributed around the stalk by azimuth.") - private IrisCoralBranchAzimuth branchAzimuth = IrisCoralBranchAzimuth.GOLDEN_ANGLE; - - @Desc("BRANCHING only: if true, each arm splits once into a small fan of sub-arms for a bushier reef.") - private boolean subBranches = true; - - @MinNumber(1) - @MaxNumber(5) - @Desc("BRANCHING only: how many sub-arms each arm splits into when subBranches is true.") - private int subBranchCount = 2; - - @MinNumber(0) - @MaxNumber(1) - @Desc("BRANCHING only: the length of each sub-arm as a fraction of its parent arm.") - private double subBranchScale = 0.5; - - @MinNumber(0) - @MaxNumber(4) - @Desc("BRANCHING and PILLAR only: the radius of the small coral tip cluster grown at each tip.") - private int tipClusterRadius = 1; - - @MinNumber(1) - @MaxNumber(8) - @Desc("BRAIN only: the horizontal radius of the brain-coral blob in blocks.") - private int brainRadius = 3; - - @MinNumber(0) - @MaxNumber(1) - @Desc("BRAIN only: how strongly 3D value noise perturbs the ellipsoid surface, for a wrinkled organic blob. 0 is a smooth dome.") - private double brainRoughness = 0.35; - - @MinNumber(1) - @MaxNumber(12) - @Desc("PILLAR only: the radius of the stout vertical column in blocks.") - private int pillarRadius = 1; - - @MinNumber(1) - @MaxNumber(8) - @Desc("FAN only: the half-width of the upright fan plane in blocks (the disc widens toward its mid-height).") - private int fanWidth = 3; - - @MinNumber(1) - @MaxNumber(12) - @Desc("TENDRIL only: how many thin wavy stalks rise from the base.") - private int tendrilCount = 4; - - public KList getVariantObjects(IrisData data) { - return variantCache.aquire(() -> { - KList baked = new KList<>(); - int count = Math.max(1, variants); - - for (int i = 0; i < count; i++) { - IrisObject object = CoralGenerator.generate(this, i, new RNG(seed + (i * 7919L)), data); - if (object == null || object.getBlocks().isEmpty()) { - continue; - } - object.setLoadKey("procedural/" + name + "#" + i); - object.setLoader(data); - baked.add(object); - } - - return baked; - }); - } - - public IrisObject getVariantObject(IrisData data, RNG rng) { - KList baked = getVariantObjects(data); - if (baked == null || baked.isEmpty()) { - return null; - } - return baked.get(rng.i(baked.size())); - } - - public IrisObjectPlacement asPlacement() { - IrisObjectPlacement placement = new IrisObjectPlacement(); - placement.setMode(mode); - placement.setRotation(rotation); - placement.setClamp(clamp); - placement.setCarvingSupport(carvingSupport); - placement.setUnderwater(underwater); - placement.setTranslate(translate); - placement.setStiltSettings(stiltSettings); - placement.setVacuumSettings(vacuumSettings); - placement.setChance(chance); - placement.setDensity(density); - return placement; - } - - public boolean isPlausible() { - return false; - } -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisCoralForm.java b/core/src/main/java/art/arcane/iris/engine/object/IrisCoralForm.java deleted file mode 100644 index 8f3b321d2..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisCoralForm.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("The overall silhouette a procedural coral grows into. Each form drives a completely different generation routine in the coral generator, from tree-like branching arms to rounded brain blobs and thin wavy tendrils.") -public enum IrisCoralForm { - @Desc("A tree-like coral built from a stout central stalk that sprouts several upward-leaning arms (distributed by golden angle or randomly), each optionally splitting once into sub-arms, with small coral tip clusters (fans / sea pickles) at the ends. The most structurally complex form and the closest analogue to a procedural tree.") - BRANCHING, - - @Desc("A thin, single-block-thick vertical fan plane that rises and widens with height like a sheet of fire or horn coral. Reads as a flat decorative blade rather than a volume.") - FAN, - - @Desc("A rounded, noise-perturbed ellipsoid blob of brain coral that bulges out of the seafloor like a boulder, with an irregular wrinkled surface driven by 3D value noise.") - BRAIN, - - @Desc("A stout, thick vertical column of coral block topped with a dense tip cluster. Wider and blunter than a tendril, reading as a solid coral pillar or stack.") - PILLAR, - - @Desc("Several very thin (one block wide) wavy stalks that rise upward and wander laterally using value noise, like a clump of swaying coral whips or kelp-thin growths.") - TENDRIL -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisCrystal.java b/core/src/main/java/art/arcane/iris/engine/object/IrisCrystal.java deleted file mode 100644 index 52ed68c4d..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisCrystal.java +++ /dev/null @@ -1,219 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.engine.object; - -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListBlockType; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; -import art.arcane.iris.engine.object.crystal.CrystalGenerator; -import art.arcane.volmlib.util.collection.KList; -import art.arcane.volmlib.util.math.RNG; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Snippet("crystal") -@Accessors(chain = true) -@NoArgsConstructor -@AllArgsConstructor -@Desc("A single procedurally generated crystal cluster: a budding base blob with faceted, tapered shards radiating from it (geode / amethyst-style). Iris bakes a pool of deterministic variants from these settings and scatters them at world-gen time, exactly like an object placement but generated from scratch instead of loaded from an iob file. Built for caves.") -@Data -public class IrisCrystal implements IrisProceduralPlacement { - private final transient AtomicCache> variantCache = new AtomicCache<>(); - - @Desc("A human readable name used in logs and as the variant load key.") - private String name = "crystal"; - - @MinNumber(0) - @MaxNumber(1) - @Desc("The chance per chunk for this crystal cluster to attempt placement. Use density for multiple per chunk.") - private double chance = 0.2; - - @MinNumber(1) - @Desc("If the chance check passes, attempt this many placements in the chunk.") - private int density = 1; - - @MinNumber(1) - @MaxNumber(64) - @Desc("How many distinct variants to pre-bake for this crystal cluster. Higher means more variety at a small memory cost.") - private int variants = 6; - - @Desc("The base seed for deterministic generation. The same seed and settings always bake the same variants.") - private long seed = 1337; - - @Desc("The placement mode used to anchor the crystal cluster to the terrain.") - private ObjectPlaceMode mode = ObjectPlaceMode.CENTER_HEIGHT; - - @Desc("Rotate this crystal cluster's placement.") - private IrisObjectRotation rotation = new IrisObjectRotation(); - - @Desc("Limit the max or min height of placement.") - private IrisObjectLimit clamp = new IrisObjectLimit(); - - @Desc("Whether this crystal cluster may place on the terrain surface, under carvings, or both. Crystals are meant for caves, so this defaults to CARVING_ONLY.") - private CarvingMode carvingSupport = CarvingMode.CARVING_ONLY; - - @Desc("If true, the crystal cluster anchors on the terrain height ignoring the water surface.") - private boolean underwater = false; - - @Desc("Translate (offset) this placement along each axis; for example set a negative y to sink it into the ground.") - private IrisObjectTranslate translate = new IrisObjectTranslate(); - - @Desc("Settings for the stilt place modes (STILT, MIN_STILT, FAST_STILT, CENTER_STILT, ERODE_STILT, ORGANIC_STILT).") - private IrisStiltSettings stiltSettings; - - @Desc("Settings for the vacuum place modes (VACUUM, VACUUM_HIGH, VACUUM_FAST, VACUUM_ORGANIC).") - private IrisVacuumSettings vacuumSettings; - - @Desc("The surface this crystal grows from (FLOOR shards up, CEILING shards down, WALL shards outward). This orients the baked geometry only.") - private IrisCrystalSurface growthSurface = IrisCrystalSurface.FLOOR; - - @Required - @Desc("The primary crystal shard block, e.g. minecraft:amethyst_block. Ignored when blockPalette is set.") - @RegistryListBlockType - private String block = "minecraft:amethyst_block"; - - @Desc("A noise-driven palette for the crystal shards (a prismatic mix, e.g. amethyst_block, calcite, tinted_glass). When set this overrides the single block, letting the shards mix blocks by noise. Palette wins.") - private IrisMaterialPalette blockPalette = null; - - @Desc("Optional block placed at the very tip of each shard for a different colored or sparkling point (e.g. minecraft:amethyst_cluster or glowstone). Ignored when tipPalette is set. If unset and glow is true, a light-emitting block is sprinkled among the tips instead.") - @RegistryListBlockType - private String tipBlock = null; - - @Desc("A noise-driven palette for the shard tips. When set this overrides the single tipBlock. Palette wins.") - private IrisMaterialPalette tipPalette = null; - - @MinNumber(0) - @MaxNumber(1) - @Desc("The chance per shard that its very tip is replaced by the tip block (or glow block).") - private double tipChance = 0.6; - - @Desc("If true and no tipBlock/tipPalette is set, sprinkle a light-emitting block (the glowBlock) among the shard tips for a sparkling geode.") - private boolean glow = false; - - @Desc("The light-emitting block sprinkled among the tips when glow is true and no tip block is configured.") - @RegistryListBlockType - private String glowBlock = "minecraft:glowstone"; - - @Desc("Optional block for the budding base blob the shards grow from, e.g. minecraft:budding_amethyst or calcite. Ignored when basePalette is set. If unset, the base is built from the primary shard block.") - @RegistryListBlockType - private String baseBlock = "minecraft:budding_amethyst"; - - @Desc("A noise-driven palette for the budding base blob. When set this overrides the single baseBlock. Palette wins.") - private IrisMaterialPalette basePalette = null; - - @MinNumber(0) - @Desc("Radius in blocks of the budding base blob the shards radiate from. 0 places no base blob (shards spring from a single point).") - private double baseRadius = 1.6; - - @MinNumber(0) - @MaxNumber(1) - @Desc("How strongly value noise perturbs the surface of the base blob, for a lumpy organic budding base rather than a clean sphere.") - private double baseNoise = 0.35; - - @MinNumber(1) - @Desc("Minimum number of shards radiating from the base.") - private int shardCountMin = 5; - - @MinNumber(1) - @Desc("Maximum number of shards radiating from the base.") - private int shardCountMax = 11; - - @MinNumber(1) - @Desc("Minimum length in blocks of a shard, measured from the base out to its pointed tip.") - private int shardLengthMin = 3; - - @MinNumber(1) - @Desc("Maximum length in blocks of a shard, measured from the base out to its pointed tip.") - private int shardLengthMax = 8; - - @MinNumber(0.5) - @Desc("Starting radius in blocks of a shard at its thick base end. The shard tapers from this down to a single block at the tip.") - private double shardBaseRadius = 1.4; - - @MinNumber(0) - @MaxNumber(1) - @Desc("How aggressively each shard narrows from base to tip. 0 keeps a near-constant column; 1 tapers fully to a sharp point at the very tip. Each shard always ends in a single pointed block.") - private double shardTaper = 0.85; - - @MinNumber(0) - @MaxNumber(90) - @Desc("The half-angle in degrees of the cone the shards fan within around the surface normal. 0 makes all shards parallel to the normal; larger values splay them outward into a starburst.") - private double spreadAngle = 45; - - @Desc("How the shard azimuths are distributed around the normal (RANDOM for a chaotic clump, GOLDEN_ANGLE for an evenly spaced rosette).") - private IrisCrystalDistribution distribution = IrisCrystalDistribution.GOLDEN_ANGLE; - - @MinNumber(0) - @MaxNumber(1) - @Desc("Per-shard angular randomness (0-1) added on top of the chosen distribution so the cluster never looks mechanically regular. 0 is perfectly distributed; 1 is heavily jittered.") - private double jitter = 0.25; - - public KList getVariantObjects(IrisData data) { - return variantCache.aquire(() -> { - KList baked = new KList<>(); - int count = Math.max(1, variants); - - for (int i = 0; i < count; i++) { - IrisObject object = CrystalGenerator.generate(this, i, new RNG(seed + (i * 7919L)), data); - if (object == null || object.getBlocks().isEmpty()) { - continue; - } - object.setLoadKey("procedural/" + name + "#" + i); - object.setLoader(data); - baked.add(object); - } - - return baked; - }); - } - - public IrisObject getVariantObject(IrisData data, RNG rng) { - KList baked = getVariantObjects(data); - if (baked == null || baked.isEmpty()) { - return null; - } - return baked.get(rng.i(baked.size())); - } - - public IrisObjectPlacement asPlacement() { - IrisObjectPlacement placement = new IrisObjectPlacement(); - placement.setMode(mode); - placement.setRotation(rotation); - placement.setClamp(clamp); - placement.setCarvingSupport(carvingSupport); - placement.setUnderwater(underwater); - placement.setTranslate(translate); - placement.setStiltSettings(stiltSettings); - placement.setVacuumSettings(vacuumSettings); - placement.setChance(chance); - placement.setDensity(density); - return placement; - } - - public boolean isPlausible() { - return false; - } -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisCrystalSurface.java b/core/src/main/java/art/arcane/iris/engine/object/IrisCrystalSurface.java deleted file mode 100644 index 49cb1b7fb..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisCrystalSurface.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("The surface a crystal cluster grows from. This only orients the baked geometry (which way the shards point); placement of the object into a cave is handled by the placement system, not here.") -public enum IrisCrystalSurface { - @Desc("Grows from a cave floor. The budding base sits at the bottom and the shards point upward, fanning within the spread cone around the up axis. Built with positive py so the cluster grows up from the base layer.") - FLOOR, - - @Desc("Grows from a cave ceiling. The budding base sits at the top and the shards point downward like stalactites, fanning within the spread cone around the down axis. Built with negative py so the cluster grows down from the ceiling.") - CEILING, - - @Desc("Grows from a cave wall. The budding base hugs the wall and the shards point outward and slightly upward, fanning within the spread cone around a tilted normal so the cluster reads as a wall sconce of shards.") - WALL -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisDeepFluidConfig.java b/core/src/main/java/art/arcane/iris/engine/object/IrisDeepFluidConfig.java deleted file mode 100644 index 1b70e4404..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisDeepFluidConfig.java +++ /dev/null @@ -1,71 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Required; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@Desc("Independent deep-fluid configuration outside the surface and underground river source budgets.") -@Data -public class IrisDeepFluidConfig { - @Required - @Desc("Deep-fluid system identifier.") - private String id = "deep_lava"; - - @Required - @Desc("Fluid palette used by accepted deep pools and short channels.") - private IrisMaterialPalette fluidPalette = new IrisMaterialPalette().qclear().qadd("lava"); - - @MinNumber(0) - @MaxNumber(64) - @Desc("Expected independent deep-fluid sources per hydrology tile.") - private double density = 0.125D; - - @MinNumber(16) - @MaxNumber(8192) - @Desc("Nominal spacing in blocks between independent deep-fluid source sites.") - private int spacing = 768; - - @Desc("Deep-fluid elevation in world Y.") - private IrisStyledRange height = new IrisStyledRange( - -192D, - 32D, - new IrisGeneratorStyle(NoiseStyle.IRIS).zoomed(1024D) - ); - - @MinNumber(2) - @MaxNumber(128) - @Desc("Maximum horizontal radius in blocks of an accepted deep-fluid body.") - private int horizontalRadius = 14; - - @MinNumber(2) - @MaxNumber(64) - @Desc("Maximum vertical radius in blocks of an accepted deep-fluid body.") - private int verticalRadius = 6; - - @MinNumber(1) - @MaxNumber(32) - @Desc("Wet width in blocks of an accepted short deep-fluid channel.") - private int channelWidth = 3; - - @MinNumber(1) - @MaxNumber(32) - @Desc("Wet depth in blocks of an accepted deep-fluid body.") - private int depth = 1; - - @MinNumber(1) - @MaxNumber(63) - @Desc("Required dry clearance above an accepted deep-fluid body.") - private int headroom = 6; - - @Desc("Allow accepted sources to form fully contained pools.") - private boolean containedPools = true; - - @Desc("Allow accepted sources to form short contained channels.") - private boolean shortChannels = false; -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisDepositBiomeScope.java b/core/src/main/java/art/arcane/iris/engine/object/IrisDepositBiomeScope.java deleted file mode 100644 index e68daae49..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisDepositBiomeScope.java +++ /dev/null @@ -1,11 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("Selects which biome identity is checked by a deposit's include and exclude filters.") -public enum IrisDepositBiomeScope { - @Desc("Checks the surface biome selected for the deposit column.") - SURFACE, - @Desc("Checks the cave biome selected at the deposit origin.") - CAVE -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisDepositHeightDistribution.java b/core/src/main/java/art/arcane/iris/engine/object/IrisDepositHeightDistribution.java deleted file mode 100644 index 7e3400ae4..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisDepositHeightDistribution.java +++ /dev/null @@ -1,13 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("Controls how a deposit chooses its origin height within the configured vertical band.") -public enum IrisDepositHeightDistribution { - @Desc("Samples uniformly after clipping the configured band to the terrain and build-height bounds.") - CLIPPED_UNIFORM, - @Desc("Samples uniformly from the configured band, then rejects origins outside the terrain or build-height bounds.") - UNIFORM, - @Desc("Samples toward the middle of the configured band with a triangular distribution, then rejects invalid origins.") - TRIANGLE -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisDepositPlacementScope.java b/core/src/main/java/art/arcane/iris/engine/object/IrisDepositPlacementScope.java deleted file mode 100644 index e14c49ba6..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisDepositPlacementScope.java +++ /dev/null @@ -1,13 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("Controls which vertical part of the world may contain a deposit origin.") -public enum IrisDepositPlacementScope { - @Desc("Places in solid terrain below the generated surface while preserving the configured surface clearance.") - TERRAIN, - @Desc("Places only in existing solid hosts above the generated terrain surface.") - ABOVE_TERRAIN, - @Desc("Places in existing solid hosts anywhere within the dimension build height.") - FULL_HEIGHT -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisDepositShape.java b/core/src/main/java/art/arcane/iris/engine/object/IrisDepositShape.java deleted file mode 100644 index 4073eb5fc..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisDepositShape.java +++ /dev/null @@ -1,13 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("Selects the geometry used to build each deposit clump.") -public enum IrisDepositShape { - @Desc("Builds the traditional Iris fixed-block-count cube clump.") - IRIS, - @Desc("Builds a chain of overlapping ellipsoids matching Minecraft's ordinary ore-vein geometry.") - VANILLA_ELLIPSOID, - @Desc("Builds sparse candidate offsets matching Minecraft's scattered-ore geometry.") - VANILLA_SCATTERED -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisFormation.java b/core/src/main/java/art/arcane/iris/engine/object/IrisFormation.java deleted file mode 100644 index 18301b3d9..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisFormation.java +++ /dev/null @@ -1,293 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.engine.object; - -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListBlockType; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; -import art.arcane.iris.engine.object.formation.FormationGenerator; -import art.arcane.volmlib.util.collection.KList; -import art.arcane.volmlib.util.math.RNG; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Snippet("formation") -@Accessors(chain = true) -@NoArgsConstructor -@AllArgsConstructor -@Desc("A single procedurally generated natural formation, including rock landmarks and magical glacial silhouettes. Iris bakes a pool of deterministic variants from these settings and scatters them at world-gen time, exactly like an object placement but generated from scratch instead of loaded from an iob file.") -@Data -public class IrisFormation implements IrisProceduralPlacement { - private final transient AtomicCache> variantCache = new AtomicCache<>(); - - @Desc("A human readable name used in logs and as the variant load key.") - private String name = "formation"; - - @MinNumber(0) - @MaxNumber(1) - @Desc("The chance per chunk for this formation to attempt placement. Use density for multiple per chunk.") - private double chance = 0.02; - - @MinNumber(1) - @Desc("If the chance check passes, attempt this many placements in the chunk.") - private int density = 1; - - @MinNumber(1) - @MaxNumber(64) - @Desc("How many distinct variants to pre-bake for this formation. Higher means more variety at a small memory cost.") - private int variants = 6; - - @Desc("The base seed for deterministic generation. The same seed and settings always bake the same variants.") - private long seed = 1337; - - @Desc("The placement mode used to anchor the formation to the terrain.") - private ObjectPlaceMode mode = ObjectPlaceMode.CENTER_HEIGHT; - - @Desc("Rotate this formation's placement.") - private IrisObjectRotation rotation = new IrisObjectRotation(); - - @Desc("Limit the max or min height of placement.") - private IrisObjectLimit clamp = new IrisObjectLimit(); - - @Desc("Whether this formation may place on the terrain surface, under carvings, or both.") - private CarvingMode carvingSupport = CarvingMode.SURFACE_ONLY; - - @MinNumber(0) - @MaxNumber(16) - @Desc("Horizontal buffer, in blocks, beyond each lowest solid foundation block that must also be solid, un-carved ground.") - private int surfaceSupportBuffer = 3; - - @Desc("If true, the formation anchors on the terrain height ignoring the water surface.") - private boolean underwater = false; - - @Desc("Translate (offset) this placement along each axis; for example set a negative y to sink it into the ground.") - private IrisObjectTranslate translate = new IrisObjectTranslate(); - - @Desc("Settings for the stilt place modes (STILT, MIN_STILT, FAST_STILT, CENTER_STILT, ERODE_STILT, ORGANIC_STILT).") - private IrisStiltSettings stiltSettings; - - @Desc("Settings for the vacuum place modes (VACUUM, VACUUM_HIGH, VACUUM_FAST, VACUUM_ORGANIC).") - private IrisVacuumSettings vacuumSettings; - - @Desc("The overall silhouette of the formation. Drives which sculpting routine the generator uses.") - private IrisFormationForm form = IrisFormationForm.SPIRE; - - @Required - @Desc("The main rock block, e.g. minecraft:stone. Ignored when blockPalette is set.") - @RegistryListBlockType - private String block = "minecraft:stone"; - - @Desc("A noise-driven palette for the main rock body. When set this overrides the single block, letting the body mix blocks by noise.") - private IrisMaterialPalette blockPalette = null; - - @Desc("Optional caprock block placed on the top crown of the formation (and the wide overhanging cap for HOODOO). Ignored when capPalette is set. When null and capPalette is unset, the formation uses its main rock everywhere.") - @RegistryListBlockType - private String capBlock = null; - - @Desc("A noise-driven palette for the caprock. When set this overrides the single capBlock.") - private IrisMaterialPalette capPalette = null; - - @Desc("Optional palette of strata (horizontal colored bands) blended into the rock body by y level. When set, every strataThickness blocks of height switches to the next strata block, producing the signature banded look. Falls back to the main block where unset.") - private IrisMaterialPalette strataPalette = null; - - @MinNumber(1) - @MaxNumber(32) - @Desc("The thickness in blocks of each horizontal strata band when strataPalette is set.") - private int strataThickness = 3; - - @MinNumber(1) - @Desc("Minimum total height of the formation in blocks.") - private int heightMin = 14; - - @MinNumber(1) - @Desc("Maximum total height of the formation in blocks.") - private int heightMax = 26; - - @MinNumber(1) - @Desc("Minimum base radius (half-width) of the formation in blocks.") - private int baseWidthMin = 3; - - @MinNumber(1) - @Desc("Maximum base radius (half-width) of the formation in blocks.") - private int baseWidthMax = 6; - - @MinNumber(0) - @Desc("The target radius (half-width) at the very top of the formation in blocks, before the profile is applied. 0 means taper to a point.") - private int topWidth = 0; - - @Desc("The function used to shape the formation radius over its height.") - private IrisFormationProfile profile = IrisFormationProfile.TAPER; - - @MinNumber(0) - @MaxNumber(1) - @Desc("The normalized height (0 base, 1 top) of the pinched waist for the PARABOLIC profile (used by HOODOO).") - private double profileWaist = 0.55; - - @MinNumber(0) - @MaxNumber(1) - @Desc("The minimum radius fraction at the waist for the PARABOLIC profile. Lower values pinch the waist tighter.") - private double profileWaistFloor = 0.35; - - @MinNumber(0) - @Desc("How far the formation leans, in degrees from vertical. 0 is perfectly upright. The whole body is sheared by this amount over its height.") - private double lean = 0; - - @Desc("Compass direction in degrees the formation leans toward when lean is non-zero.") - private double leanAzimuth = 0; - - @MinNumber(0) - @MaxNumber(1) - @Desc("Surface roughness from 0 (a clean smooth solid) to 1 (heavily eroded and pitted). Driven by 3D value noise that perturbs the radius so the formation never reads as a clean cylinder.") - private double roughness = 0.3; - - @MinNumber(0) - @MaxNumber(1) - @Desc("Per-block surface jitter from 0 (none) to 1 (maximum). Randomly carves and adds isolated edge blocks to break up the silhouette.") - private double jitter = 0.15; - - @MinNumber(0) - @Desc("Extra wide cap radius in blocks added on top for the HOODOO form, producing the overhanging mushroom caprock. 0 disables the overhang.") - private int hoodooCapRadius = 3; - - @MinNumber(1) - @MaxNumber(6) - @Desc("The height in blocks of the HOODOO overhanging caprock slab.") - private int hoodooCapHeight = 3; - - @MinNumber(0) - @Desc("How wide the ARCH opening is in blocks (the gap between the two legs). The arch span is rasterized over this width.") - private int archSpan = 10; - - @MinNumber(1) - @Desc("The thickness in blocks of the ARCH legs and spanning curve.") - private int archThickness = 3; - - @MinNumber(0) - @MaxNumber(1) - @Desc("How strongly an ARCH varies its leg steepness, crown position, depth bow and tube width between deterministic variants. 0 is symmetric and 1 is highly organic.") - private double archAsymmetry = 0.35; - - @MinNumber(2) - @MaxNumber(12) - @Desc("How many separate columns make up a BASALT_COLUMN cluster. Each column gets a randomized height around the formation height range.") - private int basaltColumns = 5; - - @MinNumber(1) - @Desc("The radius (half-width) in blocks of each individual column in a BASALT_COLUMN cluster.") - private int basaltColumnRadius = 1; - - @MinNumber(0) - @MaxNumber(1) - @Desc("How much the heights of individual BASALT_COLUMN columns vary from each other, from 0 (all equal) to 1 (highly varied).") - private double basaltHeightVariance = 0.45; - - @MinNumber(1) - @MaxNumber(12) - @Desc("How many tapered summits crown an ICEBERG formation.") - private int icebergPeaks = 3; - - @MinNumber(2) - @MaxNumber(8) - @Desc("How many separated shards form a FISSURE.") - private int fractureCount = 3; - - @MinNumber(1) - @MaxNumber(16) - @Desc("Open-air separation in blocks between the shards of a FISSURE.") - private int fractureSeparation = 2; - - @MinNumber(0.25) - @MaxNumber(6) - @Desc("How many complete turns a SPIRAL makes from base to tip.") - private double spiralTurns = 1.5; - - @MinNumber(1) - @MaxNumber(32) - @Desc("The starting distance in blocks between a SPIRAL and its open center.") - private int spiralRadius = 4; - - @MinNumber(1) - @MaxNumber(8) - @Desc("The radius in blocks of the tube swept along a SPIRAL.") - private int spiralThickness = 2; - - @MinNumber(1) - @MaxNumber(32) - @Desc("How far the hooked arm of an OVERHANG projects from its base.") - private int overhangReach = 8; - - @MinNumber(0) - @MaxNumber(16) - @Desc("How many blocks the tip of an OVERHANG curls downward.") - private int overhangDrop = 3; - - public KList getVariantObjects(IrisData data) { - return variantCache.aquire(() -> { - KList baked = new KList<>(); - int count = Math.max(1, variants); - - for (int i = 0; i < count; i++) { - IrisObject object = FormationGenerator.generate(this, i, new RNG(seed + (i * 7919L)), data); - if (object == null || object.getBlocks().isEmpty()) { - continue; - } - object.setLoadKey("procedural/" + name + "#" + i); - object.setLoader(data); - baked.add(object); - } - - return baked; - }); - } - - public IrisObject getVariantObject(IrisData data, RNG rng) { - KList baked = getVariantObjects(data); - if (baked == null || baked.isEmpty()) { - return null; - } - return baked.get(rng.i(baked.size())); - } - - public IrisObjectPlacement asPlacement() { - IrisObjectPlacement placement = new IrisObjectPlacement(); - placement.setMode(mode); - placement.setRotation(rotation); - placement.setClamp(clamp); - placement.setCarvingSupport(carvingSupport); - placement.setSurfaceSupportBuffer(surfaceSupportBuffer); - placement.setUnderwater(underwater); - placement.setTranslate(translate); - placement.setStiltSettings(stiltSettings); - placement.setVacuumSettings(vacuumSettings); - placement.setChance(chance); - placement.setDensity(density); - return placement; - } - - public boolean isPlausible() { - return false; - } -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisFormationForm.java b/core/src/main/java/art/arcane/iris/engine/object/IrisFormationForm.java deleted file mode 100644 index ce0b6eae8..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisFormationForm.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("The overall silhouette of a procedural natural formation. Each form drives a distinct sculpting routine in the formation generator.") -public enum IrisFormationForm { - @Desc("A tall, slender needle of rock that tapers smoothly to a point at the top (a sharp pinnacle or stone spire).") - SPIRE, - @Desc("A column with a pinched, eroded waist and a wide overhanging caprock balanced on top (the classic desert hoodoo / mushroom rock).") - HOODOO, - @Desc("Two stout legs joined by a spanning curved bridge of rock overhead (a natural stone arch).") - ARCH, - @Desc("A chunky, blocky stack that tapers gently as it rises, like an isolated pillar of rock standing in water (a sea stack).") - SEA_STACK, - @Desc("A rounded, lumpy boulder formed from a noise-perturbed ellipsoid that sits low on the terrain.") - BOULDER, - @Desc("A tightly packed cluster of several vertical, near-hexagonal columns of varying height (a basalt column formation / giant's causeway).") - BASALT_COLUMN, - @Desc("A broad, faceted mound crowned by several irregular tapered peaks, suitable for icebergs and glacial outcrops.") - ICEBERG, - @Desc("Several separated, outward-leaning shards divided by open cracks.") - FISSURE, - @Desc("A tapered tube swept around a tightening helix, leaving open air through its curled center.") - SPIRAL, - @Desc("A grounded pillar that bends into a long hooked cantilever and curls downward at its tip.") - OVERHANG -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisFormationProfile.java b/core/src/main/java/art/arcane/iris/engine/object/IrisFormationProfile.java deleted file mode 100644 index f252c298c..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisFormationProfile.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("A width-shaping function evaluated over normalized height (0 at the base, 1 at the top). Controls how the formation radius scales between baseWidth at the bottom and topWidth at the top.") -public enum IrisFormationProfile { - @Desc("Same radius at every height (a straight cylinder of constant baseWidth).") - CONSTANT, - @Desc("Radius ramps straight from baseWidth at the bottom to topWidth at the top.") - LINEAR, - @Desc("Radius shrinks smoothly toward a point as height increases (an ease that drives the SPIRE needle and gentle SEA_STACK taper).") - TAPER, - @Desc("Radius pinches to a narrow waist near profileWaist then widens again toward the top (the eroded waist used by HOODOO columns).") - PARABOLIC, - @Desc("Radius bulges out to its maximum in the middle of the height range and narrows at both ends (a barrel / bulged column).") - BULGE -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisFungus.java b/core/src/main/java/art/arcane/iris/engine/object/IrisFungus.java deleted file mode 100644 index d6613b5b3..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisFungus.java +++ /dev/null @@ -1,251 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.engine.object; - -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListBlockType; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; -import art.arcane.iris.engine.object.fungi.FungusGenerator; -import art.arcane.volmlib.util.collection.KList; -import art.arcane.volmlib.util.math.RNG; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Snippet("fungus") -@Accessors(chain = true) -@NoArgsConstructor -@AllArgsConstructor -@Desc("A single procedurally generated fungus (giant mushroom or shelf fungus). Iris bakes a pool of deterministic variants from these settings and scatters them at world-gen time, exactly like an object placement but generated from scratch instead of loaded from an iob file. The fungus is built as a stem column with a cap dome grown on top, mirroring the trunk-and-canopy model used by procedural trees.") -@Data -public class IrisFungus implements IrisProceduralPlacement { - private final transient AtomicCache> variantCache = new AtomicCache<>(); - - @Desc("A human readable name used in logs and as the variant load key.") - private String name = "fungus"; - - @MinNumber(0) - @MaxNumber(1) - @Desc("The chance per chunk for this fungus to attempt placement. Use density for multiple per chunk.") - private double chance = 0.4; - - @MinNumber(1) - @Desc("If the chance check passes, attempt this many placements in the chunk.") - private int density = 1; - - @MinNumber(1) - @MaxNumber(64) - @Desc("How many distinct variants to pre-bake for this fungus. Higher means more variety at a small memory cost.") - private int variants = 6; - - @Desc("The base seed for deterministic generation. The same seed and settings always bake the same variants.") - private long seed = 1337; - - @Desc("The placement mode used to anchor the fungus to the terrain.") - private ObjectPlaceMode mode = ObjectPlaceMode.CENTER_HEIGHT; - - @Desc("Rotate this fungus's placement.") - private IrisObjectRotation rotation = new IrisObjectRotation(); - - @Desc("Limit the max or min height of placement.") - private IrisObjectLimit clamp = new IrisObjectLimit(); - - @Desc("Whether this fungus may place on the terrain surface, under carvings, or both.") - private CarvingMode carvingSupport = CarvingMode.SURFACE_ONLY; - - @Desc("If true, the fungus anchors on the terrain height ignoring the water surface.") - private boolean underwater = false; - - @Desc("Translate (offset) this placement along each axis; for example set a negative y to sink it into the ground.") - private IrisObjectTranslate translate = new IrisObjectTranslate(); - - @Desc("Settings for the stilt place modes (STILT, MIN_STILT, FAST_STILT, CENTER_STILT, ERODE_STILT, ORGANIC_STILT).") - private IrisStiltSettings stiltSettings; - - @Desc("Settings for the vacuum place modes (VACUUM, VACUUM_HIGH, VACUUM_FAST, VACUUM_ORGANIC).") - private IrisVacuumSettings vacuumSettings; - - @Required - @Desc("The stem block, e.g. minecraft:mushroom_stem. Ignored when stemPalette is set.") - @RegistryListBlockType - private String stem = "minecraft:mushroom_stem"; - - @Desc("A noise-driven palette for the stem. When set this overrides the single stem block, letting the stem mix blocks by noise.") - private IrisMaterialPalette stemPalette = null; - - @Required - @Desc("The cap block, e.g. minecraft:red_mushroom_block. Ignored when capPalette is set.") - @RegistryListBlockType - private String cap = "minecraft:red_mushroom_block"; - - @Desc("A noise-driven palette for the cap. When set this overrides the single cap block, letting the cap mix blocks by noise.") - private IrisMaterialPalette capPalette = null; - - @MinNumber(1) - @Desc("Minimum total stem height in blocks. Variants spread between this and stemHeightMax.") - private int stemHeightMin = 5; - - @MinNumber(1) - @Desc("Maximum total stem height in blocks. Variants spread between stemHeightMin and this.") - private int stemHeightMax = 9; - - @MinNumber(1) - @MaxNumber(3) - @Desc("Base stem width in blocks. 1 is a single column, 2 is a 2x2 stem, 3 is a chunky 3x3 trunk.") - private int stemWidth = 1; - - @Desc("How far the stem leans away from vertical, in degrees. 0 is perfectly upright; small values give an organic tilt.") - private double stemCurve = 0; - - @Desc("Compass direction in degrees the stem leans toward when stemCurve is non-zero.") - private double stemLeanAzimuth = 0; - - @MinNumber(0) - @Desc("Amplitude in blocks of a gentle sideways wave applied up the stem so it is not a perfectly straight ruler.") - private double stemWaveAmplitude = 0.4; - - @MinNumber(0.0001) - @Desc("The number of full sine wobbles applied over the stem height for the stem wave.") - private double stemWavePeriods = 1; - - @Desc("The silhouette of the cap (dome, flat umbrella, funnel, cone, or wide shallow slab).") - private IrisFungusCapShape capShape = IrisFungusCapShape.DOME; - - @MinNumber(1) - @Desc("Minimum cap radius in blocks (measured from the cap center to its rim).") - private int capRadiusMin = 3; - - @MinNumber(1) - @Desc("Maximum cap radius in blocks (measured from the cap center to its rim).") - private int capRadiusMax = 5; - - @MinNumber(1) - @MaxNumber(3) - @Desc("How many blocks thick the cap shell is. 1 is a thin skin, 3 is a fleshy slab.") - private int capThickness = 1; - - @MinNumber(0) - @MaxNumber(1) - @Desc("Vertical flatten factor for the cap. 0 leaves the cap at full height, 1 squashes it flat into a disc.") - private double capSquish = 0.4; - - @MinNumber(0) - @Desc("How far the cap rim droops downward, in degrees, curling the edge of the cap toward the ground.") - private double capDroop = 20; - - @MinNumber(0) - @Desc("How far the cap radius extends past the stem before the rim begins, in blocks. Larger values make the cap overhang the stem more.") - private double capOverhang = 2; - - @Desc("Optional block forming the gill layer on the underside of the cap (gills or a glow layer), e.g. minecraft:brown_mushroom_block or minecraft:shroomlight. Ignored when gillPalette is set or left null.") - @RegistryListBlockType - private String gillBlock = null; - - @Desc("A noise-driven palette for the underside gill layer. When set this overrides the single gillBlock.") - private IrisMaterialPalette gillPalette = null; - - @MinNumber(0) - @MaxNumber(1) - @Desc("The fraction of underside cap blocks replaced by the gill block when a gill block or palette is set.") - private double gillChance = 0.85; - - @Desc("Optional block speckled across the top of the cap by noise (white toadstool dots, warts, glowing spots), e.g. minecraft:bone_block or minecraft:white_concrete. Ignored when spotPalette is set or left null.") - @RegistryListBlockType - private String spotBlock = null; - - @Desc("A noise-driven palette for the cap top spots. When set this overrides the single spotBlock.") - private IrisMaterialPalette spotPalette = null; - - @MinNumber(0) - @MaxNumber(1) - @Desc("The fraction of top cap blocks replaced by the spot block, selected by value noise so spots cluster naturally.") - private double spotChance = 0.18; - - @Desc("If true, generate a bracket / shelf fungus instead of an upright mushroom: a small flat fan that grows sideways off a very short or absent stem, like a polypore clinging to a trunk.") - private boolean shelf = false; - - @MinNumber(1) - @Desc("The radius in blocks of the sideways fan when shelf is true.") - private int shelfRadius = 3; - - public KList getVariantObjects(IrisData data) { - return variantCache.aquire(() -> { - KList baked = new KList<>(); - int count = Math.max(1, variants); - int lo = Math.min(stemHeightMin, stemHeightMax); - int hi = Math.max(stemHeightMin, stemHeightMax); - RNG heightRng = new RNG(seed); - - for (int i = 0; i < count; i++) { - int height; - if (count == 1 || lo == hi) { - height = heightRng.i(lo, hi + 1); - } else { - double step = (hi - lo) / (double) (count - 1); - double base = lo + step * i; - double jitter = heightRng.d(-step * 0.3, step * 0.3); - height = (int) Math.round(Math.max(lo, Math.min(hi, base + jitter))); - } - - IrisObject object = FungusGenerator.generate(this, Math.max(1, height), new RNG(seed + (i * 7919L)), data); - if (object == null || object.getBlocks().isEmpty()) { - continue; - } - object.setLoadKey("procedural/" + name + "#" + i); - object.setLoader(data); - baked.add(object); - } - - return baked; - }); - } - - public IrisObject getVariantObject(IrisData data, RNG rng) { - KList baked = getVariantObjects(data); - if (baked == null || baked.isEmpty()) { - return null; - } - return baked.get(rng.i(baked.size())); - } - - public IrisObjectPlacement asPlacement() { - IrisObjectPlacement placement = new IrisObjectPlacement(); - placement.setMode(mode); - placement.setRotation(rotation); - placement.setClamp(clamp); - placement.setCarvingSupport(carvingSupport); - placement.setUnderwater(underwater); - placement.setTranslate(translate); - placement.setStiltSettings(stiltSettings); - placement.setVacuumSettings(vacuumSettings); - placement.setChance(chance); - placement.setDensity(density); - return placement; - } - - public boolean isPlausible() { - return false; - } -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisFungusCapShape.java b/core/src/main/java/art/arcane/iris/engine/object/IrisFungusCapShape.java deleted file mode 100644 index 194b3baab..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisFungusCapShape.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("The silhouette of the mushroom cap. Each shape drives how the cap radius and thickness vary from its apex down to the rim, giving the fungus a distinct profile.") -public enum IrisFungusCapShape { - @Desc("A rounded hemisphere cap that bulges up and curls slightly under at the rim, the classic red toadstool dome.") - DOME, - @Desc("A wide, nearly flat umbrella that holds its full radius almost to the edge before dropping, the brown-mushroom plate look.") - FLAT, - @Desc("An upturned bowl whose rim lifts higher than its center, cupping upward like a chanterelle or funnel mushroom.") - FUNNEL, - @Desc("A tall pointed cone that tapers from a broad base to a sharp apex, the witch-hat parasol silhouette.") - CONICAL, - @Desc("A very wide but shallow slab, a low overhanging shelf-like roof that spreads far past the stem with minimal vertical rise.") - FLAT_WIDE -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisGrottoPoolLevel.java b/core/src/main/java/art/arcane/iris/engine/object/IrisGrottoPoolLevel.java deleted file mode 100644 index 8ce9b6775..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisGrottoPoolLevel.java +++ /dev/null @@ -1,9 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("Where the pool at the bottom of a coastal grotto sits.") -public enum IrisGrottoPoolLevel { - @Desc("The pool surface sits at the dimension fluid height, so the grotto meets the sea.") - SEA_LEVEL -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisHydrology.java b/core/src/main/java/art/arcane/iris/engine/object/IrisHydrology.java deleted file mode 100644 index bc6e04768..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisHydrology.java +++ /dev/null @@ -1,25 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.volmlib.util.collection.KList; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@Desc("Dimension-owned physical hydrology configuration.") -@Data -public class IrisHydrology { - @Desc("Terrain-guided surface and underground river configuration.") - private IrisRiverHydrology rivers = new IrisRiverHydrology(); - - @ArrayType(type = IrisDeepFluidConfig.class) - @Desc("Independent deep-fluid systems that do not consume the surface or underground river source budgets.") - private KList deepFluids = new KList<>(); - - @ArrayType(type = IrisSurfacePoolConfig.class, min = 0) - @Desc("Standing surface pools such as lava pools. Each region or biome opts in through riverPolicy.surfacePools.") - private KList surfacePools = new KList<>(); -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapAlpha.java b/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapAlpha.java deleted file mode 100644 index d1956e241..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapAlpha.java +++ /dev/null @@ -1,11 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("How alpha participates in decoded data") -public enum IrisImageMapAlpha { - IGNORE, - MASK, - TRANSPARENT_IS_FALLBACK, - ERROR -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapApplication.java b/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapApplication.java deleted file mode 100644 index 149a1c650..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("The generation input controlled by an image map") -public enum IrisImageMapApplication { - TERRAIN_HEIGHT, - BIOME, - REGION, - SURFACE_BLOCK, - MASK, - CUSTOM -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapBinding.java b/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapBinding.java deleted file mode 100644 index d9156c710..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapBinding.java +++ /dev/null @@ -1,29 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.RegistryListResource; -import art.arcane.volmlib.util.collection.KList; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@Desc("Binds a reusable image map to one dimension generation role") -@Data -public class IrisImageMapBinding { - @Desc("Unique name used by Studio previews and custom map lookups") - private String key = ""; - - @RegistryListResource(IrisImageMap.class) - @Desc("Image-map resource key under image-maps/") - private String map = ""; - - @Desc("Generation input controlled by this binding") - private IrisImageMapApplication application = IrisImageMapApplication.CUSTOM; - - @ArrayType(type = IrisImageMapMask.class) - @Desc("Named mask maps composed in declaration order") - private KList masks = new KList<>(); -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapMask.java b/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapMask.java deleted file mode 100644 index 1e2be7877..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapMask.java +++ /dev/null @@ -1,33 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@Desc("A composable reference to a named MASK image map") -@Data -public class IrisImageMapMask { - @Desc("The key of a named imageMaps entry whose application is MASK") - private String map = ""; - - @Desc("How this mask combines with masks before it") - private IrisImageMapMaskOperation operation = IrisImageMapMaskOperation.MULTIPLY; - - @Desc("Invert this mask before combining it") - private boolean inverted = false; - - @MinNumber(0) - @MaxNumber(1) - @Desc("Values below this threshold become zero") - private double threshold = 0D; - - @MinNumber(0) - @MaxNumber(1) - @Desc("Soft transition width above threshold; zero is a hard edge") - private double falloff = 0D; -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapMaskOperation.java b/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapMaskOperation.java deleted file mode 100644 index 265f7426e..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapMaskOperation.java +++ /dev/null @@ -1,12 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("How a referenced mask combines with masks before it") -public enum IrisImageMapMaskOperation { - MULTIPLY, - MINIMUM, - MAXIMUM, - ADD, - SUBTRACT -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapOrigin.java b/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapOrigin.java deleted file mode 100644 index c17a23033..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapOrigin.java +++ /dev/null @@ -1,23 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@Desc("A two-dimensional image-map coordinate") -@Data -public class IrisImageMapOrigin { - @Desc("X coordinate in world blocks for origin, or source pixels for sourceOrigin") - private double x = 0D; - - @Desc("Z coordinate in world blocks for origin, or source image Y pixels for sourceOrigin") - private double z = 0D; - - public IrisImageMapOrigin(double x, double z) { - this.x = x; - this.z = z; - } -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapOutOfBounds.java b/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapOutOfBounds.java deleted file mode 100644 index d42c5a5d5..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapOutOfBounds.java +++ /dev/null @@ -1,12 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("How coordinates outside an image are resolved") -public enum IrisImageMapOutOfBounds { - FALLBACK, - CLAMP, - REPEAT, - MIRROR, - ERROR -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapRotation.java b/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapRotation.java deleted file mode 100644 index 473b83ff2..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapRotation.java +++ /dev/null @@ -1,11 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("Clockwise image-map rotation around sourceOrigin") -public enum IrisImageMapRotation { - DEG_0, - DEG_90, - DEG_180, - DEG_270 -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapSampling.java b/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapSampling.java deleted file mode 100644 index 952253d8a..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapSampling.java +++ /dev/null @@ -1,10 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("The filter used between source pixels") -public enum IrisImageMapSampling { - NEAREST, - BILINEAR, - BICUBIC -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapType.java b/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapType.java deleted file mode 100644 index 6e885cc1a..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapType.java +++ /dev/null @@ -1,13 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("How Iris decodes each source pixel") -public enum IrisImageMapType { - GRAYSCALE_HEIGHT, - RGB_HEIGHT, - COLOR_MAP, - BINARY_MASK, - GRAYSCALE_MASK, - ALPHA_MASK -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapUnknownColor.java b/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapUnknownColor.java deleted file mode 100644 index e18e11e90..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisImageMapUnknownColor.java +++ /dev/null @@ -1,10 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("How a color absent from a color-map legend is handled") -public enum IrisImageMapUnknownColor { - ERROR, - FALLBACK, - IGNORE -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisInlandRiverGrottoConfig.java b/core/src/main/java/art/arcane/iris/engine/object/IrisInlandRiverGrottoConfig.java deleted file mode 100644 index ee0a3947c..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisInlandRiverGrottoConfig.java +++ /dev/null @@ -1,40 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@Desc("Controls contained inland grotto outlets.") -@Data -public class IrisInlandRiverGrottoConfig { - @Desc("Allow a contained inland grotto to serve as an explicit accepted outlet.") - private boolean enabled = true; - - @Desc("Continue eligible surface rivers through a falling sinkhole into the contained inland grotto.") - private boolean connectSurfaceRivers = false; - - @MinNumber(1) - @MaxNumber(128) - @Desc("Maximum horizontal radius in blocks of an accepted inland grotto.") - private int horizontalRadius = 10; - - @MinNumber(1) - @MaxNumber(64) - @Desc("Maximum vertical radius in blocks of an accepted inland grotto.") - private int verticalRadius = 6; - - @MinNumber(1) - @MaxNumber(63) - @Desc("Required dry clearance above an inland grotto pool.") - private int headroom = 10; - - @MinNumber(1) - @MaxNumber(1048576) - @Desc("Maximum accepted inland grotto volume in blocks.") - private int maximumVolume = 8192; -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawBranchFailurePolicy.java b/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawBranchFailurePolicy.java deleted file mode 100644 index b9d08ab07..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawBranchFailurePolicy.java +++ /dev/null @@ -1,12 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("Controls how an Iris jigsaw assembly handles an optional connector branch that exhausts its primary pool and direct fallback without attaching a piece.") -public enum IrisJigsawBranchFailurePolicy { - @Desc("Fails the complete assembly when an optional connector branch cannot attach before the maximum depth.") - FAIL_ASSEMBLY, - - @Desc("Ends only the unresolved optional connector branch, matching vanilla jigsaw placement behavior.") - TERMINATE_BRANCH -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawCompatibility.java b/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawCompatibility.java deleted file mode 100644 index 3d71fd251..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawCompatibility.java +++ /dev/null @@ -1,12 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("Declares the resource compatibility target of an Iris jigsaw structure.") -public enum IrisJigsawCompatibility { - @Desc("Allows Iris-specific connector metadata and placement behavior.") - IRIS_EXTENDED, - - @Desc("Restricts the graph to metadata that can be represented by vanilla jigsaw resources.") - VANILLA_PORTABLE -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawHeightmap.java b/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawHeightmap.java deleted file mode 100644 index 7648e2b38..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawHeightmap.java +++ /dev/null @@ -1,30 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("Controls whether a configured native jigsaw projects its start onto a Minecraft heightmap.") -public enum IrisJigsawHeightmap { - @Desc("Keeps the registered structure's own heightmap projection exactly as the vanilla, datapack, or mod definition declares it.") - SOURCE, - - @Desc("Removes heightmap projection entirely, so the start piece lands at the structure's literal start height instead of following terrain.") - NONE, - - @Desc("Drops the start piece onto the terrain top counting water as solid, so ocean starts sit on the water surface.") - WORLD_SURFACE_WG, - - @Desc("Identical to WORLD_SURFACE_WG in Iris worlds: the start piece rides the terrain top including water.") - WORLD_SURFACE, - - @Desc("Drops the start piece onto solid terrain, ignoring water, so ocean starts sit on the seabed.") - OCEAN_FLOOR_WG, - - @Desc("Identical to OCEAN_FLOOR_WG in Iris worlds: the start piece sits on solid ground beneath any water.") - OCEAN_FLOOR, - - @Desc("Behaves like WORLD_SURFACE in Iris worlds; the start piece sits on the terrain top including water.") - MOTION_BLOCKING, - - @Desc("Behaves like WORLD_SURFACE in Iris worlds; Iris height queries have no leaf layer to skip.") - MOTION_BLOCKING_NO_LEAVES -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawLiquidSettings.java b/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawLiquidSettings.java deleted file mode 100644 index 8863ff7f7..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawLiquidSettings.java +++ /dev/null @@ -1,15 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("Controls waterlogging behavior for a configured native jigsaw.") -public enum IrisJigsawLiquidSettings { - @Desc("Keeps the registered structure's own liquid setting; vanilla defaults to applying waterlogging when the definition omits it.") - SOURCE, - - @Desc("Places pieces dry: existing water is displaced and waterloggable blocks stay unwaterlogged, leaving air-filled interiors underwater.") - IGNORE_WATERLOGGING, - - @Desc("Re-applies pre-existing water into placed waterloggable blocks and floods from neighboring sources, so underwater pieces come out waterlogged.") - APPLY_WATERLOGGING -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawMode.java b/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawMode.java deleted file mode 100644 index 0a4182277..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawMode.java +++ /dev/null @@ -1,12 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("Controls the topology used by an Iris jigsaw structure.") -public enum IrisJigsawMode { - @Desc("A cell-aligned planar jigsaw intended for villages, paths, and other two-dimensional layouts.") - PLANAR_JIGSAW, - - @Desc("A freeform spatial connector graph intended for multi-level and three-dimensional structures.") - SPATIAL_JIGSAW -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawThemeSet.java b/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawThemeSet.java deleted file mode 100644 index 15ed96804..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawThemeSet.java +++ /dev/null @@ -1,24 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Required; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@AllArgsConstructor -@Desc("A weighted structure-wide jigsaw theme. One declared theme is selected for an assembly, and pieces may opt into one or more themes.") -@Data -public class IrisJigsawThemeSet { - @Required - @Desc("The exact theme key referenced by jigsaw pieces.") - private String key = ""; - - @MinNumber(1) - @Desc("The relative weight used when selecting one theme for an assembly.") - private int weight = 1; -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawWorkcell.java b/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawWorkcell.java deleted file mode 100644 index 703b5cd4c..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawWorkcell.java +++ /dev/null @@ -1,40 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@AllArgsConstructor -@Data -@Desc("Persistent authoring bounds and runtime availability for one planar jigsaw workcell.") -public class IrisJigsawWorkcell { - @Desc("Optional author-facing name shown by Jigsaw Studio. The canonical archetype name is shown when this is blank.") - private String displayName = ""; - - @Desc("The orientation-independent planar connector shape configured by this workcell.") - private IrisJigsawWorkcellArchetype archetype = IrisJigsawWorkcellArchetype.BLANK; - - @MinNumber(3) - @MaxNumber(128) - @Desc("The maximum canonical variant width that this workcell can contain, in blocks.") - private int width = 16; - - @MinNumber(1) - @MaxNumber(192) - @Desc("The maximum variant height that this workcell can contain, in blocks.") - private int height = 16; - - @MinNumber(3) - @MaxNumber(128) - @Desc("The maximum canonical variant depth that this workcell can contain, in blocks.") - private int depth = 16; - - @Desc("Whether pieces with this planar connector shape participate in assembly and vanilla export.") - private boolean enabled = true; -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisNativeStructure.java b/core/src/main/java/art/arcane/iris/engine/object/IrisNativeStructure.java deleted file mode 100644 index a98da1005..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisNativeStructure.java +++ /dev/null @@ -1,29 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListVanillaStructure; -import art.arcane.iris.engine.object.annotations.Required; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@AllArgsConstructor -@Data -@Desc("A live vanilla, datapack, or modded structure generated by Minecraft at an Iris-controlled placement.") -public class IrisNativeStructure { - @Required - @RegistryListVanillaStructure - @Desc("Registered structure key. The source retains its native generator, pieces, templates, processors, entities, markers, and data.") - private String structure = ""; - - @MinNumber(1) - @Desc("Relative selection weight when a placement offers multiple native structure sources.") - private int weight = 1; - - @Desc("Optional jigsaw-only assembly overrides. Null preserves the complete registered structure definition.") - private IrisJigsawConfiguration jigsaw = null; -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverBedProfile.java b/core/src/main/java/art/arcane/iris/engine/object/IrisRiverBedProfile.java deleted file mode 100644 index db3d114e1..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverBedProfile.java +++ /dev/null @@ -1,15 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("The cross-section of the wet channel bed from the centerline out to the waterline.") -public enum IrisRiverBedProfile { - @Desc("A level thalweg over thalwegFraction of the half-width that eases up to a one-block edge; a broad bowl.") - BOWL, - @Desc("Full depth across the whole width, so the channel edge drops straight to the bed.") - FLAT, - @Desc("A straight slope from full depth at the centerline to one block at the edge; thalwegFraction is ignored.") - V, - @Desc("A level thalweg over thalwegFraction of the half-width that stays deep almost to the edge, then rises steeply; a trough with steep sides.") - U -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverBlendStyle.java b/core/src/main/java/art/arcane/iris/engine/object/IrisRiverBlendStyle.java deleted file mode 100644 index 0207fa107..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverBlendStyle.java +++ /dev/null @@ -1,17 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("The shape of the eroded valley side between the shore band and natural terrain.") -public enum IrisRiverBlendStyle { - @Desc("An eased S-curve from the bank top out to natural terrain, flat at both ends and steepest across the middle of the band; blendCurve skews it.") - SMOOTH, - @Desc("A straight slope from the bank top to natural terrain with a sharp shoulder at the shore and a sharp lip at the top; blendCurve bends it.") - LINEAR, - @Desc("A hollowed valley side that climbs fast beside the shore and flattens out toward natural terrain; blendCurve deepens the hollow.") - CONCAVE, - @Desc("The eased curve cut into level steps, terraceSteps of them between the bank top and natural terrain.") - TERRACED, - @Desc("A level bench at the bank top for cliffFraction of the band, then a vertical wall up to natural terrain.") - CLIFF -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverChannelShapeConfig.java b/core/src/main/java/art/arcane/iris/engine/object/IrisRiverChannelShapeConfig.java deleted file mode 100644 index 5e4ef5533..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverChannelShapeConfig.java +++ /dev/null @@ -1,74 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@Desc("Controls rounded beds and rough, coherent channel walls.") -@Data -public class IrisRiverChannelShapeConfig { - @MinNumber(1) - @MaxNumber(6) - @Desc("Cross-section exponent. Larger values broaden the rounded U-shaped bed.") - private double bedRoundness = 2.4D; - - @MinNumber(0) - @MaxNumber(1) - @Desc("Coherent vertical variation applied to the bed as a fraction of channel depth.") - private double bedRoughness = 0.28D; - - @MinNumber(0) - @MaxNumber(1) - @Desc("Coherent radial variation applied to carved walls and banks.") - private double wallRoughness = 0.24D; - - @MinNumber(3) - @MaxNumber(128) - @Desc("Wavelength in blocks of bed and wall roughness.") - private int roughnessWavelength = 11; - - @MinNumber(0.4) - @MaxNumber(1.2) - @Desc("Base radial scale of the organic passage outline before the lobes are added; 1 keeps the nominal radius, lower values carve a narrower passage.") - private double radialBase = 0.86D; - - @MinNumber(0.2) - @MaxNumber(1) - @Desc("Smallest radial scale the organic outline may shrink to after the lobes are applied, as a fraction of the nominal radius.") - private double radialMinimum = 0.58D; - - @MinNumber(1) - @MaxNumber(2) - @Desc("Largest radial scale the organic outline may grow to after the lobes are applied, as a fraction of the nominal radius.") - private double radialMaximum = 1.18D; - - @MinNumber(0) - @MaxNumber(0.5) - @Desc("Strength of the broad lobes that bulge and pinch the passage outline along its length; 0 leaves the outline circular.") - private double primaryLobeStrength = 0.08D; - - @MinNumber(0) - @MaxNumber(0.5) - @Desc("Strength of the fine lobes layered over the broad ones for small-scale wall detail; 0 leaves only the broad lobes.") - private double detailLobeStrength = 0.06D; - - @MinNumber(0) - @MaxNumber(1) - @Desc("Coherent variation of the carved ceiling height as a fraction of the headroom; 0 keeps the ceiling smooth and evaluates no extra noise.") - private double ceilingRoughness = 0D; - - @MinNumber(0.2) - @MaxNumber(1) - @Desc("Narrowest plan aspect of a chamber, the short axis as a fraction of the long axis; 1 makes every chamber circular in plan. Applies to grottos only.") - private double aspectMinimum = 0.62D; - - @MinNumber(0) - @MaxNumber(0.8) - @Desc("How much the plan aspect may vary above aspectMinimum from one chamber to the next; 0 gives every chamber the same aspect. Applies to grottos only.") - private double aspectRange = 0.2D; -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverDropShapeConfig.java b/core/src/main/java/art/arcane/iris/engine/object/IrisRiverDropShapeConfig.java deleted file mode 100644 index 055d1c26e..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverDropShapeConfig.java +++ /dev/null @@ -1,54 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@Desc("Controls low-volume cascades, falling faces, and organic receiving basins.") -@Data -public class IrisRiverDropShapeConfig { - @MinNumber(1) - @MaxNumber(16) - @Desc("Preferred horizontal cascade run per block of head loss.") - private int cascadeRunPerBlock = 2; - - @MinNumber(0.25) - @MaxNumber(6) - @Desc("Exponent of the graded cascade profile. Values above one accelerate toward the receiver.") - private double cascadeExponent = 1.4D; - - @MinNumber(1) - @MaxNumber(4) - @Desc("Maximum head loss between adjacent underground drop faces. Exposed cascades always use one-block steps.") - private int maximumCascadeStep = 2; - - @MinNumber(0.25) - @MaxNumber(1) - @Desc("Drop-flow width as a fraction of the connected channel width.") - private double flowWidthRatio = 0.45D; - - @MinNumber(1) - @MaxNumber(16) - @Desc("Maximum wetted depth along a descending flow path.") - private int maximumFlowDepth = 2; - - @MinNumber(1) - @MaxNumber(4) - @Desc("Receiving-basin width as a fraction of the descending flow width.") - private double basinWidthRatio = 1.8D; - - @MinNumber(1) - @MaxNumber(32) - @Desc("Maximum receiving-basin depth after drop-scaled erosion.") - private int maximumBasinDepth = 8; - - @MinNumber(0) - @MaxNumber(16) - @Desc("Horizontal run in blocks an underground drop spreads over per block of head loss, so tall drops become long cascades; 0 keeps every underground drop at its shortest run.") - private int undergroundCascadeRunPerBlock = 0; -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverExcavationConfig.java b/core/src/main/java/art/arcane/iris/engine/object/IrisRiverExcavationConfig.java deleted file mode 100644 index 4be92c4a5..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverExcavationConfig.java +++ /dev/null @@ -1,29 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Data -@NoArgsConstructor -@Accessors(chain = true) -@Desc("Bounds terrain removal outside the wet river channel.") -public class IrisRiverExcavationConfig { - @MinNumber(0) - @MaxNumber(64) - @Desc("Maximum blocks removed vertically from a dry bank column. Zero preserves dry bank heights.") - private int maximumDepth = 8; - - @MinNumber(1) - @MaxNumber(64) - @Desc("Maximum horizontal distance from the channel outline affected by shore and bank excavation.") - private int maximumWidth = 16; - - @MinNumber(0) - @MaxNumber(8192) - @Desc("Maximum dry bank blocks removed per block, measured over sixteen-block reaches. Courses exceeding this budget are rejected.") - private int maximumVolumePerBlock = 256; -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverGeometryConfig.java b/core/src/main/java/art/arcane/iris/engine/object/IrisRiverGeometryConfig.java deleted file mode 100644 index 1f6ed2450..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverGeometryConfig.java +++ /dev/null @@ -1,30 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@Desc("Controls organic river routing and contained cave geometry.") -@Data -public class IrisRiverGeometryConfig { - @Desc("Surface and underground centerline meanders.") - private IrisRiverMeanderConfig meanders = new IrisRiverMeanderConfig(); - - @Desc("Surface river bed shape for waterfall and cascade throats, and the wall shape shared with the erosion compiler; roughness fields default to the channel roughness.") - private IrisSurfaceRiverShapeConfig surface = new IrisSurfaceRiverShapeConfig(); - - @Desc("Three-dimensional bank shelves above the protected riverbed and waterline.") - private IrisRiverBank3DConfig banks3D = new IrisRiverBank3DConfig(); - - @Desc("Underground channel bed and wall shape.") - private IrisRiverChannelShapeConfig underground = new IrisRiverChannelShapeConfig(); - - @Desc("Grotto pool bed and wall shape.") - private IrisRiverChannelShapeConfig grottos = new IrisRiverChannelShapeConfig(); - - @Desc("Underground drop, sinkhole and receiving basin shape.") - private IrisRiverDropShapeConfig drops = new IrisRiverDropShapeConfig(); -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverMaterialConfig.java b/core/src/main/java/art/arcane/iris/engine/object/IrisRiverMaterialConfig.java deleted file mode 100644 index ddea4788d..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverMaterialConfig.java +++ /dev/null @@ -1,25 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@Desc("An optional block palette painted over the top layers of one part of a river instead of the biome's own layers.") -@Data -public class IrisRiverMaterialConfig { - @Desc("Paint this palette. When false the biome layers are used as before.") - private boolean enabled = false; - - @Desc("Blocks to paint. Any solid palette.") - private IrisMaterialPalette palette = new IrisMaterialPalette(); - - @MinNumber(1) - @MaxNumber(8) - @Desc("How many layers down from the surface the palette replaces, in blocks.") - private int depth = 1; -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverMeanderConfig.java b/core/src/main/java/art/arcane/iris/engine/object/IrisRiverMeanderConfig.java deleted file mode 100644 index b5e0465a9..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverMeanderConfig.java +++ /dev/null @@ -1,49 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@Desc("Controls multi-scale terrain-guided river meanders.") -@Data -public class IrisRiverMeanderConfig { - @MinNumber(8) - @MaxNumber(512) - @Desc("Broad meander wavelength in blocks.") - private int primaryWavelength = 64; - - @MinNumber(4) - @MaxNumber(128) - @Desc("Fine worm wavelength in blocks. Smaller values change direction more frequently.") - private int detailWavelength = 12; - - @MinNumber(0) - @MaxNumber(2) - @Desc("Strength of broad meanders.") - private double primaryStrength = 0.34D; - - @MinNumber(0) - @MaxNumber(2) - @Desc("Strength of fine worm movement.") - private double detailStrength = 0.42D; - - @MinNumber(0) - @MaxNumber(1) - @Desc("Maximum lateral route displacement as a fraction of one drainage edge.") - private double maximumOffsetRatio = 0.48D; - - @MinNumber(0) - @MaxNumber(4) - @Desc("Terrain-safe centerline smoothing passes after route solving.") - private int smoothingPasses = 1; - - @MinNumber(10) - @MaxNumber(150) - @Desc("Maximum retained centerline turn angle in degrees.") - private double maximumTurnDegrees = 82D; -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverMouthConfig.java b/core/src/main/java/art/arcane/iris/engine/object/IrisRiverMouthConfig.java deleted file mode 100644 index cde0f8029..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverMouthConfig.java +++ /dev/null @@ -1,49 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@Desc("Controls how a surface river meets the sea.") -@Data -public class IrisRiverMouthConfig { - @MinNumber(1) - @MaxNumber(4) - @Desc("Width multiplier reached at the coastline over the final stretch of the river.") - private double flareRatio = 1.6D; - - @MinNumber(0) - @MaxNumber(32) - @Desc("Maximum number of blocks the recorded mouth footprint may enter the ocean before terminating.") - private int maximumOceanApron = 8; - - @MinNumber(0) - @MaxNumber(256) - @Desc("Blocks of river before the coast held at sea level as a drowned inlet, widened toward flareRatio over that reach. Zero ends the river at the shoreline with no inlet.") - private int inletLength = 64; - - @MinNumber(0) - @MaxNumber(16) - @Desc("Extra bed depth reached at the shoreline over the inlet, so the estuary is deeper than the river above it.") - private int inletDepth = 3; - - @MinNumber(0) - @MaxNumber(128) - @Desc("Deepest cut allowed in the inlet and its approach ramp, replacing channel.maximumIncision there, so the coast may be cut down to sea level through a rise of this height.") - private int maximumIncision = 32; - - @MinNumber(0.05) - @MaxNumber(1) - @Desc("Largest share of the river's exposed course the drowned inlet may occupy, so a short river keeps most of its length above sea level; the inlet is the shorter of inletLength and this share.") - private double inletCourseFraction = 0.5D; - - @MinNumber(0.1) - @MaxNumber(4) - @Desc("Blocks of head gained per station on the approach ramp climbing from the inlet back to the river's natural profile; 1 climbs one block per station, higher values grade the approach faster.") - private double inletRampSlope = 1D; -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverPlacementMode.java b/core/src/main/java/art/arcane/iris/engine/object/IrisRiverPlacementMode.java deleted file mode 100644 index 77b4475d4..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverPlacementMode.java +++ /dev/null @@ -1,17 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("Controls whether river sources may start inside a dimension, region or biome, and how strongly they are drawn there.") -public enum IrisRiverPlacementMode { - @Desc("No river source may start here. Rivers may still pass through when routing allows it.") - DISABLED, - @Desc("Rivers may pass through, but no source starts here.") - TRANSIT_ONLY, - @Desc("Sources start here on their own merits, ranked like everywhere else.") - NATURAL, - @Desc("Eligible source sites here rank ahead of sites elsewhere in the tile.") - PREFERRED_HEADWATER, - @Desc("At least one source starts here whenever a site can reach a legal outlet; sources.minimumPerTile can raise that quota.") - REQUIRED_HEADWATER -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverPolicy.java b/core/src/main/java/art/arcane/iris/engine/object/IrisRiverPolicy.java deleted file mode 100644 index c4ef51753..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverPolicy.java +++ /dev/null @@ -1,176 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; -import art.arcane.iris.engine.object.annotations.RegistryListResource; -import art.arcane.volmlib.util.collection.KList; -import art.arcane.volmlib.util.collection.KSet; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@Desc("Nullable river policy values inherited from dimension to region to biome.") -@Data -public class IrisRiverPolicy { - @MinNumber(0) - @MaxNumber(64) - @Desc("Expected surface headwaters per full tile of eligible policy area. Null inherits the dimension source density.") - private Double surfaceSourceDensity = null; - - @MinNumber(0) - @MaxNumber(8192) - @Desc("Minimum surface headwater separation in blocks. Two areas use the larger separation at their boundary.") - private Integer surfaceSourceSpacing = null; - - @MinNumber(0) - @MaxNumber(4) - @Desc("Extra surface tributaries admitted to one outlet from this policy area.") - private Integer surfaceTributaries = null; - - @MinNumber(0) - @MaxNumber(256) - @Desc("Maximum inland surface outlets per full tile of eligible policy area. Null inherits the dimension outlet limit.") - private Integer surfaceInlandOutlets = null; - - @MinNumber(0) - @MaxNumber(64) - @Desc("Maximum coastal surface outlets per full tile of eligible policy area. Null inherits the dimension coastal outlet limit.") - private Integer surfaceCoastalOutlets = null; - - @MinNumber(16) - @MaxNumber(4096) - @Desc("Minimum surface river course length in blocks for headwaters in this area. Null inherits the dimension routing minimum.") - private Integer surfaceMinimumCourseLength = null; - - @MinNumber(1) - @MaxNumber(32) - @Desc("Maximum surface river incision in blocks in this area, before the incision multiplier. Null inherits the dimension channel limit.") - private Integer surfaceMaximumIncision = null; - - @Desc("Controls source and transit admission in this area.") - private IrisRiverPlacementMode placement = null; - - @Desc("Controls the routing preference or prohibition applied to this area.") - private IrisRiverRoutingMode routing = null; - - @Desc("Whether this area may contain an accepted river outlet.") - private Boolean outletAdmission = null; - - @ArrayType(type = String.class) - @Desc("Permitted dimension-owned profiles along surface routes and preferred profiles for underground rivers. An empty list clears inheritance and resolves to the first configured dimension profile.") - private KList profiles = null; - - @RegistryListResource(IrisBiome.class) - @ArrayType(type = String.class) - @Desc("Surface channel biome selection. An empty list explicitly clears the inherited selection.") - private KList surfaceBiomes = null; - - @RegistryListResource(IrisBiome.class) - @ArrayType(type = String.class) - @Desc("River mouth biome selection. An empty list explicitly clears the inherited selection.") - private KList mouthBiomes = null; - - @RegistryListResource(IrisBiome.class) - @ArrayType(type = String.class) - @Desc("Narrow river shore biome selection. An empty list explicitly clears the inherited selection.") - private KList shoreBiomes = null; - - @RegistryListResource(IrisBiome.class) - @ArrayType(type = String.class) - @Desc("Dry river footprint biome selection. An empty list explicitly clears the inherited selection.") - private KList bankBiomes = null; - - @RegistryListResource(IrisBiome.class) - @ArrayType(type = String.class) - @Desc("Flooded cave and grotto biome selection. An empty list explicitly clears the inherited selection.") - private KList floodedCaveBiomes = null; - - @ArrayType(type = String.class) - @Desc("Standing surface pool ids (hydrology.surfacePools) allowed in this area. An empty list explicitly clears the inherited selection.") - private KList surfacePools = null; - - @MinNumber(0.0001) - @MaxNumber(16) - @Desc("Multiplier applied to accepted river width.") - private Double widthMultiplier = null; - - @MinNumber(0.0001) - @MaxNumber(16) - @Desc("Multiplier applied to accepted river depth.") - private Double depthMultiplier = null; - - @MinNumber(0) - @MaxNumber(16) - @Desc("Multiplier applied to maximum terrain incision.") - private Double incisionMultiplier = null; - - @MinNumber(0) - @MaxNumber(64) - @Desc("Multiplier applied to terrain-guided routing cost.") - private Double routingMultiplier = null; - - @MinNumber(0) - @MaxNumber(4) - @Desc("Multiplier applied to the eroded bank width outside the shore band.") - private Double bankMultiplier = null; - - @MinNumber(0) - @MaxNumber(32) - @Desc("Width in blocks of the shore biome band beside a surface river in this area. Null inherits, and without any value the band is the surface banks shore width. Zero gives the area no shore biome band; the geometric shore and erosion are unchanged.") - private Double shoreBiomeWidth = null; - - @MinNumber(0) - @MaxNumber(16) - @Desc("Width in blocks of the flattened shore bench beside the water in this area, the geometric beach that is cut level with the bank top. Null inherits, and without any value the bench is the surface banks shoreWidth. Zero gives the area no bench, so the eroded valley side begins at the waterline.") - private Double shoreWidth = null; - - @Desc("Whether surface rivers erode the ground beyond the shore bench into a valley in this area. Null inherits, and without any value erosion follows surface.erosion.enabled. False keeps only the wet channel and the shore bench here, so a river crosses the area in a bare cut.") - private Boolean erosion = null; - - @Desc("Rivers that start in this area stay inside it: their whole course and their outlet lie in this region (when set on a region) or this biome (when set on a biome), and a river that flows into the area never leaves it. A source with no reachable outlet inside the area is rejected. Null inherits, false releases the area.") - private Boolean confined = null; - - public SurfaceRiverPolicy surfacePolicy(String areaKey) { - return new SurfaceRiverPolicy(areaKey, surfaceSourceDensity, surfaceSourceSpacing, - surfaceTributaries, surfaceInlandOutlets, surfaceCoastalOutlets, surfaceMinimumCourseLength, surfaceMaximumIncision); - } - - /** - * A declared river biome selection with biomes the version-content gate excluded removed. A declared-but-now-empty - * selection keeps its "explicitly clears the inherited selection" meaning; null (undeclared) stays null. - */ - public KList compatBiomes(KList declared, IrisData data, String field) { - return compatBiomes(declared, data, field, null); - } - - public KList compatBiomes(KList declared, IrisData data, String field, Runnable unresolvedReference) { - if (declared == null) { - return null; - } - - return CompatPools.surviving(data == null ? null : data.getBiomeLoader(), declared, data, - "river policy", "", field, unresolvedReference); - } - - public KSet getAllBiomeIds() { - KSet biomeIds = new KSet<>(); - addAll(biomeIds, surfaceBiomes); - addAll(biomeIds, mouthBiomes); - addAll(biomeIds, shoreBiomes); - addAll(biomeIds, bankBiomes); - addAll(biomeIds, floodedCaveBiomes); - return biomeIds; - } - - private static void addAll(KSet destination, KList source) { - if (source != null) { - destination.addAll(source); - } - } -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverProfile.java b/core/src/main/java/art/arcane/iris/engine/object/IrisRiverProfile.java deleted file mode 100644 index fb50bacc5..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverProfile.java +++ /dev/null @@ -1,21 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.Required; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@Desc("Reusable river fluid profile selected by river policies.") -@Data -public class IrisRiverProfile { - @Required - @Desc("Profile identifier referenced by dimension, region, and biome river policies.") - private String id = "default"; - - @Required - @Desc("Fluid palette used by accepted river footprints using this profile.") - private IrisMaterialPalette fluidPalette = new IrisMaterialPalette().qclear().qadd("water"); -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverRegionalConfig.java b/core/src/main/java/art/arcane/iris/engine/object/IrisRiverRegionalConfig.java deleted file mode 100644 index 384d0dda6..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverRegionalConfig.java +++ /dev/null @@ -1,55 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Data -@NoArgsConstructor -@Accessors(chain = true) -@Desc("Regional drainage trunks shared across generation tiles and lowland channels between two coasts.") -public class IrisRiverRegionalConfig { - @Desc("Plan regional drainage before local rivers.") - private boolean enabled = true; - - @MinNumber(128) - @MaxNumber(1024) - @Desc("Coarse regional terrain sample spacing in blocks; a power of two.") - private int sampleSpacing = 256; - - @MinNumber(256) - @MaxNumber(32768) - @Desc("Minimum length of a regional trunk or coastal channel.") - private int minimumLength = 2048; - - @MinNumber(1) - @MaxNumber(8) - @Desc("Maximum regional trunks accepted in one drainage basin.") - private int maximumTrunks = 2; - - @MinNumber(1) - @MaxNumber(64) - @Desc("Maximum regional basin graphs retained in memory.") - private int maximumCachedBasins = 8; - - @MinNumber(16384) - @MaxNumber(1048576) - @Desc("Maximum complete hydraulic stations retained across cached regional basins.") - private int maximumCachedStations = 131072; - - @Desc("Allow a sea-level lowland channel with an ocean connection at both ends.") - private boolean coastalChannels = true; - - @MinNumber(0) - @MaxNumber(1) - @Desc("Chance that a basin tries a coastal channel before ordinary drainage trunks.") - private double coastalChannelChance = 0.25D; - - @MinNumber(1) - @MaxNumber(32) - @Desc("Maximum terrain incision along a channel between two coasts.") - private int maximumCoastalIncision = 8; -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverRoutingConfig.java b/core/src/main/java/art/arcane/iris/engine/object/IrisRiverRoutingConfig.java deleted file mode 100644 index 8e803c9b5..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverRoutingConfig.java +++ /dev/null @@ -1,91 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.volmlib.util.collection.KList; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@Desc("Controls bounded drainage planning and legal river outlets.") -@Data -public class IrisRiverRoutingConfig { - @MinNumber(256) - @MaxNumber(8192) - @Desc("Hydrology planning tile size in blocks.") - private int tileSize = 2048; - - @MinNumber(8) - @MaxNumber(64) - @Desc("Spacing in blocks between terrain samples used to build the drainage graph.") - private int sampleSpacing = 64; - - @MinNumber(256) - @MaxNumber(32768) - @Desc("Maximum bounded length in blocks of one accepted river route.") - private int maximumRouteLength = 16384; - - @MinNumber(0) - @MaxNumber(32768) - @Desc("Minimum exposed source-to-outlet length in blocks of a published surface river.") - private int minimumSurfaceCourseLength = 384; - - @MinNumber(0) - @MaxNumber(32768) - @Desc("Minimum source-to-outlet length in blocks of a published underground river.") - private int minimumUndergroundCourseLength = 192; - - @MinNumber(1) - @MaxNumber(256) - @Desc("Maximum inland drainage roots (sinkhole grottos) selected per planning tile. Unused when no inland outlet kind is enabled.") - private int maximumOutletsPerTile = 4; - - @MinNumber(0) - @MaxNumber(64) - @Desc("Maximum sea outlets (river mouths and coastal grottos) selected per planning tile, chosen by type in turn: the best mouth, the best coastal grotto, the next mouth, and so on, each at least two sample spacings from the others. Budgeted separately from maximumOutletsPerTile.") - private int maximumCoastalOutletsPerTile = 2; - - @Desc("Allow rivers to terminate at an ocean reservoir.") - private boolean oceanOutlets = true; - - @ArrayType(type = IrisRiverInlandOutlet.class) - @Desc("Contained inland outlet kinds available when no legal ocean outlet is selected.") - private KList inlandOutlets = new KList<>(); - - @MinNumber(0) - @MaxNumber(8) - @Desc("How strongly routes prefer lower ground.") - private double valleyPreference = 1.5D; - - @MinNumber(0) - @MaxNumber(128) - @Desc("Cost per block of rise along a route.") - private double uphillPenalty = 24D; - - @MinNumber(0) - @MaxNumber(16) - @Desc("Cost per unit of terrain slope along a route.") - private double slopePenalty = 2D; - - @MinNumber(0) - @MaxNumber(1) - @Desc("How strongly routes are drawn toward existing drainage.") - private double confluenceAttraction = 0.2D; - - @MinNumber(0) - @MaxNumber(8) - @Desc("How strongly longer source-to-outlet routes are preferred when choosing river sources; 0 ranks by elevation alone.") - private double lengthPreference = 1D; - - @MinNumber(0) - @MaxNumber(4) - @Desc("Extra surface courses an outlet may accept as tributaries joining its main river; 0 keeps one river per outlet.") - private int tributaries = 1; - - @Desc("Regional drainage and channels between coasts, planned above the local tile lattice.") - private IrisRiverRegionalConfig regional = new IrisRiverRegionalConfig(); -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverRoutingMode.java b/core/src/main/java/art/arcane/iris/engine/object/IrisRiverRoutingMode.java deleted file mode 100644 index 566ecf083..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverRoutingMode.java +++ /dev/null @@ -1,15 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("Controls whether river routes may pass through a dimension, region or biome, and at what cost.") -public enum IrisRiverRoutingMode { - @Desc("Rivers never route through here.") - BLOCK, - @Desc("Rivers route through here only when no cheaper path exists; transit carries a strong cost.") - AVOID, - @Desc("Rivers route through here at the normal cost.") - ALLOW, - @Desc("Rivers route through here at a reduced cost, so routes are drawn toward this area.") - PREFER -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisRuin.java b/core/src/main/java/art/arcane/iris/engine/object/IrisRuin.java deleted file mode 100644 index 0f74ddbf4..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisRuin.java +++ /dev/null @@ -1,207 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.engine.object; - -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListBlockType; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; -import art.arcane.iris.engine.object.ruin.RuinGenerator; -import art.arcane.volmlib.util.collection.KList; -import art.arcane.volmlib.util.math.RNG; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Snippet("ruin") -@Accessors(chain = true) -@NoArgsConstructor -@AllArgsConstructor -@Desc("A single procedurally generated ruin: a crumbling man-made structure (pillar, wall, arch, foundation slab, or rubble pile). Iris bakes a pool of deterministic variants from these settings and scatters them at world-gen time, exactly like an object placement but generated from scratch instead of loaded from an iob file. Weathering swaps blocks for mossy or cracked variants by noise, erosion deletes blocks so the shape reads as collapsed, and a buried fraction sinks the ruin into the terrain.") -@Data -public class IrisRuin implements IrisProceduralPlacement { - private final transient AtomicCache> variantCache = new AtomicCache<>(); - - @Desc("A human readable name used in logs and as the variant load key (procedural/#).") - private String name = "ruin"; - - @MinNumber(0) - @MaxNumber(1) - @Desc("The chance (0-1) per chunk for this ruin to attempt placement. Use density to attempt more than one per chunk once the chance check passes.") - private double chance = 0.05; - - @MinNumber(1) - @Desc("If the chance check passes, attempt this many placements in the chunk. Defaults to a single ruin per qualifying chunk.") - private int density = 1; - - @MinNumber(1) - @MaxNumber(64) - @Desc("How many distinct variants to pre-bake for this ruin. Higher means more variety (different heights, gap patterns, erosion seeds) at a small memory cost.") - private int variants = 6; - - @Desc("The base seed for deterministic generation. The same seed and settings always bake the same variants. Every random choice (size, weathering mask, erosion mask, accents) is derived from this.") - private long seed = 1337; - - @Desc("The placement mode used to anchor the ruin to the terrain. MIN_HEIGHT plants the lowest footprint corner on the ground (good for slabs and rubble on slopes); CENTER_HEIGHT averages the footprint (good for tall pillars and arches).") - private ObjectPlaceMode mode = ObjectPlaceMode.MIN_HEIGHT; - - @Desc("Rotate this ruin's placement so variants do not all face the same way.") - private IrisObjectRotation rotation = new IrisObjectRotation(); - - @Desc("Limit the max or min terrain height at which this ruin may place.") - private IrisObjectLimit clamp = new IrisObjectLimit(); - - @Desc("Whether this ruin may place on the terrain surface, under carvings (caves), or both. SURFACE_ONLY keeps ruins above ground.") - private CarvingMode carvingSupport = CarvingMode.SURFACE_ONLY; - - @Desc("If true the ruin anchors on the terrain height ignoring the water surface, so it can sit submerged. If false (default) it anchors to the surface and avoids water.") - private boolean underwater = false; - - @Desc("Translate (offset) this placement along each axis; for example set a negative y to sink it into the ground.") - private IrisObjectTranslate translate = new IrisObjectTranslate(); - - @Desc("Settings for the stilt place modes (STILT, MIN_STILT, FAST_STILT, CENTER_STILT, ERODE_STILT, ORGANIC_STILT).") - private IrisStiltSettings stiltSettings; - - @Desc("Settings for the vacuum place modes (VACUUM, VACUUM_HIGH, VACUUM_FAST, VACUUM_ORGANIC).") - private IrisVacuumSettings vacuumSettings; - - @Required - @Desc("The primary structural block, e.g. minecraft:cobblestone or minecraft:stone_bricks. Ignored when blockPalette is set. This is the bulk material of the ruin before weathering swaps some of it out.") - @RegistryListBlockType - private String block = "minecraft:cobblestone"; - - @Desc("A noise-driven palette for the primary block. When set this overrides the single block, letting the structure mix materials by noise. Palette wins over the block string via IrisProceduralBlocks.resolve.") - private IrisMaterialPalette blockPalette = null; - - @Desc("The overall silhouette of the ruin: PILLAR (broken column), WALL (gapped segment), ARCH (two legs plus a curved span), FLOOR_SLAB (foundation patch), or RUBBLE (low scattered pile).") - private IrisRuinForm form = IrisRuinForm.PILLAR; - - @MinNumber(1) - @Desc("Minimum structure height in blocks (PILLAR/WALL/ARCH height, slab thickness for FLOOR_SLAB, mound height for RUBBLE). Variants interpolate between this and heightMax.") - private int heightMin = 4; - - @MinNumber(1) - @Desc("Maximum structure height in blocks. Variants interpolate between heightMin and this so taller and shorter ruins coexist.") - private int heightMax = 9; - - @MinNumber(1) - @Desc("Minimum footprint width (X axis) in blocks: column/leg thickness for PILLAR/ARCH, wall thickness for WALL, slab width for FLOOR_SLAB, blob width for RUBBLE.") - private int widthMin = 1; - - @MinNumber(1) - @Desc("Maximum footprint width (X axis) in blocks. Variants interpolate between widthMin and this.") - private int widthMax = 3; - - @MinNumber(1) - @Desc("Minimum footprint length (Z axis) in blocks: wall run length, arch leg spacing, slab length, rubble blob length.") - private int lengthMin = 3; - - @MinNumber(1) - @Desc("Maximum footprint length (Z axis) in blocks. Variants interpolate between lengthMin and this.") - private int lengthMax = 7; - - @Desc("A palette of weathered variants (mossy/cracked block ids) blended over the structure by noise. When set this drives weathering; otherwise weatheredBlock is used.") - private IrisMaterialPalette weatheringPalette = null; - - @Desc("A single weathered block id used when weatheringPalette is not set, e.g. minecraft:mossy_cobblestone. Applied to a noise-selected fraction of the structure, biased toward the lower rows.") - @RegistryListBlockType - private String weatheredBlock = "minecraft:mossy_cobblestone"; - - @MinNumber(0) - @MaxNumber(1) - @Desc("How much of the structure is replaced by weathered blocks (0 none, 1 nearly all). The replacement mask is value-noise driven and weighted so lower rows weather more than upper rows, mimicking moss climbing from the ground.") - private double mossiness = 0.45; - - @MinNumber(0) - @MaxNumber(8) - @Desc("The scale of the weathering noise. Higher values produce smaller, busier moss/crack patches; lower values produce broad continuous weathered zones.") - private double weatheringScale = 1.0; - - @MinNumber(0) - @MaxNumber(1) - @Desc("How crumbled the ruin is (0 intact, 1 mostly gone). Blocks whose value-noise falls below this threshold are deleted, so the shape reads as collapsed. Structural integrity is preserved: the bottom row and core legs are never eroded away.") - private double erosion = 0.25; - - @MinNumber(0) - @MaxNumber(8) - @Desc("The scale of the erosion noise. Higher values knock out small speckled holes; lower values carve larger missing chunks out of the silhouette.") - private double erosionScale = 1.5; - - @MinNumber(0) - @MaxNumber(1) - @Desc("How far the structure extends below the surface as a fraction of its height (0 sits fully on top, 1 sinks it a full height into the ground). The buried rows live at negative y so the ruin reads as settled and partly swallowed by the terrain.") - private double buriedFraction = 0.2; - - @ArrayType(min = 1, type = IrisRuinDecorator.class) - @Desc("Accent decorators applied after the ruin is built and eroded (moss carpets and lanterns on broken tops, vines and lichen on the faces, rubble and growth scattered around the base).") - private KList accents = new KList<>(); - - public KList getVariantObjects(IrisData data) { - return variantCache.aquire(() -> { - KList baked = new KList<>(); - int count = Math.max(1, variants); - - for (int i = 0; i < count; i++) { - IrisObject object = RuinGenerator.generate(this, i, new RNG(seed + (i * 7919L)), data); - if (object == null || object.getBlocks().isEmpty()) { - continue; - } - object.setLoadKey("procedural/" + name + "#" + i); - object.setLoader(data); - baked.add(object); - } - - return baked; - }); - } - - public IrisObject getVariantObject(IrisData data, RNG rng) { - KList baked = getVariantObjects(data); - if (baked == null || baked.isEmpty()) { - return null; - } - return baked.get(rng.i(baked.size())); - } - - public IrisObjectPlacement asPlacement() { - IrisObjectPlacement placement = new IrisObjectPlacement(); - placement.setMode(mode); - placement.setRotation(rotation); - placement.setClamp(clamp); - placement.setCarvingSupport(carvingSupport); - placement.setUnderwater(underwater); - placement.setTranslate(translate); - placement.setStiltSettings(stiltSettings); - placement.setVacuumSettings(vacuumSettings); - placement.setChance(chance); - placement.setDensity(density); - return placement; - } - - public boolean isPlausible() { - return false; - } -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisRuinDecorator.java b/core/src/main/java/art/arcane/iris/engine/object/IrisRuinDecorator.java deleted file mode 100644 index 959bb559e..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisRuinDecorator.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListBlockType; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Snippet("ruin-decorator") -@Accessors(chain = true) -@NoArgsConstructor -@AllArgsConstructor -@Desc("An accent block applied to a generated ruin after it is built and eroded, such as moss carpets on broken tops, vines on the faces, or rubble scattered around the base.") -@Data -public class IrisRuinDecorator { - @Desc("Where on the ruin this accent is placed. TOP sits on the highest block of each column, SURFACE clings to air-facing vertical faces, BASE_SCATTER rings the ground footprint around the base.") - private IrisRuinDecoratorTarget target = IrisRuinDecoratorTarget.TOP; - - @Required - @Desc("The block id to place, e.g. minecraft:moss_carpet or minecraft:vine. Ignored when palette is set.") - @RegistryListBlockType - private String block = ""; - - @Desc("A noise-driven palette for this decorator. When set this overrides the single block, letting the accent mix blocks by noise. Resolved through IrisProceduralBlocks.resolve so the palette wins over the string.") - private IrisMaterialPalette palette = null; - - @MinNumber(0) - @MaxNumber(1) - @Desc("The chance (0-1) per candidate position for this decorator to actually place. 1 covers every candidate, lower values leave sparse, patchy accents.") - private double chance = 0.4; - - @MinNumber(1) - @Desc("For the BASE_SCATTER target, how many blocks beyond the ruin footprint the scatter ring extends outward in each direction. Higher values fling rubble and growth further from the structure.") - private int scatterRadius = 2; -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisRuinForm.java b/core/src/main/java/art/arcane/iris/engine/object/IrisRuinForm.java deleted file mode 100644 index 313ece19a..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisRuinForm.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("The overall silhouette of a procedural ruin. Each form rasterizes a different crumbling man-made shape from the same size, weathering, and erosion settings.") -public enum IrisRuinForm { - @Desc("A broken vertical column. A square trunk (widthMin..widthMax footprint) rises to a randomized height then snaps off with a jagged crown, leaving a toppled stub. Use for ancient pillars and obelisk stumps.") - PILLAR, - @Desc("A standing wall segment. A flat slab spanning lengthMin..lengthMax long and heightMin..heightMax tall, thickness widthMin..widthMax, punched through with noise-driven gaps and a ragged top edge. Use for collapsed building sides and fortifications.") - WALL, - @Desc("A freestanding arch. Two legs spaced by lengthMin..lengthMax joined at the top by a rasterized semicircular span (the lintel), so the structure literally arches. Use for gateways, aqueduct bays, and ruined doorways.") - ARCH, - @Desc("A flat foundation patch. A single (or few) block-thick slab covering a widthMin..lengthMax footprint at ground level, heavily eroded into an irregular outline. Use for floor remnants, plazas, and building foundations.") - FLOOR_SLAB, - @Desc("A low scattered debris pile. A noise blob of partial blocks mounded near the ground, tallest at the center and thinning toward the edges. Use for collapsed-structure rubble and scree.") - RUBBLE -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisSeaCaveConfig.java b/core/src/main/java/art/arcane/iris/engine/object/IrisSeaCaveConfig.java deleted file mode 100644 index b4927b3ef..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisSeaCaveConfig.java +++ /dev/null @@ -1,42 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@Desc("Sea caves: coastal grottos that open from the ocean into the coast without a river. The chamber size, headroom and volume cap are the coastal grotto's.") -@Data -public class IrisSeaCaveConfig { - @Desc("Plan sea caves along the coast. Requires the coastal grotto to be enabled.") - private boolean enabled = true; - - @MinNumber(0) - @MaxNumber(64) - @Desc("Sea caves accepted per planning tile; the steepest owned coast is taken first.") - private int maximumPerTile = 3; - - @MinNumber(16) - @MaxNumber(8192) - @Desc("Least distance in blocks between two sea caves. Must be at least twice the coastal grotto horizontalRadius.") - private int minimumSpacing = 160; - - @MinNumber(1) - @MaxNumber(128) - @Desc("The coast must stand this many blocks above the sea both at the shoreline and at the back of the chamber.") - private int minimumCoastHeight = 8; - - @MinNumber(0) - @MaxNumber(128) - @Desc("How far inland from the shoreline the chamber is swept. 0 leaves a single chamber at the shore.") - private int depth = 12; - - @MinNumber(0) - @MaxNumber(90) - @Desc("Largest angle in degrees the inland sweep may turn away from straight inland, chosen per cave; 0 sweeps every sea cave straight in from the shore.") - private double sweepJitterDegrees = 25D; -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisStiltSettings.java b/core/src/main/java/art/arcane/iris/engine/object/IrisStiltSettings.java deleted file mode 100644 index 518cbe945..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisStiltSettings.java +++ /dev/null @@ -1,46 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Snippet; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Snippet("stilt-settings") -@Accessors(chain = true) -@NoArgsConstructor -@AllArgsConstructor -@Desc("Defines stilting behaviour.") -@Data -public class IrisStiltSettings { - @MinNumber(0) - @MaxNumber(64) - @Desc("Defines the maximum amount of blocks the object stilts verticially before overstilting and randomRange.") - private int yMax; - @MinNumber(0) - @MaxNumber(64) - @Desc("Defines the upper boundary for additional blocks after overstilting and/or maxStiltRange.") - private int yRand; - @MaxNumber(64) - @MinNumber(0) - @Desc("If the place mode is set to stilt, you can over-stilt it even further into the ground. Especially useful when using fast stilt due to inaccuracies.") - private int overStilt; - @Desc("If defined, stilting will be done using this block palette rather than the last layer of the object.") - private IrisMaterialPalette palette; - @MinNumber(1) - @MaxNumber(256) - @Desc("For ORGANIC_STILT / CEILING_HANG: the maximum number of blocks to scan toward the cave floor (or ceiling) looking for solid ground before giving up.") - private int organicMaxScan = 48; - @MinNumber(0) - @MaxNumber(32) - @Desc("For ORGANIC_STILT / CEILING_HANG: the maximum number of blocks each column's stilt is randomly shortened by, giving the underside a ragged organic edge instead of a flat disc.") - private int organicJitter = 3; - @MinNumber(0) - @MaxNumber(1) - @Desc("For ORGANIC_STILT / CEILING_HANG: in the deepest fraction of each stilt column, blocks are randomly skipped to break the tip up. Higher = more broken and scratchy. 0 disables.") - private double organicScratch = 0.55; - -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisStructureAnchorMode.java b/core/src/main/java/art/arcane/iris/engine/object/IrisStructureAnchorMode.java deleted file mode 100644 index 3956b5b34..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisStructureAnchorMode.java +++ /dev/null @@ -1,34 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("Selects the vertical environment used to anchor an Iris structure placement.") -public enum IrisStructureAnchorMode { - @Desc("Preserve the historical underground boolean behavior.") - LEGACY, - - @Desc("Anchor to the terrain surface and use minHeight/maxHeight as a surface gate.") - SURFACE, - - @Desc("Choose a deterministic Y inside the minHeight/maxHeight band.") - HEIGHT_BAND, - - @Desc("Anchor in carved space with solid support below.") - CAVE_FLOOR, - - @Desc("Anchor in carved space with solid support above.") - CAVE_CEILING, - - @Desc("Anchor in carved space without nearby floor or ceiling support.") - CAVE_CENTER, - - @Desc("Anchor at any carved-space position.") - CAVE_ANY; - - public boolean isCave() { - return switch (this) { - case CAVE_FLOOR, CAVE_CEILING, CAVE_CENTER, CAVE_ANY -> true; - default -> false; - }; - } -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisStructurePlacement.java b/core/src/main/java/art/arcane/iris/engine/object/IrisStructurePlacement.java deleted file mode 100644 index 5afb331d1..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisStructurePlacement.java +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.engine.object; - -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListResource; -import art.arcane.iris.engine.object.annotations.RegistryListStructure; -import art.arcane.volmlib.util.collection.KList; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@AllArgsConstructor -@Desc("Attaches structures to a biome, region or dimension and controls where and how often they generate. This is independent of a structure's own native generation, so you can add custom placements in tandem with native generation or instead of it.") -@Data -public class IrisStructurePlacement { - @ArrayType(type = String.class, min = 1) - @RegistryListStructure - @Desc("Editable Iris assembly resources offered by this placement. Leave empty when nativeStructures supplies the source.") - private KList structures = new KList<>(); - - @ArrayType(type = IrisNativeStructure.class, min = 1) - @Desc("Live registered vanilla, datapack, and modded structures offered by this placement. Minecraft runs their native generator directly, independent of normal biome or dimension eligibility.") - private KList nativeStructures = new KList<>(); - - @Desc("Stable authored identity for this placement. Set this when multiple placements use the same structure and settings. When empty, Iris derives identity from the placement content so list reordering does not move generated structures.") - private String placementId = ""; - - @Desc("Controls native replacement for this placement. REPLACE_SOURCE suppresses each selected Iris structure's vanillaSource or registered native source, and is honored only for dimension-level placements. NONE leaves native generation untouched.") - private NativeStructureSuppression nativeSuppression = NativeStructureSuppression.NONE; - - @Desc("How start positions are scattered.") - private StructureDistribution distribution = StructureDistribution.RANDOM_SPREAD; - - @MinNumber(1) - @MaxNumber(4096) - @Desc("RANDOM_SPREAD only: the grid cell size in chunks. One placement attempt per cell. Larger = rarer.") - private int spacing = 32; - - @MinNumber(0) - @Desc("RANDOM_SPREAD only: the minimum chunk separation between placements within the grid. Must be smaller than spacing.") - private int separation = 8; - - @Desc("RANDOM_SPREAD only: a salt mixed into the placement RNG so different structures using the same spacing do not stack.") - private int salt = 165745296; - - @MinNumber(0) - @MaxNumber(1) - @Desc("DENSITY only: the per-chunk probability (0-1) of a placement starting in a chunk.") - private double density = 0.02; - - @MinNumber(1) - @Desc("CONCENTRIC_RINGS only: the number of placements distributed across the rings.") - private int ringCount = 128; - - @MinNumber(1) - @Desc("CONCENTRIC_RINGS only: the ring spacing in chunks.") - private int ringDistance = 32; - - @MinNumber(1) - @Desc("CONCENTRIC_RINGS only: how many placements share each ring before moving outward.") - private int ringSpread = 3; - - @Desc("Minimum world Y. SURFACE uses it as a terrain-height gate; HEIGHT_BAND and cave anchors use it as the lower candidate bound. LEGACY follows underground.") - private int minHeight = -2032; - - @Desc("Maximum world Y. SURFACE uses it as a terrain-height gate; HEIGHT_BAND and cave anchors use it as the upper candidate bound. LEGACY follows underground.") - private int maxHeight = 2032; - - @Desc("LEGACY anchor only: if true, choose a deterministic world Y inside [minHeight, maxHeight]; otherwise gate the terrain surface. Explicit anchor modes override this field.") - private boolean underground = false; - - @Desc("Vertical anchor policy. LEGACY preserves the underground boolean. Cave modes search existing carved-space data and implicitly behave as underground placements.") - private IrisStructureAnchorMode anchor = IrisStructureAnchorMode.LEGACY; - - @RegistryListResource(IrisBiome.class) - @ArrayType(type = String.class, min = 1) - @Desc("Optional cave-biome allowlist for cave anchor modes. Empty accepts the cave biome resolved at the selected anchor. Entries match by load key, including prefix matches.") - private KList caveBiomes = new KList<>(); - - @MinNumber(1) - @MaxNumber(64) - @Desc("Cave anchor modes only: deterministic X/Z columns tested inside the start chunk before the placement is skipped.") - private int caveAnchorAttempts = 8; - - @MinNumber(1) - @MaxNumber(16) - @Desc("Cave anchor modes only: vertical scan step in blocks. One is exact; larger values trade precision for speed.") - private int caveAnchorScanStep = 1; - - @MinNumber(1) - @MaxNumber(64) - @Desc("Cave anchor modes only: minimum contiguous carved-space height required at the selected anchor.") - private int caveMinimumClearance = 3; - - @Desc("Terrain integration for this placement. The editable structures backend supports SOURCE, PRESERVE, BORE, and FORCE_CARVE. The nativeStructures backend supports every terrain mode.") - private IrisStructureTerrain terrain = new IrisStructureTerrain(); - - @Desc("Optional foundation columns placed beneath the assembled structure's occupied bottom cells. Columns pass through air and fluids until they reach solid ground, up to maxDepth.") - private IrisStructureStiltSettings stilt = null; - - @Desc("If false, the placement is skipped when its selected surface or cave column is submerged.") - private boolean underwater = false; - - public IrisStructureTerrain resolvedTerrain() { - return terrain == null ? new IrisStructureTerrain() : terrain; - } - - public boolean hasIrisStructures() { - return structures != null && !structures.isEmpty(); - } - - public boolean hasNativeStructures() { - return nativeStructures != null && !nativeStructures.isEmpty(); - } - - public IrisStructureAnchorMode resolvedAnchor() { - if (anchor == null || anchor == IrisStructureAnchorMode.LEGACY) { - return underground ? IrisStructureAnchorMode.HEIGHT_BAND : IrisStructureAnchorMode.SURFACE; - } - return anchor; - } - - public boolean isAnchoredUnderground() { - IrisStructureAnchorMode activeAnchor = resolvedAnchor(); - return activeAnchor == IrisStructureAnchorMode.HEIGHT_BAND || activeAnchor.isCave(); - } - - /** - * Reports cave biome references the version-content gate excluded. The list is deliberately not filtered: it is an - * allowlist whose emptiness means "any cave biome", and it feeds the placement determinism signature. An excluded - * biome never generates, so the entry is inert - this only makes it visible in the pack compat report. - */ - void reportExcludedCaveBiomes(IrisData data, String subjectType, String subjectKey, String field) { - if (data == null || data.getBiomeLoader() == null || caveBiomes == null) { - return; - } - - for (int index = 0; index < caveBiomes.size(); index++) { - String key = caveBiomes.get(index); - IrisBiome biome = data.getBiomeLoader().load(key); - - if (biome != null && biome.isCompatExcluded()) { - CompatPools.drop(data, biome, subjectType, subjectKey, field + "[" + index + "] " + key, null); - } - } - } -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisStructureStiltSettings.java b/core/src/main/java/art/arcane/iris/engine/object/IrisStructureStiltSettings.java deleted file mode 100644 index bc0676b13..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisStructureStiltSettings.java +++ /dev/null @@ -1,32 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@AllArgsConstructor -@Desc("Defines foundation columns placed beneath a structure.") -@Data -public class IrisStructureStiltSettings { - @MinNumber(1) - @MaxNumber(4064) - @Desc("Maximum number of blocks each foundation column may descend while searching for solid ground.") - private int maxDepth = 64; - - @Desc("Block palette used for foundation columns.") - private IrisMaterialPalette palette = new IrisMaterialPalette().qclear().qadd("minecraft:cobblestone"); - - @MinNumber(1) - @MaxNumber(64) - @Desc("Horizontal spacing between support columns. One fills every eligible foundation column; larger values create sparse stilts.") - private int spacing = 1; - - @Desc("For Iris-authored structures, whether solid partial blocks such as slabs, stairs, and walls may seed foundation columns instead of requiring a fully occluding base block.") - private boolean supportNonOccluding = false; -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisStructureTerrainMode.java b/core/src/main/java/art/arcane/iris/engine/object/IrisStructureTerrainMode.java deleted file mode 100644 index 38ed17e59..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisStructureTerrainMode.java +++ /dev/null @@ -1,27 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("Controls how terrain is integrated with a structure.") -public enum IrisStructureTerrainMode { - @Desc("Replays the registered native structure's own authored terrain adaptation (beard surface fitting, BURY/ENCAPSULATE fill, legacy template-air clearing). Does nothing for editable Iris structures, which have no source adaptation to replay.") - SOURCE, - - @Desc("Disables all terrain integration. Pieces are placed into completely unmodified terrain and may end up embedded in solid rock or floating over dips.") - PRESERVE, - - @Desc("Clears one straight axis-aligned box around the assembled pieces, expanded by horizontalPadding, ceilingPadding, and floorPadding. Ignores the carve shape and erosion settings.") - BORE, - - @Desc("Clears the padded envelope using the configured carve shape (BOX, ROUNDED, or noise-eroded ERODED) so the cavity hugs the assembled pieces instead of a straight box.") - FORCE_CARVE, - - @Desc("Raises surface terrain from processed solid rigid-template foundations at or below each authored ground plane with a 12-block falloff, even when the registered structure has no terrain adaptation. Existing higher terrain and authored air remain untouched.") - VACUUM, - - @Desc("Cuts and fills exposed native structure foundations within flattenRange, blending into surrounding terrain across horizontalPadding blocks. Buried and submerged pieces retain their terrain.") - FLATTEN, - - @Desc("Fills the padded piece volume with solid blocks before any piece is placed so shells, walls, and floors land in solid ground instead of pre-carved air. Only air and liquid cells are filled; existing terrain and structures are never overwritten. Native pieces then carve their own interiors.") - ENCASE -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisSurfacePoolConfig.java b/core/src/main/java/art/arcane/iris/engine/object/IrisSurfacePoolConfig.java deleted file mode 100644 index 569e08548..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisSurfacePoolConfig.java +++ /dev/null @@ -1,54 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListResource; -import art.arcane.iris.engine.object.annotations.Required; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@Desc("A standing surface pool: a bowl cut into open ground and filled with a fluid, placed where the river policy allows it.") -@Data -public class IrisSurfacePoolConfig { - @Required - @Desc("Pool identifier. Policies list it under surfacePools and locators accept it as a selector.") - private String id = "lava_pool"; - - @Required - @Desc("Fluid palette filling the pool.") - private IrisMaterialPalette fluidPalette = new IrisMaterialPalette().qclear().qadd("lava"); - - @MinNumber(0) - @MaxNumber(64) - @Desc("Expected pools per hydrology tile where the policy allows them.") - private double density = 0.75D; - - @MinNumber(32) - @MaxNumber(8192) - @Desc("Nominal spacing in blocks between candidate pool sites.") - private int spacing = 384; - - @MinNumber(2) - @MaxNumber(16) - @Desc("Smallest pool radius in blocks.") - private int minimumRadius = 4; - - @MinNumber(2) - @MaxNumber(16) - @Desc("Largest pool radius in blocks.") - private int maximumRadius = 7; - - @MinNumber(1) - @MaxNumber(8) - @Desc("Fluid depth at the centre of the pool.") - private int depth = 2; - - @RegistryListResource(IrisBiome.class) - @Desc("Biome applied to the pool bed and its rim. Leave empty to keep the surrounding biome.") - private String biome = ""; -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverBankConfig.java b/core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverBankConfig.java deleted file mode 100644 index ecf26ff50..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverBankConfig.java +++ /dev/null @@ -1,56 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@Desc("Controls the shore band and the eroded valley around a surface river.") -@Data -public class IrisSurfaceRiverBankConfig { - @MinNumber(0) - @MaxNumber(16) - @Desc("Width in blocks of the flattened shore bench beside the water, the geometric beach cut level with the bank top, and the default width of the shore biome band. 0 removes the bench so the eroded valley side begins at the waterline; riverPolicy.shoreWidth overrides it per area.") - private double shoreWidth = 1.5D; - - @MinNumber(0.5) - @MaxNumber(12) - @Desc("Horizontal run in blocks of eroded bank per block of cut depth.") - private double blendSlope = 3D; - - @MinNumber(1) - @MaxNumber(64) - @Desc("Narrowest eroded band outside the shore, in blocks.") - private int minimumBlendWidth = 4; - - @MinNumber(1) - @MaxNumber(64) - @Desc("Widest eroded band outside the shore, in blocks.") - private int maximumBlendWidth = 32; - - @Desc("Limits dry bank cut depth, width, and excavated volume independently of the wet channel.") - private IrisRiverExcavationConfig excavation = new IrisRiverExcavationConfig(); - - @Desc("Show the biome's deeper layers on eroded banks instead of the surface layer.") - private boolean exposeCutStrata = true; - - @MinNumber(0) - @MaxNumber(4) - @Desc("Blocks the shore bench rises from the waterline to its landward edge, so the beach climbs instead of lying level; 0 keeps a flat bench. The eroded valley side starts from the raised edge.") - private double shoreRise = 0D; - - @MinNumber(0) - @MaxNumber(32) - @Desc("Blocks added to every eroded valley width before the blend width limits apply, so even a shallow cut erodes at least this far beyond the shore; 0 leaves the width proportional to the cut alone.") - private double blendBaseWidth = 0D; - - @Desc("Optional palette painted over the shore bench columns instead of the biome's own layers. Disabled by default, which keeps the shore biome's layers.") - private IrisRiverMaterialConfig shoreMaterial = new IrisRiverMaterialConfig(); - - @Desc("Optional palette painted over the eroded bank columns outside the shore bench instead of the biome's own layers. Disabled by default, which keeps the bank biome's layers.") - private IrisRiverMaterialConfig bankMaterial = new IrisRiverMaterialConfig(); -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverBedConfig.java b/core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverBedConfig.java deleted file mode 100644 index 9c2ca88a2..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverBedConfig.java +++ /dev/null @@ -1,28 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@Desc("Controls the material under and beside surface river water.") -@Data -public class IrisSurfaceRiverBedConfig { - @Desc("Allow sand, gravel and other falling blocks in the bed, shore and eroded banks. When false they are replaced by the padding palette.") - private boolean allowGravityBlocks = false; - - @MinNumber(0) - @MaxNumber(8) - @Desc("Blocks below the bed that are also kept free of falling blocks, so nothing under the water can collapse.") - private int padding = 2; - - @Desc("Blocks used in place of falling blocks in the bed, padding, shore and banks.") - private IrisMaterialPalette paddingPalette = new IrisMaterialPalette().qclear().qadd("clay").qadd("dirt"); - - @Desc("Optional palette painted over the wet channel bed under the water instead of the biome's own layers. Disabled by default, which keeps the surface biome's layers.") - private IrisRiverMaterialConfig material = new IrisRiverMaterialConfig(); -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverChannelConfig.java b/core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverChannelConfig.java deleted file mode 100644 index b01429f65..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverChannelConfig.java +++ /dev/null @@ -1,75 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@Desc("Controls the wet channel of a surface river.") -@Data -public class IrisSurfaceRiverChannelConfig { - @Desc("Wet channel width in blocks.") - private IrisStyledRange width = range(4D, 8D, 1024D); - - @Desc("Wet bed depth in blocks at the channel center.") - private IrisStyledRange depth = range(2D, 4D, 768D); - - @MinNumber(0) - @MaxNumber(3) - @Desc("Blocks the water surface sinks below the lowest natural ground beside the channel; 0 keeps the water flush with the bank, and the bank always meets the water at its own height.") - private int sink = 0; - - @MinNumber(1) - @MaxNumber(32) - @Desc("Maximum cut below natural terrain at the channel center before a course is rejected.") - private int maximumIncision = 10; - - @MinNumber(0) - @MaxNumber(1) - @Desc("Coherent variation of the wet outline and bed as a fraction of the channel size.") - private double roughness = 0.25D; - - @MinNumber(4) - @MaxNumber(64) - @Desc("Wavelength in blocks of the outline and bed variation.") - private int roughnessWavelength = 16; - - @MinNumber(1) - @MaxNumber(4) - @Desc("Width of the spring pool at the headwater relative to the channel width; 1 starts the river at its normal width.") - private double springWidthRatio = 2.5D; - - @MinNumber(4) - @MaxNumber(96) - @Desc("Blocks over which the spring pool narrows back to the channel width.") - private int springLength = 24; - - @MinNumber(0) - @MaxNumber(64) - @Desc("Stations along the course the sampled width and depth are averaged over, so the channel changes size gradually; 0 follows the sampled values exactly at every station.") - private int smoothingRadius = 16; - - @MinNumber(0.2) - @MaxNumber(1) - @Desc("Narrowest the roughened waterline may pinch, as a fraction of the channel half-width; 1 stops the outline from ever narrowing below the nominal width.") - private double outlineMinimumRatio = 0.6D; - - @MinNumber(1) - @MaxNumber(3) - @Desc("Widest the roughened waterline may bulge, as a fraction of the channel half-width; 1 stops the outline from ever widening beyond the nominal width.") - private double outlineMaximumRatio = 1.4D; - - @MinNumber(0) - @MaxNumber(8) - @Desc("Extra bed depth in blocks at the headwater spring, fading to nothing over springLength; 0 keeps the spring pool as deep as the channel.") - private double springExtraDepth = 1D; - - private static IrisStyledRange range(double min, double max, double zoom) { - IrisGeneratorStyle style = new IrisGeneratorStyle(NoiseStyle.IRIS).zoomed(zoom); - return new IrisStyledRange(min, max, style); - } -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverErosionConfig.java b/core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverErosionConfig.java deleted file mode 100644 index 52cf79f5f..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverErosionConfig.java +++ /dev/null @@ -1,53 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@Desc("Controls how the ground around a surface river is eroded into a valley. The valley's reach comes from banks.blendSlope and the blend widths; this section shapes it.") -@Data -public class IrisSurfaceRiverErosionConfig { - @Desc("Erode the ground beyond the shore band into a valley; false keeps only the wet channel, the shore band and the lip that holds the water.") - private boolean enabled = true; - - @MinNumber(0) - @MaxNumber(64) - @Desc("Stations along the course the valley width is averaged over, so it widens and narrows gradually; 0 follows the local cut exactly.") - private int smoothingRadius = 12; - - @MinNumber(0) - @MaxNumber(0.95) - @Desc("Share of the distance from the thalweg to each waterline that stays at full bed depth before the bed rises to the edge; higher is a flatter, broader bed.") - private double thalwegFraction = 0.45D; - - @MinNumber(0.25) - @MaxNumber(4) - @Desc("Exponent on the blend from the bank top out to natural terrain; below 1 hollows the valley sides, above 1 keeps them steep near the shore.") - private double blendCurve = 1D; - - @MinNumber(0) - @MaxNumber(2) - @Desc("Share of the channel roughness applied to the bed as depth variation; 0 leaves a smooth bed.") - private double bedNoise = 0.5D; - - @Desc("Shape of the valley side between the shore bench and natural terrain. SMOOTH is the eased curve used before this field existed.") - private IrisRiverBlendStyle style = IrisRiverBlendStyle.SMOOTH; - - @MinNumber(2) - @MaxNumber(16) - @Desc("Number of level steps the valley side is cut into when style is TERRACED; ignored by every other style.") - private int terraceSteps = 4; - - @MinNumber(0) - @MaxNumber(1) - @Desc("Share of the eroded band kept level at the bank top before the vertical wall when style is CLIFF; ignored by every other style.") - private double cliffFraction = 0.5D; - - @Desc("Cross-section of the wet channel bed from the thalweg out to the waterline. Curves shift the thalweg toward the outside bank within the existing depth limit.") - private IrisRiverBedProfile bedProfile = IrisRiverBedProfile.BOWL; -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverFlowConfig.java b/core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverFlowConfig.java deleted file mode 100644 index 40ecb3328..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverFlowConfig.java +++ /dev/null @@ -1,44 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@Desc("Controls how a surface river descends.") -@Data -public class IrisSurfaceRiverFlowConfig { - @MinNumber(1) - @MaxNumber(8) - @Desc("Shortest level run in blocks between one-block steps before consecutive steps are labelled a cascade.") - private int cascadeRun = 2; - - @MinNumber(2) - @MaxNumber(32) - @Desc("Smallest natural cliff in blocks that becomes a waterfall instead of a cascade.") - private int waterfallMinimumDrop = 6; - - @MinNumber(0) - @MaxNumber(0.95) - @Desc("Share of the half-width that stays at full bed depth in the carved throat of a waterfall or cascade before the bed rises to the edge; higher is a flatter, broader throat.") - private double waterfallThalwegFraction = 0.65D; - - @MinNumber(1) - @MaxNumber(8) - @Desc("Smallest drop in blocks that scours a plunge basin into the bed below it; drops shorter than this leave the bed untouched.") - private int plungeBasinMinimumDrop = 2; - - @MinNumber(0) - @MaxNumber(8) - @Desc("Length of the plunge basin downstream of a drop as a multiple of the channel half-width, never shorter than two stations; 0 gives the shortest basin.") - private double plungeBasinLengthRatio = 2D; - - @MinNumber(0) - @MaxNumber(8) - @Desc("Extra bed depth in blocks scoured inside a plunge basin; 0 marks the basin without deepening it.") - private int plungeBasinDepth = 1; -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverPondConfig.java b/core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverPondConfig.java deleted file mode 100644 index 0ac73c0f8..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverPondConfig.java +++ /dev/null @@ -1,38 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@Desc("A round pond at one end of a surface river, holding the river's water level there.") -@Data -public class IrisSurfaceRiverPondConfig { - @Desc("Dig the pond.") - private boolean enabled = true; - - @MinNumber(1) - @MaxNumber(32) - @Desc("Smallest pond radius in blocks; the radius is chosen per river between the minimum and the maximum, and shrinks where the ground falls away around the rim.") - private int minimumRadius = 6; - - @MinNumber(1) - @MaxNumber(32) - @Desc("Largest pond radius in blocks.") - private int maximumRadius = 12; - - @MinNumber(1) - @MaxNumber(8) - @Desc("Depth of the pond bowl below the water surface at its center.") - private int depth = 3; - - public IrisSurfaceRiverPondConfig(int minimumRadius, int maximumRadius, int depth) { - this.minimumRadius = minimumRadius; - this.maximumRadius = maximumRadius; - this.depth = depth; - } -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverPondsConfig.java b/core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverPondsConfig.java deleted file mode 100644 index 26678ae0f..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverPondsConfig.java +++ /dev/null @@ -1,18 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@Desc("Ponds at the two ends of a surface river: the spring it rises from and, for a river that ends inland, the pool it drains into.") -@Data -public class IrisSurfaceRiverPondsConfig { - @Desc("The spring pond every surface river rises from.") - private IrisSurfaceRiverPondConfig source = new IrisSurfaceRiverPondConfig(6, 12, 3); - - @Desc("The pond a river that ends inland drains into; rivers that reach the ocean get none.") - private IrisSurfaceRiverPondConfig terminal = new IrisSurfaceRiverPondConfig(4, 7, 3); -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverShapeConfig.java b/core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverShapeConfig.java deleted file mode 100644 index f66e443b3..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverShapeConfig.java +++ /dev/null @@ -1,74 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@Desc("Controls the bed shape of surface river waterfall and cascade throats and the wall shape shared with the erosion compiler. The roughness fields fall back to the surface channel roughness when left null.") -@Data -public class IrisSurfaceRiverShapeConfig { - @MinNumber(1) - @MaxNumber(6) - @Desc("Cross-section exponent of the throat bed. Larger values broaden the rounded U-shaped bed.") - private double bedRoundness = 2D; - - @MinNumber(0) - @MaxNumber(1) - @Desc("Coherent vertical variation applied to the throat bed as a fraction of channel depth. Null uses surface.channel.roughness.") - private Double bedRoughness = null; - - @MinNumber(0) - @MaxNumber(1) - @Desc("Coherent radial variation applied to the throat walls. Null uses surface.channel.roughness.") - private Double wallRoughness = null; - - @MinNumber(3) - @MaxNumber(128) - @Desc("Wavelength in blocks of the throat bed and wall roughness. Null uses surface.channel.roughnessWavelength.") - private Integer roughnessWavelength = null; - - @MinNumber(0.4) - @MaxNumber(1.2) - @Desc("Base radial scale of the organic passage outline before the lobes are added; 1 keeps the nominal radius, lower values carve a narrower passage.") - private double radialBase = 0.86D; - - @MinNumber(0.2) - @MaxNumber(1) - @Desc("Smallest radial scale the organic outline may shrink to after the lobes are applied, as a fraction of the nominal radius.") - private double radialMinimum = 0.58D; - - @MinNumber(1) - @MaxNumber(2) - @Desc("Largest radial scale the organic outline may grow to after the lobes are applied, as a fraction of the nominal radius.") - private double radialMaximum = 1.18D; - - @MinNumber(0) - @MaxNumber(0.5) - @Desc("Strength of the broad lobes that bulge and pinch the passage outline along its length; 0 leaves the outline circular.") - private double primaryLobeStrength = 0.08D; - - @MinNumber(0) - @MaxNumber(0.5) - @Desc("Strength of the fine lobes layered over the broad ones for small-scale wall detail; 0 leaves only the broad lobes.") - private double detailLobeStrength = 0.06D; - - @MinNumber(0) - @MaxNumber(1) - @Desc("Coherent variation of the carved ceiling height as a fraction of the headroom; 0 keeps the ceiling smooth and evaluates no extra noise. Only the carved segments of a surface course read it; an exposed channel has no ceiling.") - private double ceilingRoughness = 0D; - - @MinNumber(0.2) - @MaxNumber(1) - @Desc("Narrowest plan aspect of a chamber, the short axis as a fraction of the long axis; 1 makes every chamber circular in plan. The surface section carries this field so all three shape sections share one shape record; only grotto chambers read it.") - private double aspectMinimum = 0.62D; - - @MinNumber(0) - @MaxNumber(0.8) - @Desc("How much the plan aspect may vary above aspectMinimum from one chamber to the next; 0 gives every chamber the same aspect. The surface section carries this field so all three shape sections share one shape record; only grotto chambers read it.") - private double aspectRange = 0.2D; -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverSourceConfig.java b/core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverSourceConfig.java deleted file mode 100644 index 37adc5717..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverSourceConfig.java +++ /dev/null @@ -1,34 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@Desc("Controls surface-river source allocation.") -@Data -public class IrisSurfaceRiverSourceConfig { - @MinNumber(0) - @MaxNumber(64) - @Desc("Expected natural surface headwaters per qualifying hydrology tile.") - private double density = 0.5D; - - @MinNumber(-2048) - @MaxNumber(2048) - @Desc("Minimum natural terrain elevation eligible for a surface headwater.") - private int minimumElevation = 88; - - @MinNumber(0) - @MaxNumber(64) - @Desc("Minimum source quota considered for qualifying tiles when policy requires headwaters and a legal outlet exists.") - private int minimumPerTile = 0; - - @MinNumber(0) - @MaxNumber(8192) - @Desc("Minimum distance in blocks between natural surface headwaters.") - private int minimumSpacing = 384; -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeAzimuthMode.java b/core/src/main/java/art/arcane/iris/engine/object/IrisTreeAzimuthMode.java deleted file mode 100644 index 75215bdf7..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeAzimuthMode.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("Controls the compass direction (azimuth) of trunk lean as it rises, or the direction each branch is thrown.") -public enum IrisTreeAzimuthMode { - @Desc("A single fixed azimuth.") - CONSTANT, - @Desc("Azimuth ramps straight from start to end with height.") - LINEAR, - @Desc("Azimuth winds around the trunk a number of turns (corkscrew).") - SPIRAL, - @Desc("Azimuth oscillates with a sine wave.") - SINE, - @Desc("Azimuth wanders using deterministic noise.") - NOISE, - @Desc("Each branch picks a uniformly random azimuth (falls back to constant for trunk lean).") - RANDOM, - @Desc("Phyllotaxis: each successive branch is offset by the 137.5 degree golden angle for the most natural spiral packing (branches).") - GOLDEN_ANGLE, - @Desc("Each successive branch is thrown to the opposite side (180 degrees apart).") - ALTERNATING, - @Desc("Branches are grouped into evenly spaced whorls of azimuthWhorlCount around each ring.") - WHORL, - @Desc("Azimuth zigzags by +/- amplitude on alternating branches.") - ZIGZAG -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeBranchProbability.java b/core/src/main/java/art/arcane/iris/engine/object/IrisTreeBranchProbability.java deleted file mode 100644 index 926f12073..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeBranchProbability.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("Controls how the chance of spawning a branch varies with trunk height (0 at the base, 1 at the top).") -public enum IrisTreeBranchProbability { - @Desc("Same branch chance at every height.") - CONSTANT, - @Desc("Ramps straight from base chance to crown chance.") - LINEAR, - @Desc("S-curve that switches on around a midpoint height.") - SIGMOID, - @Desc("Chance rises with height raised to an exponent, clustering branches near the crown.") - TOP_HEAVY, - @Desc("Bell curve peaking in a height band.") - GAUSSIAN, - @Desc("Irregular organic branching from deterministic noise.") - NOISE, - @Desc("Chance falls with height (1-t)^exponent, clustering branches near the base.") - BOTTOM_HEAVY, - @Desc("Regular whorl rings of branches at evenly spaced heights (periods controls count).") - PERIODIC, - @Desc("Branches only within a height window around mean +/- std.") - BAND, - @Desc("Inverse of GAUSSIAN: branches avoid the mean band and favor base and crown.") - INVERSE_GAUSSIAN, - @Desc("Exponential decay from the base upward (constant * e^-exponent*t).") - EXPONENTIAL_DECAY -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeBranches.java b/core/src/main/java/art/arcane/iris/engine/object/IrisTreeBranches.java deleted file mode 100644 index 7b9cdc1ce..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeBranches.java +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Snippet; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Snippet("tree-branches") -@Accessors(chain = true) -@NoArgsConstructor -@AllArgsConstructor -@Desc("A branch system that throws limbs out of the trunk and places a leaf ball at each tip. When present, branches drive the canopy and only the topmost crown disc of the profile is still placed.") -@Data -public class IrisTreeBranches { - @Desc("How branch spawn chance varies over trunk height.") - private IrisTreeBranchProbability probabilityFunction = IrisTreeBranchProbability.TOP_HEAVY; - - @MinNumber(0) - @Desc("Branch chance for the CONSTANT probability function.") - private double probabilityConstant = 0.5; - - @MinNumber(0) - @Desc("Branch chance at the base for the LINEAR probability function.") - private double probabilityBase = 0; - - @MinNumber(0) - @Desc("Branch chance at the crown for the LINEAR probability function.") - private double probabilityCrown = 1; - - @Desc("Steepness for the SIGMOID probability function.") - private double probabilitySteepness = 10; - - @Desc("Midpoint height (0-1) for the SIGMOID probability function.") - private double probabilityMidpoint = 0.7; - - @Desc("Exponent for the TOP_HEAVY probability function.") - private double probabilityExponent = 2; - - @Desc("Mean height (0-1) for the GAUSSIAN probability function.") - private double probabilityMean = 0.7; - - @Desc("Standard deviation for the GAUSSIAN probability function.") - private double probabilityStd = 0.15; - - @Desc("Noise scale for the NOISE probability function.") - private double probabilityScale = 1; - - @MinNumber(0) - @Desc("Number of whorl rings over the trunk height for the PERIODIC probability function.") - private double probabilityPeriods = 5; - - @Desc("How branch length varies over trunk height.") - private IrisTreeFunction lengthFunction = IrisTreeFunction.LINEAR; - - @MinNumber(0) - @Desc("Branch length at the base for the LINEAR length function.") - private double lengthBase = 1; - - @MinNumber(0) - @Desc("Branch length at the crown for the LINEAR length function.") - private double lengthCrown = 4; - - @MinNumber(0) - @Desc("Branch length for the CONSTANT length function.") - private double lengthConstant = 3; - - @MinNumber(0) - @Desc("Maximum branch length for the SIGMOID, LOG and PARABOLIC length functions.") - private double lengthMax = 4; - - @Desc("Steepness for the SIGMOID length function.") - private double lengthSteepness = 5; - - @Desc("How the compass direction of each branch is chosen.") - private IrisTreeAzimuthMode azimuthMode = IrisTreeAzimuthMode.RANDOM; - - @Desc("Fixed azimuth in degrees when azimuthMode is CONSTANT.") - private double azimuth = 0; - - @Desc("Elevation angle in degrees from horizontal. 0 is flat, positive points up, negative droops down.") - private double elevation = 0; - - @MinNumber(0) - @MaxNumber(1) - @Desc("How much each branch sags/droops along its length (catenary). 0 is a straight branch; higher values arc the branch and its tip downward.") - private double sag = 0; - - @MinNumber(0) - @MaxNumber(6) - @Desc("How many recursive levels of sub-branches to grow. 0 is none, 1 is a single level, 2+ produces fractal branching.") - private int branchDepth = 1; - - @Desc("If true, branches are clamped to never droop below horizontal (useful for upright species).") - private boolean leafStartUp = false; - - @MinNumber(0) - @Desc("Leaf ball radius placed at each branch tip.") - private int clusterRadius = 2; - - @Desc("How the branch tip leaf cluster fills.") - private IrisTreeLeafMode clusterMode = IrisTreeLeafMode.TRIMMED; - - @MinNumber(0) - @Desc("Fill density for the branch tip leaf cluster when clusterMode is density or noise.") - private double clusterDensity = 0.85; - - @Desc("Optional one level of recursive sub-branches sprouting from each branch tip.") - private IrisTreeSubBranches subBranches = null; -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeDecoratorTarget.java b/core/src/main/java/art/arcane/iris/engine/object/IrisTreeDecoratorTarget.java deleted file mode 100644 index cdf72f006..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeDecoratorTarget.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("Where a tree decorator block is placed.") -public enum IrisTreeDecoratorTarget { - @Desc("At the tip of each generated branch (vines, fruit, lanterns).") - BRANCH_TIP, - @Desc("On air-facing sides of trunk and branch blocks (vines, moss).") - TRUNK_SURFACE, - @Desc("On top of the highest block in each column (snow, sculk).") - CANOPY_TOP, - @Desc("One block below the lowest leaf in each column (glowing underside).") - CANOPY_BOTTOM, - @Desc("Around the y=0 ring at the base of the trunk (roots, mushrooms).") - TRUNK_BASE, - @Desc("On air-facing sides of leaf blocks (berries, lights nestled in the foliage).") - LEAF_SURFACE, - @Desc("Hanging strands of up to 'length' blocks below the lowest leaf in each column (vines, icicles).") - CANOPY_HANG, - @Desc("On the top face of trunk and branch blocks (moss, snow on limbs).") - BRANCH_SURFACE, - @Desc("One block above the very top of the trunk (nest, beehive, beacon).") - TRUNK_TOP, - @Desc("Scattered across the ground footprint around the base, wider than the trunk-base ring.") - GROUND_SCATTER -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeFunction.java b/core/src/main/java/art/arcane/iris/engine/object/IrisTreeFunction.java deleted file mode 100644 index cada3dff2..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeFunction.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("A shaping function evaluated over normalized height (0 at the base, 1 at the top). Used for trunk width, trunk curve and branch length.") -public enum IrisTreeFunction { - @Desc("Same value at every height.") - CONSTANT, - @Desc("Ramps straight from start to end.") - LINEAR, - @Desc("S-curve transition controlled by steepness.") - SIGMOID, - @Desc("Logarithmic falloff controlled by base.") - LOG, - @Desc("Sine ripple controlled by period and amplitude.") - SINE, - @Desc("Parabolic pinch, narrowest at peakOffset.") - PARABOLIC, - @Desc("Geometric (exponential) interpolation from start to end.") - EXPONENTIAL, - @Desc("Square-root ease: fast change low, slow high.") - SQRT, - @Desc("Hard step that jumps from start to end at the threshold (peakOffset).") - STEP, - @Desc("Bell bulge peaking in the middle of the height range.") - BELL, - @Desc("Smoothstep ease-in-out (3t^2 - 2t^3).") - EASE_IN_OUT -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeProfile.java b/core/src/main/java/art/arcane/iris/engine/object/IrisTreeProfile.java deleted file mode 100644 index 14f22d839..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeProfile.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("Named canopy presets that drive default layer radii and shape, scaled to the tree height.") -public enum IrisTreeProfile { - @Desc("Rounded broadleaf crown.") - OAK, - @Desc("Slim upright broadleaf crown.") - BIRCH, - @Desc("Narrow conifer cone.") - SPRUCE, - @Desc("Tall thin crown concentrated near the very top.") - JUNGLE, - @Desc("Flat shallow umbrella crown.") - ACACIA, - @Desc("Dense rounded broadleaf crown.") - DARK_OAK, - @Desc("Flat wide umbrella crown compressed into the top quarter (vanilla dark oak look).") - DARK_OAK_FLAT, - @Desc("Extra wide flat umbrella that overlaps into a continuous roofed canopy.") - DARK_OAK_FLAT_WIDE, - @Desc("Broad rounded blossom crown.") - CHERRY, - @Desc("Bare trunk with a small tuft of fronds only at the very top.") - PALM, - @Desc("Broad crown with wide drooping radii, ideal with a low startAngle to make a weeping skirt.") - WILLOW, - @Desc("Very narrow tall crown hugging the trunk (cypress / lombardy poplar).") - COLUMNAR, - @Desc("Squat, wide, low crown for shrubs and saplings.") - BUSH, - @Desc("Giant conifer cone for 2x2 mega spruce trunks.") - MEGA_SPRUCE -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisUndergroundRiverConfig.java b/core/src/main/java/art/arcane/iris/engine/object/IrisUndergroundRiverConfig.java deleted file mode 100644 index 98b4e0e7e..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisUndergroundRiverConfig.java +++ /dev/null @@ -1,67 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@Desc("Controls an independent underground river network.") -@Data -public class IrisUndergroundRiverConfig { - @Desc("Enable the independent underground-river source budget.") - private boolean enabled = true; - - @Desc("Underground-river source allocation.") - private IrisUndergroundRiverSourceConfig sources = new IrisUndergroundRiverSourceConfig(); - - @Desc("Underground river fluid elevation in world Y.") - private IrisStyledRange fluidLevel = range(-48D, 50D, 1024D); - - @Desc("Underground wet channel width in blocks.") - private IrisStyledRange channelWidth = range(3D, 8D, 768D); - - @Desc("Underground wet bed depth in blocks.") - private IrisStyledRange depth = range(1D, 3D, 768D); - - @Desc("Dry vertical clearance above underground river fluid.") - private IrisStyledRange headroom = range(6D, 14D, 768D); - - @Desc("Allow accepted underground courses to connect transactionally to existing caves.") - private boolean connectToExistingCaves = true; - - @MinNumber(16) - @MaxNumber(512) - @Desc("Distance in blocks over which an ocean-bound underground river levels to sea level before its mouth.") - private int mouthLevelingDistance = 64; - - @MinNumber(0) - @MaxNumber(4) - @Desc("Extra underground courses an outlet may accept as tributaries joining its main passage; they are budgeted on top of the source density, and 0 keeps one passage per outlet.") - private int tributaries = 1; - - @MinNumber(1) - @MaxNumber(64) - @Desc("Blocks of solid rock kept between the top of a passage's headroom and the surface above it; a passage that cannot keep this much cover is lowered or rejected.") - private int minimumRockCover = 1; - - @MinNumber(1) - @MaxNumber(32) - @Desc("Blocks of solid rock kept between the bottom of a passage's bed and the world floor below it.") - private int minimumFloorCover = 1; - - @MinNumber(1) - @MaxNumber(64) - @Desc("Number of joined tributary sources at which a passage reaches its full sampled width; fewer contributing sources carve a proportionally narrower passage, and 1 gives every passage its full width.") - private int wideningSources = 8; - - @Desc("Optional palette painted over the floor layers under an underground river instead of the cave biome's own layers. Disabled by default, which keeps the biome's layers.") - private IrisRiverMaterialConfig bedMaterial = new IrisRiverMaterialConfig(); - - private static IrisStyledRange range(double min, double max, double zoom) { - return new IrisStyledRange(min, max, new IrisGeneratorStyle(NoiseStyle.IRIS).zoomed(zoom)); - } -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisUndergroundRiverSourceConfig.java b/core/src/main/java/art/arcane/iris/engine/object/IrisUndergroundRiverSourceConfig.java deleted file mode 100644 index 101056a1e..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisUndergroundRiverSourceConfig.java +++ /dev/null @@ -1,29 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@Desc("Controls underground-river source allocation independently from surface rivers.") -@Data -public class IrisUndergroundRiverSourceConfig { - @MinNumber(0) - @MaxNumber(64) - @Desc("Expected natural underground sources per qualifying hydrology tile.") - private double density = 0.25D; - - @MinNumber(0) - @MaxNumber(64) - @Desc("Minimum underground source quota considered for qualifying tiles when policy requires headwaters and a legal outlet exists.") - private int minimumPerTile = 0; - - @MinNumber(0) - @MaxNumber(8192) - @Desc("Minimum distance in blocks between natural underground sources.") - private int minimumSpacing = 512; -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisVacuumSettings.java b/core/src/main/java/art/arcane/iris/engine/object/IrisVacuumSettings.java deleted file mode 100644 index 398c562ab..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisVacuumSettings.java +++ /dev/null @@ -1,39 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Snippet; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Snippet("vacuum-settings") -@Accessors(chain = true) -@NoArgsConstructor -@AllArgsConstructor -@Desc("Defines how a VACUUM place mode bends terrain to meet an object's base.") -@Data -public class IrisVacuumSettings { - @MinNumber(0) - @MaxNumber(128) - @Desc("The horizontal radius (in blocks) the terrain deformation extends beyond the object footprint before it blends back to the natural surface. 0 = derive automatically from the place mode (VACUUM, VACUUM_HIGH larger, VACUUM_FAST smaller).") - private int radius = 0; - @MinNumber(0.25) - @MaxNumber(8) - @Desc("The falloff exponent controlling how the deformation eases out across the radius. 1 = linear (cone), 2 = parabolic (default, gentle bowl), higher = flatter near the object with a sharper drop at the edge.") - private double falloff = 2.0; - @MinNumber(0) - @MaxNumber(64) - @Desc("For VACUUM_ORGANIC: the maximum number of blocks the effective radius is randomly perturbed per column, giving the meeting edge an irregular organic outline instead of a clean circle.") - private int organicJitter = 4; - @MinNumber(0) - @MaxNumber(64) - @Desc("For VACUUM_WAVY: the vertical amplitude (in blocks) of the rolling simplex wave applied across the terrain bend. The wave fades to zero under the object (so it stays flush) and at the outer radius (so it blends back to the surface), peaking across the mid-slope. 0 disables the wave.") - private int waveAmplitude = 3; - @MinNumber(0.1) - @MaxNumber(64) - @Desc("For VACUUM_WAVY: the frequency of the simplex wave. Higher values make tighter, choppier ripples; lower values make broad, gentle swells. The wavelength in blocks is roughly 100 / waveScale.") - private double waveScale = 5.0; -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisVanillaStructureAdjustment.java b/core/src/main/java/art/arcane/iris/engine/object/IrisVanillaStructureAdjustment.java deleted file mode 100644 index b66f29c31..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisVanillaStructureAdjustment.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListVanillaStructure; -import art.arcane.volmlib.util.collection.KList; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -@Accessors(chain = true) -@NoArgsConstructor -@AllArgsConstructor -@Desc("A per-structure adjustment applied to vanilla, mod, and datapack structures that still generate natively (those NOT suppressed by an Iris 'structures' placement). Vertical shifts move the structure start, pieces, bounds, and jigsaw metadata together before references and placement. Intersecting trees are cleared automatically inside structure piece envelopes; optional postprocessing can build palette-driven foundation columns.") -@Data -public class IrisVanillaStructureAdjustment { - @ArrayType(type = String.class, min = 1) - @RegistryListVanillaStructure(prefixes = true) - @Desc("Structure keys this adjustment applies to, e.g. 'minecraft:stronghold'. A namespace:path prefix also matches, so 'minecraft:village' adjusts every village variant and 'minecraft:ruined_portal' adjusts every ruined portal. Empty matches nothing.") - private KList match = new KList<>(); - - @MinNumber(-512) - @MaxNumber(512) - @Desc("Vertical block offset. Negative pushes the structure down, positive lifts it. The resolved shift is clamped so the structure remains inside the world's vertical build bounds.") - private int yShift = 0; - - @Desc("Optional absolute world Y band. The structure is relocated so its vertical midpoint lands inside the band, deterministically from its start chunk and clamped to the world's build bounds. Precedence: preserveSourceY wins over yBand, and yBand wins over both yShift and Iris burial repositioning. Structures with a fixed vanilla alignment (ocean monument sea level, desert and jungle pyramid surface fit) ignore it.") - private IrisStructureYBand yBand = null; - - @Desc("When true, skip Iris burial repositioning so the structure keeps the Y its own vanilla placement chose. Underground structures are otherwise pushed below the lowest solid column across their whole footprint, which hides terrain-aware structures such as mineshafts that intentionally breach cliffs and surfaces. Vertical shifts still apply on top of the preserved Y: this dimension's undergroundYShift plus every matching adjustment's yShift.") - private boolean preserveSourceY = false; - - @Desc("Optional foundation columns placed beneath the native structure piece bases after placement.") - private IrisStructureStiltSettings stilt = null; - - @Desc("Optional terrain integration override. FLATTEN cuts and fills exposed surface foundations within flattenRange, blending across horizontalPadding blocks while preserving buried and submerged structures. VACUUM raises processed rigid-template foundations with a fixed 12-block falloff without lowering ground. BORE and FORCE_CARVE clear every intersecting chunk before native placement, while ENCASE fills it. Left unset, SOURCE replays the registered structure's authored terrain adaptation.") - private IrisStructureTerrain terrain = null; - - public boolean matches(String key) { - for (String entry : match) { - if (IrisImportedStructureControl.matchesKey(entry, key)) { - return true; - } - } - return false; - } -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/NativeStructureSuppression.java b/core/src/main/java/art/arcane/iris/engine/object/NativeStructureSuppression.java deleted file mode 100644 index 8c3cfc178..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/NativeStructureSuppression.java +++ /dev/null @@ -1,12 +0,0 @@ -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("Controls whether an Iris structure placement suppresses its imported native source.") -public enum NativeStructureSuppression { - @Desc("Leaves native generation enabled alongside this Iris structure placement.") - NONE, - - @Desc("Suppresses the structure's vanillaSource when used by a validated dimension-level replacement placement.") - REPLACE_SOURCE -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/ObjectPlaceMode.java b/core/src/main/java/art/arcane/iris/engine/object/ObjectPlaceMode.java deleted file mode 100644 index 1160425a9..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/ObjectPlaceMode.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.engine.object; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("Object Place modes are useful for positioning objects just right. The default value is CENTER_HEIGHT.") -public enum ObjectPlaceMode { - @Desc("The default place mode. This mode picks a center point (where the center of the object will be) and takes the height. That height is used for the whole object.") - - CENTER_HEIGHT, - - @Desc("Samples a lot of points where the object will cover (horizontally) and picks the highest height, that height is then used to place the object. This mode is useful for preventing any part of your object from being buried though it will float off of cliffs.") - - MAX_HEIGHT, - - @Desc("Samples only 4 points where the object will cover (horizontally) and picks the highest height, that height is then used to place the object. This mode is useful for preventing any part of your object from being buried though it will float off of cliffs.\"") - - FAST_MAX_HEIGHT, - - @Desc("Samples a lot of points where the object will cover (horizontally) and picks the lowest height, that height is then used to place the object. This mode is useful for preventing any part of your object from overhanging a cliff though it gets buried a lot") - - MIN_HEIGHT, - - @Desc("Samples only 4 points where the object will cover (horizontally) and picks the lowest height, that height is then used to place the object. This mode is useful for preventing any part of your object from overhanging a cliff though it gets buried a lot") - - FAST_MIN_HEIGHT, - - @Desc("Stilting is MAX_HEIGHT but it repeats the bottom most block of your object until it hits the surface. This is expensive because it has to first sample every height value for each x,z position of your object. Avoid using this unless its structures for performance reasons.") - - STILT, - - @Desc("Just like stilting but very inaccurate. Useful for stilting a lot of objects without too much care on accuracy (you can use the over-stilt value to force stilts under ground further)") - - FAST_STILT, - - @Desc("Stilting is MIN_HEIGHT but it repeats the bottom most block of your object until it hits the surface. This is expensive because it has to first sample every height value for each x,z position of your object. Avoid using this unless its structures for performance reasons.") - - MIN_STILT, - - @Desc("Just like MIN_STILT but very inaccurate. Useful for stilting a lot of objects without too much care on accuracy (you can use the over-stilt value to force stilts under ground further)") - - FAST_MIN_STILT, - - @Desc("Stilting is CENTER_HEIGHT but it repeats the bottom most block of your object until it hits the surface. This is expensive because it has to first sample every height value for each x,z position of your object. Avoid using this unless its structures for performance reasons.") - - CENTER_STILT, - - @Desc("Erode stilting tapers columns downward like an ice cream cone. Blocks near the center extend deepest while edge blocks drop off first. Blocks are randomly skipped in the lower portion for a rough organic eroded texture.") - - ERODE_STILT, - - @Desc("Organic stilting scans straight down from the bottom of the object to the first solid block (the cave floor, or terrain) and fills the gap with the object's own bottom block. Each column stops at a slightly different, noise-varied depth and the lower portion is randomly broken up, so the underside reads as rough organic roots rather than a flat disc. Designed for objects placed inside caves so they connect to the floor instead of floating. Tune with stilt-settings (organicMaxScan, organicJitter, organicScratch).") - - ORGANIC_STILT, - - @Desc("Hangs the object upside-down from a cave ceiling. The object is flipped vertically (its tip points down like a stalactite) and its top is anchored to the ceiling, while an organic, noise-varied stilt grows up into the ceiling so it never floats below the roof. Use inside caves; tune with stilt-settings (organicMaxScan, organicJitter, organicScratch).") - - CEILING_HANG, - - @Desc("Anchors the object at the terrain surface (plus translate.y) like CENTER_HEIGHT, then bends the surrounding terrain to be flush with the object's base. Columns inside the object footprint are raised (or lowered) to meet the base, and the deformation falls off parabolically out to a radius so the terrain smoothly blends back to its natural height. Use this to seat a floating/translated object on the ground without a flat stilt disc, e.g. a cube translated up 10 on a mountain pulls the terrain up to meet it. Tune with vacuum-settings (radius, falloff).") - - VACUUM, - - @Desc("VACUUM with a larger radius and finer per-column sampling for the smoothest terrain blend. More expensive.") - - VACUUM_HIGH, - - @Desc("VACUUM with a smaller radius and coarser sampling for performance. Use when seating many objects.") - - VACUUM_FAST, - - @Desc("VACUUM whose falloff radius is perturbed by noise per column, so the terrain meets the object with an irregular organic edge rather than a clean parabolic bowl.") - - VACUUM_ORGANIC, - - @Desc("VACUUM whose terrain bend is bent by smooth coherent simplex noise so the surface meets the object with a gently rolling, wavy slope instead of the ragged white-noise edge of VACUUM_ORGANIC or a clean parabolic bowl. The object itself still seats flush; the waves fade to zero under the object and at the outer rim, peaking across the mid-slope. Tune with vacuum-settings (waveAmplitude, waveScale).") - - VACUUM_WAVY, - - @Desc("Samples the height of the terrain at every x,z position of your object and pushes it down to the surface. It's pretty much like a melt function over the terrain.") - - PAINT, - - @Desc("Places the object in pure air at an absolute Y driven entirely by translate.y (plus optional translate.yRandom). Terrain height, underwater, and carving anchor checks are skipped. Use this for floating islands, sky structures, clouds, or blimps where the object must not be translated to the ground.") - - FLOATING, - - @Desc("Raw stamp at the caller-supplied (x, y, z). No terrain sampling, no stilting, no Y recomputation, no underwater or carving anchor guards. Used internally to route native Minecraft structure pieces (villages etc.) through the Iris object placer.") - - STRUCTURE_PIECE -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/annotations/Desc.java b/core/src/main/java/art/arcane/iris/engine/object/annotations/Desc.java deleted file mode 100644 index 20f7887e0..000000000 --- a/core/src/main/java/art/arcane/iris/engine/object/annotations/Desc.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.engine.object.annotations; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.ElementType.PARAMETER; -import static java.lang.annotation.ElementType.TYPE; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -@Retention(RUNTIME) -@Target({PARAMETER, TYPE, FIELD}) -public @interface Desc { - String value(); -} diff --git a/core/src/main/java/art/arcane/iris/engine/object/FloatingBottomPaletteMode.java b/core/src/main/java/art/arcane/iris/generation/biome/FloatingBottomPaletteMode.java similarity index 62% rename from core/src/main/java/art/arcane/iris/engine/object/FloatingBottomPaletteMode.java rename to core/src/main/java/art/arcane/iris/generation/biome/FloatingBottomPaletteMode.java index cc9c938d4..191566586 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/FloatingBottomPaletteMode.java +++ b/core/src/main/java/art/arcane/iris/generation/biome/FloatingBottomPaletteMode.java @@ -16,18 +16,18 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.documentation.Description; -@Desc("Controls how floating-child island underside blocks choose their palette.") +@Description("Controls how floating-child island underside blocks choose their palette.") public enum FloatingBottomPaletteMode { - @Desc("Use the normal top-down biome layer depth for the whole island column.") + @Description("Use the normal top-down biome layer depth for the whole island column.") DEPTH, - @Desc("Use the target biome's top palette from both the island top and underside, meeting in the middle.") + @Description("Use the target biome's top palette from both the island top and underside, meeting in the middle.") MIRROR_TOP, - @Desc("Use bottomPalette near the underside and the target biome's normal palette near the top.") + @Description("Use bottomPalette near the underside and the target biome's normal palette near the top.") CUSTOM } diff --git a/core/src/main/java/art/arcane/iris/engine/object/FloatingIslandBoundarySampler.java b/core/src/main/java/art/arcane/iris/generation/biome/FloatingIslandBoundarySampler.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/object/FloatingIslandBoundarySampler.java rename to core/src/main/java/art/arcane/iris/generation/biome/FloatingIslandBoundarySampler.java index d1d9d01fb..517836cfb 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/FloatingIslandBoundarySampler.java +++ b/core/src/main/java/art/arcane/iris/generation/biome/FloatingIslandBoundarySampler.java @@ -16,10 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; -import art.arcane.iris.engine.data.cache.Cache; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.volmlib.util.math.Rarity; + +import art.arcane.iris.generation.cache.Cache; +import art.arcane.volmlib.util.noise.CNG; import art.arcane.volmlib.util.collection.KList; import org.jetbrains.annotations.Nullable; @@ -405,7 +407,7 @@ public final class FloatingIslandBoundarySampler { for (int z = 0; z < geometry.fieldSize(); z++) { for (int x = 0; x < geometry.fieldSize(); x++) { double value = Math.max(0.0D, Math.min(1.0D, picker.noise(minX + x, minZ + z))); - owners[geometry.index(x, z)] = IRare.pick(entries, value); + owners[geometry.index(x, z)] = Rarity.pick(entries, value); } } for (IrisFloatingChildBiomes entry : entries) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/FloatingIslandEdgeProfile.java b/core/src/main/java/art/arcane/iris/generation/biome/FloatingIslandEdgeProfile.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/object/FloatingIslandEdgeProfile.java rename to core/src/main/java/art/arcane/iris/generation/biome/FloatingIslandEdgeProfile.java index e401bb58d..a4da95a0e 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/FloatingIslandEdgeProfile.java +++ b/core/src/main/java/art/arcane/iris/generation/biome/FloatingIslandEdgeProfile.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.volmlib.util.noise.CNG; public final class FloatingIslandEdgeProfile { public static final int DEFAULT_WIDTH = 10; diff --git a/core/src/main/java/art/arcane/iris/engine/object/FloatingIslandSample.java b/core/src/main/java/art/arcane/iris/generation/biome/FloatingIslandSample.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/object/FloatingIslandSample.java rename to core/src/main/java/art/arcane/iris/generation/biome/FloatingIslandSample.java index 147d6656b..3b8bdc544 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/FloatingIslandSample.java +++ b/core/src/main/java/art/arcane/iris/generation/biome/FloatingIslandSample.java @@ -16,12 +16,14 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.generation.cave.IrisCaveProfileSampler; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.volmlib.util.noise.CNG; import art.arcane.volmlib.util.collection.KList; import it.unimi.dsi.fastutil.longs.Long2DoubleOpenHashMap; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisBiome.java b/core/src/main/java/art/arcane/iris/generation/biome/IrisBiome.java similarity index 72% rename from core/src/main/java/art/arcane/iris/engine/object/IrisBiome.java rename to core/src/main/java/art/arcane/iris/generation/biome/IrisBiome.java index 7d512df6b..934931787 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisBiome.java +++ b/core/src/main/java/art/arcane/iris/generation/biome/IrisBiome.java @@ -16,31 +16,55 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; -import art.arcane.iris.engine.framework.render.RenderType; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.data.cache.LazyBoundedCache; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.DependsOn; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListBiome; -import art.arcane.iris.engine.object.annotations.RegistryListResource; -import art.arcane.iris.engine.object.annotations.Required; +import art.arcane.iris.generation.cave.IrisCaveProfile; +import art.arcane.iris.generation.decoration.IrisDecorationPart; +import art.arcane.iris.generation.decoration.IrisDecorator; +import art.arcane.iris.generation.decoration.IrisDepositGenerator; +import art.arcane.iris.generation.decoration.IrisDepositVariant; +import art.arcane.iris.generation.decoration.IrisOreGenerator; +import art.arcane.iris.generation.decoration.IrisOreGeneratorBounds; +import art.arcane.iris.generation.decoration.IrisProceduralObjects; +import art.arcane.iris.generation.hydrology.IrisRiverPolicy; +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.generation.noise.NoiseStyle; +import art.arcane.iris.generation.terrain.InferredType; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisTerrain3D; +import art.arcane.iris.pack.validation.CompatPools; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.structure.placement.IrisStructurePlacement; +import art.arcane.iris.world.entity.IrisEffect; +import art.arcane.iris.world.entity.IrisSpawner; +import art.arcane.iris.world.loot.IrisBlockDrops; +import art.arcane.iris.world.loot.IrisLootReference; + +import art.arcane.volmlib.util.math.Rarity; + +import art.arcane.iris.studio.render.RenderType; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.generation.cache.LazyBoundedCache; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.iris.pack.schema.annotation.DependsOn; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListBiome; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; +import art.arcane.iris.pack.schema.annotation.Required; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KSet; -import art.arcane.iris.util.common.data.DataProvider; +import art.arcane.iris.generation.block.DataProvider; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.project.noise.CNG; -import art.arcane.iris.util.project.context.IrisContext; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.volmlib.util.noise.CNG; +import art.arcane.iris.generation.context.IrisContext; +import art.arcane.volmlib.util.stream.ProceduralStream; import lombok.AccessLevel; import lombok.Data; import lombok.EqualsAndHashCode; @@ -64,10 +88,10 @@ import java.util.Objects; */ @Accessors(chain = true) @NoArgsConstructor -@Desc("Represents a biome in iris. Biomes are placed inside of regions and hold objects.\nA biome consists of layers (block palletes), decorations, objects & generators.") +@Description("Represents a biome in iris. Biomes are placed inside of regions and hold objects.\nA biome consists of layers (block palletes), decorations, objects & generators.") @Data @EqualsAndHashCode(callSuper = false) -public class IrisBiome extends IrisRegistrant implements IRare { +public class IrisBiome extends IrisRegistrant implements Rarity { private static final int BIOME_GENERATOR_CACHE_SIZE = 8; private final transient AtomicCache> genCache = new AtomicCache<>(); @@ -107,131 +131,131 @@ public class IrisBiome extends IrisRegistrant implements IRare { private static final IrisDecorator[] EMPTY_BUCKET = new IrisDecorator[0]; @MinNumber(2) @Required - @Desc("This is the human readable name for this biome. This can and should be different than the file name. This is not used for loading biomes in other objects.") + @Description("This is the human readable name for this biome. This can and should be different than the file name. This is not used for loading biomes in other objects.") private String name = "Subterranean Land"; @ArrayType(min = 1, type = IrisBiomeCustom.class) - @Desc("If the biome type custom is defined, specify this") + @Description("If the biome type custom is defined, specify this") private KList customDerivitives; - @Desc("Spawn Entities in this area over time. Iris will continually replenish these mobs just like vanilla does.") + @Description("Spawn Entities in this area over time. Iris will continually replenish these mobs just like vanilla does.") @ArrayType(min = 1, type = String.class) @RegistryListResource(IrisSpawner.class) private KList entitySpawners = new KList<>(); @ArrayType(min = 1, type = IrisEffect.class) - @Desc("Effects are ambient effects such as potion effects, random sounds, or even particles around each player. All of these effects are played via packets so two players won't see/hear each others effects.\nDue to performance reasons, effects will play around the player even if where the effect was played is no longer in the biome the player is in.") + @Description("Effects are ambient effects such as potion effects, random sounds, or even particles around each player. All of these effects are played via packets so two players won't see/hear each others effects.\nDue to performance reasons, effects will play around the player even if where the effect was played is no longer in the biome the player is in.") private KList effects = new KList<>(); @DependsOn({"biomeStyle", "biomeZoom", "biomeScatter"}) - @Desc("This changes the dispersion of the biome colors if multiple derivatives are chosen.") + @Description("This changes the dispersion of the biome colors if multiple derivatives are chosen.") private IrisGeneratorStyle biomeStyle = NoiseStyle.SIMPLEX.style(); @ArrayType(min = 1, type = IrisBlockDrops.class) - @Desc("Define custom block drops for this biome") + @Description("Define custom block drops for this biome") private KList blockDrops = new KList<>(); - @Desc("Reference loot tables in this area") + @Description("Reference loot tables in this area") private IrisLootReference loot = new IrisLootReference(); - @Desc("Layers no longer descend from the surface block, they descend from the max possible height the biome can produce (constant) creating mesa like layers.") + @Description("Layers no longer descend from the surface block, they descend from the max possible height the biome can produce (constant) creating mesa like layers.") private boolean lockLayers = false; - @Desc("The max layers to iterate below the surface for locked layer biomes (mesa).") + @Description("The max layers to iterate below the surface for locked layer biomes (mesa).") private int lockLayersMax = 7; - @Desc("Profile-driven 3D cave configuration") + @Description("Profile-driven 3D cave configuration") private IrisCaveProfile caveProfile = new IrisCaveProfile(); - @Desc("Biome-level river placement, routing, profile, biome, and geometry policy. Omit to inherit region and dimension settings.") + @Description("Biome-level river placement, routing, profile, biome, and geometry policy. Omit to inherit region and dimension settings.") private IrisRiverPolicy riverPolicy = null; @MinNumber(1) @MaxNumber(512) - @Desc("The rarity of this biome (integer)") + @Description("The rarity of this biome (integer)") private int rarity = 1; - @Desc("A color for visualizing this biome with a color. I.e. #F13AF5. This will show up on the map.") + @Description("A color for visualizing this biome with a color. I.e. #F13AF5. This will show up on the map.") private String color = null; @Required @RegistryListBiome - @Desc("The raw derivative of this biome. This is required or the terrain will not properly generate. Use any vanilla biome type. Look in examples/biome-list.txt") + @Description("The raw derivative of this biome. This is required or the terrain will not properly generate. Use any vanilla biome type. Look in examples/biome-list.txt") private String derivative = "minecraft:the_void"; @Required @RegistryListBiome - @Desc("Override the derivative used for vanilla structure selection. Iris still enforces the generated terrain role: land-only Minecraft derivatives on sea biomes expose no native structure biome, and land-only derivatives on shore biomes resolve as beach, while exact ocean, river, beach, and shore variants remain eligible. Non-Minecraft namespaces remain authoritative. Not defining this value selects derivative.") + @Description("Override the derivative used for vanilla structure selection. Iris still enforces the generated terrain role: land-only Minecraft derivatives on sea biomes expose no native structure biome, and land-only derivatives on shore biomes resolve as beach, while exact ocean, river, beach, and shore variants remain eligible. Non-Minecraft namespaces remain authoritative. Not defining this value selects derivative.") private String vanillaDerivative = null; @ArrayType(min = 1, type = String.class) @RegistryListBiome - @Desc("You can instead specify multiple biome derivatives to randomly scatter colors in this biome") + @Description("You can instead specify multiple biome derivatives to randomly scatter colors in this biome") private KList biomeScatter = new KList<>(); @ArrayType(min = 1, type = String.class) @RegistryListBiome - @Desc("Since 1.13 supports 3D biomes, you can add different derivative colors for anything above the terrain. (Think swampy tree leaves with a desert looking grass surface)") + @Description("Since 1.13 supports 3D biomes, you can add different derivative colors for anything above the terrain. (Think swampy tree leaves with a desert looking grass surface)") private KList biomeSkyScatter = new KList<>(); @DependsOn({"children"}) - @Desc("If this biome has children biomes, and the gen layer chooses one of this biomes children, how much smaller will it be (inside of this biome). Higher values means a smaller biome relative to this biome's size. Set higher than 1.0 and below 3.0 for best results.") + @Description("If this biome has children biomes, and the gen layer chooses one of this biomes children, how much smaller will it be (inside of this biome). Higher values means a smaller biome relative to this biome's size. Set higher than 1.0 and below 3.0 for best results.") private double childShrinkFactor = 1.5; @DependsOn({"children"}) - @Desc("If this biome has children biomes, and the gen layer chooses one of this biomes children, How will it be shaped?") + @Description("If this biome has children biomes, and the gen layer chooses one of this biomes children, How will it be shaped?") private IrisGeneratorStyle childStyle = NoiseStyle.CELLULAR_IRIS_DOUBLE.style(); @RegistryListResource(IrisBiome.class) @ArrayType(min = 1, type = String.class) - @Desc("List any biome names (file names without.json) here as children. Portions of this biome can sometimes morph into their children. Iris supports cyclic relationships such as A > B > A > B. Iris will stop checking 4 biomes down the tree.") + @Description("List any biome names (file names without.json) here as children. Portions of this biome can sometimes morph into their children. Iris supports cyclic relationships such as A > B > A > B. Iris will stop checking 4 biomes down the tree.") private KList children = new KList<>(); @RegistryListResource(IrisBiome.class) - @Desc("Registers the referenced biome with this pack's reachable biome set. It is NOT applied as a substitute under carvings; cave biomes come from the region's caveBiomes list.") + @Description("Registers the referenced biome with this pack's reachable biome set. It is NOT applied as a substitute under carvings; cave biomes come from the region's caveBiomes list.") private String carvingBiome = ""; @MinNumber(0) @MaxNumber(256) - @Desc("Minimum depth below terrain surface required before this cave biome can be selected.") + @Description("Minimum depth below terrain surface required before this cave biome can be selected.") private int caveMinDepthBelowSurface = 0; - @Desc("The default slab if iris decides to place a slab in this biome. Default is no slab.") + @Description("The default slab if iris decides to place a slab in this biome. Default is no slab.") private IrisBiomePaletteLayer slab = new IrisBiomePaletteLayer().zero(); - @Desc("The default wall if iris decides to place a wall higher than 2 blocks (steep hills or possibly cliffs)") + @Description("The default wall if iris decides to place a wall higher than 2 blocks (steep hills or possibly cliffs)") private IrisBiomePaletteLayer wall = new IrisBiomePaletteLayer().zero(); @Required @ArrayType(type = IrisBiomePaletteLayer.class) - @Desc("This defines the layers of materials in this biome. Each layer has a palette and min/max height and some other properties. Usually a grassy/sandy layer then a dirt layer then a stone layer. Iris will fill in the remaining blocks below your layers with stone.") + @Description("This defines the layers of materials in this biome. Each layer has a palette and min/max height and some other properties. Usually a grassy/sandy layer then a dirt layer then a stone layer. Iris will fill in the remaining blocks below your layers with stone.") private KList layers = new KList().qadd(new IrisBiomePaletteLayer()); @ArrayType(type = IrisBiomePaletteLayer.class) - @Desc("Layers of materials placed on cave ceilings in this biome, indexed upward from the ceiling surface. Must not have more entries than layers, whose height generators it reuses. Omitting this leaves cave ceilings unchanged.") + @Description("Layers of materials placed on cave ceilings in this biome, indexed upward from the ceiling surface. Must not have more entries than layers, whose height generators it reuses. Omitting this leaves cave ceilings unchanged.") private KList caveCeilingLayers = new KList<>(); @ArrayType(type = IrisBiomePaletteLayer.class) - @Desc("Layers of materials filling the water column of sea biomes, indexed downward from the water surface. Anything below the last layer is filled with the dimension fluid palette, not stone.") + @Description("Layers of materials filling the water column of sea biomes, indexed downward from the water surface. Anything below the last layer is filled with the dimension fluid palette, not stone.") private KList seaLayers = new KList<>(); @ArrayType(min = 1, type = IrisDecorator.class) - @Desc("Decorators are used for things like tall grass, bisected flowers, and even kelp or cactus (random heights)") + @Description("Decorators are used for things like tall grass, bisected flowers, and even kelp or cactus (random heights)") private KList decorators = new KList<>(); @ArrayType(min = 1, type = IrisObjectPlacement.class) - @Desc("Objects define what schematics (iob files) iris will place in this biome") + @Description("Objects define what schematics (iob files) iris will place in this biome") private KList objects = new KList<>(); - @Desc("Procedural objects (such as trees) iris generates from scratch and places in this biome, instead of loading them from iob files") + @Description("Procedural objects (such as trees) iris generates from scratch and places in this biome, instead of loading them from iob files") private IrisProceduralObjects proceduralObjects = new IrisProceduralObjects(); @ArrayType(min = 1, type = IrisStructurePlacement.class) - @Desc("Structures define jigsaw or vanilla/datapack structures iris will place in this biome") + @Description("Structures define jigsaw or vanilla/datapack structures iris will place in this biome") private KList structures = new KList<>(); @ArrayType(min = 1, type = IrisFloatingChildBiomes.class) - @Desc("Floating child biomes that procedurally generate above this biome's terrain. Each entry references a target biome whose layers, decorators, and objects drive the floating island's visual design, while the config here drives size, shape, altitude, rarity, and water level. Multiple entries are supported and selected by rarity per column unless mergeFloatingChildBiomes is enabled.") + @Description("Floating child biomes that procedurally generate above this biome's terrain. Each entry references a target biome whose layers, decorators, and objects drive the floating island's visual design, while the config here drives size, shape, altitude, rarity, and water level. Multiple entries are supported and selected by rarity per column unless mergeFloatingChildBiomes is enabled.") private KList floatingChildBiomes = new KList<>(); - @Desc("When true, every floating child entry is sampled independently and their solid masks are unioned, so multiple floating islands can stack, overlap, and collide instead of the picker choosing only one child per column.") + @Description("When true, every floating child entry is sampled independently and their solid masks are unioned, so multiple floating islands can stack, overlap, and collide instead of the picker choosing only one child per column.") private boolean mergeFloatingChildBiomes = false; @ArrayType(min = 1, type = IrisBiomeGeneratorLink.class) - @Desc("Generators for this biome. Multiple generators with different interpolation sizes will mix with other biomes how you would expect. This defines your biome height relative to the fluid height. Use negative for oceans.") + @Description("Generators for this biome. Multiple generators with different interpolation sizes will mix with other biomes how you would expect. This defines your biome height relative to the fluid height. Use negative for oceans.") private KList generators = new KList().qadd(new IrisBiomeGeneratorLink()); - @Desc("Optional volumetric surface terrain profile. Shapes projecting ledges, undercuts, arches, and fissures around this biome's height generators.") + @Description("Optional volumetric surface terrain profile. Shapes projecting ledges, undercuts, arches, and fissures around this biome's height generators.") private IrisTerrain3D terrain3D = null; @ArrayType(min = 1, type = IrisDepositGenerator.class) - @Desc("Define biome deposit generators that add onto the existing regional and global deposit generators") + @Description("Define biome deposit generators that add onto the existing regional and global deposit generators") private KList deposits = new KList<>(); @ArrayType(type = String.class) - @Desc("Optional exact host block ids that replace each ore deposit's surfaceReplaceableBlocks on exterior terrain inside this biome. Omit to inherit the deposit setting; an empty list forbids surface ore.") + @Description("Optional exact host block ids that replace each ore deposit's surfaceReplaceableBlocks on exterior terrain inside this biome. Omit to inherit the deposit setting; an empty list forbids surface ore.") private KList surfaceOreReplaceableBlocks = null; @MinNumber(0) @MaxNumber(1) - @Desc("Multiplier applied to the frequency of every ore deposit whose center is inside this biome. A value of 0.4 keeps 40% of ore veins while leaving non-ore deposits unchanged.") + @Description("Multiplier applied to the frequency of every ore deposit whose center is inside this biome. A value of 0.4 keeps 40% of ore veins while leaving non-ore deposits unchanged.") private double oreDepositFrequencyMultiplier = 1D; @MinNumber(0.01) @MaxNumber(16) - @Desc("Multiplier applied to the block count of every ore deposit whose center is inside this biome. Non-ore deposits are unchanged.") + @Description("Multiplier applied to the block count of every ore deposit whose center is inside this biome. Non-ore deposits are unchanged.") private double oreDepositSizeMultiplier = 1D; @ArrayType(min = 1, type = IrisDepositVariant.class) - @Desc("Deposit ore remap rules scoped to this biome. Each entry declares a vertical band and a source->replacement block id map. Applied before regional and dimension rules; first matching biome rule wins.") + @Description("Deposit ore remap rules scoped to this biome. Each entry declares a vertical band and a source->replacement block id map. Applied before regional and dimension rules; first matching biome rule wins.") private KList depositVariants = new KList<>(); private transient volatile InferredType inferredType; @Getter(AccessLevel.NONE) @Setter(AccessLevel.NONE) private final transient EnumMap inferredVariants = new EnumMap<>(InferredType.class); - @Desc("Collection of ores to be generated") + @Description("Collection of ores to be generated") @ArrayType(type = IrisOreGenerator.class, min = 1) private KList ores = new KList<>(); diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeColorRenderer.java b/core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeColorRenderer.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/object/IrisBiomeColorRenderer.java rename to core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeColorRenderer.java index 8a09c6374..bd856067d 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeColorRenderer.java +++ b/core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeColorRenderer.java @@ -16,10 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.render.RenderType; +import art.arcane.iris.generation.decoration.IrisDecorator; +import art.arcane.iris.structure.object.IrisObjectPlacement; + +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.studio.render.RenderType; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.data.VanillaBiomeColors; import art.arcane.volmlib.util.inventorygui.RandomColor; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustom.java b/core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeCustom.java similarity index 82% rename from core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustom.java rename to core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeCustom.java index aba7b5b05..16f839ddf 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustom.java +++ b/core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeCustom.java @@ -16,18 +16,18 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; -import art.arcane.iris.core.compat.ContentGate; -import art.arcane.iris.core.compat.KeyStatus; -import art.arcane.iris.core.nms.datapack.IDataFixer; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.DependsOn; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.pack.validation.ContentGate; +import art.arcane.iris.pack.validation.KeyStatus; +import art.arcane.iris.platform.bukkit.nms.datapack.IDataFixer; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.iris.pack.schema.annotation.DependsOn; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; @@ -45,63 +45,63 @@ import java.util.Locale; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("A custom biome, generated through a datapack") +@Description("A custom biome, generated through a datapack") @Data public class IrisBiomeCustom { @Required - @Desc("The resource key of this biome. Just a simple id such as 'plains' or something.") + @Description("The resource key of this biome. Just a simple id such as 'plains' or something.") private String id = ""; @MinNumber(-3) @MaxNumber(3) - @Desc("The biome's temperature") + @Description("The biome's temperature") private double temperature = 0.8; @MinNumber(-3) @MaxNumber(3) - @Desc("The biome's downfall amount (snow / rain), see preci") + @Description("The biome's downfall amount (snow / rain), see preci") private double humidity = 0.4; @DependsOn("spawnRarity") @ArrayType(min = 1, type = IrisBiomeCustomSpawn.class) - @Desc("The biome's mob spawns") + @Description("The biome's mob spawns") private KList spawns = new KList<>(); @ArrayType(min = 1, type = String.class) - @Desc("Biome tags to opt this custom biome into, such as minecraft:allows_surface_slime_spawns") + @Description("Biome tags to opt this custom biome into, such as minecraft:allows_surface_slime_spawns") private KList tags = new KList<>(); - @Desc("The biome's downfall type") + @Description("The biome's downfall type") private IrisBiomeCustomPrecipType downfallType = IrisBiomeCustomPrecipType.rain; - @Desc("Define an ambient particle to be rendered clientside (no server cost!)") + @Description("Define an ambient particle to be rendered clientside (no server cost!)") private IrisBiomeCustomParticle ambientParticle = null; @Required - @Desc("The biome's category type") + @Description("The biome's category type") private IrisBiomeCustomCategory category = IrisBiomeCustomCategory.plains; @MinNumber(0) @MaxNumber(20) - @Desc("The spawn rarity of any defined spawners") + @Description("The spawn rarity of any defined spawners") private int spawnRarity = 0; - @Desc("The color of the sky, top half of sky. (hex format)") + @Description("The color of the sky, top half of sky. (hex format)") private String skyColor = "#79a8e1"; - @Desc("The color of the fog, bottom half of sky. (hex format)") + @Description("The color of the fog, bottom half of sky. (hex format)") private String fogColor = "#c0d8e1"; - @Desc("The color of the water (hex format). Leave blank / don't define to not change") + @Description("The color of the water (hex format). Leave blank / don't define to not change") private String waterColor = "#3f76e4"; - @Desc("The color of water fog (hex format). Leave blank / don't define to not change") + @Description("The color of water fog (hex format). Leave blank / don't define to not change") private String waterFogColor = "#050533"; - @Desc("The color of the grass (hex format). Leave blank / don't define to not change") + @Description("The color of the grass (hex format). Leave blank / don't define to not change") private String grassColor = ""; - @Desc("The color of foliage (hex format). Leave blank / don't define to not change") + @Description("The color of foliage (hex format). Leave blank / don't define to not change") private String foliageColor = ""; /** diff --git a/core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeCustomCategory.java b/core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeCustomCategory.java new file mode 100644 index 000000000..3bb934d09 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeCustomCategory.java @@ -0,0 +1,75 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2022 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package art.arcane.iris.generation.biome; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("The custom biome category. Vanilla asks for this, basically what represents your biome closest?") +public enum IrisBiomeCustomCategory { + @Description("Tags the generated datapack biome as vanilla category 'beach' (shoreline biomes).") + beach, + + @Description("Tags the generated datapack biome as vanilla category 'desert' (hot, dry sand biomes).") + desert, + + @Description("Tags the generated datapack biome as vanilla category 'extreme_hills' (mountain biomes).") + extreme_hills, + + @Description("Tags the generated datapack biome as vanilla category 'forest' (tree-dense temperate biomes).") + forest, + + @Description("Tags the generated datapack biome as vanilla category 'icy' (snow and ice biomes).") + icy, + + @Description("Tags the generated datapack biome as vanilla category 'jungle'.") + jungle, + + @Description("Tags the generated datapack biome as vanilla category 'mesa' (badlands).") + mesa, + + @Description("Tags the generated datapack biome as vanilla category 'mushroom' (mushroom fields).") + mushroom, + + @Description("Tags the generated datapack biome as vanilla category 'nether'.") + nether, + + @Description("Tags the generated datapack biome as vanilla category 'none' (no classification).") + none, + + @Description("Tags the generated datapack biome as vanilla category 'ocean'.") + ocean, + + @Description("Tags the generated datapack biome as vanilla category 'plains'. This is the default when category is omitted.") + plains, + + @Description("Tags the generated datapack biome as vanilla category 'river'.") + river, + + @Description("Tags the generated datapack biome as vanilla category 'savanna'.") + savanna, + + @Description("Tags the generated datapack biome as vanilla category 'swamp'.") + swamp, + + @Description("Tags the generated datapack biome as vanilla category 'taiga'.") + taiga, + + @Description("Tags the generated datapack biome as vanilla category 'the_end'.") + the_end +} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustomParticle.java b/core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeCustomParticle.java similarity index 78% rename from core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustomParticle.java rename to core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeCustomParticle.java index 4e8cfb046..4c3cba1e1 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustomParticle.java +++ b/core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeCustomParticle.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; -import art.arcane.iris.util.common.data.registry.RegistryUtil; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; +import art.arcane.iris.platform.bukkit.registry.RegistryUtil; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -36,17 +36,17 @@ import org.bukkit.Particle; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("A custom biome ambient particle") +@Description("A custom biome ambient particle") @Data public class IrisBiomeCustomParticle { private final transient AtomicCache particleResolved = new AtomicCache<>(); @Required - @Desc("The biome's particle type") + @Description("The biome's particle type") private String particle = "minecraft:flash"; @MinNumber(1) @MaxNumber(10000) - @Desc("The rarity") + @Description("The rarity") private int rarity = 35; /** diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustomPrecipType.java b/core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeCustomPrecipType.java similarity index 77% rename from core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustomPrecipType.java rename to core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeCustomPrecipType.java index f44176a77..e6d8749eb 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustomPrecipType.java +++ b/core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeCustomPrecipType.java @@ -16,18 +16,18 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.documentation.Description; -@Desc("Snow, rain, or nothing") +@Description("Snow, rain, or nothing") public enum IrisBiomeCustomPrecipType { - @Desc("No downfall") + @Description("No downfall") none, - @Desc("Rain downfall") + @Description("Rain downfall") rain, - @Desc("Snow downfall") + @Description("Snow downfall") snow } diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustomSpawn.java b/core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeCustomSpawn.java similarity index 73% rename from core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustomSpawn.java rename to core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeCustomSpawn.java index 1354e3430..3d71d4139 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustomSpawn.java +++ b/core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeCustomSpawn.java @@ -16,16 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListEntityType; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; -import art.arcane.iris.util.common.data.registry.RegistryUtil; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListEntityType; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; +import art.arcane.iris.platform.bukkit.registry.RegistryUtil; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -39,13 +39,13 @@ import java.util.Locale; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("A custom biome spawn") +@Description("A custom biome spawn") @Data public class IrisBiomeCustomSpawn { private final transient AtomicCache typeResolved = new AtomicCache<>(); @Required @RegistryListEntityType - @Desc("The biome's entity type") + @Description("The biome's entity type") private String type = "minecraft:cow"; public EntityType getType() { @@ -68,18 +68,18 @@ public class IrisBiomeCustomSpawn { } @MinNumber(1) - @Desc("The min to spawn") + @Description("The min to spawn") private int minCount = 2; @MinNumber(1) - @Desc("The max to spawn") + @Description("The max to spawn") private int maxCount = 5; @MinNumber(1) @MaxNumber(1000) - @Desc("The weight in this group. Higher weight, the more common this type is spawned") + @Description("The weight in this group. Higher weight, the more common this type is spawned") private int weight = 1; - @Desc("The rarity") + @Description("The rarity") private IrisBiomeCustomSpawnType group = IrisBiomeCustomSpawnType.MISC; } diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustomSpawnType.java b/core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeCustomSpawnType.java similarity index 66% rename from core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustomSpawnType.java rename to core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeCustomSpawnType.java index ef614b7e6..dae9e1d85 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustomSpawnType.java +++ b/core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeCustomSpawnType.java @@ -16,33 +16,33 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.documentation.Description; -@Desc("The mob spawn group") +@Description("The mob spawn group") public enum IrisBiomeCustomSpawnType { - @Desc("Typical monsters that spawn at night, like zombies and skeletons") + @Description("Typical monsters that spawn at night, like zombies and skeletons") MONSTER, - @Desc("Typical creatures like sheep, pigs, cows") + @Description("Typical creatures like sheep, pigs, cows") CREATURE, - @Desc("Eg bats") + @Description("Eg bats") AMBIENT, - @Desc("Axolotls") + @Description("Axolotls") AXOLOTLS, - @Desc("Odd spawn group but ok") + @Description("Odd spawn group but ok") UNDERGROUND_WATER_CREATURE, - @Desc("Water mobs like squid, dolphins") + @Description("Water mobs like squid, dolphins") WATER_CREATURE, - @Desc("Fish") + @Description("Fish") WATER_AMBIENT, - @Desc("Unknown") + @Description("Unknown") MISC } diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeDerivatives.java b/core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeDerivatives.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/object/IrisBiomeDerivatives.java rename to core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeDerivatives.java index f5e958438..ce382c9f1 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeDerivatives.java +++ b/core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeDerivatives.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.util.common.data.registry.RegistryUtil; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.platform.bukkit.registry.RegistryUtil; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; import org.bukkit.NamespacedKey; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeGenLinks.java b/core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeGenLinks.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/object/IrisBiomeGenLinks.java rename to core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeGenLinks.java index 08371424f..8d6e21d7d 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeGenLinks.java +++ b/core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeGenLinks.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.volmlib.util.collection.KMap; /** diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeGeneratorLink.java b/core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeGeneratorLink.java similarity index 71% rename from core/src/main/java/art/arcane/iris/engine/object/IrisBiomeGeneratorLink.java rename to core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeGeneratorLink.java index 77881b1bb..37d902749 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeGeneratorLink.java +++ b/core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeGeneratorLink.java @@ -16,18 +16,20 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.object.annotations.DependsOn; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListResource; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; -import art.arcane.iris.util.common.data.DataProvider; -import art.arcane.iris.util.project.interpolation.IrisInterpolation; +import art.arcane.iris.generation.noise.IrisGenerator; + +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.pack.schema.annotation.DependsOn; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; +import art.arcane.iris.generation.block.DataProvider; +import art.arcane.volmlib.util.interpolation.IrisInterpolation; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -37,25 +39,25 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("This represents a link to a generator for a biome") +@Description("This represents a link to a generator for a biome") @Data public class IrisBiomeGeneratorLink { private final transient AtomicCache gen = new AtomicCache<>(); @RegistryListResource(IrisGenerator.class) - @Desc("The generator id") + @Description("The generator id") private String generator = "default"; @DependsOn({"min", "max"}) @Required @MinNumber(-2032) @MaxNumber(2032) - @Desc("The min block value (value + fluidHeight)") + @Description("The min block value (value + fluidHeight)") private int min = 0; @DependsOn({"min", "max"}) @Required @MinNumber(-2032) @MaxNumber(2032) - @Desc("The max block value (value + fluidHeight)") + @Description("The max block value (value + fluidHeight)") private int max = 0; public IrisGenerator getCachedGenerator(DataProvider g) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeLayerGenerator.java b/core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeLayerGenerator.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/object/IrisBiomeLayerGenerator.java rename to core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeLayerGenerator.java index 3fcb23a3d..53f68c1b0 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeLayerGenerator.java +++ b/core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeLayerGenerator.java @@ -16,18 +16,23 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisSlopeClip; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectPlacement; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; -import art.arcane.iris.util.common.data.BoundBlockState; -import art.arcane.iris.util.project.noise.CNG; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.iris.generation.block.B; +import art.arcane.iris.generation.block.BoundBlockState; +import art.arcane.volmlib.util.noise.CNG; +import art.arcane.volmlib.util.stream.ProceduralStream; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeOres.java b/core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeOres.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/object/IrisBiomeOres.java rename to core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeOres.java index 0551d3d88..c9f540807 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeOres.java +++ b/core/src/main/java/art/arcane/iris/generation/biome/IrisBiomeOres.java @@ -16,12 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.generation.decoration.IrisOreGenerator; +import art.arcane.iris.generation.decoration.IrisOreGeneratorBounds; +import art.arcane.iris.generation.decoration.IrisProceduralBlocks; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.cache.AtomicCache; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; +import art.arcane.iris.generation.block.B; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KSet; import art.arcane.volmlib.util.math.RNG; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisBiomePaletteLayer.java b/core/src/main/java/art/arcane/iris/generation/biome/IrisBiomePaletteLayer.java similarity index 83% rename from core/src/main/java/art/arcane/iris/engine/object/IrisBiomePaletteLayer.java rename to core/src/main/java/art/arcane/iris/generation/biome/IrisBiomePaletteLayer.java index a39845070..b035954d0 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisBiomePaletteLayer.java +++ b/core/src/main/java/art/arcane/iris/generation/biome/IrisBiomePaletteLayer.java @@ -16,22 +16,27 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.data.cache.LazyBoundedCache; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.DependsOn; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.generation.block.IrisBlockData; +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.generation.noise.NoiseStyle; +import art.arcane.iris.generation.terrain.IrisSlopeClip; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.generation.cache.LazyBoundedCache; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.iris.pack.schema.annotation.DependsOn; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.volmlib.util.noise.CNG; import lombok.AccessLevel; import lombok.AllArgsConstructor; import lombok.Data; @@ -47,7 +52,7 @@ import java.util.concurrent.atomic.AtomicReference; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("A layer of surface / subsurface material in biomes") +@Description("A layer of surface / subsurface material in biomes") @Data public class IrisBiomePaletteLayer { private static final int LAYER_GENERATOR_CACHE_SIZE = 32; @@ -61,28 +66,28 @@ public class IrisBiomePaletteLayer { @Setter(AccessLevel.NONE) private final transient AtomicReference recentLayerGenerator = new AtomicReference<>(); private final transient AtomicCache heightGenerator = new AtomicCache<>(); - @Desc("The style of noise") + @Description("The style of noise") private IrisGeneratorStyle style = NoiseStyle.STATIC.style(); @DependsOn({"minHeight", "maxHeight"}) @MinNumber(0) @MaxNumber(2032) - @Desc("The min thickness of this layer") + @Description("The min thickness of this layer") private int minHeight = 1; @DependsOn({"minHeight", "maxHeight"}) @MinNumber(1) @MaxNumber(2032) - @Desc("The max thickness of this layer") + @Description("The max thickness of this layer") private int maxHeight = 1; - @Desc("If set, this layer only shows where the terrain slope is within these bounds; outside them the layer is skipped entirely. Thickness is not scaled by slope.") + @Description("If set, this layer only shows where the terrain slope is within these bounds; outside them the layer is skipped entirely. Thickness is not scaled by slope.") private IrisSlopeClip slopeCondition = new IrisSlopeClip(); @MinNumber(0.0001) - @Desc("The terrain zoom mostly for zooming in on a wispy palette") + @Description("The terrain zoom mostly for zooming in on a wispy palette") private double zoom = 5; @Required @ArrayType(min = 1, type = IrisBlockData.class) - @Desc("The palette of blocks to be used in this layer") + @Description("The palette of blocks to be used in this layer") private KList palette = new KList().qadd(new IrisBlockData("GRASS_BLOCK")); public CNG getHeightGenerator(RNG rng, IrisData data) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisCustomBiomeAliasResolver.java b/core/src/main/java/art/arcane/iris/generation/biome/IrisCustomBiomeAliasResolver.java similarity index 85% rename from core/src/main/java/art/arcane/iris/engine/object/IrisCustomBiomeAliasResolver.java rename to core/src/main/java/art/arcane/iris/generation/biome/IrisCustomBiomeAliasResolver.java index 3ad56ef24..e362bccf4 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisCustomBiomeAliasResolver.java +++ b/core/src/main/java/art/arcane/iris/generation/biome/IrisCustomBiomeAliasResolver.java @@ -1,6 +1,8 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; -import art.arcane.iris.core.nms.datapack.IDataFixer; +import art.arcane.iris.generation.terrain.IrisDimension; + +import art.arcane.iris.platform.bukkit.nms.datapack.IDataFixer; import java.io.IOException; import java.util.Collection; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisFloatingChildBiomes.java b/core/src/main/java/art/arcane/iris/generation/biome/IrisFloatingChildBiomes.java similarity index 50% rename from core/src/main/java/art/arcane/iris/engine/object/IrisFloatingChildBiomes.java rename to core/src/main/java/art/arcane/iris/generation/biome/IrisFloatingChildBiomes.java index bca701a99..af7c5c03a 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisFloatingChildBiomes.java +++ b/core/src/main/java/art/arcane/iris/generation/biome/IrisFloatingChildBiomes.java @@ -16,19 +16,32 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListBlockType; -import art.arcane.iris.engine.object.annotations.RegistryListResource; -import art.arcane.iris.engine.object.annotations.Snippet; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.iris.generation.cave.IrisCaveProfileSampler; +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.generation.noise.NoiseStyle; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisDimensionCarvingEntry; +import art.arcane.iris.generation.terrain.IrisDimensionCarvingResolver; +import art.arcane.iris.pack.validation.CompatPools; +import art.arcane.iris.pack.value.OverrideMode; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.structure.object.IrisObjectScale; + +import art.arcane.volmlib.util.math.Rarity; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListBlockType; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; +import art.arcane.iris.pack.schema.annotation.Snippet; +import art.arcane.volmlib.util.noise.CNG; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; import lombok.AllArgsConstructor; @@ -42,9 +55,9 @@ import lombok.experimental.Accessors; @NoArgsConstructor @AllArgsConstructor @EqualsAndHashCode -@Desc("Declares a floating biome layer above this biome's terrain. A 2D footprint noise decides which columns are part of the island (threshold + style control blankets, swirls, scattered blobs). The top profile is driven by the target biome's own terrain generators (so a mountains biome produces real peaks, desert produces real dunes). The bottom tail hanging below is a separately configurable noise (pick VASCULAR for drippy roots, FRACTAL_RM_SIMPLEX for crystalline spikes, PERLIN for smooth rounded bowls).") +@Description("Declares a floating biome layer above this biome's terrain. A 2D footprint noise decides which columns are part of the island (threshold + style control blankets, swirls, scattered blobs). The top profile is driven by the target biome's own terrain generators (so a mountains biome produces real peaks, desert produces real dunes). The bottom tail hanging below is a separately configurable noise (pick VASCULAR for drippy roots, FRACTAL_RM_SIMPLEX for crystalline spikes, PERLIN for smooth rounded bowls).") @Data -public class IrisFloatingChildBiomes implements IRare { +public class IrisFloatingChildBiomes implements Rarity { private final transient AtomicCache resolvedBiome = new AtomicCache<>(); private final transient AtomicCache footprintCache = new AtomicCache<>(); private final transient AtomicCache edgeTaperProfileCache = new AtomicCache<>(); @@ -146,168 +159,168 @@ public class IrisFloatingChildBiomes implements IRare { } @RegistryListResource(IrisBiome.class) - @Desc("The target biome whose visual design (layers, palette, decorators, surface objects, derivative, and — when topShapeMode=BIOME — generator profile) drives the floating island. Leave empty to reuse the parent biome (self).") + @Description("The target biome whose visual design (layers, palette, decorators, surface objects, derivative, and — when topShapeMode=BIOME — generator profile) drives the floating island. Leave empty to reuse the parent biome (self).") private String biome = ""; @MinNumber(1) @MaxNumber(512) - @Desc("Selection rarity when multiple floating child entries are defined on one parent biome. Lower is more common.") + @Description("Selection rarity when multiple floating child entries are defined on one parent biome. Lower is more common.") private int rarity = 1; - @Desc("2D noise that decides which columns are part of this island. Set feature size via the style's own zoom field (e.g. {\"style\":\"CELLULAR\",\"zoom\":0.3} for ~30-block shards, {\"style\":\"SIMPLEX\",\"zoom\":1.0} for ~100-block blobs). Pick SIMPLEX for smooth blobs, CELLULAR for angular shards, VASCULAR for vein/branch strips, FRACTAL_FBM_SIMPLEX for large irregular blanket regions. Fracture (domain warp) this to get swirly silhouettes.") + @Description("2D noise that decides which columns are part of this island. Set feature size via the style's own zoom field (e.g. {\"style\":\"CELLULAR\",\"zoom\":0.3} for ~30-block shards, {\"style\":\"SIMPLEX\",\"zoom\":1.0} for ~100-block blobs). Pick SIMPLEX for smooth blobs, CELLULAR for angular shards, VASCULAR for vein/branch strips, FRACTAL_FBM_SIMPLEX for large irregular blanket regions. Fracture (domain warp) this to get swirly silhouettes.") private IrisGeneratorStyle footprintStyle = NoiseStyle.SIMPLEX.style(); @MinNumber(0) @MaxNumber(1) - @Desc("Coverage threshold (0..1). Roughly the fraction of the world that is NOT island: 0.0 = every column becomes island, 0.5 ≈ 50% of columns, 0.8 ≈ sparse scattered ~20% coverage, 1.0 = no islands at all. Values near 0.5 feel most natural.") + @Description("Coverage threshold (0..1). Roughly the fraction of the world that is NOT island: 0.0 = every column becomes island, 0.5 ≈ 50% of columns, 0.8 ≈ sparse scattered ~20% coverage, 1.0 = no islands at all. Values near 0.5 feel most natural.") private double footprintThreshold = 0.5; @MinNumber(2) @MaxNumber(32) - @Desc("Width in blocks of the rounded transition from the floating island contour to its full thickness. Smaller values make a tighter edge; larger values make a broader rounded underside.") + @Description("Width in blocks of the rounded transition from the floating island contour to its full thickness. Smaller values make a tighter edge; larger values make a broader rounded underside.") private int edgeTaperWidth = FloatingIslandEdgeProfile.DEFAULT_WIDTH; @MinNumber(0.25) @MaxNumber(4) - @Desc("Shape exponent for the rounded edge. Values below 1 fill into a softer, fuller curve; values above 1 keep the rim thinner before rising into the island interior.") + @Description("Shape exponent for the rounded edge. Values below 1 fill into a softer, fuller curve; values above 1 keep the rim thinner before rising into the island interior.") private double edgeTaperExponent = FloatingIslandEdgeProfile.DEFAULT_EXPONENT; - @Desc("Broad 2D noise that organically varies the rounded edge without changing the island footprint. Low-frequency SIMPLEX or PERLIN styles give coherent natural contours; high-frequency or cellular styles can look speckled.") + @Description("Broad 2D noise that organically varies the rounded edge without changing the island footprint. Low-frequency SIMPLEX or PERLIN styles give coherent natural contours; high-frequency or cellular styles can look speckled.") private IrisGeneratorStyle edgeTaperVariationStyle = NoiseStyle.SIMPLEX.style().zoomed(0.18D); @MinNumber(0) @MaxNumber(8) - @Desc("Maximum number of blocks by which edgeTaperVariationStyle locally widens or narrows the rounded transition. 0 disables variation. Runtime keeps the resulting local width between 2 and 32 blocks so every protected rim column remains connected.") + @Description("Maximum number of blocks by which edgeTaperVariationStyle locally widens or narrows the rounded transition. 0 disables variation. Runtime keeps the resulting local width between 2 and 32 blocks so every protected rim column remains connected.") private double edgeTaperVariationAmplitude = 0.0D; - @Desc("Picker noise used when multiple floating child entries exist. Samples once per column to deterministically choose which entry's footprint is tested there. Use a large style zoom (e.g. zoom: 4 for ~400-block regions) so each entry owns broad coherent areas.") + @Description("Picker noise used when multiple floating child entries exist. Samples once per column to deterministically choose which entry's footprint is tested there. Use a large style zoom (e.g. zoom: 4 for ~400-block regions) so each entry owns broad coherent areas.") private IrisGeneratorStyle pickerStyle = NoiseStyle.SIMPLEX.style(); - @Desc("Altitude noise — varies the base platform Y across one island so it isn't a flat plane. Use a large style zoom (e.g. zoom: 2 for ~200-block altitude patches) so an island sits at roughly one altitude.") + @Description("Altitude noise — varies the base platform Y across one island so it isn't a flat plane. Use a large style zoom (e.g. zoom: 2 for ~200-block altitude patches) so an island sits at roughly one altitude.") private IrisGeneratorStyle altitudeStyle = NoiseStyle.SIMPLEX.style(); @MinNumber(0) @MaxNumber(2032) - @Desc("Minimum absolute world Y where the island base can sit. Island altitude is independent of the parent biome's terrain height; altitudeStyle noise varies the base between min and max per column.") + @Description("Minimum absolute world Y where the island base can sit. Island altitude is independent of the parent biome's terrain height; altitudeStyle noise varies the base between min and max per column.") private int minHeightAboveSurface = 160; @MinNumber(0) @MaxNumber(2032) - @Desc("Maximum absolute world Y where the island base can sit. Island altitude is independent of the parent biome's terrain height; altitudeStyle noise varies the base between min and max per column.") + @Description("Maximum absolute world Y where the island base can sit. Island altitude is independent of the parent biome's terrain height; altitudeStyle noise varies the base between min and max per column.") private int maxHeightAboveSurface = 210; - @Desc("Optional absolute minimum world Y for the island base. When set, baseY is clamped upward so the tail bottom stays above this value.") + @Description("Optional absolute minimum world Y for the island base. When set, baseY is clamped upward so the tail bottom stays above this value.") private Integer minAbsoluteY = null; - @Desc("Optional absolute maximum world Y for the island top. When set, the top is clamped downward.") + @Description("Optional absolute maximum world Y for the island top. When set, the top is clamped downward.") private Integer maxAbsoluteY = null; - @Desc("How the top profile of the island is shaped. BIOME = evaluate target biome's own generators (mountains biome -> real mountains). NOISE = use topShapeStyle as a user-controlled heightmap. FLAT = constant maxTopHeight slab.") + @Description("How the top profile of the island is shaped. BIOME = evaluate target biome's own generators (mountains biome -> real mountains). NOISE = use topShapeStyle as a user-controlled heightmap. FLAT = constant maxTopHeight slab.") private TopShapeMode topShapeMode = TopShapeMode.BIOME; @MinNumber(0) @MaxNumber(512) - @Desc("Maximum top profile height in blocks above the island base. Caps how tall the biome terrain can grow on top.") + @Description("Maximum top profile height in blocks above the island base. Caps how tall the biome terrain can grow on top.") private int maxTopHeight = 40; - @Desc("Used only when topShapeMode=NOISE. 2D noise driving the top heightmap. Set feature scale via the style's zoom field (small zoom = rugged peaks, large zoom = broad rolling shapes).") + @Description("Used only when topShapeMode=NOISE. 2D noise driving the top heightmap. Set feature scale via the style's zoom field (small zoom = rugged peaks, large zoom = broad rolling shapes).") private IrisGeneratorStyle topShapeStyle = NoiseStyle.SIMPLEX.style(); @MinNumber(0) @MaxNumber(1) - @Desc("Amplitude multiplier applied to the NOISE top profile. 0 = no top (flat at base), 1 = full maxTopHeight range.") + @Description("Amplitude multiplier applied to the NOISE top profile. 0 = no top (flat at base), 1 = full maxTopHeight range.") private double topShapeAmp = 1.0; - @Desc("2D noise driving the bottom tail hanging below the island base. VASCULAR = drippy organic roots. FRACTAL_RM_SIMPLEX = crystalline spikes. CELLULAR = jagged chunks. PERLIN = smooth rounded bowl. SIMPLEX = gentle lobes. Set feature scale via the style's zoom field.") + @Description("2D noise driving the bottom tail hanging below the island base. VASCULAR = drippy organic roots. FRACTAL_RM_SIMPLEX = crystalline spikes. CELLULAR = jagged chunks. PERLIN = smooth rounded bowl. SIMPLEX = gentle lobes. Set feature scale via the style's zoom field.") private IrisGeneratorStyle bottomStyle = NoiseStyle.SIMPLEX.style(); @MinNumber(0) @MaxNumber(512) - @Desc("Minimum blocks below the base where the tail extends.") + @Description("Minimum blocks below the base where the tail extends.") private int bottomDepthMin = 4; @MinNumber(0) @MaxNumber(512) - @Desc("Maximum blocks below the base where the tail extends.") + @Description("Maximum blocks below the base where the tail extends.") private int bottomDepthMax = 20; @MinNumber(0.1) @MaxNumber(8) - @Desc("Power curve applied to the bottom noise before mapping to depth. >1 = most columns shallow with occasional deeper spikes (sparse roots). <1 = most columns deep with occasional shallow spots (dense curtains). 1.0 = linear.") + @Description("Power curve applied to the bottom noise before mapping to depth. >1 = most columns shallow with occasional deeper spikes (sparse roots). <1 = most columns deep with occasional shallow spots (dense curtains). 1.0 = linear.") private double bottomExponent = 1.0; - @Desc("Controls the material palette near the island underside. DEPTH keeps the old top-down depth behavior. MIRROR_TOP uses the target biome's shallow/top palette from the underside upward. CUSTOM uses bottomPalette near the underside while keeping the target biome palette near the top.") + @Description("Controls the material palette near the island underside. DEPTH keeps the old top-down depth behavior. MIRROR_TOP uses the target biome's shallow/top palette from the underside upward. CUSTOM uses bottomPalette near the underside while keeping the target biome palette near the top.") private FloatingBottomPaletteMode bottomPaletteMode = FloatingBottomPaletteMode.DEPTH; @ArrayType(min = 1, type = IrisBiomePaletteLayer.class) - @Desc("Custom palette layers used near the underside when bottomPaletteMode=CUSTOM. The layer format is the same as normal biome layers.") + @Description("Custom palette layers used near the underside when bottomPaletteMode=CUSTOM. The layer format is the same as normal biome layers.") private KList bottomPalette = new KList<>(); @MinNumber(1) @MaxNumber(512) - @Desc("Hard cap on the total Y-extent (top minus bottom) of a single island column. Safety limit.") + @Description("Hard cap on the total Y-extent (top minus bottom) of a single island column. Safety limit.") private int maxThickness = 96; - @Desc("Optional 3D noise that shifts the footprint's XZ sample position per Y layer — naturalizes the walls so they stop looking like a straight extrusion of the 2D footprint. Leave null to disable and keep straight vertical walls. Good defaults: {\"style\":\"SIMPLEX\",\"zoom\":0.25} for gentle undulation, {\"style\":\"FRACTAL_FBM_SIMPLEX\",\"zoom\":0.4} for craggier walls.") + @Description("Optional 3D noise that shifts the footprint's XZ sample position per Y layer — naturalizes the walls so they stop looking like a straight extrusion of the 2D footprint. Leave null to disable and keep straight vertical walls. Good defaults: {\"style\":\"SIMPLEX\",\"zoom\":0.25} for gentle undulation, {\"style\":\"FRACTAL_FBM_SIMPLEX\",\"zoom\":0.4} for craggier walls.") private IrisGeneratorStyle wallWarpStyle = null; @MinNumber(0) @MaxNumber(64) - @Desc("Amplitude in blocks of the per-layer XZ shift applied when wallWarpStyle is set. 0 = no warp (straight walls). 4..8 = gentle naturalization. 16+ = heavily meandering walls. Ignored when wallWarpStyle is null.") + @Description("Amplitude in blocks of the per-layer XZ shift applied when wallWarpStyle is set. 0 = no warp (straight walls). 4..8 = gentle naturalization. 16+ = heavily meandering walls. Ignored when wallWarpStyle is null.") private double wallWarpAmplitude = 6.0; - @Desc("Optional 3D noise that swiss-cheeses the island interior by marking individual blocks as air when the noise exceeds carveThreshold. Leave null to keep the island solid. Good defaults: {\"style\":\"CELLULAR\",\"zoom\":0.3} for bubble pockets, {\"style\":\"VASCULAR\",\"zoom\":0.25} for wormy tunnels.") + @Description("Optional 3D noise that swiss-cheeses the island interior by marking individual blocks as air when the noise exceeds carveThreshold. Leave null to keep the island solid. Good defaults: {\"style\":\"CELLULAR\",\"zoom\":0.3} for bubble pockets, {\"style\":\"VASCULAR\",\"zoom\":0.25} for wormy tunnels.") private IrisGeneratorStyle carveStyle = null; - @Desc("Optional carving biome key or dimension carving entry id whose caveProfile drives floating-island internal air pockets. Dimension carving ids resolve first; biome keys such as carving/mushroom resolve second. When set, this overrides carveStyle while carveThreshold remains a final tuning bias.") + @Description("Optional carving biome key or dimension carving entry id whose caveProfile drives floating-island internal air pockets. Dimension carving ids resolve first; biome keys such as carving/mushroom resolve second. When set, this overrides carveStyle while carveThreshold remains a final tuning bias.") private String carving = ""; @MinNumber(0) @MaxNumber(1) - @Desc("Threshold (0..1) above which carveStyle noise carves air pockets. 1.0 = no direct-noise carving. 0.75 = sparse pockets. 0.55 = heavy swiss-cheese. 0.4 = shredded lattice. When carving is set, lower values add a final positive threshold bias to the referenced caveProfile.") + @Description("Threshold (0..1) above which carveStyle noise carves air pockets. 1.0 = no direct-noise carving. 0.75 = sparse pockets. 0.55 = heavy swiss-cheese. 0.4 = shredded lattice. When carving is set, lower values add a final positive threshold bias to the referenced caveProfile.") private double carveThreshold = 1.0; - @Desc("Optional water surface height above the island base, in blocks. null = no internal water. Positive = water fills any dip in the top profile up to baseY + localFluidHeight (forms lakes/ponds in concavities of the biome-top heightmap).") + @Description("Optional water surface height above the island base, in blocks. null = no internal water. Positive = water fills any dip in the top profile up to baseY + localFluidHeight (forms lakes/ponds in concavities of the biome-top heightmap).") private Integer localFluidHeight = null; - @Desc("Block used for the internal water pool when localFluidHeight is positive.") + @Description("Block used for the internal water pool when localFluidHeight is positive.") @RegistryListBlockType private String fluidBlock = "minecraft:water"; - @Desc("When true, the target biome's decorators apply to the island's top surface.") + @Description("When true, the target biome's decorators apply to the island's top surface.") private boolean inheritDecorators = true; - @Desc("When true, the target biome's surface objects are placed on the island's top surface instead of the parent terrain.") + @Description("When true, the target biome's surface objects are placed on the island's top surface instead of the parent terrain.") private boolean inheritObjects = true; @MinNumber(0.01) @MaxNumber(1) - @Desc("Uniform shrink factor applied to every object placed on this floating island (inherited, extra, and free-floating). 1.0 = native size, 0.5 = half size, 0.25 = quarter. Useful for making small floating biomes feel believable.") + @Description("Uniform shrink factor applied to every object placed on this floating island (inherited, extra, and free-floating). 1.0 = native size, 0.5 = half size, 0.25 = quarter. Useful for making small floating biomes feel believable.") private double objectShrinkFactor = 1.0; @ArrayType(min = 1, type = IrisObjectPlacement.class) - @Desc("Additional object placements anchored to the island top.") + @Description("Additional object placements anchored to the island top.") private KList extraObjects = new KList<>(); @ArrayType(min = 1, type = IrisObjectPlacement.class) - @Desc("Additional object placements that float freely in air, independent of the island. Forced to ObjectPlaceMode.FLOATING.") + @Description("Additional object placements that float freely in air, independent of the island. Forced to ObjectPlaceMode.FLOATING.") private KList floatingObjects = new KList<>(); - @Desc("Visualization color for this floating child in Iris Studio.") + @Description("Visualization color for this floating child in Iris Studio.") private String color = null; - @Desc("Controls how topObjectOverrides are combined with the inherited surface objects from the target biome. INHERIT_ONLY (default) = behaves identically to before this field was added. MERGE = appends overrides after inherited objects. REPLACE = uses only overrides, ignoring all inherited objects.") + @Description("Controls how topObjectOverrides are combined with the inherited surface objects from the target biome. INHERIT_ONLY (default) = behaves identically to before this field was added. MERGE = appends overrides after inherited objects. REPLACE = uses only overrides, ignoring all inherited objects.") private OverrideMode topObjectMode = OverrideMode.INHERIT_ONLY; - @Desc("Controls how bottomObjectOverrides are combined. INHERIT_ONLY (default) = no bottom objects placed (there is no inherited bottom set). MERGE = same as REPLACE for bottom (no inherited source). REPLACE = uses bottomObjectOverrides list only.") + @Description("Controls how bottomObjectOverrides are combined. INHERIT_ONLY (default) = no bottom objects placed (there is no inherited bottom set). MERGE = same as REPLACE for bottom (no inherited source). REPLACE = uses bottomObjectOverrides list only.") private OverrideMode bottomObjectMode = OverrideMode.INHERIT_ONLY; @ArrayType(min = 1, type = IrisObjectPlacement.class) - @Desc("Object placements that override or supplement the inherited surface objects on the island TOP. Behaviour depends on topObjectMode. INHERIT_ONLY = this list is ignored. MERGE = appended after inherited. REPLACE = used instead of inherited.") + @Description("Object placements that override or supplement the inherited surface objects on the island TOP. Behaviour depends on topObjectMode. INHERIT_ONLY = this list is ignored. MERGE = appended after inherited. REPLACE = used instead of inherited.") private KList topObjectOverrides = new KList<>(); @ArrayType(min = 1, type = IrisObjectPlacement.class) - @Desc("Object placements anchored to the island BOTTOM face. Each entry is auto-inverted 180 degrees around the X axis and placed flush against the lowest solid face of the island, so objects appear to hang upside-down from the underside. WARNING: directional blocks (stairs, doors, slabs) will not render correctly when flipped — use non-directional content (logs, leaves, stone, mycelium, ice, glass) for bottom placements.") + @Description("Object placements anchored to the island BOTTOM face. Each entry is auto-inverted 180 degrees around the X axis and placed flush against the lowest solid face of the island, so objects appear to hang upside-down from the underside. WARNING: directional blocks (stairs, doors, slabs) will not render correctly when flipped — use non-directional content (logs, leaves, stone, mycelium, ice, glass) for bottom placements.") private KList bottomObjectOverrides = new KList<>(); public KList resolveTopObjects(IrisBiome target) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisVanillaBiomeTags.java b/core/src/main/java/art/arcane/iris/generation/biome/IrisVanillaBiomeTags.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/object/IrisVanillaBiomeTags.java rename to core/src/main/java/art/arcane/iris/generation/biome/IrisVanillaBiomeTags.java index 8e7cb261a..6326c7fd2 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisVanillaBiomeTags.java +++ b/core/src/main/java/art/arcane/iris/generation/biome/IrisVanillaBiomeTags.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; import java.util.HashMap; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/object/TopShapeMode.java b/core/src/main/java/art/arcane/iris/generation/biome/TopShapeMode.java similarity index 57% rename from core/src/main/java/art/arcane/iris/engine/object/TopShapeMode.java rename to core/src/main/java/art/arcane/iris/generation/biome/TopShapeMode.java index 8dcf8028a..104206c22 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/TopShapeMode.java +++ b/core/src/main/java/art/arcane/iris/generation/biome/TopShapeMode.java @@ -16,18 +16,18 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.documentation.Description; -@Desc("How the top profile of a floating-child island is shaped.") +@Description("How the top profile of a floating-child island is shaped.") public enum TopShapeMode { - @Desc("Evaluate the target biome's own terrain generators to build the island top. Mountains biome produces real peaks, desert produces dunes, plains is flat. Recommended default.") + @Description("Evaluate the target biome's own terrain generators to build the island top. Mountains biome produces real peaks, desert produces dunes, plains is flat. Recommended default.") BIOME, - @Desc("Drive the top profile from topShapeStyle noise, independent of the target biome's generators. Amplitude controlled by topShapeAmp.") + @Description("Drive the top profile from topShapeStyle noise, independent of the target biome's generators. Amplitude controlled by topShapeAmp.") NOISE, - @Desc("Flat slab on top, topHeight blocks above the base. Ignores noise and biome generators.") + @Description("Flat slab on top, topHeight blocks above the base. Ignores noise and biome generators.") FLAT } diff --git a/core/src/main/java/art/arcane/iris/util/common/data/B.java b/core/src/main/java/art/arcane/iris/generation/block/B.java similarity index 99% rename from core/src/main/java/art/arcane/iris/util/common/data/B.java rename to core/src/main/java/art/arcane/iris/generation/block/B.java index af5f91f5c..e5997d2e9 100644 --- a/core/src/main/java/art/arcane/iris/util/common/data/B.java +++ b/core/src/main/java/art/arcane/iris/generation/block/B.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.common.data; +package art.arcane.iris.generation.block; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; diff --git a/core/src/main/java/art/arcane/iris/engine/object/BlockDataMergeSupport.java b/core/src/main/java/art/arcane/iris/generation/block/BlockDataMergeSupport.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/object/BlockDataMergeSupport.java rename to core/src/main/java/art/arcane/iris/generation/block/BlockDataMergeSupport.java index 2c12aedfe..c228fdb7c 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/BlockDataMergeSupport.java +++ b/core/src/main/java/art/arcane/iris/generation/block/BlockDataMergeSupport.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.block; import art.arcane.iris.platform.bukkit.BukkitBlockState; import art.arcane.iris.spi.PlatformBlockState; @@ -28,7 +28,7 @@ public final class BlockDataMergeSupport { PLATFORM_MERGER = merger; } - static PlatformBlockState merge(PlatformBlockState base, PlatformBlockState update) { + public static PlatformBlockState merge(PlatformBlockState base, PlatformBlockState update) { StateMerger merger = PLATFORM_MERGER; if (merger != null) { return merger.merge(base, update); diff --git a/core/src/main/java/art/arcane/iris/util/common/data/BoundBlockState.java b/core/src/main/java/art/arcane/iris/generation/block/BoundBlockState.java similarity index 97% rename from core/src/main/java/art/arcane/iris/util/common/data/BoundBlockState.java rename to core/src/main/java/art/arcane/iris/generation/block/BoundBlockState.java index da0b30fbc..86f7fea94 100644 --- a/core/src/main/java/art/arcane/iris/util/common/data/BoundBlockState.java +++ b/core/src/main/java/art/arcane/iris/generation/block/BoundBlockState.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.data; +package art.arcane.iris.generation.block; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; diff --git a/core/src/main/java/art/arcane/iris/util/common/data/DataProvider.java b/core/src/main/java/art/arcane/iris/generation/block/DataProvider.java similarity index 90% rename from core/src/main/java/art/arcane/iris/util/common/data/DataProvider.java rename to core/src/main/java/art/arcane/iris/generation/block/DataProvider.java index 5575c8157..3506a91ae 100644 --- a/core/src/main/java/art/arcane/iris/util/common/data/DataProvider.java +++ b/core/src/main/java/art/arcane/iris/generation/block/DataProvider.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.data; +package art.arcane.iris.generation.block; -import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.pack.loading.IrisData; public interface DataProvider { IrisData getData(); diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisBlockData.java b/core/src/main/java/art/arcane/iris/generation/block/IrisBlockData.java similarity index 85% rename from core/src/main/java/art/arcane/iris/engine/object/IrisBlockData.java rename to core/src/main/java/art/arcane/iris/generation/block/IrisBlockData.java index 0608986db..e0000b5c7 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisBlockData.java +++ b/core/src/main/java/art/arcane/iris/generation/block/IrisBlockData.java @@ -16,25 +16,24 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.block; -import art.arcane.iris.core.compat.ContentGate; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListBlockType; -import art.arcane.iris.engine.object.annotations.RegistryMapBlockState; -import art.arcane.iris.engine.object.annotations.Required; +import art.arcane.iris.pack.validation.ContentGate; +import art.arcane.iris.integration.Identifier; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListBlockType; +import art.arcane.iris.pack.schema.annotation.RegistryMapBlockState; +import art.arcane.iris.pack.schema.annotation.Required; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; -import art.arcane.iris.util.common.data.B; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; @@ -47,7 +46,7 @@ import java.util.Map; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Represents Block Data") +@Description("Represents Block Data") @Data @EqualsAndHashCode(callSuper = false) public class IrisBlockData extends IrisRegistrant { @@ -55,20 +54,20 @@ public class IrisBlockData extends IrisRegistrant { private final transient AtomicCache realProperties = new AtomicCache<>(); @RegistryListBlockType @Required - @Desc("The block to use") + @Description("The block to use") private String block = "air"; - @Desc("Debug this block by printing it to the console when it's used. Must have debug turned on in settings.") + @Description("Debug this block by printing it to the console when it's used. Must have debug turned on in settings.") private boolean debug = false; @MinNumber(1) @MaxNumber(1000) - @Desc("The weight is used when this block data is inside of a list of blockdata. A weight of two is just as if you placed two of the same block data values in the same list making it more common when randomly picked.") + @Description("The weight is used when this block data is inside of a list of blockdata. A weight of two is just as if you placed two of the same block data values in the same list making it more common when randomly picked.") private int weight = 1; - @Desc("If the block cannot be created on this version, Iris will attempt to use this backup block data instead.") + @Description("If the block cannot be created on this version, Iris will attempt to use this backup block data instead.") private IrisBlockData backup = null; @RegistryMapBlockState("block") - @Desc("Optional properties for this block data such as 'waterlogged': true") + @Description("Optional properties for this block data such as 'waterlogged': true") private KMap data = new KMap<>(); - @Desc("Optional tile data for this block data") + @Description("Optional tile data for this block data") private KMap tileData = new KMap<>(); public IrisBlockData(String b) { @@ -208,7 +207,7 @@ public class IrisBlockData extends IrisRegistrant { /** * {@link #getBlockData(IrisData)} for match sides such as {@code edit} find lists: a key missing on this server - * (after custom blocks, the gate chain and every backup) yields a {@link art.arcane.iris.core.compat.MissingBlockState} + * (after custom blocks, the gate chain and every backup) yields a {@link art.arcane.iris.pack.validation.MissingBlockState} * carrying the key instead of air, so a palette placeholder with the same key can still be matched and rewritten. */ public PlatformBlockState getBlockDataOrPlaceholder(IrisData data) { @@ -235,7 +234,7 @@ public class IrisBlockData extends IrisRegistrant { * Registry, legacy rename table, then dimension blockFallbacks; null when the state is missing on this server. *

* A gate that is not ready (its registry cannot be enumerated, so every status is - * {@link art.arcane.iris.core.compat.KeyStatus#UNKNOWN}) gates nothing and answers null for every key, so this + * {@link art.arcane.iris.pack.validation.KeyStatus#UNKNOWN}) gates nothing and answers null for every key, so this * keeps the plain registry lookup in that case - otherwise every block in the pack would resolve to air. */ private static PlatformBlockState resolve(IrisData data, String state) { diff --git a/core/src/main/java/art/arcane/iris/util/common/data/IrisCustomData.java b/core/src/main/java/art/arcane/iris/generation/block/IrisCustomData.java similarity index 96% rename from core/src/main/java/art/arcane/iris/util/common/data/IrisCustomData.java rename to core/src/main/java/art/arcane/iris/generation/block/IrisCustomData.java index 67f13c6ef..50122c9ed 100644 --- a/core/src/main/java/art/arcane/iris/util/common/data/IrisCustomData.java +++ b/core/src/main/java/art/arcane/iris/generation/block/IrisCustomData.java @@ -1,6 +1,6 @@ -package art.arcane.iris.util.common.data; +package art.arcane.iris.generation.block; -import art.arcane.iris.core.link.Identifier; +import art.arcane.iris.integration.Identifier; import art.arcane.volmlib.util.collection.KMap; import lombok.NonNull; import org.bukkit.block.data.BlockData; diff --git a/core/src/main/java/art/arcane/iris/engine/object/LegacyTileData.java b/core/src/main/java/art/arcane/iris/generation/block/LegacyTileData.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/object/LegacyTileData.java rename to core/src/main/java/art/arcane/iris/generation/block/LegacyTileData.java index bb2fe4f6c..f16a1659b 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/LegacyTileData.java +++ b/core/src/main/java/art/arcane/iris/generation/block/LegacyTileData.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.block; import org.bukkit.Bukkit; import org.bukkit.DyeColor; @@ -11,12 +11,12 @@ import org.bukkit.block.Block; import org.bukkit.block.BlockState; import org.bukkit.block.CreatureSpawner; import org.bukkit.block.Sign; -import art.arcane.iris.core.nms.container.Pair; -import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.platform.bukkit.nms.container.Pair; +import art.arcane.iris.generation.cache.AtomicCache; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; -import art.arcane.iris.util.common.reflect.KeyedType; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.platform.reflect.KeyedType; +import art.arcane.iris.world.task.J; import lombok.AllArgsConstructor; import lombok.EqualsAndHashCode; import lombok.NonNull; diff --git a/core/src/main/java/art/arcane/iris/engine/object/TileData.java b/core/src/main/java/art/arcane/iris/generation/block/TileData.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/object/TileData.java rename to core/src/main/java/art/arcane/iris/generation/block/TileData.java index 2b41dcccc..7b47715ce 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/TileData.java +++ b/core/src/main/java/art/arcane/iris/generation/block/TileData.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.block; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.PlatformBlockState; @@ -24,7 +24,7 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.Strictness; import art.arcane.iris.platform.bukkit.BukkitPlatform; -import art.arcane.iris.util.common.reflect.KeyedType; +import art.arcane.iris.platform.reflect.KeyedType; import art.arcane.volmlib.util.collection.KMap; import lombok.AccessLevel; import lombok.AllArgsConstructor; diff --git a/core/src/main/java/art/arcane/iris/util/common/data/VectorMap.java b/core/src/main/java/art/arcane/iris/generation/block/VectorMap.java similarity index 99% rename from core/src/main/java/art/arcane/iris/util/common/data/VectorMap.java rename to core/src/main/java/art/arcane/iris/generation/block/VectorMap.java index 770f8753a..c3e336771 100644 --- a/core/src/main/java/art/arcane/iris/util/common/data/VectorMap.java +++ b/core/src/main/java/art/arcane/iris/generation/block/VectorMap.java @@ -1,8 +1,8 @@ -package art.arcane.iris.util.common.data; +package art.arcane.iris.generation.block; import art.arcane.volmlib.util.collection.KMap; import lombok.NonNull; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.generation.geometry.IrisBlockVector; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/core/src/main/java/art/arcane/iris/engine/data/cache/AtomicCache.java b/core/src/main/java/art/arcane/iris/generation/cache/AtomicCache.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/data/cache/AtomicCache.java rename to core/src/main/java/art/arcane/iris/generation/cache/AtomicCache.java index 61f3c367d..97aff5c41 100644 --- a/core/src/main/java/art/arcane/iris/engine/data/cache/AtomicCache.java +++ b/core/src/main/java/art/arcane/iris/generation/cache/AtomicCache.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.data.cache; +package art.arcane.iris.generation.cache; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.function.NastySupplier; diff --git a/core/src/main/java/art/arcane/iris/engine/data/cache/Cache.java b/core/src/main/java/art/arcane/iris/generation/cache/Cache.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/data/cache/Cache.java rename to core/src/main/java/art/arcane/iris/generation/cache/Cache.java index acc1879e7..8c6396c41 100644 --- a/core/src/main/java/art/arcane/iris/engine/data/cache/Cache.java +++ b/core/src/main/java/art/arcane/iris/generation/cache/Cache.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.data.cache; +package art.arcane.iris.generation.cache; import art.arcane.volmlib.util.cache.CacheKey; diff --git a/core/src/main/java/art/arcane/iris/engine/data/cache/LazyBoundedCache.java b/core/src/main/java/art/arcane/iris/generation/cache/LazyBoundedCache.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/data/cache/LazyBoundedCache.java rename to core/src/main/java/art/arcane/iris/generation/cache/LazyBoundedCache.java index 18b91cca4..05a79e4ff 100644 --- a/core/src/main/java/art/arcane/iris/engine/data/cache/LazyBoundedCache.java +++ b/core/src/main/java/art/arcane/iris/generation/cache/LazyBoundedCache.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.data.cache; +package art.arcane.iris.generation.cache; import java.util.LinkedHashMap; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/object/CarveResult.java b/core/src/main/java/art/arcane/iris/generation/cave/CarveResult.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/object/CarveResult.java rename to core/src/main/java/art/arcane/iris/generation/cave/CarveResult.java index c8fb4578b..c30541d4a 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/CarveResult.java +++ b/core/src/main/java/art/arcane/iris/generation/cave/CarveResult.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.cave; import lombok.Value; diff --git a/core/src/main/java/art/arcane/iris/engine/object/CarvingMode.java b/core/src/main/java/art/arcane/iris/generation/cave/CarvingMode.java similarity index 75% rename from core/src/main/java/art/arcane/iris/engine/object/CarvingMode.java rename to core/src/main/java/art/arcane/iris/generation/cave/CarvingMode.java index e9601480b..ef3b05e0c 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/CarvingMode.java +++ b/core/src/main/java/art/arcane/iris/generation/cave/CarvingMode.java @@ -16,19 +16,19 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.cave; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.documentation.Description; -@Desc("Defines if an object is allowed to place in carvings, surfaces or both.") +@Description("Defines if an object is allowed to place in carvings, surfaces or both.") public enum CarvingMode { - @Desc("Only place this object on surfaces (NOT under carvings)") + @Description("Only place this object on surfaces (NOT under carvings)") SURFACE_ONLY, - @Desc("Only place this object under carvings (NOT on the surface)") + @Description("Only place this object under carvings (NOT on the surface)") CARVING_ONLY, - @Desc("This object can place anywhere") + @Description("This object can place anywhere") ANYWHERE; @SuppressWarnings("BooleanMethodIsAlwaysInverted") diff --git a/core/src/main/java/art/arcane/iris/engine/object/CaveResult.java b/core/src/main/java/art/arcane/iris/generation/cave/CaveResult.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/object/CaveResult.java rename to core/src/main/java/art/arcane/iris/generation/cave/CaveResult.java index 6216a0b62..c37bddfc4 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/CaveResult.java +++ b/core/src/main/java/art/arcane/iris/generation/cave/CaveResult.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.cave; import lombok.Data; diff --git a/core/src/main/java/art/arcane/iris/generation/cave/IrisCaveAnchorMode.java b/core/src/main/java/art/arcane/iris/generation/cave/IrisCaveAnchorMode.java new file mode 100644 index 000000000..db49afde9 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/cave/IrisCaveAnchorMode.java @@ -0,0 +1,21 @@ +package art.arcane.iris.generation.cave; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("Defines which carved-space anchor to target for cave object placement.") +public enum IrisCaveAnchorMode { + @Description("Use the active cave profile default anchor mode.") + PROFILE_DEFAULT, + + @Description("Target cave floor anchors where carved space has solid support below.") + FLOOR, + + @Description("Target cave ceiling anchors where carved space has solid support above.") + CEILING, + + @Description("Target carved positions with no immediate solid support above or below.") + CENTER, + + @Description("Target any carved-space anchor.") + ANY +} diff --git a/core/src/main/java/art/arcane/iris/generation/cave/IrisCaveFieldModule.java b/core/src/main/java/art/arcane/iris/generation/cave/IrisCaveFieldModule.java new file mode 100644 index 000000000..ccaf23234 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/cave/IrisCaveFieldModule.java @@ -0,0 +1,40 @@ +package art.arcane.iris.generation.cave; + +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.generation.noise.NoiseStyle; +import art.arcane.iris.pack.value.IrisRange; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Snippet; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Snippet("cave-field-module") +@Accessors(chain = true) +@NoArgsConstructor +@AllArgsConstructor +@Description("Represents a modular cave-density layer.") +@Data +public class IrisCaveFieldModule { + @Description("Density style used by this module.") + private IrisGeneratorStyle style = NoiseStyle.CELLULAR_IRIS_DOUBLE.style(); + + @MinNumber(0) + @Description("Layer contribution multiplier.") + private double weight = 1; + + @MinNumber(-1) + @MaxNumber(1) + @Description("Threshold offset applied to this layer before blending.") + private double threshold = 0; + + @Description("Vertical bounds where this module can contribute, in engine-local Y where 0 is the bottom of the dimension, not world Y.") + private IrisRange verticalRange = new IrisRange(0, 384); + + @Description("Invert this module before weighting.") + private boolean invert = false; +} diff --git a/core/src/main/java/art/arcane/iris/generation/cave/IrisCaveProfile.java b/core/src/main/java/art/arcane/iris/generation/cave/IrisCaveProfile.java new file mode 100644 index 000000000..bd11e5b81 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/cave/IrisCaveProfile.java @@ -0,0 +1,154 @@ +package art.arcane.iris.generation.cave; + +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.generation.noise.IrisStyledRange; +import art.arcane.iris.generation.noise.NoiseStyle; +import art.arcane.iris.pack.value.IrisRange; +import art.arcane.iris.structure.object.ObjectPlaceMode; + +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Snippet; +import art.arcane.volmlib.util.collection.KList; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Snippet("cave-profile") +@Accessors(chain = true) +@NoArgsConstructor +@AllArgsConstructor +@Description("Represents a configurable 3D cave profile.") +@Data +public class IrisCaveProfile { + @Description("Enable profile-driven cave carving.") + private boolean enabled = false; + + @Description("Global vertical bounds for profile cave carving, in engine-local Y where 0 is the bottom of the dimension, not world Y.") + private IrisRange verticalRange = new IrisRange(0, 384); + + @MinNumber(0) + @MaxNumber(128) + @Description("Vertical fade range applied near cave profile min/max bounds to avoid abrupt hard-stop ceilings/floors.") + private int verticalEdgeFade = 20; + + @MinNumber(0) + @MaxNumber(1) + @Description("Strength of the vertical edge fade at cave profile min/max bounds.") + private double verticalEdgeFadeStrength = 0.18; + + @Description("Base density style for cave field generation.") + private IrisGeneratorStyle baseDensityStyle = NoiseStyle.CELLULAR_IRIS_DOUBLE.style(); + + @Description("Detail density style blended into base caves.") + private IrisGeneratorStyle detailDensityStyle = new IrisGeneratorStyle(NoiseStyle.SIMPLEX); + + @Description("Warp style used to distort cave coordinates.") + private IrisGeneratorStyle warpStyle = new IrisGeneratorStyle(NoiseStyle.FLAT); + + @MinNumber(0) + @Description("Base cave field multiplier.") + private double baseWeight = 1; + + @MinNumber(0) + @Description("Detail cave field multiplier.") + private double detailWeight = 0.35; + + @MinNumber(0) + @Description("Coordinate warp strength for cave fields.") + private double warpStrength = 0; + + @Description("Threshold range used for carve cutoff decisions.") + private IrisStyledRange densityThreshold = new IrisStyledRange(-0.2, 0.2, NoiseStyle.CELLULAR_IRIS_DOUBLE.style()); + + @MinNumber(0) + @MaxNumber(1) + @Description("Extra threshold bias subtracted from sampled threshold before carve tests.") + private double thresholdBias = 0.16; + + @MinNumber(1) + @MaxNumber(8) + @Description("Vertical sample step used while evaluating cave density.") + private int sampleStep = 1; + + @Description("Use adaptive cave density prediction so only threshold-adjacent cells fall back to full-resolution evaluation.") + private boolean adaptiveSampling = true; + + @MinNumber(2) + @MaxNumber(4) + @Description("Horizontal adaptive predictor tuning. The carver always samples the predictor grid at a fixed step of 8; values below 8 only widen the ambiguity margin slightly and do not tighten the grid.") + private int adaptiveSampleStep = 2; + + @MinNumber(0) + @MaxNumber(1) + @Description("Additional adaptive ambiguity margin used before the cave predictor falls back to exact sampling.") + private double adaptiveThresholdMargin = 0.04; + + @MinNumber(0) + @MaxNumber(64) + @Description("Minimum solid clearance below terrain surface where carving may occur.") + private int surfaceClearance = 4; + + @Description("Allow profile-driven cave carving to break through terrain surface in selected columns.") + private boolean allowSurfaceBreak = true; + + @Description("Noise style used to decide where surface-breaking cave columns are allowed.") + private IrisGeneratorStyle surfaceBreakStyle = new IrisGeneratorStyle(NoiseStyle.SIMPLEX).zoomed(0.08); + + @MinNumber(-1) + @MaxNumber(1) + @Description("Minimum signed surface-break noise value required before near-surface carving is allowed.") + private double surfaceBreakNoiseThreshold = 0.62; + + @MinNumber(0) + @MaxNumber(64) + @Description("Near-surface depth window used for surface-break carve logic.") + private int surfaceBreakDepth = 18; + + @MinNumber(0) + @MaxNumber(1) + @Description("Additional threshold boost applied while carving in the surface-break depth window.") + private double surfaceBreakThresholdBoost = 0.2; + + @MinNumber(0) + @MaxNumber(64) + @Description("Minimum depth below terrain surface required for cave-only object anchor placement.") + private int objectMinDepthBelowSurface = 6; + + @ArrayType(type = IrisCaveFieldModule.class, min = 1) + @Description("Additional layered cave-density modules.") + private KList modules = new KList<>(); + + @Description("Default cave anchor mode for cave-only object placement.") + private IrisCaveAnchorMode defaultObjectAnchor = IrisCaveAnchorMode.FLOOR; + + @Description("Default placement mode for cave objects. Only applies to placements that are still on the default CENTER_HEIGHT mode; an explicit mode on the placement always wins. Stilt modes tile the object base block down to the cave floor surface. FAST_MIN_STILT is recommended for cave objects to prevent floating.") + private ObjectPlaceMode defaultObjectPlaceMode = null; + + @MinNumber(1) + @MaxNumber(8) + @Description("Vertical scan step used while searching cave anchors.") + private int anchorScanStep = 1; + + @MinNumber(1) + @MaxNumber(64) + @Description("Maximum random column retries while searching a valid cave object anchor in the chunk.") + private int anchorSearchAttempts = 6; + + @Description("Allow cave fluid placement from the dimension fluid palette below fluid level.") + private boolean allowFluid = true; + + @MinNumber(0) + @MaxNumber(64) + @Description("Minimum depth below terrain surface required before cave fluid may be placed.") + private int fluidMinDepthBelowSurface = 12; + + @Description("Require solid floor support below cave fluid to reduce unsupported fluid flows.") + private boolean fluidRequiresFloor = true; + + @Description("Allow cave lava placement based on lava height.") + private boolean allowLava = true; +} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisCaveProfileSampler.java b/core/src/main/java/art/arcane/iris/generation/cave/IrisCaveProfileSampler.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/object/IrisCaveProfileSampler.java rename to core/src/main/java/art/arcane/iris/generation/cave/IrisCaveProfileSampler.java index 87f542f1a..d78b5cbbc 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisCaveProfileSampler.java +++ b/core/src/main/java/art/arcane/iris/generation/cave/IrisCaveProfileSampler.java @@ -16,11 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.cave; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.iris.pack.value.IrisRange; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.volmlib.util.noise.CNG; import art.arcane.volmlib.util.math.RNG; import java.util.ArrayList; diff --git a/core/src/main/java/art/arcane/iris/util/project/hunk/view/ChunkBiomeHunkView.java b/core/src/main/java/art/arcane/iris/generation/chunk/ChunkBiomeHunkView.java similarity index 91% rename from core/src/main/java/art/arcane/iris/util/project/hunk/view/ChunkBiomeHunkView.java rename to core/src/main/java/art/arcane/iris/generation/chunk/ChunkBiomeHunkView.java index 5e0a6fe19..963ee84d4 100644 --- a/core/src/main/java/art/arcane/iris/util/project/hunk/view/ChunkBiomeHunkView.java +++ b/core/src/main/java/art/arcane/iris/generation/chunk/ChunkBiomeHunkView.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.project.hunk.view; +package art.arcane.iris.generation.chunk; -import art.arcane.iris.engine.framework.BlockEditAccess; +import art.arcane.iris.generation.runtime.BlockEditAccess; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.platform.bukkit.BukkitBiome; import art.arcane.iris.spi.PlatformBiome; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; import org.bukkit.Chunk; import org.bukkit.World; import org.bukkit.block.Biome; diff --git a/core/src/main/java/art/arcane/iris/util/project/hunk/view/ChunkDataHunkHolder.java b/core/src/main/java/art/arcane/iris/generation/chunk/ChunkDataHunkHolder.java similarity index 94% rename from core/src/main/java/art/arcane/iris/util/project/hunk/view/ChunkDataHunkHolder.java rename to core/src/main/java/art/arcane/iris/generation/chunk/ChunkDataHunkHolder.java index fb6f28245..878c47be3 100644 --- a/core/src/main/java/art/arcane/iris/util/project/hunk/view/ChunkDataHunkHolder.java +++ b/core/src/main/java/art/arcane/iris/generation/chunk/ChunkDataHunkHolder.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.project.hunk.view; +package art.arcane.iris.generation.chunk; -import art.arcane.iris.core.nms.INMS; +import art.arcane.iris.platform.bukkit.nms.INMS; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.BoundBlockState; -import art.arcane.iris.util.common.data.IrisCustomData; -import art.arcane.iris.util.project.hunk.storage.AtomicHunk; +import art.arcane.iris.generation.block.BoundBlockState; +import art.arcane.iris.generation.block.IrisCustomData; +import art.arcane.volmlib.util.hunk.storage.AtomicHunk; import org.bukkit.block.data.BlockData; import org.bukkit.generator.ChunkGenerator.ChunkData; diff --git a/core/src/main/java/art/arcane/iris/util/project/hunk/view/ChunkDataHunkView.java b/core/src/main/java/art/arcane/iris/generation/chunk/ChunkDataHunkView.java similarity index 94% rename from core/src/main/java/art/arcane/iris/util/project/hunk/view/ChunkDataHunkView.java rename to core/src/main/java/art/arcane/iris/generation/chunk/ChunkDataHunkView.java index 6d51d3d76..2bd392e28 100644 --- a/core/src/main/java/art/arcane/iris/util/project/hunk/view/ChunkDataHunkView.java +++ b/core/src/main/java/art/arcane/iris/generation/chunk/ChunkDataHunkView.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.project.hunk.view; +package art.arcane.iris.generation.chunk; import art.arcane.iris.platform.bukkit.BukkitBlockResolution; import art.arcane.iris.platform.bukkit.BukkitBlockState; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.IrisCustomData; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.iris.generation.block.IrisCustomData; +import art.arcane.volmlib.util.hunk.Hunk; import org.bukkit.block.data.BlockData; import org.bukkit.generator.ChunkGenerator.ChunkData; diff --git a/core/src/main/java/art/arcane/iris/util/project/hunk/view/ChunkHunkView.java b/core/src/main/java/art/arcane/iris/generation/chunk/ChunkHunkView.java similarity index 92% rename from core/src/main/java/art/arcane/iris/util/project/hunk/view/ChunkHunkView.java rename to core/src/main/java/art/arcane/iris/generation/chunk/ChunkHunkView.java index 172e3c518..b2b1a1a74 100644 --- a/core/src/main/java/art/arcane/iris/util/project/hunk/view/ChunkHunkView.java +++ b/core/src/main/java/art/arcane/iris/generation/chunk/ChunkHunkView.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.project.hunk.view; +package art.arcane.iris.generation.chunk; -import art.arcane.iris.engine.framework.BlockEditAccess; +import art.arcane.iris.generation.runtime.BlockEditAccess; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.platform.bukkit.BukkitBlockState; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; import org.bukkit.Chunk; import org.bukkit.World; import org.bukkit.block.Biome; diff --git a/core/src/main/java/art/arcane/iris/engine/data/chunk/LinkedTerrainChunk.java b/core/src/main/java/art/arcane/iris/generation/chunk/LinkedTerrainChunk.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/data/chunk/LinkedTerrainChunk.java rename to core/src/main/java/art/arcane/iris/generation/chunk/LinkedTerrainChunk.java index 50ee56d32..47764b4ee 100644 --- a/core/src/main/java/art/arcane/iris/engine/data/chunk/LinkedTerrainChunk.java +++ b/core/src/main/java/art/arcane/iris/generation/chunk/LinkedTerrainChunk.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.data.chunk; +package art.arcane.iris.generation.chunk; import art.arcane.iris.platform.bukkit.BukkitBiome; import art.arcane.iris.platform.bukkit.BukkitBlockState; import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.IrisCustomData; +import art.arcane.iris.generation.block.IrisCustomData; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.block.Biome; diff --git a/core/src/main/java/art/arcane/iris/engine/data/chunk/TerrainChunk.java b/core/src/main/java/art/arcane/iris/generation/chunk/TerrainChunk.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/data/chunk/TerrainChunk.java rename to core/src/main/java/art/arcane/iris/generation/chunk/TerrainChunk.java index c4992d6fd..cbf52c6b5 100644 --- a/core/src/main/java/art/arcane/iris/engine/data/chunk/TerrainChunk.java +++ b/core/src/main/java/art/arcane/iris/generation/chunk/TerrainChunk.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.data.chunk; +package art.arcane.iris.generation.chunk; import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBlockState; diff --git a/core/src/main/java/art/arcane/iris/util/project/hunk/view/TerrainChunkBiomeHunkView.java b/core/src/main/java/art/arcane/iris/generation/chunk/TerrainChunkBiomeHunkView.java similarity index 88% rename from core/src/main/java/art/arcane/iris/util/project/hunk/view/TerrainChunkBiomeHunkView.java rename to core/src/main/java/art/arcane/iris/generation/chunk/TerrainChunkBiomeHunkView.java index 010e192f7..f731c9b74 100644 --- a/core/src/main/java/art/arcane/iris/util/project/hunk/view/TerrainChunkBiomeHunkView.java +++ b/core/src/main/java/art/arcane/iris/generation/chunk/TerrainChunkBiomeHunkView.java @@ -16,13 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.project.hunk.view; +package art.arcane.iris.generation.chunk; -import art.arcane.iris.engine.data.chunk.LinkedTerrainChunk; -import art.arcane.iris.engine.data.chunk.TerrainChunk; import art.arcane.iris.spi.PlatformBiome; -import art.arcane.iris.util.project.hunk.Hunk; -import art.arcane.iris.util.project.hunk.storage.StorageHunk; +import art.arcane.volmlib.util.hunk.Hunk; +import art.arcane.volmlib.util.hunk.storage.StorageHunk; import art.arcane.volmlib.util.hunk.HunkMutationSupport; public class TerrainChunkBiomeHunkView extends StorageHunk implements Hunk { diff --git a/core/src/main/java/art/arcane/iris/util/common/parallel/BurstExecutor.java b/core/src/main/java/art/arcane/iris/generation/concurrent/BurstExecutor.java similarity index 92% rename from core/src/main/java/art/arcane/iris/util/common/parallel/BurstExecutor.java rename to core/src/main/java/art/arcane/iris/generation/concurrent/BurstExecutor.java index 534cbc169..5770821da 100644 --- a/core/src/main/java/art/arcane/iris/util/common/parallel/BurstExecutor.java +++ b/core/src/main/java/art/arcane/iris/generation/concurrent/BurstExecutor.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.common.parallel; +package art.arcane.iris.generation.concurrent; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.parallel.BurstExecutorSupport; diff --git a/core/src/main/java/art/arcane/iris/util/common/parallel/GridLock.java b/core/src/main/java/art/arcane/iris/generation/concurrent/GridLock.java similarity index 83% rename from core/src/main/java/art/arcane/iris/util/common/parallel/GridLock.java rename to core/src/main/java/art/arcane/iris/generation/concurrent/GridLock.java index d4121b0c5..3c7622939 100644 --- a/core/src/main/java/art/arcane/iris/util/common/parallel/GridLock.java +++ b/core/src/main/java/art/arcane/iris/generation/concurrent/GridLock.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.common.parallel; +package art.arcane.iris.generation.concurrent; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.parallel.GridLockSupport; diff --git a/core/src/main/java/art/arcane/iris/util/common/parallel/HyperLock.java b/core/src/main/java/art/arcane/iris/generation/concurrent/HyperLock.java similarity index 89% rename from core/src/main/java/art/arcane/iris/util/common/parallel/HyperLock.java rename to core/src/main/java/art/arcane/iris/generation/concurrent/HyperLock.java index 45b91a02b..8fb5fdc10 100644 --- a/core/src/main/java/art/arcane/iris/util/common/parallel/HyperLock.java +++ b/core/src/main/java/art/arcane/iris/generation/concurrent/HyperLock.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.common.parallel; +package art.arcane.iris.generation.concurrent; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.parallel.HyperLockSupport; diff --git a/core/src/main/java/art/arcane/iris/util/common/parallel/MultiBurst.java b/core/src/main/java/art/arcane/iris/generation/concurrent/MultiBurst.java similarity index 91% rename from core/src/main/java/art/arcane/iris/util/common/parallel/MultiBurst.java rename to core/src/main/java/art/arcane/iris/generation/concurrent/MultiBurst.java index f918668a5..84f9aea7c 100644 --- a/core/src/main/java/art/arcane/iris/util/common/parallel/MultiBurst.java +++ b/core/src/main/java/art/arcane/iris/generation/concurrent/MultiBurst.java @@ -1,7 +1,8 @@ -package art.arcane.iris.util.common.parallel; +package art.arcane.iris.generation.concurrent; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.volmlib.util.hunk.HunkBurst; import art.arcane.volmlib.util.parallel.MultiBurstSupport; import art.arcane.volmlib.util.math.M; import java.util.concurrent.ExecutorService; @@ -24,6 +25,13 @@ public class MultiBurst extends MultiBurstSupport { public static final MultiBurst hydrology = new MultiBurst("Iris Hydrology", () -> Math.max(2, IrisSettings.getThreadCount(IrisSettings.get().getConcurrency().getParallelism()))); private final AtomicInteger parallelismBaseline = new AtomicInteger(); + static { + // Hunk's parallel section splits live in VolmLib and have no view of Iris' concurrency + // settings, so point them at the same pool the generation stages use. Without this they + // would spin up a second, untuned pool alongside it. + HunkBurst.install(burst::burst); + } + public MultiBurst() { this("Iris"); } diff --git a/core/src/main/java/art/arcane/iris/util/project/context/ChunkContext.java b/core/src/main/java/art/arcane/iris/generation/context/ChunkContext.java similarity index 93% rename from core/src/main/java/art/arcane/iris/util/project/context/ChunkContext.java rename to core/src/main/java/art/arcane/iris/generation/context/ChunkContext.java index 12733aea2..6ab1d9da4 100644 --- a/core/src/main/java/art/arcane/iris/util/project/context/ChunkContext.java +++ b/core/src/main/java/art/arcane/iris/generation/context/ChunkContext.java @@ -1,19 +1,19 @@ -package art.arcane.iris.util.project.context; +package art.arcane.iris.generation.context; -import art.arcane.iris.engine.DimensionStackContext; -import art.arcane.iris.engine.DimensionStackLayout; +import art.arcane.iris.generation.runtime.DimensionStackContext; +import art.arcane.iris.generation.runtime.DimensionStackLayout; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.EngineMetrics; -import art.arcane.iris.engine.hydrology.runtime.IrisHydrologyRuntime; -import art.arcane.iris.engine.object.FloatingIslandBoundarySampler; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.history.FloatingBiomeOverlay; -import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.EngineMetrics; +import art.arcane.iris.generation.hydrology.runtime.IrisHydrologyRuntime; +import art.arcane.iris.generation.biome.FloatingIslandBoundarySampler; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.world.history.FloatingBiomeOverlay; +import art.arcane.iris.generation.terrain.IrisRegion; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformBiome; -import art.arcane.iris.util.project.hunk.Hunk; -import art.arcane.iris.util.common.parallel.MultiBurst; +import art.arcane.volmlib.util.hunk.Hunk; +import art.arcane.iris.generation.concurrent.MultiBurst; import java.util.ArrayList; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/util/project/context/ChunkedDataCache.java b/core/src/main/java/art/arcane/iris/generation/context/ChunkedDataCache.java similarity index 90% rename from core/src/main/java/art/arcane/iris/util/project/context/ChunkedDataCache.java rename to core/src/main/java/art/arcane/iris/generation/context/ChunkedDataCache.java index 2c578e75e..ae510823d 100644 --- a/core/src/main/java/art/arcane/iris/util/project/context/ChunkedDataCache.java +++ b/core/src/main/java/art/arcane/iris/generation/context/ChunkedDataCache.java @@ -1,7 +1,7 @@ -package art.arcane.iris.util.project.context; +package art.arcane.iris.generation.context; -import art.arcane.iris.util.project.stream.ProceduralStream; -import art.arcane.iris.util.project.stream.utility.ChunkFillableStream2D; +import art.arcane.volmlib.util.stream.ProceduralStream; +import art.arcane.iris.generation.stream.ChunkFillableStream2D; import art.arcane.volmlib.util.documentation.BlockCoordinates; import java.util.concurrent.Executor; diff --git a/core/src/main/java/art/arcane/iris/util/project/context/ChunkedDoubleDataCache.java b/core/src/main/java/art/arcane/iris/generation/context/ChunkedDoubleDataCache.java similarity index 93% rename from core/src/main/java/art/arcane/iris/util/project/context/ChunkedDoubleDataCache.java rename to core/src/main/java/art/arcane/iris/generation/context/ChunkedDoubleDataCache.java index 833633eba..aaacd3fbe 100644 --- a/core/src/main/java/art/arcane/iris/util/project/context/ChunkedDoubleDataCache.java +++ b/core/src/main/java/art/arcane/iris/generation/context/ChunkedDoubleDataCache.java @@ -1,8 +1,8 @@ -package art.arcane.iris.util.project.context; +package art.arcane.iris.generation.context; -import art.arcane.iris.util.project.stream.ProceduralStream; -import art.arcane.iris.util.project.stream.utility.ChunkFillableDoubleStream2D; -import art.arcane.iris.util.simd.SimdSupport; +import art.arcane.volmlib.util.stream.ProceduralStream; +import art.arcane.iris.generation.stream.ChunkFillableDoubleStream2D; +import art.arcane.iris.generation.simd.SimdSupport; import art.arcane.volmlib.util.documentation.BlockCoordinates; import java.util.Arrays; diff --git a/core/src/main/java/art/arcane/iris/util/project/context/IrisContext.java b/core/src/main/java/art/arcane/iris/generation/context/IrisContext.java similarity index 93% rename from core/src/main/java/art/arcane/iris/util/project/context/IrisContext.java rename to core/src/main/java/art/arcane/iris/generation/context/IrisContext.java index 4f3b46def..5ab70bf1c 100644 --- a/core/src/main/java/art/arcane/iris/util/project/context/IrisContext.java +++ b/core/src/main/java/art/arcane/iris/generation/context/IrisContext.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.project.context; +package art.arcane.iris.generation.context; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.mantle.EngineMantle; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.volmlib.util.collection.KMap; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/decorator/DecoratorCore.java b/core/src/main/java/art/arcane/iris/generation/decoration/DecoratorCore.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/decorator/DecoratorCore.java rename to core/src/main/java/art/arcane/iris/generation/decoration/DecoratorCore.java index eb50b1f2d..1b3e7a9c9 100644 --- a/core/src/main/java/art/arcane/iris/engine/decorator/DecoratorCore.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/DecoratorCore.java @@ -16,19 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.decorator; +package art.arcane.iris.generation.decoration; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDecorationPart; -import art.arcane.iris.engine.object.IrisDecorator; -import art.arcane.iris.engine.object.IrisProceduralBlocks; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.mantle.EngineMantle; +import art.arcane.iris.generation.biome.IrisBiome; import art.arcane.iris.platform.bukkit.BukkitBlockState; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.iris.generation.block.B; +import art.arcane.volmlib.util.hunk.Hunk; import art.arcane.volmlib.util.math.RNG; import org.bukkit.block.BlockFace; import org.bukkit.block.BlockSupport; diff --git a/core/src/main/java/art/arcane/iris/engine/decorator/DecoratorPlatformHooks.java b/core/src/main/java/art/arcane/iris/generation/decoration/DecoratorPlatformHooks.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/decorator/DecoratorPlatformHooks.java rename to core/src/main/java/art/arcane/iris/generation/decoration/DecoratorPlatformHooks.java index 034132558..4b71c0e57 100644 --- a/core/src/main/java/art/arcane/iris/engine/decorator/DecoratorPlatformHooks.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/DecoratorPlatformHooks.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.decorator; +package art.arcane.iris.generation.decoration; -import art.arcane.iris.engine.mantle.EngineMantle; +import art.arcane.iris.generation.mantle.EngineMantle; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; public final class DecoratorPlatformHooks { private static volatile FaceFixer FACE_FIXER = null; diff --git a/core/src/main/java/art/arcane/iris/engine/decorator/FloatingDecorator.java b/core/src/main/java/art/arcane/iris/generation/decoration/FloatingDecorator.java similarity index 88% rename from core/src/main/java/art/arcane/iris/engine/decorator/FloatingDecorator.java rename to core/src/main/java/art/arcane/iris/generation/decoration/FloatingDecorator.java index 5780a8b59..ac9d5a647 100644 --- a/core/src/main/java/art/arcane/iris/engine/decorator/FloatingDecorator.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/FloatingDecorator.java @@ -16,13 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.decorator; +package art.arcane.iris.generation.decoration; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDecorationPart; -import art.arcane.iris.engine.object.IrisDecorator; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.volmlib.util.hunk.Hunk; import art.arcane.volmlib.util.math.RNG; import art.arcane.iris.spi.PlatformBlockState; diff --git a/core/src/main/java/art/arcane/iris/engine/decorator/IrisCeilingDecorator.java b/core/src/main/java/art/arcane/iris/generation/decoration/IrisCeilingDecorator.java similarity index 88% rename from core/src/main/java/art/arcane/iris/engine/decorator/IrisCeilingDecorator.java rename to core/src/main/java/art/arcane/iris/generation/decoration/IrisCeilingDecorator.java index 305eb0be7..3fee5203c 100644 --- a/core/src/main/java/art/arcane/iris/engine/decorator/IrisCeilingDecorator.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/IrisCeilingDecorator.java @@ -16,15 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.decorator; +package art.arcane.iris.generation.decoration; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.InferredType; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDecorationPart; -import art.arcane.iris.engine.object.IrisDecorator; -import art.arcane.iris.util.common.data.B; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.terrain.InferredType; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.block.B; +import art.arcane.volmlib.util.hunk.Hunk; import art.arcane.volmlib.util.documentation.BlockCoordinates; import art.arcane.volmlib.util.math.RNG; import art.arcane.iris.spi.PlatformBlockState; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisDecorationPart.java b/core/src/main/java/art/arcane/iris/generation/decoration/IrisDecorationPart.java similarity index 62% rename from core/src/main/java/art/arcane/iris/engine/object/IrisDecorationPart.java rename to core/src/main/java/art/arcane/iris/generation/decoration/IrisDecorationPart.java index c458abb67..23fbaa595 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisDecorationPart.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/IrisDecorationPart.java @@ -16,24 +16,24 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.decoration; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.documentation.Description; -@Desc("Represents a location where decorations should go") +@Description("Represents a location where decorations should go") public enum IrisDecorationPart { - @Desc("The default, decorate anywhere") + @Description("The default, decorate anywhere") NONE, - @Desc("Targets shore lines (typically for sugar cane)") + @Description("Targets shore lines (typically for sugar cane)") SHORE_LINE, - @Desc("Target sea surfaces (typically for lilypads)") + @Description("Target sea surfaces (typically for lilypads)") SEA_SURFACE, - @Desc("Targets the sea floor (entire placement must be bellow sea level)") + @Description("Targets the sea floor (entire placement must be bellow sea level)") SEA_FLOOR, - @Desc("Decorates on cave & carving ceilings or underside of overhangs") + @Description("Decorates on cave & carving ceilings or underside of overhangs") CEILING, } diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisDecorationStep.java b/core/src/main/java/art/arcane/iris/generation/decoration/IrisDecorationStep.java similarity index 71% rename from core/src/main/java/art/arcane/iris/engine/object/IrisDecorationStep.java rename to core/src/main/java/art/arcane/iris/generation/decoration/IrisDecorationStep.java index d6bd443ac..d2e8fa0c3 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisDecorationStep.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/IrisDecorationStep.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.decoration; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.documentation.Description; import java.util.Locale; @@ -27,39 +27,39 @@ import java.util.Locale; * serialized names match {@code GenerationStep.Decoration} on MC 26.2 so a platform can convert either way * without core depending on a Minecraft type. Verified against MC 26.2 GenerationStep.Decoration. */ -@Desc("A vanilla decoration generation step. Placed features are grouped into these steps and run in this order.") +@Description("A vanilla decoration generation step. Placed features are grouped into these steps and run in this order.") public enum IrisDecorationStep { - @Desc("Raw generation - the earliest step, before lakes.") + @Description("Raw generation - the earliest step, before lakes.") RAW_GENERATION("raw_generation"), - @Desc("Lakes.") + @Description("Lakes.") LAKES("lakes"), - @Desc("Local modifications such as amethyst geodes, icebergs and dripstone clusters.") + @Description("Local modifications such as amethyst geodes, icebergs and dripstone clusters.") LOCAL_MODIFICATIONS("local_modifications"), - @Desc("Underground structure features (not the structure system - features tagged as underground structures).") + @Description("Underground structure features (not the structure system - features tagged as underground structures).") UNDERGROUND_STRUCTURES("underground_structures"), - @Desc("Surface structure features.") + @Description("Surface structure features.") SURFACE_STRUCTURES("surface_structures"), - @Desc("Stronghold step.") + @Description("Stronghold step.") STRONGHOLDS("strongholds"), - @Desc("Underground ores. This is the step that carries vanilla and mod ore veins.") + @Description("Underground ores. This is the step that carries vanilla and mod ore veins.") UNDERGROUND_ORES("underground_ores"), - @Desc("Underground decoration such as glow lichen, sculk patches and cave vegetation.") + @Description("Underground decoration such as glow lichen, sculk patches and cave vegetation.") UNDERGROUND_DECORATION("underground_decoration"), - @Desc("Fluid springs - the small water and lava spring features.") + @Description("Fluid springs - the small water and lava spring features.") FLUID_SPRINGS("fluid_springs"), - @Desc("Vegetal decoration - trees, grass, flowers, kelp and most surface plant life.") + @Description("Vegetal decoration - trees, grass, flowers, kelp and most surface plant life.") VEGETAL_DECORATION("vegetal_decoration"), - @Desc("Top layer modification - freezing and snow placement.") + @Description("Top layer modification - freezing and snow placement.") TOP_LAYER_MODIFICATION("top_layer_modification"); private final String serializedName; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisDecorator.java b/core/src/main/java/art/arcane/iris/generation/decoration/IrisDecorator.java similarity index 79% rename from core/src/main/java/art/arcane/iris/engine/object/IrisDecorator.java rename to core/src/main/java/art/arcane/iris/generation/decoration/IrisDecorator.java index a508ec57f..a58c2fae6 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisDecorator.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/IrisDecorator.java @@ -16,21 +16,27 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.decoration; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.DependsOn; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.block.IrisBlockData; +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.generation.noise.NoiseStyle; +import art.arcane.iris.generation.terrain.IrisSlopeClip; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.iris.pack.schema.annotation.DependsOn; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.volmlib.util.noise.CNG; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -41,7 +47,7 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("A biome decorator is used for placing flowers, grass, cacti and so on") +@Description("A biome decorator is used for placing flowers, grass, cacti and so on") @Data public class IrisDecorator { private final transient AtomicCache layerGenerator = new AtomicCache<>(); @@ -53,42 +59,42 @@ public class IrisDecorator { private final transient AtomicCache blockDataTopsArray = new AtomicCache<>(); private final transient AtomicCache whitelistArray = new AtomicCache<>(); private final transient AtomicCache blacklistArray = new AtomicCache<>(); - @Desc("The varience dispersion is used when multiple blocks are put in the palette. Scatter scrambles them, Wispy shows streak-looking varience") + @Description("The varience dispersion is used when multiple blocks are put in the palette. Scatter scrambles them, Wispy shows streak-looking varience") private IrisGeneratorStyle variance = NoiseStyle.STATIC.style(); - @Desc("Forcefully place this decorant anywhere it is supposed to go even if it should not go on a specific surface block. For example, you could force tallgrass to place on top of stone by using this.") + @Description("Forcefully place this decorant anywhere it is supposed to go even if it should not go on a specific surface block. For example, you could force tallgrass to place on top of stone by using this.") private boolean forcePlace = false; - @Desc("Forced the surface block of this decorant to be the specified block. Assumes forcePlace.") + @Description("Forced the surface block of this decorant to be the specified block. Assumes forcePlace.") private IrisBlockData forceBlock; @ArrayType(min = 1, type = IrisBlockData.class) - @Desc("When set, the decorator can only place onto any of these blocks.") + @Description("When set, the decorator can only place onto any of these blocks.") private KList whitelist; @ArrayType(min = 1, type = IrisBlockData.class) - @Desc("When set, the decorator will never place onto any of these blocks.") + @Description("When set, the decorator will never place onto any of these blocks.") private KList blacklist; - @Desc("The slope at which this decorator can be placed. Range from 0 to 10 by default. Calculated from a 3-block radius from the center of the decorator placement.") + @Description("The slope at which this decorator can be placed. Range from 0 to 10 by default. Calculated from a 3-block radius from the center of the decorator placement.") private IrisSlopeClip slopeCondition = new IrisSlopeClip(); @DependsOn({"scaleStack", "stackMin", "stackMax"}) - @Desc("If stackMax is set to true, use this to limit its max height for large caverns") + @Description("If stackMax is set to true, use this to limit its max height for large caverns") private int absoluteMaxStack = 30; - @Desc("Dispersion is used to pick places to spawn. Scatter randomly places them (vanilla) or Wispy for a streak like patch system.") + @Description("Dispersion is used to pick places to spawn. Scatter randomly places them (vanilla) or Wispy for a streak like patch system.") private IrisGeneratorStyle style = NoiseStyle.STATIC.style(); @DependsOn({"stackMin", "stackMax"}) - @Desc("If this decorator has a height more than 1 this changes how it picks the height between your maxes. Scatter = random, Wispy = wavy heights") + @Description("If this decorator has a height more than 1 this changes how it picks the height between your maxes. Scatter = random, Wispy = wavy heights") private IrisGeneratorStyle heightVariance = NoiseStyle.STATIC.style(); - @Desc("Tells iris where this decoration is a part of. I.e. SHORE_LINE or SEA_SURFACE") + @Description("Tells iris where this decoration is a part of. I.e. SHORE_LINE or SEA_SURFACE") private IrisDecorationPart partOf = IrisDecorationPart.NONE; @DependsOn({"stackMin", "stackMax"}) @MinNumber(1) @MaxNumber(2032) - @Desc("The minimum repeat stack height (setting to 3 would stack 3 of on top of each other") + @Description("The minimum repeat stack height (setting to 3 would stack 3 of on top of each other") private int stackMin = 1; @DependsOn({"stackMin", "stackMax"}) @MinNumber(1) @MaxNumber(2032) - @Desc("The maximum repeat stack height") + @Description("The maximum repeat stack height") private int stackMax = 1; @DependsOn({"stackMin", "stackMax"}) - @Desc(""" + @Description(""" Changes stackMin and stackMin from being absolute block heights and instead uses them as a percentage to scale the stack based on the cave height Within a cave, setting them stackMin/max to 50 would make the stack 50% of the cave height""") @@ -96,19 +102,19 @@ public class IrisDecorator { @Required @MinNumber(0) @MaxNumber(1) - @Desc("The chance for this decorator to decorate at a given X,Y coordinate. This is hit 256 times per chunk (per surface block)") + @Description("The chance for this decorator to decorate at a given X,Y coordinate. This is hit 256 times per chunk (per surface block)") private double chance = 0.1; @Required @ArrayType(min = 1, type = IrisBlockData.class) - @Desc("The palette of blocks to pick from when this decorator needs to place.") + @Description("The palette of blocks to pick from when this decorator needs to place.") private KList palette = new KList().qadd(new IrisBlockData("grass")); @ArrayType(min = 1, type = IrisBlockData.class) - @Desc("The palette of blocks used at the very top of a 'stackMax' of higher than 1. For example, bamboo tops.") + @Description("The palette of blocks used at the very top of a 'stackMax' of higher than 1. For example, bamboo tops.") private KList topPalette = new KList<>(); @DependsOn("topPalette") @MinNumber(0.01) @MaxNumber(1.0) - @Desc("When the stack passes the top threshold, the top palette will start being used instead of the normal palette.") + @Description("When the stack passes the top threshold, the top palette will start being used instead of the normal palette.") private double topThreshold = 1.0; public int getHeight(RNG rng, double x, double z, IrisData data) { diff --git a/core/src/main/java/art/arcane/iris/generation/decoration/IrisDepositBiomeScope.java b/core/src/main/java/art/arcane/iris/generation/decoration/IrisDepositBiomeScope.java new file mode 100644 index 000000000..fc504a158 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/decoration/IrisDepositBiomeScope.java @@ -0,0 +1,11 @@ +package art.arcane.iris.generation.decoration; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("Selects which biome identity is checked by a deposit's include and exclude filters.") +public enum IrisDepositBiomeScope { + @Description("Checks the surface biome selected for the deposit column.") + SURFACE, + @Description("Checks the cave biome selected at the deposit origin.") + CAVE +} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisDepositGenerator.java b/core/src/main/java/art/arcane/iris/generation/decoration/IrisDepositGenerator.java similarity index 85% rename from core/src/main/java/art/arcane/iris/engine/object/IrisDepositGenerator.java rename to core/src/main/java/art/arcane/iris/generation/decoration/IrisDepositGenerator.java index 14a2a47f7..c51d4c7cf 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisDepositGenerator.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/IrisDepositGenerator.java @@ -16,21 +16,25 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.decoration; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.block.IrisBlockData; +import art.arcane.iris.structure.object.IrisObject; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; -import art.arcane.iris.util.common.math.IrisBlockVector; -import art.arcane.iris.util.common.math.Vector3i; +import art.arcane.iris.generation.block.B; +import art.arcane.iris.generation.geometry.IrisBlockVector; +import art.arcane.volmlib.util.math.Vector3i; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KSet; import art.arcane.volmlib.util.math.BlockPosition; @@ -46,7 +50,7 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Creates ore & other block deposits underground") +@Description("Creates ore & other block deposits underground") @Data public class IrisDepositGenerator { private static final long FNV_OFFSET_BASIS = 0xcbf29ce484222325L; @@ -61,78 +65,78 @@ public class IrisDepositGenerator { @Required @MinNumber(-8192) @MaxNumber(8192) - @Desc("The inclusive minimum origin height in engine-local Y, where 0 is the bottom of the dimension. Negative values let an unclipped vanilla distribution taper into the world floor.") + @Description("The inclusive minimum origin height in engine-local Y, where 0 is the bottom of the dimension. Negative values let an unclipped vanilla distribution taper into the world floor.") private int minHeight = 1; @Required @MinNumber(-8192) @MaxNumber(8192) - @Desc("The inclusive maximum origin height in engine-local Y, where 0 is the bottom of the dimension.") + @Description("The inclusive maximum origin height in engine-local Y, where 0 is the bottom of the dimension.") private int maxHeight = 75; - @Desc("How origin heights are sampled. CLIPPED_UNIFORM preserves Iris behavior by clipping the band to terrain; UNIFORM and TRIANGLE sample the authored band first and discard cells outside terrain or build height.") + @Description("How origin heights are sampled. CLIPPED_UNIFORM preserves Iris behavior by clipping the band to terrain; UNIFORM and TRIANGLE sample the authored band first and discard cells outside terrain or build height.") private IrisDepositHeightDistribution heightDistribution = IrisDepositHeightDistribution.CLIPPED_UNIFORM; - @Desc("TERRAIN places below the generated surface. ABOVE_TERRAIN places only in existing solid hosts above it. FULL_HEIGHT permits existing solid hosts anywhere in the dimension.") + @Description("TERRAIN places below the generated surface. ABOVE_TERRAIN places only in existing solid hosts above it. FULL_HEIGHT permits existing solid hosts anywhere in the dimension.") private IrisDepositPlacementScope placementScope = IrisDepositPlacementScope.TERRAIN; @MinNumber(0) @MaxNumber(256) - @Desc("Solid blocks kept between a deposit and the terrain surface. Vanilla-like deposits use 0; the Iris default remains 7.") + @Description("Solid blocks kept between a deposit and the terrain surface. Vanilla-like deposits use 0; the Iris default remains 7.") private int surfaceClearance = 7; @Required @MinNumber(0) @MaxNumber(8192) - @Desc("The minimum Iris block count or vanilla configured vein size, selected according to shape.") + @Description("The minimum Iris block count or vanilla configured vein size, selected according to shape.") private int minSize = 0; @Required @MinNumber(0) @MaxNumber(8192) - @Desc("The maximum Iris block count or vanilla configured vein size, selected according to shape.") + @Description("The maximum Iris block count or vanilla configured vein size, selected according to shape.") private int maxSize = 128; - @Desc("IRIS places a fixed-count cube clump. VANILLA_ELLIPSOID uses Minecraft's chained ellipsoid geometry. VANILLA_SCATTERED uses Minecraft's sparse candidate offsets.") + @Description("IRIS places a fixed-count cube clump. VANILLA_ELLIPSOID uses Minecraft's chained ellipsoid geometry. VANILLA_SCATTERED uses Minecraft's sparse candidate offsets.") private IrisDepositShape shape = IrisDepositShape.IRIS; @Required @MinNumber(0) @MaxNumber(2048) - @Desc("The maximum amount of clumps per chunk") + @Description("The maximum amount of clumps per chunk") private int maxPerChunk = 3; @Required @MinNumber(0) @MaxNumber(2048) - @Desc("The minimum amount of clumps per chunk") + @Description("The minimum amount of clumps per chunk") private int minPerChunk = 0; @MinNumber(0) @MaxNumber(1) - @Desc("The chance of the deposit spawning in a chunk") + @Description("The chance of the deposit spawning in a chunk") private double spawnChance = 1; @MinNumber(0) @MaxNumber(1) - @Desc("The chance of each individual clump spawning in a chunk") + @Description("The chance of each individual clump spawning in a chunk") private double perClumpSpawnChance = 1; @MinNumber(0) @MaxNumber(1) - @Desc("Chance to discard a candidate ore block when it touches air. This matches vanilla ore exposure reduction.") + @Description("Chance to discard a candidate ore block when it touches air. This matches vanilla ore exposure reduction.") private double discardChanceOnAirExposure = 0; @Required @ArrayType(min = 1, type = IrisBlockData.class) - @Desc("The palette of blocks to be used in this deposit generator. Each entry is picked uniformly; the per-entry weight field is ignored here.") + @Description("The palette of blocks to be used in this deposit generator. Each entry is picked uniformly; the per-entry weight field is ignored here.") private KList palette = new KList<>(); @MinNumber(1) @MaxNumber(64) - @Desc("Ore varience is how many different objects clumps iris will create") + @Description("Ore varience is how many different objects clumps iris will create") private int varience = 3; @ArrayType(min = 1, type = String.class) - @Desc("Optional block ids this deposit may replace. An empty list retains Iris's any-solid behavior.") + @Description("Optional block ids this deposit may replace. An empty list retains Iris's any-solid behavior.") private KList replaceableBlocks = new KList<>(); @ArrayType(min = 1, type = String.class) - @Desc("Optional exact host block ids required when an ore candidate occupies an exterior terrain surface. Cave-air walls are unaffected. An empty list retains the normal replaceableBlocks behavior.") + @Description("Optional exact host block ids required when an ore candidate occupies an exterior terrain surface. Cave-air walls are unaffected. An empty list retains the normal replaceableBlocks behavior.") private KList surfaceReplaceableBlocks = new KList<>(); - @Desc("Chooses whether includedBiomes and excludedBiomes inspect the surface biome or the cave biome at the deposit origin.") + @Description("Chooses whether includedBiomes and excludedBiomes inspect the surface biome or the cave biome at the deposit origin.") private IrisDepositBiomeScope biomeScope = IrisDepositBiomeScope.CAVE; @ArrayType(min = 1, type = String.class) - @Desc("Optional Iris biome keys or vanilla derivative ids allowed for this deposit.") + @Description("Optional Iris biome keys or vanilla derivative ids allowed for this deposit.") private KList includedBiomes = new KList<>(); @ArrayType(min = 1, type = String.class) - @Desc("Optional Iris biome keys or vanilla derivative ids denied for this deposit.") + @Description("Optional Iris biome keys or vanilla derivative ids denied for this deposit.") private KList excludedBiomes = new KList<>(); - @Desc("If set to true, this deposit will replace bedrock") + @Description("If set to true, this deposit will replace bedrock") private boolean replaceBedrock = false; public IrisObject getClump(Engine engine, RNG rng, IrisData rdata) { diff --git a/core/src/main/java/art/arcane/iris/generation/decoration/IrisDepositHeightDistribution.java b/core/src/main/java/art/arcane/iris/generation/decoration/IrisDepositHeightDistribution.java new file mode 100644 index 000000000..22b034358 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/decoration/IrisDepositHeightDistribution.java @@ -0,0 +1,13 @@ +package art.arcane.iris.generation.decoration; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("Controls how a deposit chooses its origin height within the configured vertical band.") +public enum IrisDepositHeightDistribution { + @Description("Samples uniformly after clipping the configured band to the terrain and build-height bounds.") + CLIPPED_UNIFORM, + @Description("Samples uniformly from the configured band, then rejects origins outside the terrain or build-height bounds.") + UNIFORM, + @Description("Samples toward the middle of the configured band with a triangular distribution, then rejects invalid origins.") + TRIANGLE +} diff --git a/core/src/main/java/art/arcane/iris/generation/decoration/IrisDepositPlacementScope.java b/core/src/main/java/art/arcane/iris/generation/decoration/IrisDepositPlacementScope.java new file mode 100644 index 000000000..89a419a5f --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/decoration/IrisDepositPlacementScope.java @@ -0,0 +1,13 @@ +package art.arcane.iris.generation.decoration; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("Controls which vertical part of the world may contain a deposit origin.") +public enum IrisDepositPlacementScope { + @Description("Places in solid terrain below the generated surface while preserving the configured surface clearance.") + TERRAIN, + @Description("Places only in existing solid hosts above the generated terrain surface.") + ABOVE_TERRAIN, + @Description("Places in existing solid hosts anywhere within the dimension build height.") + FULL_HEIGHT +} diff --git a/core/src/main/java/art/arcane/iris/generation/decoration/IrisDepositShape.java b/core/src/main/java/art/arcane/iris/generation/decoration/IrisDepositShape.java new file mode 100644 index 000000000..4dd874d55 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/decoration/IrisDepositShape.java @@ -0,0 +1,13 @@ +package art.arcane.iris.generation.decoration; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("Selects the geometry used to build each deposit clump.") +public enum IrisDepositShape { + @Description("Builds the traditional Iris fixed-block-count cube clump.") + IRIS, + @Description("Builds a chain of overlapping ellipsoids matching Minecraft's ordinary ore-vein geometry.") + VANILLA_ELLIPSOID, + @Description("Builds sparse candidate offsets matching Minecraft's scattered-ore geometry.") + VANILLA_SCATTERED +} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisDepositVariant.java b/core/src/main/java/art/arcane/iris/generation/decoration/IrisDepositVariant.java similarity index 66% rename from core/src/main/java/art/arcane/iris/engine/object/IrisDepositVariant.java rename to core/src/main/java/art/arcane/iris/generation/decoration/IrisDepositVariant.java index 5facf11c2..5845b49f9 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisDepositVariant.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/IrisDepositVariant.java @@ -16,28 +16,28 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.decoration; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.volmlib.util.collection.KMap; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; +import art.arcane.iris.generation.block.B; import lombok.experimental.Accessors; @Snippet("deposit-variant") @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Remaps ore block ids to alternate block ids within a vertical band. Ores declared at dimension, region, and biome scope can be rewritten at placement time (for example, iron_ore -> deepslate_iron_ore inside a deep carving band, or yourmod:iron -> yourmod:moon_iron inside a lunar biome).") +@Description("Remaps ore block ids to alternate block ids within a vertical band. Ores declared at dimension, region, and biome scope can be rewritten at placement time (for example, iron_ore -> deepslate_iron_ore inside a deep carving band, or yourmod:iron -> yourmod:moon_iron inside a lunar biome).") @Data public class IrisDepositVariant { private final transient AtomicCache> resolved = new AtomicCache<>(); @@ -45,17 +45,17 @@ public class IrisDepositVariant { @Required @MinNumber(-2048) @MaxNumber(8192) - @Desc("Inclusive minimum world Y this variant applies at.") + @Description("Inclusive minimum world Y this variant applies at.") private int minHeight = 0; @Required @MinNumber(-2048) @MaxNumber(8192) - @Desc("Inclusive maximum world Y this variant applies at.") + @Description("Inclusive maximum world Y this variant applies at.") private int maxHeight = 0; @Required - @Desc("Source block id (for example `minecraft:iron_ore`) -> replacement block id (for example `minecraft:deepslate_iron_ore`). Any block id the data loader resolves is accepted, including external/mod blocks. Source match is by material only, so block properties on the source key are ignored.") + @Description("Source block id (for example `minecraft:iron_ore`) -> replacement block id (for example `minecraft:deepslate_iron_ore`). Any block id the data loader resolves is accepted, including external/mod blocks. Source match is by material only, so block properties on the source key are ignored.") private KMap remap = new KMap<>(); public PlatformBlockState remapOrNull(PlatformBlockState ore, IrisData rdata) { diff --git a/core/src/main/java/art/arcane/iris/engine/decorator/IrisEngineDecorator.java b/core/src/main/java/art/arcane/iris/generation/decoration/IrisEngineDecorator.java similarity index 84% rename from core/src/main/java/art/arcane/iris/engine/decorator/IrisEngineDecorator.java rename to core/src/main/java/art/arcane/iris/generation/decoration/IrisEngineDecorator.java index 89a2c36b6..c0005c41b 100644 --- a/core/src/main/java/art/arcane/iris/engine/decorator/IrisEngineDecorator.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/IrisEngineDecorator.java @@ -16,12 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.decorator; +package art.arcane.iris.generation.decoration; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineAssignedComponent; -import art.arcane.iris.engine.framework.EngineDecorator; -import art.arcane.iris.engine.object.IrisDecorationPart; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineAssignedComponent; +import art.arcane.iris.generation.runtime.EngineDecorator; import art.arcane.volmlib.util.documentation.BlockCoordinates; import art.arcane.volmlib.util.math.RNG; import lombok.Getter; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisOreGenerator.java b/core/src/main/java/art/arcane/iris/generation/decoration/IrisOreGenerator.java similarity index 57% rename from core/src/main/java/art/arcane/iris/engine/object/IrisOreGenerator.java rename to core/src/main/java/art/arcane/iris/generation/decoration/IrisOreGenerator.java index 1bac17826..fbd112510 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisOreGenerator.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/IrisOreGenerator.java @@ -16,15 +16,20 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.decoration; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.generation.noise.NoiseStyle; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; +import art.arcane.iris.pack.value.IrisRange; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.volmlib.util.noise.CNG; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -34,20 +39,20 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Scatters single ore blocks through terrain by sampling a noise field at every block in a vertical band. Defined on dimensions, regions, or biomes; the most specific level wins.") +@Description("Scatters single ore blocks through terrain by sampling a noise field at every block in a vertical band. Defined on dimensions, regions, or biomes; the most specific level wins.") @Data public class IrisOreGenerator { - @Desc("The ore blocks to place. An empty palette generates nothing, so this must be set for the generator to have any effect.") + @Description("The ore blocks to place. An empty palette generates nothing, so this must be set for the generator to have any effect.") private IrisMaterialPalette palette = new IrisMaterialPalette().qclear(); - @Desc("The noise style sampled per block to decide where ore appears. STATIC gives independent random speckle; smoother styles give veiny clusters.") + @Description("The noise style sampled per block to decide where ore appears. STATIC gives independent random speckle; smoother styles give veiny clusters.") private IrisGeneratorStyle chanceStyle = new IrisGeneratorStyle(NoiseStyle.STATIC); - @Desc("When true this generator also replaces surface-layer blocks (it runs before layers and fluid); when false it only replaces underground rock.") + @Description("When true this generator also replaces surface-layer blocks (it runs before layers and fluid); when false it only replaces underground rock.") private boolean generateSurface = false; @MinNumber(0) @MaxNumber(1) - @Desc("Noise cutoff: a block becomes ore when the sampled noise is at or below this value, so higher means more ore. 0 disables, 1 replaces everything in range.") + @Description("Noise cutoff: a block becomes ore when the sampled noise is at or below this value, so higher means more ore. 0 disables, 1 replaces everything in range.") private double threshold = 0.5; - @Desc("Vertical band (min, max) this ore can generate in, in engine-local Y where 0 is the bottom of the dimension, not world Y.") + @Description("Vertical band (min, max) this ore can generate in, in engine-local Y where 0 is the bottom of the dimension, not world Y.") private IrisRange range = new IrisRange(30, 80); private transient AtomicCache chanceCache = new AtomicCache<>(); diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisOreGeneratorBounds.java b/core/src/main/java/art/arcane/iris/generation/decoration/IrisOreGeneratorBounds.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/object/IrisOreGeneratorBounds.java rename to core/src/main/java/art/arcane/iris/generation/decoration/IrisOreGeneratorBounds.java index af64c4f4e..eb44f3e94 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisOreGeneratorBounds.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/IrisOreGeneratorBounds.java @@ -1,4 +1,6 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.decoration; + +import art.arcane.iris.pack.value.IrisRange; import art.arcane.volmlib.util.collection.KList; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisProceduralBlocks.java b/core/src/main/java/art/arcane/iris/generation/decoration/IrisProceduralBlocks.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/object/IrisProceduralBlocks.java rename to core/src/main/java/art/arcane/iris/generation/decoration/IrisProceduralBlocks.java index 158aba60b..b7b84049a 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisProceduralBlocks.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/IrisProceduralBlocks.java @@ -16,13 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.decoration; -import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; +import art.arcane.iris.structure.object.IrisObject; + +import art.arcane.iris.pack.loading.IrisData; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; -import art.arcane.iris.util.common.math.IrisBlockVector; -import art.arcane.iris.util.common.math.Vector3i; +import art.arcane.iris.generation.block.B; +import art.arcane.iris.generation.geometry.IrisBlockVector; +import art.arcane.volmlib.util.math.Vector3i; import art.arcane.volmlib.util.math.RNG; import java.util.Map; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisProceduralObjects.java b/core/src/main/java/art/arcane/iris/generation/decoration/IrisProceduralObjects.java similarity index 64% rename from core/src/main/java/art/arcane/iris/engine/object/IrisProceduralObjects.java rename to core/src/main/java/art/arcane/iris/generation/decoration/IrisProceduralObjects.java index c5bef01fa..c2afed8df 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisProceduralObjects.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/IrisProceduralObjects.java @@ -16,11 +16,18 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.decoration; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.generation.decoration.coral.IrisCoral; +import art.arcane.iris.generation.decoration.crystal.IrisCrystal; +import art.arcane.iris.generation.decoration.formation.IrisFormation; +import art.arcane.iris.generation.decoration.fungus.IrisFungus; +import art.arcane.iris.generation.decoration.ruin.IrisRuin; +import art.arcane.iris.generation.decoration.tree.IrisProceduralTree; + +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.volmlib.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; @@ -31,31 +38,31 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Procedurally generated objects placed in a biome or region. Unlike the objects block (which loads iob files), these are generated from scratch at world-gen time.") +@Description("Procedurally generated objects placed in a biome or region. Unlike the objects block (which loads iob files), these are generated from scratch at world-gen time.") @Data public class IrisProceduralObjects { @ArrayType(min = 1, type = IrisProceduralTree.class) - @Desc("Procedurally generated trees.") + @Description("Procedurally generated trees.") private KList trees = new KList<>(); @ArrayType(min = 1, type = IrisRuin.class) - @Desc("Procedurally generated ruins (crumbling pillars, walls, arches, rubble).") + @Description("Procedurally generated ruins (crumbling pillars, walls, arches, rubble).") private KList ruins = new KList<>(); @ArrayType(min = 1, type = IrisFormation.class) - @Desc("Procedurally generated natural rock formations (spires, hoodoos, arches, sea stacks, boulders, basalt columns).") + @Description("Procedurally generated natural rock formations (spires, hoodoos, arches, sea stacks, boulders, basalt columns).") private KList formations = new KList<>(); @ArrayType(min = 1, type = IrisCoral.class) - @Desc("Procedurally generated underwater coral structures.") + @Description("Procedurally generated underwater coral structures.") private KList coral = new KList<>(); @ArrayType(min = 1, type = IrisFungus.class) - @Desc("Procedurally generated mushrooms and shelf fungi.") + @Description("Procedurally generated mushrooms and shelf fungi.") private KList fungi = new KList<>(); @ArrayType(min = 1, type = IrisCrystal.class) - @Desc("Procedurally generated crystal clusters (usually placed in caves).") + @Description("Procedurally generated crystal clusters (usually placed in caves).") private KList crystals = new KList<>(); public KList getAllPlacements() { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisProceduralPlacement.java b/core/src/main/java/art/arcane/iris/generation/decoration/IrisProceduralPlacement.java similarity index 88% rename from core/src/main/java/art/arcane/iris/engine/object/IrisProceduralPlacement.java rename to core/src/main/java/art/arcane/iris/generation/decoration/IrisProceduralPlacement.java index 904c471b4..120a420d0 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisProceduralPlacement.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/IrisProceduralPlacement.java @@ -16,9 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.decoration; -import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectPlacement; + +import art.arcane.iris.pack.loading.IrisData; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; diff --git a/core/src/main/java/art/arcane/iris/engine/decorator/IrisSeaFloorDecorator.java b/core/src/main/java/art/arcane/iris/generation/decoration/IrisSeaFloorDecorator.java similarity index 91% rename from core/src/main/java/art/arcane/iris/engine/decorator/IrisSeaFloorDecorator.java rename to core/src/main/java/art/arcane/iris/generation/decoration/IrisSeaFloorDecorator.java index 8067546da..e974bc75c 100644 --- a/core/src/main/java/art/arcane/iris/engine/decorator/IrisSeaFloorDecorator.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/IrisSeaFloorDecorator.java @@ -16,13 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.decorator; +package art.arcane.iris.generation.decoration; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDecorationPart; -import art.arcane.iris.engine.object.IrisDecorator; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.volmlib.util.hunk.Hunk; import art.arcane.volmlib.util.documentation.BlockCoordinates; import art.arcane.volmlib.util.math.RNG; import art.arcane.iris.spi.PlatformBlockState; diff --git a/core/src/main/java/art/arcane/iris/engine/decorator/IrisSeaSurfaceDecorator.java b/core/src/main/java/art/arcane/iris/generation/decoration/IrisSeaSurfaceDecorator.java similarity index 91% rename from core/src/main/java/art/arcane/iris/engine/decorator/IrisSeaSurfaceDecorator.java rename to core/src/main/java/art/arcane/iris/generation/decoration/IrisSeaSurfaceDecorator.java index 03f2e8e0e..2a08450ed 100644 --- a/core/src/main/java/art/arcane/iris/engine/decorator/IrisSeaSurfaceDecorator.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/IrisSeaSurfaceDecorator.java @@ -16,13 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.decorator; +package art.arcane.iris.generation.decoration; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDecorationPart; -import art.arcane.iris.engine.object.IrisDecorator; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.volmlib.util.hunk.Hunk; import art.arcane.volmlib.util.documentation.BlockCoordinates; import art.arcane.volmlib.util.math.RNG; import art.arcane.iris.spi.PlatformBlockState; diff --git a/core/src/main/java/art/arcane/iris/engine/decorator/IrisShoreLineDecorator.java b/core/src/main/java/art/arcane/iris/generation/decoration/IrisShoreLineDecorator.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/decorator/IrisShoreLineDecorator.java rename to core/src/main/java/art/arcane/iris/generation/decoration/IrisShoreLineDecorator.java index e937bdeab..72e9b6828 100644 --- a/core/src/main/java/art/arcane/iris/engine/decorator/IrisShoreLineDecorator.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/IrisShoreLineDecorator.java @@ -16,14 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.decorator; +package art.arcane.iris.generation.decoration; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDecorationPart; -import art.arcane.iris.engine.object.IrisDecorator; -import art.arcane.iris.util.project.hunk.Hunk; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.volmlib.util.hunk.Hunk; +import art.arcane.volmlib.util.stream.ProceduralStream; import art.arcane.volmlib.util.documentation.BlockCoordinates; import art.arcane.volmlib.util.math.RNG; import art.arcane.iris.spi.PlatformBlockState; diff --git a/core/src/main/java/art/arcane/iris/engine/decorator/IrisSpeleothems.java b/core/src/main/java/art/arcane/iris/generation/decoration/IrisSpeleothems.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/decorator/IrisSpeleothems.java rename to core/src/main/java/art/arcane/iris/generation/decoration/IrisSpeleothems.java index ea31e0a8a..465da6f87 100644 --- a/core/src/main/java/art/arcane/iris/engine/decorator/IrisSpeleothems.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/IrisSpeleothems.java @@ -1,9 +1,8 @@ -package art.arcane.iris.engine.decorator; +package art.arcane.iris.generation.decoration; -import art.arcane.iris.engine.object.IrisProceduralBlocks; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.iris.generation.block.B; +import art.arcane.volmlib.util.hunk.Hunk; import org.bukkit.block.BlockFace; import org.bukkit.block.BlockSupport; import org.bukkit.block.data.BlockData; diff --git a/core/src/main/java/art/arcane/iris/generation/decoration/IrisStiltSettings.java b/core/src/main/java/art/arcane/iris/generation/decoration/IrisStiltSettings.java new file mode 100644 index 000000000..46dcdbd61 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/decoration/IrisStiltSettings.java @@ -0,0 +1,48 @@ +package art.arcane.iris.generation.decoration; + +import art.arcane.iris.generation.terrain.IrisMaterialPalette; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Snippet; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Snippet("stilt-settings") +@Accessors(chain = true) +@NoArgsConstructor +@AllArgsConstructor +@Description("Defines stilting behaviour.") +@Data +public class IrisStiltSettings { + @MinNumber(0) + @MaxNumber(64) + @Description("Defines the maximum amount of blocks the object stilts verticially before overstilting and randomRange.") + private int yMax; + @MinNumber(0) + @MaxNumber(64) + @Description("Defines the upper boundary for additional blocks after overstilting and/or maxStiltRange.") + private int yRand; + @MaxNumber(64) + @MinNumber(0) + @Description("If the place mode is set to stilt, you can over-stilt it even further into the ground. Especially useful when using fast stilt due to inaccuracies.") + private int overStilt; + @Description("If defined, stilting will be done using this block palette rather than the last layer of the object.") + private IrisMaterialPalette palette; + @MinNumber(1) + @MaxNumber(256) + @Description("For ORGANIC_STILT / CEILING_HANG: the maximum number of blocks to scan toward the cave floor (or ceiling) looking for solid ground before giving up.") + private int organicMaxScan = 48; + @MinNumber(0) + @MaxNumber(32) + @Description("For ORGANIC_STILT / CEILING_HANG: the maximum number of blocks each column's stilt is randomly shortened by, giving the underside a ragged organic edge instead of a flat disc.") + private int organicJitter = 3; + @MinNumber(0) + @MaxNumber(1) + @Description("For ORGANIC_STILT / CEILING_HANG: in the deepest fraction of each stilt column, blocks are randomly skipped to break the tip up. Higher = more broken and scratchy. 0 disables.") + private double organicScratch = 0.55; + +} diff --git a/core/src/main/java/art/arcane/iris/engine/decorator/IrisSugarCane.java b/core/src/main/java/art/arcane/iris/generation/decoration/IrisSugarCane.java similarity index 89% rename from core/src/main/java/art/arcane/iris/engine/decorator/IrisSugarCane.java rename to core/src/main/java/art/arcane/iris/generation/decoration/IrisSugarCane.java index 7cbbbc26d..5219b50ff 100644 --- a/core/src/main/java/art/arcane/iris/engine/decorator/IrisSugarCane.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/IrisSugarCane.java @@ -1,14 +1,14 @@ -package art.arcane.iris.engine.decorator; +package art.arcane.iris.generation.decoration; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.history.TerrainBoundarySignature; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.HydrologyColumnSample; -import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.world.history.TerrainBoundarySignature; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.HydrologyColumnSample; +import art.arcane.iris.generation.biome.IrisBiome; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisSurface.java b/core/src/main/java/art/arcane/iris/generation/decoration/IrisSurface.java similarity index 84% rename from core/src/main/java/art/arcane/iris/engine/object/IrisSurface.java rename to core/src/main/java/art/arcane/iris/generation/decoration/IrisSurface.java index c8670968a..073e3fd05 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisSurface.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/IrisSurface.java @@ -16,29 +16,29 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.decoration; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.documentation.Description; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.data.Waterlogged; -@Desc("The type of surface entities should spawn on") +@Description("The type of surface entities should spawn on") public enum IrisSurface { - @Desc("Land surfaces") + @Description("Land surfaces") LAND, - @Desc("Any surfaces animals can spawn on, such as dirt, grass and podzol") + @Description("Any surfaces animals can spawn on, such as dirt, grass and podzol") ANIMAL, - @Desc("Within the water") + @Description("Within the water") WATER, - @Desc("On land or on water") + @Description("On land or on water") OVERWORLD, - @Desc("Within lava") + @Description("Within lava") LAVA; public boolean isFluid() { diff --git a/core/src/main/java/art/arcane/iris/engine/decorator/IrisSurfaceDecorator.java b/core/src/main/java/art/arcane/iris/generation/decoration/IrisSurfaceDecorator.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/decorator/IrisSurfaceDecorator.java rename to core/src/main/java/art/arcane/iris/generation/decoration/IrisSurfaceDecorator.java index d4c680bf9..a60a29d40 100644 --- a/core/src/main/java/art/arcane/iris/engine/decorator/IrisSurfaceDecorator.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/IrisSurfaceDecorator.java @@ -16,16 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.decorator; +package art.arcane.iris.generation.decoration; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.InferredType; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDecorationPart; -import art.arcane.iris.engine.object.IrisDecorator; -import art.arcane.iris.engine.object.IrisProceduralBlocks; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.terrain.InferredType; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.volmlib.util.hunk.Hunk; import art.arcane.volmlib.util.documentation.BlockCoordinates; import art.arcane.volmlib.util.math.RNG; import art.arcane.iris.spi.PlatformBlockState; diff --git a/core/src/main/java/art/arcane/iris/generation/decoration/IrisVacuumSettings.java b/core/src/main/java/art/arcane/iris/generation/decoration/IrisVacuumSettings.java new file mode 100644 index 000000000..687a0f6f9 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/decoration/IrisVacuumSettings.java @@ -0,0 +1,39 @@ +package art.arcane.iris.generation.decoration; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Snippet; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Snippet("vacuum-settings") +@Accessors(chain = true) +@NoArgsConstructor +@AllArgsConstructor +@Description("Defines how a VACUUM place mode bends terrain to meet an object's base.") +@Data +public class IrisVacuumSettings { + @MinNumber(0) + @MaxNumber(128) + @Description("The horizontal radius (in blocks) the terrain deformation extends beyond the object footprint before it blends back to the natural surface. 0 = derive automatically from the place mode (VACUUM, VACUUM_HIGH larger, VACUUM_FAST smaller).") + private int radius = 0; + @MinNumber(0.25) + @MaxNumber(8) + @Description("The falloff exponent controlling how the deformation eases out across the radius. 1 = linear (cone), 2 = parabolic (default, gentle bowl), higher = flatter near the object with a sharper drop at the edge.") + private double falloff = 2.0; + @MinNumber(0) + @MaxNumber(64) + @Description("For VACUUM_ORGANIC: the maximum number of blocks the effective radius is randomly perturbed per column, giving the meeting edge an irregular organic outline instead of a clean circle.") + private int organicJitter = 4; + @MinNumber(0) + @MaxNumber(64) + @Description("For VACUUM_WAVY: the vertical amplitude (in blocks) of the rolling simplex wave applied across the terrain bend. The wave fades to zero under the object (so it stays flush) and at the outer radius (so it blends back to the surface), peaking across the mid-slope. 0 disables the wave.") + private int waveAmplitude = 3; + @MinNumber(0.1) + @MaxNumber(64) + @Description("For VACUUM_WAVY: the frequency of the simplex wave. Higher values make tighter, choppier ripples; lower values make broad, gentle swells. The wavelength in blocks is roughly 100 / waveScale.") + private double waveScale = 5.0; +} diff --git a/core/src/main/java/art/arcane/iris/engine/object/coral/CoralCanvas.java b/core/src/main/java/art/arcane/iris/generation/decoration/coral/CoralCanvas.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/object/coral/CoralCanvas.java rename to core/src/main/java/art/arcane/iris/generation/decoration/coral/CoralCanvas.java index b9462f457..659d6be1b 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/coral/CoralCanvas.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/coral/CoralCanvas.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.coral; +package art.arcane.iris.generation.decoration.coral; import java.util.HashMap; import java.util.Map; diff --git a/core/src/main/java/art/arcane/iris/engine/object/coral/CoralGenerator.java b/core/src/main/java/art/arcane/iris/generation/decoration/coral/CoralGenerator.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/object/coral/CoralGenerator.java rename to core/src/main/java/art/arcane/iris/generation/decoration/coral/CoralGenerator.java index e7f2822fa..a1ed15838 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/coral/CoralGenerator.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/coral/CoralGenerator.java @@ -16,15 +16,14 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.coral; +package art.arcane.iris.generation.decoration.coral; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisCoral; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisProceduralBlocks; -import art.arcane.iris.engine.object.tree.TreeFunctions; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.generation.decoration.IrisProceduralBlocks; +import art.arcane.iris.generation.decoration.tree.TreeFunctions; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.math.Vector3i; +import art.arcane.volmlib.util.math.Vector3i; import art.arcane.volmlib.util.math.RNG; import java.util.HashMap; diff --git a/core/src/main/java/art/arcane/iris/generation/decoration/coral/IrisCoral.java b/core/src/main/java/art/arcane/iris/generation/decoration/coral/IrisCoral.java new file mode 100644 index 000000000..a926799ea --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/decoration/coral/IrisCoral.java @@ -0,0 +1,249 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2022 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package art.arcane.iris.generation.decoration.coral; + +import art.arcane.iris.generation.cave.CarvingMode; +import art.arcane.iris.generation.decoration.IrisProceduralPlacement; +import art.arcane.iris.generation.decoration.IrisStiltSettings; +import art.arcane.iris.generation.decoration.IrisVacuumSettings; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectLimit; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.structure.object.IrisObjectRotation; +import art.arcane.iris.structure.object.IrisObjectTranslate; +import art.arcane.iris.structure.object.ObjectPlaceMode; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListBlockType; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.math.RNG; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Snippet("coral") +@Accessors(chain = true) +@NoArgsConstructor +@AllArgsConstructor +@Description("A single procedurally generated coral reef structure. Iris bakes a pool of deterministic variants from these settings and scatters them across the seafloor at world-gen time, exactly like an object placement but generated from scratch instead of loaded from an iob file. Mirrors the procedural tree system but tuned for underwater reefs: structural blocks are waterlogged so the coral stays alive, and placement defaults to anchoring on the terrain beneath the water surface.") +@Data +public class IrisCoral implements IrisProceduralPlacement { + private final transient AtomicCache> variantCache = new AtomicCache<>(); + + @Description("A human readable name used in logs and as the variant load key.") + private String name = "coral"; + + @MinNumber(0) + @MaxNumber(1) + @Description("The chance per chunk for this coral to attempt placement. Use density for multiple per chunk.") + private double chance = 0.4; + + @MinNumber(1) + @Description("If the chance check passes, attempt this many placements in the chunk.") + private int density = 1; + + @MinNumber(1) + @MaxNumber(64) + @Description("How many distinct variants to pre-bake for this coral. Higher means more variety at a small memory cost.") + private int variants = 6; + + @Description("The base seed for deterministic generation. The same seed and settings always bake the same variants.") + private long seed = 1337; + + @Description("The placement mode used to anchor the coral to the seafloor.") + private ObjectPlaceMode mode = ObjectPlaceMode.CENTER_HEIGHT; + + @Description("Rotate this coral's placement.") + private IrisObjectRotation rotation = new IrisObjectRotation(); + + @Description("Limit the max or min height of placement.") + private IrisObjectLimit clamp = new IrisObjectLimit(); + + @Description("Whether this coral may place on the terrain surface, under carvings, or both.") + private CarvingMode carvingSupport = CarvingMode.SURFACE_ONLY; + + @Description("If true (default for coral), the coral anchors on the terrain height beneath the water, so it grows up from the seafloor rather than floating at the water surface.") + private boolean underwater = true; + + @Description("Translate (offset) this placement along each axis; for example set a negative y to sink it into the seafloor.") + private IrisObjectTranslate translate = new IrisObjectTranslate(); + + @Description("Settings for the stilt place modes (STILT, MIN_STILT, FAST_STILT, CENTER_STILT, ERODE_STILT, ORGANIC_STILT).") + private IrisStiltSettings stiltSettings; + + @Description("Settings for the vacuum place modes (VACUUM, VACUUM_HIGH, VACUUM_FAST, VACUUM_ORGANIC).") + private IrisVacuumSettings vacuumSettings; + + @Description("If true (default), every resolved coral block that is waterloggable is forced waterlogged so the coral does not die in water (coral fans, sea pickles and kelp also waterlog). Set false to place dead/dry coral.") + private boolean waterlogged = true; + + @Description("The overall silhouette this coral grows into (branching, fan, brain, pillar, tendril). Each form runs a different generation routine.") + private IrisCoralForm form = IrisCoralForm.BRANCHING; + + @Required + @Description("The structural coral block (the living wood of the reef), e.g. minecraft:tube_coral_block. Ignored when blockPalette is set.") + @RegistryListBlockType + private String block = "minecraft:tube_coral_block"; + + @Description("A noise-driven palette for the structural coral block. When set this overrides the single block, letting the reef mix tube/brain/bubble/fire/horn coral_block tones across its body.") + private IrisMaterialPalette blockPalette = null; + + @Description("Optional tip block placed at branch tips and at the very top of the structure, e.g. coral fans or minecraft:sea_pickle. Ignored when tipPalette is set. Null disables tips.") + @RegistryListBlockType + private String tipBlock = null; + + @Description("A noise-driven palette for the tip block. When set this overrides the single tipBlock, letting tips mix fan / pickle decorations.") + private IrisMaterialPalette tipPalette = null; + + @MinNumber(0) + @MaxNumber(1) + @Description("The chance per eligible tip position to place a tip block (coral fan / sea pickle).") + private double tipChance = 0.6; + + @MinNumber(1) + @Description("Minimum overall height of the coral in blocks.") + private int heightMin = 4; + + @MinNumber(1) + @Description("Maximum overall height of the coral in blocks.") + private int heightMax = 8; + + @MinNumber(0) + @Description("Horizontal spread of the structure in blocks. For BRANCHING this is how far arms reach out, for BRAIN/PILLAR/FAN it widens the base footprint.") + private double spread = 3; + + @MinNumber(0) + @MaxNumber(1) + @Description("Lateral noise wobble (0-1) applied to branches and tendrils so they are not ruler-straight. 0 is perfectly straight, 1 is heavily wandering.") + private double sway = 0.5; + + @MinNumber(1) + @MaxNumber(12) + @Description("BRANCHING only: how many arms sprout from the central stalk.") + private int branchCount = 4; + + @MinNumber(1) + @Description("BRANCHING only: the length of each arm in blocks before reaching its tip.") + private double branchLength = 3; + + @MinNumber(0) + @MaxNumber(90) + @Description("BRANCHING only: the upward elevation in degrees of each arm from horizontal. 90 is straight up, 0 is flat out.") + private double branchElevation = 55; + + @Description("BRANCHING only: how the arms are distributed around the stalk by azimuth.") + private IrisCoralBranchAzimuth branchAzimuth = IrisCoralBranchAzimuth.GOLDEN_ANGLE; + + @Description("BRANCHING only: if true, each arm splits once into a small fan of sub-arms for a bushier reef.") + private boolean subBranches = true; + + @MinNumber(1) + @MaxNumber(5) + @Description("BRANCHING only: how many sub-arms each arm splits into when subBranches is true.") + private int subBranchCount = 2; + + @MinNumber(0) + @MaxNumber(1) + @Description("BRANCHING only: the length of each sub-arm as a fraction of its parent arm.") + private double subBranchScale = 0.5; + + @MinNumber(0) + @MaxNumber(4) + @Description("BRANCHING and PILLAR only: the radius of the small coral tip cluster grown at each tip.") + private int tipClusterRadius = 1; + + @MinNumber(1) + @MaxNumber(8) + @Description("BRAIN only: the horizontal radius of the brain-coral blob in blocks.") + private int brainRadius = 3; + + @MinNumber(0) + @MaxNumber(1) + @Description("BRAIN only: how strongly 3D value noise perturbs the ellipsoid surface, for a wrinkled organic blob. 0 is a smooth dome.") + private double brainRoughness = 0.35; + + @MinNumber(1) + @MaxNumber(12) + @Description("PILLAR only: the radius of the stout vertical column in blocks.") + private int pillarRadius = 1; + + @MinNumber(1) + @MaxNumber(8) + @Description("FAN only: the half-width of the upright fan plane in blocks (the disc widens toward its mid-height).") + private int fanWidth = 3; + + @MinNumber(1) + @MaxNumber(12) + @Description("TENDRIL only: how many thin wavy stalks rise from the base.") + private int tendrilCount = 4; + + public KList getVariantObjects(IrisData data) { + return variantCache.aquire(() -> { + KList baked = new KList<>(); + int count = Math.max(1, variants); + + for (int i = 0; i < count; i++) { + IrisObject object = CoralGenerator.generate(this, i, new RNG(seed + (i * 7919L)), data); + if (object == null || object.getBlocks().isEmpty()) { + continue; + } + object.setLoadKey("procedural/" + name + "#" + i); + object.setLoader(data); + baked.add(object); + } + + return baked; + }); + } + + public IrisObject getVariantObject(IrisData data, RNG rng) { + KList baked = getVariantObjects(data); + if (baked == null || baked.isEmpty()) { + return null; + } + return baked.get(rng.i(baked.size())); + } + + public IrisObjectPlacement asPlacement() { + IrisObjectPlacement placement = new IrisObjectPlacement(); + placement.setMode(mode); + placement.setRotation(rotation); + placement.setClamp(clamp); + placement.setCarvingSupport(carvingSupport); + placement.setUnderwater(underwater); + placement.setTranslate(translate); + placement.setStiltSettings(stiltSettings); + placement.setVacuumSettings(vacuumSettings); + placement.setChance(chance); + placement.setDensity(density); + return placement; + } + + public boolean isPlausible() { + return false; + } +} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisCoralBranchAzimuth.java b/core/src/main/java/art/arcane/iris/generation/decoration/coral/IrisCoralBranchAzimuth.java similarity index 57% rename from core/src/main/java/art/arcane/iris/engine/object/IrisCoralBranchAzimuth.java rename to core/src/main/java/art/arcane/iris/generation/decoration/coral/IrisCoralBranchAzimuth.java index 1e711dd10..9ba470470 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisCoralBranchAzimuth.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/coral/IrisCoralBranchAzimuth.java @@ -16,18 +16,18 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.decoration.coral; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.documentation.Description; -@Desc("How the arms of a BRANCHING coral are distributed around the central stalk by compass azimuth.") +@Description("How the arms of a BRANCHING coral are distributed around the central stalk by compass azimuth.") public enum IrisCoralBranchAzimuth { - @Desc("Distribute arms by the golden angle (about 137.5 degrees per arm) for a natural phyllotactic spiral where no two arms overlap.") + @Description("Distribute arms by the golden angle (about 137.5 degrees per arm) for a natural phyllotactic spiral where no two arms overlap.") GOLDEN_ANGLE, - @Desc("Distribute arms in evenly spaced spokes, dividing 360 degrees equally between them like a radial whorl.") + @Description("Distribute arms in evenly spaced spokes, dividing 360 degrees equally between them like a radial whorl.") EVEN, - @Desc("Place each arm at a fully random azimuth using the deterministic per-variant RNG, for an irregular wild reef.") + @Description("Place each arm at a fully random azimuth using the deterministic per-variant RNG, for an irregular wild reef.") RANDOM } diff --git a/core/src/main/java/art/arcane/iris/generation/decoration/coral/IrisCoralForm.java b/core/src/main/java/art/arcane/iris/generation/decoration/coral/IrisCoralForm.java new file mode 100644 index 000000000..cd7c2457b --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/decoration/coral/IrisCoralForm.java @@ -0,0 +1,39 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2022 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package art.arcane.iris.generation.decoration.coral; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("The overall silhouette a procedural coral grows into. Each form drives a completely different generation routine in the coral generator, from tree-like branching arms to rounded brain blobs and thin wavy tendrils.") +public enum IrisCoralForm { + @Description("A tree-like coral built from a stout central stalk that sprouts several upward-leaning arms (distributed by golden angle or randomly), each optionally splitting once into sub-arms, with small coral tip clusters (fans / sea pickles) at the ends. The most structurally complex form and the closest analogue to a procedural tree.") + BRANCHING, + + @Description("A thin, single-block-thick vertical fan plane that rises and widens with height like a sheet of fire or horn coral. Reads as a flat decorative blade rather than a volume.") + FAN, + + @Description("A rounded, noise-perturbed ellipsoid blob of brain coral that bulges out of the seafloor like a boulder, with an irregular wrinkled surface driven by 3D value noise.") + BRAIN, + + @Description("A stout, thick vertical column of coral block topped with a dense tip cluster. Wider and blunter than a tendril, reading as a solid coral pillar or stack.") + PILLAR, + + @Description("Several very thin (one block wide) wavy stalks that rise upward and wander laterally using value noise, like a clump of swaying coral whips or kelp-thin growths.") + TENDRIL +} diff --git a/core/src/main/java/art/arcane/iris/engine/object/crystal/CrystalBaseBuilder.java b/core/src/main/java/art/arcane/iris/generation/decoration/crystal/CrystalBaseBuilder.java similarity index 91% rename from core/src/main/java/art/arcane/iris/engine/object/crystal/CrystalBaseBuilder.java rename to core/src/main/java/art/arcane/iris/generation/decoration/crystal/CrystalBaseBuilder.java index 764003979..7972e8d3b 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/crystal/CrystalBaseBuilder.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/crystal/CrystalBaseBuilder.java @@ -16,10 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.crystal; +package art.arcane.iris.generation.decoration.crystal; -import art.arcane.iris.engine.object.IrisCrystal; -import art.arcane.iris.engine.object.tree.TreeFunctions; +import art.arcane.iris.generation.decoration.tree.TreeFunctions; public final class CrystalBaseBuilder { private CrystalBaseBuilder() { diff --git a/core/src/main/java/art/arcane/iris/engine/object/crystal/CrystalCanvas.java b/core/src/main/java/art/arcane/iris/generation/decoration/crystal/CrystalCanvas.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/object/crystal/CrystalCanvas.java rename to core/src/main/java/art/arcane/iris/generation/decoration/crystal/CrystalCanvas.java index ca7283fe0..2563c92e9 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/crystal/CrystalCanvas.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/crystal/CrystalCanvas.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.crystal; +package art.arcane.iris.generation.decoration.crystal; -import art.arcane.iris.util.common.math.Vector3i; +import art.arcane.volmlib.util.math.Vector3i; import java.util.HashMap; import java.util.Map; diff --git a/core/src/main/java/art/arcane/iris/engine/object/crystal/CrystalGenerator.java b/core/src/main/java/art/arcane/iris/generation/decoration/crystal/CrystalGenerator.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/object/crystal/CrystalGenerator.java rename to core/src/main/java/art/arcane/iris/generation/decoration/crystal/CrystalGenerator.java index 2104c655c..aa7e27bc8 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/crystal/CrystalGenerator.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/crystal/CrystalGenerator.java @@ -16,14 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.crystal; +package art.arcane.iris.generation.decoration.crystal; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisCrystal; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisProceduralBlocks; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.generation.decoration.IrisProceduralBlocks; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.math.Vector3i; +import art.arcane.volmlib.util.math.Vector3i; import art.arcane.volmlib.util.math.RNG; import java.util.HashMap; diff --git a/core/src/main/java/art/arcane/iris/engine/object/crystal/CrystalGeometry.java b/core/src/main/java/art/arcane/iris/generation/decoration/crystal/CrystalGeometry.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/object/crystal/CrystalGeometry.java rename to core/src/main/java/art/arcane/iris/generation/decoration/crystal/CrystalGeometry.java index 2bbe409d6..fa558c58b 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/crystal/CrystalGeometry.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/crystal/CrystalGeometry.java @@ -16,9 +16,8 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.crystal; +package art.arcane.iris.generation.decoration.crystal; -import art.arcane.iris.engine.object.IrisCrystalSurface; public final class CrystalGeometry { private CrystalGeometry() { diff --git a/core/src/main/java/art/arcane/iris/engine/object/crystal/CrystalRole.java b/core/src/main/java/art/arcane/iris/generation/decoration/crystal/CrystalRole.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/object/crystal/CrystalRole.java rename to core/src/main/java/art/arcane/iris/generation/decoration/crystal/CrystalRole.java index da6fa15c1..04daf4c15 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/crystal/CrystalRole.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/crystal/CrystalRole.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.crystal; +package art.arcane.iris.generation.decoration.crystal; public enum CrystalRole { BASE, diff --git a/core/src/main/java/art/arcane/iris/engine/object/crystal/CrystalShardBuilder.java b/core/src/main/java/art/arcane/iris/generation/decoration/crystal/CrystalShardBuilder.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/object/crystal/CrystalShardBuilder.java rename to core/src/main/java/art/arcane/iris/generation/decoration/crystal/CrystalShardBuilder.java index c0b0e8cca..421daa537 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/crystal/CrystalShardBuilder.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/crystal/CrystalShardBuilder.java @@ -16,10 +16,8 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.crystal; +package art.arcane.iris.generation.decoration.crystal; -import art.arcane.iris.engine.object.IrisCrystal; -import art.arcane.iris.engine.object.IrisCrystalDistribution; import art.arcane.volmlib.util.math.RNG; public final class CrystalShardBuilder { diff --git a/core/src/main/java/art/arcane/iris/generation/decoration/crystal/IrisCrystal.java b/core/src/main/java/art/arcane/iris/generation/decoration/crystal/IrisCrystal.java new file mode 100644 index 000000000..abe4f3bf9 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/decoration/crystal/IrisCrystal.java @@ -0,0 +1,230 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2022 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package art.arcane.iris.generation.decoration.crystal; + +import art.arcane.iris.generation.cave.CarvingMode; +import art.arcane.iris.generation.decoration.IrisProceduralPlacement; +import art.arcane.iris.generation.decoration.IrisStiltSettings; +import art.arcane.iris.generation.decoration.IrisVacuumSettings; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectLimit; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.structure.object.IrisObjectRotation; +import art.arcane.iris.structure.object.IrisObjectTranslate; +import art.arcane.iris.structure.object.ObjectPlaceMode; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListBlockType; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.math.RNG; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Snippet("crystal") +@Accessors(chain = true) +@NoArgsConstructor +@AllArgsConstructor +@Description("A single procedurally generated crystal cluster: a budding base blob with faceted, tapered shards radiating from it (geode / amethyst-style). Iris bakes a pool of deterministic variants from these settings and scatters them at world-gen time, exactly like an object placement but generated from scratch instead of loaded from an iob file. Built for caves.") +@Data +public class IrisCrystal implements IrisProceduralPlacement { + private final transient AtomicCache> variantCache = new AtomicCache<>(); + + @Description("A human readable name used in logs and as the variant load key.") + private String name = "crystal"; + + @MinNumber(0) + @MaxNumber(1) + @Description("The chance per chunk for this crystal cluster to attempt placement. Use density for multiple per chunk.") + private double chance = 0.2; + + @MinNumber(1) + @Description("If the chance check passes, attempt this many placements in the chunk.") + private int density = 1; + + @MinNumber(1) + @MaxNumber(64) + @Description("How many distinct variants to pre-bake for this crystal cluster. Higher means more variety at a small memory cost.") + private int variants = 6; + + @Description("The base seed for deterministic generation. The same seed and settings always bake the same variants.") + private long seed = 1337; + + @Description("The placement mode used to anchor the crystal cluster to the terrain.") + private ObjectPlaceMode mode = ObjectPlaceMode.CENTER_HEIGHT; + + @Description("Rotate this crystal cluster's placement.") + private IrisObjectRotation rotation = new IrisObjectRotation(); + + @Description("Limit the max or min height of placement.") + private IrisObjectLimit clamp = new IrisObjectLimit(); + + @Description("Whether this crystal cluster may place on the terrain surface, under carvings, or both. Crystals are meant for caves, so this defaults to CARVING_ONLY.") + private CarvingMode carvingSupport = CarvingMode.CARVING_ONLY; + + @Description("If true, the crystal cluster anchors on the terrain height ignoring the water surface.") + private boolean underwater = false; + + @Description("Translate (offset) this placement along each axis; for example set a negative y to sink it into the ground.") + private IrisObjectTranslate translate = new IrisObjectTranslate(); + + @Description("Settings for the stilt place modes (STILT, MIN_STILT, FAST_STILT, CENTER_STILT, ERODE_STILT, ORGANIC_STILT).") + private IrisStiltSettings stiltSettings; + + @Description("Settings for the vacuum place modes (VACUUM, VACUUM_HIGH, VACUUM_FAST, VACUUM_ORGANIC).") + private IrisVacuumSettings vacuumSettings; + + @Description("The surface this crystal grows from (FLOOR shards up, CEILING shards down, WALL shards outward). This orients the baked geometry only.") + private IrisCrystalSurface growthSurface = IrisCrystalSurface.FLOOR; + + @Required + @Description("The primary crystal shard block, e.g. minecraft:amethyst_block. Ignored when blockPalette is set.") + @RegistryListBlockType + private String block = "minecraft:amethyst_block"; + + @Description("A noise-driven palette for the crystal shards (a prismatic mix, e.g. amethyst_block, calcite, tinted_glass). When set this overrides the single block, letting the shards mix blocks by noise. Palette wins.") + private IrisMaterialPalette blockPalette = null; + + @Description("Optional block placed at the very tip of each shard for a different colored or sparkling point (e.g. minecraft:amethyst_cluster or glowstone). Ignored when tipPalette is set. If unset and glow is true, a light-emitting block is sprinkled among the tips instead.") + @RegistryListBlockType + private String tipBlock = null; + + @Description("A noise-driven palette for the shard tips. When set this overrides the single tipBlock. Palette wins.") + private IrisMaterialPalette tipPalette = null; + + @MinNumber(0) + @MaxNumber(1) + @Description("The chance per shard that its very tip is replaced by the tip block (or glow block).") + private double tipChance = 0.6; + + @Description("If true and no tipBlock/tipPalette is set, sprinkle a light-emitting block (the glowBlock) among the shard tips for a sparkling geode.") + private boolean glow = false; + + @Description("The light-emitting block sprinkled among the tips when glow is true and no tip block is configured.") + @RegistryListBlockType + private String glowBlock = "minecraft:glowstone"; + + @Description("Optional block for the budding base blob the shards grow from, e.g. minecraft:budding_amethyst or calcite. Ignored when basePalette is set. If unset, the base is built from the primary shard block.") + @RegistryListBlockType + private String baseBlock = "minecraft:budding_amethyst"; + + @Description("A noise-driven palette for the budding base blob. When set this overrides the single baseBlock. Palette wins.") + private IrisMaterialPalette basePalette = null; + + @MinNumber(0) + @Description("Radius in blocks of the budding base blob the shards radiate from. 0 places no base blob (shards spring from a single point).") + private double baseRadius = 1.6; + + @MinNumber(0) + @MaxNumber(1) + @Description("How strongly value noise perturbs the surface of the base blob, for a lumpy organic budding base rather than a clean sphere.") + private double baseNoise = 0.35; + + @MinNumber(1) + @Description("Minimum number of shards radiating from the base.") + private int shardCountMin = 5; + + @MinNumber(1) + @Description("Maximum number of shards radiating from the base.") + private int shardCountMax = 11; + + @MinNumber(1) + @Description("Minimum length in blocks of a shard, measured from the base out to its pointed tip.") + private int shardLengthMin = 3; + + @MinNumber(1) + @Description("Maximum length in blocks of a shard, measured from the base out to its pointed tip.") + private int shardLengthMax = 8; + + @MinNumber(0.5) + @Description("Starting radius in blocks of a shard at its thick base end. The shard tapers from this down to a single block at the tip.") + private double shardBaseRadius = 1.4; + + @MinNumber(0) + @MaxNumber(1) + @Description("How aggressively each shard narrows from base to tip. 0 keeps a near-constant column; 1 tapers fully to a sharp point at the very tip. Each shard always ends in a single pointed block.") + private double shardTaper = 0.85; + + @MinNumber(0) + @MaxNumber(90) + @Description("The half-angle in degrees of the cone the shards fan within around the surface normal. 0 makes all shards parallel to the normal; larger values splay them outward into a starburst.") + private double spreadAngle = 45; + + @Description("How the shard azimuths are distributed around the normal (RANDOM for a chaotic clump, GOLDEN_ANGLE for an evenly spaced rosette).") + private IrisCrystalDistribution distribution = IrisCrystalDistribution.GOLDEN_ANGLE; + + @MinNumber(0) + @MaxNumber(1) + @Description("Per-shard angular randomness (0-1) added on top of the chosen distribution so the cluster never looks mechanically regular. 0 is perfectly distributed; 1 is heavily jittered.") + private double jitter = 0.25; + + public KList getVariantObjects(IrisData data) { + return variantCache.aquire(() -> { + KList baked = new KList<>(); + int count = Math.max(1, variants); + + for (int i = 0; i < count; i++) { + IrisObject object = CrystalGenerator.generate(this, i, new RNG(seed + (i * 7919L)), data); + if (object == null || object.getBlocks().isEmpty()) { + continue; + } + object.setLoadKey("procedural/" + name + "#" + i); + object.setLoader(data); + baked.add(object); + } + + return baked; + }); + } + + public IrisObject getVariantObject(IrisData data, RNG rng) { + KList baked = getVariantObjects(data); + if (baked == null || baked.isEmpty()) { + return null; + } + return baked.get(rng.i(baked.size())); + } + + public IrisObjectPlacement asPlacement() { + IrisObjectPlacement placement = new IrisObjectPlacement(); + placement.setMode(mode); + placement.setRotation(rotation); + placement.setClamp(clamp); + placement.setCarvingSupport(carvingSupport); + placement.setUnderwater(underwater); + placement.setTranslate(translate); + placement.setStiltSettings(stiltSettings); + placement.setVacuumSettings(vacuumSettings); + placement.setChance(chance); + placement.setDensity(density); + return placement; + } + + public boolean isPlausible() { + return false; + } +} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisCrystalDistribution.java b/core/src/main/java/art/arcane/iris/generation/decoration/crystal/IrisCrystalDistribution.java similarity index 59% rename from core/src/main/java/art/arcane/iris/engine/object/IrisCrystalDistribution.java rename to core/src/main/java/art/arcane/iris/generation/decoration/crystal/IrisCrystalDistribution.java index adc4a1f7f..9a8a2e0ba 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisCrystalDistribution.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/crystal/IrisCrystalDistribution.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.decoration.crystal; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.documentation.Description; -@Desc("How the shards of a crystal cluster are angularly distributed around the surface normal.") +@Description("How the shards of a crystal cluster are angularly distributed around the surface normal.") public enum IrisCrystalDistribution { - @Desc("Each shard gets a uniformly random azimuth around the normal. Produces a chaotic, naturally clumped cluster.") + @Description("Each shard gets a uniformly random azimuth around the normal. Produces a chaotic, naturally clumped cluster.") RANDOM, - @Desc("Each shard's azimuth advances by the golden angle (~137.5 degrees) from the previous one. Produces an evenly spaced sunflower-like fan with no two shards overlapping, ideal for a geode rosette.") + @Description("Each shard's azimuth advances by the golden angle (~137.5 degrees) from the previous one. Produces an evenly spaced sunflower-like fan with no two shards overlapping, ideal for a geode rosette.") GOLDEN_ANGLE } diff --git a/core/src/main/java/art/arcane/iris/generation/decoration/crystal/IrisCrystalSurface.java b/core/src/main/java/art/arcane/iris/generation/decoration/crystal/IrisCrystalSurface.java new file mode 100644 index 000000000..b4afff1d1 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/decoration/crystal/IrisCrystalSurface.java @@ -0,0 +1,33 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2022 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package art.arcane.iris.generation.decoration.crystal; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("The surface a crystal cluster grows from. This only orients the baked geometry (which way the shards point); placement of the object into a cave is handled by the placement system, not here.") +public enum IrisCrystalSurface { + @Description("Grows from a cave floor. The budding base sits at the bottom and the shards point upward, fanning within the spread cone around the up axis. Built with positive py so the cluster grows up from the base layer.") + FLOOR, + + @Description("Grows from a cave ceiling. The budding base sits at the top and the shards point downward like stalactites, fanning within the spread cone around the down axis. Built with negative py so the cluster grows down from the ceiling.") + CEILING, + + @Description("Grows from a cave wall. The budding base hugs the wall and the shards point outward and slightly upward, fanning within the spread cone around a tilted normal so the cluster reads as a wall sconce of shards.") + WALL +} diff --git a/core/src/main/java/art/arcane/iris/engine/object/formation/FormationBlockResolver.java b/core/src/main/java/art/arcane/iris/generation/decoration/formation/FormationBlockResolver.java similarity index 90% rename from core/src/main/java/art/arcane/iris/engine/object/formation/FormationBlockResolver.java rename to core/src/main/java/art/arcane/iris/generation/decoration/formation/FormationBlockResolver.java index de02aeec8..05be4f927 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/formation/FormationBlockResolver.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/formation/FormationBlockResolver.java @@ -16,14 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.formation; +package art.arcane.iris.generation.decoration.formation; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisFormation; -import art.arcane.iris.engine.object.IrisMaterialPalette; -import art.arcane.iris.engine.object.IrisProceduralBlocks; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; +import art.arcane.iris.generation.decoration.IrisProceduralBlocks; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.math.Vector3i; +import art.arcane.volmlib.util.math.Vector3i; import art.arcane.volmlib.util.math.RNG; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; diff --git a/core/src/main/java/art/arcane/iris/engine/object/formation/FormationCanvas.java b/core/src/main/java/art/arcane/iris/generation/decoration/formation/FormationCanvas.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/object/formation/FormationCanvas.java rename to core/src/main/java/art/arcane/iris/generation/decoration/formation/FormationCanvas.java index b7b842a36..6b4f63d73 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/formation/FormationCanvas.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/formation/FormationCanvas.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.formation; +package art.arcane.iris.generation.decoration.formation; -import art.arcane.iris.util.common.math.Vector3i; +import art.arcane.volmlib.util.math.Vector3i; import java.util.HashMap; import java.util.Map; diff --git a/core/src/main/java/art/arcane/iris/engine/object/formation/FormationGenerator.java b/core/src/main/java/art/arcane/iris/generation/decoration/formation/FormationGenerator.java similarity index 91% rename from core/src/main/java/art/arcane/iris/engine/object/formation/FormationGenerator.java rename to core/src/main/java/art/arcane/iris/generation/decoration/formation/FormationGenerator.java index 60ae3377f..5d870e3ee 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/formation/FormationGenerator.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/formation/FormationGenerator.java @@ -16,14 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.formation; +package art.arcane.iris.generation.decoration.formation; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisFormation; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisProceduralBlocks; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.generation.decoration.IrisProceduralBlocks; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.math.Vector3i; +import art.arcane.volmlib.util.math.Vector3i; import art.arcane.volmlib.util.math.RNG; import java.util.HashMap; diff --git a/core/src/main/java/art/arcane/iris/engine/object/formation/FormationProfiles.java b/core/src/main/java/art/arcane/iris/generation/decoration/formation/FormationProfiles.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/object/formation/FormationProfiles.java rename to core/src/main/java/art/arcane/iris/generation/decoration/formation/FormationProfiles.java index ebbadb6d1..8767390c0 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/formation/FormationProfiles.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/formation/FormationProfiles.java @@ -16,9 +16,8 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.formation; +package art.arcane.iris.generation.decoration.formation; -import art.arcane.iris.engine.object.IrisFormation; public final class FormationProfiles { private FormationProfiles() { diff --git a/core/src/main/java/art/arcane/iris/engine/object/formation/FormationShapeBuilder.java b/core/src/main/java/art/arcane/iris/generation/decoration/formation/FormationShapeBuilder.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/object/formation/FormationShapeBuilder.java rename to core/src/main/java/art/arcane/iris/generation/decoration/formation/FormationShapeBuilder.java index 54f3026c0..34724f937 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/formation/FormationShapeBuilder.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/formation/FormationShapeBuilder.java @@ -16,11 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.formation; +package art.arcane.iris.generation.decoration.formation; -import art.arcane.iris.engine.object.IrisFormation; -import art.arcane.iris.engine.object.tree.TreeFunctions; -import art.arcane.iris.util.common.math.Vector3i; +import art.arcane.iris.generation.decoration.tree.TreeFunctions; +import art.arcane.volmlib.util.math.Vector3i; import art.arcane.volmlib.util.math.RNG; import java.util.HashMap; diff --git a/core/src/main/java/art/arcane/iris/generation/decoration/formation/IrisFormation.java b/core/src/main/java/art/arcane/iris/generation/decoration/formation/IrisFormation.java new file mode 100644 index 000000000..c005cb06d --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/decoration/formation/IrisFormation.java @@ -0,0 +1,304 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2022 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package art.arcane.iris.generation.decoration.formation; + +import art.arcane.iris.generation.cave.CarvingMode; +import art.arcane.iris.generation.decoration.IrisProceduralPlacement; +import art.arcane.iris.generation.decoration.IrisStiltSettings; +import art.arcane.iris.generation.decoration.IrisVacuumSettings; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectLimit; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.structure.object.IrisObjectRotation; +import art.arcane.iris.structure.object.IrisObjectTranslate; +import art.arcane.iris.structure.object.ObjectPlaceMode; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListBlockType; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.math.RNG; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Snippet("formation") +@Accessors(chain = true) +@NoArgsConstructor +@AllArgsConstructor +@Description("A single procedurally generated natural formation, including rock landmarks and magical glacial silhouettes. Iris bakes a pool of deterministic variants from these settings and scatters them at world-gen time, exactly like an object placement but generated from scratch instead of loaded from an iob file.") +@Data +public class IrisFormation implements IrisProceduralPlacement { + private final transient AtomicCache> variantCache = new AtomicCache<>(); + + @Description("A human readable name used in logs and as the variant load key.") + private String name = "formation"; + + @MinNumber(0) + @MaxNumber(1) + @Description("The chance per chunk for this formation to attempt placement. Use density for multiple per chunk.") + private double chance = 0.02; + + @MinNumber(1) + @Description("If the chance check passes, attempt this many placements in the chunk.") + private int density = 1; + + @MinNumber(1) + @MaxNumber(64) + @Description("How many distinct variants to pre-bake for this formation. Higher means more variety at a small memory cost.") + private int variants = 6; + + @Description("The base seed for deterministic generation. The same seed and settings always bake the same variants.") + private long seed = 1337; + + @Description("The placement mode used to anchor the formation to the terrain.") + private ObjectPlaceMode mode = ObjectPlaceMode.CENTER_HEIGHT; + + @Description("Rotate this formation's placement.") + private IrisObjectRotation rotation = new IrisObjectRotation(); + + @Description("Limit the max or min height of placement.") + private IrisObjectLimit clamp = new IrisObjectLimit(); + + @Description("Whether this formation may place on the terrain surface, under carvings, or both.") + private CarvingMode carvingSupport = CarvingMode.SURFACE_ONLY; + + @MinNumber(0) + @MaxNumber(16) + @Description("Horizontal buffer, in blocks, beyond each lowest solid foundation block that must also be solid, un-carved ground.") + private int surfaceSupportBuffer = 3; + + @Description("If true, the formation anchors on the terrain height ignoring the water surface.") + private boolean underwater = false; + + @Description("Translate (offset) this placement along each axis; for example set a negative y to sink it into the ground.") + private IrisObjectTranslate translate = new IrisObjectTranslate(); + + @Description("Settings for the stilt place modes (STILT, MIN_STILT, FAST_STILT, CENTER_STILT, ERODE_STILT, ORGANIC_STILT).") + private IrisStiltSettings stiltSettings; + + @Description("Settings for the vacuum place modes (VACUUM, VACUUM_HIGH, VACUUM_FAST, VACUUM_ORGANIC).") + private IrisVacuumSettings vacuumSettings; + + @Description("The overall silhouette of the formation. Drives which sculpting routine the generator uses.") + private IrisFormationForm form = IrisFormationForm.SPIRE; + + @Required + @Description("The main rock block, e.g. minecraft:stone. Ignored when blockPalette is set.") + @RegistryListBlockType + private String block = "minecraft:stone"; + + @Description("A noise-driven palette for the main rock body. When set this overrides the single block, letting the body mix blocks by noise.") + private IrisMaterialPalette blockPalette = null; + + @Description("Optional caprock block placed on the top crown of the formation (and the wide overhanging cap for HOODOO). Ignored when capPalette is set. When null and capPalette is unset, the formation uses its main rock everywhere.") + @RegistryListBlockType + private String capBlock = null; + + @Description("A noise-driven palette for the caprock. When set this overrides the single capBlock.") + private IrisMaterialPalette capPalette = null; + + @Description("Optional palette of strata (horizontal colored bands) blended into the rock body by y level. When set, every strataThickness blocks of height switches to the next strata block, producing the signature banded look. Falls back to the main block where unset.") + private IrisMaterialPalette strataPalette = null; + + @MinNumber(1) + @MaxNumber(32) + @Description("The thickness in blocks of each horizontal strata band when strataPalette is set.") + private int strataThickness = 3; + + @MinNumber(1) + @Description("Minimum total height of the formation in blocks.") + private int heightMin = 14; + + @MinNumber(1) + @Description("Maximum total height of the formation in blocks.") + private int heightMax = 26; + + @MinNumber(1) + @Description("Minimum base radius (half-width) of the formation in blocks.") + private int baseWidthMin = 3; + + @MinNumber(1) + @Description("Maximum base radius (half-width) of the formation in blocks.") + private int baseWidthMax = 6; + + @MinNumber(0) + @Description("The target radius (half-width) at the very top of the formation in blocks, before the profile is applied. 0 means taper to a point.") + private int topWidth = 0; + + @Description("The function used to shape the formation radius over its height.") + private IrisFormationProfile profile = IrisFormationProfile.TAPER; + + @MinNumber(0) + @MaxNumber(1) + @Description("The normalized height (0 base, 1 top) of the pinched waist for the PARABOLIC profile (used by HOODOO).") + private double profileWaist = 0.55; + + @MinNumber(0) + @MaxNumber(1) + @Description("The minimum radius fraction at the waist for the PARABOLIC profile. Lower values pinch the waist tighter.") + private double profileWaistFloor = 0.35; + + @MinNumber(0) + @Description("How far the formation leans, in degrees from vertical. 0 is perfectly upright. The whole body is sheared by this amount over its height.") + private double lean = 0; + + @Description("Compass direction in degrees the formation leans toward when lean is non-zero.") + private double leanAzimuth = 0; + + @MinNumber(0) + @MaxNumber(1) + @Description("Surface roughness from 0 (a clean smooth solid) to 1 (heavily eroded and pitted). Driven by 3D value noise that perturbs the radius so the formation never reads as a clean cylinder.") + private double roughness = 0.3; + + @MinNumber(0) + @MaxNumber(1) + @Description("Per-block surface jitter from 0 (none) to 1 (maximum). Randomly carves and adds isolated edge blocks to break up the silhouette.") + private double jitter = 0.15; + + @MinNumber(0) + @Description("Extra wide cap radius in blocks added on top for the HOODOO form, producing the overhanging mushroom caprock. 0 disables the overhang.") + private int hoodooCapRadius = 3; + + @MinNumber(1) + @MaxNumber(6) + @Description("The height in blocks of the HOODOO overhanging caprock slab.") + private int hoodooCapHeight = 3; + + @MinNumber(0) + @Description("How wide the ARCH opening is in blocks (the gap between the two legs). The arch span is rasterized over this width.") + private int archSpan = 10; + + @MinNumber(1) + @Description("The thickness in blocks of the ARCH legs and spanning curve.") + private int archThickness = 3; + + @MinNumber(0) + @MaxNumber(1) + @Description("How strongly an ARCH varies its leg steepness, crown position, depth bow and tube width between deterministic variants. 0 is symmetric and 1 is highly organic.") + private double archAsymmetry = 0.35; + + @MinNumber(2) + @MaxNumber(12) + @Description("How many separate columns make up a BASALT_COLUMN cluster. Each column gets a randomized height around the formation height range.") + private int basaltColumns = 5; + + @MinNumber(1) + @Description("The radius (half-width) in blocks of each individual column in a BASALT_COLUMN cluster.") + private int basaltColumnRadius = 1; + + @MinNumber(0) + @MaxNumber(1) + @Description("How much the heights of individual BASALT_COLUMN columns vary from each other, from 0 (all equal) to 1 (highly varied).") + private double basaltHeightVariance = 0.45; + + @MinNumber(1) + @MaxNumber(12) + @Description("How many tapered summits crown an ICEBERG formation.") + private int icebergPeaks = 3; + + @MinNumber(2) + @MaxNumber(8) + @Description("How many separated shards form a FISSURE.") + private int fractureCount = 3; + + @MinNumber(1) + @MaxNumber(16) + @Description("Open-air separation in blocks between the shards of a FISSURE.") + private int fractureSeparation = 2; + + @MinNumber(0.25) + @MaxNumber(6) + @Description("How many complete turns a SPIRAL makes from base to tip.") + private double spiralTurns = 1.5; + + @MinNumber(1) + @MaxNumber(32) + @Description("The starting distance in blocks between a SPIRAL and its open center.") + private int spiralRadius = 4; + + @MinNumber(1) + @MaxNumber(8) + @Description("The radius in blocks of the tube swept along a SPIRAL.") + private int spiralThickness = 2; + + @MinNumber(1) + @MaxNumber(32) + @Description("How far the hooked arm of an OVERHANG projects from its base.") + private int overhangReach = 8; + + @MinNumber(0) + @MaxNumber(16) + @Description("How many blocks the tip of an OVERHANG curls downward.") + private int overhangDrop = 3; + + public KList getVariantObjects(IrisData data) { + return variantCache.aquire(() -> { + KList baked = new KList<>(); + int count = Math.max(1, variants); + + for (int i = 0; i < count; i++) { + IrisObject object = FormationGenerator.generate(this, i, new RNG(seed + (i * 7919L)), data); + if (object == null || object.getBlocks().isEmpty()) { + continue; + } + object.setLoadKey("procedural/" + name + "#" + i); + object.setLoader(data); + baked.add(object); + } + + return baked; + }); + } + + public IrisObject getVariantObject(IrisData data, RNG rng) { + KList baked = getVariantObjects(data); + if (baked == null || baked.isEmpty()) { + return null; + } + return baked.get(rng.i(baked.size())); + } + + public IrisObjectPlacement asPlacement() { + IrisObjectPlacement placement = new IrisObjectPlacement(); + placement.setMode(mode); + placement.setRotation(rotation); + placement.setClamp(clamp); + placement.setCarvingSupport(carvingSupport); + placement.setSurfaceSupportBuffer(surfaceSupportBuffer); + placement.setUnderwater(underwater); + placement.setTranslate(translate); + placement.setStiltSettings(stiltSettings); + placement.setVacuumSettings(vacuumSettings); + placement.setChance(chance); + placement.setDensity(density); + return placement; + } + + public boolean isPlausible() { + return false; + } +} diff --git a/core/src/main/java/art/arcane/iris/generation/decoration/formation/IrisFormationForm.java b/core/src/main/java/art/arcane/iris/generation/decoration/formation/IrisFormationForm.java new file mode 100644 index 000000000..0fdac3060 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/decoration/formation/IrisFormationForm.java @@ -0,0 +1,45 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2022 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package art.arcane.iris.generation.decoration.formation; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("The overall silhouette of a procedural natural formation. Each form drives a distinct sculpting routine in the formation generator.") +public enum IrisFormationForm { + @Description("A tall, slender needle of rock that tapers smoothly to a point at the top (a sharp pinnacle or stone spire).") + SPIRE, + @Description("A column with a pinched, eroded waist and a wide overhanging caprock balanced on top (the classic desert hoodoo / mushroom rock).") + HOODOO, + @Description("Two stout legs joined by a spanning curved bridge of rock overhead (a natural stone arch).") + ARCH, + @Description("A chunky, blocky stack that tapers gently as it rises, like an isolated pillar of rock standing in water (a sea stack).") + SEA_STACK, + @Description("A rounded, lumpy boulder formed from a noise-perturbed ellipsoid that sits low on the terrain.") + BOULDER, + @Description("A tightly packed cluster of several vertical, near-hexagonal columns of varying height (a basalt column formation / giant's causeway).") + BASALT_COLUMN, + @Description("A broad, faceted mound crowned by several irregular tapered peaks, suitable for icebergs and glacial outcrops.") + ICEBERG, + @Description("Several separated, outward-leaning shards divided by open cracks.") + FISSURE, + @Description("A tapered tube swept around a tightening helix, leaving open air through its curled center.") + SPIRAL, + @Description("A grounded pillar that bends into a long hooked cantilever and curls downward at its tip.") + OVERHANG +} diff --git a/core/src/main/java/art/arcane/iris/generation/decoration/formation/IrisFormationProfile.java b/core/src/main/java/art/arcane/iris/generation/decoration/formation/IrisFormationProfile.java new file mode 100644 index 000000000..b4ccffc37 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/decoration/formation/IrisFormationProfile.java @@ -0,0 +1,35 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2022 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package art.arcane.iris.generation.decoration.formation; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("A width-shaping function evaluated over normalized height (0 at the base, 1 at the top). Controls how the formation radius scales between baseWidth at the bottom and topWidth at the top.") +public enum IrisFormationProfile { + @Description("Same radius at every height (a straight cylinder of constant baseWidth).") + CONSTANT, + @Description("Radius ramps straight from baseWidth at the bottom to topWidth at the top.") + LINEAR, + @Description("Radius shrinks smoothly toward a point as height increases (an ease that drives the SPIRE needle and gentle SEA_STACK taper).") + TAPER, + @Description("Radius pinches to a narrow waist near profileWaist then widens again toward the top (the eroded waist used by HOODOO columns).") + PARABOLIC, + @Description("Radius bulges out to its maximum in the middle of the height range and narrows at both ends (a barrel / bulged column).") + BULGE +} diff --git a/core/src/main/java/art/arcane/iris/engine/object/fungi/FungusCapBuilder.java b/core/src/main/java/art/arcane/iris/generation/decoration/fungus/FungusCapBuilder.java similarity index 92% rename from core/src/main/java/art/arcane/iris/engine/object/fungi/FungusCapBuilder.java rename to core/src/main/java/art/arcane/iris/generation/decoration/fungus/FungusCapBuilder.java index 70a4bedce..d98b8ed04 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/fungi/FungusCapBuilder.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/fungus/FungusCapBuilder.java @@ -16,14 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.fungi; +package art.arcane.iris.generation.decoration.fungus; -import art.arcane.iris.engine.object.IrisFungus; -import art.arcane.iris.engine.object.IrisFungusCapShape; -import art.arcane.iris.engine.object.IrisMaterialPalette; -import art.arcane.iris.engine.object.IrisProceduralBlocks; -import art.arcane.iris.engine.object.tree.TreeFunctions; -import art.arcane.iris.util.common.math.Vector3i; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; +import art.arcane.iris.generation.decoration.IrisProceduralBlocks; +import art.arcane.iris.generation.decoration.tree.TreeFunctions; +import art.arcane.volmlib.util.math.Vector3i; import java.util.Map; diff --git a/core/src/main/java/art/arcane/iris/engine/object/fungi/FungusCellRole.java b/core/src/main/java/art/arcane/iris/generation/decoration/fungus/FungusCellRole.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/object/fungi/FungusCellRole.java rename to core/src/main/java/art/arcane/iris/generation/decoration/fungus/FungusCellRole.java index 9f1eb9421..2df7ca189 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/fungi/FungusCellRole.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/fungus/FungusCellRole.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.fungi; +package art.arcane.iris.generation.decoration.fungus; enum FungusCellRole { STEM, diff --git a/core/src/main/java/art/arcane/iris/engine/object/fungi/FungusGenerator.java b/core/src/main/java/art/arcane/iris/generation/decoration/fungus/FungusGenerator.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/object/fungi/FungusGenerator.java rename to core/src/main/java/art/arcane/iris/generation/decoration/fungus/FungusGenerator.java index aace94dc7..9a8c30131 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/fungi/FungusGenerator.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/fungus/FungusGenerator.java @@ -16,14 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.fungi; +package art.arcane.iris.generation.decoration.fungus; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisFungus; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisProceduralBlocks; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.generation.decoration.IrisProceduralBlocks; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.math.Vector3i; +import art.arcane.volmlib.util.math.Vector3i; import art.arcane.volmlib.util.math.RNG; import java.util.HashMap; diff --git a/core/src/main/java/art/arcane/iris/engine/object/fungi/FungusShelfBuilder.java b/core/src/main/java/art/arcane/iris/generation/decoration/fungus/FungusShelfBuilder.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/object/fungi/FungusShelfBuilder.java rename to core/src/main/java/art/arcane/iris/generation/decoration/fungus/FungusShelfBuilder.java index 4a90388fe..35c62d390 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/fungi/FungusShelfBuilder.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/fungus/FungusShelfBuilder.java @@ -16,11 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.fungi; +package art.arcane.iris.generation.decoration.fungus; -import art.arcane.iris.engine.object.IrisFungus; -import art.arcane.iris.engine.object.tree.TreeFunctions; -import art.arcane.iris.util.common.math.Vector3i; +import art.arcane.iris.generation.decoration.tree.TreeFunctions; +import art.arcane.volmlib.util.math.Vector3i; import art.arcane.volmlib.util.math.RNG; import java.util.Map; diff --git a/core/src/main/java/art/arcane/iris/engine/object/fungi/FungusStemBuilder.java b/core/src/main/java/art/arcane/iris/generation/decoration/fungus/FungusStemBuilder.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/object/fungi/FungusStemBuilder.java rename to core/src/main/java/art/arcane/iris/generation/decoration/fungus/FungusStemBuilder.java index 321a5f9b8..a0c80fc82 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/fungi/FungusStemBuilder.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/fungus/FungusStemBuilder.java @@ -16,11 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.fungi; +package art.arcane.iris.generation.decoration.fungus; -import art.arcane.iris.engine.object.IrisFungus; -import art.arcane.iris.engine.object.tree.TreeFunctions; -import art.arcane.iris.util.common.math.Vector3i; +import art.arcane.iris.generation.decoration.tree.TreeFunctions; +import art.arcane.volmlib.util.math.Vector3i; import java.util.Map; diff --git a/core/src/main/java/art/arcane/iris/generation/decoration/fungus/IrisFungus.java b/core/src/main/java/art/arcane/iris/generation/decoration/fungus/IrisFungus.java new file mode 100644 index 000000000..cddd975d4 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/decoration/fungus/IrisFungus.java @@ -0,0 +1,262 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2022 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package art.arcane.iris.generation.decoration.fungus; + +import art.arcane.iris.generation.cave.CarvingMode; +import art.arcane.iris.generation.decoration.IrisProceduralPlacement; +import art.arcane.iris.generation.decoration.IrisStiltSettings; +import art.arcane.iris.generation.decoration.IrisVacuumSettings; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectLimit; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.structure.object.IrisObjectRotation; +import art.arcane.iris.structure.object.IrisObjectTranslate; +import art.arcane.iris.structure.object.ObjectPlaceMode; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListBlockType; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.math.RNG; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Snippet("fungus") +@Accessors(chain = true) +@NoArgsConstructor +@AllArgsConstructor +@Description("A single procedurally generated fungus (giant mushroom or shelf fungus). Iris bakes a pool of deterministic variants from these settings and scatters them at world-gen time, exactly like an object placement but generated from scratch instead of loaded from an iob file. The fungus is built as a stem column with a cap dome grown on top, mirroring the trunk-and-canopy model used by procedural trees.") +@Data +public class IrisFungus implements IrisProceduralPlacement { + private final transient AtomicCache> variantCache = new AtomicCache<>(); + + @Description("A human readable name used in logs and as the variant load key.") + private String name = "fungus"; + + @MinNumber(0) + @MaxNumber(1) + @Description("The chance per chunk for this fungus to attempt placement. Use density for multiple per chunk.") + private double chance = 0.4; + + @MinNumber(1) + @Description("If the chance check passes, attempt this many placements in the chunk.") + private int density = 1; + + @MinNumber(1) + @MaxNumber(64) + @Description("How many distinct variants to pre-bake for this fungus. Higher means more variety at a small memory cost.") + private int variants = 6; + + @Description("The base seed for deterministic generation. The same seed and settings always bake the same variants.") + private long seed = 1337; + + @Description("The placement mode used to anchor the fungus to the terrain.") + private ObjectPlaceMode mode = ObjectPlaceMode.CENTER_HEIGHT; + + @Description("Rotate this fungus's placement.") + private IrisObjectRotation rotation = new IrisObjectRotation(); + + @Description("Limit the max or min height of placement.") + private IrisObjectLimit clamp = new IrisObjectLimit(); + + @Description("Whether this fungus may place on the terrain surface, under carvings, or both.") + private CarvingMode carvingSupport = CarvingMode.SURFACE_ONLY; + + @Description("If true, the fungus anchors on the terrain height ignoring the water surface.") + private boolean underwater = false; + + @Description("Translate (offset) this placement along each axis; for example set a negative y to sink it into the ground.") + private IrisObjectTranslate translate = new IrisObjectTranslate(); + + @Description("Settings for the stilt place modes (STILT, MIN_STILT, FAST_STILT, CENTER_STILT, ERODE_STILT, ORGANIC_STILT).") + private IrisStiltSettings stiltSettings; + + @Description("Settings for the vacuum place modes (VACUUM, VACUUM_HIGH, VACUUM_FAST, VACUUM_ORGANIC).") + private IrisVacuumSettings vacuumSettings; + + @Required + @Description("The stem block, e.g. minecraft:mushroom_stem. Ignored when stemPalette is set.") + @RegistryListBlockType + private String stem = "minecraft:mushroom_stem"; + + @Description("A noise-driven palette for the stem. When set this overrides the single stem block, letting the stem mix blocks by noise.") + private IrisMaterialPalette stemPalette = null; + + @Required + @Description("The cap block, e.g. minecraft:red_mushroom_block. Ignored when capPalette is set.") + @RegistryListBlockType + private String cap = "minecraft:red_mushroom_block"; + + @Description("A noise-driven palette for the cap. When set this overrides the single cap block, letting the cap mix blocks by noise.") + private IrisMaterialPalette capPalette = null; + + @MinNumber(1) + @Description("Minimum total stem height in blocks. Variants spread between this and stemHeightMax.") + private int stemHeightMin = 5; + + @MinNumber(1) + @Description("Maximum total stem height in blocks. Variants spread between stemHeightMin and this.") + private int stemHeightMax = 9; + + @MinNumber(1) + @MaxNumber(3) + @Description("Base stem width in blocks. 1 is a single column, 2 is a 2x2 stem, 3 is a chunky 3x3 trunk.") + private int stemWidth = 1; + + @Description("How far the stem leans away from vertical, in degrees. 0 is perfectly upright; small values give an organic tilt.") + private double stemCurve = 0; + + @Description("Compass direction in degrees the stem leans toward when stemCurve is non-zero.") + private double stemLeanAzimuth = 0; + + @MinNumber(0) + @Description("Amplitude in blocks of a gentle sideways wave applied up the stem so it is not a perfectly straight ruler.") + private double stemWaveAmplitude = 0.4; + + @MinNumber(0.0001) + @Description("The number of full sine wobbles applied over the stem height for the stem wave.") + private double stemWavePeriods = 1; + + @Description("The silhouette of the cap (dome, flat umbrella, funnel, cone, or wide shallow slab).") + private IrisFungusCapShape capShape = IrisFungusCapShape.DOME; + + @MinNumber(1) + @Description("Minimum cap radius in blocks (measured from the cap center to its rim).") + private int capRadiusMin = 3; + + @MinNumber(1) + @Description("Maximum cap radius in blocks (measured from the cap center to its rim).") + private int capRadiusMax = 5; + + @MinNumber(1) + @MaxNumber(3) + @Description("How many blocks thick the cap shell is. 1 is a thin skin, 3 is a fleshy slab.") + private int capThickness = 1; + + @MinNumber(0) + @MaxNumber(1) + @Description("Vertical flatten factor for the cap. 0 leaves the cap at full height, 1 squashes it flat into a disc.") + private double capSquish = 0.4; + + @MinNumber(0) + @Description("How far the cap rim droops downward, in degrees, curling the edge of the cap toward the ground.") + private double capDroop = 20; + + @MinNumber(0) + @Description("How far the cap radius extends past the stem before the rim begins, in blocks. Larger values make the cap overhang the stem more.") + private double capOverhang = 2; + + @Description("Optional block forming the gill layer on the underside of the cap (gills or a glow layer), e.g. minecraft:brown_mushroom_block or minecraft:shroomlight. Ignored when gillPalette is set or left null.") + @RegistryListBlockType + private String gillBlock = null; + + @Description("A noise-driven palette for the underside gill layer. When set this overrides the single gillBlock.") + private IrisMaterialPalette gillPalette = null; + + @MinNumber(0) + @MaxNumber(1) + @Description("The fraction of underside cap blocks replaced by the gill block when a gill block or palette is set.") + private double gillChance = 0.85; + + @Description("Optional block speckled across the top of the cap by noise (white toadstool dots, warts, glowing spots), e.g. minecraft:bone_block or minecraft:white_concrete. Ignored when spotPalette is set or left null.") + @RegistryListBlockType + private String spotBlock = null; + + @Description("A noise-driven palette for the cap top spots. When set this overrides the single spotBlock.") + private IrisMaterialPalette spotPalette = null; + + @MinNumber(0) + @MaxNumber(1) + @Description("The fraction of top cap blocks replaced by the spot block, selected by value noise so spots cluster naturally.") + private double spotChance = 0.18; + + @Description("If true, generate a bracket / shelf fungus instead of an upright mushroom: a small flat fan that grows sideways off a very short or absent stem, like a polypore clinging to a trunk.") + private boolean shelf = false; + + @MinNumber(1) + @Description("The radius in blocks of the sideways fan when shelf is true.") + private int shelfRadius = 3; + + public KList getVariantObjects(IrisData data) { + return variantCache.aquire(() -> { + KList baked = new KList<>(); + int count = Math.max(1, variants); + int lo = Math.min(stemHeightMin, stemHeightMax); + int hi = Math.max(stemHeightMin, stemHeightMax); + RNG heightRng = new RNG(seed); + + for (int i = 0; i < count; i++) { + int height; + if (count == 1 || lo == hi) { + height = heightRng.i(lo, hi + 1); + } else { + double step = (hi - lo) / (double) (count - 1); + double base = lo + step * i; + double jitter = heightRng.d(-step * 0.3, step * 0.3); + height = (int) Math.round(Math.max(lo, Math.min(hi, base + jitter))); + } + + IrisObject object = FungusGenerator.generate(this, Math.max(1, height), new RNG(seed + (i * 7919L)), data); + if (object == null || object.getBlocks().isEmpty()) { + continue; + } + object.setLoadKey("procedural/" + name + "#" + i); + object.setLoader(data); + baked.add(object); + } + + return baked; + }); + } + + public IrisObject getVariantObject(IrisData data, RNG rng) { + KList baked = getVariantObjects(data); + if (baked == null || baked.isEmpty()) { + return null; + } + return baked.get(rng.i(baked.size())); + } + + public IrisObjectPlacement asPlacement() { + IrisObjectPlacement placement = new IrisObjectPlacement(); + placement.setMode(mode); + placement.setRotation(rotation); + placement.setClamp(clamp); + placement.setCarvingSupport(carvingSupport); + placement.setUnderwater(underwater); + placement.setTranslate(translate); + placement.setStiltSettings(stiltSettings); + placement.setVacuumSettings(vacuumSettings); + placement.setChance(chance); + placement.setDensity(density); + return placement; + } + + public boolean isPlausible() { + return false; + } +} diff --git a/core/src/main/java/art/arcane/iris/generation/decoration/fungus/IrisFungusCapShape.java b/core/src/main/java/art/arcane/iris/generation/decoration/fungus/IrisFungusCapShape.java new file mode 100644 index 000000000..b20d826d4 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/decoration/fungus/IrisFungusCapShape.java @@ -0,0 +1,35 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2022 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package art.arcane.iris.generation.decoration.fungus; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("The silhouette of the mushroom cap. Each shape drives how the cap radius and thickness vary from its apex down to the rim, giving the fungus a distinct profile.") +public enum IrisFungusCapShape { + @Description("A rounded hemisphere cap that bulges up and curls slightly under at the rim, the classic red toadstool dome.") + DOME, + @Description("A wide, nearly flat umbrella that holds its full radius almost to the edge before dropping, the brown-mushroom plate look.") + FLAT, + @Description("An upturned bowl whose rim lifts higher than its center, cupping upward like a chanterelle or funnel mushroom.") + FUNNEL, + @Description("A tall pointed cone that tapers from a broad base to a sharp apex, the witch-hat parasol silhouette.") + CONICAL, + @Description("A very wide but shallow slab, a low overhanging shelf-like roof that spreads far past the stem with minimal vertical rise.") + FLAT_WIDE +} diff --git a/core/src/main/java/art/arcane/iris/generation/decoration/ruin/IrisRuin.java b/core/src/main/java/art/arcane/iris/generation/decoration/ruin/IrisRuin.java new file mode 100644 index 000000000..cf2178b01 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/decoration/ruin/IrisRuin.java @@ -0,0 +1,218 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2022 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package art.arcane.iris.generation.decoration.ruin; + +import art.arcane.iris.generation.cave.CarvingMode; +import art.arcane.iris.generation.decoration.IrisProceduralPlacement; +import art.arcane.iris.generation.decoration.IrisStiltSettings; +import art.arcane.iris.generation.decoration.IrisVacuumSettings; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectLimit; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.structure.object.IrisObjectRotation; +import art.arcane.iris.structure.object.IrisObjectTranslate; +import art.arcane.iris.structure.object.ObjectPlaceMode; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListBlockType; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.math.RNG; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Snippet("ruin") +@Accessors(chain = true) +@NoArgsConstructor +@AllArgsConstructor +@Description("A single procedurally generated ruin: a crumbling man-made structure (pillar, wall, arch, foundation slab, or rubble pile). Iris bakes a pool of deterministic variants from these settings and scatters them at world-gen time, exactly like an object placement but generated from scratch instead of loaded from an iob file. Weathering swaps blocks for mossy or cracked variants by noise, erosion deletes blocks so the shape reads as collapsed, and a buried fraction sinks the ruin into the terrain.") +@Data +public class IrisRuin implements IrisProceduralPlacement { + private final transient AtomicCache> variantCache = new AtomicCache<>(); + + @Description("A human readable name used in logs and as the variant load key (procedural/#).") + private String name = "ruin"; + + @MinNumber(0) + @MaxNumber(1) + @Description("The chance (0-1) per chunk for this ruin to attempt placement. Use density to attempt more than one per chunk once the chance check passes.") + private double chance = 0.05; + + @MinNumber(1) + @Description("If the chance check passes, attempt this many placements in the chunk. Defaults to a single ruin per qualifying chunk.") + private int density = 1; + + @MinNumber(1) + @MaxNumber(64) + @Description("How many distinct variants to pre-bake for this ruin. Higher means more variety (different heights, gap patterns, erosion seeds) at a small memory cost.") + private int variants = 6; + + @Description("The base seed for deterministic generation. The same seed and settings always bake the same variants. Every random choice (size, weathering mask, erosion mask, accents) is derived from this.") + private long seed = 1337; + + @Description("The placement mode used to anchor the ruin to the terrain. MIN_HEIGHT plants the lowest footprint corner on the ground (good for slabs and rubble on slopes); CENTER_HEIGHT averages the footprint (good for tall pillars and arches).") + private ObjectPlaceMode mode = ObjectPlaceMode.MIN_HEIGHT; + + @Description("Rotate this ruin's placement so variants do not all face the same way.") + private IrisObjectRotation rotation = new IrisObjectRotation(); + + @Description("Limit the max or min terrain height at which this ruin may place.") + private IrisObjectLimit clamp = new IrisObjectLimit(); + + @Description("Whether this ruin may place on the terrain surface, under carvings (caves), or both. SURFACE_ONLY keeps ruins above ground.") + private CarvingMode carvingSupport = CarvingMode.SURFACE_ONLY; + + @Description("If true the ruin anchors on the terrain height ignoring the water surface, so it can sit submerged. If false (default) it anchors to the surface and avoids water.") + private boolean underwater = false; + + @Description("Translate (offset) this placement along each axis; for example set a negative y to sink it into the ground.") + private IrisObjectTranslate translate = new IrisObjectTranslate(); + + @Description("Settings for the stilt place modes (STILT, MIN_STILT, FAST_STILT, CENTER_STILT, ERODE_STILT, ORGANIC_STILT).") + private IrisStiltSettings stiltSettings; + + @Description("Settings for the vacuum place modes (VACUUM, VACUUM_HIGH, VACUUM_FAST, VACUUM_ORGANIC).") + private IrisVacuumSettings vacuumSettings; + + @Required + @Description("The primary structural block, e.g. minecraft:cobblestone or minecraft:stone_bricks. Ignored when blockPalette is set. This is the bulk material of the ruin before weathering swaps some of it out.") + @RegistryListBlockType + private String block = "minecraft:cobblestone"; + + @Description("A noise-driven palette for the primary block. When set this overrides the single block, letting the structure mix materials by noise. Palette wins over the block string via IrisProceduralBlocks.resolve.") + private IrisMaterialPalette blockPalette = null; + + @Description("The overall silhouette of the ruin: PILLAR (broken column), WALL (gapped segment), ARCH (two legs plus a curved span), FLOOR_SLAB (foundation patch), or RUBBLE (low scattered pile).") + private IrisRuinForm form = IrisRuinForm.PILLAR; + + @MinNumber(1) + @Description("Minimum structure height in blocks (PILLAR/WALL/ARCH height, slab thickness for FLOOR_SLAB, mound height for RUBBLE). Variants interpolate between this and heightMax.") + private int heightMin = 4; + + @MinNumber(1) + @Description("Maximum structure height in blocks. Variants interpolate between heightMin and this so taller and shorter ruins coexist.") + private int heightMax = 9; + + @MinNumber(1) + @Description("Minimum footprint width (X axis) in blocks: column/leg thickness for PILLAR/ARCH, wall thickness for WALL, slab width for FLOOR_SLAB, blob width for RUBBLE.") + private int widthMin = 1; + + @MinNumber(1) + @Description("Maximum footprint width (X axis) in blocks. Variants interpolate between widthMin and this.") + private int widthMax = 3; + + @MinNumber(1) + @Description("Minimum footprint length (Z axis) in blocks: wall run length, arch leg spacing, slab length, rubble blob length.") + private int lengthMin = 3; + + @MinNumber(1) + @Description("Maximum footprint length (Z axis) in blocks. Variants interpolate between lengthMin and this.") + private int lengthMax = 7; + + @Description("A palette of weathered variants (mossy/cracked block ids) blended over the structure by noise. When set this drives weathering; otherwise weatheredBlock is used.") + private IrisMaterialPalette weatheringPalette = null; + + @Description("A single weathered block id used when weatheringPalette is not set, e.g. minecraft:mossy_cobblestone. Applied to a noise-selected fraction of the structure, biased toward the lower rows.") + @RegistryListBlockType + private String weatheredBlock = "minecraft:mossy_cobblestone"; + + @MinNumber(0) + @MaxNumber(1) + @Description("How much of the structure is replaced by weathered blocks (0 none, 1 nearly all). The replacement mask is value-noise driven and weighted so lower rows weather more than upper rows, mimicking moss climbing from the ground.") + private double mossiness = 0.45; + + @MinNumber(0) + @MaxNumber(8) + @Description("The scale of the weathering noise. Higher values produce smaller, busier moss/crack patches; lower values produce broad continuous weathered zones.") + private double weatheringScale = 1.0; + + @MinNumber(0) + @MaxNumber(1) + @Description("How crumbled the ruin is (0 intact, 1 mostly gone). Blocks whose value-noise falls below this threshold are deleted, so the shape reads as collapsed. Structural integrity is preserved: the bottom row and core legs are never eroded away.") + private double erosion = 0.25; + + @MinNumber(0) + @MaxNumber(8) + @Description("The scale of the erosion noise. Higher values knock out small speckled holes; lower values carve larger missing chunks out of the silhouette.") + private double erosionScale = 1.5; + + @MinNumber(0) + @MaxNumber(1) + @Description("How far the structure extends below the surface as a fraction of its height (0 sits fully on top, 1 sinks it a full height into the ground). The buried rows live at negative y so the ruin reads as settled and partly swallowed by the terrain.") + private double buriedFraction = 0.2; + + @ArrayType(min = 1, type = IrisRuinDecorator.class) + @Description("Accent decorators applied after the ruin is built and eroded (moss carpets and lanterns on broken tops, vines and lichen on the faces, rubble and growth scattered around the base).") + private KList accents = new KList<>(); + + public KList getVariantObjects(IrisData data) { + return variantCache.aquire(() -> { + KList baked = new KList<>(); + int count = Math.max(1, variants); + + for (int i = 0; i < count; i++) { + IrisObject object = RuinGenerator.generate(this, i, new RNG(seed + (i * 7919L)), data); + if (object == null || object.getBlocks().isEmpty()) { + continue; + } + object.setLoadKey("procedural/" + name + "#" + i); + object.setLoader(data); + baked.add(object); + } + + return baked; + }); + } + + public IrisObject getVariantObject(IrisData data, RNG rng) { + KList baked = getVariantObjects(data); + if (baked == null || baked.isEmpty()) { + return null; + } + return baked.get(rng.i(baked.size())); + } + + public IrisObjectPlacement asPlacement() { + IrisObjectPlacement placement = new IrisObjectPlacement(); + placement.setMode(mode); + placement.setRotation(rotation); + placement.setClamp(clamp); + placement.setCarvingSupport(carvingSupport); + placement.setUnderwater(underwater); + placement.setTranslate(translate); + placement.setStiltSettings(stiltSettings); + placement.setVacuumSettings(vacuumSettings); + placement.setChance(chance); + placement.setDensity(density); + return placement; + } + + public boolean isPlausible() { + return false; + } +} diff --git a/core/src/main/java/art/arcane/iris/generation/decoration/ruin/IrisRuinDecorator.java b/core/src/main/java/art/arcane/iris/generation/decoration/ruin/IrisRuinDecorator.java new file mode 100644 index 000000000..b510c1894 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/decoration/ruin/IrisRuinDecorator.java @@ -0,0 +1,60 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2022 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package art.arcane.iris.generation.decoration.ruin; + +import art.arcane.iris.generation.terrain.IrisMaterialPalette; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListBlockType; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Snippet("ruin-decorator") +@Accessors(chain = true) +@NoArgsConstructor +@AllArgsConstructor +@Description("An accent block applied to a generated ruin after it is built and eroded, such as moss carpets on broken tops, vines on the faces, or rubble scattered around the base.") +@Data +public class IrisRuinDecorator { + @Description("Where on the ruin this accent is placed. TOP sits on the highest block of each column, SURFACE clings to air-facing vertical faces, BASE_SCATTER rings the ground footprint around the base.") + private IrisRuinDecoratorTarget target = IrisRuinDecoratorTarget.TOP; + + @Required + @Description("The block id to place, e.g. minecraft:moss_carpet or minecraft:vine. Ignored when palette is set.") + @RegistryListBlockType + private String block = ""; + + @Description("A noise-driven palette for this decorator. When set this overrides the single block, letting the accent mix blocks by noise. Resolved through IrisProceduralBlocks.resolve so the palette wins over the string.") + private IrisMaterialPalette palette = null; + + @MinNumber(0) + @MaxNumber(1) + @Description("The chance (0-1) per candidate position for this decorator to actually place. 1 covers every candidate, lower values leave sparse, patchy accents.") + private double chance = 0.4; + + @MinNumber(1) + @Description("For the BASE_SCATTER target, how many blocks beyond the ruin footprint the scatter ring extends outward in each direction. Higher values fling rubble and growth further from the structure.") + private int scatterRadius = 2; +} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisRuinDecoratorTarget.java b/core/src/main/java/art/arcane/iris/generation/decoration/ruin/IrisRuinDecoratorTarget.java similarity index 57% rename from core/src/main/java/art/arcane/iris/engine/object/IrisRuinDecoratorTarget.java rename to core/src/main/java/art/arcane/iris/generation/decoration/ruin/IrisRuinDecoratorTarget.java index 04c373290..708b4a9ac 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisRuinDecoratorTarget.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/ruin/IrisRuinDecoratorTarget.java @@ -16,16 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.decoration.ruin; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.documentation.Description; -@Desc("Where a ruin accent block is placed after the ruin has been built and eroded.") +@Description("Where a ruin accent block is placed after the ruin has been built and eroded.") public enum IrisRuinDecoratorTarget { - @Desc("On top of the highest surviving block in each column (moss carpets, snow, sculk, lanterns on broken tops).") + @Description("On top of the highest surviving block in each column (moss carpets, snow, sculk, lanterns on broken tops).") TOP, - @Desc("On air-facing vertical sides of any surviving block (vines, glow lichen, climbing growth on the ruin faces).") + @Description("On air-facing vertical sides of any surviving block (vines, glow lichen, climbing growth on the ruin faces).") SURFACE, - @Desc("Scattered across the ground footprint around the y=0 base ring, wider than the structure itself (loose rubble, mushrooms, grass tufts ringing the ruin).") + @Description("Scattered across the ground footprint around the y=0 base ring, wider than the structure itself (loose rubble, mushrooms, grass tufts ringing the ruin).") BASE_SCATTER } diff --git a/core/src/main/java/art/arcane/iris/generation/decoration/ruin/IrisRuinForm.java b/core/src/main/java/art/arcane/iris/generation/decoration/ruin/IrisRuinForm.java new file mode 100644 index 000000000..07e3090d1 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/decoration/ruin/IrisRuinForm.java @@ -0,0 +1,35 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2022 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package art.arcane.iris.generation.decoration.ruin; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("The overall silhouette of a procedural ruin. Each form rasterizes a different crumbling man-made shape from the same size, weathering, and erosion settings.") +public enum IrisRuinForm { + @Description("A broken vertical column. A square trunk (widthMin..widthMax footprint) rises to a randomized height then snaps off with a jagged crown, leaving a toppled stub. Use for ancient pillars and obelisk stumps.") + PILLAR, + @Description("A standing wall segment. A flat slab spanning lengthMin..lengthMax long and heightMin..heightMax tall, thickness widthMin..widthMax, punched through with noise-driven gaps and a ragged top edge. Use for collapsed building sides and fortifications.") + WALL, + @Description("A freestanding arch. Two legs spaced by lengthMin..lengthMax joined at the top by a rasterized semicircular span (the lintel), so the structure literally arches. Use for gateways, aqueduct bays, and ruined doorways.") + ARCH, + @Description("A flat foundation patch. A single (or few) block-thick slab covering a widthMin..lengthMax footprint at ground level, heavily eroded into an irregular outline. Use for floor remnants, plazas, and building foundations.") + FLOOR_SLAB, + @Description("A low scattered debris pile. A noise blob of partial blocks mounded near the ground, tallest at the center and thinning toward the edges. Use for collapsed-structure rubble and scree.") + RUBBLE +} diff --git a/core/src/main/java/art/arcane/iris/engine/object/ruin/RuinBlockCanvas.java b/core/src/main/java/art/arcane/iris/generation/decoration/ruin/RuinBlockCanvas.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/object/ruin/RuinBlockCanvas.java rename to core/src/main/java/art/arcane/iris/generation/decoration/ruin/RuinBlockCanvas.java index a3333ccad..4cddfeac6 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/ruin/RuinBlockCanvas.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/ruin/RuinBlockCanvas.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.ruin; +package art.arcane.iris.generation.decoration.ruin; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.math.Vector3i; +import art.arcane.volmlib.util.math.Vector3i; import java.util.HashMap; import java.util.Map; diff --git a/core/src/main/java/art/arcane/iris/engine/object/ruin/RuinDecoratorApplier.java b/core/src/main/java/art/arcane/iris/generation/decoration/ruin/RuinDecoratorApplier.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/object/ruin/RuinDecoratorApplier.java rename to core/src/main/java/art/arcane/iris/generation/decoration/ruin/RuinDecoratorApplier.java index 6dee8bf8c..f41a87f4e 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/ruin/RuinDecoratorApplier.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/ruin/RuinDecoratorApplier.java @@ -16,13 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.ruin; +package art.arcane.iris.generation.decoration.ruin; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisProceduralBlocks; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.decoration.IrisProceduralBlocks; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.engine.object.IrisRuinDecorator; -import art.arcane.iris.util.common.math.Vector3i; +import art.arcane.volmlib.util.math.Vector3i; import art.arcane.volmlib.util.math.RNG; import java.util.ArrayList; diff --git a/core/src/main/java/art/arcane/iris/engine/object/ruin/RuinGenerator.java b/core/src/main/java/art/arcane/iris/generation/decoration/ruin/RuinGenerator.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/object/ruin/RuinGenerator.java rename to core/src/main/java/art/arcane/iris/generation/decoration/ruin/RuinGenerator.java index f63a7dc23..f603c3b19 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/ruin/RuinGenerator.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/ruin/RuinGenerator.java @@ -16,15 +16,14 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.ruin; +package art.arcane.iris.generation.decoration.ruin; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisProceduralBlocks; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.generation.decoration.IrisProceduralBlocks; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.engine.object.IrisRuin; -import art.arcane.iris.engine.object.tree.TreeFunctions; -import art.arcane.iris.util.common.math.Vector3i; +import art.arcane.iris.generation.decoration.tree.TreeFunctions; +import art.arcane.volmlib.util.math.Vector3i; import art.arcane.volmlib.util.math.RNG; import java.util.ArrayList; @@ -125,7 +124,7 @@ public final class RuinGenerator { return; } int decoratorIndex = 0; - for (art.arcane.iris.engine.object.IrisRuinDecorator decorator : ruin.getAccents()) { + for (art.arcane.iris.generation.decoration.ruin.IrisRuinDecorator decorator : ruin.getAccents()) { RuinDecoratorApplier.apply(canvas, decorator, data, ruin.getSeed() + decoratorIndex * 911L, rng.nextParallelRNG(decoratorIndex + 1)); decoratorIndex++; } diff --git a/core/src/main/java/art/arcane/iris/engine/object/ruin/RuinShapes.java b/core/src/main/java/art/arcane/iris/generation/decoration/ruin/RuinShapes.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/object/ruin/RuinShapes.java rename to core/src/main/java/art/arcane/iris/generation/decoration/ruin/RuinShapes.java index db012067a..b698f4257 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/ruin/RuinShapes.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/ruin/RuinShapes.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.ruin; +package art.arcane.iris.generation.decoration.ruin; import art.arcane.volmlib.util.math.RNG; @@ -126,7 +126,7 @@ final class RuinShapes { continue; } double falloff = Math.max(0.0, 1.0 - radial); - double noise = art.arcane.iris.engine.object.tree.TreeFunctions.valueNoise3D(x, 0, z, blobSeed); + double noise = art.arcane.iris.generation.decoration.tree.TreeFunctions.valueNoise3D(x, 0, z, blobSeed); int columnHeight = (int) Math.round(peak * falloff * (0.6 + 0.4 * noise)); for (int y = 0; y <= columnHeight; y++) { if (y > 0 && rng.chance(0.25)) { @@ -139,7 +139,7 @@ final class RuinShapes { } private static int jaggedDrop(int z, int height, long seed) { - double n = art.arcane.iris.engine.object.tree.TreeFunctions.valueNoise1D(z * 0.9, seed); + double n = art.arcane.iris.generation.decoration.tree.TreeFunctions.valueNoise1D(z * 0.9, seed); return (int) Math.round(n * Math.max(1, height - 1) * 0.6); } } diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisProceduralTree.java b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisProceduralTree.java similarity index 53% rename from core/src/main/java/art/arcane/iris/engine/object/IrisProceduralTree.java rename to core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisProceduralTree.java index 6298f9c56..483fef040 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisProceduralTree.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisProceduralTree.java @@ -16,18 +16,29 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.decoration.tree; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListBlockType; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; -import art.arcane.iris.engine.object.tree.ProceduralTreeGenerator; +import art.arcane.iris.generation.cave.CarvingMode; +import art.arcane.iris.generation.decoration.IrisProceduralPlacement; +import art.arcane.iris.generation.decoration.IrisStiltSettings; +import art.arcane.iris.generation.decoration.IrisVacuumSettings; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectLimit; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.structure.object.IrisObjectRotation; +import art.arcane.iris.structure.object.IrisObjectTranslate; +import art.arcane.iris.structure.object.ObjectPlaceMode; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListBlockType; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; @@ -40,221 +51,221 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("A single procedurally generated tree. Iris bakes a pool of deterministic variants from these settings and scatters them at world-gen time, exactly like an object placement but generated from scratch instead of loaded from an iob file.") +@Description("A single procedurally generated tree. Iris bakes a pool of deterministic variants from these settings and scatters them at world-gen time, exactly like an object placement but generated from scratch instead of loaded from an iob file.") @Data public class IrisProceduralTree implements IrisProceduralPlacement { private final transient AtomicCache> variantCache = new AtomicCache<>(); - @Desc("A human readable name used in logs and as the variant load key.") + @Description("A human readable name used in logs and as the variant load key.") private String name = "procedural-tree"; @MinNumber(0) @MaxNumber(1) - @Desc("The chance per chunk for this tree to attempt placement. Use density for multiple per chunk.") + @Description("The chance per chunk for this tree to attempt placement. Use density for multiple per chunk.") private double chance = 0.4; @MinNumber(1) - @Desc("If the chance check passes, attempt this many placements in the chunk.") + @Description("If the chance check passes, attempt this many placements in the chunk.") private int density = 1; @MinNumber(1) @MaxNumber(64) - @Desc("How many distinct variants to pre-bake for this tree. Higher means more variety at a small memory cost.") + @Description("How many distinct variants to pre-bake for this tree. Higher means more variety at a small memory cost.") private int variants = 8; - @Desc("The base seed for deterministic generation. The same seed and settings always bake the same variants.") + @Description("The base seed for deterministic generation. The same seed and settings always bake the same variants.") private long seed = 1337; - @Desc("If true (default) leaves are placed with vanilla distance-from-wood values and persistent=false so leaf decay behaves naturally and the tree reads as plausible. If false, leaves are forced persistent and never decay (a raw object dump).") + @Description("If true (default) leaves are placed with vanilla distance-from-wood values and persistent=false so leaf decay behaves naturally and the tree reads as plausible. If false, leaves are forced persistent and never decay (a raw object dump).") private boolean plausible = true; - @Desc("The placement mode used to anchor the tree to the terrain.") + @Description("The placement mode used to anchor the tree to the terrain.") private ObjectPlaceMode mode = ObjectPlaceMode.CENTER_HEIGHT; - @Desc("Rotate this tree's placement.") + @Description("Rotate this tree's placement.") private IrisObjectRotation rotation = new IrisObjectRotation(); - @Desc("Limit the max or min height of placement.") + @Description("Limit the max or min height of placement.") private IrisObjectLimit clamp = new IrisObjectLimit(); - @Desc("Whether this tree may place on the terrain surface, under carvings, or both.") + @Description("Whether this tree may place on the terrain surface, under carvings, or both.") private CarvingMode carvingSupport = CarvingMode.SURFACE_ONLY; - @Desc("If true, the tree anchors on the terrain height ignoring the water surface.") + @Description("If true, the tree anchors on the terrain height ignoring the water surface.") private boolean underwater = false; - @Desc("Translate (offset) this placement along each axis; for example set a negative y to sink it into the ground.") + @Description("Translate (offset) this placement along each axis; for example set a negative y to sink it into the ground.") private IrisObjectTranslate translate = new IrisObjectTranslate(); - @Desc("Settings for the stilt place modes (STILT, MIN_STILT, FAST_STILT, CENTER_STILT, ERODE_STILT, ORGANIC_STILT).") + @Description("Settings for the stilt place modes (STILT, MIN_STILT, FAST_STILT, CENTER_STILT, ERODE_STILT, ORGANIC_STILT).") private IrisStiltSettings stiltSettings; - @Desc("Settings for the vacuum place modes (VACUUM, VACUUM_HIGH, VACUUM_FAST, VACUUM_ORGANIC).") + @Description("Settings for the vacuum place modes (VACUUM, VACUUM_HIGH, VACUUM_FAST, VACUUM_ORGANIC).") private IrisVacuumSettings vacuumSettings; @Required - @Desc("The trunk (log) block, e.g. minecraft:oak_log. Ignored when trunkPalette is set.") + @Description("The trunk (log) block, e.g. minecraft:oak_log. Ignored when trunkPalette is set.") @RegistryListBlockType private String trunk = "minecraft:oak_log"; - @Desc("A noise-driven palette for the trunk. When set this overrides the single trunk block, letting the trunk mix blocks by noise.") + @Description("A noise-driven palette for the trunk. When set this overrides the single trunk block, letting the trunk mix blocks by noise.") private IrisMaterialPalette trunkPalette = null; @Required - @Desc("The leaf block, e.g. minecraft:oak_leaves. Ignored when leavesPalette is set.") + @Description("The leaf block, e.g. minecraft:oak_leaves. Ignored when leavesPalette is set.") @RegistryListBlockType private String leaves = "minecraft:oak_leaves"; - @Desc("A noise-driven palette for the leaves. When set this overrides the single leaf block, letting the canopy mix leaf (or other) blocks by noise. Only blocks that are actually leaves get vanilla decay distances.") + @Description("A noise-driven palette for the leaves. When set this overrides the single leaf block, letting the canopy mix leaf (or other) blocks by noise. Only blocks that are actually leaves get vanilla decay distances.") private IrisMaterialPalette leavesPalette = null; - @Desc("The named canopy profile that drives default crown radii and shape.") + @Description("The named canopy profile that drives default crown radii and shape.") private IrisTreeProfile profile = IrisTreeProfile.OAK; @MinNumber(1) - @Desc("Minimum trunk height in blocks.") + @Description("Minimum trunk height in blocks.") private int heightMin = 8; @MinNumber(1) - @Desc("Maximum trunk height in blocks.") + @Description("Maximum trunk height in blocks.") private int heightMax = 12; @MinNumber(1) - @Desc("Base trunk width in blocks. 1 is a single column, 2 is a 2x2 trunk, etc.") + @Description("Base trunk width in blocks. 1 is a single column, 2 is a 2x2 trunk, etc.") private int trunkWidth = 1; - @Desc("The function used to shape trunk width over height.") + @Description("The function used to shape trunk width over height.") private IrisTreeFunction trunkShape = IrisTreeFunction.CONSTANT; - @Desc("Width multiplier at the base for the LINEAR trunk shape.") + @Description("Width multiplier at the base for the LINEAR trunk shape.") private double shapeStart = 1; - @Desc("Width multiplier at the top for the LINEAR trunk shape.") + @Description("Width multiplier at the top for the LINEAR trunk shape.") private double shapeEnd = 1; - @Desc("Steepness for the SIGMOID trunk shape.") + @Description("Steepness for the SIGMOID trunk shape.") private double shapeSteepness = 5; - @Desc("Base for the LOG trunk shape.") + @Description("Base for the LOG trunk shape.") private double shapeBase = 2.718281828; - @Desc("Period for the SINE trunk shape.") + @Description("Period for the SINE trunk shape.") private double shapePeriod = 1; - @Desc("Amplitude for the SINE trunk shape.") + @Description("Amplitude for the SINE trunk shape.") private double shapeAmplitude = 0.2; - @Desc("Pinch position (0-1) for the PARABOLIC trunk shape.") + @Description("Pinch position (0-1) for the PARABOLIC trunk shape.") private double shapePeakOffset = 0.5; - @Desc("Minimum width fraction at the waist for the PARABOLIC trunk shape.") + @Description("Minimum width fraction at the waist for the PARABOLIC trunk shape.") private double shapeFloor = 0.5; - @Desc("Compass direction in degrees the trunk leans toward.") + @Description("Compass direction in degrees the trunk leans toward.") private double leanAzimuth = 0; - @Desc("How far the trunk leans, in degrees from vertical. 0 is perfectly upright.") + @Description("How far the trunk leans, in degrees from vertical. 0 is perfectly upright.") private double leanAngle = 0; - @Desc("How the lean accumulates over height.") + @Description("How the lean accumulates over height.") private IrisTreeFunction trunkCurve = IrisTreeFunction.LINEAR; - @Desc("Steepness for the SIGMOID trunk curve.") + @Description("Steepness for the SIGMOID trunk curve.") private double curveSteepness = 8; - @Desc("How the lean azimuth itself changes over height (for spiraling or wandering trunks).") + @Description("How the lean azimuth itself changes over height (for spiraling or wandering trunks).") private IrisTreeAzimuthMode leanAzimuthMode = IrisTreeAzimuthMode.CONSTANT; - @Desc("Azimuth at the base for the LINEAR azimuth mode.") + @Description("Azimuth at the base for the LINEAR azimuth mode.") private double azimuthStart = 0; - @Desc("Azimuth at the top for the LINEAR azimuth mode.") + @Description("Azimuth at the top for the LINEAR azimuth mode.") private double azimuthEnd = 0; - @Desc("Number of full turns for the SPIRAL azimuth mode.") + @Description("Number of full turns for the SPIRAL azimuth mode.") private double azimuthTurns = 1; - @Desc("Amplitude for the SINE azimuth mode.") + @Description("Amplitude for the SINE azimuth mode.") private double azimuthAmplitude = 90; - @Desc("Period for the SINE azimuth mode.") + @Description("Period for the SINE azimuth mode.") private double azimuthPeriod = 1; - @Desc("Offset for the SINE azimuth mode.") + @Description("Offset for the SINE azimuth mode.") private double azimuthOffset = 0; - @Desc("Scale for the NOISE azimuth mode.") + @Description("Scale for the NOISE azimuth mode.") private double azimuthScale = 1; @MinNumber(1) - @Desc("Number of branches per whorl ring for the WHORL branch azimuth mode.") + @Description("Number of branches per whorl ring for the WHORL branch azimuth mode.") private int azimuthWhorlCount = 5; - @Desc("Optional accent leaf block scattered through the canopy (blossoms, shroomlight).") + @Description("Optional accent leaf block scattered through the canopy (blossoms, shroomlight).") @RegistryListBlockType private String secondaryLeaves = null; @MinNumber(0) @MaxNumber(1) - @Desc("The fraction of leaves replaced by the secondary leaf block(s).") + @Description("The fraction of leaves replaced by the secondary leaf block(s).") private double secondaryLeafFraction = 0.35; @ArrayType(min = 1, type = IrisTreeSecondaryLeaf.class) - @Desc("Optional weighted set of accent leaf blocks. When set this overrides the single secondaryLeaves block.") + @Description("Optional weighted set of accent leaf blocks. When set this overrides the single secondaryLeaves block.") private KList weightedSecondaryLeaves = new KList<>(); - @Desc("A noise-driven palette for the secondary (accent) leaves. When set this overrides both secondaryLeaves and weightedSecondaryLeaves.") + @Description("A noise-driven palette for the secondary (accent) leaves. When set this overrides both secondaryLeaves and weightedSecondaryLeaves.") private IrisMaterialPalette secondaryLeavesPalette = null; - @Desc("Optional secondary trunk block used over a height band (for color-banded trunks). Ignored when secondaryTrunkPalette is set.") + @Description("Optional secondary trunk block used over a height band (for color-banded trunks). Ignored when secondaryTrunkPalette is set.") @RegistryListBlockType private String secondaryTrunk = null; - @Desc("A noise-driven palette for the secondary trunk band. When set this overrides the single secondaryTrunk block.") + @Description("A noise-driven palette for the secondary trunk band. When set this overrides the single secondaryTrunk block.") private IrisMaterialPalette secondaryTrunkPalette = null; @MinNumber(0) @MaxNumber(1) - @Desc("The normalized height where the secondary trunk band starts.") + @Description("The normalized height where the secondary trunk band starts.") private double secondaryTrunkStart = 0.5; @MinNumber(0) @MaxNumber(1) - @Desc("The normalized height where the secondary trunk band ends.") + @Description("The normalized height where the secondary trunk band ends.") private double secondaryTrunkEnd = 1; - @Desc("If true, a root system extends below (and around) the base so the tree connects to the ground on uneven terrain.") + @Description("If true, a root system extends below (and around) the base so the tree connects to the ground on uneven terrain.") private boolean roots = true; - @Desc("How the root system is built when roots is true.") + @Description("How the root system is built when roots is true.") private IrisTreeRootStyle rootStyle = IrisTreeRootStyle.BUTTRESS; @MinNumber(0) - @Desc("Override the root depth/reach in blocks. 0 means auto (scales with tree height).") + @Description("Override the root depth/reach in blocks. 0 means auto (scales with tree height).") private int rootDepth = 0; @MinNumber(0) - @Desc("Override the root flare radius in blocks. 0 means auto.") + @Description("Override the root flare radius in blocks. 0 means auto.") private double rootFlare = 0; @MinNumber(1) @MaxNumber(6) - @Desc("How many separate trunks the tree splits into above forkHeight. 1 is a single trunk.") + @Description("How many separate trunks the tree splits into above forkHeight. 1 is a single trunk.") private int trunkForks = 1; @MinNumber(0) @MaxNumber(1) - @Desc("The normalized height where the trunk splits into forks.") + @Description("The normalized height where the trunk splits into forks.") private double forkHeight = 0.5; - @Desc("The outward lean angle in degrees of each fork.") + @Description("The outward lean angle in degrees of each fork.") private double forkAngle = 25; - @Desc("The leaf crown configuration.") + @Description("The leaf crown configuration.") private IrisTreeCanopy canopy = new IrisTreeCanopy(); @ArrayType(min = 1, type = IrisTreeDecorator.class) - @Desc("Accent decorators applied after the tree is built (fruit, vines, snow, glow).") + @Description("Accent decorators applied after the tree is built (fruit, vines, snow, glow).") private KList decorators = new KList<>(); public KList getVariantObjects(IrisData data) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisTree.java b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTree.java similarity index 81% rename from core/src/main/java/art/arcane/iris/engine/object/IrisTree.java rename to core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTree.java index b00ae06e9..fdf9a4fbd 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisTree.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTree.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.decoration.tree; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.volmlib.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; @@ -33,17 +33,17 @@ import org.bukkit.TreeType; @Accessors(chain = true) @AllArgsConstructor @NoArgsConstructor -@Desc("Tree replace options for this object placer") +@Description("Tree replace options for this object placer") @Data public class IrisTree { @Required - @Desc("The types of trees overwritten by this object") + @Description("The types of trees overwritten by this object") @ArrayType(min = 1, type = String.class) private KList treeTypes = new KList<>(); @Required - @Desc("The size of the square of saplings this applies to (2 means a 2 * 2 sapling area)") + @Description("The size of the square of saplings this applies to (2 means a 2 * 2 sapling area)") @ArrayType(min = 1, type = IrisTreeSize.class) private KList sizes = new KList<>(); diff --git a/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeAzimuthMode.java b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeAzimuthMode.java new file mode 100644 index 000000000..c18fa4b07 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeAzimuthMode.java @@ -0,0 +1,45 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2022 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package art.arcane.iris.generation.decoration.tree; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("Controls the compass direction (azimuth) of trunk lean as it rises, or the direction each branch is thrown.") +public enum IrisTreeAzimuthMode { + @Description("A single fixed azimuth.") + CONSTANT, + @Description("Azimuth ramps straight from start to end with height.") + LINEAR, + @Description("Azimuth winds around the trunk a number of turns (corkscrew).") + SPIRAL, + @Description("Azimuth oscillates with a sine wave.") + SINE, + @Description("Azimuth wanders using deterministic noise.") + NOISE, + @Description("Each branch picks a uniformly random azimuth (falls back to constant for trunk lean).") + RANDOM, + @Description("Phyllotaxis: each successive branch is offset by the 137.5 degree golden angle for the most natural spiral packing (branches).") + GOLDEN_ANGLE, + @Description("Each successive branch is thrown to the opposite side (180 degrees apart).") + ALTERNATING, + @Description("Branches are grouped into evenly spaced whorls of azimuthWhorlCount around each ring.") + WHORL, + @Description("Azimuth zigzags by +/- amplitude on alternating branches.") + ZIGZAG +} diff --git a/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeBranchProbability.java b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeBranchProbability.java new file mode 100644 index 000000000..457aa15b9 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeBranchProbability.java @@ -0,0 +1,47 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2022 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package art.arcane.iris.generation.decoration.tree; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("Controls how the chance of spawning a branch varies with trunk height (0 at the base, 1 at the top).") +public enum IrisTreeBranchProbability { + @Description("Same branch chance at every height.") + CONSTANT, + @Description("Ramps straight from base chance to crown chance.") + LINEAR, + @Description("S-curve that switches on around a midpoint height.") + SIGMOID, + @Description("Chance rises with height raised to an exponent, clustering branches near the crown.") + TOP_HEAVY, + @Description("Bell curve peaking in a height band.") + GAUSSIAN, + @Description("Irregular organic branching from deterministic noise.") + NOISE, + @Description("Chance falls with height (1-t)^exponent, clustering branches near the base.") + BOTTOM_HEAVY, + @Description("Regular whorl rings of branches at evenly spaced heights (periods controls count).") + PERIODIC, + @Description("Branches only within a height window around mean +/- std.") + BAND, + @Description("Inverse of GAUSSIAN: branches avoid the mean band and favor base and crown.") + INVERSE_GAUSSIAN, + @Description("Exponential decay from the base upward (constant * e^-exponent*t).") + EXPONENTIAL_DECAY +} diff --git a/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeBranches.java b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeBranches.java new file mode 100644 index 000000000..79866ca1d --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeBranches.java @@ -0,0 +1,131 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2022 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package art.arcane.iris.generation.decoration.tree; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Snippet; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Snippet("tree-branches") +@Accessors(chain = true) +@NoArgsConstructor +@AllArgsConstructor +@Description("A branch system that throws limbs out of the trunk and places a leaf ball at each tip. When present, branches drive the canopy and only the topmost crown disc of the profile is still placed.") +@Data +public class IrisTreeBranches { + @Description("How branch spawn chance varies over trunk height.") + private IrisTreeBranchProbability probabilityFunction = IrisTreeBranchProbability.TOP_HEAVY; + + @MinNumber(0) + @Description("Branch chance for the CONSTANT probability function.") + private double probabilityConstant = 0.5; + + @MinNumber(0) + @Description("Branch chance at the base for the LINEAR probability function.") + private double probabilityBase = 0; + + @MinNumber(0) + @Description("Branch chance at the crown for the LINEAR probability function.") + private double probabilityCrown = 1; + + @Description("Steepness for the SIGMOID probability function.") + private double probabilitySteepness = 10; + + @Description("Midpoint height (0-1) for the SIGMOID probability function.") + private double probabilityMidpoint = 0.7; + + @Description("Exponent for the TOP_HEAVY probability function.") + private double probabilityExponent = 2; + + @Description("Mean height (0-1) for the GAUSSIAN probability function.") + private double probabilityMean = 0.7; + + @Description("Standard deviation for the GAUSSIAN probability function.") + private double probabilityStd = 0.15; + + @Description("Noise scale for the NOISE probability function.") + private double probabilityScale = 1; + + @MinNumber(0) + @Description("Number of whorl rings over the trunk height for the PERIODIC probability function.") + private double probabilityPeriods = 5; + + @Description("How branch length varies over trunk height.") + private IrisTreeFunction lengthFunction = IrisTreeFunction.LINEAR; + + @MinNumber(0) + @Description("Branch length at the base for the LINEAR length function.") + private double lengthBase = 1; + + @MinNumber(0) + @Description("Branch length at the crown for the LINEAR length function.") + private double lengthCrown = 4; + + @MinNumber(0) + @Description("Branch length for the CONSTANT length function.") + private double lengthConstant = 3; + + @MinNumber(0) + @Description("Maximum branch length for the SIGMOID, LOG and PARABOLIC length functions.") + private double lengthMax = 4; + + @Description("Steepness for the SIGMOID length function.") + private double lengthSteepness = 5; + + @Description("How the compass direction of each branch is chosen.") + private IrisTreeAzimuthMode azimuthMode = IrisTreeAzimuthMode.RANDOM; + + @Description("Fixed azimuth in degrees when azimuthMode is CONSTANT.") + private double azimuth = 0; + + @Description("Elevation angle in degrees from horizontal. 0 is flat, positive points up, negative droops down.") + private double elevation = 0; + + @MinNumber(0) + @MaxNumber(1) + @Description("How much each branch sags/droops along its length (catenary). 0 is a straight branch; higher values arc the branch and its tip downward.") + private double sag = 0; + + @MinNumber(0) + @MaxNumber(6) + @Description("How many recursive levels of sub-branches to grow. 0 is none, 1 is a single level, 2+ produces fractal branching.") + private int branchDepth = 1; + + @Description("If true, branches are clamped to never droop below horizontal (useful for upright species).") + private boolean leafStartUp = false; + + @MinNumber(0) + @Description("Leaf ball radius placed at each branch tip.") + private int clusterRadius = 2; + + @Description("How the branch tip leaf cluster fills.") + private IrisTreeLeafMode clusterMode = IrisTreeLeafMode.TRIMMED; + + @MinNumber(0) + @Description("Fill density for the branch tip leaf cluster when clusterMode is density or noise.") + private double clusterDensity = 0.85; + + @Description("Optional one level of recursive sub-branches sprouting from each branch tip.") + private IrisTreeSubBranches subBranches = null; +} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeCanopy.java b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeCanopy.java similarity index 53% rename from core/src/main/java/art/arcane/iris/engine/object/IrisTreeCanopy.java rename to core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeCanopy.java index be8fee597..18c7df10e 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeCanopy.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeCanopy.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.decoration.tree; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.volmlib.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; @@ -33,39 +33,39 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("The leaf crown of a procedural tree. Built from stacked dome-shaped discs (driven by the profile or by explicit layers) and optionally a branch system.") +@Description("The leaf crown of a procedural tree. Built from stacked dome-shaped discs (driven by the profile or by explicit layers) and optionally a branch system.") @Data public class IrisTreeCanopy { @MinNumber(0) @MaxNumber(180) - @Desc("Elevation angle in degrees from vertical for each leaf dome. 90 is a flat disc, below 90 domes downward into a sphere, above 90 flares outward into an umbrella.") + @Description("Elevation angle in degrees from vertical for each leaf dome. 90 is a flat disc, below 90 domes downward into a sphere, above 90 flares outward into an umbrella.") private double startAngle = 90; @MinNumber(0) @MaxNumber(1) - @Desc("Vertical scale of the canopy volume. Lower values flatten the crown.") + @Description("Vertical scale of the canopy volume. Lower values flatten the crown.") private double squish = 1; - @Desc("How leaves fill each canopy disc.") + @Description("How leaves fill each canopy disc.") private IrisTreeLeafMode mode = IrisTreeLeafMode.TRIMMED; @MinNumber(0) @MaxNumber(1) - @Desc("Fill probability used by the density and noise leaf modes.") + @Description("Fill probability used by the density and noise leaf modes.") private double leafDensity = 0.85; @MinNumber(0.1) - @Desc("Horizontal X stretch of the crown for elliptical or wind-blown shapes. 1 is circular.") + @Description("Horizontal X stretch of the crown for elliptical or wind-blown shapes. 1 is circular.") private double crownStretchX = 1; @MinNumber(0.1) - @Desc("Horizontal Z stretch of the crown for elliptical or wind-blown shapes. 1 is circular.") + @Description("Horizontal Z stretch of the crown for elliptical or wind-blown shapes. 1 is circular.") private double crownStretchZ = 1; @ArrayType(min = 1, type = IrisTreeLayer.class) - @Desc("Optional explicit crown discs. When provided these replace the profile-driven layers and let you sculpt the silhouette by hand.") + @Description("Optional explicit crown discs. When provided these replace the profile-driven layers and let you sculpt the silhouette by hand.") private KList layers = new KList<>(); - @Desc("Optional branch system. When present, branches build most of the canopy and only the topmost profile disc is still placed as a crown.") + @Description("Optional branch system. When present, branches build most of the canopy and only the topmost profile disc is still placed as a crown.") private IrisTreeBranches branches = null; } diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeDecorator.java b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeDecorator.java similarity index 53% rename from core/src/main/java/art/arcane/iris/engine/object/IrisTreeDecorator.java rename to core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeDecorator.java index fa3dc97d5..59ba21dba 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeDecorator.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeDecorator.java @@ -16,14 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.decoration.tree; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListBlockType; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListBlockType; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -33,29 +35,29 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("An accent block applied to a generated tree such as fruit on branch tips, vines on the trunk, snow on the crown, or a glowing underside.") +@Description("An accent block applied to a generated tree such as fruit on branch tips, vines on the trunk, snow on the crown, or a glowing underside.") @Data public class IrisTreeDecorator { - @Desc("Where this decorator is placed on the tree.") + @Description("Where this decorator is placed on the tree.") private IrisTreeDecoratorTarget target = IrisTreeDecoratorTarget.BRANCH_TIP; @Required - @Desc("The block id to place, e.g. minecraft:magma_block. Ignored when palette is set.") + @Description("The block id to place, e.g. minecraft:magma_block. Ignored when palette is set.") @RegistryListBlockType private String block = ""; - @Desc("A noise-driven palette for this decorator. When set this overrides the single block.") + @Description("A noise-driven palette for this decorator. When set this overrides the single block.") private IrisMaterialPalette palette = null; @MinNumber(0) @MaxNumber(1) - @Desc("The chance per candidate position for this decorator to place.") + @Description("The chance per candidate position for this decorator to place.") private double chance = 0.5; @MinNumber(1) - @Desc("Maximum strand length downward for the CANOPY_HANG target (random 1..length per column).") + @Description("Maximum strand length downward for the CANOPY_HANG target (random 1..length per column).") private int length = 1; - @Desc("If true the block's facing is oriented away from the trunk (for trunk-mounted fences/gates/banners).") + @Description("If true the block's facing is oriented away from the trunk (for trunk-mounted fences/gates/banners).") private boolean axisAware = false; } diff --git a/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeDecoratorTarget.java b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeDecoratorTarget.java new file mode 100644 index 000000000..8ec0cecb1 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeDecoratorTarget.java @@ -0,0 +1,45 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2022 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package art.arcane.iris.generation.decoration.tree; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("Where a tree decorator block is placed.") +public enum IrisTreeDecoratorTarget { + @Description("At the tip of each generated branch (vines, fruit, lanterns).") + BRANCH_TIP, + @Description("On air-facing sides of trunk and branch blocks (vines, moss).") + TRUNK_SURFACE, + @Description("On top of the highest block in each column (snow, sculk).") + CANOPY_TOP, + @Description("One block below the lowest leaf in each column (glowing underside).") + CANOPY_BOTTOM, + @Description("Around the y=0 ring at the base of the trunk (roots, mushrooms).") + TRUNK_BASE, + @Description("On air-facing sides of leaf blocks (berries, lights nestled in the foliage).") + LEAF_SURFACE, + @Description("Hanging strands of up to 'length' blocks below the lowest leaf in each column (vines, icicles).") + CANOPY_HANG, + @Description("On the top face of trunk and branch blocks (moss, snow on limbs).") + BRANCH_SURFACE, + @Description("One block above the very top of the trunk (nest, beehive, beacon).") + TRUNK_TOP, + @Description("Scattered across the ground footprint around the base, wider than the trunk-base ring.") + GROUND_SCATTER +} diff --git a/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeFunction.java b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeFunction.java new file mode 100644 index 000000000..56aafd2a3 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeFunction.java @@ -0,0 +1,47 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2022 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package art.arcane.iris.generation.decoration.tree; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("A shaping function evaluated over normalized height (0 at the base, 1 at the top). Used for trunk width, trunk curve and branch length.") +public enum IrisTreeFunction { + @Description("Same value at every height.") + CONSTANT, + @Description("Ramps straight from start to end.") + LINEAR, + @Description("S-curve transition controlled by steepness.") + SIGMOID, + @Description("Logarithmic falloff controlled by base.") + LOG, + @Description("Sine ripple controlled by period and amplitude.") + SINE, + @Description("Parabolic pinch, narrowest at peakOffset.") + PARABOLIC, + @Description("Geometric (exponential) interpolation from start to end.") + EXPONENTIAL, + @Description("Square-root ease: fast change low, slow high.") + SQRT, + @Description("Hard step that jumps from start to end at the threshold (peakOffset).") + STEP, + @Description("Bell bulge peaking in the middle of the height range.") + BELL, + @Description("Smoothstep ease-in-out (3t^2 - 2t^3).") + EASE_IN_OUT +} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeLayer.java b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeLayer.java similarity index 67% rename from core/src/main/java/art/arcane/iris/engine/object/IrisTreeLayer.java rename to core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeLayer.java index 8d3ed1acb..c756b07da 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeLayer.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeLayer.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.decoration.tree; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Snippet; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -30,13 +30,13 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("An explicit canopy disc at a given vertical offset and radius. Define a list of these to bypass the profile and sculpt the crown by hand.") +@Description("An explicit canopy disc at a given vertical offset and radius. Define a list of these to bypass the profile and sculpt the crown by hand.") @Data public class IrisTreeLayer { - @Desc("The vertical offset of this disc, measured in blocks above the trunk base.") + @Description("The vertical offset of this disc, measured in blocks above the trunk base.") private int yOffset = 0; @MinNumber(0.5) - @Desc("The radius of this leaf disc in blocks.") + @Description("The radius of this leaf disc in blocks.") private double radius = 2; } diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeLeafMode.java b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeLeafMode.java similarity index 50% rename from core/src/main/java/art/arcane/iris/engine/object/IrisTreeLeafMode.java rename to core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeLeafMode.java index fc02afca2..b0524c146 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeLeafMode.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeLeafMode.java @@ -16,28 +16,28 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.decoration.tree; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.documentation.Description; -@Desc("How leaves fill a disc or cluster.") +@Description("How leaves fill a disc or cluster.") public enum IrisTreeLeafMode { - @Desc("Corner-trimmed disc/sphere for a rounded silhouette.") + @Description("Corner-trimmed disc/sphere for a rounded silhouette.") TRIMMED, - @Desc("Completely filled disc/sphere.") + @Description("Completely filled disc/sphere.") FILLED, - @Desc("Seeded probabilistic falloff toward the edge controlled by leafDensity.") + @Description("Seeded probabilistic falloff toward the edge controlled by leafDensity.") DENSITY, - @Desc("Seeded value-noise mask controlled by leafDensity.") + @Description("Seeded value-noise mask controlled by leafDensity.") NOISE, - @Desc("Only the outer shell is placed, leaving the interior hollow.") + @Description("Only the outer shell is placed, leaving the interior hollow.") HOLLOW, - @Desc("Quadratic radial gradient: dense at the center, thinning sharply toward the edge.") + @Description("Quadratic radial gradient: dense at the center, thinning sharply toward the edge.") GRADIENT, - @Desc("Coarse low-frequency noise that forms clumps and gaps of foliage.") + @Description("Coarse low-frequency noise that forms clumps and gaps of foliage.") CLUMPED, - @Desc("Trimmed with heavy random erosion of the outer ring for a ragged, weathered look.") + @Description("Trimmed with heavy random erosion of the outer ring for a ragged, weathered look.") TATTERED, - @Desc("Very thin scattering of leaves across the volume.") + @Description("Very thin scattering of leaves across the volume.") SPARSE } diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeModes.java b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeModes.java similarity index 67% rename from core/src/main/java/art/arcane/iris/engine/object/IrisTreeModes.java rename to core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeModes.java index 2e9dfd0f3..cb024c39d 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeModes.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeModes.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.decoration.tree; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.documentation.Description; -@Desc("Sapling override object picking options") +@Description("Sapling override object picking options") public enum IrisTreeModes { - @Desc("Check biome, then region, pick the first one that has options. Dimension placements are not consulted.") + @Description("Check biome, then region, pick the first one that has options. Dimension placements are not consulted.") FIRST, - @Desc("Check biome, regions, and dimensions, and pick any option from the total list") + @Description("Check biome, regions, and dimensions, and pick any option from the total list") ALL } \ No newline at end of file diff --git a/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeProfile.java b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeProfile.java new file mode 100644 index 000000000..cc1190e96 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeProfile.java @@ -0,0 +1,53 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2022 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package art.arcane.iris.generation.decoration.tree; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("Named canopy presets that drive default layer radii and shape, scaled to the tree height.") +public enum IrisTreeProfile { + @Description("Rounded broadleaf crown.") + OAK, + @Description("Slim upright broadleaf crown.") + BIRCH, + @Description("Narrow conifer cone.") + SPRUCE, + @Description("Tall thin crown concentrated near the very top.") + JUNGLE, + @Description("Flat shallow umbrella crown.") + ACACIA, + @Description("Dense rounded broadleaf crown.") + DARK_OAK, + @Description("Flat wide umbrella crown compressed into the top quarter (vanilla dark oak look).") + DARK_OAK_FLAT, + @Description("Extra wide flat umbrella that overlaps into a continuous roofed canopy.") + DARK_OAK_FLAT_WIDE, + @Description("Broad rounded blossom crown.") + CHERRY, + @Description("Bare trunk with a small tuft of fronds only at the very top.") + PALM, + @Description("Broad crown with wide drooping radii, ideal with a low startAngle to make a weeping skirt.") + WILLOW, + @Description("Very narrow tall crown hugging the trunk (cypress / lombardy poplar).") + COLUMNAR, + @Description("Squat, wide, low crown for shrubs and saplings.") + BUSH, + @Description("Giant conifer cone for 2x2 mega spruce trunks.") + MEGA_SPRUCE +} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeRootStyle.java b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeRootStyle.java similarity index 61% rename from core/src/main/java/art/arcane/iris/engine/object/IrisTreeRootStyle.java rename to core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeRootStyle.java index 99b3aeafd..0af0fe028 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeRootStyle.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeRootStyle.java @@ -16,16 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.decoration.tree; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.documentation.Description; -@Desc("How a procedural tree's root system is built below (and around) the trunk base.") +@Description("How a procedural tree's root system is built below (and around) the trunk base.") public enum IrisTreeRootStyle { - @Desc("A single tapering taproot straight down from the base.") + @Description("A single tapering taproot straight down from the base.") TAPROOT, - @Desc("A taproot plus a ring of flared buttress legs that splay outward as they descend (default).") + @Description("A taproot plus a ring of flared buttress legs that splay outward as they descend (default).") BUTTRESS, - @Desc("Visible above-ground prop roots that arch out and down from the lower trunk to the ground (mangrove style).") + @Description("Visible above-ground prop roots that arch out and down from the lower trunk to the ground (mangrove style).") STILT } diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeSecondaryLeaf.java b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeSecondaryLeaf.java similarity index 65% rename from core/src/main/java/art/arcane/iris/engine/object/IrisTreeSecondaryLeaf.java rename to core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeSecondaryLeaf.java index 643e69d8d..27091ef27 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeSecondaryLeaf.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeSecondaryLeaf.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.decoration.tree; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListBlockType; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListBlockType; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -32,15 +32,15 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("A weighted accent leaf or foliage block scattered through the canopy (blossoms, shroomlight, berries).") +@Description("A weighted accent leaf or foliage block scattered through the canopy (blossoms, shroomlight, berries).") @Data public class IrisTreeSecondaryLeaf { @Required - @Desc("The block id to scatter, e.g. minecraft:shroomlight") + @Description("The block id to scatter, e.g. minecraft:shroomlight") @RegistryListBlockType private String block = ""; @MinNumber(0) - @Desc("The relative weight of this block among the secondary leaves.") + @Description("The relative weight of this block among the secondary leaves.") private int weight = 1; } diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeSettings.java b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeSettings.java similarity index 77% rename from core/src/main/java/art/arcane/iris/engine/object/IrisTreeSettings.java rename to core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeSettings.java index add93ef47..4164c8ef9 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeSettings.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeSettings.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.decoration.tree; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; @@ -31,15 +31,15 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @AllArgsConstructor @NoArgsConstructor -@Desc("Tree growth override settings") +@Description("Tree growth override settings") @Data @EqualsAndHashCode(callSuper = false) public class IrisTreeSettings { @Required - @Desc("Turn replacing on and off") + @Description("Turn replacing on and off") boolean enabled = false; - @Desc("Object picking modes") + @Description("Object picking modes") IrisTreeModes mode = IrisTreeModes.FIRST; } diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeSize.java b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeSize.java similarity index 79% rename from core/src/main/java/art/arcane/iris/engine/object/IrisTreeSize.java rename to core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeSize.java index dcff6c6ab..644e32a3a 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeSize.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeSize.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.decoration.tree; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -30,16 +30,16 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Sapling override object picking options") +@Description("Sapling override object picking options") @Data public class IrisTreeSize { @Required - @Desc("The width of the sapling area") + @Description("The width of the sapling area") int width = 1; @Required - @Desc("The depth of the sapling area") + @Description("The depth of the sapling area") int depth = 1; /** diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeSubBranches.java b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeSubBranches.java similarity index 56% rename from core/src/main/java/art/arcane/iris/engine/object/IrisTreeSubBranches.java rename to core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeSubBranches.java index d68190191..473bbe1a1 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisTreeSubBranches.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/tree/IrisTreeSubBranches.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.decoration.tree; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Snippet; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -31,36 +31,36 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("One recursive level of sub-branches sprouting from each primary branch tip.") +@Description("One recursive level of sub-branches sprouting from each primary branch tip.") @Data public class IrisTreeSubBranches { @MinNumber(1) - @Desc("How many sub-branches sprout from each primary branch tip.") + @Description("How many sub-branches sprout from each primary branch tip.") private int count = 1; - @Desc("Pitch deflection in degrees applied to each sub-branch relative to its parent. Positive bends up, negative droops down. Cumulative pitch past 90 makes sub-branches point downward.") + @Description("Pitch deflection in degrees applied to each sub-branch relative to its parent. Positive bends up, negative droops down. Cumulative pitch past 90 makes sub-branches point downward.") private double pitchDelta = 0; - @Desc("Yaw (horizontal) spread in degrees fanned between sub-branches.") + @Description("Yaw (horizontal) spread in degrees fanned between sub-branches.") private double yawDelta = 45; @MinNumber(0) - @Desc("Sub-branch length as a fraction of its parent branch length.") + @Description("Sub-branch length as a fraction of its parent branch length.") private double lengthScale = 0.5; @MinNumber(0) @MaxNumber(1) - @Desc("How much each sub-branch sags/droops along its length (catenary).") + @Description("How much each sub-branch sags/droops along its length (catenary).") private double sag = 0; @MinNumber(0) - @Desc("Leaf ball radius placed at each sub-branch tip.") + @Description("Leaf ball radius placed at each sub-branch tip.") private int clusterRadius = 1; - @Desc("How the sub-branch tip leaf cluster fills.") + @Description("How the sub-branch tip leaf cluster fills.") private IrisTreeLeafMode clusterMode = IrisTreeLeafMode.TRIMMED; @MinNumber(0) - @Desc("Fill density for the sub-branch leaf cluster when clusterMode is density or noise.") + @Description("Fill density for the sub-branch leaf cluster when clusterMode is density or noise.") private double clusterDensity = 0.85; } diff --git a/core/src/main/java/art/arcane/iris/engine/object/tree/ProceduralTreeGenerator.java b/core/src/main/java/art/arcane/iris/generation/decoration/tree/ProceduralTreeGenerator.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/object/tree/ProceduralTreeGenerator.java rename to core/src/main/java/art/arcane/iris/generation/decoration/tree/ProceduralTreeGenerator.java index cd72bf747..8842dd919 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/tree/ProceduralTreeGenerator.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/tree/ProceduralTreeGenerator.java @@ -16,13 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.tree; +package art.arcane.iris.generation.decoration.tree; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisProceduralTree; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.structure.object.IrisObject; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.generation.geometry.IrisBlockVector; import art.arcane.volmlib.util.math.RNG; import java.util.ArrayList; diff --git a/core/src/main/java/art/arcane/iris/engine/object/tree/TreeBlockCanvas.java b/core/src/main/java/art/arcane/iris/generation/decoration/tree/TreeBlockCanvas.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/object/tree/TreeBlockCanvas.java rename to core/src/main/java/art/arcane/iris/generation/decoration/tree/TreeBlockCanvas.java index 1a70a4c6a..393def2a5 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/tree/TreeBlockCanvas.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/tree/TreeBlockCanvas.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.tree; +package art.arcane.iris.generation.decoration.tree; import java.util.HashMap; import java.util.HashSet; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/TreeBlockMaterial.java b/core/src/main/java/art/arcane/iris/generation/decoration/tree/TreeBlockMaterial.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/framework/TreeBlockMaterial.java rename to core/src/main/java/art/arcane/iris/generation/decoration/tree/TreeBlockMaterial.java index b24b0915a..ddf8e4594 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/TreeBlockMaterial.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/tree/TreeBlockMaterial.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.decoration.tree; import art.arcane.iris.spi.PlatformBlockState; diff --git a/core/src/main/java/art/arcane/iris/engine/object/tree/TreeBlockResolver.java b/core/src/main/java/art/arcane/iris/generation/decoration/tree/TreeBlockResolver.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/object/tree/TreeBlockResolver.java rename to core/src/main/java/art/arcane/iris/generation/decoration/tree/TreeBlockResolver.java index f75cdb90f..941916808 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/tree/TreeBlockResolver.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/tree/TreeBlockResolver.java @@ -16,16 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.tree; +package art.arcane.iris.generation.decoration.tree; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisMaterialPalette; -import art.arcane.iris.engine.object.IrisProceduralBlocks; -import art.arcane.iris.engine.object.IrisProceduralTree; -import art.arcane.iris.engine.object.IrisTreeDecorator; -import art.arcane.iris.engine.object.IrisTreeSecondaryLeaf; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; +import art.arcane.iris.generation.decoration.IrisProceduralBlocks; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; +import art.arcane.iris.generation.block.B; import art.arcane.volmlib.util.math.RNG; public final class TreeBlockResolver { diff --git a/core/src/main/java/art/arcane/iris/engine/object/tree/TreeCanopyBuilder.java b/core/src/main/java/art/arcane/iris/generation/decoration/tree/TreeCanopyBuilder.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/object/tree/TreeCanopyBuilder.java rename to core/src/main/java/art/arcane/iris/generation/decoration/tree/TreeCanopyBuilder.java index 52a646ee5..369c772f9 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/tree/TreeCanopyBuilder.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/tree/TreeCanopyBuilder.java @@ -16,16 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.tree; +package art.arcane.iris.generation.decoration.tree; -import art.arcane.iris.engine.object.IrisProceduralBlocks; -import art.arcane.iris.engine.object.IrisProceduralTree; -import art.arcane.iris.engine.object.IrisTreeBranches; -import art.arcane.iris.engine.object.IrisTreeCanopy; -import art.arcane.iris.engine.object.IrisTreeLayer; -import art.arcane.iris.engine.object.IrisTreeLeafMode; -import art.arcane.iris.engine.object.IrisTreeProfile; -import art.arcane.iris.engine.object.IrisTreeSubBranches; +import art.arcane.iris.generation.decoration.IrisProceduralBlocks; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; diff --git a/core/src/main/java/art/arcane/iris/engine/object/tree/TreeDecoratorApplier.java b/core/src/main/java/art/arcane/iris/generation/decoration/tree/TreeDecoratorApplier.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/object/tree/TreeDecoratorApplier.java rename to core/src/main/java/art/arcane/iris/generation/decoration/tree/TreeDecoratorApplier.java index 4bc07708e..2af5694ef 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/tree/TreeDecoratorApplier.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/tree/TreeDecoratorApplier.java @@ -16,11 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.tree; +package art.arcane.iris.generation.decoration.tree; -import art.arcane.iris.engine.object.IrisProceduralBlocks; -import art.arcane.iris.engine.object.IrisProceduralTree; -import art.arcane.iris.engine.object.IrisTreeDecorator; +import art.arcane.iris.generation.decoration.IrisProceduralBlocks; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.math.RNG; diff --git a/core/src/main/java/art/arcane/iris/engine/object/tree/TreeFunctions.java b/core/src/main/java/art/arcane/iris/generation/decoration/tree/TreeFunctions.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/object/tree/TreeFunctions.java rename to core/src/main/java/art/arcane/iris/generation/decoration/tree/TreeFunctions.java index 1c70b8522..4ed7431ce 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/tree/TreeFunctions.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/tree/TreeFunctions.java @@ -16,12 +16,8 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.tree; +package art.arcane.iris.generation.decoration.tree; -import art.arcane.iris.engine.object.IrisProceduralTree; -import art.arcane.iris.engine.object.IrisTreeAzimuthMode; -import art.arcane.iris.engine.object.IrisTreeBranches; -import art.arcane.iris.engine.object.IrisTreeFunction; import art.arcane.volmlib.util.math.RNG; public final class TreeFunctions { diff --git a/core/src/main/java/art/arcane/iris/engine/object/tree/TreePlausibility.java b/core/src/main/java/art/arcane/iris/generation/decoration/tree/TreePlausibility.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/object/tree/TreePlausibility.java rename to core/src/main/java/art/arcane/iris/generation/decoration/tree/TreePlausibility.java index 00e1c6229..4f8df67ac 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/tree/TreePlausibility.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/tree/TreePlausibility.java @@ -16,10 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.tree; +package art.arcane.iris.generation.decoration.tree; -import art.arcane.iris.engine.object.IrisProceduralBlocks; -import art.arcane.iris.engine.object.IrisProceduralTree; +import art.arcane.iris.generation.decoration.IrisProceduralBlocks; import art.arcane.iris.spi.PlatformBlockState; import java.util.ArrayDeque; diff --git a/core/src/main/java/art/arcane/iris/engine/object/tree/TreeProfiles.java b/core/src/main/java/art/arcane/iris/generation/decoration/tree/TreeProfiles.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/object/tree/TreeProfiles.java rename to core/src/main/java/art/arcane/iris/generation/decoration/tree/TreeProfiles.java index 1e31797f9..40b033060 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/tree/TreeProfiles.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/tree/TreeProfiles.java @@ -16,9 +16,8 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.tree; +package art.arcane.iris.generation.decoration.tree; -import art.arcane.iris.engine.object.IrisTreeProfile; public final class TreeProfiles { private TreeProfiles() { diff --git a/core/src/main/java/art/arcane/iris/engine/object/tree/TreeRootBuilder.java b/core/src/main/java/art/arcane/iris/generation/decoration/tree/TreeRootBuilder.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/object/tree/TreeRootBuilder.java rename to core/src/main/java/art/arcane/iris/generation/decoration/tree/TreeRootBuilder.java index 5302ed52f..80f331ed5 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/tree/TreeRootBuilder.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/tree/TreeRootBuilder.java @@ -16,10 +16,8 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.tree; +package art.arcane.iris.generation.decoration.tree; -import art.arcane.iris.engine.object.IrisProceduralTree; -import art.arcane.iris.engine.object.IrisTreeRootStyle; import art.arcane.volmlib.util.math.RNG; import java.util.ArrayList; diff --git a/core/src/main/java/art/arcane/iris/engine/object/tree/TreeSupport.java b/core/src/main/java/art/arcane/iris/generation/decoration/tree/TreeSupport.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/object/tree/TreeSupport.java rename to core/src/main/java/art/arcane/iris/generation/decoration/tree/TreeSupport.java index bcb0f6035..da01e4a4c 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/tree/TreeSupport.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/tree/TreeSupport.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.tree; +package art.arcane.iris.generation.decoration.tree; import java.util.Map; diff --git a/core/src/main/java/art/arcane/iris/engine/object/tree/TreeTrunkBuilder.java b/core/src/main/java/art/arcane/iris/generation/decoration/tree/TreeTrunkBuilder.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/object/tree/TreeTrunkBuilder.java rename to core/src/main/java/art/arcane/iris/generation/decoration/tree/TreeTrunkBuilder.java index c85fbdedd..241e2ec98 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/tree/TreeTrunkBuilder.java +++ b/core/src/main/java/art/arcane/iris/generation/decoration/tree/TreeTrunkBuilder.java @@ -16,11 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.tree; +package art.arcane.iris.generation.decoration.tree; -import art.arcane.iris.engine.object.IrisProceduralBlocks; -import art.arcane.iris.engine.object.IrisProceduralTree; -import art.arcane.iris.engine.object.IrisTreeAzimuthMode; +import art.arcane.iris.generation.decoration.IrisProceduralBlocks; import java.util.ArrayList; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/util/common/math/AxisAlignedBB.java b/core/src/main/java/art/arcane/iris/generation/geometry/AxisAlignedBB.java similarity index 96% rename from core/src/main/java/art/arcane/iris/util/common/math/AxisAlignedBB.java rename to core/src/main/java/art/arcane/iris/generation/geometry/AxisAlignedBB.java index a17c01b37..d44ac2bde 100644 --- a/core/src/main/java/art/arcane/iris/util/common/math/AxisAlignedBB.java +++ b/core/src/main/java/art/arcane/iris/generation/geometry/AxisAlignedBB.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.math; +package art.arcane.iris.generation.geometry; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.volmlib.util.math.AlignedPoint; -import art.arcane.iris.engine.object.IrisPosition; +import art.arcane.iris.pack.value.IrisPosition; import art.arcane.volmlib.util.data.Cuboid; import org.bukkit.World; import org.bukkit.util.BlockVector; diff --git a/core/src/main/java/art/arcane/iris/util/common/math/IrisBlockVector.java b/core/src/main/java/art/arcane/iris/generation/geometry/IrisBlockVector.java similarity index 94% rename from core/src/main/java/art/arcane/iris/util/common/math/IrisBlockVector.java rename to core/src/main/java/art/arcane/iris/generation/geometry/IrisBlockVector.java index 288fb8e87..1c09de324 100644 --- a/core/src/main/java/art/arcane/iris/util/common/math/IrisBlockVector.java +++ b/core/src/main/java/art/arcane/iris/generation/geometry/IrisBlockVector.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.common.math; +package art.arcane.iris.generation.geometry; public class IrisBlockVector extends IrisVector { public IrisBlockVector() { diff --git a/core/src/main/java/art/arcane/iris/util/common/math/IrisVector.java b/core/src/main/java/art/arcane/iris/generation/geometry/IrisVector.java similarity index 98% rename from core/src/main/java/art/arcane/iris/util/common/math/IrisVector.java rename to core/src/main/java/art/arcane/iris/generation/geometry/IrisVector.java index 49c125ac4..07d203bec 100644 --- a/core/src/main/java/art/arcane/iris/util/common/math/IrisVector.java +++ b/core/src/main/java/art/arcane/iris/generation/geometry/IrisVector.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.common.math; +package art.arcane.iris.generation.geometry; public class IrisVector implements Cloneable { private static final double EPSILON = 0.000001; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/CaveCandidateBounds.java b/core/src/main/java/art/arcane/iris/generation/hydrology/CaveCandidateBounds.java similarity index 89% rename from core/src/main/java/art/arcane/iris/engine/hydrology/CaveCandidateBounds.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/CaveCandidateBounds.java index 35013312c..84e60545b 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/CaveCandidateBounds.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/CaveCandidateBounds.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.cave.CavePosition; +import art.arcane.iris.generation.hydrology.cave.CavePosition; record CaveCandidateBounds( int entryX, diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/CaveCandidateBuilder.java b/core/src/main/java/art/arcane/iris/generation/hydrology/CaveCandidateBuilder.java similarity index 91% rename from core/src/main/java/art/arcane/iris/engine/hydrology/CaveCandidateBuilder.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/CaveCandidateBuilder.java index 9f471ae66..bec394c2f 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/CaveCandidateBuilder.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/CaveCandidateBuilder.java @@ -1,14 +1,14 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.cave.CavePosition; -import art.arcane.iris.engine.hydrology.cave.CavePositionIndex; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCandidate; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveFluidPolicy; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveGrottoShape; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveMode; -import art.arcane.iris.engine.hydrology.cave.HydrologyCavePlannerSettings; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveSource; +import art.arcane.iris.generation.hydrology.cave.CavePosition; +import art.arcane.iris.generation.hydrology.cave.CavePositionIndex; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCandidate; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveFluidPolicy; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveGrottoShape; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveMode; +import art.arcane.iris.generation.hydrology.cave.HydrologyCavePlannerSettings; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveSource; import java.util.ArrayList; import java.util.LinkedHashMap; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/CaveCandidateSpanBuilder.java b/core/src/main/java/art/arcane/iris/generation/hydrology/CaveCandidateSpanBuilder.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/hydrology/CaveCandidateSpanBuilder.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/CaveCandidateSpanBuilder.java index 7558b16db..f422adc14 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/CaveCandidateSpanBuilder.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/CaveCandidateSpanBuilder.java @@ -1,7 +1,7 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.cave.CavePosition; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelView; +import art.arcane.iris.generation.hydrology.cave.CavePosition; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelView; import java.util.LinkedHashMap; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/CaveCourseGraph.java b/core/src/main/java/art/arcane/iris/generation/hydrology/CaveCourseGraph.java similarity index 77% rename from core/src/main/java/art/arcane/iris/engine/hydrology/CaveCourseGraph.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/CaveCourseGraph.java index db38ed40c..fc1b20168 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/CaveCourseGraph.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/CaveCourseGraph.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/CaveSpanSet.java b/core/src/main/java/art/arcane/iris/generation/hydrology/CaveSpanSet.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/hydrology/CaveSpanSet.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/CaveSpanSet.java index 209cad45a..857c0b570 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/CaveSpanSet.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/CaveSpanSet.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.ArrayList; import java.util.Arrays; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/CaveSurfaceComposition.java b/core/src/main/java/art/arcane/iris/generation/hydrology/CaveSurfaceComposition.java similarity index 77% rename from core/src/main/java/art/arcane/iris/engine/hydrology/CaveSurfaceComposition.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/CaveSurfaceComposition.java index 185ba356b..34f48e481 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/CaveSurfaceComposition.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/CaveSurfaceComposition.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCandidate; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCandidate; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/CaveSurfaceOpening.java b/core/src/main/java/art/arcane/iris/generation/hydrology/CaveSurfaceOpening.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/hydrology/CaveSurfaceOpening.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/CaveSurfaceOpening.java index a63473602..6e85f895b 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/CaveSurfaceOpening.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/CaveSurfaceOpening.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.cave.CavePosition; +import art.arcane.iris.generation.hydrology.cave.CavePosition; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/CaveYSpan.java b/core/src/main/java/art/arcane/iris/generation/hydrology/CaveYSpan.java similarity index 52% rename from core/src/main/java/art/arcane/iris/engine/hydrology/CaveYSpan.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/CaveYSpan.java index 51d05a86b..76a079066 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/CaveYSpan.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/CaveYSpan.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; record CaveYSpan(int minimumY, int maximumY) { } diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/CompiledGraph.java b/core/src/main/java/art/arcane/iris/generation/hydrology/CompiledGraph.java similarity index 83% rename from core/src/main/java/art/arcane/iris/engine/hydrology/CompiledGraph.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/CompiledGraph.java index 7761417b9..f10e831c4 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/CompiledGraph.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/CompiledGraph.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.List; import java.util.Map; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/CourseEdgeKey.java b/core/src/main/java/art/arcane/iris/generation/hydrology/CourseEdgeKey.java similarity index 77% rename from core/src/main/java/art/arcane/iris/engine/hydrology/CourseEdgeKey.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/CourseEdgeKey.java index d91216498..c8ab680ff 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/CourseEdgeKey.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/CourseEdgeKey.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/CrossTileBlockers.java b/core/src/main/java/art/arcane/iris/generation/hydrology/CrossTileBlockers.java similarity index 90% rename from core/src/main/java/art/arcane/iris/engine/hydrology/CrossTileBlockers.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/CrossTileBlockers.java index 596d05afb..ee6c1562d 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/CrossTileBlockers.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/CrossTileBlockers.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.List; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/CrossTileDraftAdmission.java b/core/src/main/java/art/arcane/iris/generation/hydrology/CrossTileDraftAdmission.java similarity index 75% rename from core/src/main/java/art/arcane/iris/engine/hydrology/CrossTileDraftAdmission.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/CrossTileDraftAdmission.java index 939255f42..5a6176387 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/CrossTileDraftAdmission.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/CrossTileDraftAdmission.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; interface CrossTileDraftAdmission { void prepare(); diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/CrossTilePublicationAdmission.java b/core/src/main/java/art/arcane/iris/generation/hydrology/CrossTilePublicationAdmission.java similarity index 89% rename from core/src/main/java/art/arcane/iris/engine/hydrology/CrossTilePublicationAdmission.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/CrossTilePublicationAdmission.java index a90072559..01e568fc6 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/CrossTilePublicationAdmission.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/CrossTilePublicationAdmission.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.List; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/CrossTileRejectedCourse.java b/core/src/main/java/art/arcane/iris/generation/hydrology/CrossTileRejectedCourse.java similarity index 80% rename from core/src/main/java/art/arcane/iris/engine/hydrology/CrossTileRejectedCourse.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/CrossTileRejectedCourse.java index a91d054a9..fc4ea5c4b 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/CrossTileRejectedCourse.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/CrossTileRejectedCourse.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/CrossTileRejectionKey.java b/core/src/main/java/art/arcane/iris/generation/hydrology/CrossTileRejectionKey.java similarity index 60% rename from core/src/main/java/art/arcane/iris/engine/hydrology/CrossTileRejectionKey.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/CrossTileRejectionKey.java index a4474e167..f33ceefd4 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/CrossTileRejectionKey.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/CrossTileRejectionKey.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; record CrossTileRejectionKey(long courseId, long winnerCourseId) { } diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/CrossTileResolution.java b/core/src/main/java/art/arcane/iris/generation/hydrology/CrossTileResolution.java similarity index 90% rename from core/src/main/java/art/arcane/iris/engine/hydrology/CrossTileResolution.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/CrossTileResolution.java index 94e95eda2..b9f498337 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/CrossTileResolution.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/CrossTileResolution.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.List; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/CrossTileResolutionContext.java b/core/src/main/java/art/arcane/iris/generation/hydrology/CrossTileResolutionContext.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/hydrology/CrossTileResolutionContext.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/CrossTileResolutionContext.java index c1f167680..5061b9030 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/CrossTileResolutionContext.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/CrossTileResolutionContext.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.HashMap; import java.util.HashSet; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/CrossTileResolvedOwner.java b/core/src/main/java/art/arcane/iris/generation/hydrology/CrossTileResolvedOwner.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/hydrology/CrossTileResolvedOwner.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/CrossTileResolvedOwner.java index 5e6186f62..e922b041d 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/CrossTileResolvedOwner.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/CrossTileResolvedOwner.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.List; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/DraftPhase.java b/core/src/main/java/art/arcane/iris/generation/hydrology/DraftPhase.java similarity index 60% rename from core/src/main/java/art/arcane/iris/engine/hydrology/DraftPhase.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/DraftPhase.java index a680cc68c..09d4aa340 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/DraftPhase.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/DraftPhase.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; enum DraftPhase { CONTEXT, diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/DraftProfile.java b/core/src/main/java/art/arcane/iris/generation/hydrology/DraftProfile.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/hydrology/DraftProfile.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/DraftProfile.java index 9c1ab3d53..1ee174ba0 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/DraftProfile.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/DraftProfile.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import art.arcane.iris.spi.IrisLogging; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/DrainageEdge.java b/core/src/main/java/art/arcane/iris/generation/hydrology/DrainageEdge.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/hydrology/DrainageEdge.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/DrainageEdge.java index 3a226985e..654b6889c 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/DrainageEdge.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/DrainageEdge.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.List; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/DrainageNode.java b/core/src/main/java/art/arcane/iris/generation/hydrology/DrainageNode.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/hydrology/DrainageNode.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/DrainageNode.java index 1bba87bd1..831b03e7e 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/DrainageNode.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/DrainageNode.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/FootprintCenterlineProjection.java b/core/src/main/java/art/arcane/iris/generation/hydrology/FootprintCenterlineProjection.java similarity index 78% rename from core/src/main/java/art/arcane/iris/engine/hydrology/FootprintCenterlineProjection.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/FootprintCenterlineProjection.java index 9c825afa0..974f0e04e 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/FootprintCenterlineProjection.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/FootprintCenterlineProjection.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; record FootprintCenterlineProjection( int pointIndex, diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/FootprintCourseRasterKey.java b/core/src/main/java/art/arcane/iris/generation/hydrology/FootprintCourseRasterKey.java similarity index 80% rename from core/src/main/java/art/arcane/iris/engine/hydrology/FootprintCourseRasterKey.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/FootprintCourseRasterKey.java index 7c64d0830..cb545e757 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/FootprintCourseRasterKey.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/FootprintCourseRasterKey.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/FootprintFeatureKey.java b/core/src/main/java/art/arcane/iris/generation/hydrology/FootprintFeatureKey.java similarity index 78% rename from core/src/main/java/art/arcane/iris/engine/hydrology/FootprintFeatureKey.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/FootprintFeatureKey.java index 0e4742b1b..84649c458 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/FootprintFeatureKey.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/FootprintFeatureKey.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; record FootprintFeatureKey( long courseId, diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/FootprintLayerShape.java b/core/src/main/java/art/arcane/iris/generation/hydrology/FootprintLayerShape.java similarity index 90% rename from core/src/main/java/art/arcane/iris/engine/hydrology/FootprintLayerShape.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/FootprintLayerShape.java index 86cf44cdd..1fb87c383 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/FootprintLayerShape.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/FootprintLayerShape.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; record FootprintLayerShape( int channelRadius, diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/FootprintMutableColumn.java b/core/src/main/java/art/arcane/iris/generation/hydrology/FootprintMutableColumn.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/hydrology/FootprintMutableColumn.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/FootprintMutableColumn.java index 5ba0fb9c4..93ee43991 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/FootprintMutableColumn.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/FootprintMutableColumn.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.ArrayList; import java.util.HashMap; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/FootprintRasterStencil.java b/core/src/main/java/art/arcane/iris/generation/hydrology/FootprintRasterStencil.java similarity index 78% rename from core/src/main/java/art/arcane/iris/engine/hydrology/FootprintRasterStencil.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/FootprintRasterStencil.java index b8f02130b..d16b7f4b9 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/FootprintRasterStencil.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/FootprintRasterStencil.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; record FootprintRasterStencil( int[] deltaXs, diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/FootprintRasterStencilBuilder.java b/core/src/main/java/art/arcane/iris/generation/hydrology/FootprintRasterStencilBuilder.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/hydrology/FootprintRasterStencilBuilder.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/FootprintRasterStencilBuilder.java index fde7bdf4b..7b80ec975 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/FootprintRasterStencilBuilder.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/FootprintRasterStencilBuilder.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.Arrays; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/FootprintRasterStencilKey.java b/core/src/main/java/art/arcane/iris/generation/hydrology/FootprintRasterStencilKey.java similarity index 72% rename from core/src/main/java/art/arcane/iris/engine/hydrology/FootprintRasterStencilKey.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/FootprintRasterStencilKey.java index a1c00ce49..b68ee12eb 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/FootprintRasterStencilKey.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/FootprintRasterStencilKey.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; record FootprintRasterStencilKey( int channelRadius, diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/FootprintValidationCourseRaster.java b/core/src/main/java/art/arcane/iris/generation/hydrology/FootprintValidationCourseRaster.java similarity index 59% rename from core/src/main/java/art/arcane/iris/engine/hydrology/FootprintValidationCourseRaster.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/FootprintValidationCourseRaster.java index f16229bd4..e4a866efe 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/FootprintValidationCourseRaster.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/FootprintValidationCourseRaster.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.surface.SurfaceFootprint; +import art.arcane.iris.generation.hydrology.surface.SurfaceFootprint; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydraulicChannelProfile.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydraulicChannelProfile.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydraulicChannelProfile.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydraulicChannelProfile.java index 81197cc87..fcd64d9e3 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydraulicChannelProfile.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydraulicChannelProfile.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.Arrays; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydraulicSegment.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydraulicSegment.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydraulicSegment.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydraulicSegment.java index b631fc4a2..0d7908dd5 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydraulicSegment.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydraulicSegment.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.List; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyCandidateKind.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyCandidateKind.java similarity index 83% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyCandidateKind.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyCandidateKind.java index 97c325d07..bd50d9ff4 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyCandidateKind.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyCandidateKind.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; public enum HydrologyCandidateKind { SOURCE, diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyCandidateRejection.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyCandidateRejection.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyCandidateRejection.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyCandidateRejection.java index fcd7fa1d1..138042704 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyCandidateRejection.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyCandidateRejection.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; public enum HydrologyCandidateRejection { NO_LEGAL_OUTLET, diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyCaveCourseFilter.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyCaveCourseFilter.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyCaveCourseFilter.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyCaveCourseFilter.java index 619f06075..d44d8abb9 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyCaveCourseFilter.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyCaveCourseFilter.java @@ -1,14 +1,14 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.cave.CavePosition; -import art.arcane.iris.engine.hydrology.cave.CaveVoxel; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelView; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCandidate; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveContainmentPlanner; -import art.arcane.iris.engine.hydrology.cave.HydrologyCavePlan; -import art.arcane.iris.engine.hydrology.cave.HydrologyCavePlannerSettings; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveRejection; +import art.arcane.iris.generation.hydrology.cave.CavePosition; +import art.arcane.iris.generation.hydrology.cave.CaveVoxel; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelView; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCandidate; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveContainmentPlanner; +import art.arcane.iris.generation.hydrology.cave.HydrologyCavePlan; +import art.arcane.iris.generation.hydrology.cave.HydrologyCavePlannerSettings; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveRejection; import java.util.ArrayList; import java.util.Collections; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyCaveVoxelViewFactory.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyCaveVoxelViewFactory.java similarity index 70% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyCaveVoxelViewFactory.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyCaveVoxelViewFactory.java index f581fdb74..9978d752e 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyCaveVoxelViewFactory.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyCaveVoxelViewFactory.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelView; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelView; @FunctionalInterface public interface HydrologyCaveVoxelViewFactory { diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyChannelGeometry.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyChannelGeometry.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyChannelGeometry.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyChannelGeometry.java index c196ceb61..00647143d 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyChannelGeometry.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyChannelGeometry.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.surface.SurfaceNoise; +import art.arcane.iris.generation.hydrology.surface.SurfaceNoise; final class HydrologyChannelGeometry { private final HydrologyFootprintCompiler compiler; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyColumnLayer.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyColumnLayer.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyColumnLayer.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyColumnLayer.java index f4ea58aaf..8ffed0947 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyColumnLayer.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyColumnLayer.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyColumnSample.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyColumnSample.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyColumnSample.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyColumnSample.java index eb734bd87..c502045de 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyColumnSample.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyColumnSample.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; import java.util.ArrayList; import java.util.Comparator; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyColumnSnapshot.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyColumnSnapshot.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyColumnSnapshot.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyColumnSnapshot.java index 6fb18d037..031007362 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyColumnSnapshot.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyColumnSnapshot.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; public record HydrologyColumnSnapshot(boolean available, HydrologyColumnSample column) { private static final HydrologyColumnSnapshot UNAVAILABLE = new HydrologyColumnSnapshot(false, null); diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyCoursePath.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyCoursePath.java similarity index 91% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyCoursePath.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyCoursePath.java index 4b5b9a7ca..3b1072111 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyCoursePath.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyCoursePath.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyCrossTileCaveAdmission.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyCrossTileCaveAdmission.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyCrossTileCaveAdmission.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyCrossTileCaveAdmission.java index cd9f65739..86c1b9182 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyCrossTileCaveAdmission.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyCrossTileCaveAdmission.java @@ -1,7 +1,7 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveConflictPolicy; -import art.arcane.iris.engine.hydrology.cave.HydrologyCavePlan; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveConflictPolicy; +import art.arcane.iris.generation.hydrology.cave.HydrologyCavePlan; import java.util.ArrayList; import java.util.Collection; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyCrossTileResolver.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyCrossTileResolver.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyCrossTileResolver.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyCrossTileResolver.java index b2f3a1b83..d6bad6060 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyCrossTileResolver.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyCrossTileResolver.java @@ -1,11 +1,11 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.cave.CavePosition; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelView; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCandidate; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveContainmentPlanner; -import art.arcane.iris.engine.hydrology.cave.HydrologyCavePlan; -import art.arcane.iris.engine.hydrology.surface.SurfaceBounds; +import art.arcane.iris.generation.hydrology.cave.CavePosition; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelView; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCandidate; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveContainmentPlanner; +import art.arcane.iris.generation.hydrology.cave.HydrologyCavePlan; +import art.arcane.iris.generation.hydrology.surface.SurfaceBounds; import it.unimi.dsi.fastutil.longs.LongIterator; import it.unimi.dsi.fastutil.longs.LongOpenHashSet; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyCrossTileSurfaceAdmission.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyCrossTileSurfaceAdmission.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyCrossTileSurfaceAdmission.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyCrossTileSurfaceAdmission.java index f742cc16e..7057049ca 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyCrossTileSurfaceAdmission.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyCrossTileSurfaceAdmission.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.ArrayList; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyDiagnosticCandidate.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyDiagnosticCandidate.java similarity index 92% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyDiagnosticCandidate.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyDiagnosticCandidate.java index e6ff475e8..8426c5756 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyDiagnosticCandidate.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyDiagnosticCandidate.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyDiagnosticRenderSample.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyDiagnosticRenderSample.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyDiagnosticRenderSample.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyDiagnosticRenderSample.java index ed887f08e..cac96f98d 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyDiagnosticRenderSample.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyDiagnosticRenderSample.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.ArrayList; import java.util.Comparator; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyFeatureQuery.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyFeatureQuery.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyFeatureQuery.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyFeatureQuery.java index cdb5bded3..b3132d0be 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyFeatureQuery.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyFeatureQuery.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.Collection; import java.util.Collections; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyFeatureRef.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyFeatureRef.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyFeatureRef.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyFeatureRef.java index 56dcd110d..a9ad1a0a5 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyFeatureRef.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyFeatureRef.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyFeatureSitePlanner.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyFeatureSitePlanner.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyFeatureSitePlanner.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyFeatureSitePlanner.java index 4ed31baac..458707085 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyFeatureSitePlanner.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyFeatureSitePlanner.java @@ -1,10 +1,10 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.surface.ChannelProfile; -import art.arcane.iris.engine.hydrology.surface.ValleyProfile; -import art.arcane.iris.engine.hydrology.surface.ValleyProfileSolver; -import art.arcane.iris.engine.hydrology.surface.SurfaceCenterline; -import art.arcane.iris.engine.hydrology.surface.SurfaceTerminal; +import art.arcane.iris.generation.hydrology.surface.ChannelProfile; +import art.arcane.iris.generation.hydrology.surface.ValleyProfile; +import art.arcane.iris.generation.hydrology.surface.ValleyProfileSolver; +import art.arcane.iris.generation.hydrology.surface.SurfaceCenterline; +import art.arcane.iris.generation.hydrology.surface.SurfaceTerminal; import java.util.ArrayList; import java.util.Arrays; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyFeatureType.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyFeatureType.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyFeatureType.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyFeatureType.java index c285d2f62..c8aa283e7 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyFeatureType.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyFeatureType.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; public enum HydrologyFeatureType { SURFACE_POOL, diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyFootprintCompiler.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyFootprintCompiler.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyFootprintCompiler.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyFootprintCompiler.java index 2fa6eb6ce..19184463d 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyFootprintCompiler.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyFootprintCompiler.java @@ -1,10 +1,10 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.surface.SurfaceFootprint; -import art.arcane.iris.engine.hydrology.surface.SurfaceBounds; -import art.arcane.iris.engine.hydrology.surface.SurfaceFootprintCompiler; -import art.arcane.iris.engine.hydrology.surface.SurfaceLayerColumn; -import art.arcane.iris.engine.hydrology.surface.SurfaceNoise; +import art.arcane.iris.generation.hydrology.surface.SurfaceFootprint; +import art.arcane.iris.generation.hydrology.surface.SurfaceBounds; +import art.arcane.iris.generation.hydrology.surface.SurfaceFootprintCompiler; +import art.arcane.iris.generation.hydrology.surface.SurfaceLayerColumn; +import art.arcane.iris.generation.hydrology.surface.SurfaceNoise; import it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap; import it.unimi.dsi.fastutil.longs.Long2ObjectLinkedOpenHashMap; import it.unimi.dsi.fastutil.longs.Long2ObjectMap; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyFootprintRasterizer.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyFootprintRasterizer.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyFootprintRasterizer.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyFootprintRasterizer.java index 9a8e0138f..8d9ebb06e 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyFootprintRasterizer.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyFootprintRasterizer.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import it.unimi.dsi.fastutil.longs.Long2ObjectLinkedOpenHashMap; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyForkJoin.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyForkJoin.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyForkJoin.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyForkJoin.java index 48e61e6ff..533fb7845 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyForkJoin.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyForkJoin.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.ArrayList; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyGeometrySampler.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyGeometrySampler.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyGeometrySampler.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyGeometrySampler.java index d0c758ca5..646d7431a 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyGeometrySampler.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyGeometrySampler.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyGridNode.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyGridNode.java similarity index 86% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyGridNode.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyGridNode.java index bc7b741b5..3bcaec72c 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyGridNode.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyGridNode.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; record HydrologyGridNode( int index, diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyGridOffset.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyGridOffset.java similarity index 50% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyGridOffset.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyGridOffset.java index fe0882653..b9d194736 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyGridOffset.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyGridOffset.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; record HydrologyGridOffset(int x, int z) { } diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyHash.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyHash.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyHash.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyHash.java index 8000a676f..4b3fefbe0 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyHash.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyHash.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; public final class HydrologyHash { private HydrologyHash() { diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyNaturalTerrainSampler.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyNaturalTerrainSampler.java similarity index 86% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyNaturalTerrainSampler.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyNaturalTerrainSampler.java index ce1f6e3af..e946ded47 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyNaturalTerrainSampler.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyNaturalTerrainSampler.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; public interface HydrologyNaturalTerrainSampler extends HydrologyRoutingTerrainSampler { HydrologyTerrainSample sampleBasis(int blockX, int blockZ); diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyObservedPlannedSurface.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyObservedPlannedSurface.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyObservedPlannedSurface.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyObservedPlannedSurface.java index 6fa954a87..a1e425bd3 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyObservedPlannedSurface.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyObservedPlannedSurface.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyOceanBoundaryRefiner.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyOceanBoundaryRefiner.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyOceanBoundaryRefiner.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyOceanBoundaryRefiner.java index 756a543ae..c9dd14aef 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyOceanBoundaryRefiner.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyOceanBoundaryRefiner.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.List; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyOceanReceiver.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyOceanReceiver.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyOceanReceiver.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyOceanReceiver.java index ea96fb4f0..e82285e98 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyOceanReceiver.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyOceanReceiver.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; import it.unimi.dsi.fastutil.longs.LongArrayFIFOQueue; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyOutletPlanner.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyOutletPlanner.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyOutletPlanner.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyOutletPlanner.java index d4ee9c8ed..7486dd0f5 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyOutletPlanner.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyOutletPlanner.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.ArrayList; import java.util.Arrays; @@ -8,7 +8,7 @@ import java.util.List; import java.util.Objects; import java.util.LinkedHashMap; import java.util.Map; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; final class HydrologyOutletPlanner { private final HydrologyPlanner planner; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyOwnerDraft.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyOwnerDraft.java similarity index 90% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyOwnerDraft.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyOwnerDraft.java index 0d6efa9ce..3380d1016 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyOwnerDraft.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyOwnerDraft.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyPlanner.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyPlanner.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyPlanner.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyPlanner.java index 27855885a..309110f9f 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyPlanner.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyPlanner.java @@ -1,12 +1,12 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelView; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveContainmentPlanner; -import art.arcane.iris.engine.hydrology.surface.SurfaceCourseBuilder; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelView; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveContainmentPlanner; +import art.arcane.iris.generation.hydrology.surface.SurfaceCourseBuilder; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.util.common.parallel.MultiBurst; -import art.arcane.iris.util.project.noise.SimplexNoise; +import art.arcane.iris.generation.concurrent.MultiBurst; +import art.arcane.volmlib.util.noise.SimplexNoise; import com.github.benmanes.caffeine.cache.Cache; import com.github.benmanes.caffeine.cache.Caffeine; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyPlannerSettings.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyPlannerSettings.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyPlannerSettings.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyPlannerSettings.java index 81c666faa..2d29ed6bf 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyPlannerSettings.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyPlannerSettings.java @@ -1,7 +1,5 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.object.IrisRiverBedProfile; -import art.arcane.iris.engine.object.IrisRiverBlendStyle; import java.util.List; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyPoint.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyPoint.java similarity index 87% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyPoint.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyPoint.java index 2842055f0..cc38429ca 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyPoint.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyPoint.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; public record HydrologyPoint(int x, int y, int z) { public long packedColumn() { diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalConnectivity.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalConnectivity.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalConnectivity.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalConnectivity.java index 6204e0432..d993b54b0 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalConnectivity.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalConnectivity.java @@ -1,7 +1,7 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.surface.SurfaceCenterline; -import art.arcane.iris.engine.hydrology.surface.SurfaceLayerColumn; +import art.arcane.iris.generation.hydrology.surface.SurfaceCenterline; +import art.arcane.iris.generation.hydrology.surface.SurfaceLayerColumn; import it.unimi.dsi.fastutil.longs.Long2LongOpenHashMap; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; import it.unimi.dsi.fastutil.longs.LongArrayList; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalCourseGraph.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalCourseGraph.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalCourseGraph.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalCourseGraph.java index b7c7e6097..3ae535761 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalCourseGraph.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalCourseGraph.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import it.unimi.dsi.fastutil.ints.IntArrayList; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalFalls.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalFalls.java similarity index 91% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalFalls.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalFalls.java index 5d09c1dd2..213163125 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalFalls.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalFalls.java @@ -1,14 +1,14 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.cave.CavePosition; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelPrecondition; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelView; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.hydrology.cave.HydrologyCavePlan; -import art.arcane.iris.engine.hydrology.surface.SurfaceBounds; -import art.arcane.iris.engine.hydrology.surface.SurfaceFootprint; -import art.arcane.iris.engine.hydrology.surface.SurfaceFootprintCompiler; -import art.arcane.iris.engine.hydrology.surface.SurfaceLayerColumn; +import art.arcane.iris.generation.hydrology.cave.CavePosition; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelPrecondition; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelView; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCavePlan; +import art.arcane.iris.generation.hydrology.surface.SurfaceBounds; +import art.arcane.iris.generation.hydrology.surface.SurfaceFootprint; +import art.arcane.iris.generation.hydrology.surface.SurfaceFootprintCompiler; +import art.arcane.iris.generation.hydrology.surface.SurfaceLayerColumn; import it.unimi.dsi.fastutil.longs.LongOpenHashSet; import java.util.ArrayList; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalFlow.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalFlow.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalFlow.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalFlow.java index 7d62df04e..dd6627f15 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalFlow.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalFlow.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalGraph.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalGraph.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalGraph.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalGraph.java index 798fb0009..6e2eadf9d 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalGraph.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalGraph.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.ArrayList; import java.util.Comparator; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalHydraulics.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalHydraulics.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalHydraulics.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalHydraulics.java index 684a0d3e9..b497ce2b3 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalHydraulics.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalHydraulics.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.surface.SurfaceBankSupport; +import art.arcane.iris.generation.hydrology.surface.SurfaceBankSupport; import java.util.Arrays; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalMorphology.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalMorphology.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalMorphology.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalMorphology.java index 07d2b6e48..0ee5611ec 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalMorphology.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalMorphology.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.HashMap; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalNetwork.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalNetwork.java similarity index 90% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalNetwork.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalNetwork.java index 58ff3aeaa..33bd451d6 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalNetwork.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalNetwork.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.cave.HydrologyCavePlan; +import art.arcane.iris.generation.hydrology.cave.HydrologyCavePlan; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalPlanner.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalPlanner.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalPlanner.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalPlanner.java index e3b9fb957..0da1fb1e4 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalPlanner.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalPlanner.java @@ -1,15 +1,15 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.cave.HydrologyCavePlan; -import art.arcane.iris.engine.hydrology.surface.SurfaceBounds; -import art.arcane.iris.engine.hydrology.surface.SurfaceCenterline; -import art.arcane.iris.engine.hydrology.surface.SurfaceCourseBuilder; -import art.arcane.iris.engine.hydrology.surface.SurfaceCourseResult; -import art.arcane.iris.engine.hydrology.surface.SurfaceExcavationMetrics; -import art.arcane.iris.engine.hydrology.surface.SurfaceFootprint; -import art.arcane.iris.engine.hydrology.surface.SurfaceFootprintCompiler; -import art.arcane.iris.engine.hydrology.surface.SurfaceLayerColumn; -import art.arcane.iris.engine.hydrology.surface.SurfaceTerminal; +import art.arcane.iris.generation.hydrology.cave.HydrologyCavePlan; +import art.arcane.iris.generation.hydrology.surface.SurfaceBounds; +import art.arcane.iris.generation.hydrology.surface.SurfaceCenterline; +import art.arcane.iris.generation.hydrology.surface.SurfaceCourseBuilder; +import art.arcane.iris.generation.hydrology.surface.SurfaceCourseResult; +import art.arcane.iris.generation.hydrology.surface.SurfaceExcavationMetrics; +import art.arcane.iris.generation.hydrology.surface.SurfaceFootprint; +import art.arcane.iris.generation.hydrology.surface.SurfaceFootprintCompiler; +import art.arcane.iris.generation.hydrology.surface.SurfaceLayerColumn; +import art.arcane.iris.generation.hydrology.surface.SurfaceTerminal; import com.github.benmanes.caffeine.cache.Cache; import com.github.benmanes.caffeine.cache.Caffeine; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalProtection.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalProtection.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalProtection.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalProtection.java index 2a1fe33fc..1c40bbd86 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalProtection.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalProtection.java @@ -1,9 +1,9 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.cave.CavePosition; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveConflictPolicy; -import art.arcane.iris.engine.hydrology.cave.HydrologyCavePlan; +import art.arcane.iris.generation.hydrology.cave.CavePosition; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveConflictPolicy; +import art.arcane.iris.generation.hydrology.cave.HydrologyCavePlan; import java.util.HashMap; import java.util.HashSet; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalRoute.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalRoute.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalRoute.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalRoute.java index d85b6a2ec..87ab8f0f1 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalRoute.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalRoute.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.util.project.noise.SimplexNoise; +import art.arcane.volmlib.util.noise.SimplexNoise; import java.util.ArrayList; import java.util.HashSet; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalSourceTrials.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalSourceTrials.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalSourceTrials.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalSourceTrials.java index efaeca228..9f3059b6f 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalSourceTrials.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalSourceTrials.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.ArrayList; import java.util.Comparator; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalTerrainRefiner.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalTerrainRefiner.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalTerrainRefiner.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalTerrainRefiner.java index d46cd64bc..fb333824c 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalTerrainRefiner.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalTerrainRefiner.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import com.github.benmanes.caffeine.cache.Cache; import com.github.benmanes.caffeine.cache.Caffeine; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalTributaries.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalTributaries.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalTributaries.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalTributaries.java index 28992991a..ca2239cf4 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRegionalTributaries.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRegionalTributaries.java @@ -1,9 +1,9 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.surface.SurfaceBounds; -import art.arcane.iris.engine.hydrology.surface.SurfaceFootprint; -import art.arcane.iris.engine.hydrology.surface.SurfaceFootprintCompiler; -import art.arcane.iris.engine.hydrology.surface.SurfaceLayerColumn; +import art.arcane.iris.generation.hydrology.surface.SurfaceBounds; +import art.arcane.iris.generation.hydrology.surface.SurfaceFootprint; +import art.arcane.iris.generation.hydrology.surface.SurfaceFootprintCompiler; +import art.arcane.iris.generation.hydrology.surface.SurfaceLayerColumn; import java.util.ArrayList; import java.util.HashMap; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRenderSample.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRenderSample.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRenderSample.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRenderSample.java index b09045d58..06b7c3953 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRenderSample.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRenderSample.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.ArrayList; import java.util.Comparator; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRouteGeometry.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRouteGeometry.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRouteGeometry.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRouteGeometry.java index 0ceb1627d..fe2104596 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRouteGeometry.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRouteGeometry.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.ArrayList; import java.util.Arrays; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRoutePath.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRoutePath.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRoutePath.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRoutePath.java index 274fe12b7..4bd867b87 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRoutePath.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRoutePath.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.ArrayList; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRoutingPlan.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRoutingPlan.java similarity index 84% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRoutingPlan.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRoutingPlan.java index 14e77a4ea..398e5f0f2 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRoutingPlan.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRoutingPlan.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRoutingTerrainSampler.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRoutingTerrainSampler.java similarity index 92% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRoutingTerrainSampler.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRoutingTerrainSampler.java index d41f7537e..0e6435dd2 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyRoutingTerrainSampler.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyRoutingTerrainSampler.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; public interface HydrologyRoutingTerrainSampler { HydrologyTerrainSample[] sampleGrid(GridRequest request); diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologySampledGrid.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologySampledGrid.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologySampledGrid.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologySampledGrid.java index ea38ed94e..8d07ba2c1 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologySampledGrid.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologySampledGrid.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologySegmentBuilder.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologySegmentBuilder.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologySegmentBuilder.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologySegmentBuilder.java index 16db95d3a..3056eaf7e 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologySegmentBuilder.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologySegmentBuilder.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.ArrayList; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologySourcePlanner.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologySourcePlanner.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologySourcePlanner.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologySourcePlanner.java index 1de16bcc2..e9389b211 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologySourcePlanner.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologySourcePlanner.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.ArrayList; import java.util.Arrays; @@ -11,7 +11,7 @@ import java.util.Map; import java.util.Objects; import java.util.PriorityQueue; import java.util.function.IntPredicate; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; final class HydrologySourcePlanner { private final HydrologyPlanner planner; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologySurfaceBudgets.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologySurfaceBudgets.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologySurfaceBudgets.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologySurfaceBudgets.java index 6a042409c..5d2bfb0f4 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologySurfaceBudgets.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologySurfaceBudgets.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; import java.util.LinkedHashMap; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologySurfaceCoursePlanner.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologySurfaceCoursePlanner.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologySurfaceCoursePlanner.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologySurfaceCoursePlanner.java index fc8bcd539..2d7e67dbc 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologySurfaceCoursePlanner.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologySurfaceCoursePlanner.java @@ -1,8 +1,8 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.surface.SurfaceCourseBuilder; -import art.arcane.iris.engine.hydrology.surface.SurfaceCourseResult; -import art.arcane.iris.engine.hydrology.surface.SurfaceTerminal; +import art.arcane.iris.generation.hydrology.surface.SurfaceCourseBuilder; +import art.arcane.iris.generation.hydrology.surface.SurfaceCourseResult; +import art.arcane.iris.generation.hydrology.surface.SurfaceTerminal; import java.util.ArrayList; import java.util.Comparator; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologySurfaceDropBankBounds.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologySurfaceDropBankBounds.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologySurfaceDropBankBounds.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologySurfaceDropBankBounds.java index 74207cc19..91bd21331 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologySurfaceDropBankBounds.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologySurfaceDropBankBounds.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import it.unimi.dsi.fastutil.ints.IntArrayList; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologySurfaceDropRaster.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologySurfaceDropRaster.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologySurfaceDropRaster.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologySurfaceDropRaster.java index 2e09423a0..df27af042 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologySurfaceDropRaster.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologySurfaceDropRaster.java @@ -1,7 +1,7 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.surface.SurfaceBounds; -import art.arcane.iris.engine.hydrology.surface.SurfaceCenterline; +import art.arcane.iris.generation.hydrology.surface.SurfaceBounds; +import art.arcane.iris.generation.hydrology.surface.SurfaceCenterline; import it.unimi.dsi.fastutil.longs.Long2ObjectLinkedOpenHashMap; import java.util.HashMap; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologySurfaceProfiles.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologySurfaceProfiles.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologySurfaceProfiles.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologySurfaceProfiles.java index 826f2af77..51a4541f7 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologySurfaceProfiles.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologySurfaceProfiles.java @@ -1,7 +1,7 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.surface.SurfaceFootprint; -import art.arcane.iris.engine.hydrology.surface.SurfaceLayerColumn; +import art.arcane.iris.generation.hydrology.surface.SurfaceFootprint; +import art.arcane.iris.generation.hydrology.surface.SurfaceLayerColumn; import java.util.ArrayList; import java.util.HashSet; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyTerrainCaveVoxelView.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyTerrainCaveVoxelView.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyTerrainCaveVoxelView.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyTerrainCaveVoxelView.java index 2fcad66a2..5269b8ba9 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyTerrainCaveVoxelView.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyTerrainCaveVoxelView.java @@ -1,8 +1,8 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.cave.CavePosition; -import art.arcane.iris.engine.hydrology.cave.CaveVoxel; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelView; +import art.arcane.iris.generation.hydrology.cave.CavePosition; +import art.arcane.iris.generation.hydrology.cave.CaveVoxel; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelView; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyTerrainSample.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyTerrainSample.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyTerrainSample.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyTerrainSample.java index adfd3ffe2..a21cd9a3b 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyTerrainSample.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyTerrainSample.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; import java.util.List; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyTerrainSampler.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyTerrainSampler.java similarity index 88% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyTerrainSampler.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyTerrainSampler.java index b8f4c1d82..cef11e85c 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyTerrainSampler.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyTerrainSampler.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; @FunctionalInterface public interface HydrologyTerrainSampler { diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyTile.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyTile.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyTile.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyTile.java index d8316a170..724ea64b4 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyTile.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyTile.java @@ -1,8 +1,8 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.cave.CavePosition; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.hydrology.cave.HydrologyCavePlan; +import art.arcane.iris.generation.hydrology.cave.CavePosition; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCavePlan; import java.util.ArrayList; import java.util.Collections; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyTileCache.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyTileCache.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyTileCache.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyTileCache.java index b7c83c470..4431feabe 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyTileCache.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyTileCache.java @@ -1,7 +1,7 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.parallel.MultiBurst; +import art.arcane.iris.generation.concurrent.MultiBurst; import art.arcane.volmlib.util.cache.CacheKey; import com.github.benmanes.caffeine.cache.Cache; import com.github.benmanes.caffeine.cache.Caffeine; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyTileKey.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyTileKey.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyTileKey.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyTileKey.java index fe810c774..f3c4c71f3 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyTileKey.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyTileKey.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; public record HydrologyTileKey(int tileX, int tileZ) implements Comparable { public static HydrologyTileKey fromBlock(int blockX, int blockZ, int tileSize) { diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyTributaryPlanner.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyTributaryPlanner.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyTributaryPlanner.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyTributaryPlanner.java index 831cf9f78..b7f1c063f 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyTributaryPlanner.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyTributaryPlanner.java @@ -1,7 +1,7 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.surface.SurfaceCourseResult; -import art.arcane.iris.engine.hydrology.surface.SurfaceTerminal; +import art.arcane.iris.generation.hydrology.surface.SurfaceCourseResult; +import art.arcane.iris.generation.hydrology.surface.SurfaceTerminal; import java.util.ArrayList; import java.util.HashMap; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyUndergroundCoursePlanner.java b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyUndergroundCoursePlanner.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyUndergroundCoursePlanner.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyUndergroundCoursePlanner.java index 0194b2167..e674fc91f 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/HydrologyUndergroundCoursePlanner.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/HydrologyUndergroundCoursePlanner.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.ArrayList; import java.util.Arrays; diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisCoastalRiverGrottoConfig.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisCoastalRiverGrottoConfig.java new file mode 100644 index 000000000..5c75b81b8 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisCoastalRiverGrottoConfig.java @@ -0,0 +1,53 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@Description("Controls coastal grottos: sea-level chambers whose only opening is their ocean face, admitted either as a river outlet or as a standalone sea cave.") +@Data +public class IrisCoastalRiverGrottoConfig { + @Description("Allow a coastal grotto to serve as an explicit accepted outlet.") + private boolean enabled = true; + + @Description("Hydraulic level assigned to the contained coastal grotto pool.") + private IrisGrottoPoolLevel poolLevel = IrisGrottoPoolLevel.SEA_LEVEL; + + @MinNumber(1) + @MaxNumber(128) + @Description("Maximum horizontal radius in blocks of an accepted coastal grotto.") + private int horizontalRadius = 12; + + @MinNumber(1) + @MaxNumber(64) + @Description("Maximum vertical radius in blocks of an accepted coastal grotto.") + private int verticalRadius = 7; + + @MinNumber(1) + @MaxNumber(63) + @Description("Required dry clearance above a coastal grotto pool.") + private int headroom = 10; + + @MinNumber(1) + @MaxNumber(1048576) + @Description("Maximum accepted coastal grotto volume in blocks.") + private int maximumVolume = 8192; + + @MinNumber(0) + @MaxNumber(128) + @Description("Blocks the coast must stand above the sea at the outlet for a river to end in a coastal grotto instead of an open mouth. Null uses the larger of 4 and verticalRadius.") + private Integer cliffMinimumHeight = null; + + @MinNumber(0) + @MaxNumber(4) + @Description("Share of cliffMinimumHeight the coast's slope must reach at the outlet before a grotto is chosen over an open mouth; 0 ignores the slope and decides on height alone.") + private double cliffSlopeFactor = 0.5D; + + @Description("Standalone sea caves: coastal grottos opening from the ocean into the coast without a river.") + private IrisSeaCaveConfig seaCaves = new IrisSeaCaveConfig(); +} diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisDeepFluidConfig.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisDeepFluidConfig.java new file mode 100644 index 000000000..4d4297cf7 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisDeepFluidConfig.java @@ -0,0 +1,76 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.generation.noise.IrisStyledRange; +import art.arcane.iris.generation.noise.NoiseStyle; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Required; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@Description("Independent deep-fluid configuration outside the surface and underground river source budgets.") +@Data +public class IrisDeepFluidConfig { + @Required + @Description("Deep-fluid system identifier.") + private String id = "deep_lava"; + + @Required + @Description("Fluid palette used by accepted deep pools and short channels.") + private IrisMaterialPalette fluidPalette = new IrisMaterialPalette().qclear().qadd("lava"); + + @MinNumber(0) + @MaxNumber(64) + @Description("Expected independent deep-fluid sources per hydrology tile.") + private double density = 0.125D; + + @MinNumber(16) + @MaxNumber(8192) + @Description("Nominal spacing in blocks between independent deep-fluid source sites.") + private int spacing = 768; + + @Description("Deep-fluid elevation in world Y.") + private IrisStyledRange height = new IrisStyledRange( + -192D, + 32D, + new IrisGeneratorStyle(NoiseStyle.IRIS).zoomed(1024D) + ); + + @MinNumber(2) + @MaxNumber(128) + @Description("Maximum horizontal radius in blocks of an accepted deep-fluid body.") + private int horizontalRadius = 14; + + @MinNumber(2) + @MaxNumber(64) + @Description("Maximum vertical radius in blocks of an accepted deep-fluid body.") + private int verticalRadius = 6; + + @MinNumber(1) + @MaxNumber(32) + @Description("Wet width in blocks of an accepted short deep-fluid channel.") + private int channelWidth = 3; + + @MinNumber(1) + @MaxNumber(32) + @Description("Wet depth in blocks of an accepted deep-fluid body.") + private int depth = 1; + + @MinNumber(1) + @MaxNumber(63) + @Description("Required dry clearance above an accepted deep-fluid body.") + private int headroom = 6; + + @Description("Allow accepted sources to form fully contained pools.") + private boolean containedPools = true; + + @Description("Allow accepted sources to form short contained channels.") + private boolean shortChannels = false; +} diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisGrottoPoolLevel.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisGrottoPoolLevel.java new file mode 100644 index 000000000..7e41f35c3 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisGrottoPoolLevel.java @@ -0,0 +1,9 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("Where the pool at the bottom of a coastal grotto sits.") +public enum IrisGrottoPoolLevel { + @Description("The pool surface sits at the dimension fluid height, so the grotto meets the sea.") + SEA_LEVEL +} diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisHydrology.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisHydrology.java new file mode 100644 index 000000000..981031d5d --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisHydrology.java @@ -0,0 +1,25 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.volmlib.util.collection.KList; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@Description("Dimension-owned physical hydrology configuration.") +@Data +public class IrisHydrology { + @Description("Terrain-guided surface and underground river configuration.") + private IrisRiverHydrology rivers = new IrisRiverHydrology(); + + @ArrayType(type = IrisDeepFluidConfig.class) + @Description("Independent deep-fluid systems that do not consume the surface or underground river source budgets.") + private KList deepFluids = new KList<>(); + + @ArrayType(type = IrisSurfacePoolConfig.class, min = 0) + @Description("Standing surface pools such as lava pools. Each region or biome opts in through riverPolicy.surfacePools.") + private KList surfacePools = new KList<>(); +} diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisInlandRiverGrottoConfig.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisInlandRiverGrottoConfig.java new file mode 100644 index 000000000..4732fdbf9 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisInlandRiverGrottoConfig.java @@ -0,0 +1,40 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@Description("Controls contained inland grotto outlets.") +@Data +public class IrisInlandRiverGrottoConfig { + @Description("Allow a contained inland grotto to serve as an explicit accepted outlet.") + private boolean enabled = true; + + @Description("Continue eligible surface rivers through a falling sinkhole into the contained inland grotto.") + private boolean connectSurfaceRivers = false; + + @MinNumber(1) + @MaxNumber(128) + @Description("Maximum horizontal radius in blocks of an accepted inland grotto.") + private int horizontalRadius = 10; + + @MinNumber(1) + @MaxNumber(64) + @Description("Maximum vertical radius in blocks of an accepted inland grotto.") + private int verticalRadius = 6; + + @MinNumber(1) + @MaxNumber(63) + @Description("Required dry clearance above an inland grotto pool.") + private int headroom = 10; + + @MinNumber(1) + @MaxNumber(1048576) + @Description("Maximum accepted inland grotto volume in blocks.") + private int maximumVolume = 8192; +} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverBank3DConfig.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverBank3DConfig.java similarity index 69% rename from core/src/main/java/art/arcane/iris/engine/object/IrisRiverBank3DConfig.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverBank3DConfig.java index 4cc4f41f7..a06014f05 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverBank3DConfig.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverBank3DConfig.java @@ -1,44 +1,47 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.generation.noise.NoiseStyle; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor -@Desc("Three-dimensional rock shelves retained above the approved riverbank cut.") +@Description("Three-dimensional rock shelves retained above the approved riverbank cut.") @Data public class IrisRiverBank3DConfig { - @Desc("Retain connected volumetric shelves in eroded riverbanks.") + @Description("Retain connected volumetric shelves in eroded riverbanks.") private boolean enabled = true; - @Desc("Seed offset for the riverbank density field.") + @Description("Seed offset for the riverbank density field.") private long seed = 0; @MinNumber(0) @MaxNumber(32) - @Desc("Maximum shelf height above the approved bank surface. Does not deepen the river cut.") + @Description("Maximum shelf height above the approved bank surface. Does not deepen the river cut.") private double amplitude = 8; @MinNumber(4) @MaxNumber(4096) - @Desc("Horizontal density feature size in blocks at the style's default zoom.") + @Description("Horizontal density feature size in blocks at the style's default zoom.") private double horizontalScale = 48; @MinNumber(4) @MaxNumber(256) - @Desc("Vertical density feature size in blocks. Short scales form separate rock shelves.") + @Description("Vertical density feature size in blocks. Short scales form separate rock shelves.") private double verticalScale = 8; @MinNumber(1) @MaxNumber(16) - @Desc("Maximum horizontal distance in blocks from an overhang to a solid supporting bank.") + @Description("Maximum horizontal distance in blocks from an overhang to a solid supporting bank.") private int maximumOverhang = 8; - @Desc("Signed XYZ density controlling retained bank rock. Supports generator styles and fractures.") + @Description("Signed XYZ density controlling retained bank rock. Supports generator styles and fractures.") private IrisGeneratorStyle densityStyle = new IrisGeneratorStyle(NoiseStyle.SIMPLEX); public void validate() { diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverBedProfile.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverBedProfile.java new file mode 100644 index 000000000..27b37bf16 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverBedProfile.java @@ -0,0 +1,15 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("The cross-section of the wet channel bed from the centerline out to the waterline.") +public enum IrisRiverBedProfile { + @Description("A level thalweg over thalwegFraction of the half-width that eases up to a one-block edge; a broad bowl.") + BOWL, + @Description("Full depth across the whole width, so the channel edge drops straight to the bed.") + FLAT, + @Description("A straight slope from full depth at the centerline to one block at the edge; thalwegFraction is ignored.") + V, + @Description("A level thalweg over thalwegFraction of the half-width that stays deep almost to the edge, then rises steeply; a trough with steep sides.") + U +} diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverBlendStyle.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverBlendStyle.java new file mode 100644 index 000000000..62afe19ab --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverBlendStyle.java @@ -0,0 +1,17 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("The shape of the eroded valley side between the shore band and natural terrain.") +public enum IrisRiverBlendStyle { + @Description("An eased S-curve from the bank top out to natural terrain, flat at both ends and steepest across the middle of the band; blendCurve skews it.") + SMOOTH, + @Description("A straight slope from the bank top to natural terrain with a sharp shoulder at the shore and a sharp lip at the top; blendCurve bends it.") + LINEAR, + @Description("A hollowed valley side that climbs fast beside the shore and flattens out toward natural terrain; blendCurve deepens the hollow.") + CONCAVE, + @Description("The eased curve cut into level steps, terraceSteps of them between the bank top and natural terrain.") + TERRACED, + @Description("A level bench at the bank top for cliffFraction of the band, then a vertical wall up to natural terrain.") + CLIFF +} diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverChannelShapeConfig.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverChannelShapeConfig.java new file mode 100644 index 000000000..a5129aa7d --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverChannelShapeConfig.java @@ -0,0 +1,74 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@Description("Controls rounded beds and rough, coherent channel walls.") +@Data +public class IrisRiverChannelShapeConfig { + @MinNumber(1) + @MaxNumber(6) + @Description("Cross-section exponent. Larger values broaden the rounded U-shaped bed.") + private double bedRoundness = 2.4D; + + @MinNumber(0) + @MaxNumber(1) + @Description("Coherent vertical variation applied to the bed as a fraction of channel depth.") + private double bedRoughness = 0.28D; + + @MinNumber(0) + @MaxNumber(1) + @Description("Coherent radial variation applied to carved walls and banks.") + private double wallRoughness = 0.24D; + + @MinNumber(3) + @MaxNumber(128) + @Description("Wavelength in blocks of bed and wall roughness.") + private int roughnessWavelength = 11; + + @MinNumber(0.4) + @MaxNumber(1.2) + @Description("Base radial scale of the organic passage outline before the lobes are added; 1 keeps the nominal radius, lower values carve a narrower passage.") + private double radialBase = 0.86D; + + @MinNumber(0.2) + @MaxNumber(1) + @Description("Smallest radial scale the organic outline may shrink to after the lobes are applied, as a fraction of the nominal radius.") + private double radialMinimum = 0.58D; + + @MinNumber(1) + @MaxNumber(2) + @Description("Largest radial scale the organic outline may grow to after the lobes are applied, as a fraction of the nominal radius.") + private double radialMaximum = 1.18D; + + @MinNumber(0) + @MaxNumber(0.5) + @Description("Strength of the broad lobes that bulge and pinch the passage outline along its length; 0 leaves the outline circular.") + private double primaryLobeStrength = 0.08D; + + @MinNumber(0) + @MaxNumber(0.5) + @Description("Strength of the fine lobes layered over the broad ones for small-scale wall detail; 0 leaves only the broad lobes.") + private double detailLobeStrength = 0.06D; + + @MinNumber(0) + @MaxNumber(1) + @Description("Coherent variation of the carved ceiling height as a fraction of the headroom; 0 keeps the ceiling smooth and evaluates no extra noise.") + private double ceilingRoughness = 0D; + + @MinNumber(0.2) + @MaxNumber(1) + @Description("Narrowest plan aspect of a chamber, the short axis as a fraction of the long axis; 1 makes every chamber circular in plan. Applies to grottos only.") + private double aspectMinimum = 0.62D; + + @MinNumber(0) + @MaxNumber(0.8) + @Description("How much the plan aspect may vary above aspectMinimum from one chamber to the next; 0 gives every chamber the same aspect. Applies to grottos only.") + private double aspectRange = 0.2D; +} diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverDropShapeConfig.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverDropShapeConfig.java new file mode 100644 index 000000000..5a0f56af0 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverDropShapeConfig.java @@ -0,0 +1,54 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@Description("Controls low-volume cascades, falling faces, and organic receiving basins.") +@Data +public class IrisRiverDropShapeConfig { + @MinNumber(1) + @MaxNumber(16) + @Description("Preferred horizontal cascade run per block of head loss.") + private int cascadeRunPerBlock = 2; + + @MinNumber(0.25) + @MaxNumber(6) + @Description("Exponent of the graded cascade profile. Values above one accelerate toward the receiver.") + private double cascadeExponent = 1.4D; + + @MinNumber(1) + @MaxNumber(4) + @Description("Maximum head loss between adjacent underground drop faces. Exposed cascades always use one-block steps.") + private int maximumCascadeStep = 2; + + @MinNumber(0.25) + @MaxNumber(1) + @Description("Drop-flow width as a fraction of the connected channel width.") + private double flowWidthRatio = 0.45D; + + @MinNumber(1) + @MaxNumber(16) + @Description("Maximum wetted depth along a descending flow path.") + private int maximumFlowDepth = 2; + + @MinNumber(1) + @MaxNumber(4) + @Description("Receiving-basin width as a fraction of the descending flow width.") + private double basinWidthRatio = 1.8D; + + @MinNumber(1) + @MaxNumber(32) + @Description("Maximum receiving-basin depth after drop-scaled erosion.") + private int maximumBasinDepth = 8; + + @MinNumber(0) + @MaxNumber(16) + @Description("Horizontal run in blocks an underground drop spreads over per block of head loss, so tall drops become long cascades; 0 keeps every underground drop at its shortest run.") + private int undergroundCascadeRunPerBlock = 0; +} diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverExcavationConfig.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverExcavationConfig.java new file mode 100644 index 000000000..f321b12cd --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverExcavationConfig.java @@ -0,0 +1,29 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Data +@NoArgsConstructor +@Accessors(chain = true) +@Description("Bounds terrain removal outside the wet river channel.") +public class IrisRiverExcavationConfig { + @MinNumber(0) + @MaxNumber(64) + @Description("Maximum blocks removed vertically from a dry bank column. Zero preserves dry bank heights.") + private int maximumDepth = 8; + + @MinNumber(1) + @MaxNumber(64) + @Description("Maximum horizontal distance from the channel outline affected by shore and bank excavation.") + private int maximumWidth = 16; + + @MinNumber(0) + @MaxNumber(8192) + @Description("Maximum dry bank blocks removed per block, measured over sixteen-block reaches. Courses exceeding this budget are rejected.") + private int maximumVolumePerBlock = 256; +} diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverGeometryConfig.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverGeometryConfig.java new file mode 100644 index 000000000..19dbb2056 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverGeometryConfig.java @@ -0,0 +1,30 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.volmlib.util.documentation.Description; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@Description("Controls organic river routing and contained cave geometry.") +@Data +public class IrisRiverGeometryConfig { + @Description("Surface and underground centerline meanders.") + private IrisRiverMeanderConfig meanders = new IrisRiverMeanderConfig(); + + @Description("Surface river bed shape for waterfall and cascade throats, and the wall shape shared with the erosion compiler; roughness fields default to the channel roughness.") + private IrisSurfaceRiverShapeConfig surface = new IrisSurfaceRiverShapeConfig(); + + @Description("Three-dimensional bank shelves above the protected riverbed and waterline.") + private IrisRiverBank3DConfig banks3D = new IrisRiverBank3DConfig(); + + @Description("Underground channel bed and wall shape.") + private IrisRiverChannelShapeConfig underground = new IrisRiverChannelShapeConfig(); + + @Description("Grotto pool bed and wall shape.") + private IrisRiverChannelShapeConfig grottos = new IrisRiverChannelShapeConfig(); + + @Description("Underground drop, sinkhole and receiving basin shape.") + private IrisRiverDropShapeConfig drops = new IrisRiverDropShapeConfig(); +} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverGrottoConfig.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverGrottoConfig.java similarity index 54% rename from core/src/main/java/art/arcane/iris/engine/object/IrisRiverGrottoConfig.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverGrottoConfig.java index 55939edd8..e834f0106 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverGrottoConfig.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverGrottoConfig.java @@ -1,18 +1,18 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.documentation.Description; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor -@Desc("Controls explicitly accepted coastal and inland river grottos.") +@Description("Controls explicitly accepted coastal and inland river grottos.") @Data public class IrisRiverGrottoConfig { - @Desc("Coastal grotto configuration.") + @Description("Coastal grotto configuration.") private IrisCoastalRiverGrottoConfig coastal = new IrisCoastalRiverGrottoConfig(); - @Desc("Contained inland grotto configuration.") + @Description("Contained inland grotto configuration.") private IrisInlandRiverGrottoConfig inland = new IrisInlandRiverGrottoConfig(); } diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverHydrology.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverHydrology.java similarity index 52% rename from core/src/main/java/art/arcane/iris/engine/object/IrisRiverHydrology.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverHydrology.java index e0a05c8e0..f0e57667a 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverHydrology.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverHydrology.java @@ -1,7 +1,7 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; import art.arcane.volmlib.util.collection.KList; import lombok.Data; import lombok.NoArgsConstructor; @@ -9,28 +9,28 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor -@Desc("Dimension-owned terrain-guided river configuration.") +@Description("Dimension-owned terrain-guided river configuration.") @Data public class IrisRiverHydrology { - @Desc("Enable river planning for this dimension.") + @Description("Enable river planning for this dimension.") private boolean enabled = false; - @Desc("Drainage sampling, refinement, and outlet configuration.") + @Description("Drainage sampling, refinement, and outlet configuration.") private IrisRiverRoutingConfig routing = new IrisRiverRoutingConfig(); - @Desc("Organic centerline, bed, wall, and descending-water geometry.") + @Description("Organic centerline, bed, wall, and descending-water geometry.") private IrisRiverGeometryConfig geometry = new IrisRiverGeometryConfig(); - @Desc("Surface river source, channel, bank, flow, and mouth configuration.") + @Description("Surface river source, channel, bank, flow, and mouth configuration.") private IrisSurfaceRiverConfig surface = new IrisSurfaceRiverConfig(); - @Desc("Independent underground river source and channel configuration.") + @Description("Independent underground river source and channel configuration.") private IrisUndergroundRiverConfig underground = new IrisUndergroundRiverConfig(); - @Desc("Contained coastal and inland grotto configuration.") + @Description("Contained coastal and inland grotto configuration.") private IrisRiverGrottoConfig grottos = new IrisRiverGrottoConfig(); @ArrayType(min = 1, type = IrisRiverProfile.class) - @Desc("Reusable river fluid profiles selected by river policies.") + @Description("Reusable river fluid profiles selected by river policies.") private KList profiles = new KList().qadd(new IrisRiverProfile()); } diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverInlandOutlet.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverInlandOutlet.java similarity index 56% rename from core/src/main/java/art/arcane/iris/engine/object/IrisRiverInlandOutlet.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverInlandOutlet.java index 834f8facf..e1a4e4b9e 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisRiverInlandOutlet.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverInlandOutlet.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.hydrology; public enum IrisRiverInlandOutlet { SINKHOLE_GROTTO diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverMaterialConfig.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverMaterialConfig.java new file mode 100644 index 000000000..48270a041 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverMaterialConfig.java @@ -0,0 +1,27 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.iris.generation.terrain.IrisMaterialPalette; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@Description("An optional block palette painted over the top layers of one part of a river instead of the biome's own layers.") +@Data +public class IrisRiverMaterialConfig { + @Description("Paint this palette. When false the biome layers are used as before.") + private boolean enabled = false; + + @Description("Blocks to paint. Any solid palette.") + private IrisMaterialPalette palette = new IrisMaterialPalette(); + + @MinNumber(1) + @MaxNumber(8) + @Description("How many layers down from the surface the palette replaces, in blocks.") + private int depth = 1; +} diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverMeanderConfig.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverMeanderConfig.java new file mode 100644 index 000000000..d5a0b9a32 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverMeanderConfig.java @@ -0,0 +1,49 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@Description("Controls multi-scale terrain-guided river meanders.") +@Data +public class IrisRiverMeanderConfig { + @MinNumber(8) + @MaxNumber(512) + @Description("Broad meander wavelength in blocks.") + private int primaryWavelength = 64; + + @MinNumber(4) + @MaxNumber(128) + @Description("Fine worm wavelength in blocks. Smaller values change direction more frequently.") + private int detailWavelength = 12; + + @MinNumber(0) + @MaxNumber(2) + @Description("Strength of broad meanders.") + private double primaryStrength = 0.34D; + + @MinNumber(0) + @MaxNumber(2) + @Description("Strength of fine worm movement.") + private double detailStrength = 0.42D; + + @MinNumber(0) + @MaxNumber(1) + @Description("Maximum lateral route displacement as a fraction of one drainage edge.") + private double maximumOffsetRatio = 0.48D; + + @MinNumber(0) + @MaxNumber(4) + @Description("Terrain-safe centerline smoothing passes after route solving.") + private int smoothingPasses = 1; + + @MinNumber(10) + @MaxNumber(150) + @Description("Maximum retained centerline turn angle in degrees.") + private double maximumTurnDegrees = 82D; +} diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverMouthConfig.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverMouthConfig.java new file mode 100644 index 000000000..b28db75a5 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverMouthConfig.java @@ -0,0 +1,49 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@Description("Controls how a surface river meets the sea.") +@Data +public class IrisRiverMouthConfig { + @MinNumber(1) + @MaxNumber(4) + @Description("Width multiplier reached at the coastline over the final stretch of the river.") + private double flareRatio = 1.6D; + + @MinNumber(0) + @MaxNumber(32) + @Description("Maximum number of blocks the recorded mouth footprint may enter the ocean before terminating.") + private int maximumOceanApron = 8; + + @MinNumber(0) + @MaxNumber(256) + @Description("Blocks of river before the coast held at sea level as a drowned inlet, widened toward flareRatio over that reach. Zero ends the river at the shoreline with no inlet.") + private int inletLength = 64; + + @MinNumber(0) + @MaxNumber(16) + @Description("Extra bed depth reached at the shoreline over the inlet, so the estuary is deeper than the river above it.") + private int inletDepth = 3; + + @MinNumber(0) + @MaxNumber(128) + @Description("Deepest cut allowed in the inlet and its approach ramp, replacing channel.maximumIncision there, so the coast may be cut down to sea level through a rise of this height.") + private int maximumIncision = 32; + + @MinNumber(0.05) + @MaxNumber(1) + @Description("Largest share of the river's exposed course the drowned inlet may occupy, so a short river keeps most of its length above sea level; the inlet is the shorter of inletLength and this share.") + private double inletCourseFraction = 0.5D; + + @MinNumber(0.1) + @MaxNumber(4) + @Description("Blocks of head gained per station on the approach ramp climbing from the inlet back to the river's natural profile; 1 climbs one block per station, higher values grade the approach faster.") + private double inletRampSlope = 1D; +} diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverPlacementMode.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverPlacementMode.java new file mode 100644 index 000000000..9b7e0e19b --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverPlacementMode.java @@ -0,0 +1,17 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("Controls whether river sources may start inside a dimension, region or biome, and how strongly they are drawn there.") +public enum IrisRiverPlacementMode { + @Description("No river source may start here. Rivers may still pass through when routing allows it.") + DISABLED, + @Description("Rivers may pass through, but no source starts here.") + TRANSIT_ONLY, + @Description("Sources start here on their own merits, ranked like everywhere else.") + NATURAL, + @Description("Eligible source sites here rank ahead of sites elsewhere in the tile.") + PREFERRED_HEADWATER, + @Description("At least one source starts here whenever a site can reach a legal outlet; sources.minimumPerTile can raise that quota.") + REQUIRED_HEADWATER +} diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverPolicy.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverPolicy.java new file mode 100644 index 000000000..471c0d3d1 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverPolicy.java @@ -0,0 +1,179 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.pack.validation.CompatPools; + +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KSet; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@Description("Nullable river policy values inherited from dimension to region to biome.") +@Data +public class IrisRiverPolicy { + @MinNumber(0) + @MaxNumber(64) + @Description("Expected surface headwaters per full tile of eligible policy area. Null inherits the dimension source density.") + private Double surfaceSourceDensity = null; + + @MinNumber(0) + @MaxNumber(8192) + @Description("Minimum surface headwater separation in blocks. Two areas use the larger separation at their boundary.") + private Integer surfaceSourceSpacing = null; + + @MinNumber(0) + @MaxNumber(4) + @Description("Extra surface tributaries admitted to one outlet from this policy area.") + private Integer surfaceTributaries = null; + + @MinNumber(0) + @MaxNumber(256) + @Description("Maximum inland surface outlets per full tile of eligible policy area. Null inherits the dimension outlet limit.") + private Integer surfaceInlandOutlets = null; + + @MinNumber(0) + @MaxNumber(64) + @Description("Maximum coastal surface outlets per full tile of eligible policy area. Null inherits the dimension coastal outlet limit.") + private Integer surfaceCoastalOutlets = null; + + @MinNumber(16) + @MaxNumber(4096) + @Description("Minimum surface river course length in blocks for headwaters in this area. Null inherits the dimension routing minimum.") + private Integer surfaceMinimumCourseLength = null; + + @MinNumber(1) + @MaxNumber(32) + @Description("Maximum surface river incision in blocks in this area, before the incision multiplier. Null inherits the dimension channel limit.") + private Integer surfaceMaximumIncision = null; + + @Description("Controls source and transit admission in this area.") + private IrisRiverPlacementMode placement = null; + + @Description("Controls the routing preference or prohibition applied to this area.") + private IrisRiverRoutingMode routing = null; + + @Description("Whether this area may contain an accepted river outlet.") + private Boolean outletAdmission = null; + + @ArrayType(type = String.class) + @Description("Permitted dimension-owned profiles along surface routes and preferred profiles for underground rivers. An empty list clears inheritance and resolves to the first configured dimension profile.") + private KList profiles = null; + + @RegistryListResource(IrisBiome.class) + @ArrayType(type = String.class) + @Description("Surface channel biome selection. An empty list explicitly clears the inherited selection.") + private KList surfaceBiomes = null; + + @RegistryListResource(IrisBiome.class) + @ArrayType(type = String.class) + @Description("River mouth biome selection. An empty list explicitly clears the inherited selection.") + private KList mouthBiomes = null; + + @RegistryListResource(IrisBiome.class) + @ArrayType(type = String.class) + @Description("Narrow river shore biome selection. An empty list explicitly clears the inherited selection.") + private KList shoreBiomes = null; + + @RegistryListResource(IrisBiome.class) + @ArrayType(type = String.class) + @Description("Dry river footprint biome selection. An empty list explicitly clears the inherited selection.") + private KList bankBiomes = null; + + @RegistryListResource(IrisBiome.class) + @ArrayType(type = String.class) + @Description("Flooded cave and grotto biome selection. An empty list explicitly clears the inherited selection.") + private KList floodedCaveBiomes = null; + + @ArrayType(type = String.class) + @Description("Standing surface pool ids (hydrology.surfacePools) allowed in this area. An empty list explicitly clears the inherited selection.") + private KList surfacePools = null; + + @MinNumber(0.0001) + @MaxNumber(16) + @Description("Multiplier applied to accepted river width.") + private Double widthMultiplier = null; + + @MinNumber(0.0001) + @MaxNumber(16) + @Description("Multiplier applied to accepted river depth.") + private Double depthMultiplier = null; + + @MinNumber(0) + @MaxNumber(16) + @Description("Multiplier applied to maximum terrain incision.") + private Double incisionMultiplier = null; + + @MinNumber(0) + @MaxNumber(64) + @Description("Multiplier applied to terrain-guided routing cost.") + private Double routingMultiplier = null; + + @MinNumber(0) + @MaxNumber(4) + @Description("Multiplier applied to the eroded bank width outside the shore band.") + private Double bankMultiplier = null; + + @MinNumber(0) + @MaxNumber(32) + @Description("Width in blocks of the shore biome band beside a surface river in this area. Null inherits, and without any value the band is the surface banks shore width. Zero gives the area no shore biome band; the geometric shore and erosion are unchanged.") + private Double shoreBiomeWidth = null; + + @MinNumber(0) + @MaxNumber(16) + @Description("Width in blocks of the flattened shore bench beside the water in this area, the geometric beach that is cut level with the bank top. Null inherits, and without any value the bench is the surface banks shoreWidth. Zero gives the area no bench, so the eroded valley side begins at the waterline.") + private Double shoreWidth = null; + + @Description("Whether surface rivers erode the ground beyond the shore bench into a valley in this area. Null inherits, and without any value erosion follows surface.erosion.enabled. False keeps only the wet channel and the shore bench here, so a river crosses the area in a bare cut.") + private Boolean erosion = null; + + @Description("Rivers that start in this area stay inside it: their whole course and their outlet lie in this region (when set on a region) or this biome (when set on a biome), and a river that flows into the area never leaves it. A source with no reachable outlet inside the area is rejected. Null inherits, false releases the area.") + private Boolean confined = null; + + public SurfaceRiverPolicy surfacePolicy(String areaKey) { + return new SurfaceRiverPolicy(areaKey, surfaceSourceDensity, surfaceSourceSpacing, + surfaceTributaries, surfaceInlandOutlets, surfaceCoastalOutlets, surfaceMinimumCourseLength, surfaceMaximumIncision); + } + + /** + * A declared river biome selection with biomes the version-content gate excluded removed. A declared-but-now-empty + * selection keeps its "explicitly clears the inherited selection" meaning; null (undeclared) stays null. + */ + public KList compatBiomes(KList declared, IrisData data, String field) { + return compatBiomes(declared, data, field, null); + } + + public KList compatBiomes(KList declared, IrisData data, String field, Runnable unresolvedReference) { + if (declared == null) { + return null; + } + + return CompatPools.surviving(data == null ? null : data.getBiomeLoader(), declared, data, + "river policy", "", field, unresolvedReference); + } + + public KSet getAllBiomeIds() { + KSet biomeIds = new KSet<>(); + addAll(biomeIds, surfaceBiomes); + addAll(biomeIds, mouthBiomes); + addAll(biomeIds, shoreBiomes); + addAll(biomeIds, bankBiomes); + addAll(biomeIds, floodedCaveBiomes); + return biomeIds; + } + + private static void addAll(KSet destination, KList source) { + if (source != null) { + destination.addAll(source); + } + } +} diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverProfile.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverProfile.java new file mode 100644 index 000000000..2c0ab2150 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverProfile.java @@ -0,0 +1,23 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.iris.generation.terrain.IrisMaterialPalette; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.Required; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@Description("Reusable river fluid profile selected by river policies.") +@Data +public class IrisRiverProfile { + @Required + @Description("Profile identifier referenced by dimension, region, and biome river policies.") + private String id = "default"; + + @Required + @Description("Fluid palette used by accepted river footprints using this profile.") + private IrisMaterialPalette fluidPalette = new IrisMaterialPalette().qclear().qadd("water"); +} diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverRegionalConfig.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverRegionalConfig.java new file mode 100644 index 000000000..38500ccd1 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverRegionalConfig.java @@ -0,0 +1,55 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Data +@NoArgsConstructor +@Accessors(chain = true) +@Description("Regional drainage trunks shared across generation tiles and lowland channels between two coasts.") +public class IrisRiverRegionalConfig { + @Description("Plan regional drainage before local rivers.") + private boolean enabled = true; + + @MinNumber(128) + @MaxNumber(1024) + @Description("Coarse regional terrain sample spacing in blocks; a power of two.") + private int sampleSpacing = 256; + + @MinNumber(256) + @MaxNumber(32768) + @Description("Minimum length of a regional trunk or coastal channel.") + private int minimumLength = 2048; + + @MinNumber(1) + @MaxNumber(8) + @Description("Maximum regional trunks accepted in one drainage basin.") + private int maximumTrunks = 2; + + @MinNumber(1) + @MaxNumber(64) + @Description("Maximum regional basin graphs retained in memory.") + private int maximumCachedBasins = 8; + + @MinNumber(16384) + @MaxNumber(1048576) + @Description("Maximum complete hydraulic stations retained across cached regional basins.") + private int maximumCachedStations = 131072; + + @Description("Allow a sea-level lowland channel with an ocean connection at both ends.") + private boolean coastalChannels = true; + + @MinNumber(0) + @MaxNumber(1) + @Description("Chance that a basin tries a coastal channel before ordinary drainage trunks.") + private double coastalChannelChance = 0.25D; + + @MinNumber(1) + @MaxNumber(32) + @Description("Maximum terrain incision along a channel between two coasts.") + private int maximumCoastalIncision = 8; +} diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverRoutingConfig.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverRoutingConfig.java new file mode 100644 index 000000000..86d5990cb --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverRoutingConfig.java @@ -0,0 +1,91 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.volmlib.util.collection.KList; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@Description("Controls bounded drainage planning and legal river outlets.") +@Data +public class IrisRiverRoutingConfig { + @MinNumber(256) + @MaxNumber(8192) + @Description("Hydrology planning tile size in blocks.") + private int tileSize = 2048; + + @MinNumber(8) + @MaxNumber(64) + @Description("Spacing in blocks between terrain samples used to build the drainage graph.") + private int sampleSpacing = 64; + + @MinNumber(256) + @MaxNumber(32768) + @Description("Maximum bounded length in blocks of one accepted river route.") + private int maximumRouteLength = 16384; + + @MinNumber(0) + @MaxNumber(32768) + @Description("Minimum exposed source-to-outlet length in blocks of a published surface river.") + private int minimumSurfaceCourseLength = 384; + + @MinNumber(0) + @MaxNumber(32768) + @Description("Minimum source-to-outlet length in blocks of a published underground river.") + private int minimumUndergroundCourseLength = 192; + + @MinNumber(1) + @MaxNumber(256) + @Description("Maximum inland drainage roots (sinkhole grottos) selected per planning tile. Unused when no inland outlet kind is enabled.") + private int maximumOutletsPerTile = 4; + + @MinNumber(0) + @MaxNumber(64) + @Description("Maximum sea outlets (river mouths and coastal grottos) selected per planning tile, chosen by type in turn: the best mouth, the best coastal grotto, the next mouth, and so on, each at least two sample spacings from the others. Budgeted separately from maximumOutletsPerTile.") + private int maximumCoastalOutletsPerTile = 2; + + @Description("Allow rivers to terminate at an ocean reservoir.") + private boolean oceanOutlets = true; + + @ArrayType(type = IrisRiverInlandOutlet.class) + @Description("Contained inland outlet kinds available when no legal ocean outlet is selected.") + private KList inlandOutlets = new KList<>(); + + @MinNumber(0) + @MaxNumber(8) + @Description("How strongly routes prefer lower ground.") + private double valleyPreference = 1.5D; + + @MinNumber(0) + @MaxNumber(128) + @Description("Cost per block of rise along a route.") + private double uphillPenalty = 24D; + + @MinNumber(0) + @MaxNumber(16) + @Description("Cost per unit of terrain slope along a route.") + private double slopePenalty = 2D; + + @MinNumber(0) + @MaxNumber(1) + @Description("How strongly routes are drawn toward existing drainage.") + private double confluenceAttraction = 0.2D; + + @MinNumber(0) + @MaxNumber(8) + @Description("How strongly longer source-to-outlet routes are preferred when choosing river sources; 0 ranks by elevation alone.") + private double lengthPreference = 1D; + + @MinNumber(0) + @MaxNumber(4) + @Description("Extra surface courses an outlet may accept as tributaries joining its main river; 0 keeps one river per outlet.") + private int tributaries = 1; + + @Description("Regional drainage and channels between coasts, planned above the local tile lattice.") + private IrisRiverRegionalConfig regional = new IrisRiverRegionalConfig(); +} diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverRoutingMode.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverRoutingMode.java new file mode 100644 index 000000000..682a968b4 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisRiverRoutingMode.java @@ -0,0 +1,15 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("Controls whether river routes may pass through a dimension, region or biome, and at what cost.") +public enum IrisRiverRoutingMode { + @Description("Rivers never route through here.") + BLOCK, + @Description("Rivers route through here only when no cheaper path exists; transit carries a strong cost.") + AVOID, + @Description("Rivers route through here at the normal cost.") + ALLOW, + @Description("Rivers route through here at a reduced cost, so routes are drawn toward this area.") + PREFER +} diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSeaCaveConfig.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSeaCaveConfig.java new file mode 100644 index 000000000..b34a3aaa0 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSeaCaveConfig.java @@ -0,0 +1,42 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@Description("Sea caves: coastal grottos that open from the ocean into the coast without a river. The chamber size, headroom and volume cap are the coastal grotto's.") +@Data +public class IrisSeaCaveConfig { + @Description("Plan sea caves along the coast. Requires the coastal grotto to be enabled.") + private boolean enabled = true; + + @MinNumber(0) + @MaxNumber(64) + @Description("Sea caves accepted per planning tile; the steepest owned coast is taken first.") + private int maximumPerTile = 3; + + @MinNumber(16) + @MaxNumber(8192) + @Description("Least distance in blocks between two sea caves. Must be at least twice the coastal grotto horizontalRadius.") + private int minimumSpacing = 160; + + @MinNumber(1) + @MaxNumber(128) + @Description("The coast must stand this many blocks above the sea both at the shoreline and at the back of the chamber.") + private int minimumCoastHeight = 8; + + @MinNumber(0) + @MaxNumber(128) + @Description("How far inland from the shoreline the chamber is swept. 0 leaves a single chamber at the shore.") + private int depth = 12; + + @MinNumber(0) + @MaxNumber(90) + @Description("Largest angle in degrees the inland sweep may turn away from straight inland, chosen per cave; 0 sweeps every sea cave straight in from the shore.") + private double sweepJitterDegrees = 25D; +} diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfacePoolConfig.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfacePoolConfig.java new file mode 100644 index 000000000..c78bf145d --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfacePoolConfig.java @@ -0,0 +1,57 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; + +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; +import art.arcane.iris.pack.schema.annotation.Required; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@Description("A standing surface pool: a bowl cut into open ground and filled with a fluid, placed where the river policy allows it.") +@Data +public class IrisSurfacePoolConfig { + @Required + @Description("Pool identifier. Policies list it under surfacePools and locators accept it as a selector.") + private String id = "lava_pool"; + + @Required + @Description("Fluid palette filling the pool.") + private IrisMaterialPalette fluidPalette = new IrisMaterialPalette().qclear().qadd("lava"); + + @MinNumber(0) + @MaxNumber(64) + @Description("Expected pools per hydrology tile where the policy allows them.") + private double density = 0.75D; + + @MinNumber(32) + @MaxNumber(8192) + @Description("Nominal spacing in blocks between candidate pool sites.") + private int spacing = 384; + + @MinNumber(2) + @MaxNumber(16) + @Description("Smallest pool radius in blocks.") + private int minimumRadius = 4; + + @MinNumber(2) + @MaxNumber(16) + @Description("Largest pool radius in blocks.") + private int maximumRadius = 7; + + @MinNumber(1) + @MaxNumber(8) + @Description("Fluid depth at the centre of the pool.") + private int depth = 2; + + @RegistryListResource(IrisBiome.class) + @Description("Biome applied to the pool bed and its rim. Leave empty to keep the surrounding biome.") + private String biome = ""; +} diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverBankConfig.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverBankConfig.java new file mode 100644 index 000000000..309c3c49d --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverBankConfig.java @@ -0,0 +1,57 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; + +@Accessors(chain = true) +@NoArgsConstructor +@Description("Controls the shore band and the eroded valley around a surface river.") +@Data +public class IrisSurfaceRiverBankConfig { + @MinNumber(0) + @MaxNumber(16) + @Description("Width in blocks of the flattened shore bench beside the water, the geometric beach cut level with the bank top, and the default width of the shore biome band. 0 removes the bench so the eroded valley side begins at the waterline; riverPolicy.shoreWidth overrides it per area.") + private double shoreWidth = 1.5D; + + @MinNumber(0.5) + @MaxNumber(12) + @Description("Horizontal run in blocks of eroded bank per block of cut depth.") + private double blendSlope = 3D; + + @MinNumber(1) + @MaxNumber(64) + @Description("Narrowest eroded band outside the shore, in blocks.") + private int minimumBlendWidth = 4; + + @MinNumber(1) + @MaxNumber(64) + @Description("Widest eroded band outside the shore, in blocks.") + private int maximumBlendWidth = 32; + + @Description("Limits dry bank cut depth, width, and excavated volume independently of the wet channel.") + private IrisRiverExcavationConfig excavation = new IrisRiverExcavationConfig(); + + @Description("Show the biome's deeper layers on eroded banks instead of the surface layer.") + private boolean exposeCutStrata = true; + + @MinNumber(0) + @MaxNumber(4) + @Description("Blocks the shore bench rises from the waterline to its landward edge, so the beach climbs instead of lying level; 0 keeps a flat bench. The eroded valley side starts from the raised edge.") + private double shoreRise = 0D; + + @MinNumber(0) + @MaxNumber(32) + @Description("Blocks added to every eroded valley width before the blend width limits apply, so even a shallow cut erodes at least this far beyond the shore; 0 leaves the width proportional to the cut alone.") + private double blendBaseWidth = 0D; + + @Description("Optional palette painted over the shore bench columns instead of the biome's own layers. Disabled by default, which keeps the shore biome's layers.") + private IrisRiverMaterialConfig shoreMaterial = new IrisRiverMaterialConfig(); + + @Description("Optional palette painted over the eroded bank columns outside the shore bench instead of the biome's own layers. Disabled by default, which keeps the bank biome's layers.") + private IrisRiverMaterialConfig bankMaterial = new IrisRiverMaterialConfig(); +} diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverBedConfig.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverBedConfig.java new file mode 100644 index 000000000..a2db01c67 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverBedConfig.java @@ -0,0 +1,30 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.iris.generation.terrain.IrisMaterialPalette; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@Description("Controls the material under and beside surface river water.") +@Data +public class IrisSurfaceRiverBedConfig { + @Description("Allow sand, gravel and other falling blocks in the bed, shore and eroded banks. When false they are replaced by the padding palette.") + private boolean allowGravityBlocks = false; + + @MinNumber(0) + @MaxNumber(8) + @Description("Blocks below the bed that are also kept free of falling blocks, so nothing under the water can collapse.") + private int padding = 2; + + @Description("Blocks used in place of falling blocks in the bed, padding, shore and banks.") + private IrisMaterialPalette paddingPalette = new IrisMaterialPalette().qclear().qadd("clay").qadd("dirt"); + + @Description("Optional palette painted over the wet channel bed under the water instead of the biome's own layers. Disabled by default, which keeps the surface biome's layers.") + private IrisRiverMaterialConfig material = new IrisRiverMaterialConfig(); +} diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverChannelConfig.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverChannelConfig.java new file mode 100644 index 000000000..040d31ddc --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverChannelConfig.java @@ -0,0 +1,79 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.generation.noise.IrisStyledRange; +import art.arcane.iris.generation.noise.NoiseStyle; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@Description("Controls the wet channel of a surface river.") +@Data +public class IrisSurfaceRiverChannelConfig { + @Description("Wet channel width in blocks.") + private IrisStyledRange width = range(4D, 8D, 1024D); + + @Description("Wet bed depth in blocks at the channel center.") + private IrisStyledRange depth = range(2D, 4D, 768D); + + @MinNumber(0) + @MaxNumber(3) + @Description("Blocks the water surface sinks below the lowest natural ground beside the channel; 0 keeps the water flush with the bank, and the bank always meets the water at its own height.") + private int sink = 0; + + @MinNumber(1) + @MaxNumber(32) + @Description("Maximum cut below natural terrain at the channel center before a course is rejected.") + private int maximumIncision = 10; + + @MinNumber(0) + @MaxNumber(1) + @Description("Coherent variation of the wet outline and bed as a fraction of the channel size.") + private double roughness = 0.25D; + + @MinNumber(4) + @MaxNumber(64) + @Description("Wavelength in blocks of the outline and bed variation.") + private int roughnessWavelength = 16; + + @MinNumber(1) + @MaxNumber(4) + @Description("Width of the spring pool at the headwater relative to the channel width; 1 starts the river at its normal width.") + private double springWidthRatio = 2.5D; + + @MinNumber(4) + @MaxNumber(96) + @Description("Blocks over which the spring pool narrows back to the channel width.") + private int springLength = 24; + + @MinNumber(0) + @MaxNumber(64) + @Description("Stations along the course the sampled width and depth are averaged over, so the channel changes size gradually; 0 follows the sampled values exactly at every station.") + private int smoothingRadius = 16; + + @MinNumber(0.2) + @MaxNumber(1) + @Description("Narrowest the roughened waterline may pinch, as a fraction of the channel half-width; 1 stops the outline from ever narrowing below the nominal width.") + private double outlineMinimumRatio = 0.6D; + + @MinNumber(1) + @MaxNumber(3) + @Description("Widest the roughened waterline may bulge, as a fraction of the channel half-width; 1 stops the outline from ever widening beyond the nominal width.") + private double outlineMaximumRatio = 1.4D; + + @MinNumber(0) + @MaxNumber(8) + @Description("Extra bed depth in blocks at the headwater spring, fading to nothing over springLength; 0 keeps the spring pool as deep as the channel.") + private double springExtraDepth = 1D; + + private static IrisStyledRange range(double min, double max, double zoom) { + IrisGeneratorStyle style = new IrisGeneratorStyle(NoiseStyle.IRIS).zoomed(zoom); + return new IrisStyledRange(min, max, style); + } +} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverConfig.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverConfig.java similarity index 52% rename from core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverConfig.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverConfig.java index 0b370fc26..7412774ba 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceRiverConfig.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverConfig.java @@ -1,36 +1,36 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.documentation.Description; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor -@Desc("Controls terrain-guided surface rivers.") +@Description("Controls terrain-guided surface rivers.") @Data public class IrisSurfaceRiverConfig { - @Desc("Enable the independent surface-river source budget.") + @Description("Enable the independent surface-river source budget.") private boolean enabled = true; - @Desc("Surface-river source allocation.") + @Description("Surface-river source allocation.") private IrisSurfaceRiverSourceConfig sources = new IrisSurfaceRiverSourceConfig(); - @Desc("Wet channel width, depth, sink and roughness.") + @Description("Wet channel width, depth, sink and roughness.") private IrisSurfaceRiverChannelConfig channel = new IrisSurfaceRiverChannelConfig(); - @Desc("Shore band and eroded valley around the channel.") + @Description("Shore band and eroded valley around the channel.") private IrisSurfaceRiverBankConfig banks = new IrisSurfaceRiverBankConfig(); - @Desc("Material under and beside the water: falling-block replacement and padding.") + @Description("Material under and beside the water: falling-block replacement and padding.") private IrisSurfaceRiverBedConfig bed = new IrisSurfaceRiverBedConfig(); - @Desc("Cascade and waterfall thresholds.") + @Description("Cascade and waterfall thresholds.") private IrisSurfaceRiverFlowConfig flow = new IrisSurfaceRiverFlowConfig(); - @Desc("Coastal mouth flare and ocean-apron limits.") + @Description("Coastal mouth flare and ocean-apron limits.") private IrisRiverMouthConfig mouths = new IrisRiverMouthConfig(); - @Desc("How the ground around the channel is eroded into a valley.") + @Description("How the ground around the channel is eroded into a valley.") private IrisSurfaceRiverErosionConfig erosion = new IrisSurfaceRiverErosionConfig(); - @Desc("Ponds at the source and at the inland end of every surface river.") + @Description("Ponds at the source and at the inland end of every surface river.") private IrisSurfaceRiverPondsConfig ponds = new IrisSurfaceRiverPondsConfig(); } diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverErosionConfig.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverErosionConfig.java new file mode 100644 index 000000000..c08e98865 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverErosionConfig.java @@ -0,0 +1,53 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@Description("Controls how the ground around a surface river is eroded into a valley. The valley's reach comes from banks.blendSlope and the blend widths; this section shapes it.") +@Data +public class IrisSurfaceRiverErosionConfig { + @Description("Erode the ground beyond the shore band into a valley; false keeps only the wet channel, the shore band and the lip that holds the water.") + private boolean enabled = true; + + @MinNumber(0) + @MaxNumber(64) + @Description("Stations along the course the valley width is averaged over, so it widens and narrows gradually; 0 follows the local cut exactly.") + private int smoothingRadius = 12; + + @MinNumber(0) + @MaxNumber(0.95) + @Description("Share of the distance from the thalweg to each waterline that stays at full bed depth before the bed rises to the edge; higher is a flatter, broader bed.") + private double thalwegFraction = 0.45D; + + @MinNumber(0.25) + @MaxNumber(4) + @Description("Exponent on the blend from the bank top out to natural terrain; below 1 hollows the valley sides, above 1 keeps them steep near the shore.") + private double blendCurve = 1D; + + @MinNumber(0) + @MaxNumber(2) + @Description("Share of the channel roughness applied to the bed as depth variation; 0 leaves a smooth bed.") + private double bedNoise = 0.5D; + + @Description("Shape of the valley side between the shore bench and natural terrain. SMOOTH is the eased curve used before this field existed.") + private IrisRiverBlendStyle style = IrisRiverBlendStyle.SMOOTH; + + @MinNumber(2) + @MaxNumber(16) + @Description("Number of level steps the valley side is cut into when style is TERRACED; ignored by every other style.") + private int terraceSteps = 4; + + @MinNumber(0) + @MaxNumber(1) + @Description("Share of the eroded band kept level at the bank top before the vertical wall when style is CLIFF; ignored by every other style.") + private double cliffFraction = 0.5D; + + @Description("Cross-section of the wet channel bed from the thalweg out to the waterline. Curves shift the thalweg toward the outside bank within the existing depth limit.") + private IrisRiverBedProfile bedProfile = IrisRiverBedProfile.BOWL; +} diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverFlowConfig.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverFlowConfig.java new file mode 100644 index 000000000..c289b4826 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverFlowConfig.java @@ -0,0 +1,44 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@Description("Controls how a surface river descends.") +@Data +public class IrisSurfaceRiverFlowConfig { + @MinNumber(1) + @MaxNumber(8) + @Description("Shortest level run in blocks between one-block steps before consecutive steps are labelled a cascade.") + private int cascadeRun = 2; + + @MinNumber(2) + @MaxNumber(32) + @Description("Smallest natural cliff in blocks that becomes a waterfall instead of a cascade.") + private int waterfallMinimumDrop = 6; + + @MinNumber(0) + @MaxNumber(0.95) + @Description("Share of the half-width that stays at full bed depth in the carved throat of a waterfall or cascade before the bed rises to the edge; higher is a flatter, broader throat.") + private double waterfallThalwegFraction = 0.65D; + + @MinNumber(1) + @MaxNumber(8) + @Description("Smallest drop in blocks that scours a plunge basin into the bed below it; drops shorter than this leave the bed untouched.") + private int plungeBasinMinimumDrop = 2; + + @MinNumber(0) + @MaxNumber(8) + @Description("Length of the plunge basin downstream of a drop as a multiple of the channel half-width, never shorter than two stations; 0 gives the shortest basin.") + private double plungeBasinLengthRatio = 2D; + + @MinNumber(0) + @MaxNumber(8) + @Description("Extra bed depth in blocks scoured inside a plunge basin; 0 marks the basin without deepening it.") + private int plungeBasinDepth = 1; +} diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverPondConfig.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverPondConfig.java new file mode 100644 index 000000000..8849a0e93 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverPondConfig.java @@ -0,0 +1,38 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@Description("A round pond at one end of a surface river, holding the river's water level there.") +@Data +public class IrisSurfaceRiverPondConfig { + @Description("Dig the pond.") + private boolean enabled = true; + + @MinNumber(1) + @MaxNumber(32) + @Description("Smallest pond radius in blocks; the radius is chosen per river between the minimum and the maximum, and shrinks where the ground falls away around the rim.") + private int minimumRadius = 6; + + @MinNumber(1) + @MaxNumber(32) + @Description("Largest pond radius in blocks.") + private int maximumRadius = 12; + + @MinNumber(1) + @MaxNumber(8) + @Description("Depth of the pond bowl below the water surface at its center.") + private int depth = 3; + + public IrisSurfaceRiverPondConfig(int minimumRadius, int maximumRadius, int depth) { + this.minimumRadius = minimumRadius; + this.maximumRadius = maximumRadius; + this.depth = depth; + } +} diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverPondsConfig.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverPondsConfig.java new file mode 100644 index 000000000..4134a92c3 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverPondsConfig.java @@ -0,0 +1,18 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.volmlib.util.documentation.Description; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@Description("Ponds at the two ends of a surface river: the spring it rises from and, for a river that ends inland, the pool it drains into.") +@Data +public class IrisSurfaceRiverPondsConfig { + @Description("The spring pond every surface river rises from.") + private IrisSurfaceRiverPondConfig source = new IrisSurfaceRiverPondConfig(6, 12, 3); + + @Description("The pond a river that ends inland drains into; rivers that reach the ocean get none.") + private IrisSurfaceRiverPondConfig terminal = new IrisSurfaceRiverPondConfig(4, 7, 3); +} diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverShapeConfig.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverShapeConfig.java new file mode 100644 index 000000000..b9231ee06 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverShapeConfig.java @@ -0,0 +1,74 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@Description("Controls the bed shape of surface river waterfall and cascade throats and the wall shape shared with the erosion compiler. The roughness fields fall back to the surface channel roughness when left null.") +@Data +public class IrisSurfaceRiverShapeConfig { + @MinNumber(1) + @MaxNumber(6) + @Description("Cross-section exponent of the throat bed. Larger values broaden the rounded U-shaped bed.") + private double bedRoundness = 2D; + + @MinNumber(0) + @MaxNumber(1) + @Description("Coherent vertical variation applied to the throat bed as a fraction of channel depth. Null uses surface.channel.roughness.") + private Double bedRoughness = null; + + @MinNumber(0) + @MaxNumber(1) + @Description("Coherent radial variation applied to the throat walls. Null uses surface.channel.roughness.") + private Double wallRoughness = null; + + @MinNumber(3) + @MaxNumber(128) + @Description("Wavelength in blocks of the throat bed and wall roughness. Null uses surface.channel.roughnessWavelength.") + private Integer roughnessWavelength = null; + + @MinNumber(0.4) + @MaxNumber(1.2) + @Description("Base radial scale of the organic passage outline before the lobes are added; 1 keeps the nominal radius, lower values carve a narrower passage.") + private double radialBase = 0.86D; + + @MinNumber(0.2) + @MaxNumber(1) + @Description("Smallest radial scale the organic outline may shrink to after the lobes are applied, as a fraction of the nominal radius.") + private double radialMinimum = 0.58D; + + @MinNumber(1) + @MaxNumber(2) + @Description("Largest radial scale the organic outline may grow to after the lobes are applied, as a fraction of the nominal radius.") + private double radialMaximum = 1.18D; + + @MinNumber(0) + @MaxNumber(0.5) + @Description("Strength of the broad lobes that bulge and pinch the passage outline along its length; 0 leaves the outline circular.") + private double primaryLobeStrength = 0.08D; + + @MinNumber(0) + @MaxNumber(0.5) + @Description("Strength of the fine lobes layered over the broad ones for small-scale wall detail; 0 leaves only the broad lobes.") + private double detailLobeStrength = 0.06D; + + @MinNumber(0) + @MaxNumber(1) + @Description("Coherent variation of the carved ceiling height as a fraction of the headroom; 0 keeps the ceiling smooth and evaluates no extra noise. Only the carved segments of a surface course read it; an exposed channel has no ceiling.") + private double ceilingRoughness = 0D; + + @MinNumber(0.2) + @MaxNumber(1) + @Description("Narrowest plan aspect of a chamber, the short axis as a fraction of the long axis; 1 makes every chamber circular in plan. The surface section carries this field so all three shape sections share one shape record; only grotto chambers read it.") + private double aspectMinimum = 0.62D; + + @MinNumber(0) + @MaxNumber(0.8) + @Description("How much the plan aspect may vary above aspectMinimum from one chamber to the next; 0 gives every chamber the same aspect. The surface section carries this field so all three shape sections share one shape record; only grotto chambers read it.") + private double aspectRange = 0.2D; +} diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverSourceConfig.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverSourceConfig.java new file mode 100644 index 000000000..9220ebe61 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisSurfaceRiverSourceConfig.java @@ -0,0 +1,34 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@Description("Controls surface-river source allocation.") +@Data +public class IrisSurfaceRiverSourceConfig { + @MinNumber(0) + @MaxNumber(64) + @Description("Expected natural surface headwaters per qualifying hydrology tile.") + private double density = 0.5D; + + @MinNumber(-2048) + @MaxNumber(2048) + @Description("Minimum natural terrain elevation eligible for a surface headwater.") + private int minimumElevation = 88; + + @MinNumber(0) + @MaxNumber(64) + @Description("Minimum source quota considered for qualifying tiles when policy requires headwaters and a legal outlet exists.") + private int minimumPerTile = 0; + + @MinNumber(0) + @MaxNumber(8192) + @Description("Minimum distance in blocks between natural surface headwaters.") + private int minimumSpacing = 384; +} diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisUndergroundRiverConfig.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisUndergroundRiverConfig.java new file mode 100644 index 000000000..752a55b96 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisUndergroundRiverConfig.java @@ -0,0 +1,71 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.generation.noise.IrisStyledRange; +import art.arcane.iris.generation.noise.NoiseStyle; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@Description("Controls an independent underground river network.") +@Data +public class IrisUndergroundRiverConfig { + @Description("Enable the independent underground-river source budget.") + private boolean enabled = true; + + @Description("Underground-river source allocation.") + private IrisUndergroundRiverSourceConfig sources = new IrisUndergroundRiverSourceConfig(); + + @Description("Underground river fluid elevation in world Y.") + private IrisStyledRange fluidLevel = range(-48D, 50D, 1024D); + + @Description("Underground wet channel width in blocks.") + private IrisStyledRange channelWidth = range(3D, 8D, 768D); + + @Description("Underground wet bed depth in blocks.") + private IrisStyledRange depth = range(1D, 3D, 768D); + + @Description("Dry vertical clearance above underground river fluid.") + private IrisStyledRange headroom = range(6D, 14D, 768D); + + @Description("Allow accepted underground courses to connect transactionally to existing caves.") + private boolean connectToExistingCaves = true; + + @MinNumber(16) + @MaxNumber(512) + @Description("Distance in blocks over which an ocean-bound underground river levels to sea level before its mouth.") + private int mouthLevelingDistance = 64; + + @MinNumber(0) + @MaxNumber(4) + @Description("Extra underground courses an outlet may accept as tributaries joining its main passage; they are budgeted on top of the source density, and 0 keeps one passage per outlet.") + private int tributaries = 1; + + @MinNumber(1) + @MaxNumber(64) + @Description("Blocks of solid rock kept between the top of a passage's headroom and the surface above it; a passage that cannot keep this much cover is lowered or rejected.") + private int minimumRockCover = 1; + + @MinNumber(1) + @MaxNumber(32) + @Description("Blocks of solid rock kept between the bottom of a passage's bed and the world floor below it.") + private int minimumFloorCover = 1; + + @MinNumber(1) + @MaxNumber(64) + @Description("Number of joined tributary sources at which a passage reaches its full sampled width; fewer contributing sources carve a proportionally narrower passage, and 1 gives every passage its full width.") + private int wideningSources = 8; + + @Description("Optional palette painted over the floor layers under an underground river instead of the cave biome's own layers. Disabled by default, which keeps the biome's layers.") + private IrisRiverMaterialConfig bedMaterial = new IrisRiverMaterialConfig(); + + private static IrisStyledRange range(double min, double max, double zoom) { + return new IrisStyledRange(min, max, new IrisGeneratorStyle(NoiseStyle.IRIS).zoomed(zoom)); + } +} diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/IrisUndergroundRiverSourceConfig.java b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisUndergroundRiverSourceConfig.java new file mode 100644 index 000000000..16709d016 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/IrisUndergroundRiverSourceConfig.java @@ -0,0 +1,29 @@ +package art.arcane.iris.generation.hydrology; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@Description("Controls underground-river source allocation independently from surface rivers.") +@Data +public class IrisUndergroundRiverSourceConfig { + @MinNumber(0) + @MaxNumber(64) + @Description("Expected natural underground sources per qualifying hydrology tile.") + private double density = 0.25D; + + @MinNumber(0) + @MaxNumber(64) + @Description("Minimum underground source quota considered for qualifying tiles when policy requires headwaters and a legal outlet exists.") + private int minimumPerTile = 0; + + @MinNumber(0) + @MaxNumber(8192) + @Description("Minimum distance in blocks between natural underground sources.") + private int minimumSpacing = 512; +} diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/MinimumLandHeightKey.java b/core/src/main/java/art/arcane/iris/generation/hydrology/MinimumLandHeightKey.java similarity index 56% rename from core/src/main/java/art/arcane/iris/engine/hydrology/MinimumLandHeightKey.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/MinimumLandHeightKey.java index 129cb1c7b..23ff17fde 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/MinimumLandHeightKey.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/MinimumLandHeightKey.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; record MinimumLandHeightKey(int x, int z, int radius) { } diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/OutletCandidate.java b/core/src/main/java/art/arcane/iris/generation/hydrology/OutletCandidate.java similarity index 63% rename from core/src/main/java/art/arcane/iris/engine/hydrology/OutletCandidate.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/OutletCandidate.java index 3ba3704fa..a2a71e73e 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/OutletCandidate.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/OutletCandidate.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; record OutletCandidate(int landIndex, int oceanIndex, RiverOutlet outlet) { } diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/OutletCourseKey.java b/core/src/main/java/art/arcane/iris/generation/hydrology/OutletCourseKey.java new file mode 100644 index 000000000..9190c637a --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/OutletCourseKey.java @@ -0,0 +1,4 @@ +package art.arcane.iris.generation.hydrology; + +record OutletCourseKey(long outletId) { +} diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/RefinedEdgeKey.java b/core/src/main/java/art/arcane/iris/generation/hydrology/RefinedEdgeKey.java similarity index 86% rename from core/src/main/java/art/arcane/iris/engine/hydrology/RefinedEdgeKey.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/RefinedEdgeKey.java index e40630215..4f372b28a 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/RefinedEdgeKey.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/RefinedEdgeKey.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; record RefinedEdgeKey( long upstreamId, diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/RiverCourse.java b/core/src/main/java/art/arcane/iris/generation/hydrology/RiverCourse.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/hydrology/RiverCourse.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/RiverCourse.java index da0caf1e0..fcf12cef8 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/RiverCourse.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/RiverCourse.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.List; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/RiverCourseType.java b/core/src/main/java/art/arcane/iris/generation/hydrology/RiverCourseType.java similarity index 81% rename from core/src/main/java/art/arcane/iris/engine/hydrology/RiverCourseType.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/RiverCourseType.java index b8bcc29f1..9ac67b828 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/RiverCourseType.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/RiverCourseType.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; public enum RiverCourseType { SURFACE, diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/RiverFootprint.java b/core/src/main/java/art/arcane/iris/generation/hydrology/RiverFootprint.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/hydrology/RiverFootprint.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/RiverFootprint.java index 02793feff..fd00ed22f 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/RiverFootprint.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/RiverFootprint.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import it.unimi.dsi.fastutil.longs.Long2ObjectLinkedOpenHashMap; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/RiverOutlet.java b/core/src/main/java/art/arcane/iris/generation/hydrology/RiverOutlet.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/hydrology/RiverOutlet.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/RiverOutlet.java index ffab098fe..35a7a4126 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/RiverOutlet.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/RiverOutlet.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/RouteCandidate.java b/core/src/main/java/art/arcane/iris/generation/hydrology/RouteCandidate.java similarity index 84% rename from core/src/main/java/art/arcane/iris/engine/hydrology/RouteCandidate.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/RouteCandidate.java index 743030251..0b06f0777 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/RouteCandidate.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/RouteCandidate.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; record RouteCandidate( HydrologyPoint point, diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/RouteDirection.java b/core/src/main/java/art/arcane/iris/generation/hydrology/RouteDirection.java similarity index 50% rename from core/src/main/java/art/arcane/iris/engine/hydrology/RouteDirection.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/RouteDirection.java index a5c6b499d..a76499621 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/RouteDirection.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/RouteDirection.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; record RouteDirection(double x, double z) { } diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/RoutePosition.java b/core/src/main/java/art/arcane/iris/generation/hydrology/RoutePosition.java similarity index 68% rename from core/src/main/java/art/arcane/iris/engine/hydrology/RoutePosition.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/RoutePosition.java index 114a72876..45417a163 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/RoutePosition.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/RoutePosition.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; record RoutePosition(double x, double z, double baseX, double baseZ, RouteDirection tangent) { } diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/RouteTerrainEstimate.java b/core/src/main/java/art/arcane/iris/generation/hydrology/RouteTerrainEstimate.java similarity index 58% rename from core/src/main/java/art/arcane/iris/engine/hydrology/RouteTerrainEstimate.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/RouteTerrainEstimate.java index 76971ad1f..349c8cf0f 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/RouteTerrainEstimate.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/RouteTerrainEstimate.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; record RouteTerrainEstimate(int height, double terrainScore) { } diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/RoutingContextLoad.java b/core/src/main/java/art/arcane/iris/generation/hydrology/RoutingContextLoad.java similarity index 75% rename from core/src/main/java/art/arcane/iris/engine/hydrology/RoutingContextLoad.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/RoutingContextLoad.java index 703098b0b..8dda0d1e4 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/RoutingContextLoad.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/RoutingContextLoad.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.concurrent.CompletableFuture; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/RoutingQueueEntry.java b/core/src/main/java/art/arcane/iris/generation/hydrology/RoutingQueueEntry.java similarity index 92% rename from core/src/main/java/art/arcane/iris/engine/hydrology/RoutingQueueEntry.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/RoutingQueueEntry.java index 37eb34ee2..bcec965c2 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/RoutingQueueEntry.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/RoutingQueueEntry.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; record RoutingQueueEntry( int nodeIndex, diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/SourceAdmissionSelection.java b/core/src/main/java/art/arcane/iris/generation/hydrology/SourceAdmissionSelection.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/hydrology/SourceAdmissionSelection.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/SourceAdmissionSelection.java index b42a4754b..91dbb8f00 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/SourceAdmissionSelection.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/SourceAdmissionSelection.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.List; import java.util.Arrays; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/SourceCandidate.java b/core/src/main/java/art/arcane/iris/generation/hydrology/SourceCandidate.java similarity index 72% rename from core/src/main/java/art/arcane/iris/engine/hydrology/SourceCandidate.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/SourceCandidate.java index 9060c75f6..ea888db9c 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/SourceCandidate.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/SourceCandidate.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; record SourceCandidate( int nodeIndex, diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/SourceRoutingContext.java b/core/src/main/java/art/arcane/iris/generation/hydrology/SourceRoutingContext.java similarity index 88% rename from core/src/main/java/art/arcane/iris/engine/hydrology/SourceRoutingContext.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/SourceRoutingContext.java index c7c5c885e..6cb878ba7 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/SourceRoutingContext.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/SourceRoutingContext.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/SourceSelection.java b/core/src/main/java/art/arcane/iris/generation/hydrology/SourceSelection.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/hydrology/SourceSelection.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/SourceSelection.java index 3fd14b211..2f4324de9 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/SourceSelection.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/SourceSelection.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.ArrayList; import java.util.HashSet; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/StudioHydrologyTileStore.java b/core/src/main/java/art/arcane/iris/generation/hydrology/StudioHydrologyTileStore.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/hydrology/StudioHydrologyTileStore.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/StudioHydrologyTileStore.java index ea0bf6186..f21a6df08 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/StudioHydrologyTileStore.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/StudioHydrologyTileStore.java @@ -1,11 +1,11 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.cave.CavePosition; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelPrecondition; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.hydrology.cave.HydrologyCavePlan; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveRejection; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveSource; +import art.arcane.iris.generation.hydrology.cave.CavePosition; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelPrecondition; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCavePlan; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveRejection; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveSource; import com.google.gson.Gson; import com.google.gson.GsonBuilder; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/SurfaceCourseDraft.java b/core/src/main/java/art/arcane/iris/generation/hydrology/SurfaceCourseDraft.java similarity index 76% rename from core/src/main/java/art/arcane/iris/engine/hydrology/SurfaceCourseDraft.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/SurfaceCourseDraft.java index a574ca2a0..69defaaea 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/SurfaceCourseDraft.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/SurfaceCourseDraft.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; record SurfaceCourseDraft( HydrologyGridNode source, diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/SurfaceRouteKey.java b/core/src/main/java/art/arcane/iris/generation/hydrology/SurfaceRouteKey.java similarity index 67% rename from core/src/main/java/art/arcane/iris/engine/hydrology/SurfaceRouteKey.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/SurfaceRouteKey.java index ca3ddca5e..3d07794cb 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/SurfaceRouteKey.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/SurfaceRouteKey.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/UndergroundCourseDraft.java b/core/src/main/java/art/arcane/iris/generation/hydrology/UndergroundCourseDraft.java similarity index 68% rename from core/src/main/java/art/arcane/iris/engine/hydrology/UndergroundCourseDraft.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/UndergroundCourseDraft.java index 692c6cb63..9c878279a 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/UndergroundCourseDraft.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/UndergroundCourseDraft.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; record UndergroundCourseDraft(HydrologyGridNode source, long courseId, HydrologyCoursePath path) { } diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/UndergroundSegmentCapKey.java b/core/src/main/java/art/arcane/iris/generation/hydrology/UndergroundSegmentCapKey.java similarity index 84% rename from core/src/main/java/art/arcane/iris/engine/hydrology/UndergroundSegmentCapKey.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/UndergroundSegmentCapKey.java index a9e188edf..4eaaf03f9 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/UndergroundSegmentCapKey.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/UndergroundSegmentCapKey.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; record UndergroundSegmentCapKey( long courseId, diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveBoundaryResult.java b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveBoundaryResult.java similarity index 91% rename from core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveBoundaryResult.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveBoundaryResult.java index 8cc36cf57..da0002728 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveBoundaryResult.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveBoundaryResult.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; import java.util.Collections; import java.util.LinkedHashSet; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveCachedValidation.java b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveCachedValidation.java similarity index 89% rename from core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveCachedValidation.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveCachedValidation.java index fe39b1d37..60adfc983 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveCachedValidation.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveCachedValidation.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; record CaveCachedValidation( HydrologyCavePlan plan, diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveClaimGroup.java b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveClaimGroup.java similarity index 74% rename from core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveClaimGroup.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveClaimGroup.java index e0b30f82d..26f2758fd 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveClaimGroup.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveClaimGroup.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; import java.util.Map; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveComponentResult.java b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveComponentResult.java similarity index 91% rename from core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveComponentResult.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveComponentResult.java index 2f566d433..9c66dfd24 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveComponentResult.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveComponentResult.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; import java.util.Collections; import java.util.LinkedHashSet; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveGrottoResult.java b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveGrottoResult.java similarity index 91% rename from core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveGrottoResult.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveGrottoResult.java index 0ff858204..aa902bc2a 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveGrottoResult.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveGrottoResult.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; import java.util.Collections; import java.util.LinkedHashSet; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveIndependentDecision.java b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveIndependentDecision.java similarity index 90% rename from core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveIndependentDecision.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveIndependentDecision.java index 8558aa951..6ac8275a3 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveIndependentDecision.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveIndependentDecision.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/CavePathResult.java b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/CavePathResult.java similarity index 88% rename from core/src/main/java/art/arcane/iris/engine/hydrology/cave/CavePathResult.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/cave/CavePathResult.java index 77148114d..c6911d1db 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/CavePathResult.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/CavePathResult.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/CavePosition.java b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/CavePosition.java similarity index 91% rename from core/src/main/java/art/arcane/iris/engine/hydrology/cave/CavePosition.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/cave/CavePosition.java index 1777d5d58..f3231ac58 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/CavePosition.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/CavePosition.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; public record CavePosition(int x, int y, int z) { public CavePosition offset(int dx, int dy, int dz) { diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/CavePositionIndex.java b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/CavePositionIndex.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/hydrology/cave/CavePositionIndex.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/cave/CavePositionIndex.java index 19ce6a645..e673e7d59 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/CavePositionIndex.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/CavePositionIndex.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; import java.util.Collection; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveSurfaceObservations.java b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveSurfaceObservations.java similarity index 89% rename from core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveSurfaceObservations.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveSurfaceObservations.java index 96dff7fc8..175919f95 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveSurfaceObservations.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveSurfaceObservations.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; -import art.arcane.iris.engine.hydrology.HydrologyObservedPlannedSurface; +import art.arcane.iris.generation.hydrology.HydrologyObservedPlannedSurface; import java.util.ArrayList; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveValidationBatch.java b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveValidationBatch.java similarity index 82% rename from core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveValidationBatch.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveValidationBatch.java index 5d3813bda..3babf6ae0 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveValidationBatch.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveValidationBatch.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; import java.util.List; import java.util.Map; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveViewObservations.java b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveViewObservations.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveViewObservations.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveViewObservations.java index 116c71b13..05822a70e 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveViewObservations.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveViewObservations.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; record CaveViewObservations( CavePosition[] positions, diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveVoxel.java b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveVoxel.java similarity index 71% rename from core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveVoxel.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveVoxel.java index d045e5ff0..97da1a8a1 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveVoxel.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveVoxel.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; public enum CaveVoxel { SOLID, diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveVoxelPrecondition.java b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveVoxelPrecondition.java similarity index 78% rename from core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveVoxelPrecondition.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveVoxelPrecondition.java index 368f4834e..5fa821520 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveVoxelPrecondition.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveVoxelPrecondition.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveVoxelView.java b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveVoxelView.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveVoxelView.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveVoxelView.java index ac9de345a..e0b90c751 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/CaveVoxelView.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/CaveVoxelView.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; public interface CaveVoxelView { boolean isInWorld(CavePosition position); diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveAction.java b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveAction.java similarity index 66% rename from core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveAction.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveAction.java index 2e16db766..26b38ddfb 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveAction.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveAction.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; public enum HydrologyCaveAction { WET_SOURCE, diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveCandidate.java b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveCandidate.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveCandidate.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveCandidate.java index 8e163771f..82a884c5a 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveCandidate.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveCandidate.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; import java.util.Collections; import java.util.LinkedHashMap; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveCell.java b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveCell.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveCell.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveCell.java index cf094052f..6b52f1dbe 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveCell.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveCell.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; import art.arcane.volmlib.util.matter.MatterCavern; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveChamberPlanner.java b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveChamberPlanner.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveChamberPlanner.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveChamberPlanner.java index 5eb7eb854..edaf6ed7f 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveChamberPlanner.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveChamberPlanner.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; import java.util.ArrayDeque; import java.util.ArrayList; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveConflictPolicy.java b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveConflictPolicy.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveConflictPolicy.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveConflictPolicy.java index 549b68936..8a6645ce1 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveConflictPolicy.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveConflictPolicy.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; import java.util.Comparator; import java.util.Map; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveContainmentPlanner.java b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveContainmentPlanner.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveContainmentPlanner.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveContainmentPlanner.java index 139677dd4..c35eac5da 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveContainmentPlanner.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveContainmentPlanner.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; -import art.arcane.iris.engine.hydrology.HydrologyObservedPlannedSurface; +import art.arcane.iris.generation.hydrology.HydrologyObservedPlannedSurface; import java.util.ArrayList; import java.util.Collection; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveFluidPolicy.java b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveFluidPolicy.java similarity index 67% rename from core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveFluidPolicy.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveFluidPolicy.java index 41f3aae8f..1b27fcf37 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveFluidPolicy.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveFluidPolicy.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; public enum HydrologyCaveFluidPolicy { REJECT_EXISTING, diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveGrottoShape.java b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveGrottoShape.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveGrottoShape.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveGrottoShape.java index 6d621455d..91296e39a 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveGrottoShape.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveGrottoShape.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; @FunctionalInterface public interface HydrologyCaveGrottoShape { diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveMode.java b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveMode.java similarity index 73% rename from core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveMode.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveMode.java index 319abeb02..4dccdc2f5 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveMode.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveMode.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; public enum HydrologyCaveMode { CLOSED_COMPONENT, diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCavePlan.java b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCavePlan.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCavePlan.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCavePlan.java index fc2f080ac..554e4e3e5 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCavePlan.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCavePlan.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; import java.util.AbstractCollection; import java.util.AbstractMap; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCavePlannerSettings.java b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCavePlannerSettings.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCavePlannerSettings.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCavePlannerSettings.java index b7ac33797..cbdde8dca 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCavePlannerSettings.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCavePlannerSettings.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCavePlanningResult.java b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCavePlanningResult.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCavePlanningResult.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCavePlanningResult.java index 558e91351..d781d6c14 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCavePlanningResult.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCavePlanningResult.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; import java.util.Collections; import java.util.LinkedHashMap; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveRejection.java b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveRejection.java similarity index 88% rename from core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveRejection.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveRejection.java index a0b1baec3..6e17ab954 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveRejection.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveRejection.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; public enum HydrologyCaveRejection { NONE, diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveSource.java b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveSource.java similarity index 87% rename from core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveSource.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveSource.java index ceb21285b..9e7cff440 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveSource.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveSource.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveStorage.java b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveStorage.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveStorage.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveStorage.java index df5b4346f..736df5051 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveStorage.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveStorage.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/RecordingCaveVoxelView.java b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/RecordingCaveVoxelView.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/hydrology/cave/RecordingCaveVoxelView.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/cave/RecordingCaveVoxelView.java index 2b7b5534b..d030586e9 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/cave/RecordingCaveVoxelView.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/cave/RecordingCaveVoxelView.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; import java.util.Arrays; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/policy/EffectiveRiverPolicy.java b/core/src/main/java/art/arcane/iris/generation/hydrology/policy/EffectiveRiverPolicy.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/hydrology/policy/EffectiveRiverPolicy.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/policy/EffectiveRiverPolicy.java index f4cdadb25..13d9a11cd 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/policy/EffectiveRiverPolicy.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/policy/EffectiveRiverPolicy.java @@ -1,7 +1,7 @@ -package art.arcane.iris.engine.hydrology.policy; +package art.arcane.iris.generation.hydrology.policy; -import art.arcane.iris.engine.object.IrisRiverPlacementMode; -import art.arcane.iris.engine.object.IrisRiverRoutingMode; +import art.arcane.iris.generation.hydrology.IrisRiverPlacementMode; +import art.arcane.iris.generation.hydrology.IrisRiverRoutingMode; import java.util.List; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/policy/RiverConfinement.java b/core/src/main/java/art/arcane/iris/generation/hydrology/policy/RiverConfinement.java similarity index 76% rename from core/src/main/java/art/arcane/iris/engine/hydrology/policy/RiverConfinement.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/policy/RiverConfinement.java index 302d6c690..d342f13a0 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/policy/RiverConfinement.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/policy/RiverConfinement.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.policy; +package art.arcane.iris.generation.hydrology.policy; /** Which area a confined river policy binds courses to: the region or the biome that set it, or none. */ public enum RiverConfinement { diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/policy/RiverPolicyResolver.java b/core/src/main/java/art/arcane/iris/generation/hydrology/policy/RiverPolicyResolver.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/hydrology/policy/RiverPolicyResolver.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/policy/RiverPolicyResolver.java index afc920597..f4f7ff2da 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/policy/RiverPolicyResolver.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/policy/RiverPolicyResolver.java @@ -1,13 +1,13 @@ -package art.arcane.iris.engine.hydrology.policy; +package art.arcane.iris.generation.hydrology.policy; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisRiverPlacementMode; -import art.arcane.iris.engine.object.IrisRiverPolicy; -import art.arcane.iris.engine.object.IrisRiverRoutingMode; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.generation.hydrology.IrisRiverPlacementMode; +import art.arcane.iris.generation.hydrology.IrisRiverPolicy; +import art.arcane.iris.generation.hydrology.IrisRiverRoutingMode; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/policy/SurfaceRiverPolicy.java b/core/src/main/java/art/arcane/iris/generation/hydrology/policy/SurfaceRiverPolicy.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/hydrology/policy/SurfaceRiverPolicy.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/policy/SurfaceRiverPolicy.java index a34aa9b01..842d96880 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/policy/SurfaceRiverPolicy.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/policy/SurfaceRiverPolicy.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.policy; +package art.arcane.iris.generation.hydrology.policy; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/runtime/HydrologyFeatureSearch.java b/core/src/main/java/art/arcane/iris/generation/hydrology/runtime/HydrologyFeatureSearch.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/hydrology/runtime/HydrologyFeatureSearch.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/runtime/HydrologyFeatureSearch.java index 0989b0521..78d1a26f8 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/runtime/HydrologyFeatureSearch.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/runtime/HydrologyFeatureSearch.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology.runtime; +package art.arcane.iris.generation.hydrology.runtime; -import art.arcane.iris.engine.hydrology.HydrologyTileKey; +import art.arcane.iris.generation.hydrology.HydrologyTileKey; import java.util.ArrayList; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/runtime/HydrologyFeatureSearchBounds.java b/core/src/main/java/art/arcane/iris/generation/hydrology/runtime/HydrologyFeatureSearchBounds.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/hydrology/runtime/HydrologyFeatureSearchBounds.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/runtime/HydrologyFeatureSearchBounds.java index 5068add5c..41c6d953e 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/runtime/HydrologyFeatureSearchBounds.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/runtime/HydrologyFeatureSearchBounds.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.runtime; +package art.arcane.iris.generation.hydrology.runtime; final class HydrologyFeatureSearchBounds { private HydrologyFeatureSearchBounds() { diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyNaturalHeightDescriber.java b/core/src/main/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyNaturalHeightDescriber.java similarity index 83% rename from core/src/main/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyNaturalHeightDescriber.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyNaturalHeightDescriber.java index 99cfcd3f6..a9e7aa06f 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyNaturalHeightDescriber.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyNaturalHeightDescriber.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.runtime; +package art.arcane.iris.generation.hydrology.runtime; /** * Explains how the natural terrain height at a column was produced, for the diagnostic that fires diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyNaturalHeightProvider.java b/core/src/main/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyNaturalHeightProvider.java similarity index 69% rename from core/src/main/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyNaturalHeightProvider.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyNaturalHeightProvider.java index 1deda2801..8b2e462f0 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyNaturalHeightProvider.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyNaturalHeightProvider.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.runtime; +package art.arcane.iris.generation.hydrology.runtime; @FunctionalInterface public interface IrisHydrologyNaturalHeightProvider { diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyNaturalOceanClassifier.java b/core/src/main/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyNaturalOceanClassifier.java similarity index 69% rename from core/src/main/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyNaturalOceanClassifier.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyNaturalOceanClassifier.java index a77975763..7f8826c51 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyNaturalOceanClassifier.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyNaturalOceanClassifier.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.runtime; +package art.arcane.iris.generation.hydrology.runtime; @FunctionalInterface public interface IrisHydrologyNaturalOceanClassifier { diff --git a/core/src/main/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyNaturalSample.java b/core/src/main/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyNaturalSample.java new file mode 100644 index 000000000..ec3ad26a8 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyNaturalSample.java @@ -0,0 +1,12 @@ +package art.arcane.iris.generation.hydrology.runtime; + +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisRegion; + +public record IrisHydrologyNaturalSample( + double naturalHeight, + boolean ocean, + IrisBiome biome, + IrisRegion region +) { +} diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyNaturalSampleProvider.java b/core/src/main/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyNaturalSampleProvider.java similarity index 75% rename from core/src/main/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyNaturalSampleProvider.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyNaturalSampleProvider.java index fa31e6cb9..85d1e30dd 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyNaturalSampleProvider.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyNaturalSampleProvider.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.runtime; +package art.arcane.iris.generation.hydrology.runtime; @FunctionalInterface public interface IrisHydrologyNaturalSampleProvider { diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyRoutingTerrainSampler.java b/core/src/main/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyRoutingTerrainSampler.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyRoutingTerrainSampler.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyRoutingTerrainSampler.java index 152de6d41..c26c41faf 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyRoutingTerrainSampler.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyRoutingTerrainSampler.java @@ -1,11 +1,11 @@ -package art.arcane.iris.engine.hydrology.runtime; +package art.arcane.iris.generation.hydrology.runtime; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.engine.hydrology.HydrologyNaturalTerrainSampler; -import art.arcane.iris.engine.hydrology.HydrologyRoutingTerrainSampler; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSample; -import art.arcane.iris.engine.hydrology.HydrologyForkJoin; -import art.arcane.iris.util.common.parallel.MultiBurst; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.generation.hydrology.HydrologyNaturalTerrainSampler; +import art.arcane.iris.generation.hydrology.HydrologyRoutingTerrainSampler; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSample; +import art.arcane.iris.generation.hydrology.HydrologyForkJoin; +import art.arcane.iris.generation.concurrent.MultiBurst; import it.unimi.dsi.fastutil.longs.Long2DoubleLinkedOpenHashMap; import it.unimi.dsi.fastutil.longs.Long2ObjectLinkedOpenHashMap; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyRuntime.java b/core/src/main/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyRuntime.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyRuntime.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyRuntime.java index 597ef723c..b24bfdb9e 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyRuntime.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyRuntime.java @@ -1,43 +1,43 @@ -package art.arcane.iris.engine.hydrology.runtime; +package art.arcane.iris.generation.hydrology.runtime; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.HydrologyColumnSample; -import art.arcane.iris.engine.hydrology.HydrologyColumnSnapshot; -import art.arcane.iris.engine.hydrology.HydrologyDiagnosticCandidate; -import art.arcane.iris.engine.hydrology.HydrologyDiagnosticRenderSample; -import art.arcane.iris.engine.hydrology.HydrologyFeatureQuery; -import art.arcane.iris.engine.hydrology.HydrologyFeatureRef; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.engine.hydrology.HydrologyGeometrySampler; -import art.arcane.iris.engine.hydrology.HydrologyPlanner; -import art.arcane.iris.engine.hydrology.HydrologyPlannerSettings; -import art.arcane.iris.engine.hydrology.HydrologyRenderSample; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSample; -import art.arcane.iris.engine.hydrology.HydrologyTile; -import art.arcane.iris.engine.hydrology.HydrologyTileCache; -import art.arcane.iris.engine.hydrology.HydrologyTileKey; -import art.arcane.iris.engine.hydrology.cave.HydrologyCavePlan; -import art.arcane.iris.engine.hydrology.policy.EffectiveRiverPolicy; -import art.arcane.iris.engine.hydrology.policy.RiverConfinement; -import art.arcane.iris.engine.hydrology.policy.RiverPolicyResolver; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDeepFluidConfig; -import art.arcane.iris.engine.object.IrisHydrology; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisRiverHydrology; -import art.arcane.iris.engine.object.IrisRiverProfile; -import art.arcane.iris.engine.object.IrisRiverRoutingMode; -import art.arcane.iris.engine.object.IrisStyledRange; -import art.arcane.iris.engine.object.IrisSurfaceRiverBankConfig; -import art.arcane.iris.engine.object.IrisSurfaceRiverChannelConfig; -import art.arcane.iris.engine.object.IrisSurfaceRiverConfig; -import art.arcane.iris.engine.object.IrisUndergroundRiverConfig; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.HydrologyColumnSample; +import art.arcane.iris.generation.hydrology.HydrologyColumnSnapshot; +import art.arcane.iris.generation.hydrology.HydrologyDiagnosticCandidate; +import art.arcane.iris.generation.hydrology.HydrologyDiagnosticRenderSample; +import art.arcane.iris.generation.hydrology.HydrologyFeatureQuery; +import art.arcane.iris.generation.hydrology.HydrologyFeatureRef; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.hydrology.HydrologyGeometrySampler; +import art.arcane.iris.generation.hydrology.HydrologyPlanner; +import art.arcane.iris.generation.hydrology.HydrologyPlannerSettings; +import art.arcane.iris.generation.hydrology.HydrologyRenderSample; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSample; +import art.arcane.iris.generation.hydrology.HydrologyTile; +import art.arcane.iris.generation.hydrology.HydrologyTileCache; +import art.arcane.iris.generation.hydrology.HydrologyTileKey; +import art.arcane.iris.generation.hydrology.cave.HydrologyCavePlan; +import art.arcane.iris.generation.hydrology.policy.EffectiveRiverPolicy; +import art.arcane.iris.generation.hydrology.policy.RiverConfinement; +import art.arcane.iris.generation.hydrology.policy.RiverPolicyResolver; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.hydrology.IrisDeepFluidConfig; +import art.arcane.iris.generation.hydrology.IrisHydrology; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.generation.hydrology.IrisRiverHydrology; +import art.arcane.iris.generation.hydrology.IrisRiverProfile; +import art.arcane.iris.generation.hydrology.IrisRiverRoutingMode; +import art.arcane.iris.generation.noise.IrisStyledRange; +import art.arcane.iris.generation.hydrology.IrisSurfaceRiverBankConfig; +import art.arcane.iris.generation.hydrology.IrisSurfaceRiverChannelConfig; +import art.arcane.iris.generation.hydrology.IrisSurfaceRiverConfig; +import art.arcane.iris.generation.hydrology.IrisUndergroundRiverConfig; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.util.common.parallel.MultiBurst; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.iris.generation.concurrent.MultiBurst; +import art.arcane.volmlib.util.stream.ProceduralStream; import art.arcane.volmlib.util.math.RNG; import com.github.benmanes.caffeine.cache.Cache; import com.github.benmanes.caffeine.cache.Caffeine; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyRuntimeContext.java b/core/src/main/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyRuntimeContext.java similarity index 86% rename from core/src/main/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyRuntimeContext.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyRuntimeContext.java index b50cd7d5b..784395ea4 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyRuntimeContext.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyRuntimeContext.java @@ -1,8 +1,8 @@ -package art.arcane.iris.engine.hydrology.runtime; +package art.arcane.iris.generation.hydrology.runtime; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.hydrology.HydrologyCaveVoxelViewFactory; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.hydrology.HydrologyCaveVoxelViewFactory; +import art.arcane.iris.generation.terrain.IrisDimension; import java.util.Objects; import java.util.function.BooleanSupplier; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologySettingsCompiler.java b/core/src/main/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologySettingsCompiler.java similarity index 90% rename from core/src/main/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologySettingsCompiler.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologySettingsCompiler.java index c816f1d91..394c4baa1 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologySettingsCompiler.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologySettingsCompiler.java @@ -1,39 +1,39 @@ -package art.arcane.iris.engine.hydrology.runtime; +package art.arcane.iris.generation.hydrology.runtime; -import art.arcane.iris.engine.hydrology.HydrologyHash; -import art.arcane.iris.engine.hydrology.HydrologyPlannerSettings; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisCoastalRiverGrottoConfig; -import art.arcane.iris.engine.object.IrisDeepFluidConfig; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisHydrology; -import art.arcane.iris.engine.object.IrisInlandRiverGrottoConfig; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisRiverChannelShapeConfig; -import art.arcane.iris.engine.object.IrisRiverDropShapeConfig; -import art.arcane.iris.engine.object.IrisRiverGeometryConfig; -import art.arcane.iris.engine.object.IrisRiverGrottoConfig; -import art.arcane.iris.engine.object.IrisRiverHydrology; -import art.arcane.iris.engine.object.IrisRiverInlandOutlet; -import art.arcane.iris.engine.object.IrisRiverMeanderConfig; -import art.arcane.iris.engine.object.IrisRiverMouthConfig; -import art.arcane.iris.engine.object.IrisRiverPolicy; -import art.arcane.iris.engine.object.IrisRiverRoutingConfig; -import art.arcane.iris.engine.object.IrisSeaCaveConfig; -import art.arcane.iris.engine.object.IrisStyledRange; -import art.arcane.iris.engine.object.IrisSurfacePoolConfig; -import art.arcane.iris.engine.object.IrisSurfaceRiverBankConfig; -import art.arcane.iris.engine.object.IrisSurfaceRiverChannelConfig; -import art.arcane.iris.engine.object.IrisSurfaceRiverConfig; -import art.arcane.iris.engine.object.IrisSurfaceRiverErosionConfig; -import art.arcane.iris.engine.object.IrisSurfaceRiverFlowConfig; -import art.arcane.iris.engine.object.IrisSurfaceRiverPondConfig; -import art.arcane.iris.engine.object.IrisSurfaceRiverShapeConfig; -import art.arcane.iris.engine.object.IrisSurfaceRiverSourceConfig; -import art.arcane.iris.engine.object.IrisUndergroundRiverConfig; -import art.arcane.iris.engine.object.IrisUndergroundRiverSourceConfig; -import art.arcane.iris.util.common.data.DataProvider; +import art.arcane.iris.generation.hydrology.HydrologyHash; +import art.arcane.iris.generation.hydrology.HydrologyPlannerSettings; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.hydrology.IrisCoastalRiverGrottoConfig; +import art.arcane.iris.generation.hydrology.IrisDeepFluidConfig; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.hydrology.IrisHydrology; +import art.arcane.iris.generation.hydrology.IrisInlandRiverGrottoConfig; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.generation.hydrology.IrisRiverChannelShapeConfig; +import art.arcane.iris.generation.hydrology.IrisRiverDropShapeConfig; +import art.arcane.iris.generation.hydrology.IrisRiverGeometryConfig; +import art.arcane.iris.generation.hydrology.IrisRiverGrottoConfig; +import art.arcane.iris.generation.hydrology.IrisRiverHydrology; +import art.arcane.iris.generation.hydrology.IrisRiverInlandOutlet; +import art.arcane.iris.generation.hydrology.IrisRiverMeanderConfig; +import art.arcane.iris.generation.hydrology.IrisRiverMouthConfig; +import art.arcane.iris.generation.hydrology.IrisRiverPolicy; +import art.arcane.iris.generation.hydrology.IrisRiverRoutingConfig; +import art.arcane.iris.generation.hydrology.IrisSeaCaveConfig; +import art.arcane.iris.generation.noise.IrisStyledRange; +import art.arcane.iris.generation.hydrology.IrisSurfacePoolConfig; +import art.arcane.iris.generation.hydrology.IrisSurfaceRiverBankConfig; +import art.arcane.iris.generation.hydrology.IrisSurfaceRiverChannelConfig; +import art.arcane.iris.generation.hydrology.IrisSurfaceRiverConfig; +import art.arcane.iris.generation.hydrology.IrisSurfaceRiverErosionConfig; +import art.arcane.iris.generation.hydrology.IrisSurfaceRiverFlowConfig; +import art.arcane.iris.generation.hydrology.IrisSurfaceRiverPondConfig; +import art.arcane.iris.generation.hydrology.IrisSurfaceRiverShapeConfig; +import art.arcane.iris.generation.hydrology.IrisSurfaceRiverSourceConfig; +import art.arcane.iris.generation.hydrology.IrisUndergroundRiverConfig; +import art.arcane.iris.generation.hydrology.IrisUndergroundRiverSourceConfig; +import art.arcane.iris.generation.block.DataProvider; import java.util.ArrayList; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/ChannelProfile.java b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/ChannelProfile.java similarity index 83% rename from core/src/main/java/art/arcane/iris/engine/hydrology/surface/ChannelProfile.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/surface/ChannelProfile.java index 2f03c1e44..5fed07afe 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/ChannelProfile.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/ChannelProfile.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; public record ChannelProfile(double[] halfWidth, double[] depth, double[] bankMultiplier) { public int size() { diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/ChannelProfileBuilder.java b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/ChannelProfileBuilder.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/hydrology/surface/ChannelProfileBuilder.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/surface/ChannelProfileBuilder.java index 9b86aacf9..fcfae83fa 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/ChannelProfileBuilder.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/ChannelProfileBuilder.java @@ -1,9 +1,9 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; -import art.arcane.iris.engine.hydrology.HydrologyGeometrySampler; -import art.arcane.iris.engine.hydrology.HydrologyPlannerSettings; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSample; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSampler; +import art.arcane.iris.generation.hydrology.HydrologyGeometrySampler; +import art.arcane.iris.generation.hydrology.HydrologyPlannerSettings; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSample; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSampler; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/ErosionField.java b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/ErosionField.java similarity index 88% rename from core/src/main/java/art/arcane/iris/engine/hydrology/surface/ErosionField.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/surface/ErosionField.java index d832b230c..8a07f6050 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/ErosionField.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/ErosionField.java @@ -1,7 +1,7 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; -import art.arcane.iris.engine.hydrology.RiverFootprint; -import art.arcane.iris.engine.hydrology.HydrologyCandidateRejection; +import art.arcane.iris.generation.hydrology.RiverFootprint; +import art.arcane.iris.generation.hydrology.HydrologyCandidateRejection; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/ErosionFieldCompiler.java b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/ErosionFieldCompiler.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/hydrology/surface/ErosionFieldCompiler.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/surface/ErosionFieldCompiler.java index 762517242..867198c7d 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/ErosionFieldCompiler.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/ErosionFieldCompiler.java @@ -1,14 +1,14 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; -import art.arcane.iris.engine.hydrology.HydrologyHash; -import art.arcane.iris.engine.hydrology.HydrologyCandidateRejection; -import art.arcane.iris.engine.hydrology.HydrologyPlannerSettings; -import art.arcane.iris.engine.hydrology.HydrologySurfaceDropRaster; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSample; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSampler; -import art.arcane.iris.engine.hydrology.RiverFootprint; -import art.arcane.iris.engine.object.IrisRiverBedProfile; -import art.arcane.iris.engine.object.IrisRiverBlendStyle; +import art.arcane.iris.generation.hydrology.HydrologyHash; +import art.arcane.iris.generation.hydrology.HydrologyCandidateRejection; +import art.arcane.iris.generation.hydrology.HydrologyPlannerSettings; +import art.arcane.iris.generation.hydrology.HydrologySurfaceDropRaster; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSample; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSampler; +import art.arcane.iris.generation.hydrology.RiverFootprint; +import art.arcane.iris.generation.hydrology.IrisRiverBedProfile; +import art.arcane.iris.generation.hydrology.IrisRiverBlendStyle; import it.unimi.dsi.fastutil.longs.Long2DoubleOpenHashMap; import it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceBankSupport.java b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceBankSupport.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceBankSupport.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceBankSupport.java index 669e4d8c7..f9ff93d4f 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceBankSupport.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceBankSupport.java @@ -1,8 +1,8 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; -import art.arcane.iris.engine.hydrology.HydrologyPlannerSettings; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSample; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSampler; +import art.arcane.iris.generation.hydrology.HydrologyPlannerSettings; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSample; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSampler; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceBendProfile.java b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceBendProfile.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceBendProfile.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceBendProfile.java index d83ad977f..d8e0a86fc 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceBendProfile.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceBendProfile.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; final class SurfaceBendProfile { private static final double MAXIMUM_OFFSET = 0.35D; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceBounds.java b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceBounds.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceBounds.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceBounds.java index e890d6c35..d25b1edcc 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceBounds.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceBounds.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; public record SurfaceBounds(int minimumX, int minimumZ, int maximumX, int maximumZ) { public SurfaceBounds { diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceCellAdmission.java b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceCellAdmission.java similarity index 78% rename from core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceCellAdmission.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceCellAdmission.java index 7b5144dda..c46eaeaa2 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceCellAdmission.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceCellAdmission.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSample; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSample; public final class SurfaceCellAdmission { private SurfaceCellAdmission() { diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceCenterline.java b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceCenterline.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceCenterline.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceCenterline.java index 1f1db8b4e..7c7e95b8c 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceCenterline.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceCenterline.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; -import art.arcane.iris.engine.hydrology.HydrologyPoint; +import art.arcane.iris.generation.hydrology.HydrologyPoint; import it.unimi.dsi.fastutil.ints.IntArrayList; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceColumn.java b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceColumn.java similarity index 87% rename from core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceColumn.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceColumn.java index fac10c2c1..81f188c7c 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceColumn.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceColumn.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSample; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSample; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceCourseBuilder.java b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceCourseBuilder.java similarity index 91% rename from core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceCourseBuilder.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceCourseBuilder.java index aa9990a63..e395617c1 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceCourseBuilder.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceCourseBuilder.java @@ -1,14 +1,14 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; -import art.arcane.iris.engine.hydrology.HydraulicChannelProfile; -import art.arcane.iris.engine.hydrology.HydraulicSegment; -import art.arcane.iris.engine.hydrology.HydrologyCandidateRejection; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.engine.hydrology.HydrologyGeometrySampler; -import art.arcane.iris.engine.hydrology.HydrologyPlannerSettings; -import art.arcane.iris.engine.hydrology.HydrologyPoint; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSample; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSampler; +import art.arcane.iris.generation.hydrology.HydraulicChannelProfile; +import art.arcane.iris.generation.hydrology.HydraulicSegment; +import art.arcane.iris.generation.hydrology.HydrologyCandidateRejection; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.hydrology.HydrologyGeometrySampler; +import art.arcane.iris.generation.hydrology.HydrologyPlannerSettings; +import art.arcane.iris.generation.hydrology.HydrologyPoint; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSample; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSampler; import java.util.ArrayList; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceCourseResult.java b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceCourseResult.java similarity index 74% rename from core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceCourseResult.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceCourseResult.java index e7b08acf4..7cc4cad0b 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceCourseResult.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceCourseResult.java @@ -1,8 +1,8 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; -import art.arcane.iris.engine.hydrology.HydraulicSegment; -import art.arcane.iris.engine.hydrology.HydrologyCandidateRejection; -import art.arcane.iris.engine.hydrology.HydrologyPoint; +import art.arcane.iris.generation.hydrology.HydraulicSegment; +import art.arcane.iris.generation.hydrology.HydrologyCandidateRejection; +import art.arcane.iris.generation.hydrology.HydrologyPoint; import java.util.List; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceExcavationMetrics.java b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceExcavationMetrics.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceExcavationMetrics.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceExcavationMetrics.java index 2e10b684f..2f23f6a6e 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceExcavationMetrics.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceExcavationMetrics.java @@ -1,12 +1,12 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; -import art.arcane.iris.engine.hydrology.HydraulicSegment; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.HydrologyColumnSample; -import art.arcane.iris.engine.hydrology.HydrologyPoint; -import art.arcane.iris.engine.hydrology.HydrologySurfaceDropRaster; -import art.arcane.iris.engine.hydrology.RiverCourse; -import art.arcane.iris.engine.hydrology.RiverFootprint; +import art.arcane.iris.generation.hydrology.HydraulicSegment; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.HydrologyColumnSample; +import art.arcane.iris.generation.hydrology.HydrologyPoint; +import art.arcane.iris.generation.hydrology.HydrologySurfaceDropRaster; +import art.arcane.iris.generation.hydrology.RiverCourse; +import art.arcane.iris.generation.hydrology.RiverFootprint; import it.unimi.dsi.fastutil.longs.Long2LongOpenHashMap; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; import it.unimi.dsi.fastutil.longs.LongIterator; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceFeatureRefs.java b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceFeatureRefs.java similarity index 85% rename from core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceFeatureRefs.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceFeatureRefs.java index 700eefb97..4aa598dee 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceFeatureRefs.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceFeatureRefs.java @@ -1,9 +1,9 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; -import art.arcane.iris.engine.hydrology.HydraulicSegment; -import art.arcane.iris.engine.hydrology.HydrologyFeatureRef; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.engine.hydrology.HydrologyHash; +import art.arcane.iris.generation.hydrology.HydraulicSegment; +import art.arcane.iris.generation.hydrology.HydrologyFeatureRef; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.hydrology.HydrologyHash; import java.util.HashMap; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceFootprint.java b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceFootprint.java similarity index 83% rename from core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceFootprint.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceFootprint.java index e73ab9415..f3debc60e 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceFootprint.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceFootprint.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; -import art.arcane.iris.engine.hydrology.HydrologyCandidateRejection; +import art.arcane.iris.generation.hydrology.HydrologyCandidateRejection; import java.util.List; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceFootprintCompiler.java b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceFootprintCompiler.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceFootprintCompiler.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceFootprintCompiler.java index 0b0d59fba..1394dff0a 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceFootprintCompiler.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceFootprintCompiler.java @@ -1,22 +1,22 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; -import art.arcane.iris.engine.hydrology.HydraulicChannelProfile; -import art.arcane.iris.engine.hydrology.HydraulicSegment; -import art.arcane.iris.engine.hydrology.HydrologyCandidateRejection; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.HydrologyFeatureRef; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.engine.hydrology.HydrologyGeometrySampler; -import art.arcane.iris.engine.hydrology.HydrologyHash; -import art.arcane.iris.engine.hydrology.HydrologyOceanReceiver; -import art.arcane.iris.engine.hydrology.HydrologyPlannerSettings; -import art.arcane.iris.engine.hydrology.HydrologyPoint; -import art.arcane.iris.engine.hydrology.HydrologySurfaceDropRaster; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSample; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSampler; -import art.arcane.iris.engine.hydrology.RiverCourse; -import art.arcane.iris.engine.hydrology.RiverCourseType; -import art.arcane.iris.engine.hydrology.RiverFootprint; +import art.arcane.iris.generation.hydrology.HydraulicChannelProfile; +import art.arcane.iris.generation.hydrology.HydraulicSegment; +import art.arcane.iris.generation.hydrology.HydrologyCandidateRejection; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.HydrologyFeatureRef; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.hydrology.HydrologyGeometrySampler; +import art.arcane.iris.generation.hydrology.HydrologyHash; +import art.arcane.iris.generation.hydrology.HydrologyOceanReceiver; +import art.arcane.iris.generation.hydrology.HydrologyPlannerSettings; +import art.arcane.iris.generation.hydrology.HydrologyPoint; +import art.arcane.iris.generation.hydrology.HydrologySurfaceDropRaster; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSample; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSampler; +import art.arcane.iris.generation.hydrology.RiverCourse; +import art.arcane.iris.generation.hydrology.RiverCourseType; +import art.arcane.iris.generation.hydrology.RiverFootprint; import it.unimi.dsi.fastutil.ints.IntArrayList; import it.unimi.dsi.fastutil.doubles.DoubleArrayList; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceLayerColumn.java b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceLayerColumn.java similarity index 75% rename from core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceLayerColumn.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceLayerColumn.java index d6a38cbf5..6b87c006c 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceLayerColumn.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceLayerColumn.java @@ -1,7 +1,7 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSample; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSample; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceNoise.java b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceNoise.java similarity index 91% rename from core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceNoise.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceNoise.java index 8803cd855..bd1223284 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceNoise.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceNoise.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; -import art.arcane.iris.engine.hydrology.HydrologyHash; +import art.arcane.iris.generation.hydrology.HydrologyHash; public final class SurfaceNoise { private SurfaceNoise() { diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceRasterContext.java b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceRasterContext.java similarity index 82% rename from core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceRasterContext.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceRasterContext.java index 0187338e2..f0485b7c6 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceRasterContext.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceRasterContext.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; -import art.arcane.iris.engine.hydrology.HydrologySurfaceDropRaster; +import art.arcane.iris.generation.hydrology.HydrologySurfaceDropRaster; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceRole.java b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceRole.java similarity index 53% rename from core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceRole.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceRole.java index 78f6c2ec9..e64eacafd 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceRole.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceRole.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; public enum SurfaceRole { CHANNEL, diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceRunBoundary.java b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceRunBoundary.java similarity index 89% rename from core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceRunBoundary.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceRunBoundary.java index 64a6865d4..315f36d2e 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceRunBoundary.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceRunBoundary.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; -import art.arcane.iris.engine.hydrology.HydrologyPoint; +import art.arcane.iris.generation.hydrology.HydrologyPoint; public record SurfaceRunBoundary(Plane start, Plane end) { public static SurfaceRunBoundary unbounded() { diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceSegmentLabeler.java b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceSegmentLabeler.java similarity index 91% rename from core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceSegmentLabeler.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceSegmentLabeler.java index 2095a5d75..b2ffa3983 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceSegmentLabeler.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceSegmentLabeler.java @@ -1,11 +1,11 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; -import art.arcane.iris.engine.hydrology.HydraulicChannelProfile; -import art.arcane.iris.engine.hydrology.HydraulicSegment; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.engine.hydrology.HydrologyHash; -import art.arcane.iris.engine.hydrology.HydrologyPlannerSettings; -import art.arcane.iris.engine.hydrology.HydrologyPoint; +import art.arcane.iris.generation.hydrology.HydraulicChannelProfile; +import art.arcane.iris.generation.hydrology.HydraulicSegment; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.hydrology.HydrologyHash; +import art.arcane.iris.generation.hydrology.HydrologyPlannerSettings; +import art.arcane.iris.generation.hydrology.HydrologyPoint; import java.util.ArrayList; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceTerminal.java b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceTerminal.java similarity index 80% rename from core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceTerminal.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceTerminal.java index 2925510d9..28d6c46cc 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/SurfaceTerminal.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/SurfaceTerminal.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; public enum SurfaceTerminal { OCEAN_MOUTH, diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/ValleyProfile.java b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/ValleyProfile.java similarity index 86% rename from core/src/main/java/art/arcane/iris/engine/hydrology/surface/ValleyProfile.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/surface/ValleyProfile.java index d2a54eae7..6c07b83fd 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/ValleyProfile.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/ValleyProfile.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; -import art.arcane.iris.engine.hydrology.HydrologyCandidateRejection; +import art.arcane.iris.generation.hydrology.HydrologyCandidateRejection; public record ValleyProfile( int[] head, diff --git a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/ValleyProfileSolver.java b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/ValleyProfileSolver.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/hydrology/surface/ValleyProfileSolver.java rename to core/src/main/java/art/arcane/iris/generation/hydrology/surface/ValleyProfileSolver.java index 06442c962..34a20715d 100644 --- a/core/src/main/java/art/arcane/iris/engine/hydrology/surface/ValleyProfileSolver.java +++ b/core/src/main/java/art/arcane/iris/generation/hydrology/surface/ValleyProfileSolver.java @@ -1,9 +1,9 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; -import art.arcane.iris.engine.hydrology.HydrologyCandidateRejection; -import art.arcane.iris.engine.hydrology.HydrologyPlannerSettings; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSample; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSampler; +import art.arcane.iris.generation.hydrology.HydrologyCandidateRejection; +import art.arcane.iris.generation.hydrology.HydrologyPlannerSettings; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSample; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSampler; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/image/CompiledIrisImageMap.java b/core/src/main/java/art/arcane/iris/generation/image/CompiledIrisImageMap.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/image/CompiledIrisImageMap.java rename to core/src/main/java/art/arcane/iris/generation/image/CompiledIrisImageMap.java index dfdeb8164..6e901b21a 100644 --- a/core/src/main/java/art/arcane/iris/engine/image/CompiledIrisImageMap.java +++ b/core/src/main/java/art/arcane/iris/generation/image/CompiledIrisImageMap.java @@ -1,10 +1,5 @@ -package art.arcane.iris.engine.image; +package art.arcane.iris.generation.image; -import art.arcane.iris.engine.object.IrisImage; -import art.arcane.iris.engine.object.IrisImageMap; -import art.arcane.iris.engine.object.IrisImageMapOutOfBounds; -import art.arcane.iris.engine.object.IrisImageMapSampling; -import art.arcane.iris.engine.object.IrisImageMapType; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisImage.java b/core/src/main/java/art/arcane/iris/generation/image/IrisImage.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/object/IrisImage.java rename to core/src/main/java/art/arcane/iris/generation/image/IrisImage.java index c4c76829c..183a9a030 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisImage.java +++ b/core/src/main/java/art/arcane/iris/generation/image/IrisImage.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.image; -import art.arcane.iris.core.loader.IrisRegistrant; +import art.arcane.iris.pack.loading.IrisRegistrant; import java.awt.image.ColorModel; import java.awt.image.BufferedImage; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisImageColorMode.java b/core/src/main/java/art/arcane/iris/generation/image/IrisImageColorMode.java similarity index 70% rename from core/src/main/java/art/arcane/iris/engine/object/IrisImageColorMode.java rename to core/src/main/java/art/arcane/iris/generation/image/IrisImageColorMode.java index f588e8fb5..057d17e22 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisImageColorMode.java +++ b/core/src/main/java/art/arcane/iris/generation/image/IrisImageColorMode.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.image; public enum IrisImageColorMode { GRAYSCALE, diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisImageMap.java b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMap.java similarity index 50% rename from core/src/main/java/art/arcane/iris/engine/object/IrisImageMap.java rename to core/src/main/java/art/arcane/iris/generation/image/IrisImageMap.java index 2c84311e0..5a6a38556 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisImageMap.java +++ b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMap.java @@ -1,10 +1,10 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.image; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListResource; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; import art.arcane.volmlib.util.collection.KMap; import lombok.Data; import lombok.EqualsAndHashCode; @@ -13,7 +13,7 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor -@Desc("A reusable typed image-map definition") +@Description("A reusable typed image-map definition") @Data @EqualsAndHashCode(callSuper = false) public class IrisImageMap extends IrisRegistrant { @@ -21,91 +21,91 @@ public class IrisImageMap extends IrisRegistrant { public static final double MAXIMUM_COLOR_TOLERANCE = 441.672956D; @RegistryListResource(IrisImage.class) - @Desc("PNG source under images/, without the file extension") + @Description("PNG source under images/, without the file extension") private String source = ""; - @Desc("How source pixels are decoded") + @Description("How source pixels are decoded") private IrisImageMapType type = IrisImageMapType.GRAYSCALE_HEIGHT; @MinNumber(MINIMUM_SCALE) - @Desc("Minecraft blocks represented by one source pixel") + @Description("Minecraft blocks represented by one source pixel") private double blocksPerPixel = 1D; - @Desc("Minecraft X/Z coordinate that maps to sourceOrigin") + @Description("Minecraft X/Z coordinate that maps to sourceOrigin") private IrisImageMapOrigin origin = new IrisImageMapOrigin(); - @Desc("Source pixel X/Y coordinate placed at origin") + @Description("Source pixel X/Y coordinate placed at origin") private IrisImageMapOrigin sourceOrigin = new IrisImageMapOrigin(); - @Desc("Clockwise quarter-turn rotation around sourceOrigin") + @Description("Clockwise quarter-turn rotation around sourceOrigin") private IrisImageMapRotation rotation = IrisImageMapRotation.DEG_0; - @Desc("Mirror image X around sourceOrigin before rotation") + @Description("Mirror image X around sourceOrigin before rotation") private boolean mirrorX = false; - @Desc("Mirror image Y around sourceOrigin before rotation") + @Description("Mirror image Y around sourceOrigin before rotation") private boolean mirrorZ = false; - @Desc("Numeric sampling filter; exact color and binary maps require NEAREST") + @Description("Numeric sampling filter; exact color and binary maps require NEAREST") private IrisImageMapSampling sampling = IrisImageMapSampling.NEAREST; - @Desc("Behavior outside the source rectangle") + @Description("Behavior outside the source rectangle") private IrisImageMapOutOfBounds outOfBounds = IrisImageMapOutOfBounds.FALLBACK; @MinNumber(0) @MaxNumber(1) - @Desc("Normalized scalar used by FALLBACK coordinates") + @Description("Normalized scalar used by FALLBACK coordinates") private double fallbackValue = 0D; - @Desc("Legend target used by FALLBACK or unknown color-map pixels") + @Description("Legend target used by FALLBACK or unknown color-map pixels") private String fallbackTarget = ""; - @Desc("How alpha affects decoded data") + @Description("How alpha affects decoded data") private IrisImageMapAlpha alpha = IrisImageMapAlpha.IGNORE; - @Desc("Minimum absolute world Y for height maps") + @Description("Minimum absolute world Y for height maps") private double minimumHeight = -64D; - @Desc("Maximum absolute world Y for height maps") + @Description("Maximum absolute world Y for height maps") private double maximumHeight = 320D; - @Desc("Vertical block offset applied after height decoding") + @Description("Vertical block offset applied after height decoding") private double verticalOffset = 0D; - @Desc("Clamp decoded height to minimumHeight and maximumHeight after offset") + @Description("Clamp decoded height to minimumHeight and maximumHeight after offset") private boolean clamp = true; - @Desc("Invert decoded scalar values before curve evaluation") + @Description("Invert decoded scalar values before curve evaluation") private boolean inverted = false; @MinNumber(MINIMUM_SCALE) - @Desc("Power curve applied after optional inversion; 1 is linear") + @Description("Power curve applied after optional inversion; 1 is linear") private double curveExponent = 1D; @MinNumber(0) @MaxNumber(32) - @Desc("Load-time box smoothing radius in source pixels") + @Description("Load-time box smoothing radius in source pixels") private int smoothingRadius = 0; @MinNumber(0) @MaxNumber(1) - @Desc("Binary mask threshold") + @Description("Binary mask threshold") private double threshold = 0.5D; @MinNumber(0) @MaxNumber(1) - @Desc("Mask transition width above threshold") + @Description("Mask transition width above threshold") private double falloff = 0D; @MinNumber(0) @MaxNumber(MAXIMUM_COLOR_TOLERANCE) - @Desc("Euclidean raw sRGB distance accepted by tolerant color matching; zero is exact") + @Description("Euclidean raw sRGB distance accepted by tolerant color matching; zero is exact") private double colorTolerance = 0D; - @Desc("How colors absent from the legend are handled") + @Description("How colors absent from the legend are handled") private IrisImageMapUnknownColor unknownColor = IrisImageMapUnknownColor.ERROR; - @Desc("Exact #RRGGBB colors mapped to Iris resource or Minecraft block keys") + @Description("Exact #RRGGBB colors mapped to Iris resource or Minecraft block keys") private KMap colors = new KMap<>(); @Override diff --git a/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapAlpha.java b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapAlpha.java new file mode 100644 index 000000000..beed21370 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapAlpha.java @@ -0,0 +1,11 @@ +package art.arcane.iris.generation.image; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("How alpha participates in decoded data") +public enum IrisImageMapAlpha { + IGNORE, + MASK, + TRANSPARENT_IS_FALLBACK, + ERROR +} diff --git a/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapApplication.java b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapApplication.java new file mode 100644 index 000000000..a892c5548 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapApplication.java @@ -0,0 +1,13 @@ +package art.arcane.iris.generation.image; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("The generation input controlled by an image map") +public enum IrisImageMapApplication { + TERRAIN_HEIGHT, + BIOME, + REGION, + SURFACE_BLOCK, + MASK, + CUSTOM +} diff --git a/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapBinding.java b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapBinding.java new file mode 100644 index 000000000..ea7aeb753 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapBinding.java @@ -0,0 +1,29 @@ +package art.arcane.iris.generation.image; + +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; +import art.arcane.volmlib.util.collection.KList; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@Description("Binds a reusable image map to one dimension generation role") +@Data +public class IrisImageMapBinding { + @Description("Unique name used by Studio previews and custom map lookups") + private String key = ""; + + @RegistryListResource(IrisImageMap.class) + @Description("Image-map resource key under image-maps/") + private String map = ""; + + @Description("Generation input controlled by this binding") + private IrisImageMapApplication application = IrisImageMapApplication.CUSTOM; + + @ArrayType(type = IrisImageMapMask.class) + @Description("Named mask maps composed in declaration order") + private KList masks = new KList<>(); +} diff --git a/core/src/main/java/art/arcane/iris/engine/image/IrisImageMapCompiler.java b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapCompiler.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/image/IrisImageMapCompiler.java rename to core/src/main/java/art/arcane/iris/generation/image/IrisImageMapCompiler.java index a6ae02b07..26d984aff 100644 --- a/core/src/main/java/art/arcane/iris/engine/image/IrisImageMapCompiler.java +++ b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapCompiler.java @@ -1,14 +1,5 @@ -package art.arcane.iris.engine.image; +package art.arcane.iris.generation.image; -import art.arcane.iris.engine.object.IrisImage; -import art.arcane.iris.engine.object.IrisImageColorMode; -import art.arcane.iris.engine.object.IrisImageMap; -import art.arcane.iris.engine.object.IrisImageMapAlpha; -import art.arcane.iris.engine.object.IrisImageMapOrigin; -import art.arcane.iris.engine.object.IrisImageMapOutOfBounds; -import art.arcane.iris.engine.object.IrisImageMapSampling; -import art.arcane.iris.engine.object.IrisImageMapType; -import art.arcane.iris.engine.object.IrisImageMapUnknownColor; import art.arcane.volmlib.util.collection.KMap; import java.nio.charset.StandardCharsets; diff --git a/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapMask.java b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapMask.java new file mode 100644 index 000000000..77eff77dc --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapMask.java @@ -0,0 +1,33 @@ +package art.arcane.iris.generation.image; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@Description("A composable reference to a named MASK image map") +@Data +public class IrisImageMapMask { + @Description("The key of a named imageMaps entry whose application is MASK") + private String map = ""; + + @Description("How this mask combines with masks before it") + private IrisImageMapMaskOperation operation = IrisImageMapMaskOperation.MULTIPLY; + + @Description("Invert this mask before combining it") + private boolean inverted = false; + + @MinNumber(0) + @MaxNumber(1) + @Description("Values below this threshold become zero") + private double threshold = 0D; + + @MinNumber(0) + @MaxNumber(1) + @Description("Soft transition width above threshold; zero is a hard edge") + private double falloff = 0D; +} diff --git a/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapMaskOperation.java b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapMaskOperation.java new file mode 100644 index 000000000..8805a3be6 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapMaskOperation.java @@ -0,0 +1,12 @@ +package art.arcane.iris.generation.image; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("How a referenced mask combines with masks before it") +public enum IrisImageMapMaskOperation { + MULTIPLY, + MINIMUM, + MAXIMUM, + ADD, + SUBTRACT +} diff --git a/core/src/main/java/art/arcane/iris/engine/image/IrisImageMapMaskSampler.java b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapMaskSampler.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/image/IrisImageMapMaskSampler.java rename to core/src/main/java/art/arcane/iris/generation/image/IrisImageMapMaskSampler.java index 7fa899106..972368749 100644 --- a/core/src/main/java/art/arcane/iris/engine/image/IrisImageMapMaskSampler.java +++ b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapMaskSampler.java @@ -1,7 +1,5 @@ -package art.arcane.iris.engine.image; +package art.arcane.iris.generation.image; -import art.arcane.iris.engine.object.IrisImageMapMask; -import art.arcane.iris.engine.object.IrisImageMapMaskOperation; import java.util.ArrayList; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapOrigin.java b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapOrigin.java new file mode 100644 index 000000000..542f4a224 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapOrigin.java @@ -0,0 +1,23 @@ +package art.arcane.iris.generation.image; + +import art.arcane.volmlib.util.documentation.Description; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@Description("A two-dimensional image-map coordinate") +@Data +public class IrisImageMapOrigin { + @Description("X coordinate in world blocks for origin, or source pixels for sourceOrigin") + private double x = 0D; + + @Description("Z coordinate in world blocks for origin, or source image Y pixels for sourceOrigin") + private double z = 0D; + + public IrisImageMapOrigin(double x, double z) { + this.x = x; + this.z = z; + } +} diff --git a/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapOutOfBounds.java b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapOutOfBounds.java new file mode 100644 index 000000000..59925878b --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapOutOfBounds.java @@ -0,0 +1,12 @@ +package art.arcane.iris.generation.image; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("How coordinates outside an image are resolved") +public enum IrisImageMapOutOfBounds { + FALLBACK, + CLAMP, + REPEAT, + MIRROR, + ERROR +} diff --git a/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapRotation.java b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapRotation.java new file mode 100644 index 000000000..5c0a8db92 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapRotation.java @@ -0,0 +1,11 @@ +package art.arcane.iris.generation.image; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("Clockwise image-map rotation around sourceOrigin") +public enum IrisImageMapRotation { + DEG_0, + DEG_90, + DEG_180, + DEG_270 +} diff --git a/core/src/main/java/art/arcane/iris/engine/image/IrisImageMapRuntime.java b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapRuntime.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/image/IrisImageMapRuntime.java rename to core/src/main/java/art/arcane/iris/generation/image/IrisImageMapRuntime.java index 9eb98cc15..cb3278ccf 100644 --- a/core/src/main/java/art/arcane/iris/engine/image/IrisImageMapRuntime.java +++ b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapRuntime.java @@ -1,19 +1,13 @@ -package art.arcane.iris.engine.image; +package art.arcane.iris.generation.image; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisImage; -import art.arcane.iris.engine.object.IrisImageMap; -import art.arcane.iris.engine.object.IrisImageMapApplication; -import art.arcane.iris.engine.object.IrisImageMapBinding; -import art.arcane.iris.engine.object.IrisImageMapMask; -import art.arcane.iris.engine.object.IrisImageMapType; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.InferredType; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.generation.terrain.InferredType; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; +import art.arcane.iris.generation.block.B; import java.util.ArrayList; import java.util.EnumMap; diff --git a/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapSampling.java b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapSampling.java new file mode 100644 index 000000000..04074792d --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapSampling.java @@ -0,0 +1,10 @@ +package art.arcane.iris.generation.image; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("The filter used between source pixels") +public enum IrisImageMapSampling { + NEAREST, + BILINEAR, + BICUBIC +} diff --git a/core/src/main/java/art/arcane/iris/engine/image/IrisImageMapSourceMetadata.java b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapSourceMetadata.java similarity index 78% rename from core/src/main/java/art/arcane/iris/engine/image/IrisImageMapSourceMetadata.java rename to core/src/main/java/art/arcane/iris/generation/image/IrisImageMapSourceMetadata.java index 2f64e2a02..0bc69cb2d 100644 --- a/core/src/main/java/art/arcane/iris/engine/image/IrisImageMapSourceMetadata.java +++ b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapSourceMetadata.java @@ -1,6 +1,5 @@ -package art.arcane.iris.engine.image; +package art.arcane.iris.generation.image; -import art.arcane.iris.engine.object.IrisImageColorMode; public record IrisImageMapSourceMetadata( String format, diff --git a/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapType.java b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapType.java new file mode 100644 index 000000000..1a3006a3e --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapType.java @@ -0,0 +1,13 @@ +package art.arcane.iris.generation.image; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("How Iris decodes each source pixel") +public enum IrisImageMapType { + GRAYSCALE_HEIGHT, + RGB_HEIGHT, + COLOR_MAP, + BINARY_MASK, + GRAYSCALE_MASK, + ALPHA_MASK +} diff --git a/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapUnknownColor.java b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapUnknownColor.java new file mode 100644 index 000000000..b755e24eb --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapUnknownColor.java @@ -0,0 +1,10 @@ +package art.arcane.iris.generation.image; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("How a color absent from a color-map legend is handled") +public enum IrisImageMapUnknownColor { + ERROR, + FALLBACK, + IGNORE +} diff --git a/core/src/main/java/art/arcane/iris/engine/image/IrisImageMapValidationException.java b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapValidationException.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/image/IrisImageMapValidationException.java rename to core/src/main/java/art/arcane/iris/generation/image/IrisImageMapValidationException.java index 9c267b4a9..1b6bfac82 100644 --- a/core/src/main/java/art/arcane/iris/engine/image/IrisImageMapValidationException.java +++ b/core/src/main/java/art/arcane/iris/generation/image/IrisImageMapValidationException.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.image; +package art.arcane.iris.generation.image; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/HintedLocator.java b/core/src/main/java/art/arcane/iris/generation/locator/HintedLocator.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/framework/HintedLocator.java rename to core/src/main/java/art/arcane/iris/generation/locator/HintedLocator.java index 0a1c88bda..e9d3ef308 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/HintedLocator.java +++ b/core/src/main/java/art/arcane/iris/generation/locator/HintedLocator.java @@ -16,19 +16,23 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.locator; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.engine.DimensionStackContext; -import art.arcane.iris.engine.DimensionTerrainContext; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisObjectPlacement; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.util.common.parallel.BurstExecutor; -import art.arcane.iris.util.common.parallel.MultiBurst; -import art.arcane.iris.util.project.context.IrisContext; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.GenerationSessionLease; +import art.arcane.iris.generation.runtime.WrongEngineBroException; + +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.generation.runtime.DimensionStackContext; +import art.arcane.iris.generation.runtime.DimensionTerrainContext; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.generation.concurrent.BurstExecutor; +import art.arcane.iris.generation.concurrent.MultiBurst; +import art.arcane.iris.generation.context.IrisContext; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KSet; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/HistoryAwareLocator.java b/core/src/main/java/art/arcane/iris/generation/locator/HistoryAwareLocator.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/framework/HistoryAwareLocator.java rename to core/src/main/java/art/arcane/iris/generation/locator/HistoryAwareLocator.java index ff7001800..dac917498 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/HistoryAwareLocator.java +++ b/core/src/main/java/art/arcane/iris/generation/locator/HistoryAwareLocator.java @@ -1,10 +1,13 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.locator; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.history.ChunkGenerationSemantics; -import art.arcane.iris.engine.history.GenerationHistory; -import art.arcane.iris.engine.history.GenerationHistoryRuntimeRouter; -import art.arcane.iris.engine.history.GenerationSemanticIndex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.placement.IrisStructureLocator; + +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.world.history.ChunkGenerationSemantics; +import art.arcane.iris.world.history.GenerationHistory; +import art.arcane.iris.world.history.GenerationHistoryRuntimeRouter; +import art.arcane.iris.world.history.GenerationSemanticIndex; import art.arcane.volmlib.util.math.Position2; import java.io.IOException; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/Locator.java b/core/src/main/java/art/arcane/iris/generation/locator/Locator.java similarity index 89% rename from core/src/main/java/art/arcane/iris/engine/framework/Locator.java rename to core/src/main/java/art/arcane/iris/generation/locator/Locator.java index 1bd549ee5..044b35c5e 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/Locator.java +++ b/core/src/main/java/art/arcane/iris/generation/locator/Locator.java @@ -16,17 +16,23 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.locator; -import art.arcane.iris.core.nms.container.BlockPos; -import art.arcane.iris.core.nms.container.Pair; -import art.arcane.iris.engine.hydrology.runtime.IrisHydrologyRuntime; -import art.arcane.iris.engine.history.GenerationSemanticIndex; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.util.project.context.IrisContext; -import art.arcane.iris.util.project.context.ChunkContext; +import art.arcane.iris.world.history.ChunkGenerationSemantics; + +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.GenerationSessionException; +import art.arcane.iris.generation.runtime.GenerationSessionLease; +import art.arcane.iris.generation.runtime.WrongEngineBroException; +import art.arcane.iris.structure.placement.IrisStructureLocator; + +import art.arcane.iris.generation.hydrology.runtime.IrisHydrologyRuntime; +import art.arcane.iris.world.history.GenerationSemanticIndex; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.generation.context.IrisContext; +import art.arcane.iris.generation.context.ChunkContext; import art.arcane.volmlib.util.math.Position2; import art.arcane.volmlib.util.matter.MatterCavern; @@ -96,7 +102,7 @@ public interface Locator { && hydrology.hasAcceptedSurfaceBiomeInChunk(loadKey, chunk.getX(), chunk.getZ()); } - static Locator structure(String key) { + static Locator structure(String key) { return new HistoryAwareLocator<>( GenerationSemanticIndex.SemanticKind.STRUCTURE, key, @@ -104,10 +110,10 @@ public interface Locator { ); } - static Locator poi(String type) { + static Locator poi(String type) { return (e, c) -> { - Set> pos = e.getPOIsAt(c.getX(), c.getZ()); - return pos.stream().anyMatch(p -> p.getA().equals(type)); + Set pos = e.getPOIsAt(c.getX(), c.getZ()); + return pos.stream().anyMatch(p -> p.key().equals(type)); }; } diff --git a/core/src/main/java/art/arcane/iris/engine/framework/LocatorCanceller.java b/core/src/main/java/art/arcane/iris/generation/locator/LocatorCanceller.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/framework/LocatorCanceller.java rename to core/src/main/java/art/arcane/iris/generation/locator/LocatorCanceller.java index 7525db96d..89df546f1 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/LocatorCanceller.java +++ b/core/src/main/java/art/arcane/iris/generation/locator/LocatorCanceller.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.locator; import java.util.Objects; import java.util.concurrent.CompletableFuture; diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/components/CarveOrphanSweep.java b/core/src/main/java/art/arcane/iris/generation/mantle/CarveOrphanSweep.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/mantle/components/CarveOrphanSweep.java rename to core/src/main/java/art/arcane/iris/generation/mantle/CarveOrphanSweep.java index e6d8addad..96737d580 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/components/CarveOrphanSweep.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/CarveOrphanSweep.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.math.PowerOfTwoCoordinates; diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/components/CaveCarveScratch.java b/core/src/main/java/art/arcane/iris/generation/mantle/CaveCarveScratch.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/mantle/components/CaveCarveScratch.java rename to core/src/main/java/art/arcane/iris/generation/mantle/CaveCarveScratch.java index 5be04aff5..c081b26df 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/components/CaveCarveScratch.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/CaveCarveScratch.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; import art.arcane.volmlib.util.matter.Matter; import art.arcane.volmlib.util.matter.MatterCavern; diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/components/CaveFieldModuleState.java b/core/src/main/java/art/arcane/iris/generation/mantle/CaveFieldModuleState.java similarity index 91% rename from core/src/main/java/art/arcane/iris/engine/mantle/components/CaveFieldModuleState.java rename to core/src/main/java/art/arcane/iris/generation/mantle/CaveFieldModuleState.java index 295edc3e1..66e60be24 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/components/CaveFieldModuleState.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/CaveFieldModuleState.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.engine.object.IrisCaveFieldModule; -import art.arcane.iris.engine.object.IrisRange; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.iris.generation.cave.IrisCaveFieldModule; +import art.arcane.iris.pack.value.IrisRange; +import art.arcane.volmlib.util.noise.CNG; final class CaveFieldModuleState { final CNG density; diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/components/CaveFluidSupportPlan.java b/core/src/main/java/art/arcane/iris/generation/mantle/CaveFluidSupportPlan.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/mantle/components/CaveFluidSupportPlan.java rename to core/src/main/java/art/arcane/iris/generation/mantle/CaveFluidSupportPlan.java index ca98541ed..d02ecb314 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/components/CaveFluidSupportPlan.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/CaveFluidSupportPlan.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.math.PowerOfTwoCoordinates; diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/components/CaveObjectPlacementTransaction.java b/core/src/main/java/art/arcane/iris/generation/mantle/CaveObjectPlacementTransaction.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/mantle/components/CaveObjectPlacementTransaction.java rename to core/src/main/java/art/arcane/iris/generation/mantle/CaveObjectPlacementTransaction.java index a1b1051a7..bafde6ba8 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/components/CaveObjectPlacementTransaction.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/CaveObjectPlacementTransaction.java @@ -16,17 +16,17 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.data.cache.Cache; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.object.IObjectPlacer; -import art.arcane.iris.engine.object.TileData; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.cache.Cache; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.structure.object.IObjectPlacer; +import art.arcane.iris.generation.block.TileData; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; +import art.arcane.iris.generation.block.B; import art.arcane.volmlib.util.collection.KList; import it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap; import org.jetbrains.annotations.Nullable; diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/ComponentFlag.java b/core/src/main/java/art/arcane/iris/generation/mantle/ComponentFlag.java similarity index 88% rename from core/src/main/java/art/arcane/iris/engine/mantle/ComponentFlag.java rename to core/src/main/java/art/arcane/iris/generation/mantle/ComponentFlag.java index 1d29dfd3e..ce6ed2e4c 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/ComponentFlag.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/ComponentFlag.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.mantle; +package art.arcane.iris.generation.mantle; import art.arcane.volmlib.util.mantle.flag.ReservedFlag; diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/EngineMantle.java b/core/src/main/java/art/arcane/iris/generation/mantle/EngineMantle.java similarity index 92% rename from core/src/main/java/art/arcane/iris/engine/mantle/EngineMantle.java rename to core/src/main/java/art/arcane/iris/generation/mantle/EngineMantle.java index ff5aa8fe5..95d84bab3 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/EngineMantle.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/EngineMantle.java @@ -16,31 +16,30 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.mantle; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.history.TerrainBoundarySignature; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.world.history.TerrainBoundarySignature; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.engine.DimensionStackContext; -import art.arcane.iris.engine.DimensionStackLayout; -import art.arcane.iris.engine.UpperDimensionContext; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineTarget; -import art.arcane.iris.engine.framework.TreeBlockMaterial; -import art.arcane.iris.engine.mantle.components.MantleObjectComponent; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveStorage; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.util.common.data.BoundBlockState; -import art.arcane.iris.util.project.matter.PreObjectMatterCell; +import art.arcane.iris.generation.runtime.DimensionStackContext; +import art.arcane.iris.generation.runtime.DimensionStackLayout; +import art.arcane.iris.generation.runtime.UpperDimensionContext; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineTarget; +import art.arcane.iris.generation.decoration.tree.TreeBlockMaterial; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveStorage; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.generation.block.BoundBlockState; +import art.arcane.iris.world.storage.matter.PreObjectMatterCell; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.documentation.BlockCoordinates; import art.arcane.volmlib.util.documentation.ChunkCoordinates; -import art.arcane.iris.util.project.hunk.Hunk; -import art.arcane.iris.util.project.context.ChunkContext; +import art.arcane.volmlib.util.hunk.Hunk; +import art.arcane.iris.generation.context.ChunkContext; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.mantle.flag.MantleFlag; @@ -49,7 +48,7 @@ import art.arcane.volmlib.util.matter.MatterFluidBody; import art.arcane.volmlib.util.matter.MatterMarker; import art.arcane.volmlib.util.matter.Matter; import art.arcane.volmlib.util.matter.slices.UpdateMatter; -import art.arcane.iris.util.common.parallel.MultiBurst; +import art.arcane.iris.generation.concurrent.MultiBurst; import art.arcane.iris.spi.PlatformBlockState; import org.jetbrains.annotations.UnmodifiableView; diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/components/FloatingIslandSampleResolver.java b/core/src/main/java/art/arcane/iris/generation/mantle/FloatingIslandSampleResolver.java similarity index 84% rename from core/src/main/java/art/arcane/iris/engine/mantle/components/FloatingIslandSampleResolver.java rename to core/src/main/java/art/arcane/iris/generation/mantle/FloatingIslandSampleResolver.java index db4cbdbc6..536a70ae3 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/components/FloatingIslandSampleResolver.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/FloatingIslandSampleResolver.java @@ -16,16 +16,15 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.data.cache.Cache; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.modifier.IrisFloatingChildBiomeModifier; -import art.arcane.iris.engine.object.FloatingIslandBoundarySampler; -import art.arcane.iris.engine.object.FloatingIslandSample; -import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.cache.Cache; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.stage.IrisFloatingChildBiomeModifier; +import art.arcane.iris.generation.biome.FloatingIslandBoundarySampler; +import art.arcane.iris.generation.biome.FloatingIslandSample; +import art.arcane.iris.generation.biome.IrisBiome; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; import it.unimi.dsi.fastutil.longs.LongOpenHashSet; import org.jetbrains.annotations.Nullable; diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/components/FloatingObjectPlacementTransaction.java b/core/src/main/java/art/arcane/iris/generation/mantle/FloatingObjectPlacementTransaction.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/mantle/components/FloatingObjectPlacementTransaction.java rename to core/src/main/java/art/arcane/iris/generation/mantle/FloatingObjectPlacementTransaction.java index 38b84eb4c..b1540b9f3 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/components/FloatingObjectPlacementTransaction.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/FloatingObjectPlacementTransaction.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.object.IObjectPlacer; -import art.arcane.iris.engine.object.TileData; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.structure.object.IObjectPlacer; +import art.arcane.iris.generation.block.TileData; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; +import art.arcane.iris.generation.block.B; import art.arcane.volmlib.util.collection.KList; import org.jetbrains.annotations.Nullable; diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/components/GoldenDebugObjectPlacer.java b/core/src/main/java/art/arcane/iris/generation/mantle/GoldenDebugObjectPlacer.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/mantle/components/GoldenDebugObjectPlacer.java rename to core/src/main/java/art/arcane/iris/generation/mantle/GoldenDebugObjectPlacer.java index 0361961c8..cd513bec0 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/components/GoldenDebugObjectPlacer.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/GoldenDebugObjectPlacer.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IObjectPlacer; -import art.arcane.iris.engine.object.TileData; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.object.IObjectPlacer; +import art.arcane.iris.generation.block.TileData; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.PlatformBlockState; diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/components/IrisCaveCarver3D.java b/core/src/main/java/art/arcane/iris/generation/mantle/IrisCaveCarver3D.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/mantle/components/IrisCaveCarver3D.java rename to core/src/main/java/art/arcane/iris/generation/mantle/IrisCaveCarver3D.java index b3391898a..1cf0218c3 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/components/IrisCaveCarver3D.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/IrisCaveCarver3D.java @@ -16,17 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.mantle.MantleWriter; -import art.arcane.iris.engine.object.IrisCaveFieldModule; -import art.arcane.iris.engine.object.IrisCaveProfile; -import art.arcane.iris.engine.object.IrisRange; -import art.arcane.iris.engine.object.IrisGeneratorStyle; -import art.arcane.iris.engine.object.IrisStyledRange; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.cave.IrisCaveFieldModule; +import art.arcane.iris.generation.cave.IrisCaveProfile; +import art.arcane.iris.pack.value.IrisRange; +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.generation.noise.IrisStyledRange; +import art.arcane.volmlib.util.noise.CNG; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.math.M; import art.arcane.volmlib.util.math.PowerOfTwoCoordinates; diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/IrisMantleComponent.java b/core/src/main/java/art/arcane/iris/generation/mantle/IrisMantleComponent.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/mantle/IrisMantleComponent.java rename to core/src/main/java/art/arcane/iris/generation/mantle/IrisMantleComponent.java index 67af4d505..d736ae62b 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/IrisMantleComponent.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/IrisMantleComponent.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.mantle; +package art.arcane.iris.generation.mantle; import art.arcane.volmlib.util.mantle.flag.MantleFlag; import lombok.Data; diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/components/IrisStructureComponent.java b/core/src/main/java/art/arcane/iris/generation/mantle/IrisStructureComponent.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/mantle/components/IrisStructureComponent.java rename to core/src/main/java/art/arcane/iris/generation/mantle/IrisStructureComponent.java index aa345c50c..342dd804c 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/components/IrisStructureComponent.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/IrisStructureComponent.java @@ -16,42 +16,38 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.data.cache.Cache; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.IrisStructureLocator; -import art.arcane.iris.engine.framework.PlacedStructurePiece; -import art.arcane.iris.engine.framework.StructurePlacementScope; -import art.arcane.iris.engine.framework.StructurePlacementMarker; -import art.arcane.iris.engine.framework.TreeBlockMaterial; -import art.arcane.iris.engine.mantle.ComponentFlag; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.mantle.IrisMantleComponent; -import art.arcane.iris.engine.mantle.MantleWriter; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisMaterialPalette; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisObjectPlacement; -import art.arcane.iris.engine.object.ObjectPlaceMode; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisStructure; -import art.arcane.iris.engine.object.IrisStructureCarveShape; -import art.arcane.iris.engine.object.IrisStructurePlacement; -import art.arcane.iris.engine.object.IrisStructureStiltSettings; -import art.arcane.iris.engine.object.IrisStructureTerrain; -import art.arcane.iris.engine.object.IrisStructureTerrainMode; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.cache.Cache; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.structure.placement.IrisStructureLocator; +import art.arcane.iris.structure.placement.PlacedStructurePiece; +import art.arcane.iris.structure.placement.StructurePlacementScope; +import art.arcane.iris.structure.placement.StructurePlacementMarker; +import art.arcane.iris.generation.decoration.tree.TreeBlockMaterial; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.structure.object.ObjectPlaceMode; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.structure.placement.IrisStructure; +import art.arcane.iris.structure.placement.IrisStructureCarveShape; +import art.arcane.iris.structure.placement.IrisStructurePlacement; +import art.arcane.iris.structure.placement.IrisStructureStiltSettings; +import art.arcane.iris.structure.placement.IrisStructureTerrain; +import art.arcane.iris.structure.placement.IrisStructureTerrainMode; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; -import art.arcane.iris.util.common.math.IrisBlockVector; -import art.arcane.iris.util.project.matter.TileWrapper; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.iris.generation.block.B; +import art.arcane.iris.generation.geometry.IrisBlockVector; +import art.arcane.iris.world.storage.matter.TileWrapper; +import art.arcane.volmlib.util.noise.CNG; import art.arcane.volmlib.util.collection.KList; -import art.arcane.iris.util.project.context.ChunkContext; +import art.arcane.iris.generation.context.ChunkContext; import art.arcane.volmlib.util.documentation.ChunkCoordinates; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.matter.Matter; diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/components/IslandObjectPlacer.java b/core/src/main/java/art/arcane/iris/generation/mantle/IslandObjectPlacer.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/mantle/components/IslandObjectPlacer.java rename to core/src/main/java/art/arcane/iris/generation/mantle/IslandObjectPlacer.java index 8985f7dea..7fc5113a6 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/components/IslandObjectPlacer.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/IslandObjectPlacer.java @@ -16,15 +16,14 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.mantle.MantleWriter; -import art.arcane.iris.engine.object.FloatingIslandSample; -import art.arcane.iris.engine.object.IObjectPlacer; -import art.arcane.iris.engine.object.IrisFloatingChildBiomes; -import art.arcane.iris.engine.object.TileData; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.biome.FloatingIslandSample; +import art.arcane.iris.structure.object.IObjectPlacer; +import art.arcane.iris.generation.biome.IrisFloatingChildBiomes; +import art.arcane.iris.generation.block.TileData; import art.arcane.iris.spi.PlatformBlockState; import org.jetbrains.annotations.Nullable; diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/components/MantleCarvingComponent.java b/core/src/main/java/art/arcane/iris/generation/mantle/MantleCarvingComponent.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/mantle/components/MantleCarvingComponent.java rename to core/src/main/java/art/arcane/iris/generation/mantle/MantleCarvingComponent.java index 2d2416d88..de0d25939 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/components/MantleCarvingComponent.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/MantleCarvingComponent.java @@ -16,28 +16,23 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.UpperDimensionContext; -import art.arcane.iris.engine.mantle.MatterGenerationPhase; -import art.arcane.iris.engine.mantle.ComponentFlag; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.mantle.IrisMantleComponent; -import art.arcane.iris.engine.mantle.MantleWriter; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisCaveProfile; -import art.arcane.iris.engine.object.IrisDimensionCarvingEntry; -import art.arcane.iris.engine.object.IrisDimensionCarvingResolver; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisRange; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.UpperDimensionContext; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.cave.IrisCaveProfile; +import art.arcane.iris.generation.terrain.IrisDimensionCarvingEntry; +import art.arcane.iris.generation.terrain.IrisDimensionCarvingResolver; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.pack.value.IrisRange; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.project.stream.ProceduralStream; -import art.arcane.iris.util.project.stream.utility.ChunkFillableDoubleStream2D; -import art.arcane.iris.util.simd.SimdSupport; +import art.arcane.iris.generation.block.B; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.volmlib.util.stream.ProceduralStream; +import art.arcane.iris.generation.stream.ChunkFillableDoubleStream2D; +import art.arcane.iris.generation.simd.SimdSupport; import art.arcane.volmlib.util.documentation.ChunkCoordinates; import art.arcane.volmlib.util.mantle.flag.ReservedFlag; import art.arcane.volmlib.util.math.PowerOfTwoCoordinates; diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/MantleComponent.java b/core/src/main/java/art/arcane/iris/generation/mantle/MantleComponent.java similarity index 89% rename from core/src/main/java/art/arcane/iris/engine/mantle/MantleComponent.java rename to core/src/main/java/art/arcane/iris/generation/mantle/MantleComponent.java index ecb5537bd..481deb029 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/MantleComponent.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/MantleComponent.java @@ -16,17 +16,17 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.mantle; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.util.project.context.ChunkContext; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.context.ChunkContext; import art.arcane.volmlib.util.documentation.ChunkCoordinates; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.mantle.flag.MantleFlag; import art.arcane.volmlib.util.matter.Matter; -import art.arcane.iris.util.common.parallel.BurstExecutor; +import art.arcane.iris.generation.concurrent.BurstExecutor; import org.jetbrains.annotations.NotNull; public interface MantleComponent extends Comparable { diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/components/MantleFloatingObjectComponent.java b/core/src/main/java/art/arcane/iris/generation/mantle/MantleFloatingObjectComponent.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/mantle/components/MantleFloatingObjectComponent.java rename to core/src/main/java/art/arcane/iris/generation/mantle/MantleFloatingObjectComponent.java index 8546d235c..23371526f 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/components/MantleFloatingObjectComponent.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/MantleFloatingObjectComponent.java @@ -16,31 +16,27 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.data.cache.Cache; -import art.arcane.iris.engine.mantle.ComponentFlag; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.mantle.IrisMantleComponent; -import art.arcane.iris.engine.mantle.MantleWriter; -import art.arcane.iris.engine.object.FloatingIslandSample; -import art.arcane.iris.engine.object.FloatingObjectFootprint; -import art.arcane.iris.engine.object.IObjectPlacer; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisFloatingChildBiomes; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisObjectPlacement; -import art.arcane.iris.engine.object.IrisObjectRotation; -import art.arcane.iris.engine.object.IrisObjectTranslate; -import art.arcane.iris.engine.object.IrisProceduralBlocks; -import art.arcane.iris.engine.object.ObjectPlaceMode; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.cache.Cache; +import art.arcane.iris.generation.biome.FloatingIslandSample; +import art.arcane.iris.structure.object.FloatingObjectFootprint; +import art.arcane.iris.structure.object.IObjectPlacer; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisFloatingChildBiomes; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.structure.object.IrisObjectRotation; +import art.arcane.iris.structure.object.IrisObjectTranslate; +import art.arcane.iris.generation.decoration.IrisProceduralBlocks; +import art.arcane.iris.structure.object.ObjectPlaceMode; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; -import art.arcane.iris.util.common.math.IrisBlockVector; -import art.arcane.iris.util.project.context.ChunkContext; +import art.arcane.iris.generation.block.B; +import art.arcane.iris.generation.geometry.IrisBlockVector; +import art.arcane.iris.generation.context.ChunkContext; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.documentation.ChunkCoordinates; import art.arcane.volmlib.util.mantle.flag.ReservedFlag; diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/components/MantleHydrologyCaveVoxelView.java b/core/src/main/java/art/arcane/iris/generation/mantle/MantleHydrologyCaveVoxelView.java similarity index 92% rename from core/src/main/java/art/arcane/iris/engine/mantle/components/MantleHydrologyCaveVoxelView.java rename to core/src/main/java/art/arcane/iris/generation/mantle/MantleHydrologyCaveVoxelView.java index 21bbf5457..baf68415c 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/components/MantleHydrologyCaveVoxelView.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/MantleHydrologyCaveVoxelView.java @@ -1,21 +1,17 @@ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.hydrology.HydrologyCaveVoxelViewFactory; -import art.arcane.iris.engine.hydrology.HydrologyColumnSample; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.RiverFootprint; -import art.arcane.iris.engine.hydrology.cave.CavePosition; -import art.arcane.iris.engine.hydrology.cave.CaveVoxel; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelView; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.mantle.MantleComponent; -import art.arcane.iris.engine.mantle.MantleWriter; -import art.arcane.iris.engine.mantle.TerrainMatterView; -import art.arcane.iris.engine.object.IrisProceduralBlocks; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.hydrology.HydrologyCaveVoxelViewFactory; +import art.arcane.iris.generation.hydrology.HydrologyColumnSample; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.RiverFootprint; +import art.arcane.iris.generation.hydrology.cave.CavePosition; +import art.arcane.iris.generation.hydrology.cave.CaveVoxel; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelView; +import art.arcane.iris.generation.decoration.IrisProceduralBlocks; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.context.ChunkContext; +import art.arcane.iris.generation.context.ChunkContext; import art.arcane.volmlib.util.mantle.flag.ReservedFlag; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/components/MantleHydrologyComponent.java b/core/src/main/java/art/arcane/iris/generation/mantle/MantleHydrologyComponent.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/mantle/components/MantleHydrologyComponent.java rename to core/src/main/java/art/arcane/iris/generation/mantle/MantleHydrologyComponent.java index 54d07a82f..2bd6a85b0 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/components/MantleHydrologyComponent.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/MantleHydrologyComponent.java @@ -1,29 +1,24 @@ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.HydrologyColumnSample; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.engine.hydrology.cave.CavePosition; -import art.arcane.iris.engine.hydrology.cave.CaveVoxel; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelPrecondition; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelView; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; -import art.arcane.iris.engine.hydrology.cave.HydrologyCavePlan; -import art.arcane.iris.engine.hydrology.runtime.IrisHydrologyRuntime; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.mantle.MatterGenerationPhase; -import art.arcane.iris.engine.mantle.ComponentFlag; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.mantle.IrisMantleComponent; -import art.arcane.iris.engine.mantle.MantleWriter; -import art.arcane.iris.engine.object.IrisDeepFluidConfig; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisHydrology; -import art.arcane.iris.engine.object.IrisProceduralBlocks; -import art.arcane.iris.engine.object.IrisRiverHydrology; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.HydrologyColumnSample; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.hydrology.cave.CavePosition; +import art.arcane.iris.generation.hydrology.cave.CaveVoxel; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelPrecondition; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelView; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.generation.hydrology.cave.HydrologyCavePlan; +import art.arcane.iris.generation.hydrology.runtime.IrisHydrologyRuntime; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.hydrology.IrisDeepFluidConfig; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.hydrology.IrisHydrology; +import art.arcane.iris.generation.decoration.IrisProceduralBlocks; +import art.arcane.iris.generation.hydrology.IrisRiverHydrology; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.context.ChunkContext; +import art.arcane.iris.generation.context.ChunkContext; import art.arcane.volmlib.util.mantle.flag.MantleFlag; import art.arcane.volmlib.util.mantle.flag.ReservedFlag; import art.arcane.volmlib.util.matter.slices.UpdateMatter; diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/components/MantleObjectComponent.java b/core/src/main/java/art/arcane/iris/generation/mantle/MantleObjectComponent.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/mantle/components/MantleObjectComponent.java rename to core/src/main/java/art/arcane/iris/generation/mantle/MantleObjectComponent.java index d84ab6c50..e1eab608b 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/components/MantleObjectComponent.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/MantleObjectComponent.java @@ -16,60 +16,56 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.util.common.data.B; -import art.arcane.iris.engine.data.cache.Cache; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.history.TerrainBoundarySignature; -import art.arcane.iris.engine.history.BoundaryColumnGeometry; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.generation.block.B; +import art.arcane.iris.generation.cache.Cache; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.world.history.TerrainBoundarySignature; +import art.arcane.iris.world.history.BoundaryColumnGeometry; import java.util.Optional; -import art.arcane.iris.engine.UpperDimensionContext; -import art.arcane.iris.engine.mantle.ComponentFlag; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.mantle.IrisMantleComponent; -import art.arcane.iris.engine.mantle.MantleWriter; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.TreeBlockMaterial; -import art.arcane.iris.engine.object.CarvingMode; -import art.arcane.iris.engine.object.DecayControlPlacer; -import art.arcane.iris.engine.object.IObjectPlacer; -import art.arcane.iris.engine.object.IrisAxisRotationClamp; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisCaveAnchorMode; -import art.arcane.iris.engine.object.IrisCaveProfile; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisObjectPlacement; -import art.arcane.iris.engine.object.IrisObjectRotation; -import art.arcane.iris.engine.object.IrisObjectTranslate; -import art.arcane.iris.engine.object.IrisObjectVacuum; -import art.arcane.iris.engine.object.IrisProceduralObjects; -import art.arcane.iris.engine.object.IrisProceduralPlacement; -import art.arcane.iris.engine.object.IrisProceduralTree; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.ObjectPlaceMode; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.generation.runtime.UpperDimensionContext; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.decoration.tree.TreeBlockMaterial; +import art.arcane.iris.generation.cave.CarvingMode; +import art.arcane.iris.structure.object.DecayControlPlacer; +import art.arcane.iris.structure.object.IObjectPlacer; +import art.arcane.iris.structure.object.IrisAxisRotationClamp; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.cave.IrisCaveAnchorMode; +import art.arcane.iris.generation.cave.IrisCaveProfile; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.structure.object.IrisObjectRotation; +import art.arcane.iris.structure.object.IrisObjectTranslate; +import art.arcane.iris.structure.object.IrisObjectVacuum; +import art.arcane.iris.generation.decoration.IrisProceduralObjects; +import art.arcane.iris.generation.decoration.IrisProceduralPlacement; +import art.arcane.iris.generation.decoration.tree.IrisProceduralTree; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.structure.object.ObjectPlaceMode; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KSet; -import art.arcane.iris.util.project.context.ChunkContext; +import art.arcane.iris.generation.context.ChunkContext; import art.arcane.volmlib.util.documentation.BlockCoordinates; import art.arcane.volmlib.util.documentation.ChunkCoordinates; import art.arcane.volmlib.util.mantle.flag.ReservedFlag; import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.matter.MatterCavern; import art.arcane.volmlib.util.matter.MatterStructurePOI; -import art.arcane.iris.util.project.noise.CNG; -import art.arcane.iris.util.project.noise.NoiseType; +import art.arcane.volmlib.util.noise.CNG; +import art.arcane.volmlib.util.noise.NoiseType; import it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.DataProvider; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.generation.block.DataProvider; +import art.arcane.iris.generation.geometry.IrisBlockVector; import java.io.IOException; import java.util.Locale; diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/MantlePass.java b/core/src/main/java/art/arcane/iris/generation/mantle/MantlePass.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/mantle/MantlePass.java rename to core/src/main/java/art/arcane/iris/generation/mantle/MantlePass.java index 1123d32f3..8238dc864 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/MantlePass.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/MantlePass.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.mantle; +package art.arcane.iris.generation.mantle; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/MantleSliceRetention.java b/core/src/main/java/art/arcane/iris/generation/mantle/MantleSliceRetention.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/mantle/MantleSliceRetention.java rename to core/src/main/java/art/arcane/iris/generation/mantle/MantleSliceRetention.java index a1161477a..c268e8f1c 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/MantleSliceRetention.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/MantleSliceRetention.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.mantle; +package art.arcane.iris.generation.mantle; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.PlatformBlockState; diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/MantleWriter.java b/core/src/main/java/art/arcane/iris/generation/mantle/MantleWriter.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/mantle/MantleWriter.java rename to core/src/main/java/art/arcane/iris/generation/mantle/MantleWriter.java index 9990bade9..c7e318a96 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/MantleWriter.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/MantleWriter.java @@ -16,30 +16,29 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.mantle; +package art.arcane.iris.generation.mantle; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.project.matter.TileWrapper; -import art.arcane.iris.util.project.matter.PreObjectMatterCell; +import art.arcane.iris.world.storage.matter.TileWrapper; +import art.arcane.iris.world.storage.matter.PreObjectMatterCell; import com.google.common.collect.ImmutableList; import it.unimi.dsi.fastutil.longs.LongOpenHashSet; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.core.tools.WorldMaintenance; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.terrain.Terrain3DColumn; -import art.arcane.iris.engine.history.TransitionGenerationPlan; -import art.arcane.iris.engine.history.TerrainBoundarySignature; -import art.arcane.iris.engine.history.BoundaryColumnGeometry; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.integration.Identifier; +import art.arcane.iris.world.WorldMaintenance; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.terrain.Terrain3DColumn; +import art.arcane.iris.world.history.TransitionGenerationPlan; +import art.arcane.iris.world.history.TerrainBoundarySignature; +import art.arcane.iris.world.history.BoundaryColumnGeometry; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.engine.object.IrisGeneratorStyle; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.TileData; -import art.arcane.iris.engine.mantle.components.ObjectPassPlacer; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.generation.block.TileData; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; import art.arcane.volmlib.util.collection.KSet; import art.arcane.volmlib.util.documentation.ChunkCoordinates; import art.arcane.volmlib.util.function.Function3; @@ -49,8 +48,8 @@ import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.matter.Matter; import art.arcane.volmlib.util.matter.MatterCavern; import art.arcane.volmlib.util.matter.MatterSlice; -import art.arcane.iris.util.project.noise.CNG; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.volmlib.util.noise.CNG; +import art.arcane.iris.world.task.J; import lombok.Data; import lombok.AccessLevel; import lombok.EqualsAndHashCode; @@ -58,7 +57,7 @@ import lombok.Getter; import lombok.Setter; import lombok.ToString; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; +import art.arcane.iris.generation.block.B; import org.bukkit.util.Vector; import java.util.HashSet; @@ -68,7 +67,7 @@ import java.util.Optional; import java.util.Set; import java.util.concurrent.atomic.AtomicReferenceArray; -import static art.arcane.iris.engine.mantle.EngineMantle.AIR; +import static art.arcane.iris.generation.mantle.EngineMantle.AIR; @Data public class MantleWriter implements ObjectPassPlacer, AutoCloseable { diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/MatterGenerationPhase.java b/core/src/main/java/art/arcane/iris/generation/mantle/MatterGenerationPhase.java similarity index 82% rename from core/src/main/java/art/arcane/iris/engine/mantle/MatterGenerationPhase.java rename to core/src/main/java/art/arcane/iris/generation/mantle/MatterGenerationPhase.java index eb69da005..26cd11aa5 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/MatterGenerationPhase.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/MatterGenerationPhase.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.mantle; +package art.arcane.iris.generation.mantle; public enum MatterGenerationPhase { ALL, diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/MatterGenerator.java b/core/src/main/java/art/arcane/iris/generation/mantle/MatterGenerator.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/mantle/MatterGenerator.java rename to core/src/main/java/art/arcane/iris/generation/mantle/MatterGenerator.java index 07581504c..e68aeba59 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/MatterGenerator.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/MatterGenerator.java @@ -1,12 +1,12 @@ -package art.arcane.iris.engine.mantle; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EnginePlatformHooks; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EnginePlatformHooks; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.parallel.MultiBurst; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.project.context.IrisContext; +import art.arcane.iris.generation.concurrent.MultiBurst; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.iris.generation.context.IrisContext; import art.arcane.volmlib.util.documentation.ChunkCoordinates; import art.arcane.volmlib.util.mantle.flag.MantleFlag; import art.arcane.volmlib.util.mantle.runtime.Mantle; diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/components/ObjectDestinationTransaction.java b/core/src/main/java/art/arcane/iris/generation/mantle/ObjectDestinationTransaction.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/mantle/components/ObjectDestinationTransaction.java rename to core/src/main/java/art/arcane/iris/generation/mantle/ObjectDestinationTransaction.java index 81675ff4a..5e5ef2a14 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/components/ObjectDestinationTransaction.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/ObjectDestinationTransaction.java @@ -1,16 +1,14 @@ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.mantle.MantleWriter; -import art.arcane.iris.engine.object.TileData; -import art.arcane.iris.engine.object.IObjectPlacer; +import art.arcane.iris.integration.Identifier; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.generation.block.TileData; +import art.arcane.iris.structure.object.IObjectPlacer; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; -import art.arcane.iris.util.project.matter.TileWrapper; +import art.arcane.iris.generation.block.B; +import art.arcane.iris.world.storage.matter.TileWrapper; import art.arcane.volmlib.util.matter.MatterCavern; import org.jetbrains.annotations.Nullable; diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/components/ObjectPassPlacer.java b/core/src/main/java/art/arcane/iris/generation/mantle/ObjectPassPlacer.java similarity index 78% rename from core/src/main/java/art/arcane/iris/engine/mantle/components/ObjectPassPlacer.java rename to core/src/main/java/art/arcane/iris/generation/mantle/ObjectPassPlacer.java index 3e6ca45e0..1ae2310bf 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/components/ObjectPassPlacer.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/ObjectPassPlacer.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.engine.object.IObjectPlacer; +import art.arcane.iris.structure.object.IObjectPlacer; import org.jetbrains.annotations.Nullable; public interface ObjectPassPlacer extends IObjectPlacer { diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/components/ObjectSourcePlan.java b/core/src/main/java/art/arcane/iris/generation/mantle/ObjectSourcePlan.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/mantle/components/ObjectSourcePlan.java rename to core/src/main/java/art/arcane/iris/generation/mantle/ObjectSourcePlan.java index 87e68e3a1..44357fa10 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/components/ObjectSourcePlan.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/ObjectSourcePlan.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/components/ObjectSourcePlanCache.java b/core/src/main/java/art/arcane/iris/generation/mantle/ObjectSourcePlanCache.java similarity index 91% rename from core/src/main/java/art/arcane/iris/engine/mantle/components/ObjectSourcePlanCache.java rename to core/src/main/java/art/arcane/iris/generation/mantle/ObjectSourcePlanCache.java index 75a6ba81e..b0a0d38ac 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/components/ObjectSourcePlanCache.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/ObjectSourcePlanCache.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; import com.github.benmanes.caffeine.cache.Cache; import com.github.benmanes.caffeine.cache.Caffeine; @@ -6,7 +6,7 @@ import com.github.benmanes.caffeine.cache.Caffeine; import java.util.Objects; import java.util.function.Supplier; -import static art.arcane.iris.engine.data.cache.Cache.key; +import static art.arcane.iris.generation.cache.Cache.key; final class ObjectSourcePlanCache { static final long MAXIMUM_MUTATION_WEIGHT = 1_048_576L; diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/components/StructureCarveEnvelope.java b/core/src/main/java/art/arcane/iris/generation/mantle/StructureCarveEnvelope.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/mantle/components/StructureCarveEnvelope.java rename to core/src/main/java/art/arcane/iris/generation/mantle/StructureCarveEnvelope.java index 4ae24cd62..a2763f281 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/components/StructureCarveEnvelope.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/StructureCarveEnvelope.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.engine.object.IrisStructureCarveShape; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.iris.structure.placement.IrisStructureCarveShape; +import art.arcane.volmlib.util.noise.CNG; /** * Carve envelope math shared by the Iris-assembled structure path and the native (vanilla template) diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/components/StructureCarvingFootprint.java b/core/src/main/java/art/arcane/iris/generation/mantle/StructureCarvingFootprint.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/mantle/components/StructureCarvingFootprint.java rename to core/src/main/java/art/arcane/iris/generation/mantle/StructureCarvingFootprint.java index 1068a6178..d5d51c4c7 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/components/StructureCarvingFootprint.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/StructureCarvingFootprint.java @@ -1,10 +1,10 @@ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.engine.framework.PlacedStructurePiece; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisObjectRotation; -import art.arcane.iris.util.common.data.B; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.structure.placement.PlacedStructurePiece; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectRotation; +import art.arcane.iris.generation.block.B; +import art.arcane.iris.generation.geometry.IrisBlockVector; import art.arcane.volmlib.util.collection.KList; import it.unimi.dsi.fastutil.longs.Long2LongMap; import it.unimi.dsi.fastutil.longs.Long2LongOpenHashMap; diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/components/StructureFoundationPlanner.java b/core/src/main/java/art/arcane/iris/generation/mantle/StructureFoundationPlanner.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/mantle/components/StructureFoundationPlanner.java rename to core/src/main/java/art/arcane/iris/generation/mantle/StructureFoundationPlanner.java index 3ac2c9737..a9ee61915 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/components/StructureFoundationPlanner.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/StructureFoundationPlanner.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; import art.arcane.iris.spi.PlatformBlockState; import it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap; diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/components/SurfaceFluidBoundaryPlan.java b/core/src/main/java/art/arcane/iris/generation/mantle/SurfaceFluidBoundaryPlan.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/mantle/components/SurfaceFluidBoundaryPlan.java rename to core/src/main/java/art/arcane/iris/generation/mantle/SurfaceFluidBoundaryPlan.java index d01588e81..2e1ea8203 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/components/SurfaceFluidBoundaryPlan.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/SurfaceFluidBoundaryPlan.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; import art.arcane.volmlib.util.math.PowerOfTwoCoordinates; diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/TerrainMatterView.java b/core/src/main/java/art/arcane/iris/generation/mantle/TerrainMatterView.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/mantle/TerrainMatterView.java rename to core/src/main/java/art/arcane/iris/generation/mantle/TerrainMatterView.java index 32af69abc..353184d71 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/TerrainMatterView.java +++ b/core/src/main/java/art/arcane/iris/generation/mantle/TerrainMatterView.java @@ -1,8 +1,8 @@ -package art.arcane.iris.engine.mantle; +package art.arcane.iris.generation.mantle; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; -import art.arcane.iris.util.project.matter.PreObjectMatterCell; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.world.storage.matter.PreObjectMatterCell; import art.arcane.volmlib.util.function.Consumer4; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.mantle.runtime.Mantle; diff --git a/core/src/main/java/art/arcane/iris/engine/mode/ModeEnclosure.java b/core/src/main/java/art/arcane/iris/generation/mode/ModeEnclosure.java similarity index 79% rename from core/src/main/java/art/arcane/iris/engine/mode/ModeEnclosure.java rename to core/src/main/java/art/arcane/iris/generation/mode/ModeEnclosure.java index 2edb04a1a..a49a81440 100644 --- a/core/src/main/java/art/arcane/iris/engine/mode/ModeEnclosure.java +++ b/core/src/main/java/art/arcane/iris/generation/mode/ModeEnclosure.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.mode; +package art.arcane.iris.generation.mode; -import art.arcane.iris.engine.actuator.IrisBiomeActuator; -import art.arcane.iris.engine.actuator.IrisTerrainNormalActuator; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineMode; -import art.arcane.iris.engine.framework.IrisEngineMode; +import art.arcane.iris.generation.stage.IrisBiomeActuator; +import art.arcane.iris.generation.stage.IrisTerrainNormalActuator; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineMode; +import art.arcane.iris.generation.runtime.IrisEngineMode; public class ModeEnclosure extends IrisEngineMode implements EngineMode { public ModeEnclosure(Engine engine) { diff --git a/core/src/main/java/art/arcane/iris/engine/mode/ModeIslands.java b/core/src/main/java/art/arcane/iris/generation/mode/ModeIslands.java similarity index 79% rename from core/src/main/java/art/arcane/iris/engine/mode/ModeIslands.java rename to core/src/main/java/art/arcane/iris/generation/mode/ModeIslands.java index 8146ef6e4..07dbcca8c 100644 --- a/core/src/main/java/art/arcane/iris/engine/mode/ModeIslands.java +++ b/core/src/main/java/art/arcane/iris/generation/mode/ModeIslands.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.mode; +package art.arcane.iris.generation.mode; -import art.arcane.iris.engine.actuator.IrisBiomeActuator; -import art.arcane.iris.engine.actuator.IrisTerrainNormalActuator; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineMode; -import art.arcane.iris.engine.framework.IrisEngineMode; +import art.arcane.iris.generation.stage.IrisBiomeActuator; +import art.arcane.iris.generation.stage.IrisTerrainNormalActuator; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineMode; +import art.arcane.iris.generation.runtime.IrisEngineMode; public class ModeIslands extends IrisEngineMode implements EngineMode { public ModeIslands(Engine engine) { diff --git a/core/src/main/java/art/arcane/iris/engine/mode/ModeOverworld.java b/core/src/main/java/art/arcane/iris/generation/mode/ModeOverworld.java similarity index 86% rename from core/src/main/java/art/arcane/iris/engine/mode/ModeOverworld.java rename to core/src/main/java/art/arcane/iris/generation/mode/ModeOverworld.java index 1a885e67c..ea61380f6 100644 --- a/core/src/main/java/art/arcane/iris/engine/mode/ModeOverworld.java +++ b/core/src/main/java/art/arcane/iris/generation/mode/ModeOverworld.java @@ -16,22 +16,22 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.mode; +package art.arcane.iris.generation.mode; -import art.arcane.iris.engine.actuator.IrisBiomeActuator; -import art.arcane.iris.engine.actuator.IrisDecorantActuator; -import art.arcane.iris.engine.actuator.IrisTerrainNormalActuator; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineMode; -import art.arcane.iris.engine.framework.EnginePlatformHooks; -import art.arcane.iris.engine.framework.EngineStage; -import art.arcane.iris.engine.framework.IrisEngineMode; -import art.arcane.iris.engine.modifier.IrisCarveModifier; -import art.arcane.iris.engine.modifier.IrisCustomModifier; -import art.arcane.iris.engine.modifier.IrisDepositModifier; -import art.arcane.iris.engine.modifier.IrisFloatingChildBiomeModifier; -import art.arcane.iris.engine.modifier.IrisPerfectionModifier; -import art.arcane.iris.engine.modifier.IrisPostModifier; +import art.arcane.iris.generation.stage.IrisBiomeActuator; +import art.arcane.iris.generation.stage.IrisDecorantActuator; +import art.arcane.iris.generation.stage.IrisTerrainNormalActuator; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineMode; +import art.arcane.iris.generation.runtime.EnginePlatformHooks; +import art.arcane.iris.generation.runtime.EngineStage; +import art.arcane.iris.generation.runtime.IrisEngineMode; +import art.arcane.iris.generation.stage.IrisCarveModifier; +import art.arcane.iris.generation.stage.IrisCustomModifier; +import art.arcane.iris.generation.stage.IrisDepositModifier; +import art.arcane.iris.generation.stage.IrisFloatingChildBiomeModifier; +import art.arcane.iris.generation.stage.IrisPerfectionModifier; +import art.arcane.iris.generation.stage.IrisPostModifier; import art.arcane.iris.spi.IrisLogging; import java.util.concurrent.atomic.AtomicLong; diff --git a/core/src/main/java/art/arcane/iris/engine/mode/ModeSuperFlat.java b/core/src/main/java/art/arcane/iris/generation/mode/ModeSuperFlat.java similarity index 79% rename from core/src/main/java/art/arcane/iris/engine/mode/ModeSuperFlat.java rename to core/src/main/java/art/arcane/iris/generation/mode/ModeSuperFlat.java index 36c2208bd..827e51871 100644 --- a/core/src/main/java/art/arcane/iris/engine/mode/ModeSuperFlat.java +++ b/core/src/main/java/art/arcane/iris/generation/mode/ModeSuperFlat.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.mode; +package art.arcane.iris.generation.mode; -import art.arcane.iris.engine.actuator.IrisBiomeActuator; -import art.arcane.iris.engine.actuator.IrisTerrainNormalActuator; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineMode; -import art.arcane.iris.engine.framework.IrisEngineMode; +import art.arcane.iris.generation.stage.IrisBiomeActuator; +import art.arcane.iris.generation.stage.IrisTerrainNormalActuator; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineMode; +import art.arcane.iris.generation.runtime.IrisEngineMode; public class ModeSuperFlat extends IrisEngineMode implements EngineMode { public ModeSuperFlat(Engine engine) { diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/ExpressionNoise.java b/core/src/main/java/art/arcane/iris/generation/noise/ExpressionNoise.java similarity index 93% rename from core/src/main/java/art/arcane/iris/util/project/noise/ExpressionNoise.java rename to core/src/main/java/art/arcane/iris/generation/noise/ExpressionNoise.java index 3327bf871..b9e2f091f 100644 --- a/core/src/main/java/art/arcane/iris/util/project/noise/ExpressionNoise.java +++ b/core/src/main/java/art/arcane/iris/generation/noise/ExpressionNoise.java @@ -16,9 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.project.noise; +package art.arcane.iris.generation.noise; + +import art.arcane.volmlib.util.noise.NoiseGenerator; -import art.arcane.iris.engine.object.IrisExpression; import art.arcane.volmlib.util.math.RNG; public class ExpressionNoise implements NoiseGenerator { diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/ImageNoise.java b/core/src/main/java/art/arcane/iris/generation/noise/ImageNoise.java similarity index 84% rename from core/src/main/java/art/arcane/iris/util/project/noise/ImageNoise.java rename to core/src/main/java/art/arcane/iris/generation/noise/ImageNoise.java index a57d42af1..ae10b24f1 100644 --- a/core/src/main/java/art/arcane/iris/util/project/noise/ImageNoise.java +++ b/core/src/main/java/art/arcane/iris/generation/noise/ImageNoise.java @@ -16,14 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.project.noise; +package art.arcane.iris.generation.noise; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.image.CompiledIrisImageMap; -import art.arcane.iris.engine.image.IrisImageMapValidationException; -import art.arcane.iris.engine.object.IrisImage; -import art.arcane.iris.engine.object.IrisImageMap; -import art.arcane.iris.engine.object.IrisImageMapType; +import art.arcane.volmlib.util.noise.NoiseGenerator; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.image.CompiledIrisImageMap; +import art.arcane.iris.generation.image.IrisImageMapValidationException; +import art.arcane.iris.generation.image.IrisImage; +import art.arcane.iris.generation.image.IrisImageMap; +import art.arcane.iris.generation.image.IrisImageMapType; public class ImageNoise implements NoiseGenerator { private final CompiledIrisImageMap compiled; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisExpression.java b/core/src/main/java/art/arcane/iris/generation/noise/IrisExpression.java similarity index 84% rename from core/src/main/java/art/arcane/iris/engine/object/IrisExpression.java rename to core/src/main/java/art/arcane/iris/generation/noise/IrisExpression.java index e66136b84..77476bca6 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisExpression.java +++ b/core/src/main/java/art/arcane/iris/generation/noise/IrisExpression.java @@ -16,22 +16,22 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.noise; import art.arcane.iris.spi.IrisLogging; import com.dfsek.paralithic.Expression; import com.dfsek.paralithic.eval.parser.Parser; import com.dfsek.paralithic.eval.parser.Scope; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.object.IrisExpressionFunction.FunctionContext; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.Required; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.generation.noise.IrisExpressionFunction.FunctionContext; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.Required; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.project.stream.ProceduralStream; -import art.arcane.iris.util.project.stream.interpolation.Interpolated; +import art.arcane.volmlib.util.stream.ProceduralStream; +import art.arcane.volmlib.util.stream.interpolation.Interpolated; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; @@ -41,20 +41,20 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Represents an Iris Expression") +@Description("Represents an Iris Expression") @Data @EqualsAndHashCode(callSuper = false) public class IrisExpression extends IrisRegistrant { @ArrayType(type = IrisExpressionLoad.class, min = 1) - @Desc("Variables to use in this expression") + @Description("Variables to use in this expression") private KList variables = new KList<>(); @ArrayType(type = IrisExpressionFunction.class, min = 1) - @Desc("Functions to use in this expression") + @Description("Functions to use in this expression") private KList functions = new KList<>(); @Required - @Desc("The expression. Inherited variables are x, y and z. Avoid using those variable names.") + @Description("The expression. Inherited variables are x, y and z. Avoid using those variable names.") private String expression; private transient AtomicCache expressionCache = new AtomicCache<>(); diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisExpressionFunction.java b/core/src/main/java/art/arcane/iris/generation/noise/IrisExpressionFunction.java similarity index 76% rename from core/src/main/java/art/arcane/iris/engine/object/IrisExpressionFunction.java rename to core/src/main/java/art/arcane/iris/generation/noise/IrisExpressionFunction.java index 240fcabda..09203f148 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisExpressionFunction.java +++ b/core/src/main/java/art/arcane/iris/generation/noise/IrisExpressionFunction.java @@ -1,13 +1,15 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.noise; + +import art.arcane.iris.generation.runtime.IrisEngineStreamType; import com.dfsek.paralithic.functions.dynamic.Context; import com.dfsek.paralithic.functions.dynamic.DynamicFunction; import com.dfsek.paralithic.node.Statefulness; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.math.RNG; import lombok.AccessLevel; @@ -26,22 +28,22 @@ import org.jetbrains.annotations.Nullable; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Represents a function to use in your expression. Do not set the name to x, y, or z, also don't duplicate names.") +@Description("Represents a function to use in your expression. Do not set the name to x, y, or z, also don't duplicate names.") @Data @EqualsAndHashCode(callSuper = false) public class IrisExpressionFunction implements DynamicFunction { @Required - @Desc("The function to assign this value to. Do not set the name to x, y, or z") + @Description("The function to assign this value to. Do not set the name to x, y, or z") private String name; - @Desc("If defined, this variable will use a generator style as it's value") + @Description("If defined, this variable will use a generator style as it's value") private IrisGeneratorStyle styleValue = null; - @Desc("If defined, iris will use an internal stream from the engine as it's value") + @Description("If defined, iris will use an internal stream from the engine as it's value") private IrisEngineStreamType engineStreamValue = null; @MinNumber(2) - @Desc("Number of arguments for the function") + @Description("Number of arguments for the function") private int args = 2; @Getter(AccessLevel.NONE) diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisExpressionLoad.java b/core/src/main/java/art/arcane/iris/generation/noise/IrisExpressionLoad.java similarity index 82% rename from core/src/main/java/art/arcane/iris/engine/object/IrisExpressionLoad.java rename to core/src/main/java/art/arcane/iris/generation/noise/IrisExpressionLoad.java index 769b4cb34..45afd9221 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisExpressionLoad.java +++ b/core/src/main/java/art/arcane/iris/generation/noise/IrisExpressionLoad.java @@ -16,18 +16,21 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.noise; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.data.cache.LazyBoundedCache; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.generation.runtime.IrisEngineStreamType; +import art.arcane.iris.generation.runtime.IrisEngineValueType; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.generation.cache.LazyBoundedCache; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.project.noise.CNG; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.volmlib.util.noise.CNG; +import art.arcane.volmlib.util.stream.ProceduralStream; import lombok.AccessLevel; import lombok.AllArgsConstructor; import lombok.Data; @@ -46,25 +49,25 @@ import java.util.Map; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Represents a variable to use in your expression. Do not set the name to x, y, or z, also don't duplicate names.") +@Description("Represents a variable to use in your expression. Do not set the name to x, y, or z, also don't duplicate names.") @Data @EqualsAndHashCode(callSuper = false) public class IrisExpressionLoad { private static final int STYLE_CACHE_SIZE = 8; @Required - @Desc("The variable to assign this value to. Do not set the name to x, y, or z") + @Description("The variable to assign this value to. Do not set the name to x, y, or z") private String name = ""; - @Desc("If the style value is not defined, this value will be used") + @Description("If the style value is not defined, this value will be used") private double staticValue = -1; - @Desc("If defined, this variable will use a generator style as it's value") + @Description("If defined, this variable will use a generator style as it's value") private IrisGeneratorStyle styleValue = null; - @Desc("If defined, iris will use an internal stream from the engine as it's value") + @Description("If defined, iris will use an internal stream from the engine as it's value") private IrisEngineStreamType engineStreamValue = null; - @Desc("If defined, iris will use an internal value from the engine as it's value") + @Description("If defined, iris will use an internal value from the engine as it's value") private IrisEngineValueType engineValue = null; @Getter(AccessLevel.NONE) diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisGenerator.java b/core/src/main/java/art/arcane/iris/generation/noise/IrisGenerator.java similarity index 82% rename from core/src/main/java/art/arcane/iris/engine/object/IrisGenerator.java rename to core/src/main/java/art/arcane/iris/generation/noise/IrisGenerator.java index f85726986..9562718e3 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisGenerator.java +++ b/core/src/main/java/art/arcane/iris/generation/noise/IrisGenerator.java @@ -16,19 +16,19 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.noise; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Required; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Required; import art.arcane.volmlib.util.collection.KList; -import art.arcane.iris.util.project.interpolation.IrisInterpolation; +import art.arcane.volmlib.util.interpolation.IrisInterpolation; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.project.noise.CellGenerator; +import art.arcane.volmlib.util.noise.CellGenerator; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; @@ -40,53 +40,53 @@ import java.util.List; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Represents a composite generator of noise gens") +@Description("Represents a composite generator of noise gens") @Data @EqualsAndHashCode(callSuper = false) public class IrisGenerator extends IrisRegistrant { private final transient AtomicCache cellGen = new AtomicCache<>(); @MinNumber(0.001) - @Desc("The zoom or frequency.") + @Description("The zoom or frequency.") private double zoom = 1; @MinNumber(0) - @Desc("The opacity, essentially a multiplier on the output.") + @Description("The opacity, essentially a multiplier on the output.") private double opacity = 1; - @Desc("Multiply the compsites instead of adding them") + @Description("Multiply the compsites instead of adding them") private boolean multiplicitive = false; @MinNumber(0.001) - @Desc("The size of the cell fractures") + @Description("The size of the cell fractures") private double cellFractureZoom = 1D; @MinNumber(0) - @Desc("Cell Fracture Coordinate Shuffling") + @Description("Cell Fracture Coordinate Shuffling") private double cellFractureShuffle = 12D; - @Desc("The height of fracture cells. Set to 0 to disable") + @Description("The height of fracture cells. Set to 0 to disable") private double cellFractureHeight = 0D; @MinNumber(0) @MaxNumber(1) - @Desc("How big are the cells (X,Z) relative to the veins that touch them. Between 0 and 1. 0.1 means thick veins, small cells.") + @Description("How big are the cells (X,Z) relative to the veins that touch them. Between 0 and 1. 0.1 means thick veins, small cells.") private double cellPercentSize = 0.75D; - @Desc("The offset to shift this noise x") + @Description("The offset to shift this noise x") private double offsetX = 0; - @Desc("The offset to shift this noise z") + @Description("The offset to shift this noise z") private double offsetZ = 0; @Required - @Desc("The seed for this generator") + @Description("The seed for this generator") private long seed = 1; @Required - @Desc("The interpolator to use when smoothing this generator into other regions & generators") + @Description("The interpolator to use when smoothing this generator into other regions & generators") private IrisInterpolator interpolator = new IrisInterpolator(); @MinNumber(0) @MaxNumber(8192) - @Desc("Cliff Height Max. Disable with 0 for min and max") + @Description("Cliff Height Max. Disable with 0 for min and max") private double cliffHeightMax = 0; @MinNumber(0) @MaxNumber(8192) - @Desc("Cliff Height Min. Disable with 0 for min and max") + @Description("Cliff Height Min. Disable with 0 for min and max") private double cliffHeightMin = 0; @ArrayType(min = 1, type = IrisNoiseGenerator.class) - @Desc("The list of noise gens this gen contains.") + @Description("The list of noise gens this gen contains.") private KList composite = new KList<>(); - @Desc("The noise gen for cliff height.") + @Description("The noise gen for cliff height.") private IrisNoiseGenerator cliffHeightGenerator = new IrisNoiseGenerator(); public double getMax() { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisGeneratorStyle.java b/core/src/main/java/art/arcane/iris/generation/noise/IrisGeneratorStyle.java similarity index 87% rename from core/src/main/java/art/arcane/iris/engine/object/IrisGeneratorStyle.java rename to core/src/main/java/art/arcane/iris/generation/noise/IrisGeneratorStyle.java index b37dfc37e..ac3ad0426 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisGeneratorStyle.java +++ b/core/src/main/java/art/arcane/iris/generation/noise/IrisGeneratorStyle.java @@ -16,22 +16,22 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.noise; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.data.cache.LazyBoundedCache; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.history.GenerationKernelRegistry; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListResource; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.generation.image.IrisImageMap; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.cache.LazyBoundedCache; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.world.history.GenerationKernelRegistry; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.project.noise.CNG; -import art.arcane.iris.util.project.noise.ExpressionNoise; -import art.arcane.iris.util.project.noise.ImageNoise; +import art.arcane.volmlib.util.noise.CNG; import lombok.AccessLevel; import lombok.AllArgsConstructor; import lombok.Data; @@ -49,7 +49,7 @@ import java.util.concurrent.ConcurrentHashMap; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("A gen style") +@Description("A gen style") @Data public class IrisGeneratorStyle { private static final int GENERATOR_CACHE_SIZE = 8; @@ -58,35 +58,35 @@ public class IrisGeneratorStyle { @Setter(AccessLevel.NONE) private final transient LazyBoundedCache generatorCache = new LazyBoundedCache<>(GENERATOR_CACHE_SIZE); - @Desc("The base noise style. Used when neither expression nor imageMap is set; a failed expression also falls back to this style.") + @Description("The base noise style. Used when neither expression nor imageMap is set; a failed expression also falls back to this style.") private NoiseStyle style = NoiseStyle.FLAT; - @Desc("If set above 0, this style will be cellularized") + @Description("If set above 0, this style will be cellularized") private double cellularFrequency = 0; - @Desc("Cell zooms") + @Description("Cell zooms") private double cellularZoom = 1; @MinNumber(0.00001) - @Desc("Feature size multiplier. Built-in coherent noise uses a 64-block base scale; 2 doubles feature size.") + @Description("Feature size multiplier. Built-in coherent noise uses a 64-block base scale; 2 doubles feature size.") private double zoom = 1; - @Desc("Instead of using the style property, use a custom expression to represent this style.") + @Description("Instead of using the style property, use a custom expression to represent this style.") @RegistryListResource(IrisExpression.class) private String expression = null; - @Desc("Use an Image map instead of a generated value") + @Description("Use an Image map instead of a generated value") @RegistryListResource(IrisImageMap.class) private String imageMap = null; @MinNumber(0.00001) - @Desc("The Output multiplier. Only used if parent is fracture.") + @Description("The Output multiplier. Only used if parent is fracture.") private double multiplier = 1; - @Desc("Apply a generator to the coordinate field fed into this parent generator. I.e. Distort your generator with another generator.") + @Description("Apply a generator to the coordinate field fed into this parent generator. I.e. Distort your generator with another generator.") private IrisGeneratorStyle fracture = null; @MinNumber(0.01562) @MaxNumber(64) - @Desc("The exponent") + @Description("The exponent") private double exponent = 1; @MinNumber(0) @MaxNumber(8192) - @Desc("If the cache size is set above 0, this generator will be cached") + @Description("If the cache size is set above 0, this generator will be cached") private int cacheSize = 0; public IrisGeneratorStyle(NoiseStyle s) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisInterpolator.java b/core/src/main/java/art/arcane/iris/generation/noise/IrisInterpolator.java similarity index 76% rename from core/src/main/java/art/arcane/iris/engine/object/IrisInterpolator.java rename to core/src/main/java/art/arcane/iris/generation/noise/IrisInterpolator.java index d336d93c4..06f86017a 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisInterpolator.java +++ b/core/src/main/java/art/arcane/iris/generation/noise/IrisInterpolator.java @@ -16,17 +16,17 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.noise; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Required; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Required; import art.arcane.volmlib.util.function.NoiseProvider; -import art.arcane.iris.util.project.interpolation.InterpolationMethod; -import art.arcane.iris.util.project.interpolation.IrisInterpolation; -import art.arcane.iris.util.project.interpolation.NoiseBounds; -import art.arcane.iris.util.project.interpolation.NoiseBoundsProvider; +import art.arcane.volmlib.util.interpolation.InterpolationMethod; +import art.arcane.volmlib.util.interpolation.IrisInterpolation; +import art.arcane.volmlib.util.interpolation.NoiseBounds; +import art.arcane.volmlib.util.interpolation.NoiseBoundsProvider; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -35,19 +35,19 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Configures rotation for iris") +@Description("Configures rotation for iris") @Data public class IrisInterpolator { public static final IrisInterpolator DEFAULT = new IrisInterpolator(); @Required - @Desc("The interpolation method when two biomes use different heights but this same generator") + @Description("The interpolation method when two biomes use different heights but this same generator") private InterpolationMethod function = InterpolationMethod.BILINEAR_STARCAST_6; @Required @MinNumber(1) @MaxNumber(8192) - @Desc("The range checked horizontally. Smaller ranges yeild more detail but are not as smooth.") + @Description("The range checked horizontally. Smaller ranges yeild more detail but are not as smooth.") private double horizontalScale = 7; @Override diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisNoiseGenerator.java b/core/src/main/java/art/arcane/iris/generation/noise/IrisNoiseGenerator.java similarity index 79% rename from core/src/main/java/art/arcane/iris/engine/object/IrisNoiseGenerator.java rename to core/src/main/java/art/arcane/iris/generation/noise/IrisNoiseGenerator.java index 2b8cc7350..984449ac4 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisNoiseGenerator.java +++ b/core/src/main/java/art/arcane/iris/generation/noise/IrisNoiseGenerator.java @@ -16,21 +16,21 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.noise; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.data.cache.LazyBoundedCache; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.cache.LazyBoundedCache; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.project.interpolation.IrisInterpolation; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.volmlib.util.interpolation.IrisInterpolation; +import art.arcane.volmlib.util.noise.CNG; import lombok.AccessLevel; import lombok.AllArgsConstructor; import lombok.Data; @@ -45,7 +45,7 @@ import java.util.concurrent.atomic.AtomicReference; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("A noise generator") +@Description("A noise generator") @Data public class IrisNoiseGenerator { private static final int GENERATOR_CACHE_SIZE = 32; @@ -59,42 +59,42 @@ public class IrisNoiseGenerator { @Setter(AccessLevel.NONE) private final transient AtomicReference recentGenerator = new AtomicReference<>(); @MinNumber(0.0001) - @Desc("The coordinate input zoom") + @Description("The coordinate input zoom") private double zoom = 1; - @Desc("Reverse the output. So that noise = -noise + opacity") + @Description("Reverse the output. So that noise = -noise + opacity") private boolean negative = false; @MinNumber(0) @MaxNumber(1) - @Desc("The output multiplier") + @Description("The output multiplier") private double opacity = 1; - @Desc("Coordinate offset x") + @Description("Coordinate offset x") private double offsetX = 0; - @Desc("Height output offset y. Avoid using with terrain generation.") + @Description("Height output offset y. Avoid using with terrain generation.") private double offsetY = 0; - @Desc("Coordinate offset z") + @Description("Coordinate offset z") private double offsetZ = 0; @Required - @Desc("The seed") + @Description("The seed") private long seed = 0; - @Desc("Apply a parametric curve on the output") + @Description("Apply a parametric curve on the output") private boolean parametric = false; - @Desc("Apply a bezier curve on the output") + @Description("Apply a bezier curve on the output") private boolean bezier = false; - @Desc("Apply a sin-center curve on the output (0, and 1 = 0 and 0.5 = 1.0 using a sinoid shape.)") + @Description("Apply a sin-center curve on the output (0, and 1 = 0 and 0.5 = 1.0 using a sinoid shape.)") private boolean sinCentered = false; - @Desc("The exponent noise^EXPONENT") + @Description("The exponent noise^EXPONENT") private double exponent = 1; - @Desc("Enable / disable. Outputs offsetY if disabled") + @Description("Enable / disable. Outputs offsetY if disabled") private boolean enabled = true; @Required - @Desc("The Noise Style") + @Description("The Noise Style") private IrisGeneratorStyle style = NoiseStyle.IRIS.style(); @MinNumber(1) @MaxNumber(16) - @Desc("Multiplies the style's octave count, capped at 16. Adds finer detail while preserving the base feature scale.") + @Description("Multiplies the style's octave count, capped at 16. Adds finer detail while preserving the base feature scale.") private int octaves = 1; @ArrayType(min = 1, type = IrisNoiseGenerator.class) - @Desc("Apply a child noise generator to fracture the input coordinates of this generator") + @Description("Apply a child noise generator to fracture the input coordinates of this generator") private KList fracture = new KList<>(); public IrisNoiseGenerator(boolean enabled) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisShapedGeneratorStyle.java b/core/src/main/java/art/arcane/iris/generation/noise/IrisShapedGeneratorStyle.java similarity index 79% rename from core/src/main/java/art/arcane/iris/engine/object/IrisShapedGeneratorStyle.java rename to core/src/main/java/art/arcane/iris/generation/noise/IrisShapedGeneratorStyle.java index 0aee404c9..494935f0c 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisShapedGeneratorStyle.java +++ b/core/src/main/java/art/arcane/iris/generation/noise/IrisShapedGeneratorStyle.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.noise; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.volmlib.util.math.RNG; import lombok.AllArgsConstructor; import lombok.Data; @@ -34,23 +34,23 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("This represents a generator with a min and max height") +@Description("This represents a generator with a min and max height") @Data public class IrisShapedGeneratorStyle { @Required - @Desc("The generator id") + @Description("The generator id") private IrisGeneratorStyle generator = new IrisGeneratorStyle(NoiseStyle.IRIS); @Required @MinNumber(-2032) @MaxNumber(2032) - @Desc("The min block value") + @Description("The min block value") private int min = 0; @Required @MinNumber(-2032) @MaxNumber(2032) - @Desc("The max block value") + @Description("The max block value") private int max = 0; public IrisShapedGeneratorStyle(NoiseStyle style, int min, int max) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisStyledRange.java b/core/src/main/java/art/arcane/iris/generation/noise/IrisStyledRange.java similarity index 78% rename from core/src/main/java/art/arcane/iris/engine/object/IrisStyledRange.java rename to core/src/main/java/art/arcane/iris/generation/noise/IrisStyledRange.java index daa1bd76c..448e5a562 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisStyledRange.java +++ b/core/src/main/java/art/arcane/iris/generation/noise/IrisStyledRange.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.noise; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.volmlib.util.math.M; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.project.stream.ProceduralStream; -import art.arcane.iris.util.project.stream.interpolation.Interpolated; +import art.arcane.volmlib.util.stream.ProceduralStream; +import art.arcane.volmlib.util.stream.interpolation.Interpolated; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -34,16 +34,16 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Represents a range styled with a custom generator") +@Description("Represents a range styled with a custom generator") @Data public class IrisStyledRange { - @Desc("The minimum value") + @Description("The minimum value") private double min = 16; - @Desc("The maximum value") + @Description("The maximum value") private double max = 32; - @Desc("The style to pick the range") + @Description("The style to pick the range") private IrisGeneratorStyle style = new IrisGeneratorStyle(NoiseStyle.STATIC); public double get(RNG rng, double x, double z, IrisData data) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/NoiseStyle.java b/core/src/main/java/art/arcane/iris/generation/noise/NoiseStyle.java similarity index 58% rename from core/src/main/java/art/arcane/iris/engine/object/NoiseStyle.java rename to core/src/main/java/art/arcane/iris/generation/noise/NoiseStyle.java index ec249d7d4..3b4deebf0 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/NoiseStyle.java +++ b/core/src/main/java/art/arcane/iris/generation/noise/NoiseStyle.java @@ -16,572 +16,572 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.noise; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.documentation.Description; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.project.noise.CNG; -import art.arcane.iris.util.project.noise.CNGFactory; -import art.arcane.iris.util.project.noise.NoiseType; -import art.arcane.iris.util.project.stream.ProceduralStream; -@Desc("Styles of noise") +import art.arcane.volmlib.util.noise.CNG; +import art.arcane.volmlib.util.noise.CNGFactory; +import art.arcane.volmlib.util.noise.NoiseType; +import art.arcane.volmlib.util.stream.ProceduralStream; +@Description("Styles of noise") public enum NoiseStyle { - @Desc("White Noise is like static. Useful for block scattering but not terrain.") + @Description("White Noise is like static. Useful for block scattering but not terrain.") STATIC(rng -> new CNG(rng, NoiseType.WHITE, 1D, 1), NoiseType.WHITE), - @Desc("White Noise is like static. Useful for block scattering but not terrain.") + @Description("White Noise is like static. Useful for block scattering but not terrain.") STATIC_BILINEAR(rng -> new CNG(rng, NoiseType.WHITE_BILINEAR, 1D, 1), NoiseType.WHITE_BILINEAR), - @Desc("White Noise is like static. Useful for block scattering but not terrain.") + @Description("White Noise is like static. Useful for block scattering but not terrain.") STATIC_BICUBIC(rng -> new CNG(rng, NoiseType.WHITE_BICUBIC, 1D, 1), NoiseType.WHITE_BICUBIC), - @Desc("White Noise is like static. Useful for block scattering but not terrain.") + @Description("White Noise is like static. Useful for block scattering but not terrain.") STATIC_HERMITE(rng -> new CNG(rng, NoiseType.WHITE_HERMITE, 1D, 1), NoiseType.WHITE_HERMITE), - @Desc("Wispy Perlin-looking simplex noise. The 'iris' style noise.") + @Description("Wispy Perlin-looking simplex noise. The 'iris' style noise.") IRIS(rng -> CNG.signature(rng)), - @Desc("Clover Noise") + @Description("Clover Noise") CLOVER(rng -> new CNG(rng, NoiseType.CLOVER, 1D, 1).bake(), NoiseType.CLOVER), - @Desc("Clover noise smoothed with the selected interpolation kernel.") + @Description("Clover noise smoothed with the selected interpolation kernel.") CLOVER_STARCAST_3(rng -> new CNG(rng, NoiseType.CLOVER_STARCAST_3, 1D, 1), NoiseType.CLOVER_STARCAST_3), - @Desc("Clover noise smoothed with the selected interpolation kernel.") + @Description("Clover noise smoothed with the selected interpolation kernel.") CLOVER_STARCAST_6(rng -> new CNG(rng, NoiseType.CLOVER_STARCAST_6, 1D, 1), NoiseType.CLOVER_STARCAST_6), - @Desc("Clover noise smoothed with the selected interpolation kernel.") + @Description("Clover noise smoothed with the selected interpolation kernel.") CLOVER_STARCAST_9(rng -> new CNG(rng, NoiseType.CLOVER_STARCAST_9, 1D, 1), NoiseType.CLOVER_STARCAST_9), - @Desc("Clover noise smoothed with the selected interpolation kernel.") + @Description("Clover noise smoothed with the selected interpolation kernel.") CLOVER_STARCAST_12(rng -> new CNG(rng, NoiseType.CLOVER_STARCAST_12, 1D, 1), NoiseType.CLOVER_STARCAST_12), - @Desc("Clover noise smoothed with the selected interpolation kernel.") + @Description("Clover noise smoothed with the selected interpolation kernel.") CLOVER_BILINEAR_STARCAST_3(rng -> new CNG(rng, NoiseType.CLOVER_BILINEAR_STARCAST_3, 1D, 1), NoiseType.CLOVER_BILINEAR_STARCAST_3), - @Desc("Clover noise smoothed with the selected interpolation kernel.") + @Description("Clover noise smoothed with the selected interpolation kernel.") CLOVER_BILINEAR_STARCAST_6(rng -> new CNG(rng, NoiseType.CLOVER_BILINEAR_STARCAST_6, 1D, 1), NoiseType.CLOVER_BILINEAR_STARCAST_6), - @Desc("Clover noise smoothed with the selected interpolation kernel.") + @Description("Clover noise smoothed with the selected interpolation kernel.") CLOVER_BILINEAR_STARCAST_9(rng -> new CNG(rng, NoiseType.CLOVER_BILINEAR_STARCAST_9, 1D, 1), NoiseType.CLOVER_BILINEAR_STARCAST_9), - @Desc("Clover noise smoothed with the selected interpolation kernel.") + @Description("Clover noise smoothed with the selected interpolation kernel.") CLOVER_BILINEAR_STARCAST_12(rng -> new CNG(rng, NoiseType.CLOVER_BILINEAR_STARCAST_12, 1D, 1), NoiseType.CLOVER_BILINEAR_STARCAST_12), - @Desc("Clover noise smoothed with the selected interpolation kernel.") + @Description("Clover noise smoothed with the selected interpolation kernel.") CLOVER_HERMITE_STARCAST_3(rng -> new CNG(rng, NoiseType.CLOVER_HERMITE_STARCAST_3, 1D, 1), NoiseType.CLOVER_HERMITE_STARCAST_3), - @Desc("Clover noise smoothed with the selected interpolation kernel.") + @Description("Clover noise smoothed with the selected interpolation kernel.") CLOVER_HERMITE_STARCAST_6(rng -> new CNG(rng, NoiseType.CLOVER_HERMITE_STARCAST_6, 1D, 1), NoiseType.CLOVER_HERMITE_STARCAST_6), - @Desc("Clover noise smoothed with the selected interpolation kernel.") + @Description("Clover noise smoothed with the selected interpolation kernel.") CLOVER_HERMITE_STARCAST_9(rng -> new CNG(rng, NoiseType.CLOVER_HERMITE_STARCAST_9, 1D, 1), NoiseType.CLOVER_HERMITE_STARCAST_9), - @Desc("Clover noise smoothed with the selected interpolation kernel.") + @Description("Clover noise smoothed with the selected interpolation kernel.") CLOVER_HERMITE_STARCAST_12(rng -> new CNG(rng, NoiseType.CLOVER_HERMITE_STARCAST_12, 1D, 1), NoiseType.CLOVER_HERMITE_STARCAST_12), - @Desc("Clover noise smoothed with the selected interpolation kernel.") + @Description("Clover noise smoothed with the selected interpolation kernel.") CLOVER_BILINEAR(rng -> new CNG(rng, NoiseType.CLOVER_BILINEAR, 1D, 1), NoiseType.CLOVER_BILINEAR), - @Desc("Clover noise smoothed with the selected interpolation kernel.") + @Description("Clover noise smoothed with the selected interpolation kernel.") CLOVER_BICUBIC(rng -> new CNG(rng, NoiseType.CLOVER_BICUBIC, 1D, 1), NoiseType.CLOVER_BICUBIC), - @Desc("Clover noise smoothed with the selected interpolation kernel.") + @Description("Clover noise smoothed with the selected interpolation kernel.") CLOVER_HERMITE(rng -> new CNG(rng, NoiseType.CLOVER_HERMITE, 1D, 1), NoiseType.CLOVER_HERMITE), - @Desc("Vascular noise gets higher as the position nears a cell border.") + @Description("Vascular noise gets higher as the position nears a cell border.") VASCULAR(rng -> new CNG(rng, NoiseType.VASCULAR, 1D, 1), NoiseType.VASCULAR), - @Desc("It always returns 1.0") + @Description("It always returns 1.0") FLAT(rng -> new CNG(rng, NoiseType.FLAT, 1D, 1), NoiseType.FLAT), - @Desc("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") + @Description("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") CELLULAR(rng -> new CNG(rng, NoiseType.CELLULAR, 1D, 1), NoiseType.CELLULAR), - @Desc("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") + @Description("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") CELLULAR_STARCAST_3(rng -> new CNG(rng, NoiseType.CELLULAR_STARCAST_3, 1D, 1), NoiseType.CELLULAR_STARCAST_3), - @Desc("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") + @Description("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") CELLULAR_STARCAST_6(rng -> new CNG(rng, NoiseType.CELLULAR_STARCAST_6, 1D, 1), NoiseType.CELLULAR_STARCAST_6), - @Desc("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") + @Description("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") CELLULAR_STARCAST_9(rng -> new CNG(rng, NoiseType.CELLULAR_STARCAST_9, 1D, 1), NoiseType.CELLULAR_STARCAST_9), - @Desc("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") + @Description("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") CELLULAR_STARCAST_12(rng -> new CNG(rng, NoiseType.CELLULAR_STARCAST_12, 1D, 1), NoiseType.CELLULAR_STARCAST_12), - @Desc("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") + @Description("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") CELLULAR_BILINEAR_STARCAST_3(rng -> new CNG(rng, NoiseType.CELLULAR_BILINEAR_STARCAST_3, 1D, 1), NoiseType.CELLULAR_BILINEAR_STARCAST_3), - @Desc("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") + @Description("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") CELLULAR_BILINEAR_STARCAST_6(rng -> new CNG(rng, NoiseType.CELLULAR_BILINEAR_STARCAST_6, 1D, 1), NoiseType.CELLULAR_BILINEAR_STARCAST_6), - @Desc("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") + @Description("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") CELLULAR_BILINEAR_STARCAST_9(rng -> new CNG(rng, NoiseType.CELLULAR_BILINEAR_STARCAST_9, 1D, 1), NoiseType.CELLULAR_BILINEAR_STARCAST_9), - @Desc("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") + @Description("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") CELLULAR_BILINEAR_STARCAST_12(rng -> new CNG(rng, NoiseType.CELLULAR_BILINEAR_STARCAST_12, 1D, 1), NoiseType.CELLULAR_BILINEAR_STARCAST_12), - @Desc("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") + @Description("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") CELLULAR_HERMITE_STARCAST_3(rng -> new CNG(rng, NoiseType.CELLULAR_HERMITE_STARCAST_3, 1D, 1), NoiseType.CELLULAR_HERMITE_STARCAST_3), - @Desc("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") + @Description("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") CELLULAR_HERMITE_STARCAST_6(rng -> new CNG(rng, NoiseType.CELLULAR_HERMITE_STARCAST_6, 1D, 1), NoiseType.CELLULAR_HERMITE_STARCAST_6), - @Desc("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") + @Description("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") CELLULAR_HERMITE_STARCAST_9(rng -> new CNG(rng, NoiseType.CELLULAR_HERMITE_STARCAST_9, 1D, 1), NoiseType.CELLULAR_HERMITE_STARCAST_9), - @Desc("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") + @Description("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") CELLULAR_HERMITE_STARCAST_12(rng -> new CNG(rng, NoiseType.CELLULAR_HERMITE_STARCAST_12, 1D, 1), NoiseType.CELLULAR_HERMITE_STARCAST_12), - @Desc("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") + @Description("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") CELLULAR_BILINEAR(rng -> new CNG(rng, NoiseType.CELLULAR_BILINEAR, 1D, 1), NoiseType.CELLULAR_BILINEAR), - @Desc("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") + @Description("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") CELLULAR_BICUBIC(rng -> new CNG(rng, NoiseType.CELLULAR_BICUBIC, 1D, 1), NoiseType.CELLULAR_BICUBIC), - @Desc("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") + @Description("Cellular noise creates the same noise level for cells, changes noise level on cell borders.") CELLULAR_HERMITE(rng -> new CNG(rng, NoiseType.CELLULAR_HERMITE, 1D, 1), NoiseType.CELLULAR_HERMITE), - @Desc("Solid regular hexagons colored by a coherent simplex field.") + @Description("Solid regular hexagons colored by a coherent simplex field.") HEXAGON(rng -> new CNG(rng, NoiseType.HEXAGON, 1D, 1), NoiseType.HEXAGON), - @Desc("Recursive contained hexagons with alternating subdivision probabilities and simplex colors.") + @Description("Recursive contained hexagons with alternating subdivision probabilities and simplex colors.") HEX_JAMES(rng -> new CNG(rng, NoiseType.HEX_JAMES, 1D, 1), NoiseType.HEX_JAMES), - @Desc("Interlocked solid hex cells with per-cell values from a smooth simplex heatmap.") + @Description("Interlocked solid hex cells with per-cell values from a smooth simplex heatmap.") HEX_SIMPLEX(rng -> new CNG(rng, NoiseType.HEX_SIMPLEX, 1D, 1), NoiseType.HEX_SIMPLEX), - @Desc("Finite-depth hexagonal subdivision selected by a seeded field, with coherent simplex colors.") + @Description("Finite-depth hexagonal subdivision selected by a seeded field, with coherent simplex colors.") HEX_RANDOM_SIZE(rng -> new CNG(rng, NoiseType.HEX_RANDOM_SIZE, 1D, 1), NoiseType.HEX_RANDOM_SIZE), - @Desc("Finite-depth equilateral Sierpinski triangles colored by simplex heat.") + @Description("Finite-depth equilateral Sierpinski triangles colored by simplex heat.") SIERPINSKI_TRIANGLE(rng -> new CNG(rng, NoiseType.SIERPINSKI_TRIANGLE, 1D, 1), NoiseType.SIERPINSKI_TRIANGLE), - @Desc("Perlin-warped noise with broad, flowing distortion.") + @Description("Perlin-warped noise with broad, flowing distortion.") NOWHERE(rng -> CNG.signaturePerlin(rng).bake()), - @Desc("Perlin-warped noise with broad, flowing distortion.") + @Description("Perlin-warped noise with broad, flowing distortion.") NOWHERE_CELLULAR(rng -> CNG.signaturePerlin(rng, NoiseType.CELLULAR).bake(), NoiseType.CELLULAR), - @Desc("Perlin-warped noise with broad, flowing distortion.") + @Description("Perlin-warped noise with broad, flowing distortion.") NOWHERE_CLOVER(rng -> CNG.signaturePerlin(rng, NoiseType.CLOVER).bake(), NoiseType.CLOVER), - @Desc("Perlin-warped noise with broad, flowing distortion.") + @Description("Perlin-warped noise with broad, flowing distortion.") NOWHERE_HEXAGON(rng -> CNG.signaturePerlin(rng, NoiseType.HEXAGON).bake(), NoiseType.HEXAGON), - @Desc("Perlin-warped noise with broad, flowing distortion.") + @Description("Perlin-warped noise with broad, flowing distortion.") NOWHERE_HEX_JAMES(rng -> CNG.signaturePerlin(rng, NoiseType.HEX_JAMES).bake(), NoiseType.HEX_JAMES), - @Desc("Perlin-warped noise with broad, flowing distortion.") + @Description("Perlin-warped noise with broad, flowing distortion.") NOWHERE_HEX_SIMPLEX(rng -> CNG.signaturePerlin(rng, NoiseType.HEX_SIMPLEX).bake(), NoiseType.HEX_SIMPLEX), - @Desc("Perlin-warped noise with broad, flowing distortion.") + @Description("Perlin-warped noise with broad, flowing distortion.") NOWHERE_HEX_RANDOM_SIZE(rng -> CNG.signaturePerlin(rng, NoiseType.HEX_RANDOM_SIZE).bake(), NoiseType.HEX_RANDOM_SIZE), - @Desc("Perlin-warped noise with broad, flowing distortion.") + @Description("Perlin-warped noise with broad, flowing distortion.") NOWHERE_SIERPINSKI_TRIANGLE(rng -> CNG.signaturePerlin(rng, NoiseType.SIERPINSKI_TRIANGLE).bake(), NoiseType.SIERPINSKI_TRIANGLE), - @Desc("Perlin-warped noise with broad, flowing distortion.") + @Description("Perlin-warped noise with broad, flowing distortion.") NOWHERE_SIMPLEX(rng -> CNG.signaturePerlin(rng, NoiseType.SIMPLEX).bake(), NoiseType.SIMPLEX), - @Desc("Perlin-warped noise with broad, flowing distortion.") + @Description("Perlin-warped noise with broad, flowing distortion.") NOWHERE_GLOB(rng -> CNG.signaturePerlin(rng, NoiseType.GLOB).bake(), NoiseType.GLOB), - @Desc("Perlin-warped noise with broad, flowing distortion.") + @Description("Perlin-warped noise with broad, flowing distortion.") NOWHERE_VASCULAR(rng -> CNG.signaturePerlin(rng, NoiseType.VASCULAR).bake(), NoiseType.VASCULAR), - @Desc("Perlin-warped noise with broad, flowing distortion.") + @Description("Perlin-warped noise with broad, flowing distortion.") NOWHERE_CUBIC(rng -> CNG.signaturePerlin(rng, NoiseType.CUBIC).bake(), NoiseType.CUBIC), - @Desc("Perlin-warped noise with broad, flowing distortion.") + @Description("Perlin-warped noise with broad, flowing distortion.") NOWHERE_SUPERFRACTAL(rng -> CNG.signaturePerlin(rng, NoiseType.FRACTAL_RIGID_MULTI_SIMPLEX).bake(), NoiseType.FRACTAL_RIGID_MULTI_SIMPLEX), - @Desc("Perlin-warped noise with broad, flowing distortion.") + @Description("Perlin-warped noise with broad, flowing distortion.") NOWHERE_FRACTAL(rng -> CNG.signaturePerlin(rng, NoiseType.FRACTAL_BILLOW_PERLIN).bake(), NoiseType.FRACTAL_BILLOW_PERLIN), - @Desc("Wispy Perlin-looking simplex noise. The 'iris' style noise.") + @Description("Wispy Perlin-looking simplex noise. The 'iris' style noise.") IRIS_DOUBLE(rng -> CNG.signatureDouble(rng)), - @Desc("Wispy Perlin-looking simplex noise. The 'iris' style noise.") + @Description("Wispy Perlin-looking simplex noise. The 'iris' style noise.") IRIS_THICK(rng -> CNG.signatureThick(rng)), - @Desc("Wispy Perlin-looking simplex noise. The 'iris' style noise.") + @Description("Wispy Perlin-looking simplex noise. The 'iris' style noise.") IRIS_HALF(rng -> CNG.signatureHalf(rng)), - @Desc("Basic, Smooth & Fast Simplex noise.") + @Description("Basic, Smooth & Fast Simplex noise.") SIMPLEX(rng -> new CNG(rng, 1D, 1)), - @Desc("Very Detailed smoke using simplex fractured with fractal billow simplex at high octaves.") + @Description("Very Detailed smoke using simplex fractured with fractal billow simplex at high octaves.") FRACTAL_SMOKE(rng -> new CNG(rng, 1D, 1).fractureWith(new CNG(rng.nextParallelRNG(1), NoiseType.FRACTAL_BILLOW_SIMPLEX, 1D, 8).scale(0.2), 1000), NoiseType.FRACTAL_BILLOW_SIMPLEX), - @Desc("Thinner Veins.") + @Description("Thinner Veins.") VASCULAR_THIN(rng -> new CNG(rng.nextParallelRNG(1), NoiseType.VASCULAR, 1D, 1).scale(1).pow(1D / 0.65D), NoiseType.VASCULAR), - @Desc("Cells of simplex noise") + @Description("Cells of simplex noise") SIMPLEX_CELLS(rng -> new CNG(rng.nextParallelRNG(1), NoiseType.SIMPLEX, 1D, 1).scale(1).fractureWith(new CNG(rng.nextParallelRNG(8), NoiseType.CELLULAR, 1D, 1).scale(1), 200), NoiseType.SIMPLEX), - @Desc("Veins of simplex noise") + @Description("Veins of simplex noise") SIMPLEX_VASCULAR(rng -> new CNG(rng.nextParallelRNG(1), NoiseType.SIMPLEX, 1D, 1).scale(1).fractureWith(new CNG(rng.nextParallelRNG(8), NoiseType.VASCULAR, 1D, 1).scale(1), 200), NoiseType.SIMPLEX), - @Desc("Very Detailed fluid using simplex fractured with fractal billow simplex at high octaves.") + @Description("Very Detailed fluid using simplex fractured with fractal billow simplex at high octaves.") FRACTAL_WATER(rng -> new CNG(rng, 1D, 1).fractureWith(new CNG(rng.nextParallelRNG(1), NoiseType.FRACTAL_FBM_SIMPLEX, 1D, 9).scale(0.03), 9900), NoiseType.FRACTAL_FBM_SIMPLEX), - @Desc("Perlin. Like simplex but more natural") + @Description("Perlin. Like simplex but more natural") PERLIN(rng -> new CNG(rng, NoiseType.PERLIN, 1D, 1), NoiseType.PERLIN), - @Desc("Perlin. Like simplex but more natural") + @Description("Perlin. Like simplex but more natural") PERLIN_IRIS(rng -> CNG.signature(rng, NoiseType.PERLIN), NoiseType.PERLIN), - @Desc("Perlin. Like simplex but more natural") + @Description("Perlin. Like simplex but more natural") PERLIN_IRIS_HALF(rng -> CNG.signatureHalf(rng, NoiseType.PERLIN), NoiseType.PERLIN), - @Desc("Perlin. Like simplex but more natural") + @Description("Perlin. Like simplex but more natural") PERLIN_IRIS_DOUBLE(rng -> CNG.signatureDouble(rng, NoiseType.PERLIN), NoiseType.PERLIN), - @Desc("Perlin. Like simplex but more natural") + @Description("Perlin. Like simplex but more natural") PERLIN_IRIS_THICK(rng -> CNG.signatureThick(rng, NoiseType.PERLIN), NoiseType.PERLIN), - @Desc("Billow Fractal Perlin Noise.") + @Description("Billow Fractal Perlin Noise.") FRACTAL_BILLOW_PERLIN(rng -> new CNG(rng, NoiseType.FRACTAL_BILLOW_PERLIN, 1D, 1), NoiseType.FRACTAL_BILLOW_PERLIN), - @Desc("Billow Fractal Perlin Noise. 2 Octaves") + @Description("Billow Fractal Perlin Noise. 2 Octaves") BIOCTAVE_FRACTAL_BILLOW_PERLIN(rng -> new CNG(rng, NoiseType.FRACTAL_BILLOW_PERLIN, 1D, 2), NoiseType.FRACTAL_BILLOW_PERLIN), - @Desc("Billow Fractal Simplex Noise. Single octave.") + @Description("Billow Fractal Simplex Noise. Single octave.") FRACTAL_BILLOW_SIMPLEX(rng -> new CNG(rng, NoiseType.FRACTAL_BILLOW_SIMPLEX, 1D, 1), NoiseType.FRACTAL_BILLOW_SIMPLEX), - @Desc("FBM Fractal Simplex Noise. Single octave.") + @Description("FBM Fractal Simplex Noise. Single octave.") FRACTAL_FBM_SIMPLEX(rng -> new CNG(rng, NoiseType.FRACTAL_FBM_SIMPLEX, 1D, 1), NoiseType.FRACTAL_FBM_SIMPLEX), - @Desc("Billow Fractal Iris Noise. Single octave.") + @Description("Billow Fractal Iris Noise. Single octave.") FRACTAL_BILLOW_IRIS(rng -> CNG.signature(rng, NoiseType.FRACTAL_BILLOW_SIMPLEX), NoiseType.FRACTAL_BILLOW_SIMPLEX), - @Desc("FBM Fractal Iris Noise. Single octave.") + @Description("FBM Fractal Iris Noise. Single octave.") FRACTAL_FBM_IRIS(rng -> CNG.signature(rng, NoiseType.FRACTAL_FBM_SIMPLEX), NoiseType.FRACTAL_FBM_SIMPLEX), - @Desc("Billow Fractal Iris Noise. Single octave.") + @Description("Billow Fractal Iris Noise. Single octave.") FRACTAL_BILLOW_IRIS_HALF(rng -> CNG.signatureHalf(rng, NoiseType.FRACTAL_BILLOW_SIMPLEX), NoiseType.FRACTAL_BILLOW_SIMPLEX), - @Desc("FBM Fractal Iris Noise. Single octave.") + @Description("FBM Fractal Iris Noise. Single octave.") FRACTAL_FBM_IRIS_HALF(rng -> CNG.signatureHalf(rng, NoiseType.FRACTAL_FBM_SIMPLEX), NoiseType.FRACTAL_FBM_SIMPLEX), - @Desc("Billow Fractal Iris Noise. Single octave.") + @Description("Billow Fractal Iris Noise. Single octave.") FRACTAL_BILLOW_IRIS_THICK(rng -> CNG.signatureThick(rng, NoiseType.FRACTAL_BILLOW_SIMPLEX), NoiseType.FRACTAL_BILLOW_SIMPLEX), - @Desc("FBM Fractal Iris Noise. Single octave.") + @Description("FBM Fractal Iris Noise. Single octave.") FRACTAL_FBM_IRIS_THICK(rng -> CNG.signatureThick(rng, NoiseType.FRACTAL_FBM_SIMPLEX), NoiseType.FRACTAL_FBM_SIMPLEX), - @Desc("Fractal hexagonal cell noise.") + @Description("Fractal hexagonal cell noise.") FRACTAL_HEXAGON(rng -> new CNG(rng, NoiseType.HEXAGON, 1D, 4), NoiseType.HEXAGON), - @Desc("Recursive contained hexagons colored by fractal simplex noise.") + @Description("Recursive contained hexagons colored by fractal simplex noise.") FRACTAL_HEX_JAMES(rng -> new CNG(rng, NoiseType.HEX_JAMES, 1D, 4), NoiseType.HEX_JAMES), - @Desc("Interlocked solid hex cells with per-cell fractal simplex heatmap values.") + @Description("Interlocked solid hex cells with per-cell fractal simplex heatmap values.") FRACTAL_HEX_SIMPLEX(rng -> new CNG(rng, NoiseType.HEX_SIMPLEX, 1D, 4), NoiseType.HEX_SIMPLEX), - @Desc("Recursive hexagonal subdivision colored by fractal simplex noise.") + @Description("Recursive hexagonal subdivision colored by fractal simplex noise.") FRACTAL_HEX_RANDOM_SIZE(rng -> new CNG(rng, NoiseType.HEX_RANDOM_SIZE, 1D, 4), NoiseType.HEX_RANDOM_SIZE), - @Desc("Finite-depth equilateral Sierpinski triangles colored by fractal simplex heat.") + @Description("Finite-depth equilateral Sierpinski triangles colored by fractal simplex heat.") FRACTAL_SIERPINSKI_TRIANGLE(rng -> new CNG(rng, NoiseType.SIERPINSKI_TRIANGLE, 1D, 4), NoiseType.SIERPINSKI_TRIANGLE), - @Desc("Rigid Multi Fractal Simplex Noise. Single octave.") + @Description("Rigid Multi Fractal Simplex Noise. Single octave.") FRACTAL_RM_SIMPLEX(rng -> new CNG(rng, NoiseType.FRACTAL_RIGID_MULTI_SIMPLEX, 1D, 1), NoiseType.FRACTAL_RIGID_MULTI_SIMPLEX), - @Desc("Billow Fractal Simplex Noise. 2 octaves.") + @Description("Billow Fractal Simplex Noise. 2 octaves.") BIOCTAVE_FRACTAL_BILLOW_SIMPLEX(rng -> new CNG(rng, NoiseType.FRACTAL_BILLOW_SIMPLEX, 1D, 2), NoiseType.FRACTAL_BILLOW_SIMPLEX), - @Desc("FBM Fractal Simplex Noise. 2 octaves.") + @Description("FBM Fractal Simplex Noise. 2 octaves.") BIOCTAVE_FRACTAL_FBM_SIMPLEX(rng -> new CNG(rng, NoiseType.FRACTAL_FBM_SIMPLEX, 1D, 2), NoiseType.FRACTAL_FBM_SIMPLEX), - @Desc("Rigid Multi Fractal Simplex Noise. 2 octaves.") + @Description("Rigid Multi Fractal Simplex Noise. 2 octaves.") BIOCTAVE_FRACTAL_RM_SIMPLEX(rng -> new CNG(rng, NoiseType.FRACTAL_RIGID_MULTI_SIMPLEX, 1D, 2), NoiseType.FRACTAL_RIGID_MULTI_SIMPLEX), - @Desc("Rigid Multi Fractal Simplex Noise. 3 octaves.") + @Description("Rigid Multi Fractal Simplex Noise. 3 octaves.") TRIOCTAVE_FRACTAL_RM_SIMPLEX(rng -> new CNG(rng, NoiseType.FRACTAL_RIGID_MULTI_SIMPLEX, 1D, 3), NoiseType.FRACTAL_RIGID_MULTI_SIMPLEX), - @Desc("Billow Fractal Simplex Noise. 3 octaves.") + @Description("Billow Fractal Simplex Noise. 3 octaves.") TRIOCTAVE_FRACTAL_BILLOW_SIMPLEX(rng -> new CNG(rng, NoiseType.FRACTAL_BILLOW_SIMPLEX, 1D, 3), NoiseType.FRACTAL_BILLOW_SIMPLEX), - @Desc("FBM Fractal Simplex Noise. 3 octaves.") + @Description("FBM Fractal Simplex Noise. 3 octaves.") TRIOCTAVE_FRACTAL_FBM_SIMPLEX(rng -> new CNG(rng, NoiseType.FRACTAL_FBM_SIMPLEX, 1D, 3), NoiseType.FRACTAL_FBM_SIMPLEX), - @Desc("Rigid Multi Fractal Simplex Noise. 4 octaves.") + @Description("Rigid Multi Fractal Simplex Noise. 4 octaves.") QUADOCTAVE_FRACTAL_RM_SIMPLEX(rng -> new CNG(rng, NoiseType.FRACTAL_RIGID_MULTI_SIMPLEX, 1D, 4), NoiseType.FRACTAL_RIGID_MULTI_SIMPLEX), - @Desc("Billow Fractal Simplex Noise. 4 octaves.") + @Description("Billow Fractal Simplex Noise. 4 octaves.") QUADOCTAVE_FRACTAL_BILLOW_SIMPLEX(rng -> new CNG(rng, NoiseType.FRACTAL_BILLOW_SIMPLEX, 1D, 4), NoiseType.FRACTAL_BILLOW_SIMPLEX), - @Desc("FBM Fractal Simplex Noise. 4 octaves.") + @Description("FBM Fractal Simplex Noise. 4 octaves.") QUADOCTAVE_FRACTAL_FBM_SIMPLEX(rng -> new CNG(rng, NoiseType.FRACTAL_FBM_SIMPLEX, 1D, 4), NoiseType.FRACTAL_FBM_SIMPLEX), - @Desc("Rigid Multi Fractal Simplex Noise. 5 octaves.") + @Description("Rigid Multi Fractal Simplex Noise. 5 octaves.") QUINTOCTAVE_FRACTAL_RM_SIMPLEX(rng -> new CNG(rng, NoiseType.FRACTAL_RIGID_MULTI_SIMPLEX, 1D, 5), NoiseType.FRACTAL_RIGID_MULTI_SIMPLEX), - @Desc("Billow Fractal Simplex Noise. 5 octaves.") + @Description("Billow Fractal Simplex Noise. 5 octaves.") QUINTOCTAVE_FRACTAL_BILLOW_SIMPLEX(rng -> new CNG(rng, NoiseType.FRACTAL_BILLOW_SIMPLEX, 1D, 5), NoiseType.FRACTAL_BILLOW_SIMPLEX), - @Desc("FBM Fractal Simplex Noise. 5 octaves.") + @Description("FBM Fractal Simplex Noise. 5 octaves.") QUINTOCTAVE_FRACTAL_FBM_SIMPLEX(rng -> new CNG(rng, NoiseType.FRACTAL_FBM_SIMPLEX, 1D, 5), NoiseType.FRACTAL_FBM_SIMPLEX), - @Desc("Rigid Multi Fractal Simplex Noise. 6 octaves.") + @Description("Rigid Multi Fractal Simplex Noise. 6 octaves.") SEXOCTAVE_FRACTAL_RM_SIMPLEX(rng -> new CNG(rng, NoiseType.FRACTAL_RIGID_MULTI_SIMPLEX, 1D, 6), NoiseType.FRACTAL_RIGID_MULTI_SIMPLEX), - @Desc("Billow Fractal Simplex Noise. 6 octaves.") + @Description("Billow Fractal Simplex Noise. 6 octaves.") SEXOCTAVE_FRACTAL_BILLOW_SIMPLEX(rng -> new CNG(rng, NoiseType.FRACTAL_BILLOW_SIMPLEX, 1D, 6), NoiseType.FRACTAL_BILLOW_SIMPLEX), - @Desc("FBM Fractal Simplex Noise. 6 octaves.") + @Description("FBM Fractal Simplex Noise. 6 octaves.") SEXOCTAVE_FRACTAL_FBM_SIMPLEX(rng -> new CNG(rng, NoiseType.FRACTAL_FBM_SIMPLEX, 1D, 6), NoiseType.FRACTAL_FBM_SIMPLEX), - @Desc("Rigid Multi Fractal Simplex Noise. 7 octaves.") + @Description("Rigid Multi Fractal Simplex Noise. 7 octaves.") SEPTOCTAVE_FRACTAL_RM_SIMPLEX(rng -> new CNG(rng, NoiseType.FRACTAL_RIGID_MULTI_SIMPLEX, 1D, 7), NoiseType.FRACTAL_RIGID_MULTI_SIMPLEX), - @Desc("Billow Fractal Simplex Noise. 7 octaves.") + @Description("Billow Fractal Simplex Noise. 7 octaves.") SEPTOCTAVE_FRACTAL_BILLOW_SIMPLEX(rng -> new CNG(rng, NoiseType.FRACTAL_BILLOW_SIMPLEX, 1D, 7), NoiseType.FRACTAL_BILLOW_SIMPLEX), - @Desc("FBM Fractal Simplex Noise. 7 octaves.") + @Description("FBM Fractal Simplex Noise. 7 octaves.") SEPTOCTAVE_FRACTAL_FBM_SIMPLEX(rng -> new CNG(rng, NoiseType.FRACTAL_FBM_SIMPLEX, 1D, 7), NoiseType.FRACTAL_FBM_SIMPLEX), - @Desc("Rigid Multi Fractal Simplex Noise. 8 octaves.") + @Description("Rigid Multi Fractal Simplex Noise. 8 octaves.") OCTOCTAVE_FRACTAL_RM_SIMPLEX(rng -> new CNG(rng, NoiseType.FRACTAL_RIGID_MULTI_SIMPLEX, 1D, 8), NoiseType.FRACTAL_RIGID_MULTI_SIMPLEX), - @Desc("Billow Fractal Simplex Noise. 8 octaves.") + @Description("Billow Fractal Simplex Noise. 8 octaves.") OCTOCTAVE_FRACTAL_BILLOW_SIMPLEX(rng -> new CNG(rng, NoiseType.FRACTAL_BILLOW_SIMPLEX, 1D, 8), NoiseType.FRACTAL_BILLOW_SIMPLEX), - @Desc("FBM Fractal Simplex Noise. 8 octaves.") + @Description("FBM Fractal Simplex Noise. 8 octaves.") OCTOCTAVE_FRACTAL_FBM_SIMPLEX(rng -> new CNG(rng, NoiseType.FRACTAL_FBM_SIMPLEX, 1D, 8), NoiseType.FRACTAL_FBM_SIMPLEX), - @Desc("Rigid Multi Fractal Simplex Noise. 9 octaves.") + @Description("Rigid Multi Fractal Simplex Noise. 9 octaves.") NONOCTAVE_FRACTAL_RM_SIMPLEX(rng -> new CNG(rng, NoiseType.FRACTAL_RIGID_MULTI_SIMPLEX, 1D, 9), NoiseType.FRACTAL_RIGID_MULTI_SIMPLEX), - @Desc("Billow Fractal Simplex Noise. 9 octaves.") + @Description("Billow Fractal Simplex Noise. 9 octaves.") NONOCTAVE_FRACTAL_BILLOW_SIMPLEX(rng -> new CNG(rng, NoiseType.FRACTAL_BILLOW_SIMPLEX, 1D, 9), NoiseType.FRACTAL_BILLOW_SIMPLEX), - @Desc("FBM Fractal Simplex Noise. 9 octaves.") + @Description("FBM Fractal Simplex Noise. 9 octaves.") NONOCTAVE_FRACTAL_FBM_SIMPLEX(rng -> new CNG(rng, NoiseType.FRACTAL_FBM_SIMPLEX, 1D, 9), NoiseType.FRACTAL_FBM_SIMPLEX), - @Desc("Rigid Multi Fractal Simplex Noise. 10 octaves.") + @Description("Rigid Multi Fractal Simplex Noise. 10 octaves.") VIGOCTAVE_FRACTAL_RM_SIMPLEX(rng -> new CNG(rng, NoiseType.FRACTAL_RIGID_MULTI_SIMPLEX, 1D, 10), NoiseType.FRACTAL_RIGID_MULTI_SIMPLEX), - @Desc("Billow Fractal Simplex Noise. 10 octaves.") + @Description("Billow Fractal Simplex Noise. 10 octaves.") VIGOCTAVE_FRACTAL_BILLOW_SIMPLEX(rng -> new CNG(rng, NoiseType.FRACTAL_BILLOW_SIMPLEX, 1D, 10), NoiseType.FRACTAL_BILLOW_SIMPLEX), - @Desc("FBM Fractal Simplex Noise. 10 octaves.") + @Description("FBM Fractal Simplex Noise. 10 octaves.") VIGOCTAVE_FRACTAL_FBM_SIMPLEX(rng -> new CNG(rng, NoiseType.FRACTAL_FBM_SIMPLEX, 1D, 10), NoiseType.FRACTAL_FBM_SIMPLEX), - @Desc("Basic, Smooth & Fast Simplex noise. Uses 2 octaves") + @Description("Basic, Smooth & Fast Simplex noise. Uses 2 octaves") BIOCTAVE_SIMPLEX(rng -> new CNG(rng, 1D, 2)), - @Desc("Basic, Smooth & Fast Simplex noise. Uses 3 octaves") + @Description("Basic, Smooth & Fast Simplex noise. Uses 3 octaves") TRIOCTAVE_SIMPLEX(rng -> new CNG(rng, 1D, 3)), - @Desc("Basic, Smooth & Fast Simplex noise. Uses 4 octaves") + @Description("Basic, Smooth & Fast Simplex noise. Uses 4 octaves") QUADOCTAVE_SIMPLEX(rng -> new CNG(rng, 1D, 4)), - @Desc("Basic, Smooth & Fast Simplex noise. Uses 5 octaves") + @Description("Basic, Smooth & Fast Simplex noise. Uses 5 octaves") QUINTOCTAVE_SIMPLEX(rng -> new CNG(rng, 1D, 5)), - @Desc("Basic, Smooth & Fast Simplex noise. Uses 6 octaves") + @Description("Basic, Smooth & Fast Simplex noise. Uses 6 octaves") SEXOCTAVE_SIMPLEX(rng -> new CNG(rng, 1D, 6)), - @Desc("Basic, Smooth & Fast Simplex noise. Uses 7 octaves") + @Description("Basic, Smooth & Fast Simplex noise. Uses 7 octaves") SEPTOCTAVE_SIMPLEX(rng -> new CNG(rng, 1D, 7)), - @Desc("Basic, Smooth & Fast Simplex noise. Uses 8 octaves") + @Description("Basic, Smooth & Fast Simplex noise. Uses 8 octaves") OCTOCTAVE_SIMPLEX(rng -> new CNG(rng, 1D, 8)), - @Desc("Basic, Smooth & Fast Simplex noise. Uses 9 octaves") + @Description("Basic, Smooth & Fast Simplex noise. Uses 9 octaves") NONOCTAVE_SIMPLEX(rng -> new CNG(rng, 1D, 9)), - @Desc("Basic, Smooth & Fast Simplex noise. Uses 10 octaves") + @Description("Basic, Smooth & Fast Simplex noise. Uses 10 octaves") VIGOCTAVE_SIMPLEX(rng -> new CNG(rng, 1D, 10)), - @Desc("Glob noise is like cellular, but with globs...") + @Description("Glob noise is like cellular, but with globs...") GLOB(rng -> new CNG(rng, NoiseType.GLOB, 1D, 1), NoiseType.GLOB), - @Desc("Glob noise is like cellular, but with globs...") + @Description("Glob noise is like cellular, but with globs...") GLOB_IRIS(rng -> CNG.signature(rng, NoiseType.GLOB), NoiseType.GLOB), - @Desc("Glob noise is like cellular, but with globs...") + @Description("Glob noise is like cellular, but with globs...") GLOB_IRIS_HALF(rng -> CNG.signatureHalf(rng, NoiseType.GLOB), NoiseType.GLOB), - @Desc("Glob noise is like cellular, but with globs...") + @Description("Glob noise is like cellular, but with globs...") GLOB_IRIS_DOUBLE(rng -> CNG.signatureDouble(rng, NoiseType.GLOB), NoiseType.GLOB), - @Desc("Glob noise is like cellular, but with globs...") + @Description("Glob noise is like cellular, but with globs...") GLOB_IRIS_THICK(rng -> CNG.signatureThick(rng, NoiseType.GLOB), NoiseType.GLOB), - @Desc("Cubic Noise") + @Description("Cubic Noise") CUBIC(rng -> new CNG(rng, NoiseType.CUBIC, 1D, 1), NoiseType.CUBIC), - @Desc("Fractal Cubic Noise") + @Description("Fractal Cubic Noise") FRACTAL_CUBIC(rng -> new CNG(rng, NoiseType.FRACTAL_CUBIC, 1D, 1), NoiseType.FRACTAL_CUBIC), - @Desc("Fractal Cubic Noise With Iris Swirls") + @Description("Fractal Cubic Noise With Iris Swirls") FRACTAL_CUBIC_IRIS(rng -> CNG.signature(rng, NoiseType.FRACTAL_CUBIC), NoiseType.FRACTAL_CUBIC), - @Desc("Fractal Cubic Noise With Iris Swirls") + @Description("Fractal Cubic Noise With Iris Swirls") FRACTAL_CUBIC_IRIS_THICK(rng -> CNG.signatureThick(rng, NoiseType.FRACTAL_CUBIC), NoiseType.FRACTAL_CUBIC), - @Desc("Fractal Cubic Noise With Iris Swirls") + @Description("Fractal Cubic Noise With Iris Swirls") FRACTAL_CUBIC_IRIS_HALF(rng -> CNG.signatureHalf(rng, NoiseType.FRACTAL_CUBIC), NoiseType.FRACTAL_CUBIC), - @Desc("Fractal Cubic Noise With Iris Swirls") + @Description("Fractal Cubic Noise With Iris Swirls") FRACTAL_CUBIC_IRIS_DOUBLE(rng -> CNG.signatureDouble(rng, NoiseType.FRACTAL_CUBIC), NoiseType.FRACTAL_CUBIC), - @Desc("Fractal Cubic Noise, 2 Octaves") + @Description("Fractal Cubic Noise, 2 Octaves") BIOCTAVE_FRACTAL_CUBIC(rng -> new CNG(rng, NoiseType.FRACTAL_CUBIC, 1D, 2), NoiseType.FRACTAL_CUBIC), - @Desc("Fractal Cubic Noise, 3 Octaves") + @Description("Fractal Cubic Noise, 3 Octaves") TRIOCTAVE_FRACTAL_CUBIC(rng -> new CNG(rng, NoiseType.FRACTAL_CUBIC, 1D, 3), NoiseType.FRACTAL_CUBIC), - @Desc("Fractal Cubic Noise, 4 Octaves") + @Description("Fractal Cubic Noise, 4 Octaves") QUADOCTAVE_FRACTAL_CUBIC(rng -> new CNG(rng, NoiseType.FRACTAL_CUBIC, 1D, 4), NoiseType.FRACTAL_CUBIC), - @Desc("Cubic Noise") + @Description("Cubic Noise") CUBIC_IRIS(rng -> CNG.signature(rng, NoiseType.CUBIC), NoiseType.CUBIC), - @Desc("Cubic Noise") + @Description("Cubic Noise") CUBIC_IRIS_HALF(rng -> CNG.signatureHalf(rng, NoiseType.CUBIC), NoiseType.CUBIC), - @Desc("Cubic Noise") + @Description("Cubic Noise") CUBIC_IRIS_DOUBLE(rng -> CNG.signatureDouble(rng, NoiseType.CUBIC), NoiseType.CUBIC), - @Desc("Cubic Noise") + @Description("Cubic Noise") CUBIC_IRIS_THICK(rng -> CNG.signatureThick(rng, NoiseType.CUBIC), NoiseType.CUBIC), - @Desc("Hexagonal cell noise distorted using Iris styled wispy noise.") + @Description("Hexagonal cell noise distorted using Iris styled wispy noise.") HEXAGON_IRIS(rng -> CNG.signature(rng, NoiseType.HEXAGON), NoiseType.HEXAGON), - @Desc("Hexagonal cell noise distorted using Iris styled wispy noise.") + @Description("Hexagonal cell noise distorted using Iris styled wispy noise.") HEXAGON_IRIS_DOUBLE(rng -> CNG.signatureDouble(rng, NoiseType.HEXAGON), NoiseType.HEXAGON), - @Desc("Hexagonal cell noise distorted using Iris styled wispy noise.") + @Description("Hexagonal cell noise distorted using Iris styled wispy noise.") HEXAGON_IRIS_THICK(rng -> CNG.signatureThick(rng, NoiseType.HEXAGON), NoiseType.HEXAGON), - @Desc("Hexagonal cell noise distorted using Iris styled wispy noise.") + @Description("Hexagonal cell noise distorted using Iris styled wispy noise.") HEXAGON_IRIS_HALF(rng -> CNG.signatureHalf(rng, NoiseType.HEXAGON), NoiseType.HEXAGON), - @Desc("Hex James substitution pattern distorted using Iris styled wispy noise.") + @Description("Hex James substitution pattern distorted using Iris styled wispy noise.") HEX_JAMES_IRIS(rng -> CNG.signature(rng, NoiseType.HEX_JAMES), NoiseType.HEX_JAMES), - @Desc("Hex James substitution pattern distorted using Iris styled wispy noise.") + @Description("Hex James substitution pattern distorted using Iris styled wispy noise.") HEX_JAMES_IRIS_DOUBLE(rng -> CNG.signatureDouble(rng, NoiseType.HEX_JAMES), NoiseType.HEX_JAMES), - @Desc("Hex James substitution pattern distorted using Iris styled wispy noise.") + @Description("Hex James substitution pattern distorted using Iris styled wispy noise.") HEX_JAMES_IRIS_THICK(rng -> CNG.signatureThick(rng, NoiseType.HEX_JAMES), NoiseType.HEX_JAMES), - @Desc("Hex James substitution pattern distorted using Iris styled wispy noise.") + @Description("Hex James substitution pattern distorted using Iris styled wispy noise.") HEX_JAMES_IRIS_HALF(rng -> CNG.signatureHalf(rng, NoiseType.HEX_JAMES), NoiseType.HEX_JAMES), - @Desc("Interlocked solid hex-cell simplex heatmap distorted using Iris styled wispy noise.") + @Description("Interlocked solid hex-cell simplex heatmap distorted using Iris styled wispy noise.") HEX_SIMPLEX_IRIS(rng -> CNG.signature(rng, NoiseType.HEX_SIMPLEX), NoiseType.HEX_SIMPLEX), - @Desc("Interlocked solid hex-cell simplex heatmap distorted using Iris styled wispy noise.") + @Description("Interlocked solid hex-cell simplex heatmap distorted using Iris styled wispy noise.") HEX_SIMPLEX_IRIS_DOUBLE(rng -> CNG.signatureDouble(rng, NoiseType.HEX_SIMPLEX), NoiseType.HEX_SIMPLEX), - @Desc("Interlocked solid hex-cell simplex heatmap distorted using Iris styled wispy noise.") + @Description("Interlocked solid hex-cell simplex heatmap distorted using Iris styled wispy noise.") HEX_SIMPLEX_IRIS_THICK(rng -> CNG.signatureThick(rng, NoiseType.HEX_SIMPLEX), NoiseType.HEX_SIMPLEX), - @Desc("Interlocked solid hex-cell simplex heatmap distorted using Iris styled wispy noise.") + @Description("Interlocked solid hex-cell simplex heatmap distorted using Iris styled wispy noise.") HEX_SIMPLEX_IRIS_HALF(rng -> CNG.signatureHalf(rng, NoiseType.HEX_SIMPLEX), NoiseType.HEX_SIMPLEX), - @Desc("Hexagonal random-size gradient noise and distorted using Iris styled wispy noise.") + @Description("Hexagonal random-size gradient noise and distorted using Iris styled wispy noise.") HEX_RANDOM_SIZE_IRIS(rng -> CNG.signature(rng, NoiseType.HEX_RANDOM_SIZE), NoiseType.HEX_RANDOM_SIZE), - @Desc("Hexagonal random-size gradient noise and distorted using Iris styled wispy noise.") + @Description("Hexagonal random-size gradient noise and distorted using Iris styled wispy noise.") HEX_RANDOM_SIZE_IRIS_DOUBLE(rng -> CNG.signatureDouble(rng, NoiseType.HEX_RANDOM_SIZE), NoiseType.HEX_RANDOM_SIZE), - @Desc("Hexagonal random-size gradient noise and distorted using Iris styled wispy noise.") + @Description("Hexagonal random-size gradient noise and distorted using Iris styled wispy noise.") HEX_RANDOM_SIZE_IRIS_THICK(rng -> CNG.signatureThick(rng, NoiseType.HEX_RANDOM_SIZE), NoiseType.HEX_RANDOM_SIZE), - @Desc("Hexagonal random-size gradient noise and distorted using Iris styled wispy noise.") + @Description("Hexagonal random-size gradient noise and distorted using Iris styled wispy noise.") HEX_RANDOM_SIZE_IRIS_HALF(rng -> CNG.signatureHalf(rng, NoiseType.HEX_RANDOM_SIZE), NoiseType.HEX_RANDOM_SIZE), - @Desc("Cellular noise creates the same noise level for cells, changes noise level on cell borders. Cells are distorted using Iris styled wispy noise.") + @Description("Cellular noise creates the same noise level for cells, changes noise level on cell borders. Cells are distorted using Iris styled wispy noise.") CELLULAR_IRIS(rng -> CNG.signature(rng, NoiseType.CELLULAR), NoiseType.CELLULAR), - @Desc("Cellular noise creates the same noise level for cells, changes noise level on cell borders. Cells are distorted using Iris styled wispy noise.") + @Description("Cellular noise creates the same noise level for cells, changes noise level on cell borders. Cells are distorted using Iris styled wispy noise.") CELLULAR_IRIS_THICK(rng -> CNG.signatureThick(rng, NoiseType.CELLULAR), NoiseType.CELLULAR), - @Desc("Cellular noise creates the same noise level for cells, changes noise level on cell borders. Cells are distorted using Iris styled wispy noise.") + @Description("Cellular noise creates the same noise level for cells, changes noise level on cell borders. Cells are distorted using Iris styled wispy noise.") CELLULAR_IRIS_DOUBLE(rng -> CNG.signatureDouble(rng, NoiseType.CELLULAR), NoiseType.CELLULAR), - @Desc("Cellular noise creates the same noise level for cells, changes noise level on cell borders. Cells are distorted using Iris styled wispy noise.") + @Description("Cellular noise creates the same noise level for cells, changes noise level on cell borders. Cells are distorted using Iris styled wispy noise.") CELLULAR_IRIS_HALF(rng -> CNG.signatureHalf(rng, NoiseType.CELLULAR), NoiseType.CELLULAR), - @Desc("Inverse of vascular, height gets to 1.0 as it approaches the center of a cell") + @Description("Inverse of vascular, height gets to 1.0 as it approaches the center of a cell") CELLULAR_HEIGHT(rng -> new CNG(rng, NoiseType.CELLULAR_HEIGHT, 1D, 1), NoiseType.CELLULAR_HEIGHT), - @Desc("Inverse of vascular, height gets to 1.0 as it approaches the center of a cell, using the iris style.") + @Description("Inverse of vascular, height gets to 1.0 as it approaches the center of a cell, using the iris style.") CELLULAR_HEIGHT_IRIS(rng -> CNG.signature(rng, NoiseType.CELLULAR_HEIGHT), NoiseType.CELLULAR_HEIGHT), - @Desc("Inverse of vascular, height gets to 1.0 as it approaches the center of a cell, using the iris style.") + @Description("Inverse of vascular, height gets to 1.0 as it approaches the center of a cell, using the iris style.") CELLULAR_HEIGHT_IRIS_DOUBLE(rng -> CNG.signatureDouble(rng, NoiseType.CELLULAR_HEIGHT), NoiseType.CELLULAR_HEIGHT), - @Desc("Inverse of vascular, height gets to 1.0 as it approaches the center of a cell, using the iris style.") + @Description("Inverse of vascular, height gets to 1.0 as it approaches the center of a cell, using the iris style.") CELLULAR_HEIGHT_IRIS_THICK(rng -> CNG.signatureThick(rng, NoiseType.CELLULAR_HEIGHT), NoiseType.CELLULAR_HEIGHT), - @Desc("Inverse of vascular, height gets to 1.0 as it approaches the center of a cell, using the iris style.") + @Description("Inverse of vascular, height gets to 1.0 as it approaches the center of a cell, using the iris style.") CELLULAR_HEIGHT_IRIS_HALF(rng -> CNG.signatureHalf(rng, NoiseType.CELLULAR_HEIGHT), NoiseType.CELLULAR_HEIGHT), - @Desc("Vascular noise gets higher as the position nears a cell border. Cells are distorted using Iris styled wispy noise.") + @Description("Vascular noise gets higher as the position nears a cell border. Cells are distorted using Iris styled wispy noise.") VASCULAR_IRIS(rng -> CNG.signature(rng, NoiseType.VASCULAR), NoiseType.VASCULAR), - @Desc("Vascular noise gets higher as the position nears a cell border. Cells are distorted using Iris styled wispy noise.") + @Description("Vascular noise gets higher as the position nears a cell border. Cells are distorted using Iris styled wispy noise.") VASCULAR_IRIS_DOUBLE(rng -> CNG.signatureDouble(rng, NoiseType.VASCULAR), NoiseType.VASCULAR), - @Desc("Vascular noise gets higher as the position nears a cell border. Cells are distorted using Iris styled wispy noise.") + @Description("Vascular noise gets higher as the position nears a cell border. Cells are distorted using Iris styled wispy noise.") VASCULAR_IRIS_THICK(rng -> CNG.signatureThick(rng, NoiseType.VASCULAR), NoiseType.VASCULAR), - @Desc("Vascular noise gets higher as the position nears a cell border. Cells are distorted using Iris styled wispy noise.") + @Description("Vascular noise gets higher as the position nears a cell border. Cells are distorted using Iris styled wispy noise.") VASCULAR_IRIS_HALF(rng -> CNG.signatureHalf(rng, NoiseType.VASCULAR), NoiseType.VASCULAR), - @Desc("Warped gyroid sheets form rounded mazes in 2D and interconnected labyrinths in 3D.") + @Description("Warped gyroid sheets form rounded mazes in 2D and interconnected labyrinths in 3D.") GYROID(rng -> new CNG(rng, NoiseType.GYROID, 1D, 1), NoiseType.GYROID), - @Desc("Fivefold wave interference forms non-repeating stars, rosettes, and crystalline contours.") + @Description("Fivefold wave interference forms non-repeating stars, rosettes, and crystalline contours.") QUASICRYSTAL(rng -> new CNG(rng, NoiseType.QUASICRYSTAL, 1D, 1), NoiseType.QUASICRYSTAL), - @Desc("Connected quarter-circle ribbons form tiled loops that twist continuously through height.") + @Description("Connected quarter-circle ribbons form tiled loops that twist continuously through height.") TRUCHET(rng -> new CNG(rng, NoiseType.TRUCHET, 1D, 1), NoiseType.TRUCHET), - @Desc("Scattered bowls with raised rims form crater fields in 2D and hollow shells in 3D.") + @Description("Scattered bowls with raised rims form crater fields in 2D and hollow shells in 3D.") CRATER(rng -> new CNG(rng, NoiseType.CRATER, 1D, 1), NoiseType.CRATER), - @Desc("Seeded spiral arms form swirling eddies in 2D and winding funnels in 3D.") + @Description("Seeded spiral arms form swirling eddies in 2D and winding funnels in 3D.") VORTEX(rng -> new CNG(rng, NoiseType.VORTEX, 1D, 1), NoiseType.VORTEX), - @Desc("Seeded crescent dunes with asymmetric slopes and smooth height-dependent drift.") + @Description("Seeded crescent dunes with asymmetric slopes and smooth height-dependent drift.") DUNE(rng -> new CNG(rng, NoiseType.DUNE, 1D, 1), NoiseType.DUNE), - @Desc("Folded sedimentary bands with varying thickness through the volume.") + @Description("Folded sedimentary bands with varying thickness through the volume.") STRATA(rng -> new CNG(rng, NoiseType.STRATA, 1D, 1), NoiseType.STRATA), - @Desc("Distorted growth rings and knot-like forms with variation through height.") + @Description("Distorted growth rings and knot-like forms with variation through height.") WOOD(rng -> new CNG(rng, NoiseType.WOOD, 1D, 1), NoiseType.WOOD), - @Desc("Seeded oriented wave packets form a sparse directional ripple texture.") + @Description("Seeded oriented wave packets form a sparse directional ripple texture.") GABOR(rng -> new CNG(rng, NoiseType.GABOR, 1D, 1), NoiseType.GABOR), - @Desc("Turbulent stone veins separate broad smooth regions.") + @Description("Turbulent stone veins separate broad smooth regions.") MARBLE(rng -> new CNG(rng, NoiseType.MARBLE, 1D, 1), NoiseType.MARBLE), - @Desc("Overlapping scalloped scales form a seeded tiled surface.") + @Description("Overlapping scalloped scales form a seeded tiled surface.") SCALES(rng -> new CNG(rng, NoiseType.SCALES, 1D, 1), NoiseType.SCALES), - @Desc("Standing-wave nodes form plate-like figures that change through height.") + @Description("Standing-wave nodes form plate-like figures that change through height.") CHLADNI(rng -> new CNG(rng, NoiseType.CHLADNI, 1D, 1), NoiseType.CHLADNI), - @Desc("Mirrored wedge motifs repeat at a local scale with seeded variation.") + @Description("Mirrored wedge motifs repeat at a local scale with seeded variation.") KALEIDOSCOPE(rng -> new CNG(rng, NoiseType.KALEIDOSCOPE, 1D, 1), NoiseType.KALEIDOSCOPE), - @Desc("Recursive cubic voids form a three-dimensional sponge with square-hole slices.") + @Description("Recursive cubic voids form a three-dimensional sponge with square-hole slices.") MENGER_SPONGE(rng -> new CNG(rng, NoiseType.MENGER_SPONGE, 1D, 1), NoiseType.MENGER_SPONGE), - @Desc("Orthogonal tracks and ring pads form connected circuits that shift through height.") + @Description("Orthogonal tracks and ring pads form connected circuits that shift through height.") CIRCUIT(rng -> new CNG(rng, NoiseType.CIRCUIT, 1D, 1), NoiseType.CIRCUIT), ; @@ -607,7 +607,6 @@ public enum NoiseStyle { public CNG create(RNG seed) { CNG cng = f.create(seed).bake().scale(type.getCoordinateScale()).bake(); - cng.setLeakStyle(this); return cng; } diff --git a/core/src/main/java/art/arcane/iris/engine/framework/BiomeEnvironment.java b/core/src/main/java/art/arcane/iris/generation/runtime/BiomeEnvironment.java similarity index 72% rename from core/src/main/java/art/arcane/iris/engine/framework/BiomeEnvironment.java rename to core/src/main/java/art/arcane/iris/generation/runtime/BiomeEnvironment.java index e4d8a8a37..a5d8207e5 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/BiomeEnvironment.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/BiomeEnvironment.java @@ -1,9 +1,9 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/BlockEditAccess.java b/core/src/main/java/art/arcane/iris/generation/runtime/BlockEditAccess.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/framework/BlockEditAccess.java rename to core/src/main/java/art/arcane/iris/generation/runtime/BlockEditAccess.java index 65873fb71..e8ee8a589 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/BlockEditAccess.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/BlockEditAccess.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; public interface BlockEditAccess { B get(W world, int x, int y, int z); diff --git a/core/src/main/java/art/arcane/iris/engine/framework/BlockUpdater.java b/core/src/main/java/art/arcane/iris/generation/runtime/BlockUpdater.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/framework/BlockUpdater.java rename to core/src/main/java/art/arcane/iris/generation/runtime/BlockUpdater.java index 8cd73acbd..70916b3c0 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/BlockUpdater.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/BlockUpdater.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; import art.arcane.iris.spi.PlatformBlockState; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/BukkitEngineWorldManager.java b/core/src/main/java/art/arcane/iris/generation/runtime/BukkitEngineWorldManager.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/framework/BukkitEngineWorldManager.java rename to core/src/main/java/art/arcane/iris/generation/runtime/BukkitEngineWorldManager.java index 8f60c26fd..da15c1e41 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/BukkitEngineWorldManager.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/BukkitEngineWorldManager.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; import org.bukkit.Chunk; import org.bukkit.event.block.BlockBreakEvent; diff --git a/core/src/main/java/art/arcane/iris/engine/DimensionStackContext.java b/core/src/main/java/art/arcane/iris/generation/runtime/DimensionStackContext.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/DimensionStackContext.java rename to core/src/main/java/art/arcane/iris/generation/runtime/DimensionStackContext.java index f453922a5..19a165c47 100644 --- a/core/src/main/java/art/arcane/iris/engine/DimensionStackContext.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/DimensionStackContext.java @@ -1,12 +1,11 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisDimensionStack; -import art.arcane.iris.engine.object.IrisDimensionStackBlend; -import art.arcane.iris.engine.object.IrisGeneratorStyle; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisDimensionStack; +import art.arcane.iris.generation.terrain.IrisDimensionStackBlend; +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.volmlib.util.noise.CNG; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; import com.github.benmanes.caffeine.cache.Cache; diff --git a/core/src/main/java/art/arcane/iris/engine/DimensionStackLayout.java b/core/src/main/java/art/arcane/iris/generation/runtime/DimensionStackLayout.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/DimensionStackLayout.java rename to core/src/main/java/art/arcane/iris/generation/runtime/DimensionStackLayout.java index 2838995f1..ffcee24ed 100644 --- a/core/src/main/java/art/arcane/iris/engine/DimensionStackLayout.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/DimensionStackLayout.java @@ -1,8 +1,8 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.terrain.Terrain3DColumn; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.generation.terrain.Terrain3DColumn; import art.arcane.iris.spi.PlatformBlockState; import java.util.ArrayList; diff --git a/core/src/main/java/art/arcane/iris/engine/DimensionTerrainContext.java b/core/src/main/java/art/arcane/iris/generation/runtime/DimensionTerrainContext.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/DimensionTerrainContext.java rename to core/src/main/java/art/arcane/iris/generation/runtime/DimensionTerrainContext.java index 97f850f7c..193bd2f07 100644 --- a/core/src/main/java/art/arcane/iris/engine/DimensionTerrainContext.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/DimensionTerrainContext.java @@ -1,24 +1,25 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.image.IrisImageMapRuntime; -import art.arcane.iris.engine.object.InferredType; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisGenerator; -import art.arcane.iris.engine.object.IrisInterpolator; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisShapedGeneratorStyle; -import art.arcane.iris.engine.terrain.Terrain3DColumn; -import art.arcane.iris.engine.terrain.Terrain3DRuntime; +import art.arcane.iris.generation.stream.GenerationStreams; + +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.image.IrisImageMapRuntime; +import art.arcane.iris.generation.terrain.InferredType; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.noise.IrisGenerator; +import art.arcane.iris.generation.noise.IrisInterpolator; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.generation.noise.IrisShapedGeneratorStyle; +import art.arcane.iris.generation.terrain.Terrain3DColumn; +import art.arcane.iris.generation.terrain.Terrain3DRuntime; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.DataProvider; -import art.arcane.iris.util.project.interpolation.NoiseBounds; -import art.arcane.iris.util.project.stream.ProceduralStream; -import art.arcane.iris.util.project.stream.interpolation.Interpolated; +import art.arcane.iris.generation.block.DataProvider; +import art.arcane.volmlib.util.interpolation.NoiseBounds; +import art.arcane.volmlib.util.stream.ProceduralStream; +import art.arcane.volmlib.util.stream.interpolation.Interpolated; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; @@ -232,9 +233,8 @@ public final class DimensionTerrainContext implements DataProvider { Interpolated.of(value -> 0D, value -> focusRegion) ); ProceduralStream regionStream = focusRegion == null - ? proceduralRegionStream - .convertAware2D((region, x, z) -> mappedRegion(imageMapRuntime, region, x, z)) - .cache2D(cachePrefix + "ImageMappedRegionStream", engine, cacheSize) + ? GenerationStreams.cache2D(proceduralRegionStream + .convertAware2D((region, x, z) -> mappedRegion(imageMapRuntime, region, x, z)), cachePrefix + "ImageMappedRegionStream", engine, cacheSize) : proceduralRegionStream; Map>> preparedBiomeStreams = compileInferredBiomeStreams(dimension, dimensionData, rng, preparedRegions); @@ -284,9 +284,8 @@ public final class DimensionTerrainContext implements DataProvider { Interpolated.of(value -> 0D, value -> focusBiome) ); ProceduralStream baseBiomeStream = focusBiome == null - ? proceduralBaseBiomeStream - .convertAware2D((biome, x, z) -> mappedBiome(imageMapRuntime, biome, x, z)) - .cache2D(cachePrefix + "ImageMappedBaseBiomeStream", engine, cacheSize) + ? GenerationStreams.cache2D(proceduralBaseBiomeStream + .convertAware2D((biome, x, z) -> mappedBiome(imageMapRuntime, biome, x, z)), cachePrefix + "ImageMappedBaseBiomeStream", engine, cacheSize) : proceduralBaseBiomeStream; KList overlayNoise = dimension.getOverlayNoise(); @@ -301,7 +300,7 @@ public final class DimensionTerrainContext implements DataProvider { }); long heightSeed = engine.getSeedManager().getHeight() ^ seedOffset; - ProceduralStream heightStream = ProceduralStream.of((x, z) -> { + ProceduralStream heightStream = GenerationStreams.cache2DDouble(ProceduralStream.of((x, z) -> { IrisBiome biome = baseBiomeStream.get(x, z); if (biome == null) { return mappedTerrainHeight(imageMapRuntime, fluidHeight, x, z); @@ -354,10 +353,9 @@ public final class DimensionTerrainContext implements DataProvider { 0D ); return mappedTerrainHeight(imageMapRuntime, proceduralHeight, x, z); - }, Interpolated.DOUBLE).cache2DDouble( - cachePrefix + "ImageMappedHeightStream", engine, cacheSize); + }, Interpolated.DOUBLE), cachePrefix + "ImageMappedHeightStream", engine, cacheSize); ProceduralStream finalBiomeStream = focusBiome == null - ? heightStream.convertAware2D((height, x, z) -> { + ? GenerationStreams.cache2D(heightStream.convertAware2D((height, x, z) -> { IrisBiome mappedBiome = imageMapRuntime.sampleBiome(x, z); if (mappedBiome != null) { return mappedBiome; @@ -377,11 +375,11 @@ public final class DimensionTerrainContext implements DataProvider { return resolvedBiome == baseBiome ? baseBiome : implode(resolvedBiome, x, z, rng, dataProvider, childSelectionPlans, 3); - }).cache2D(cachePrefix + "ImageMappedFinalBiomeStream", engine, cacheSize) - : ProceduralStream.of( + }), cachePrefix + "ImageMappedFinalBiomeStream", engine, cacheSize) + : GenerationStreams.cache2D(ProceduralStream.of( (x, z) -> focusBiome, Interpolated.of(value -> 0D, value -> focusBiome) - ).cache2D(cachePrefix + "FinalBiomeStreamFocus", engine, cacheSize); + ), cachePrefix + "FinalBiomeStreamFocus", engine, cacheSize); boolean terrain3DEnabled = false; for (IrisBiome biome : allBiomes) { @@ -396,10 +394,8 @@ public final class DimensionTerrainContext implements DataProvider { localHeight, fluidHeight, dimensionData, true, Math.max(4096, cacheSize)) ); ProceduralStream shapedHeightStream = terrain3D == null ? heightStream - : ProceduralStream.ofDouble((x, z) -> shapedHeight(terrain3D, x, z)) - .cache2DDouble(cachePrefix + "Terrain3DHeightStream", engine, cacheSize); - ProceduralStream slopeStream = shapedHeightStream.slope(3) - .cache2DDouble(cachePrefix + "SlopeStream", engine, cacheSize); + : GenerationStreams.cache2DDouble(ProceduralStream.ofDouble((x, z) -> shapedHeight(terrain3D, x, z)), cachePrefix + "Terrain3DHeightStream", engine, cacheSize); + ProceduralStream slopeStream = GenerationStreams.cache2DDouble(shapedHeightStream.slope(3), cachePrefix + "SlopeStream", engine, cacheSize); ProceduralStream rockStream = dimension.getRockPalette() .getLayerGenerator(rng.nextParallelRNG(45), dimensionData).stream() diff --git a/core/src/main/java/art/arcane/iris/engine/framework/Engine.java b/core/src/main/java/art/arcane/iris/generation/runtime/Engine.java similarity index 92% rename from core/src/main/java/art/arcane/iris/engine/framework/Engine.java rename to core/src/main/java/art/arcane/iris/generation/runtime/Engine.java index e44901698..80631fa0f 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/Engine.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/Engine.java @@ -16,65 +16,62 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.terrain.Terrain3DColumn; +import art.arcane.iris.world.history.ChunkGenerationSemantics; + +import art.arcane.iris.structure.nativegen.NativeStructureOwnershipStore; +import art.arcane.iris.structure.nativegen.NativeStructureVolume; +import art.arcane.iris.structure.placement.PlacedObject; +import art.arcane.iris.structure.placement.StructurePlacementMarker; + +import art.arcane.iris.generation.terrain.Terrain3DColumn; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.engine.framework.render.RenderType; -import art.arcane.iris.engine.framework.render.Renderer; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.core.nms.container.BlockPos; -import art.arcane.iris.core.nms.container.Pair; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.UpperDimensionContext; -import art.arcane.iris.engine.DimensionStackContext; -import art.arcane.iris.engine.DimensionStackLayout; -import art.arcane.iris.engine.DimensionTerrainContext; -import art.arcane.iris.engine.data.chunk.TerrainChunk; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisColor; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisDimensionCarvingEntry; -import art.arcane.iris.engine.object.IrisDimensionCarvingResolver; -import art.arcane.iris.engine.object.IrisEngineData; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisObjectPlacement; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisStructure; -import art.arcane.iris.engine.object.IrisWorld; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveStorage; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.studio.render.RenderType; +import art.arcane.iris.studio.render.Renderer; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.generation.mantle.EngineMantle; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.pack.value.IrisColor; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisDimensionCarvingEntry; +import art.arcane.iris.generation.terrain.IrisDimensionCarvingResolver; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.structure.placement.IrisStructure; +import art.arcane.iris.world.IrisWorld; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveStorage; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.project.context.IrisContext; -import art.arcane.iris.util.common.data.DataProvider; -import art.arcane.iris.util.common.data.B; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.iris.generation.context.IrisContext; +import art.arcane.iris.generation.block.DataProvider; +import art.arcane.iris.generation.block.B; import art.arcane.volmlib.util.documentation.BlockCoordinates; import art.arcane.volmlib.util.documentation.ChunkCoordinates; import art.arcane.volmlib.util.function.Function2; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.mantle.flag.MantleFlag; import art.arcane.volmlib.util.math.M; import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.matter.Matter; import art.arcane.volmlib.util.matter.MatterCavern; -import art.arcane.iris.util.common.parallel.BurstExecutor; -import art.arcane.iris.util.common.parallel.MultiBurst; -import art.arcane.iris.util.common.plugin.VolmitSender; +import art.arcane.iris.generation.concurrent.BurstExecutor; +import art.arcane.iris.generation.concurrent.MultiBurst; import art.arcane.volmlib.util.scheduling.ChronoLatch; -import art.arcane.iris.util.common.scheduling.J; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.iris.world.task.J; +import art.arcane.volmlib.util.stream.ProceduralStream; import org.jetbrains.annotations.Nullable; import java.awt.Color; @@ -179,7 +176,7 @@ public interface Engine extends DataProvider, Fallible, BlockUpdater, Renderer, int getBlockUpdatesPerSecond(); - void printMetrics(VolmitSender sender); + void printMetrics(Consumer output); EngineMantle getMantle(); @@ -253,11 +250,6 @@ public interface Engine extends DataProvider, Fallible, BlockUpdater, Renderer, getTarget().getWorld().minHeight(min); } - @BlockCoordinates - default void generate(int x, int z, TerrainChunk tc, boolean multicore) throws WrongEngineBroException { - generate(x, z, Hunk.view(tc), Hunk.viewBiomes(tc), multicore); - } - @BlockCoordinates void generate(int x, int z, Hunk blocks, Hunk biomes, boolean multicore) throws WrongEngineBroException; @@ -377,7 +369,7 @@ public interface Engine extends DataProvider, Fallible, BlockUpdater, Renderer, Set getObjectsAt(int x, int z); @ChunkCoordinates - Set> getPOIsAt(int x, int z); + Set getPOIsAt(int x, int z); @BlockCoordinates default IrisBiome getCaveBiome(int x, int z) { diff --git a/core/src/main/java/art/arcane/iris/engine/framework/EngineActuator.java b/core/src/main/java/art/arcane/iris/generation/runtime/EngineActuator.java similarity index 87% rename from core/src/main/java/art/arcane/iris/engine/framework/EngineActuator.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EngineActuator.java index 245a4d6bf..c75b559f2 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/EngineActuator.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EngineActuator.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.util.project.context.ChunkContext; +import art.arcane.iris.generation.context.ChunkContext; import art.arcane.volmlib.util.documentation.BlockCoordinates; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; public interface EngineActuator extends EngineComponent { @BlockCoordinates void actuate(int x, int z, Hunk output, boolean multicore, ChunkContext context); diff --git a/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedActuator.java b/core/src/main/java/art/arcane/iris/generation/runtime/EngineAssignedActuator.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedActuator.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EngineAssignedActuator.java index 6ce3c16b4..2810cfffd 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedActuator.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EngineAssignedActuator.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.project.context.ChunkContext; +import art.arcane.iris.generation.context.ChunkContext; import art.arcane.volmlib.util.documentation.BlockCoordinates; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; public abstract class EngineAssignedActuator extends EngineAssignedComponent implements EngineActuator { public EngineAssignedActuator(Engine engine, String name) { super(engine, name); diff --git a/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedComponent.java b/core/src/main/java/art/arcane/iris/generation/runtime/EngineAssignedComponent.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedComponent.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EngineAssignedComponent.java index e551e8968..0e0c8c308 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedComponent.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EngineAssignedComponent.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.math.RollingSequence; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedModifier.java b/core/src/main/java/art/arcane/iris/generation/runtime/EngineAssignedModifier.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedModifier.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EngineAssignedModifier.java index a2ba49676..a9722da01 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedModifier.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EngineAssignedModifier.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.project.context.ChunkContext; +import art.arcane.iris.generation.context.ChunkContext; import art.arcane.volmlib.util.documentation.BlockCoordinates; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; public abstract class EngineAssignedModifier extends EngineAssignedComponent implements EngineModifier { public EngineAssignedModifier(Engine engine, String name) { super(engine, name); diff --git a/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedWorldManager.java b/core/src/main/java/art/arcane/iris/generation/runtime/EngineAssignedWorldManager.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedWorldManager.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EngineAssignedWorldManager.java index 1dcb02c8b..995e1a5b0 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedWorldManager.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EngineAssignedWorldManager.java @@ -16,16 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.RuntimeUiMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.RuntimeUiMessages; import art.arcane.iris.platform.bukkit.BukkitWorldBinding; import art.arcane.iris.platform.bukkit.BukkitPlatform; -import art.arcane.iris.core.events.IrisEngineHotloadEvent; -import art.arcane.iris.util.common.format.C; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.event.IrisEngineHotloadEvent; +import art.arcane.iris.localization.C; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import org.bukkit.Location; import org.bukkit.Sound; import org.bukkit.World; diff --git a/core/src/main/java/art/arcane/iris/engine/EngineBackgroundTasks.java b/core/src/main/java/art/arcane/iris/generation/runtime/EngineBackgroundTasks.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/EngineBackgroundTasks.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EngineBackgroundTasks.java index 5536d8a65..820366469 100644 --- a/core/src/main/java/art/arcane/iris/engine/EngineBackgroundTasks.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EngineBackgroundTasks.java @@ -16,13 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.GenerationSessionManager; -import art.arcane.iris.util.common.scheduling.J; -import art.arcane.iris.util.project.context.IrisContext; +import art.arcane.iris.world.task.J; +import art.arcane.iris.generation.context.IrisContext; import java.util.ArrayList; import java.util.Collections; @@ -36,8 +34,8 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import java.util.concurrent.atomic.AtomicInteger; -import static art.arcane.iris.engine.EngineShutdownSequence.appendFailure; -import static art.arcane.iris.engine.EngineShutdownSequence.propagate; +import static art.arcane.iris.generation.runtime.EngineShutdownSequence.appendFailure; +import static art.arcane.iris.generation.runtime.EngineShutdownSequence.propagate; /** * Admission gate and drain tracker for the asynchronous work an {@link IrisEngine} schedules. diff --git a/core/src/main/java/art/arcane/iris/engine/framework/EngineComponent.java b/core/src/main/java/art/arcane/iris/generation/runtime/EngineComponent.java similarity index 89% rename from core/src/main/java/art/arcane/iris/engine/framework/EngineComponent.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EngineComponent.java index a7d34420a..73c1cfcf5 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/EngineComponent.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EngineComponent.java @@ -16,15 +16,14 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; import art.arcane.volmlib.util.math.RollingSequence; -import art.arcane.iris.util.common.parallel.MultiBurst; +import art.arcane.iris.generation.concurrent.MultiBurst; public interface EngineComponent { Engine getEngine(); diff --git a/core/src/main/java/art/arcane/iris/engine/framework/EngineComponentCleanup.java b/core/src/main/java/art/arcane/iris/generation/runtime/EngineComponentCleanup.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/framework/EngineComponentCleanup.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EngineComponentCleanup.java index 9b828a691..74c963944 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/EngineComponentCleanup.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EngineComponentCleanup.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; public interface EngineComponentCleanup { void release(EngineComponent component); diff --git a/core/src/main/java/art/arcane/iris/engine/EngineDataStore.java b/core/src/main/java/art/arcane/iris/generation/runtime/EngineDataStore.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/EngineDataStore.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EngineDataStore.java index ef881fc54..64384fddf 100644 --- a/core/src/main/java/art/arcane/iris/engine/EngineDataStore.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EngineDataStore.java @@ -16,11 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.lifecycle.VanishedWorldStorage; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisEngineData; +import art.arcane.iris.world.lifecycle.VanishedWorldStorage; +import art.arcane.iris.pack.loading.IrisData; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.volmlib.util.io.IO; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/EngineDecorator.java b/core/src/main/java/art/arcane/iris/generation/runtime/EngineDecorator.java similarity index 90% rename from core/src/main/java/art/arcane/iris/engine/framework/EngineDecorator.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EngineDecorator.java index bd8dcdc36..893cfbcb9 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/EngineDecorator.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EngineDecorator.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiome; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; +import art.arcane.iris.generation.block.B; import art.arcane.volmlib.util.documentation.BlockCoordinates; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; public interface EngineDecorator extends EngineComponent { diff --git a/core/src/main/java/art/arcane/iris/engine/EngineDiagnostics.java b/core/src/main/java/art/arcane/iris/generation/runtime/EngineDiagnostics.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/EngineDiagnostics.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EngineDiagnostics.java index 7d7421363..288f8ae50 100644 --- a/core/src/main/java/art/arcane/iris/engine/EngineDiagnostics.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EngineDiagnostics.java @@ -1,8 +1,8 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.compat.PackCompatReport; -import art.arcane.iris.core.pack.PackValidationResult; -import art.arcane.iris.core.pack.PackValidationRegistry; +import art.arcane.iris.pack.validation.PackCompatReport; +import art.arcane.iris.pack.PackValidationResult; +import art.arcane.iris.pack.PackValidationRegistry; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/EngineEffects.java b/core/src/main/java/art/arcane/iris/generation/runtime/EngineEffects.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/framework/EngineEffects.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EngineEffects.java index e79318275..d7c6199d6 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/EngineEffects.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EngineEffects.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; public interface EngineEffects extends EngineComponent { void updatePlayerMap(); diff --git a/core/src/main/java/art/arcane/iris/engine/framework/EngineEffectsProvider.java b/core/src/main/java/art/arcane/iris/generation/runtime/EngineEffectsProvider.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/framework/EngineEffectsProvider.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EngineEffectsProvider.java index dbbcd1772..e5b398de4 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/EngineEffectsProvider.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EngineEffectsProvider.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; public interface EngineEffectsProvider { EngineEffects create(Engine engine); diff --git a/core/src/main/java/art/arcane/iris/engine/EngineHotloader.java b/core/src/main/java/art/arcane/iris/generation/runtime/EngineHotloader.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/EngineHotloader.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EngineHotloader.java index f4f6fd6bb..c763716bc 100644 --- a/core/src/main/java/art/arcane/iris/engine/EngineHotloader.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EngineHotloader.java @@ -16,27 +16,26 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.protocol.IrisProtocolServer; -import art.arcane.iris.engine.GenerationRuntime.BiomeMaxes; -import art.arcane.iris.engine.EngineRuntimeBuilder.RuntimeAssembly; -import art.arcane.iris.engine.IrisEngine.LifecycleState; -import art.arcane.iris.engine.framework.EngineTarget; -import art.arcane.iris.engine.framework.IrisStructureLocator; -import art.arcane.iris.engine.framework.StructureReachability; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.history.GenerationHistory; -import art.arcane.iris.engine.history.IrisBoundarySignatureSampler; -import art.arcane.iris.engine.history.GenerationHistoryRuntimeRouter; -import art.arcane.iris.engine.history.GenerationManifest; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.platform.protocol.IrisProtocolServer; +import art.arcane.iris.generation.runtime.GenerationRuntime.BiomeMaxes; +import art.arcane.iris.generation.runtime.EngineRuntimeBuilder.RuntimeAssembly; +import art.arcane.iris.generation.runtime.IrisEngine.LifecycleState; +import art.arcane.iris.structure.placement.IrisStructureLocator; +import art.arcane.iris.structure.placement.StructureReachability; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.world.history.GenerationHistory; +import art.arcane.iris.world.history.IrisBoundarySignatureSampler; +import art.arcane.iris.world.history.GenerationHistoryRuntimeRouter; +import art.arcane.iris.world.history.GenerationManifest; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.util.project.context.IrisContext; +import art.arcane.iris.generation.context.IrisContext; -import static art.arcane.iris.engine.EngineShutdownSequence.runCleanup; +import static art.arcane.iris.generation.runtime.EngineShutdownSequence.runCleanup; /** * Reloads mutable engine runtimes and publishes immutable Studio generation activations. diff --git a/core/src/main/java/art/arcane/iris/engine/framework/EngineLifecycleTasks.java b/core/src/main/java/art/arcane/iris/generation/runtime/EngineLifecycleTasks.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/framework/EngineLifecycleTasks.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EngineLifecycleTasks.java index 50bf68c60..1ba6b737d 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/EngineLifecycleTasks.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EngineLifecycleTasks.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.util.project.context.IrisContext; +import art.arcane.iris.generation.context.IrisContext; import java.util.Objects; import java.util.Optional; diff --git a/core/src/main/java/art/arcane/iris/core/service/EngineMaintenance.java b/core/src/main/java/art/arcane/iris/generation/runtime/EngineMaintenance.java similarity index 91% rename from core/src/main/java/art/arcane/iris/core/service/EngineMaintenance.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EngineMaintenance.java index 6776dbda8..8b66a4769 100644 --- a/core/src/main/java/art/arcane/iris/core/service/EngineMaintenance.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EngineMaintenance.java @@ -1,11 +1,10 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.gui.PregeneratorJob; -import art.arcane.iris.core.pregenerator.MantleHeapPressure; -import art.arcane.iris.core.runtime.GoldenHashEngine; -import art.arcane.iris.core.tools.WorldMaintenance; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.studio.view.PregeneratorJob; +import art.arcane.iris.world.pregen.MantleHeapPressure; +import art.arcane.iris.generation.validation.GoldenHashEngine; +import art.arcane.iris.world.WorldMaintenance; import java.util.Locale; import java.util.concurrent.TimeUnit; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/EngineMetrics.java b/core/src/main/java/art/arcane/iris/generation/runtime/EngineMetrics.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/framework/EngineMetrics.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EngineMetrics.java index fb165b81b..95d7e08fa 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/EngineMetrics.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EngineMetrics.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; import art.arcane.volmlib.util.atomics.AtomicRollingSequence; import art.arcane.volmlib.util.collection.KMap; diff --git a/core/src/main/java/art/arcane/iris/engine/EngineMetricsReport.java b/core/src/main/java/art/arcane/iris/generation/runtime/EngineMetricsReport.java similarity index 74% rename from core/src/main/java/art/arcane/iris/engine/EngineMetricsReport.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EngineMetricsReport.java index ce4c5e190..acca093b8 100644 --- a/core/src/main/java/art/arcane/iris/engine/EngineMetricsReport.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EngineMetricsReport.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.localization.BukkitRuntimeMessages; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.util.common.format.C; -import art.arcane.iris.util.common.plugin.VolmitSender; +import art.arcane.iris.localization.BukkitRuntimeMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.C; +import java.util.function.Consumer; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.localization.MessageArgument; @@ -38,7 +38,7 @@ final class EngineMetricsReport { this.engine = engine; } - void printMetrics(VolmitSender sender) { + void printMetrics(Consumer output) { KMap totals = new KMap<>(); KMap weights = new KMap<>(); double masterWallClock = engine.getWallClock().getAverage(); @@ -76,20 +76,20 @@ final class EngineMetricsReport { weights.put(i, weights.get(i) / v); } - sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.IRIS_ENGINE_TOTAL, MessageArgument.untrusted("value", String.valueOf(Form.duration(masterWallClock, 0))))); + output.accept(IrisLanguage.text(BukkitRuntimeMessages.IRIS_ENGINE_TOTAL, MessageArgument.untrusted("value", String.valueOf(Form.duration(masterWallClock, 0))))); for (String i : totals.k()) { - sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.IRIS_ENGINE_ENGINE, MessageArgument.untrusted("i", String.valueOf(i)), MessageArgument.untrusted("value", String.valueOf(Form.duration(totals.get(i), 0))))); + output.accept(IrisLanguage.text(BukkitRuntimeMessages.IRIS_ENGINE_ENGINE, MessageArgument.untrusted("i", String.valueOf(i)), MessageArgument.untrusted("value", String.valueOf(Form.duration(totals.get(i), 0))))); } - sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.IRIS_ENGINE_DETAILS)); + output.accept(IrisLanguage.text(BukkitRuntimeMessages.IRIS_ENGINE_DETAILS)); for (String i : weights.sortKNumber().reverse()) { String befb = C.UNDERLINE + "" + C.GREEN + "" + i.split("\\Q[\\E")[0] + C.RESET + C.GRAY + "["; String num = C.GOLD + i.split("\\Q[\\E")[1].split("]")[0] + C.RESET + C.GRAY + "]."; String afb = C.ITALIC + "" + C.AQUA + i.split("\\Q]\\E")[1].substring(1) + C.RESET + C.GRAY; - sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.IRIS_ENGINE_MESSAGE, MessageArgument.untrusted("befb", String.valueOf(befb)), MessageArgument.untrusted("num", String.valueOf(num)), MessageArgument.untrusted("afb", String.valueOf(afb)), MessageArgument.untrusted("value", String.valueOf(Form.pc(weights.get(i), 0))))); + output.accept(IrisLanguage.text(BukkitRuntimeMessages.IRIS_ENGINE_MESSAGE, MessageArgument.untrusted("befb", String.valueOf(befb)), MessageArgument.untrusted("num", String.valueOf(num)), MessageArgument.untrusted("afb", String.valueOf(afb)), MessageArgument.untrusted("value", String.valueOf(Form.pc(weights.get(i), 0))))); } } diff --git a/core/src/main/java/art/arcane/iris/engine/framework/EngineMode.java b/core/src/main/java/art/arcane/iris/generation/runtime/EngineMode.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/framework/EngineMode.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EngineMode.java index ca33bd01e..d74432cb3 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/EngineMode.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EngineMode.java @@ -16,19 +16,17 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.actuator.IrisBiomeActuator; +import art.arcane.iris.generation.stage.IrisBiomeActuator; import art.arcane.volmlib.util.collection.KList; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.project.context.IrisContext; +import art.arcane.iris.generation.mantle.EngineMantle; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.iris.generation.context.IrisContext; import art.arcane.volmlib.util.documentation.BlockCoordinates; -import art.arcane.iris.util.project.hunk.Hunk; -import art.arcane.iris.util.common.parallel.BurstExecutor; -import art.arcane.iris.util.common.parallel.MultiBurst; +import art.arcane.volmlib.util.hunk.Hunk; +import art.arcane.iris.generation.concurrent.BurstExecutor; +import art.arcane.iris.generation.concurrent.MultiBurst; import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBlockState; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/EngineModifier.java b/core/src/main/java/art/arcane/iris/generation/runtime/EngineModifier.java similarity index 87% rename from core/src/main/java/art/arcane/iris/engine/framework/EngineModifier.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EngineModifier.java index 79f1cf5c5..74c15aa50 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/EngineModifier.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EngineModifier.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.util.project.context.ChunkContext; +import art.arcane.iris.generation.context.ChunkContext; import art.arcane.volmlib.util.documentation.BlockCoordinates; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; public interface EngineModifier extends EngineComponent { @BlockCoordinates void modify(int x, int z, Hunk t, boolean multicore, ChunkContext context); diff --git a/core/src/main/java/art/arcane/iris/engine/EnginePanic.java b/core/src/main/java/art/arcane/iris/generation/runtime/EnginePanic.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/EnginePanic.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EnginePanic.java index 0e82c5c97..01e8b3bce 100644 --- a/core/src/main/java/art/arcane/iris/engine/EnginePanic.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EnginePanic.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; import art.arcane.iris.spi.IrisLogging; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/EnginePlatformHooks.java b/core/src/main/java/art/arcane/iris/generation/runtime/EnginePlatformHooks.java similarity index 91% rename from core/src/main/java/art/arcane/iris/engine/framework/EnginePlatformHooks.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EnginePlatformHooks.java index 31e3b73c5..4d6de685a 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/EnginePlatformHooks.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EnginePlatformHooks.java @@ -16,13 +16,15 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.history.SavedTerrainChunk; +import art.arcane.iris.structure.nativegen.NativeStructureVolume; + +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.world.history.SavedTerrainChunk; import java.util.concurrent.CompletableFuture; -import art.arcane.iris.engine.mantle.MantleComponent; +import art.arcane.iris.generation.mantle.MantleComponent; import art.arcane.volmlib.util.collection.KList; public interface EnginePlatformHooks { diff --git a/core/src/main/java/art/arcane/iris/engine/framework/EnginePlayer.java b/core/src/main/java/art/arcane/iris/generation/runtime/EnginePlayer.java similarity index 91% rename from core/src/main/java/art/arcane/iris/engine/framework/EnginePlayer.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EnginePlayer.java index 909d7aa7d..44101bca1 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/EnginePlayer.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EnginePlayer.java @@ -16,16 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisEffect; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.history.SavedBiomeUnavailableException; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.world.entity.IrisEffect; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.world.history.SavedBiomeUnavailableException; import art.arcane.iris.platform.bukkit.BukkitWorldBinding; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.math.M; import lombok.Data; import org.bukkit.Location; diff --git a/core/src/main/java/art/arcane/iris/engine/EngineRuntime.java b/core/src/main/java/art/arcane/iris/generation/runtime/EngineRuntime.java similarity index 91% rename from core/src/main/java/art/arcane/iris/engine/EngineRuntime.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EngineRuntime.java index a8517bd7e..73b391790 100644 --- a/core/src/main/java/art/arcane/iris/engine/EngineRuntime.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EngineRuntime.java @@ -16,10 +16,8 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.framework.EngineEffects; -import art.arcane.iris.engine.framework.EngineWorldManager; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/EngineRuntimeBuilder.java b/core/src/main/java/art/arcane/iris/generation/runtime/EngineRuntimeBuilder.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/EngineRuntimeBuilder.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EngineRuntimeBuilder.java index 305e52329..21cce26ae 100644 --- a/core/src/main/java/art/arcane/iris/engine/EngineRuntimeBuilder.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EngineRuntimeBuilder.java @@ -16,29 +16,22 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.engine.GenerationRuntime.BiomeMaxes; -import art.arcane.iris.engine.framework.SeedManager; -import art.arcane.iris.engine.IrisEngine.LifecycleState; -import art.arcane.iris.engine.framework.EngineEffects; -import art.arcane.iris.engine.framework.EngineEffectsProvider; -import art.arcane.iris.engine.framework.EngineMode; -import art.arcane.iris.engine.framework.EngineTarget; -import art.arcane.iris.engine.framework.EngineWorldManager; -import art.arcane.iris.engine.framework.EngineWorldManagerProvider; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.history.TransitionGenerationPlan; -import art.arcane.iris.engine.history.GenerationKernelRegistry; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBiomePaletteLayer; -import art.arcane.iris.engine.object.IrisDecorator; -import art.arcane.iris.engine.object.IrisObjectPlacement; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.generation.runtime.GenerationRuntime.BiomeMaxes; +import art.arcane.iris.generation.runtime.IrisEngine.LifecycleState; +import art.arcane.iris.generation.mantle.EngineMantle; +import art.arcane.iris.world.history.TransitionGenerationPlan; +import art.arcane.iris.world.history.GenerationKernelRegistry; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiomePaletteLayer; +import art.arcane.iris.generation.decoration.IrisDecorator; +import art.arcane.iris.structure.object.IrisObjectPlacement; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.util.project.context.IrisContext; +import art.arcane.iris.generation.context.IrisContext; import art.arcane.volmlib.util.io.IO; import art.arcane.volmlib.util.math.M; @@ -49,7 +42,7 @@ import java.util.Objects; import java.util.concurrent.CompletableFuture; import java.util.concurrent.atomic.AtomicInteger; -import static art.arcane.iris.engine.EngineShutdownSequence.propagate; +import static art.arcane.iris.generation.runtime.EngineShutdownSequence.propagate; /** * Assembles and publishes {@link EngineRuntime} snapshots for an {@link IrisEngine}. diff --git a/core/src/main/java/art/arcane/iris/engine/EngineShutdownSequence.java b/core/src/main/java/art/arcane/iris/generation/runtime/EngineShutdownSequence.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/EngineShutdownSequence.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EngineShutdownSequence.java index 28a2916d1..acf862713 100644 --- a/core/src/main/java/art/arcane/iris/engine/EngineShutdownSequence.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EngineShutdownSequence.java @@ -16,19 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.EngineBackgroundTasks.BackgroundTaskDrain; -import art.arcane.iris.engine.EngineRuntimeBuilder.RuntimeAssembly; -import art.arcane.iris.engine.IrisEngine.LifecycleState; -import art.arcane.iris.engine.framework.GenerationSessionException; -import art.arcane.iris.engine.framework.EngineTarget; -import art.arcane.iris.engine.framework.NativeStructureOwnershipStore; -import art.arcane.iris.engine.framework.PreservationRegistry; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.history.GenerationAdmission; -import art.arcane.iris.engine.history.GenerationHistory; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.EngineBackgroundTasks.BackgroundTaskDrain; +import art.arcane.iris.generation.runtime.EngineRuntimeBuilder.RuntimeAssembly; +import art.arcane.iris.generation.runtime.IrisEngine.LifecycleState; +import art.arcane.iris.structure.nativegen.NativeStructureOwnershipStore; +import art.arcane.iris.generation.mantle.EngineMantle; +import art.arcane.iris.world.history.GenerationAdmission; +import art.arcane.iris.world.history.GenerationHistory; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/EngineStage.java b/core/src/main/java/art/arcane/iris/generation/runtime/EngineStage.java similarity index 89% rename from core/src/main/java/art/arcane/iris/engine/framework/EngineStage.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EngineStage.java index 1f7735288..e5c6ebe7c 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/EngineStage.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EngineStage.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.context.ChunkContext; +import art.arcane.iris.generation.context.ChunkContext; import art.arcane.volmlib.util.documentation.BlockCoordinates; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; public interface EngineStage { @BlockCoordinates diff --git a/core/src/main/java/art/arcane/iris/engine/framework/EngineTarget.java b/core/src/main/java/art/arcane/iris/generation/runtime/EngineTarget.java similarity index 85% rename from core/src/main/java/art/arcane/iris/engine/framework/EngineTarget.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EngineTarget.java index c9947a0b6..e0e83c179 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/EngineTarget.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EngineTarget.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisWorld; -import art.arcane.iris.util.common.parallel.MultiBurst; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.world.IrisWorld; +import art.arcane.iris.generation.concurrent.MultiBurst; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/EngineTelemetrySnapshot.java b/core/src/main/java/art/arcane/iris/generation/runtime/EngineTelemetrySnapshot.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/framework/EngineTelemetrySnapshot.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EngineTelemetrySnapshot.java index eac0eeb03..6912fcf5c 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/EngineTelemetrySnapshot.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EngineTelemetrySnapshot.java @@ -1,6 +1,5 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.object.IrisEngineStatistics; import java.util.LinkedHashMap; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/EngineTickRegistry.java b/core/src/main/java/art/arcane/iris/generation/runtime/EngineTickRegistry.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/EngineTickRegistry.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EngineTickRegistry.java index 3773e5141..aeaab16bf 100644 --- a/core/src/main/java/art/arcane/iris/engine/EngineTickRegistry.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EngineTickRegistry.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import java.util.Collections; import java.util.IdentityHashMap; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/EngineWorldManager.java b/core/src/main/java/art/arcane/iris/generation/runtime/EngineWorldManager.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/framework/EngineWorldManager.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EngineWorldManager.java index 3158c9bd5..0cae936bd 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/EngineWorldManager.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EngineWorldManager.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; @SuppressWarnings("EmptyMethod") public interface EngineWorldManager { diff --git a/core/src/main/java/art/arcane/iris/engine/framework/EngineWorldManagerProvider.java b/core/src/main/java/art/arcane/iris/generation/runtime/EngineWorldManagerProvider.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/framework/EngineWorldManagerProvider.java rename to core/src/main/java/art/arcane/iris/generation/runtime/EngineWorldManagerProvider.java index cdf617f35..271bfdcf7 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/EngineWorldManagerProvider.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/EngineWorldManagerProvider.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; public interface EngineWorldManagerProvider { EngineWorldManager create(Engine engine); diff --git a/core/src/main/java/art/arcane/iris/engine/framework/Fallible.java b/core/src/main/java/art/arcane/iris/generation/runtime/Fallible.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/framework/Fallible.java rename to core/src/main/java/art/arcane/iris/generation/runtime/Fallible.java index cb7c8a54b..bbebaf600 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/Fallible.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/Fallible.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; import art.arcane.iris.spi.IrisLogging; diff --git a/core/src/main/java/art/arcane/iris/engine/GenerationCacheWarmer.java b/core/src/main/java/art/arcane/iris/generation/runtime/GenerationCacheWarmer.java similarity index 89% rename from core/src/main/java/art/arcane/iris/engine/GenerationCacheWarmer.java rename to core/src/main/java/art/arcane/iris/generation/runtime/GenerationCacheWarmer.java index 235187313..e7ba47a08 100644 --- a/core/src/main/java/art/arcane/iris/engine/GenerationCacheWarmer.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/GenerationCacheWarmer.java @@ -16,17 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDecorator; -import art.arcane.iris.engine.object.IrisObjectPlacement; -import art.arcane.iris.engine.object.IrisOreGenerator; -import art.arcane.iris.engine.object.IrisProceduralObjects; -import art.arcane.iris.engine.object.IrisProceduralPlacement; -import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.decoration.IrisDecorator; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.generation.decoration.IrisOreGenerator; +import art.arcane.iris.generation.decoration.IrisProceduralObjects; +import art.arcane.iris.generation.decoration.IrisProceduralPlacement; +import art.arcane.iris.generation.terrain.IrisRegion; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.M; diff --git a/core/src/main/java/art/arcane/iris/engine/GenerationRuntime.java b/core/src/main/java/art/arcane/iris/generation/runtime/GenerationRuntime.java similarity index 88% rename from core/src/main/java/art/arcane/iris/engine/GenerationRuntime.java rename to core/src/main/java/art/arcane/iris/generation/runtime/GenerationRuntime.java index cd35d143d..61463574a 100644 --- a/core/src/main/java/art/arcane/iris/engine/GenerationRuntime.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/GenerationRuntime.java @@ -16,16 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.EngineMode; -import art.arcane.iris.engine.framework.EngineTarget; -import art.arcane.iris.engine.framework.SeedManager; -import art.arcane.iris.engine.history.TransitionGenerationPlan; -import art.arcane.iris.engine.history.GenerationKernelRegistry; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.world.history.TransitionGenerationPlan; +import art.arcane.iris.world.history.GenerationKernelRegistry; +import art.arcane.iris.generation.mantle.EngineMantle; +import art.arcane.iris.generation.terrain.IrisDimension; import java.nio.file.Path; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/GenerationRuntimeScopeState.java b/core/src/main/java/art/arcane/iris/generation/runtime/GenerationRuntimeScopeState.java similarity index 90% rename from core/src/main/java/art/arcane/iris/engine/GenerationRuntimeScopeState.java rename to core/src/main/java/art/arcane/iris/generation/runtime/GenerationRuntimeScopeState.java index 17d01da4c..38c8efc4d 100644 --- a/core/src/main/java/art/arcane/iris/engine/GenerationRuntimeScopeState.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/GenerationRuntimeScopeState.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.IrisEngine.GenerationRuntimeBinding; -import art.arcane.iris.engine.IrisEngine.GenerationRuntimeScope; +import art.arcane.iris.generation.runtime.IrisEngine.GenerationRuntimeBinding; +import art.arcane.iris.generation.runtime.IrisEngine.GenerationRuntimeScope; final class GenerationRuntimeScopeState { private final ThreadLocal current = new ThreadLocal<>(); diff --git a/core/src/main/java/art/arcane/iris/engine/framework/GenerationSessionException.java b/core/src/main/java/art/arcane/iris/generation/runtime/GenerationSessionException.java similarity index 91% rename from core/src/main/java/art/arcane/iris/engine/framework/GenerationSessionException.java rename to core/src/main/java/art/arcane/iris/generation/runtime/GenerationSessionException.java index e9a640112..7ae6b0249 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/GenerationSessionException.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/GenerationSessionException.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; public class GenerationSessionException extends WrongEngineBroException { private final boolean expectedTeardown; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/GenerationSessionLease.java b/core/src/main/java/art/arcane/iris/generation/runtime/GenerationSessionLease.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/framework/GenerationSessionLease.java rename to core/src/main/java/art/arcane/iris/generation/runtime/GenerationSessionLease.java index b9efe626e..002adbc90 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/GenerationSessionLease.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/GenerationSessionLease.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; public final class GenerationSessionLease implements AutoCloseable { private static final GenerationSessionLease NOOP = new GenerationSessionLease(null, null, 0L, null); diff --git a/core/src/main/java/art/arcane/iris/engine/framework/GenerationSessionManager.java b/core/src/main/java/art/arcane/iris/generation/runtime/GenerationSessionManager.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/framework/GenerationSessionManager.java rename to core/src/main/java/art/arcane/iris/generation/runtime/GenerationSessionManager.java index 1579e1f16..56d5e70eb 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/GenerationSessionManager.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/GenerationSessionManager.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.util.project.context.IrisContext; +import art.arcane.iris.generation.context.IrisContext; import java.util.Optional; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/GenerationTransitionGate.java b/core/src/main/java/art/arcane/iris/generation/runtime/GenerationTransitionGate.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/framework/GenerationTransitionGate.java rename to core/src/main/java/art/arcane/iris/generation/runtime/GenerationTransitionGate.java index 9441ab3bc..b06c62527 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/GenerationTransitionGate.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/GenerationTransitionGate.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; import java.util.IdentityHashMap; import java.util.Map; diff --git a/core/src/main/java/art/arcane/iris/core/service/GlobalCacheSVC.java b/core/src/main/java/art/arcane/iris/generation/runtime/GlobalCacheSVC.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/service/GlobalCacheSVC.java rename to core/src/main/java/art/arcane/iris/generation/runtime/GlobalCacheSVC.java index b8aaaa6e7..f4953d52c 100644 --- a/core/src/main/java/art/arcane/iris/core/service/GlobalCacheSVC.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/GlobalCacheSVC.java @@ -1,13 +1,13 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.generation.runtime; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.IrisWorldStorage; -import art.arcane.iris.core.pregenerator.cache.PregenCache; -import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.world.IrisWorldStorage; +import art.arcane.iris.world.pregen.PregenCache; +import art.arcane.iris.world.IrisToolbelt; import art.arcane.volmlib.util.bukkit.WorldIdentity; import art.arcane.volmlib.util.collection.KMap; -import art.arcane.iris.util.common.plugin.IrisService; +import art.arcane.iris.platform.bukkit.plugin.IrisService; import art.arcane.volmlib.util.scheduling.Looper; import lombok.NonNull; import org.bukkit.Bukkit; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/Hotloadable.java b/core/src/main/java/art/arcane/iris/generation/runtime/Hotloadable.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/framework/Hotloadable.java rename to core/src/main/java/art/arcane/iris/generation/runtime/Hotloadable.java index f3aa7dfcc..194d11471 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/Hotloadable.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/Hotloadable.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; public interface Hotloadable { void hotload(); diff --git a/core/src/main/java/art/arcane/iris/engine/IrisComplex.java b/core/src/main/java/art/arcane/iris/generation/runtime/IrisComplex.java similarity index 90% rename from core/src/main/java/art/arcane/iris/engine/IrisComplex.java rename to core/src/main/java/art/arcane/iris/generation/runtime/IrisComplex.java index b78fd483a..a8b50a616 100644 --- a/core/src/main/java/art/arcane/iris/engine/IrisComplex.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/IrisComplex.java @@ -16,63 +16,64 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; + +import art.arcane.iris.generation.stream.GenerationStreams; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.engine.data.cache.Cache; -import art.arcane.iris.engine.platform.studio.BiomeBuffetLayout; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.history.GenerationBlend; -import art.arcane.iris.engine.history.TransitionGenerationPlan; -import art.arcane.iris.engine.history.TerrainBoundarySignature; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.HydrologyColumnSample; -import art.arcane.iris.engine.hydrology.HydrologyColumnSnapshot; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.engine.hydrology.runtime.IrisHydrologyNaturalSample; -import art.arcane.iris.engine.hydrology.runtime.IrisHydrologyRuntime; -import art.arcane.iris.engine.hydrology.runtime.IrisHydrologyRuntimeContext; -import art.arcane.iris.engine.image.IrisImageMapRuntime; -import art.arcane.iris.engine.mantle.components.MantleHydrologyCaveVoxelView; -import art.arcane.iris.engine.object.InferredType; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBiomeGeneratorLink; -import art.arcane.iris.engine.object.IrisRaritySelection; -import art.arcane.iris.engine.object.IrisDecorationPart; -import art.arcane.iris.engine.object.IrisDecorator; -import art.arcane.iris.engine.object.IrisGenerator; -import art.arcane.iris.engine.object.IrisGeneratorStyle; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.util.project.context.IrisContext; -import art.arcane.iris.engine.object.IrisInterpolator; -import art.arcane.iris.engine.object.IrisMaterialPalette; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisDeepFluidConfig; -import art.arcane.iris.engine.object.IrisSurfacePoolConfig; -import art.arcane.iris.engine.object.IrisHydrology; -import art.arcane.iris.engine.object.IrisRiverHydrology; -import art.arcane.iris.engine.object.IrisRiverBank3DConfig; -import art.arcane.iris.engine.object.IrisRiverProfile; -import art.arcane.iris.engine.object.IrisShapedGeneratorStyle; -import art.arcane.iris.engine.terrain.Terrain3DColumn; -import art.arcane.iris.engine.terrain.Terrain3DRuntime; -import art.arcane.iris.engine.terrain.HydrologyBankTerrainRuntime; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.generation.cache.Cache; +import art.arcane.iris.studio.generation.BiomeBuffetLayout; +import art.arcane.iris.world.history.GenerationBlend; +import art.arcane.iris.world.history.TransitionGenerationPlan; +import art.arcane.iris.world.history.TerrainBoundarySignature; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.HydrologyColumnSample; +import art.arcane.iris.generation.hydrology.HydrologyColumnSnapshot; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.hydrology.runtime.IrisHydrologyNaturalSample; +import art.arcane.iris.generation.hydrology.runtime.IrisHydrologyRuntime; +import art.arcane.iris.generation.hydrology.runtime.IrisHydrologyRuntimeContext; +import art.arcane.iris.generation.image.IrisImageMapRuntime; +import art.arcane.iris.generation.mantle.MantleHydrologyCaveVoxelView; +import art.arcane.iris.generation.terrain.InferredType; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiomeGeneratorLink; +import art.arcane.iris.pack.value.IrisRaritySelection; +import art.arcane.iris.generation.decoration.IrisDecorationPart; +import art.arcane.iris.generation.decoration.IrisDecorator; +import art.arcane.iris.generation.noise.IrisGenerator; +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.context.IrisContext; +import art.arcane.iris.generation.noise.IrisInterpolator; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.generation.hydrology.IrisDeepFluidConfig; +import art.arcane.iris.generation.hydrology.IrisSurfacePoolConfig; +import art.arcane.iris.generation.hydrology.IrisHydrology; +import art.arcane.iris.generation.hydrology.IrisRiverHydrology; +import art.arcane.iris.generation.hydrology.IrisRiverBank3DConfig; +import art.arcane.iris.generation.hydrology.IrisRiverProfile; +import art.arcane.iris.generation.noise.IrisShapedGeneratorStyle; +import art.arcane.iris.generation.terrain.Terrain3DColumn; +import art.arcane.iris.generation.terrain.Terrain3DRuntime; +import art.arcane.iris.generation.terrain.HydrologyBankTerrainRuntime; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.volmlib.util.collection.KList; -import art.arcane.iris.util.common.data.DataProvider; +import art.arcane.iris.generation.block.DataProvider; import art.arcane.volmlib.util.math.M; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.project.interpolation.NoiseBounds; -import art.arcane.iris.util.project.interpolation.NoiseBoundsProvider; -import art.arcane.iris.util.project.noise.CNG; -import art.arcane.iris.util.project.stream.ProceduralStream; -import art.arcane.iris.util.project.stream.interpolation.Interpolated; +import art.arcane.volmlib.util.interpolation.NoiseBounds; +import art.arcane.volmlib.util.interpolation.NoiseBoundsProvider; +import art.arcane.volmlib.util.noise.CNG; +import art.arcane.volmlib.util.stream.ProceduralStream; +import art.arcane.volmlib.util.stream.interpolation.Interpolated; import lombok.AccessLevel; import lombok.Data; import lombok.EqualsAndHashCode; @@ -314,54 +315,47 @@ public class IrisComplex implements DataProvider { .zoom(engine.getDimension().getRegionZoom()); regionIdentityStream = regionStyleStream.fit(Integer.MIN_VALUE, Integer.MAX_VALUE); ProceduralStream proceduralRegionStream = focusedRegions != null ? focusedRegions - : regionStyleStream - .selectRarity(compatRegionPool(engine)) - .cache2D("regionStream", engine, cacheSize); - regionStream = focusedRegions != null ? proceduralRegionStream : proceduralRegionStream + : GenerationStreams.cache2D(regionStyleStream + .selectRarity(compatRegionPool(engine)), "regionStream", engine, cacheSize); + regionStream = focusedRegions != null ? proceduralRegionStream : GenerationStreams.cache2D(proceduralRegionStream .convertAware2D((region, x, z) -> { IrisRegion mapped = imageMapRuntime.sampleRegion(x, z); return mapped == null ? region : mapped; - }) - .cache2D("imageMappedRegionStream", engine, cacheSize); + }), "imageMappedRegionStream", engine, cacheSize); regionIDStream = regionIdentityStream.convertCached((i) -> new UUID(Double.doubleToLongBits(i), String.valueOf(i * 38445).hashCode() * 3245556666L)); - caveBiomeStream = regionStream.contextInjecting(engine, (c, x, z) -> c.getRegion().get(x, z)) + caveBiomeStream = GenerationStreams.cache2D(GenerationStreams.contextInjecting(regionStream, engine, (c, x, z) -> c.getRegion().get(x, z)) .convert((r) -> createInferredBiomeStream(r, InferredType.CAVE)) - .convertAware2D(ProceduralStream::get).cache2D("caveBiomeStream", engine, cacheSize); + .convertAware2D(ProceduralStream::get), "caveBiomeStream", engine, cacheSize); inferredStreams.put(InferredType.CAVE, caveBiomeStream); - landBiomeStream = regionStream.contextInjecting(engine, (c, x, z) -> c.getRegion().get(x, z)) + landBiomeStream = GenerationStreams.cache2D(GenerationStreams.contextInjecting(regionStream, engine, (c, x, z) -> c.getRegion().get(x, z)) .convert((r) -> createInferredBiomeStream(r, InferredType.LAND)) - .convertAware2D(ProceduralStream::get) - .cache2D("landBiomeStream", engine, cacheSize); + .convertAware2D(ProceduralStream::get), "landBiomeStream", engine, cacheSize); inferredStreams.put(InferredType.LAND, landBiomeStream); - seaBiomeStream = regionStream.contextInjecting(engine, (c, x, z) -> c.getRegion().get(x, z)) + seaBiomeStream = GenerationStreams.cache2D(GenerationStreams.contextInjecting(regionStream, engine, (c, x, z) -> c.getRegion().get(x, z)) .convert((r) -> createInferredBiomeStream(r, InferredType.SEA)) - .convertAware2D(ProceduralStream::get) - .cache2D("seaBiomeStream", engine, cacheSize); + .convertAware2D(ProceduralStream::get), "seaBiomeStream", engine, cacheSize); inferredStreams.put(InferredType.SEA, seaBiomeStream); - shoreBiomeStream = regionStream.contextInjecting(engine, (c, x, z) -> c.getRegion().get(x, z)) + shoreBiomeStream = GenerationStreams.cache2D(GenerationStreams.contextInjecting(regionStream, engine, (c, x, z) -> c.getRegion().get(x, z)) .convert((r) -> createInferredBiomeStream(r, InferredType.SHORE)) - .convertAware2D(ProceduralStream::get).cache2D("shoreBiomeStream", engine, cacheSize); + .convertAware2D(ProceduralStream::get), "shoreBiomeStream", engine, cacheSize); inferredStreams.put(InferredType.SHORE, shoreBiomeStream); bridgeStream = focusedBiomes != null ? focusedBiomes.convert(IrisBiome::getInferredType) : - engine.getDimension().getContinentalStyle().create(rng.nextParallelRNG(234234565), getData()) + GenerationStreams.cache2D(engine.getDimension().getContinentalStyle().create(rng.nextParallelRNG(234234565), getData()) .bake().scale(1D / engine.getDimension().getContinentZoom()).bake().stream() - .convert((v) -> v >= engine.getDimension().getLandChance() ? InferredType.SEA : InferredType.LAND) - .cache2D("bridgeStream", engine, cacheSize); + .convert((v) -> v >= engine.getDimension().getLandChance() ? InferredType.SEA : InferredType.LAND), "bridgeStream", engine, cacheSize); ProceduralStream proceduralBaseBiomeStream = focusedBiomes != null ? focusedBiomes : - bridgeStream.convertAware2D((t, x, z) -> inferredStreams.get(t).get(x, z)) - .convertAware2D(this::implode) - .cache2D("baseBiomeStream", engine, cacheSize); - baseBiomeStream = focusedBiomes != null ? proceduralBaseBiomeStream : proceduralBaseBiomeStream + GenerationStreams.cache2D(bridgeStream.convertAware2D((t, x, z) -> inferredStreams.get(t).get(x, z)) + .convertAware2D(this::implode), "baseBiomeStream", engine, cacheSize); + baseBiomeStream = focusedBiomes != null ? proceduralBaseBiomeStream : GenerationStreams.cache2D(proceduralBaseBiomeStream .convertAware2D((biome, x, z) -> { IrisBiome mapped = imageMapRuntime.sampleBiome(x, z); return mapped == null ? biome : mapped; - }) - .cache2D("imageMappedBaseBiomeStream", engine, cacheSize); - baseTerrainHeightStream = ProceduralStream.of( + }), "imageMappedBaseBiomeStream", engine, cacheSize); + baseTerrainHeightStream = GenerationStreams.cache2DDouble(ProceduralStream.of( (x, z) -> sampleUnblendedNaturalTerrainHeight(engine, x, z), Interpolated.DOUBLE - ).cache2DDouble("baseTerrainHeightStream", engine, cacheSize); + ), "baseTerrainHeightStream", engine, cacheSize); boolean terrain3DEnabled = false; for (IrisBiome biome : generatorBiomes) { if (biome.getTerrain3D() != null) { @@ -376,27 +370,24 @@ public class IrisComplex implements DataProvider { new Terrain3DRuntime.Options(engine.getSeedManager().getTerrain(), engine.getHeight(), fluidHeight, data, terrain3DEnabled, Math.max(4_096, cacheSize))); unblendedNaturalHeightStream = terrain3DEnabled - ? ProceduralStream.ofDouble(this::sampleTerrain3DHeight) - .cache2DDouble("unblendedNaturalHeightStream", engine, cacheSize) + ? GenerationStreams.cache2DDouble(ProceduralStream.ofDouble(this::sampleTerrain3DHeight), "unblendedNaturalHeightStream", engine, cacheSize) : baseTerrainHeightStream; naturalHeightStream = unblendedNaturalHeightStream; - naturalTrueBiomeStream = focusedBiomes != null ? focusedBiomes - .cache2D("naturalTrueBiomeStream-focus", engine, cacheSize) : naturalHeightStream + naturalTrueBiomeStream = focusedBiomes != null ? GenerationStreams.cache2D(focusedBiomes, "naturalTrueBiomeStream-focus", engine, cacheSize) : GenerationStreams.cache2D(naturalHeightStream .convertAware2D((h, x, z) -> { IrisBiome mapped = imageMapRuntime.sampleBiome(x, z); return mapped == null ? fixBiomeType(h, baseBiomeStream.get(x, z), regionStream.get(x, z), x, z, fluidHeight) : mapped; - }) - .cache2D("naturalTrueBiomeStream", engine, cacheSize); + }), "naturalTrueBiomeStream", engine, cacheSize); unblendedNaturalTrueBiomeStream = transitionGenerationPlan == null || focusedBiomes != null ? naturalTrueBiomeStream - : unblendedNaturalHeightStream.convertAware2D((h, x, z) -> { + : GenerationStreams.cache2D(unblendedNaturalHeightStream.convertAware2D((h, x, z) -> { IrisBiome mapped = imageMapRuntime.sampleBiome(x, z); return mapped == null ? fixBiomeType(h, baseBiomeStream.get(x, z), regionStream.get(x, z), x, z, fluidHeight) : mapped; - }).cache2D("unblendedNaturalTrueBiomeStream", engine, cacheSize); + }), "unblendedNaturalTrueBiomeStream", engine, cacheSize); IrisHydrology configuredHydrology = engine.getDimension().getHydrology(); if (hydrologyActive(configuredHydrology)) { hydrologyRuntime = new IrisHydrologyRuntime(new IrisHydrologyRuntimeContext( @@ -424,57 +415,48 @@ public class IrisComplex implements DataProvider { Math.max(4096, cacheSize), data, banks3D)); } } - ProceduralStream cachedHeightStream = ProceduralStream.ofDouble((x, z) -> resolveHydrologyTerrainHeight(x, z)) - .cache2DDouble("heightStream", engine, cacheSize); + ProceduralStream cachedHeightStream = GenerationStreams.cache2DDouble(ProceduralStream.ofDouble((x, z) -> resolveHydrologyTerrainHeight(x, z)), "heightStream", engine, cacheSize); heightStream = ProceduralStream.ofDouble((x, z) -> terrainEngine.getPlatformHooks().isMainThread() ? nonblockingTerrainHeight(x, z) : cachedHeightStream.getDouble(x, z)); placementHeightStream = ProceduralStream.ofDouble(this::samplePlacementHeight); - roundedHeighteightStream = placementHeightStream.contextInjecting(engine, (c, x, z) -> c.getHeight().getDouble(x, z)) + roundedHeighteightStream = GenerationStreams.contextInjecting(placementHeightStream, engine, (c, x, z) -> c.getHeight().getDouble(x, z)) .round(); - slopeStream = placementHeightStream.contextInjecting(engine, (c, x, z) -> c.getHeight().getDouble(x, z)) + slopeStream = GenerationStreams.contextInjecting(placementHeightStream, engine, (c, x, z) -> c.getHeight().getDouble(x, z)) .slope(3); - naturalSlopeStream = naturalHeightStream.slope(3).cache2DDouble("naturalSlopeStream", engine, cacheSize); - trueBiomeStream = focusedBiomes != null ? focusedBiomes - .cache2D("trueBiomeStream-focus", engine, cacheSize) : heightStream - .convertAware2D((terrainHeight, x, z) -> resolveHydrologySurfaceBiome(terrainHeight, x, z)) - .cache2D("trueBiomeStream", engine, cacheSize); - trueBiomeDerivativeStream = trueBiomeStream.contextInjecting(engine, (c, x, z) -> c.getBiome().get(x, z)) - .convert((b) -> IrisPlatforms.get().registries().biome(b.getDerivativeKey())).cache2D("trueBiomeDerivativeStream", engine, cacheSize); - riverDistanceStream = ProceduralStream.ofDouble(this::resolveHydrologyDistance) - .cache2DDouble("riverDistanceStream", engine, cacheSize); - riverFlowStream = ProceduralStream.ofDouble(this::resolveHydrologyFlow) - .cache2DDouble("riverFlowStream", engine, cacheSize); - riverCarveWeightStream = ProceduralStream.ofDouble(this::resolveHydrologyCarveWeight) - .cache2DDouble("riverCarveWeightStream", engine, cacheSize); - riverWaterSurfaceStream = ProceduralStream.ofDouble(this::resolveHydrologyFluidSurface) - .cache2DDouble("riverWaterSurfaceStream", engine, cacheSize); - heightFluidStream = ProceduralStream.ofDouble((x, z) -> Math.max( + naturalSlopeStream = GenerationStreams.cache2DDouble(naturalHeightStream.slope(3), "naturalSlopeStream", engine, cacheSize); + trueBiomeStream = focusedBiomes != null ? GenerationStreams.cache2D(focusedBiomes, "trueBiomeStream-focus", engine, cacheSize) : GenerationStreams.cache2D(heightStream + .convertAware2D((terrainHeight, x, z) -> resolveHydrologySurfaceBiome(terrainHeight, x, z)), "trueBiomeStream", engine, cacheSize); + trueBiomeDerivativeStream = GenerationStreams.cache2D(GenerationStreams.contextInjecting(trueBiomeStream, engine, (c, x, z) -> c.getBiome().get(x, z)) + .convert((b) -> IrisPlatforms.get().registries().biome(b.getDerivativeKey())), "trueBiomeDerivativeStream", engine, cacheSize); + riverDistanceStream = GenerationStreams.cache2DDouble(ProceduralStream.ofDouble(this::resolveHydrologyDistance), "riverDistanceStream", engine, cacheSize); + riverFlowStream = GenerationStreams.cache2DDouble(ProceduralStream.ofDouble(this::resolveHydrologyFlow), "riverFlowStream", engine, cacheSize); + riverCarveWeightStream = GenerationStreams.cache2DDouble(ProceduralStream.ofDouble(this::resolveHydrologyCarveWeight), "riverCarveWeightStream", engine, cacheSize); + riverWaterSurfaceStream = GenerationStreams.cache2DDouble(ProceduralStream.ofDouble(this::resolveHydrologyFluidSurface), "riverWaterSurfaceStream", engine, cacheSize); + heightFluidStream = GenerationStreams.cache2DDouble(ProceduralStream.ofDouble((x, z) -> Math.max( heightStream.get(x, z), riverWaterSurfaceStream.get(x, z) - )) - .cache2DDouble("heightFluidStream", engine, cacheSize); + )), "heightFluidStream", engine, cacheSize); maxHeightStream = ProceduralStream.ofDouble((x, z) -> height); - terrainSurfaceDecoration = trueBiomeStream.contextInjecting(engine, (c, x, z) -> c.getBiome().get(x, z)) - .convertAware2D((b, xx, zz) -> decorateFor(b, xx, zz, IrisDecorationPart.NONE)).cache2D("terrainSurfaceDecoration", engine, cacheSize); - terrainCeilingDecoration = trueBiomeStream.contextInjecting(engine, (c, x, z) -> c.getBiome().get(x, z)) - .convertAware2D((b, xx, zz) -> decorateFor(b, xx, zz, IrisDecorationPart.CEILING)).cache2D("terrainCeilingDecoration", engine, cacheSize); - terrainCaveSurfaceDecoration = caveBiomeStream.contextInjecting(engine, (c, x, z) -> c.getCave().get(x, z)) - .convertAware2D((b, xx, zz) -> decorateFor(b, xx, zz, IrisDecorationPart.NONE)).cache2D("terrainCaveSurfaceDecoration", engine, cacheSize); - terrainCaveCeilingDecoration = caveBiomeStream.contextInjecting(engine, (c, x, z) -> c.getCave().get(x, z)) - .convertAware2D((b, xx, zz) -> decorateFor(b, xx, zz, IrisDecorationPart.CEILING)).cache2D("terrainCaveCeilingDecoration", engine, cacheSize); - shoreSurfaceDecoration = trueBiomeStream.contextInjecting(engine, (c, x, z) -> c.getBiome().get(x, z)) - .convertAware2D((b, xx, zz) -> decorateFor(b, xx, zz, IrisDecorationPart.SHORE_LINE)).cache2D("shoreSurfaceDecoration", engine, cacheSize); - seaSurfaceDecoration = trueBiomeStream.contextInjecting(engine, (c, x, z) -> c.getBiome().get(x, z)) - .convertAware2D((b, xx, zz) -> decorateFor(b, xx, zz, IrisDecorationPart.SEA_SURFACE)).cache2D("seaSurfaceDecoration", engine, cacheSize); - seaFloorDecoration = trueBiomeStream.contextInjecting(engine, (c, x, z) -> c.getBiome().get(x, z)) - .convertAware2D((b, xx, zz) -> decorateFor(b, xx, zz, IrisDecorationPart.SEA_FLOOR)).cache2D("seaFloorDecoration", engine, cacheSize); - baseBiomeIDStream = trueBiomeStream.contextInjecting(engine, (c, x, z) -> c.getBiome().get(x, z)) + terrainSurfaceDecoration = GenerationStreams.cache2D(GenerationStreams.contextInjecting(trueBiomeStream, engine, (c, x, z) -> c.getBiome().get(x, z)) + .convertAware2D((b, xx, zz) -> decorateFor(b, xx, zz, IrisDecorationPart.NONE)), "terrainSurfaceDecoration", engine, cacheSize); + terrainCeilingDecoration = GenerationStreams.cache2D(GenerationStreams.contextInjecting(trueBiomeStream, engine, (c, x, z) -> c.getBiome().get(x, z)) + .convertAware2D((b, xx, zz) -> decorateFor(b, xx, zz, IrisDecorationPart.CEILING)), "terrainCeilingDecoration", engine, cacheSize); + terrainCaveSurfaceDecoration = GenerationStreams.cache2D(GenerationStreams.contextInjecting(caveBiomeStream, engine, (c, x, z) -> c.getCave().get(x, z)) + .convertAware2D((b, xx, zz) -> decorateFor(b, xx, zz, IrisDecorationPart.NONE)), "terrainCaveSurfaceDecoration", engine, cacheSize); + terrainCaveCeilingDecoration = GenerationStreams.cache2D(GenerationStreams.contextInjecting(caveBiomeStream, engine, (c, x, z) -> c.getCave().get(x, z)) + .convertAware2D((b, xx, zz) -> decorateFor(b, xx, zz, IrisDecorationPart.CEILING)), "terrainCaveCeilingDecoration", engine, cacheSize); + shoreSurfaceDecoration = GenerationStreams.cache2D(GenerationStreams.contextInjecting(trueBiomeStream, engine, (c, x, z) -> c.getBiome().get(x, z)) + .convertAware2D((b, xx, zz) -> decorateFor(b, xx, zz, IrisDecorationPart.SHORE_LINE)), "shoreSurfaceDecoration", engine, cacheSize); + seaSurfaceDecoration = GenerationStreams.cache2D(GenerationStreams.contextInjecting(trueBiomeStream, engine, (c, x, z) -> c.getBiome().get(x, z)) + .convertAware2D((b, xx, zz) -> decorateFor(b, xx, zz, IrisDecorationPart.SEA_SURFACE)), "seaSurfaceDecoration", engine, cacheSize); + seaFloorDecoration = GenerationStreams.cache2D(GenerationStreams.contextInjecting(trueBiomeStream, engine, (c, x, z) -> c.getBiome().get(x, z)) + .convertAware2D((b, xx, zz) -> decorateFor(b, xx, zz, IrisDecorationPart.SEA_FLOOR)), "seaFloorDecoration", engine, cacheSize); + baseBiomeIDStream = GenerationStreams.cache2D(GenerationStreams.contextInjecting(trueBiomeStream, engine, (c, x, z) -> c.getBiome().get(x, z)) .convertAware2D((b, x, z) -> { UUID d = regionIDStream.get(x, z); return new UUID(b.getLoadKey().hashCode() * 818223L, d.hashCode()); - }) - .cache2D("", engine, cacheSize); + }), "", engine, cacheSize); //@done } diff --git a/core/src/main/java/art/arcane/iris/engine/IrisEngine.java b/core/src/main/java/art/arcane/iris/generation/runtime/IrisEngine.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/IrisEngine.java rename to core/src/main/java/art/arcane/iris/generation/runtime/IrisEngine.java index 1921af3c5..b8be3ad33 100644 --- a/core/src/main/java/art/arcane/iris/engine/IrisEngine.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/IrisEngine.java @@ -16,59 +16,42 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.EngineBackgroundTasks.BackgroundTaskDrain; -import art.arcane.iris.engine.EngineRuntimeBuilder.RuntimeAssembly; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.BiomeEnvironment; -import art.arcane.iris.engine.framework.EngineEffects; -import art.arcane.iris.engine.framework.EngineMetrics; -import art.arcane.iris.engine.framework.EngineMode; -import art.arcane.iris.engine.framework.EnginePlatformHooks; -import art.arcane.iris.engine.framework.NativeStructureVolume; -import art.arcane.iris.engine.framework.NativeStructureVolumeMemo; +import art.arcane.iris.generation.runtime.EngineBackgroundTasks.BackgroundTaskDrain; +import art.arcane.iris.generation.runtime.EngineRuntimeBuilder.RuntimeAssembly; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.structure.nativegen.NativeStructureVolume; +import art.arcane.iris.structure.nativegen.NativeStructureVolumeMemo; import art.arcane.volmlib.util.collection.KList; -import art.arcane.iris.engine.framework.EngineTarget; -import art.arcane.iris.engine.framework.EngineWorldManager; -import art.arcane.iris.engine.framework.GenerationSessionException; -import art.arcane.iris.engine.framework.GenerationSessionLease; -import art.arcane.iris.engine.framework.EngineLifecycleTasks; -import art.arcane.iris.engine.framework.NativeStructureOwnershipStore; -import art.arcane.iris.engine.framework.GenerationSessionManager; -import art.arcane.iris.engine.history.GenerationBoundarySignatureSampler; -import art.arcane.iris.engine.history.GenerationHistory; -import art.arcane.iris.engine.history.GenerationHistoryRuntimeRouter; -import art.arcane.iris.engine.history.ChunkGenerationSemantics; -import art.arcane.iris.engine.history.GenerationKernelRegistry; -import art.arcane.iris.engine.history.TransitionGenerationPlan; -import art.arcane.iris.engine.framework.SeedManager; -import art.arcane.iris.engine.framework.WrongEngineBroException; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisDimensionCarvingResolver; -import art.arcane.iris.engine.object.IrisEngineData; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.core.pack.PackValidationCache; +import art.arcane.iris.structure.nativegen.NativeStructureOwnershipStore; +import art.arcane.iris.world.history.GenerationBoundarySignatureSampler; +import art.arcane.iris.world.history.GenerationHistory; +import art.arcane.iris.world.history.GenerationHistoryRuntimeRouter; +import art.arcane.iris.world.history.ChunkGenerationSemantics; +import art.arcane.iris.world.history.GenerationKernelRegistry; +import art.arcane.iris.world.history.TransitionGenerationPlan; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisDimensionCarvingResolver; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.pack.PackValidationCache; import art.arcane.iris.spi.IrisLogging; import com.google.common.util.concurrent.AtomicDouble; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.core.nms.container.BlockPos; -import art.arcane.iris.core.nms.container.Pair; -import art.arcane.iris.core.structure.StructureIndexService; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.util.common.data.B; -import art.arcane.iris.util.common.plugin.VolmitSender; +import art.arcane.iris.structure.StructureIndexService; +import art.arcane.iris.generation.mantle.EngineMantle; +import art.arcane.iris.generation.block.B; +import java.util.function.Consumer; import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.volmlib.util.atomics.AtomicRollingSequence; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.project.context.IrisContext; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.iris.generation.context.IrisContext; import art.arcane.volmlib.util.documentation.BlockCoordinates; import art.arcane.volmlib.util.documentation.ChunkCoordinates; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; import art.arcane.volmlib.util.mantle.flag.MantleFlag; import art.arcane.volmlib.util.math.M; import art.arcane.volmlib.util.matter.MatterStructurePOI; @@ -794,25 +777,20 @@ public class IrisEngine implements Engine { @ChunkCoordinates @Override - public Set> getPOIsAt(int chunkX, int chunkZ) { + public Set getPOIsAt(int chunkX, int chunkZ) { Optional recorded = recordedChunkSemantics(chunkX, chunkZ); if (recorded.isPresent()) { - Set> points = new HashSet<>(); - for (ChunkGenerationSemantics.PointOfInterest point : recorded.get().pointsOfInterest()) { - ChunkGenerationSemantics.BlockPosition position = point.position(); - points.add(new Pair<>(point.key(), new BlockPos(position.x(), position.y(), position.z()))); - } - return points; + return new HashSet<>(recorded.get().pointsOfInterest()); } try (GenerationHistoryRuntimeRouter.CoordinateScope ignored = openGenerationHistoryCoordinateScopeUnchecked( chunkX << 4, chunkZ << 4, "resolve chunk points of interest")) { - Set> pois = new HashSet<>(); + Set pois = new HashSet<>(); getMantle().getMantle().iterateChunk( chunkX, chunkZ, MatterStructurePOI.class, - (x, y, z, data) -> pois.add(new Pair<>(data.getType(), new BlockPos( + (x, y, z, data) -> pois.add(new ChunkGenerationSemantics.PointOfInterest(data.getType(), new ChunkGenerationSemantics.BlockPosition( Math.addExact(Math.multiplyExact(chunkX, 16), x), y, Math.addExact(Math.multiplyExact(chunkZ, 16), z))))); return pois; @@ -964,8 +942,8 @@ public class IrisEngine implements Engine { return buds.get(); } - public void printMetrics(VolmitSender sender) { - metricsReport.printMetrics(sender); + public void printMetrics(Consumer output) { + metricsReport.printMetrics(output); } @Override diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisEngineData.java b/core/src/main/java/art/arcane/iris/generation/runtime/IrisEngineData.java similarity index 91% rename from core/src/main/java/art/arcane/iris/engine/object/IrisEngineData.java rename to core/src/main/java/art/arcane/iris/generation/runtime/IrisEngineData.java index c2c91ff4f..999da9686 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisEngineData.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/IrisEngineData.java @@ -16,10 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.data.cache.Cache; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.world.entity.IrisSpawnerCooldowns; + +import art.arcane.iris.generation.cache.Cache; import art.arcane.volmlib.util.collection.KMap; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/art/arcane/iris/engine/IrisEngineEffects.java b/core/src/main/java/art/arcane/iris/generation/runtime/IrisEngineEffects.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/IrisEngineEffects.java rename to core/src/main/java/art/arcane/iris/generation/runtime/IrisEngineEffects.java index bec2049b3..6415adcc2 100644 --- a/core/src/main/java/art/arcane/iris/engine/IrisEngineEffects.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/IrisEngineEffects.java @@ -16,14 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineAssignedComponent; -import art.arcane.iris.engine.framework.EngineEffects; -import art.arcane.iris.engine.framework.EnginePlayer; import art.arcane.iris.platform.bukkit.BukkitWorldBinding; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.math.M; import org.bukkit.entity.Player; diff --git a/core/src/main/java/art/arcane/iris/engine/IrisEngineMantle.java b/core/src/main/java/art/arcane/iris/generation/runtime/IrisEngineMantle.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/IrisEngineMantle.java rename to core/src/main/java/art/arcane/iris/generation/runtime/IrisEngineMantle.java index fe916b2e2..2666a36b4 100644 --- a/core/src/main/java/art/arcane/iris/engine/IrisEngineMantle.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/IrisEngineMantle.java @@ -16,28 +16,26 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.tools.WorldMaintenance; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineTarget; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.mantle.MantleComponent; -import art.arcane.iris.engine.mantle.MantlePass; -import art.arcane.iris.engine.mantle.components.MantleCarvingComponent; -import art.arcane.iris.engine.mantle.components.MantleFloatingObjectComponent; -import art.arcane.iris.engine.mantle.components.MantleObjectComponent; -import art.arcane.iris.engine.mantle.components.MantleHydrologyComponent; -import art.arcane.iris.engine.mantle.components.IrisStructureComponent; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.world.WorldMaintenance; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.generation.mantle.EngineMantle; +import art.arcane.iris.generation.mantle.MantleComponent; +import art.arcane.iris.generation.mantle.MantlePass; +import art.arcane.iris.generation.mantle.MantleCarvingComponent; +import art.arcane.iris.generation.mantle.MantleFloatingObjectComponent; +import art.arcane.iris.generation.mantle.MantleObjectComponent; +import art.arcane.iris.generation.mantle.MantleHydrologyComponent; +import art.arcane.iris.generation.mantle.IrisStructureComponent; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.matter.IrisMatterContext; -import art.arcane.iris.util.project.matter.IrisMatterSupport; +import art.arcane.iris.world.storage.matter.IrisMatterContext; +import art.arcane.iris.world.storage.matter.IrisMatterSupport; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.format.Form; @@ -50,12 +48,12 @@ import art.arcane.volmlib.util.mantle.runtime.TectonicPlate; import art.arcane.volmlib.util.mantle.flag.MantleFlag; import art.arcane.volmlib.util.mantle.flag.ReservedFlag; import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; -import art.arcane.iris.util.common.format.C; +import art.arcane.iris.localization.C; import art.arcane.volmlib.util.matter.IrisMatter; import art.arcane.volmlib.util.matter.Matter; import art.arcane.volmlib.util.matter.MatterSlice; -import art.arcane.iris.util.common.parallel.HyperLock; -import art.arcane.iris.util.common.parallel.MultiBurst; +import art.arcane.iris.generation.concurrent.HyperLock; +import art.arcane.iris.generation.concurrent.MultiBurst; import lombok.AccessLevel; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/IrisEngineMode.java b/core/src/main/java/art/arcane/iris/generation/runtime/IrisEngineMode.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/framework/IrisEngineMode.java rename to core/src/main/java/art/arcane/iris/generation/runtime/IrisEngineMode.java index 9ccdb0be2..1700f84ac 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/IrisEngineMode.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/IrisEngineMode.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; import art.arcane.volmlib.util.collection.KList; -import art.arcane.iris.engine.actuator.IrisTransitionGeometryActuator; +import art.arcane.iris.generation.stage.IrisTransitionGeometryActuator; public abstract class IrisEngineMode implements EngineMode { private final Engine engine; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisEngineStatistics.java b/core/src/main/java/art/arcane/iris/generation/runtime/IrisEngineStatistics.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/object/IrisEngineStatistics.java rename to core/src/main/java/art/arcane/iris/generation/runtime/IrisEngineStatistics.java index b541bd67d..0e5cbd789 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisEngineStatistics.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/IrisEngineStatistics.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.runtime; import lombok.Data; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisEngineStreamType.java b/core/src/main/java/art/arcane/iris/generation/runtime/IrisEngineStreamType.java similarity index 57% rename from core/src/main/java/art/arcane/iris/engine/object/IrisEngineStreamType.java rename to core/src/main/java/art/arcane/iris/generation/runtime/IrisEngineStreamType.java index c77a9c542..bc080a776 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisEngineStreamType.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/IrisEngineStreamType.java @@ -16,46 +16,45 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.volmlib.util.stream.ProceduralStream; import java.util.function.Function; -@Desc("Represents a stream from the engine") +@Description("Represents a stream from the engine") public enum IrisEngineStreamType { - @Desc("Represents the given slope at the x, z coordinates") + @Description("Represents the given slope at the x, z coordinates") SLOPE((f) -> f.getComplex().getSlopeStream()), - @Desc("Represents terrain height before river incision and river biome replacement.") + @Description("Represents terrain height before river incision and river biome replacement.") NATURAL_HEIGHT((f) -> f.getComplex().getNaturalHeightStream()), - @Desc("Represents the base generator height at the given position. This includes only the biome generators / interpolation and noise features but does not include carving, caves.") + @Description("Represents the base generator height at the given position. This includes only the biome generators / interpolation and noise features but does not include carving, caves.") HEIGHT((f) -> f.getComplex().getHeightStream()), - @Desc("Represents the base generator height at the given position. This includes only the biome generators / interpolation and noise features but does not include carving, caves. with Max(height, fluidHeight).") + @Description("Represents the base generator height at the given position. This includes only the biome generators / interpolation and noise features but does not include carving, caves. with Max(height, fluidHeight).") HEIGHT_OR_FLUID((f) -> f.getComplex().getHeightFluidStream()), - @Desc("Represents the overlay noise generators summed (dimension setting)") + @Description("Represents the overlay noise generators summed (dimension setting)") OVERLAY_NOISE((f) -> f.getComplex().getOverlayStream()), - @Desc("Represents the noise style of regions") + @Description("Represents the noise style of regions") REGION_STYLE((f) -> f.getComplex().getRegionStyleStream()), - @Desc("Represents the identity of regions. Each region has a unique number (very large numbers)") + @Description("Represents the identity of regions. Each region has a unique number (very large numbers)") REGION_IDENTITY((f) -> f.getComplex().getRegionIdentityStream()), - @Desc("Represents block distance from the nearest active river centerline.") + @Description("Represents block distance from the nearest active river centerline.") RIVER_DISTANCE((f) -> f.getComplex().getRiverDistanceStream()), - @Desc("Represents the merged upstream flow carried by the active river reach.") + @Description("Represents the merged upstream flow carried by the active river reach.") RIVER_FLOW((f) -> f.getComplex().getRiverFlowStream()), - @Desc("Represents the normalized river terrain-incision weight.") + @Description("Represents the normalized river terrain-incision weight.") RIVER_CARVE_WEIGHT((f) -> f.getComplex().getRiverCarveWeightStream()), - @Desc("Represents the solved river water-surface height.") + @Description("Represents the solved river water-surface height.") RIVER_WATER_SURFACE((f) -> f.getComplex().getRiverWaterSurfaceStream()); private final Function> getter; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisEngineValueType.java b/core/src/main/java/art/arcane/iris/generation/runtime/IrisEngineValueType.java similarity index 67% rename from core/src/main/java/art/arcane/iris/engine/object/IrisEngineValueType.java rename to core/src/main/java/art/arcane/iris/generation/runtime/IrisEngineValueType.java index 4c5fe9c32..65f25c3ac 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisEngineValueType.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/IrisEngineValueType.java @@ -16,25 +16,24 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.documentation.Description; import java.util.function.Function; -@Desc("Represents a value from the engine") +@Description("Represents a value from the engine") public enum IrisEngineValueType { - @Desc("Represents actual height of the engine") + @Description("Represents actual height of the engine") ENGINE_HEIGHT((f) -> Double.valueOf(f.getHeight())), - @Desc("Represents virtual bottom of the engine in the compound. If this engine is on top of another engine, it's min height would be at the maxHeight of the previous engine + 1") + @Description("Represents virtual bottom of the engine in the compound. If this engine is on top of another engine, it's min height would be at the maxHeight of the previous engine + 1") ENGINE_MIN_HEIGHT((f) -> Double.valueOf(f.getMinHeight())), - @Desc("Represents virtual top of the engine in the compound. If this engine is below another engine, it's max height would be at the minHeight of the next engine - 1") + @Description("Represents virtual top of the engine in the compound. If this engine is below another engine, it's max height would be at the minHeight of the next engine - 1") ENGINE_MAX_HEIGHT((f) -> Double.valueOf(f.getWorld().maxHeight())), - @Desc("The fluid height defined in the dimension file") + @Description("The fluid height defined in the dimension file") FLUID_HEIGHT((f) -> Double.valueOf(f.getComplex().getFluidHeight())), ; diff --git a/core/src/main/java/art/arcane/iris/engine/IrisWorldManager.java b/core/src/main/java/art/arcane/iris/generation/runtime/IrisWorldManager.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/IrisWorldManager.java rename to core/src/main/java/art/arcane/iris/generation/runtime/IrisWorldManager.java index bd8e954d8..cfaa011da 100644 --- a/core/src/main/java/art/arcane/iris/engine/IrisWorldManager.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/IrisWorldManager.java @@ -16,14 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; import art.arcane.iris.platform.bukkit.BukkitWorldBinding; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.engine.data.cache.Cache; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineAssignedWorldManager; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.generation.cache.Cache; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; @@ -32,7 +30,7 @@ import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.math.Position2; import art.arcane.volmlib.util.matter.Matter; import art.arcane.volmlib.util.scheduling.ChronoLatch; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.scheduling.Looper; import lombok.AccessLevel; import lombok.Data; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/ListFunction.java b/core/src/main/java/art/arcane/iris/generation/runtime/ListFunction.java similarity index 62% rename from core/src/main/java/art/arcane/iris/engine/framework/ListFunction.java rename to core/src/main/java/art/arcane/iris/generation/runtime/ListFunction.java index 706c7fccd..09f2f4b97 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/ListFunction.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/ListFunction.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.pack.loading.IrisData; import java.util.function.Function; diff --git a/core/src/main/java/art/arcane/iris/engine/MarkerSpawnScanner.java b/core/src/main/java/art/arcane/iris/generation/runtime/MarkerSpawnScanner.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/MarkerSpawnScanner.java rename to core/src/main/java/art/arcane/iris/generation/runtime/MarkerSpawnScanner.java index 4e8331ce5..2f2e8b7ca 100644 --- a/core/src/main/java/art/arcane/iris/engine/MarkerSpawnScanner.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/MarkerSpawnScanner.java @@ -16,19 +16,18 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.BiomeEnvironment; -import art.arcane.iris.engine.history.SavedBiomeUnavailableException; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.world.history.SavedBiomeUnavailableException; -import art.arcane.iris.engine.data.cache.Cache; -import art.arcane.iris.engine.object.IrisMarker; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.IrisSpawner; +import art.arcane.iris.generation.cache.Cache; +import art.arcane.iris.world.entity.IrisMarker; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.world.entity.IrisSpawner; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.plugin.Chunks; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.platform.bukkit.plugin.Chunks; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KSet; import art.arcane.volmlib.util.matter.MatterMarker; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/MeteredCache.java b/core/src/main/java/art/arcane/iris/generation/runtime/MeteredCache.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/framework/MeteredCache.java rename to core/src/main/java/art/arcane/iris/generation/runtime/MeteredCache.java index 80dabc783..15936fb22 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/MeteredCache.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/MeteredCache.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; import art.arcane.volmlib.util.data.KCache; diff --git a/core/src/main/java/art/arcane/iris/engine/NativeStructureBootstrapBarrier.java b/core/src/main/java/art/arcane/iris/generation/runtime/NativeStructureBootstrapBarrier.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/NativeStructureBootstrapBarrier.java rename to core/src/main/java/art/arcane/iris/generation/runtime/NativeStructureBootstrapBarrier.java index 0817e0829..2b0aebd45 100644 --- a/core/src/main/java/art/arcane/iris/engine/NativeStructureBootstrapBarrier.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/NativeStructureBootstrapBarrier.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; import java.util.Objects; import java.util.concurrent.CompletableFuture; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/PreservationRegistry.java b/core/src/main/java/art/arcane/iris/generation/runtime/PreservationRegistry.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/framework/PreservationRegistry.java rename to core/src/main/java/art/arcane/iris/generation/runtime/PreservationRegistry.java index 2319d965f..30cb8e788 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/PreservationRegistry.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/PreservationRegistry.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; import java.util.concurrent.ExecutorService; diff --git a/core/src/main/java/art/arcane/iris/core/service/PreservationSVC.java b/core/src/main/java/art/arcane/iris/generation/runtime/PreservationSVC.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/service/PreservationSVC.java rename to core/src/main/java/art/arcane/iris/generation/runtime/PreservationSVC.java index 6feb29cc9..d49d5bbc0 100644 --- a/core/src/main/java/art/arcane/iris/core/service/PreservationSVC.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/PreservationSVC.java @@ -16,15 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.service; +package art.arcane.iris.generation.runtime; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.MeteredCache; -import art.arcane.iris.engine.framework.PreservationRegistry; +import art.arcane.iris.pack.loading.IrisData; import art.arcane.volmlib.util.data.KCache; import art.arcane.volmlib.util.format.Form; -import art.arcane.iris.util.common.plugin.IrisService; +import art.arcane.iris.platform.bukkit.plugin.IrisService; import art.arcane.volmlib.util.scheduling.Looper; import org.jetbrains.annotations.Unmodifiable; diff --git a/core/src/main/java/art/arcane/iris/engine/ResolvedTerrainProvider.java b/core/src/main/java/art/arcane/iris/generation/runtime/ResolvedTerrainProvider.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/ResolvedTerrainProvider.java rename to core/src/main/java/art/arcane/iris/generation/runtime/ResolvedTerrainProvider.java index dad87b1e1..5fd604a1b 100644 --- a/core/src/main/java/art/arcane/iris/engine/ResolvedTerrainProvider.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/ResolvedTerrainProvider.java @@ -1,22 +1,20 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.actuator.IrisTransitionGeometryActuator; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineMode; -import art.arcane.iris.engine.history.BoundaryColumnGeometry; -import art.arcane.iris.engine.history.GenerationHistoryRuntimeRouter; -import art.arcane.iris.engine.history.FloatingBiomeOverlay; -import art.arcane.iris.engine.history.SavedTerrainChunk; -import art.arcane.iris.engine.history.TerrainBoundarySignature; -import art.arcane.iris.engine.history.TransitionGenerationPlan; -import art.arcane.iris.engine.history.TransitionFluidContainment; +import art.arcane.iris.generation.stage.IrisTransitionGeometryActuator; +import art.arcane.iris.world.history.BoundaryColumnGeometry; +import art.arcane.iris.world.history.GenerationHistoryRuntimeRouter; +import art.arcane.iris.world.history.FloatingBiomeOverlay; +import art.arcane.iris.world.history.SavedTerrainChunk; +import art.arcane.iris.world.history.TerrainBoundarySignature; +import art.arcane.iris.world.history.TransitionGenerationPlan; +import art.arcane.iris.world.history.TransitionFluidContainment; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformRegistries; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.project.context.IrisContext; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.iris.generation.context.IrisContext; +import art.arcane.volmlib.util.hunk.Hunk; import java.io.IOException; import java.util.HashMap; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/SeedManager.java b/core/src/main/java/art/arcane/iris/generation/runtime/SeedManager.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/framework/SeedManager.java rename to core/src/main/java/art/arcane/iris/generation/runtime/SeedManager.java index def691b12..93ca94bc7 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/SeedManager.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/SeedManager.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.object.NoiseStyle; +import art.arcane.iris.generation.noise.NoiseStyle; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.volmlib.util.noise.CNG; import lombok.AccessLevel; import lombok.Data; import lombok.Setter; diff --git a/core/src/main/java/art/arcane/iris/engine/SharedCornerBounds.java b/core/src/main/java/art/arcane/iris/generation/runtime/SharedCornerBounds.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/SharedCornerBounds.java rename to core/src/main/java/art/arcane/iris/generation/runtime/SharedCornerBounds.java index 43d15d219..c7cd2bef2 100644 --- a/core/src/main/java/art/arcane/iris/engine/SharedCornerBounds.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/SharedCornerBounds.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; import java.lang.invoke.MethodHandles; import java.lang.invoke.VarHandle; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/Staged.java b/core/src/main/java/art/arcane/iris/generation/runtime/Staged.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/framework/Staged.java rename to core/src/main/java/art/arcane/iris/generation/runtime/Staged.java index 03d98ed6b..226ef6fed 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/Staged.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/Staged.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; import art.arcane.volmlib.util.collection.KList; diff --git a/core/src/main/java/art/arcane/iris/engine/StudioGenerationUpdate.java b/core/src/main/java/art/arcane/iris/generation/runtime/StudioGenerationUpdate.java similarity index 83% rename from core/src/main/java/art/arcane/iris/engine/StudioGenerationUpdate.java rename to core/src/main/java/art/arcane/iris/generation/runtime/StudioGenerationUpdate.java index 0002faaa6..4e647cb4e 100644 --- a/core/src/main/java/art/arcane/iris/engine/StudioGenerationUpdate.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/StudioGenerationUpdate.java @@ -1,17 +1,17 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.pack.PackValidationResult; -import art.arcane.iris.core.pack.PackValidator; -import art.arcane.iris.core.pack.AtomicDirectoryPublisher; -import art.arcane.iris.engine.history.GenerationEpoch; -import art.arcane.iris.engine.history.GenerationEpochContractFactory; -import art.arcane.iris.engine.history.GenerationHistory; -import art.arcane.iris.engine.history.GenerationPackFingerprint; -import art.arcane.iris.engine.history.GenerationPackRepository; -import art.arcane.iris.engine.history.GenerationRegistryContract; -import art.arcane.iris.engine.history.GenerationRegistryContractFactory; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.PackValidationResult; +import art.arcane.iris.pack.PackValidator; +import art.arcane.iris.pack.AtomicDirectoryPublisher; +import art.arcane.iris.world.history.GenerationEpoch; +import art.arcane.iris.world.history.GenerationEpochContractFactory; +import art.arcane.iris.world.history.GenerationHistory; +import art.arcane.iris.world.history.GenerationPackFingerprint; +import art.arcane.iris.world.history.GenerationPackRepository; +import art.arcane.iris.world.history.GenerationRegistryContract; +import art.arcane.iris.world.history.GenerationRegistryContractFactory; +import art.arcane.iris.generation.terrain.IrisDimension; import java.io.IOException; import java.nio.file.Path; diff --git a/core/src/main/java/art/arcane/iris/engine/UpperDimensionContext.java b/core/src/main/java/art/arcane/iris/generation/runtime/UpperDimensionContext.java similarity index 92% rename from core/src/main/java/art/arcane/iris/engine/UpperDimensionContext.java rename to core/src/main/java/art/arcane/iris/generation/runtime/UpperDimensionContext.java index dc278ef3c..3a0f670b1 100644 --- a/core/src/main/java/art/arcane/iris/engine/UpperDimensionContext.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/UpperDimensionContext.java @@ -16,18 +16,17 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.image.IrisImageMapRuntime; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.terrain.Terrain3DColumn; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.image.IrisImageMapRuntime; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.generation.terrain.Terrain3DColumn; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.DataProvider; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.iris.generation.block.DataProvider; +import art.arcane.volmlib.util.stream.ProceduralStream; public class UpperDimensionContext implements DataProvider { private final DimensionTerrainContext terrainContext; diff --git a/core/src/main/java/art/arcane/iris/engine/WorldBlockDropRouter.java b/core/src/main/java/art/arcane/iris/generation/runtime/WorldBlockDropRouter.java similarity index 92% rename from core/src/main/java/art/arcane/iris/engine/WorldBlockDropRouter.java rename to core/src/main/java/art/arcane/iris/generation/runtime/WorldBlockDropRouter.java index 055d51aaa..3b313f8d1 100644 --- a/core/src/main/java/art/arcane/iris/engine/WorldBlockDropRouter.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/WorldBlockDropRouter.java @@ -16,19 +16,19 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.service.tree.BlockDropRouter; -import art.arcane.iris.engine.history.SavedBiomeUnavailableException; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBlockDrops; -import art.arcane.iris.engine.object.IrisMarker; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.platform.EngineBukkitOps; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.world.tree.BlockDropRouter; +import art.arcane.iris.world.history.SavedBiomeUnavailableException; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.world.loot.IrisBlockDrops; +import art.arcane.iris.world.entity.IrisMarker; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.platform.generation.EngineBukkitOps; import art.arcane.iris.platform.bukkit.BukkitWorldBinding; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.matter.MatterMarker; import org.bukkit.Location; diff --git a/core/src/main/java/art/arcane/iris/engine/WorldChunkMaintenance.java b/core/src/main/java/art/arcane/iris/generation/runtime/WorldChunkMaintenance.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/WorldChunkMaintenance.java rename to core/src/main/java/art/arcane/iris/generation/runtime/WorldChunkMaintenance.java index 94059d615..be0b4c64a 100644 --- a/core/src/main/java/art/arcane/iris/engine/WorldChunkMaintenance.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/WorldChunkMaintenance.java @@ -16,18 +16,18 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.engine.data.cache.Cache; -import art.arcane.iris.engine.history.GenerationHistoryRuntimeRouter; -import art.arcane.iris.engine.history.GenerationHistoryRuntimeRouter.SavedChunkMantle; -import art.arcane.iris.engine.history.SavedBiomeUnavailableException; -import art.arcane.iris.engine.platform.EngineBukkitOps; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.generation.cache.Cache; +import art.arcane.iris.world.history.GenerationHistoryRuntimeRouter; +import art.arcane.iris.world.history.GenerationHistoryRuntimeRouter.SavedChunkMantle; +import art.arcane.iris.world.history.SavedBiomeUnavailableException; +import art.arcane.iris.platform.generation.EngineBukkitOps; import art.arcane.iris.platform.bukkit.BukkitWorldBinding; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.plugin.Chunks; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.platform.bukkit.plugin.Chunks; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.mantle.flag.MantleFlag; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; diff --git a/core/src/main/java/art/arcane/iris/engine/WorldEntitySpawner.java b/core/src/main/java/art/arcane/iris/generation/runtime/WorldEntitySpawner.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/WorldEntitySpawner.java rename to core/src/main/java/art/arcane/iris/generation/runtime/WorldEntitySpawner.java index 9b096b5de..bfa49f5bd 100644 --- a/core/src/main/java/art/arcane/iris/engine/WorldEntitySpawner.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/WorldEntitySpawner.java @@ -16,22 +16,21 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.gui.PregeneratorJob; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.object.IRare; -import art.arcane.iris.engine.framework.BiomeEnvironment; -import art.arcane.iris.engine.history.SavedBiomeUnavailableException; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisEntitySpawn; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.IrisSpawner; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.studio.view.PregeneratorJob; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.volmlib.util.math.Rarity; +import art.arcane.iris.world.history.SavedBiomeUnavailableException; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.world.entity.IrisEntitySpawn; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.world.entity.IrisSpawner; import art.arcane.iris.platform.bukkit.BukkitWorldBinding; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.plugin.Chunks; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.platform.bukkit.plugin.Chunks; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.bukkit.WorldIdentity; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.format.Form; @@ -46,7 +45,7 @@ import org.bukkit.entity.LivingEntity; import java.util.List; import java.util.Optional; -import art.arcane.iris.engine.MarkerSpawnScanner.PreparedMarkerSpawn; +import art.arcane.iris.generation.runtime.MarkerSpawnScanner.PreparedMarkerSpawn; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; @@ -467,7 +466,7 @@ final class WorldEntitySpawner { } private KList spawnRandomly(List types) { - return IRare.expandWeighted(types); + return Rarity.expandWeighted(types); } @Data diff --git a/core/src/main/java/art/arcane/iris/engine/WorldTeleportWarmup.java b/core/src/main/java/art/arcane/iris/generation/runtime/WorldTeleportWarmup.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/WorldTeleportWarmup.java rename to core/src/main/java/art/arcane/iris/generation/runtime/WorldTeleportWarmup.java index e2c2979c8..47614a13a 100644 --- a/core/src/main/java/art/arcane/iris/engine/WorldTeleportWarmup.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/WorldTeleportWarmup.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.spi.IrisLogging; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/WrongEngineBroException.java b/core/src/main/java/art/arcane/iris/generation/runtime/WrongEngineBroException.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/framework/WrongEngineBroException.java rename to core/src/main/java/art/arcane/iris/generation/runtime/WrongEngineBroException.java index 943a35a9b..bafe12afb 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/WrongEngineBroException.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/WrongEngineBroException.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; public class WrongEngineBroException extends Exception { public WrongEngineBroException() { diff --git a/core/src/main/java/art/arcane/iris/util/simd/ScalarSimdKernels.java b/core/src/main/java/art/arcane/iris/generation/simd/ScalarSimdKernels.java similarity index 95% rename from core/src/main/java/art/arcane/iris/util/simd/ScalarSimdKernels.java rename to core/src/main/java/art/arcane/iris/generation/simd/ScalarSimdKernels.java index 85a4ef275..fa619186d 100644 --- a/core/src/main/java/art/arcane/iris/util/simd/ScalarSimdKernels.java +++ b/core/src/main/java/art/arcane/iris/generation/simd/ScalarSimdKernels.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.simd; +package art.arcane.iris.generation.simd; public final class ScalarSimdKernels implements SimdKernels { @Override diff --git a/core/src/main/java/art/arcane/iris/util/simd/SimdKernels.java b/core/src/main/java/art/arcane/iris/generation/simd/SimdKernels.java similarity index 83% rename from core/src/main/java/art/arcane/iris/util/simd/SimdKernels.java rename to core/src/main/java/art/arcane/iris/generation/simd/SimdKernels.java index 243dd59ee..8c57fe0b6 100644 --- a/core/src/main/java/art/arcane/iris/util/simd/SimdKernels.java +++ b/core/src/main/java/art/arcane/iris/generation/simd/SimdKernels.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.simd; +package art.arcane.iris.generation.simd; public interface SimdKernels { String describe(); diff --git a/core/src/main/java/art/arcane/iris/util/simd/SimdSupport.java b/core/src/main/java/art/arcane/iris/generation/simd/SimdSupport.java similarity index 95% rename from core/src/main/java/art/arcane/iris/util/simd/SimdSupport.java rename to core/src/main/java/art/arcane/iris/generation/simd/SimdSupport.java index 055550867..94dc4b35b 100644 --- a/core/src/main/java/art/arcane/iris/util/simd/SimdSupport.java +++ b/core/src/main/java/art/arcane/iris/generation/simd/SimdSupport.java @@ -1,7 +1,7 @@ -package art.arcane.iris.util.simd; +package art.arcane.iris.generation.simd; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.configuration.IrisSettings; import java.util.concurrent.atomic.AtomicReference; @@ -69,7 +69,7 @@ public final class SimdSupport { } try { - return (SimdKernels) Class.forName("art.arcane.iris.util.simd.VectorSimdKernels").getDeclaredConstructor().newInstance(); + return (SimdKernels) Class.forName("art.arcane.iris.generation.simd.VectorSimdKernels").getDeclaredConstructor().newInstance(); } catch (Throwable e) { KERNEL_FAILURE.set(e); return null; diff --git a/core/src/main/java/art/arcane/iris/util/simd/VectorSimdKernels.java b/core/src/main/java/art/arcane/iris/generation/simd/VectorSimdKernels.java similarity index 98% rename from core/src/main/java/art/arcane/iris/util/simd/VectorSimdKernels.java rename to core/src/main/java/art/arcane/iris/generation/simd/VectorSimdKernels.java index 3d2c4605b..f4cf08b5f 100644 --- a/core/src/main/java/art/arcane/iris/util/simd/VectorSimdKernels.java +++ b/core/src/main/java/art/arcane/iris/generation/simd/VectorSimdKernels.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.simd; +package art.arcane.iris.generation.simd; import jdk.incubator.vector.DoubleVector; import jdk.incubator.vector.IntVector; diff --git a/core/src/main/java/art/arcane/iris/engine/actuator/HydrologyFluidLayerSelector.java b/core/src/main/java/art/arcane/iris/generation/stage/HydrologyFluidLayerSelector.java similarity index 92% rename from core/src/main/java/art/arcane/iris/engine/actuator/HydrologyFluidLayerSelector.java rename to core/src/main/java/art/arcane/iris/generation/stage/HydrologyFluidLayerSelector.java index 34b2d56fa..96f707bc4 100644 --- a/core/src/main/java/art/arcane/iris/engine/actuator/HydrologyFluidLayerSelector.java +++ b/core/src/main/java/art/arcane/iris/generation/stage/HydrologyFluidLayerSelector.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.actuator; +package art.arcane.iris.generation.stage; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.volmlib.util.collection.KList; diff --git a/core/src/main/java/art/arcane/iris/engine/actuator/IrisBiomeActuator.java b/core/src/main/java/art/arcane/iris/generation/stage/IrisBiomeActuator.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/actuator/IrisBiomeActuator.java rename to core/src/main/java/art/arcane/iris/generation/stage/IrisBiomeActuator.java index a4a5083fc..de31ddb43 100644 --- a/core/src/main/java/art/arcane/iris/engine/actuator/IrisBiomeActuator.java +++ b/core/src/main/java/art/arcane/iris/generation/stage/IrisBiomeActuator.java @@ -16,23 +16,23 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.actuator; +package art.arcane.iris.generation.stage; -import art.arcane.iris.engine.DimensionStackContext; -import art.arcane.iris.engine.DimensionStackLayout; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineAssignedActuator; -import art.arcane.iris.engine.history.TransitionGenerationPlan; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBiomeCustom; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.generation.runtime.DimensionStackContext; +import art.arcane.iris.generation.runtime.DimensionStackLayout; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineAssignedActuator; +import art.arcane.iris.world.history.TransitionGenerationPlan; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiomeCustom; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBiome; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.project.context.ChunkedDataCache; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.iris.generation.context.ChunkedDataCache; +import art.arcane.volmlib.util.hunk.Hunk; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.documentation.BlockCoordinates; import art.arcane.volmlib.util.mantle.runtime.Mantle; diff --git a/core/src/main/java/art/arcane/iris/engine/modifier/IrisCarveModifier.java b/core/src/main/java/art/arcane/iris/generation/stage/IrisCarveModifier.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/modifier/IrisCarveModifier.java rename to core/src/main/java/art/arcane/iris/generation/stage/IrisCarveModifier.java index d5d264dd1..e6e8d1bd8 100644 --- a/core/src/main/java/art/arcane/iris/engine/modifier/IrisCarveModifier.java +++ b/core/src/main/java/art/arcane/iris/generation/stage/IrisCarveModifier.java @@ -16,31 +16,30 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.modifier; +package art.arcane.iris.generation.stage; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.DimensionStackContext; -import art.arcane.iris.engine.DimensionStackLayout; -import art.arcane.iris.engine.UpperDimensionContext; -import art.arcane.iris.engine.terrain.Terrain3DColumn; -import art.arcane.iris.engine.actuator.IrisDecorantActuator; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineAssignedModifier; -import art.arcane.iris.engine.mantle.TerrainMatterView; -import art.arcane.iris.engine.object.InferredType; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDecorationPart; -import art.arcane.iris.engine.object.IrisDecorator; -import art.arcane.iris.engine.object.IrisDimensionCarvingResolver; -import art.arcane.iris.engine.object.IrisHydrology; -import art.arcane.iris.engine.object.IrisProceduralBlocks; -import art.arcane.iris.engine.object.IrisRiverMaterialConfig; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.common.data.B; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.DimensionStackContext; +import art.arcane.iris.generation.runtime.DimensionStackLayout; +import art.arcane.iris.generation.runtime.UpperDimensionContext; +import art.arcane.iris.generation.terrain.Terrain3DColumn; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineAssignedModifier; +import art.arcane.iris.generation.mantle.TerrainMatterView; +import art.arcane.iris.generation.terrain.InferredType; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.decoration.IrisDecorationPart; +import art.arcane.iris.generation.decoration.IrisDecorator; +import art.arcane.iris.generation.terrain.IrisDimensionCarvingResolver; +import art.arcane.iris.generation.hydrology.IrisHydrology; +import art.arcane.iris.generation.decoration.IrisProceduralBlocks; +import art.arcane.iris.generation.hydrology.IrisRiverMaterialConfig; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.iris.generation.block.B; import art.arcane.volmlib.util.documentation.ChunkCoordinates; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; diff --git a/core/src/main/java/art/arcane/iris/engine/modifier/IrisCarveScratch.java b/core/src/main/java/art/arcane/iris/generation/stage/IrisCarveScratch.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/modifier/IrisCarveScratch.java rename to core/src/main/java/art/arcane/iris/generation/stage/IrisCarveScratch.java index 678fbd38c..e75522d11 100644 --- a/core/src/main/java/art/arcane/iris/engine/modifier/IrisCarveScratch.java +++ b/core/src/main/java/art/arcane/iris/generation/stage/IrisCarveScratch.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.modifier; +package art.arcane.iris.generation.stage; -import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiome; import art.arcane.volmlib.util.matter.MatterCavern; import art.arcane.volmlib.util.math.PowerOfTwoCoordinates; diff --git a/core/src/main/java/art/arcane/iris/engine/modifier/IrisCustomModifier.java b/core/src/main/java/art/arcane/iris/generation/stage/IrisCustomModifier.java similarity index 84% rename from core/src/main/java/art/arcane/iris/engine/modifier/IrisCustomModifier.java rename to core/src/main/java/art/arcane/iris/generation/stage/IrisCustomModifier.java index 328fea675..c386ddfe6 100644 --- a/core/src/main/java/art/arcane/iris/engine/modifier/IrisCustomModifier.java +++ b/core/src/main/java/art/arcane/iris/generation/stage/IrisCustomModifier.java @@ -1,13 +1,13 @@ -package art.arcane.iris.engine.modifier; +package art.arcane.iris.generation.stage; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineAssignedModifier; +import art.arcane.iris.integration.Identifier; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineAssignedModifier; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.parallel.BurstExecutor; -import art.arcane.iris.util.common.parallel.MultiBurst; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.iris.generation.concurrent.BurstExecutor; +import art.arcane.iris.generation.concurrent.MultiBurst; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.volmlib.util.hunk.Hunk; import art.arcane.volmlib.util.mantle.flag.MantleFlag; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.matter.Matter; diff --git a/core/src/main/java/art/arcane/iris/engine/actuator/IrisDecorantActuator.java b/core/src/main/java/art/arcane/iris/generation/stage/IrisDecorantActuator.java similarity index 91% rename from core/src/main/java/art/arcane/iris/engine/actuator/IrisDecorantActuator.java rename to core/src/main/java/art/arcane/iris/generation/stage/IrisDecorantActuator.java index 13463f6f7..d6d196ea2 100644 --- a/core/src/main/java/art/arcane/iris/engine/actuator/IrisDecorantActuator.java +++ b/core/src/main/java/art/arcane/iris/generation/stage/IrisDecorantActuator.java @@ -16,25 +16,25 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.actuator; +package art.arcane.iris.generation.stage; -import art.arcane.iris.engine.decorator.IrisCeilingDecorator; -import art.arcane.iris.engine.decorator.IrisSeaFloorDecorator; -import art.arcane.iris.engine.decorator.IrisSeaSurfaceDecorator; -import art.arcane.iris.engine.decorator.IrisShoreLineDecorator; -import art.arcane.iris.engine.decorator.IrisSurfaceDecorator; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineAssignedActuator; -import art.arcane.iris.engine.framework.EngineDecorator; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.HydrologyColumnSample; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.terrain.Terrain3DColumn; -import art.arcane.iris.util.common.data.B; -import art.arcane.iris.util.project.context.ChunkContext; +import art.arcane.iris.generation.decoration.IrisCeilingDecorator; +import art.arcane.iris.generation.decoration.IrisSeaFloorDecorator; +import art.arcane.iris.generation.decoration.IrisSeaSurfaceDecorator; +import art.arcane.iris.generation.decoration.IrisShoreLineDecorator; +import art.arcane.iris.generation.decoration.IrisSurfaceDecorator; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineAssignedActuator; +import art.arcane.iris.generation.runtime.EngineDecorator; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.HydrologyColumnSample; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.Terrain3DColumn; +import art.arcane.iris.generation.block.B; +import art.arcane.iris.generation.context.ChunkContext; import art.arcane.volmlib.util.documentation.BlockCoordinates; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import art.arcane.iris.spi.PlatformBlockState; diff --git a/core/src/main/java/art/arcane/iris/engine/modifier/IrisDepositModifier.java b/core/src/main/java/art/arcane/iris/generation/stage/IrisDepositModifier.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/modifier/IrisDepositModifier.java rename to core/src/main/java/art/arcane/iris/generation/stage/IrisDepositModifier.java index 2988c77f0..b4b212d07 100644 --- a/core/src/main/java/art/arcane/iris/engine/modifier/IrisDepositModifier.java +++ b/core/src/main/java/art/arcane/iris/generation/stage/IrisDepositModifier.java @@ -16,35 +16,35 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.modifier; +package art.arcane.iris.generation.stage; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.framework.EngineAssignedModifier; -import art.arcane.iris.engine.DimensionStackLayout; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDepositGenerator; -import art.arcane.iris.engine.object.IrisDepositHeightDistribution; -import art.arcane.iris.engine.object.IrisDepositPlacementScope; -import art.arcane.iris.engine.object.IrisDepositVariant; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisDimensionCarvingResolver; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisProceduralBlocks; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.project.context.IrisContext; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.runtime.EngineAssignedModifier; +import art.arcane.iris.generation.runtime.DimensionStackLayout; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.decoration.IrisDepositGenerator; +import art.arcane.iris.generation.decoration.IrisDepositHeightDistribution; +import art.arcane.iris.generation.decoration.IrisDepositPlacementScope; +import art.arcane.iris.generation.decoration.IrisDepositVariant; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisDimensionCarvingResolver; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.generation.decoration.IrisProceduralBlocks; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.iris.generation.context.IrisContext; import art.arcane.volmlib.util.data.HeightMap; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.matter.MatterCavern; -import art.arcane.iris.util.common.parallel.BurstExecutor; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.generation.concurrent.BurstExecutor; +import art.arcane.iris.generation.geometry.IrisBlockVector; import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; -import art.arcane.iris.util.common.data.VectorMap; +import art.arcane.iris.generation.block.B; +import art.arcane.iris.generation.block.VectorMap; import java.util.ArrayList; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/actuator/IrisDimensionStackActuator.java b/core/src/main/java/art/arcane/iris/generation/stage/IrisDimensionStackActuator.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/actuator/IrisDimensionStackActuator.java rename to core/src/main/java/art/arcane/iris/generation/stage/IrisDimensionStackActuator.java index 91e2db071..4c81b75de 100644 --- a/core/src/main/java/art/arcane/iris/engine/actuator/IrisDimensionStackActuator.java +++ b/core/src/main/java/art/arcane/iris/generation/stage/IrisDimensionStackActuator.java @@ -16,24 +16,24 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.actuator; +package art.arcane.iris.generation.stage; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.DimensionStackLayout; -import art.arcane.iris.engine.DimensionTerrainContext; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineAssignedActuator; -import art.arcane.iris.engine.framework.TreeBlockMaterial; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.integration.Identifier; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.DimensionStackLayout; +import art.arcane.iris.generation.runtime.DimensionTerrainContext; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineAssignedActuator; +import art.arcane.iris.generation.decoration.tree.TreeBlockMaterial; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.BoundBlockState; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.project.hunk.Hunk; -import art.arcane.iris.util.project.matter.TileWrapper; -import art.arcane.iris.util.project.matter.PreObjectMatterCell; +import art.arcane.iris.generation.block.BoundBlockState; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.volmlib.util.hunk.Hunk; +import art.arcane.iris.world.storage.matter.TileWrapper; +import art.arcane.iris.world.storage.matter.PreObjectMatterCell; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.documentation.BlockCoordinates; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; diff --git a/core/src/main/java/art/arcane/iris/engine/modifier/IrisFloatingChildBiomeModifier.java b/core/src/main/java/art/arcane/iris/generation/stage/IrisFloatingChildBiomeModifier.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/modifier/IrisFloatingChildBiomeModifier.java rename to core/src/main/java/art/arcane/iris/generation/stage/IrisFloatingChildBiomeModifier.java index 7a6accb62..3c49392d1 100644 --- a/core/src/main/java/art/arcane/iris/engine/modifier/IrisFloatingChildBiomeModifier.java +++ b/core/src/main/java/art/arcane/iris/generation/stage/IrisFloatingChildBiomeModifier.java @@ -16,32 +16,32 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.modifier; +package art.arcane.iris.generation.stage; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.DimensionStackLayout; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.decorator.FloatingDecorator; -import art.arcane.iris.engine.decorator.IrisSeaSurfaceDecorator; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineAssignedModifier; -import art.arcane.iris.engine.framework.EngineDecorator; -import art.arcane.iris.engine.object.FloatingBottomPaletteMode; -import art.arcane.iris.engine.object.FloatingIslandBoundarySampler; -import art.arcane.iris.engine.object.FloatingIslandSample; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBiomePaletteLayer; -import art.arcane.iris.engine.object.IrisBiomeCustom; -import art.arcane.iris.engine.object.IrisDecorationPart; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisFloatingChildBiomes; -import art.arcane.iris.engine.object.IrisSlopeClip; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.DimensionStackLayout; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.decoration.FloatingDecorator; +import art.arcane.iris.generation.decoration.IrisSeaSurfaceDecorator; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineAssignedModifier; +import art.arcane.iris.generation.runtime.EngineDecorator; +import art.arcane.iris.generation.biome.FloatingBottomPaletteMode; +import art.arcane.iris.generation.biome.FloatingIslandBoundarySampler; +import art.arcane.iris.generation.biome.FloatingIslandSample; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiomePaletteLayer; +import art.arcane.iris.generation.biome.IrisBiomeCustom; +import art.arcane.iris.generation.decoration.IrisDecorationPart; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.biome.IrisFloatingChildBiomes; +import art.arcane.iris.generation.terrain.IrisSlopeClip; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.data.B; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.project.hunk.Hunk; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.iris.generation.block.B; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.volmlib.util.hunk.Hunk; +import art.arcane.volmlib.util.noise.CNG; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.matter.slices.BiomeInjectMatter; @@ -49,8 +49,8 @@ import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformBiome; -import art.arcane.iris.engine.history.TransitionGenerationPlan; -import art.arcane.iris.engine.history.FloatingBiomeOverlay; +import art.arcane.iris.world.history.TransitionGenerationPlan; +import art.arcane.iris.world.history.FloatingBiomeOverlay; import java.util.Optional; import java.util.IdentityHashMap; diff --git a/core/src/main/java/art/arcane/iris/engine/modifier/IrisPerfectionModifier.java b/core/src/main/java/art/arcane/iris/generation/stage/IrisPerfectionModifier.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/modifier/IrisPerfectionModifier.java rename to core/src/main/java/art/arcane/iris/generation/stage/IrisPerfectionModifier.java index 88280fba1..bbd023ddb 100644 --- a/core/src/main/java/art/arcane/iris/engine/modifier/IrisPerfectionModifier.java +++ b/core/src/main/java/art/arcane/iris/generation/stage/IrisPerfectionModifier.java @@ -16,17 +16,17 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.modifier; +package art.arcane.iris.generation.stage; -import art.arcane.iris.engine.decorator.IrisSpeleothems; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineAssignedModifier; -import art.arcane.iris.engine.object.IrisProceduralBlocks; -import art.arcane.iris.util.common.data.BoundBlockState; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.common.data.B; -import art.arcane.iris.util.project.hunk.Hunk; -import art.arcane.iris.util.common.parallel.BurstExecutor; +import art.arcane.iris.generation.decoration.IrisSpeleothems; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineAssignedModifier; +import art.arcane.iris.generation.decoration.IrisProceduralBlocks; +import art.arcane.iris.generation.block.BoundBlockState; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.iris.generation.block.B; +import art.arcane.volmlib.util.hunk.Hunk; +import art.arcane.iris.generation.concurrent.BurstExecutor; import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import art.arcane.iris.spi.PlatformBlockState; diff --git a/core/src/main/java/art/arcane/iris/engine/modifier/IrisPostModifier.java b/core/src/main/java/art/arcane/iris/generation/stage/IrisPostModifier.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/modifier/IrisPostModifier.java rename to core/src/main/java/art/arcane/iris/generation/stage/IrisPostModifier.java index 0e849478f..9cc6e3020 100644 --- a/core/src/main/java/art/arcane/iris/engine/modifier/IrisPostModifier.java +++ b/core/src/main/java/art/arcane/iris/generation/stage/IrisPostModifier.java @@ -16,20 +16,20 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.modifier; +package art.arcane.iris.generation.stage; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineAssignedModifier; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisProceduralBlocks; -import art.arcane.iris.engine.object.IrisSlopeClip; -import art.arcane.iris.util.common.data.BoundBlockState; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.common.data.B; -import art.arcane.iris.util.project.hunk.Hunk; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineAssignedModifier; +import art.arcane.iris.generation.mantle.EngineMantle; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.decoration.IrisProceduralBlocks; +import art.arcane.iris.generation.terrain.IrisSlopeClip; +import art.arcane.iris.generation.block.BoundBlockState; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.iris.generation.block.B; +import art.arcane.volmlib.util.hunk.Hunk; +import art.arcane.volmlib.util.stream.ProceduralStream; import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import art.arcane.iris.spi.PlatformBlockState; diff --git a/core/src/main/java/art/arcane/iris/engine/actuator/IrisTerrainNormalActuator.java b/core/src/main/java/art/arcane/iris/generation/stage/IrisTerrainNormalActuator.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/actuator/IrisTerrainNormalActuator.java rename to core/src/main/java/art/arcane/iris/generation/stage/IrisTerrainNormalActuator.java index 04923fa12..68a0f24cd 100644 --- a/core/src/main/java/art/arcane/iris/engine/actuator/IrisTerrainNormalActuator.java +++ b/core/src/main/java/art/arcane/iris/generation/stage/IrisTerrainNormalActuator.java @@ -16,32 +16,32 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.actuator; +package art.arcane.iris.generation.stage; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineAssignedActuator; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.util.project.stream.ProceduralStream; -import art.arcane.iris.engine.UpperDimensionContext; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.HydrologyColumnSample; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisProceduralBlocks; -import art.arcane.iris.engine.object.IrisSurfaceRiverBedConfig; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisOreGenerator; -import art.arcane.iris.engine.object.IrisOreGeneratorBounds; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisRiverMaterialConfig; -import art.arcane.iris.engine.object.IrisSurfaceRiverBankConfig; -import art.arcane.iris.engine.terrain.Terrain3DColumn; -import art.arcane.iris.util.common.data.BoundBlockState; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineAssignedActuator; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.volmlib.util.stream.ProceduralStream; +import art.arcane.iris.generation.runtime.UpperDimensionContext; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.HydrologyColumnSample; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.decoration.IrisProceduralBlocks; +import art.arcane.iris.generation.hydrology.IrisSurfaceRiverBedConfig; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.decoration.IrisOreGenerator; +import art.arcane.iris.generation.decoration.IrisOreGeneratorBounds; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.generation.hydrology.IrisRiverMaterialConfig; +import art.arcane.iris.generation.hydrology.IrisSurfaceRiverBankConfig; +import art.arcane.iris.generation.terrain.Terrain3DColumn; +import art.arcane.iris.generation.block.BoundBlockState; import art.arcane.volmlib.util.collection.KList; -import art.arcane.iris.util.project.context.ChunkedDataCache; -import art.arcane.iris.util.project.context.ChunkContext; +import art.arcane.iris.generation.context.ChunkedDataCache; +import art.arcane.iris.generation.context.ChunkContext; import art.arcane.volmlib.util.documentation.BlockCoordinates; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import art.arcane.iris.spi.PlatformBlockState; diff --git a/core/src/main/java/art/arcane/iris/engine/actuator/IrisTransitionGeometryActuator.java b/core/src/main/java/art/arcane/iris/generation/stage/IrisTransitionGeometryActuator.java similarity index 91% rename from core/src/main/java/art/arcane/iris/engine/actuator/IrisTransitionGeometryActuator.java rename to core/src/main/java/art/arcane/iris/generation/stage/IrisTransitionGeometryActuator.java index dd75cd986..3bc1f64ca 100644 --- a/core/src/main/java/art/arcane/iris/engine/actuator/IrisTransitionGeometryActuator.java +++ b/core/src/main/java/art/arcane/iris/generation/stage/IrisTransitionGeometryActuator.java @@ -1,20 +1,20 @@ -package art.arcane.iris.engine.actuator; +package art.arcane.iris.generation.stage; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineAssignedComponent; -import art.arcane.iris.engine.framework.EngineStage; -import art.arcane.iris.engine.history.BoundaryColumnGeometry; -import art.arcane.iris.engine.history.BoundaryGeometryInfluence; -import art.arcane.iris.engine.history.GenerationBlend; -import art.arcane.iris.engine.history.SavedTerrainChunk; -import art.arcane.iris.engine.history.TransitionGenerationPlan; -import art.arcane.iris.engine.history.TransitionGeometryBlender; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineAssignedComponent; +import art.arcane.iris.generation.runtime.EngineStage; +import art.arcane.iris.world.history.BoundaryColumnGeometry; +import art.arcane.iris.world.history.BoundaryGeometryInfluence; +import art.arcane.iris.world.history.GenerationBlend; +import art.arcane.iris.world.history.SavedTerrainChunk; +import art.arcane.iris.world.history.TransitionGenerationPlan; +import art.arcane.iris.world.history.TransitionGeometryBlender; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformRegistries; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.volmlib.util.hunk.Hunk; import java.io.IOException; import java.util.ArrayList; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/utility/CachedDoubleStream2D.java b/core/src/main/java/art/arcane/iris/generation/stream/CachedDoubleStream2D.java similarity index 86% rename from core/src/main/java/art/arcane/iris/util/project/stream/utility/CachedDoubleStream2D.java rename to core/src/main/java/art/arcane/iris/generation/stream/CachedDoubleStream2D.java index 5ac1e2ede..37267ff4d 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/utility/CachedDoubleStream2D.java +++ b/core/src/main/java/art/arcane/iris/generation/stream/CachedDoubleStream2D.java @@ -1,11 +1,11 @@ -package art.arcane.iris.util.project.stream.utility; +package art.arcane.iris.generation.stream; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.engine.framework.PreservationRegistry; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.MeteredCache; -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.iris.generation.runtime.PreservationRegistry; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.MeteredCache; +import art.arcane.volmlib.util.stream.BasicStream; +import art.arcane.volmlib.util.stream.ProceduralStream; import art.arcane.volmlib.util.cache.WorldCache2DDouble; import art.arcane.volmlib.util.data.KCache; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/utility/CachedStream2D.java b/core/src/main/java/art/arcane/iris/generation/stream/CachedStream2D.java similarity index 88% rename from core/src/main/java/art/arcane/iris/util/project/stream/utility/CachedStream2D.java rename to core/src/main/java/art/arcane/iris/generation/stream/CachedStream2D.java index db2fe06b0..dd50e0399 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/utility/CachedStream2D.java +++ b/core/src/main/java/art/arcane/iris/generation/stream/CachedStream2D.java @@ -16,17 +16,17 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.project.stream.utility; +package art.arcane.iris.generation.stream; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.engine.framework.PreservationRegistry; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.MeteredCache; +import art.arcane.iris.generation.runtime.PreservationRegistry; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.MeteredCache; import art.arcane.volmlib.util.cache.ChunkCache2D; import art.arcane.volmlib.util.cache.WorldCache2D; import art.arcane.volmlib.util.data.KCache; -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.volmlib.util.stream.BasicStream; +import art.arcane.volmlib.util.stream.ProceduralStream; public class CachedStream2D extends BasicStream implements ProceduralStream, MeteredCache, ChunkFillableStream2D { private final ProceduralStream stream; private final WorldCache2D cache; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/utility/CachedStream3D.java b/core/src/main/java/art/arcane/iris/generation/stream/CachedStream3D.java similarity index 87% rename from core/src/main/java/art/arcane/iris/util/project/stream/utility/CachedStream3D.java rename to core/src/main/java/art/arcane/iris/generation/stream/CachedStream3D.java index 35593bf93..64a6a0757 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/utility/CachedStream3D.java +++ b/core/src/main/java/art/arcane/iris/generation/stream/CachedStream3D.java @@ -16,16 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.project.stream.utility; +package art.arcane.iris.generation.stream; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.engine.framework.PreservationRegistry; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.MeteredCache; +import art.arcane.iris.generation.runtime.PreservationRegistry; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.MeteredCache; import art.arcane.volmlib.util.data.KCache; import art.arcane.volmlib.util.math.BlockPosition; -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.volmlib.util.stream.BasicStream; +import art.arcane.volmlib.util.stream.ProceduralStream; public class CachedStream3D extends BasicStream implements ProceduralStream, MeteredCache { private final ProceduralStream stream; private final KCache cache; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/utility/ChunkFillableDoubleStream2D.java b/core/src/main/java/art/arcane/iris/generation/stream/ChunkFillableDoubleStream2D.java similarity index 69% rename from core/src/main/java/art/arcane/iris/util/project/stream/utility/ChunkFillableDoubleStream2D.java rename to core/src/main/java/art/arcane/iris/generation/stream/ChunkFillableDoubleStream2D.java index ed88a1f62..c8b58cfcf 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/utility/ChunkFillableDoubleStream2D.java +++ b/core/src/main/java/art/arcane/iris/generation/stream/ChunkFillableDoubleStream2D.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.project.stream.utility; +package art.arcane.iris.generation.stream; public interface ChunkFillableDoubleStream2D { void fillChunkDoubles(int worldX, int worldZ, double[] target); diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/utility/ChunkFillableStream2D.java b/core/src/main/java/art/arcane/iris/generation/stream/ChunkFillableStream2D.java similarity index 67% rename from core/src/main/java/art/arcane/iris/util/project/stream/utility/ChunkFillableStream2D.java rename to core/src/main/java/art/arcane/iris/generation/stream/ChunkFillableStream2D.java index e63eea603..caa2f35a0 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/utility/ChunkFillableStream2D.java +++ b/core/src/main/java/art/arcane/iris/generation/stream/ChunkFillableStream2D.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.project.stream.utility; +package art.arcane.iris.generation.stream; public interface ChunkFillableStream2D { void fillChunkRaw(int worldX, int worldZ, Object[] target); diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/utility/ContextInjectingStream.java b/core/src/main/java/art/arcane/iris/generation/stream/ContextInjectingStream.java similarity index 85% rename from core/src/main/java/art/arcane/iris/util/project/stream/utility/ContextInjectingStream.java rename to core/src/main/java/art/arcane/iris/generation/stream/ContextInjectingStream.java index 0a0d9e803..422102d76 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/utility/ContextInjectingStream.java +++ b/core/src/main/java/art/arcane/iris/generation/stream/ContextInjectingStream.java @@ -1,11 +1,11 @@ -package art.arcane.iris.util.project.stream.utility; +package art.arcane.iris.generation.stream; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.project.context.IrisContext; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.iris.generation.context.IrisContext; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.volmlib.util.function.Function3; -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.volmlib.util.stream.BasicStream; +import art.arcane.volmlib.util.stream.ProceduralStream; public class ContextInjectingStream extends BasicStream { private final Engine engine; private final Function3 contextAccessor; diff --git a/core/src/main/java/art/arcane/iris/generation/stream/GenerationStreams.java b/core/src/main/java/art/arcane/iris/generation/stream/GenerationStreams.java new file mode 100644 index 000000000..03bf1c56c --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/stream/GenerationStreams.java @@ -0,0 +1,43 @@ +package art.arcane.iris.generation.stream; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.noise.IrisStyledRange; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.volmlib.util.function.Function3; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.volmlib.util.stream.ProceduralStream; +import art.arcane.volmlib.util.stream.interpolation.Interpolated; + +public final class GenerationStreams { + private GenerationStreams() { + } + + public static CachedStream2D cache2D(ProceduralStream stream, String name, Engine engine, int size) { + return new CachedStream2D(name, engine, stream, size); + } + + public static ProceduralStream cache2DDouble(ProceduralStream stream, String name, Engine engine, int size) { + return new CachedDoubleStream2D(name, engine, stream, size); + } + + public static ProceduralStream cache3D(ProceduralStream stream, String name, Engine engine, int maxSize) { + return new CachedStream3D(name, engine, stream, maxSize); + } + + public static ProceduralStream contextInjecting(ProceduralStream stream, Function3 contextAccessor) { + //return stream; + return new ContextInjectingStream<>(stream, contextAccessor); + } + + public static ProceduralStream contextInjecting(ProceduralStream stream, Engine engine, Function3 contextAccessor) { + return new ContextInjectingStream<>(stream, engine, contextAccessor); + } + + public static ProceduralStream style(ProceduralStream stream, RNG rng, IrisStyledRange range, IrisData data) { + return ProceduralStream.of((x, z) -> { + double d = stream.getDouble(x, z); + return range.get(rng, d, -d, data); + }, Interpolated.DOUBLE); + } +} diff --git a/core/src/main/java/art/arcane/iris/engine/terrain/HydrologyBankTerrainRuntime.java b/core/src/main/java/art/arcane/iris/generation/terrain/HydrologyBankTerrainRuntime.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/terrain/HydrologyBankTerrainRuntime.java rename to core/src/main/java/art/arcane/iris/generation/terrain/HydrologyBankTerrainRuntime.java index af0bbf513..492920b5b 100644 --- a/core/src/main/java/art/arcane/iris/engine/terrain/HydrologyBankTerrainRuntime.java +++ b/core/src/main/java/art/arcane/iris/generation/terrain/HydrologyBankTerrainRuntime.java @@ -1,11 +1,11 @@ -package art.arcane.iris.engine.terrain; +package art.arcane.iris.generation.terrain; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.HydrologyColumnSample; -import art.arcane.iris.engine.hydrology.HydrologyColumnSnapshot; -import art.arcane.iris.engine.object.IrisRiverBank3DConfig; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.HydrologyColumnSample; +import art.arcane.iris.generation.hydrology.HydrologyColumnSnapshot; +import art.arcane.iris.generation.hydrology.IrisRiverBank3DConfig; +import art.arcane.volmlib.util.noise.CNG; import art.arcane.volmlib.util.math.RNG; import it.unimi.dsi.fastutil.ints.IntArrayList; import it.unimi.dsi.fastutil.longs.Long2ObjectLinkedOpenHashMap; diff --git a/core/src/main/java/art/arcane/iris/engine/object/InferredType.java b/core/src/main/java/art/arcane/iris/generation/terrain/InferredType.java similarity index 70% rename from core/src/main/java/art/arcane/iris/engine/object/InferredType.java rename to core/src/main/java/art/arcane/iris/generation/terrain/InferredType.java index 8f6f61ceb..3fe27b578 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/InferredType.java +++ b/core/src/main/java/art/arcane/iris/generation/terrain/InferredType.java @@ -16,21 +16,21 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.terrain; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.documentation.Description; -@Desc("Represents a biome type") +@Description("Represents a biome type") public enum InferredType { - @Desc("Represents any shore biome type") + @Description("Represents any shore biome type") SHORE, - @Desc("Represents any land biome type") + @Description("Represents any land biome type") LAND, - @Desc("Represents any sea biome type") + @Description("Represents any sea biome type") SEA, - @Desc("Represents any cave biome type") + @Description("Represents any cave biome type") CAVE } diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisDimension.java b/core/src/main/java/art/arcane/iris/generation/terrain/IrisDimension.java similarity index 77% rename from core/src/main/java/art/arcane/iris/engine/object/IrisDimension.java rename to core/src/main/java/art/arcane/iris/generation/terrain/IrisDimension.java index 93d639085..c61b44876 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisDimension.java +++ b/core/src/main/java/art/arcane/iris/generation/terrain/IrisDimension.java @@ -16,40 +16,75 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.terrain; -import art.arcane.iris.core.IrisDatapackCompiler.DimensionHeight; -import art.arcane.iris.core.compat.CompatFinding; -import art.arcane.iris.core.compat.CompatStatus; -import art.arcane.iris.core.compat.ContentGate; -import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiomeCustom; +import art.arcane.iris.generation.biome.IrisCustomBiomeAliasResolver; +import art.arcane.iris.generation.biome.IrisFloatingChildBiomes; +import art.arcane.iris.generation.cave.IrisCaveProfile; +import art.arcane.iris.generation.decoration.IrisDepositGenerator; +import art.arcane.iris.generation.decoration.IrisDepositVariant; +import art.arcane.iris.generation.decoration.IrisOreGenerator; +import art.arcane.iris.generation.decoration.IrisOreGeneratorBounds; +import art.arcane.iris.generation.decoration.tree.IrisTreeSettings; +import art.arcane.iris.generation.hydrology.IrisDeepFluidConfig; +import art.arcane.iris.generation.hydrology.IrisHydrology; +import art.arcane.iris.generation.hydrology.IrisRiverHydrology; +import art.arcane.iris.generation.hydrology.IrisRiverPolicy; +import art.arcane.iris.generation.image.IrisImageMap; +import art.arcane.iris.generation.image.IrisImageMapApplication; +import art.arcane.iris.generation.image.IrisImageMapBinding; +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.generation.noise.IrisShapedGeneratorStyle; +import art.arcane.iris.generation.noise.NoiseStyle; +import art.arcane.iris.pack.validation.CompatPools; +import art.arcane.iris.pack.value.IrisRange; +import art.arcane.iris.structure.nativegen.IrisImportedFeatureControl; +import art.arcane.iris.structure.nativegen.IrisImportedStructureControl; +import art.arcane.iris.structure.object.IrisObjectScale; +import art.arcane.iris.structure.object.IrisStaticObject; +import art.arcane.iris.structure.object.IrisStaticObjectLayer; +import art.arcane.iris.structure.placement.IrisStructurePlacement; +import art.arcane.iris.studio.StudioMode; +import art.arcane.iris.world.IrisEnvironment; +import art.arcane.iris.world.IrisWorldBoundary; +import art.arcane.iris.world.entity.IrisSpawner; +import art.arcane.iris.world.loot.IrisBlockDrops; +import art.arcane.iris.world.loot.IrisLootReference; + +import art.arcane.iris.pack.datapack.IrisDatapackCompiler.DimensionHeight; +import art.arcane.iris.pack.validation.CompatFinding; +import art.arcane.iris.pack.validation.CompatStatus; +import art.arcane.iris.pack.validation.ContentGate; +import art.arcane.iris.pack.loading.IrisData; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.core.nms.datapack.DataVersion; -import art.arcane.iris.core.nms.datapack.IDataFixer; -import art.arcane.iris.core.nms.datapack.IDataFixer.Dimension; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.history.GenerationRegistryContractFactory; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListFunction; -import art.arcane.iris.engine.object.annotations.RegistryListResource; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.functions.ComponentFlagFunction; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.platform.bukkit.nms.datapack.DataVersion; +import art.arcane.iris.platform.bukkit.nms.datapack.IDataFixer; +import art.arcane.iris.platform.bukkit.nms.datapack.IDataFixer.Dimension; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.world.history.GenerationRegistryContractFactory; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListFunction; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.functions.ComponentFlagFunction; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KSet; -import art.arcane.iris.util.common.data.DataProvider; +import art.arcane.iris.generation.block.DataProvider; import art.arcane.volmlib.util.io.IO; import art.arcane.volmlib.util.json.JSONArray; import art.arcane.volmlib.util.json.JSONObject; import art.arcane.volmlib.util.mantle.flag.MantleFlag; import art.arcane.volmlib.util.math.Position2; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.volmlib.util.noise.CNG; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; @@ -81,7 +116,7 @@ import java.util.regex.Pattern; @Accessors(chain = true) @NoArgsConstructor -@Desc("Represents a dimension") +@Description("Represents a dimension") @Data @EqualsAndHashCode(callSuper = false, doNotUseGetters = true) @ToString(doNotUseGetters = true) @@ -104,212 +139,212 @@ public class IrisDimension extends IrisRegistrant { private final transient AtomicCache undergroundOreBoundsCache = new AtomicCache<>(); @MinNumber(2) @Required - @Desc("The human readable name of this dimension") + @Description("The human readable name of this dimension") private String name = "A Dimension"; @MinNumber(1) @MaxNumber(2032) - @Desc("Maximum height at which players can be teleported to through gameplay.") + @Description("Maximum height at which players can be teleported to through gameplay.") private int logicalHeight = 256; - @Desc("If set to true, Iris will remove chunks to allow visualizing cross sections of chunks easily") + @Description("If set to true, Iris will remove chunks to allow visualizing cross sections of chunks easily") private boolean debugChunkCrossSections = false; - @Desc("Vertically split up the biome palettes with barrier blocks in between to visualize them. The gap size comes from explodeBiomePaletteSize.") + @Description("Vertically split up the biome palettes with barrier blocks in between to visualize them. The gap size comes from explodeBiomePaletteSize.") private boolean explodeBiomePalettes = false; - @Desc("Studio Mode for testing different parts of the world") + @Description("Studio Mode for testing different parts of the world") private StudioMode studioMode = StudioMode.NORMAL; @MinNumber(1) @MaxNumber(16) - @Desc("Customize the palette height explosion") + @Description("Customize the palette height explosion") private int explodeBiomePaletteSize = 3; @MinNumber(2) @MaxNumber(16) - @Desc("Every X/Z % debugCrossSectionsMod == 0 cuts the chunk") + @Description("Every X/Z % debugCrossSectionsMod == 0 cuts the chunk") private int debugCrossSectionsMod = 3; - @Desc("Tree growth override settings") + @Description("Tree growth override settings") private IrisTreeSettings treeSettings = new IrisTreeSettings(); - @Desc("Spawn Entities in this dimension over time. Iris will continually replenish these mobs just like vanilla does.") + @Description("Spawn Entities in this dimension over time. Iris will continually replenish these mobs just like vanilla does.") @ArrayType(min = 1, type = String.class) @RegistryListResource(IrisSpawner.class) private KList entitySpawners = new KList<>(); - @Desc("Reference loot tables in this area") + @Description("Reference loot tables in this area") private IrisLootReference loot = new IrisLootReference(); @MinNumber(0) - @Desc("The version of this dimension. Changing this will stop users from accidentally upgrading (and breaking their worlds).") + @Description("The version of this dimension. Changing this will stop users from accidentally upgrading (and breaking their worlds).") private int version = 1; - @Desc("When a block key does not exist on the running Minecraft version, generate this block state instead. Keys are base block keys such as minecraft:sulfur; values are full block states. Applies to every palette, decorator, deposit, replace rule and object in this pack. Content that uses a missing block with no fallback here (and no per-entry backup) is excluded from generation on that version and listed at startup.") + @Description("When a block key does not exist on the running Minecraft version, generate this block state instead. Keys are base block keys such as minecraft:sulfur; values are full block states. Applies to every palette, decorator, deposit, replace rule and object in this pack. Content that uses a missing block with no fallback here (and no per-entry backup) is excluded from generation on that version and listed at startup.") private KMap blockFallbacks = new KMap<>(); @ArrayType(min = 1, type = IrisBlockDrops.class) - @Desc("Define custom block drops for this dimension") + @Description("Define custom block drops for this dimension") private KList blockDrops = new KList<>(); - @Desc("Should bedrock be generated or not.") + @Description("Should bedrock be generated or not.") private boolean bedrock = true; @MinNumber(0) @MaxNumber(1) - @Desc("The land chance. Up to 1.0 for total land or 0.0 for total sea") + @Description("The land chance. Up to 1.0 for total land or 0.0 for total sea") private double landChance = 0.625; - @Desc("The placement style of regions") + @Description("The placement style of regions") private IrisGeneratorStyle regionStyle = NoiseStyle.CELLULAR_IRIS_DOUBLE.style(); - @Desc("The placement style of land/sea") + @Description("The placement style of land/sea") private IrisGeneratorStyle continentalStyle = NoiseStyle.CELLULAR_IRIS_DOUBLE.style(); - @Desc("The noise style used to select land biomes within a region") + @Description("The noise style used to select land biomes within a region") private IrisGeneratorStyle landBiomeStyle = NoiseStyle.CELLULAR_IRIS_DOUBLE.style(); - @Desc("The noise style used to select shore biomes within a region") + @Description("The noise style used to select shore biomes within a region") private IrisGeneratorStyle shoreBiomeStyle = NoiseStyle.CELLULAR_IRIS_DOUBLE.style(); - @Desc("The noise style used to select sea biomes within a region") + @Description("The noise style used to select sea biomes within a region") private IrisGeneratorStyle seaBiomeStyle = NoiseStyle.CELLULAR_IRIS_DOUBLE.style(); - @Desc("The noise style used to select cave biomes within a region") + @Description("The noise style used to select cave biomes within a region") private IrisGeneratorStyle caveBiomeStyle = NoiseStyle.CELLULAR_IRIS_DOUBLE.style(); - @Desc("Instead of filling objects with air, fills them with cobweb so you can see them") + @Description("Instead of filling objects with air, fills them with cobweb so you can see them") private boolean debugSmartBore = false; - @Desc("Generate decorations or not") + @Description("Generate decorations or not") private boolean decorate = true; - @Desc("When true, every ore block the generator would place (terrain ores, deposits, ores inside objects) is replaced with its base material such as stone, deepslate or netherrack, so drop-control plugins like HiddenOre can manage ore rewards themselves") + @Description("When true, every ore block the generator would place (terrain ores, deposits, ores inside objects) is replaced with its base material such as stone, deepslate or netherrack, so drop-control plugins like HiddenOre can manage ore rewards themselves") private boolean hideOresForHiddenOre = false; - @Desc("Use post processing or not") + @Description("Use post processing or not") private boolean postProcessing = true; - @Desc("Add slabs in post processing") + @Description("Add slabs in post processing") private boolean postProcessingSlabs = true; - @Desc("Add painted walls in post processing") + @Description("Add painted walls in post processing") private boolean postProcessingWalls = true; - @Desc("Enable or disable all carving for this dimension") + @Description("Enable or disable all carving for this dimension") private boolean carvingEnabled = true; @ArrayType(type = IrisDimensionCarvingEntry.class, min = 1) - @Desc("Dimension-level cave biome carving overrides with absolute world Y ranges") + @Description("Dimension-level cave biome carving overrides with absolute world Y ranges") private KList carving = new KList<>(); - @Desc("Profile-driven 3D cave configuration") + @Description("Profile-driven 3D cave configuration") private IrisCaveProfile caveProfile = new IrisCaveProfile(); - @Desc("Dimension-owned surface, underground, grotto, and deep-fluid hydrology configuration.") + @Description("Dimension-owned surface, underground, grotto, and deep-fluid hydrology configuration.") private IrisHydrology hydrology = new IrisHydrology(); - @Desc("Dimension-level river placement, routing, profile, biome, and geometry policy.") + @Description("Dimension-level river placement, routing, profile, biome, and geometry policy.") private IrisRiverPolicy riverPolicy = new IrisRiverPolicy(); - @Desc("Refuse to place surface objects and trees over carved surface openings.") + @Description("Refuse to place surface objects and trees over carved surface openings.") private boolean requireObjectSurfaceSupport = true; @MinNumber(0) @MaxNumber(16) - @Desc("Minimum surface-support buffer, in blocks, applied to every surface object placement in this dimension. A placement may ask for more but never less.") + @Description("Minimum surface-support buffer, in blocks, applied to every surface object placement in this dimension. A placement may ask for more but never less.") private int objectSurfaceSupportBuffer = 2; @MinNumber(IrisObjectScale.MINIMUM_FACTOR) @MaxNumber(IrisObjectScale.MAXIMUM_FACTOR) - @Desc("Default size factor for objects in this dimension. 0.5 halves their size and 2 doubles it. Any explicit object or placement scale, including 1, overrides this factor. Jigsaw structures are excluded.") + @Description("Default size factor for objects in this dimension. 0.5 halves their size and 2 doubles it. Any explicit object or placement scale, including 1, overrides this factor. Jigsaw structures are excluded.") private double allObjectScaleFactor = 1D; - @Desc("The world environment") + @Description("The world environment") private IrisEnvironment environment = IrisEnvironment.NORMAL; @RegistryListResource(IrisRegion.class) @Required @ArrayType(min = 1, type = String.class) - @Desc("Define all of the regions to include in this dimension. Dimensions -> Regions -> Biomes -> Objects etc") + @Description("Define all of the regions to include in this dimension. Dimensions -> Regions -> Biomes -> Objects etc") private KList regions = new KList<>(); @Required @MinNumber(0) @MaxNumber(1024) - @Desc("The fluid (sea level) height for this dimension, in world Y. Water fills every sea column up to this height, so 63 puts the water surface at world Y 63.") + @Description("The fluid (sea level) height for this dimension, in world Y. Water fills every sea column up to this height, so 63 puts the water surface at world Y 63.") private int fluidHeight = 63; - @Desc("Define the min and max Y bounds of this dimension. Please keep in mind that Iris internally generates from 0 to (max - min). \n\nFor example at -64 to 320, Iris is internally generating to 0 to 384, then on outputting chunks, it shifts it down by the min height (64 blocks). The default is -64 to 320. \n\nfluidHeight stays in world Y: the engine converts it internally by subtracting the min height, so a fluid height of 63 shows up in the world at Y 63.") + @Description("Define the min and max Y bounds of this dimension. Please keep in mind that Iris internally generates from 0 to (max - min). \n\nFor example at -64 to 320, Iris is internally generating to 0 to 384, then on outputting chunks, it shifts it down by the min height (64 blocks). The default is -64 to 320. \n\nfluidHeight stays in world Y: the engine converts it internally by subtracting the min height, so a fluid height of 63 shows up in the world at Y 63.") private IrisRange dimensionHeight = new IrisRange(-64, 320); - @Desc("Define options for this dimension") + @Description("Define options for this dimension") private IrisDimensionTypeOptions dimensionOptions = new IrisDimensionTypeOptions(); - @Desc("Configure and enforce the native Minecraft world border. When omitted, Iris leaves the native border unchanged.") + @Description("Configure and enforce the native Minecraft world border. When omitted, Iris leaves the native border unchanged.") private IrisWorldBoundary worldBoundary = null; @ArrayType(type = IrisImageMapBinding.class) - @Desc("Bind reusable image-map resources to typed world-generation inputs") + @Description("Bind reusable image-map resources to typed world-generation inputs") private KList imageMaps = new KList<>(); @ArrayType(type = IrisStaticObject.class) - @Desc("Static objects placed at absolute world coordinates in newly generated chunks. Each entry transforms its own copy; later entries win where objects overlap. Reloading does not rewrite existing chunks or repair player edits.") + @Description("Static objects placed at absolute world coordinates in newly generated chunks. Each entry transforms its own copy; later entries win where objects overlap. Reloading does not rewrite existing chunks or repair player edits.") private KList staticObjects = new KList<>(); - @Desc("When true, sets the dimension's ambient light to maximum, making all blocks fully lit regardless of light level.") + @Description("When true, sets the dimension's ambient light to maximum, making all blocks fully lit regardless of light level.") private boolean fullbright = false; @RegistryListResource(IrisDimension.class) - @Desc("When set, generates the referenced dimension's terrain upside-down at the world ceiling, creating a nether-like canopy. Use the dimension's load key (e.g., 'overworld'). Set to 'none' to disable.") + @Description("When set, generates the referenced dimension's terrain upside-down at the world ceiling, creating a nether-like canopy. Use the dimension's load key (e.g., 'overworld'). Set to 'none' to disable.") private String upperDimension = "none"; @MinNumber(0) @MaxNumber(256) - @Desc("Minimum air gap in blocks between the lower terrain surface and the upper terrain surface.") + @Description("Minimum air gap in blocks between the lower terrain surface and the upper terrain surface.") private int upperDimensionGap = 32; - @Desc("When true, cave carving cuts through the upper dimension terrain. When false, cave carving leaves the upper terrain unchanged, including its biome terrain3D openings.") + @Description("When true, cave carving cuts through the upper dimension terrain. When false, cave carving leaves the upper terrain unchanged, including its biome terrain3D openings.") private boolean upperDimensionCarving = false; - @Desc("When true, objects from the mantle (structures, trees, etc.) can be placed in the upper dimension terrain zone. When false, the upper terrain is protected from object placement.") + @Description("When true, objects from the mantle (structures, trees, etc.) can be placed in the upper dimension terrain zone. When false, the upper terrain is protected from object placement.") private boolean upperDimensionObjects = false; - @Desc("When true, upper-dimension objects force-place regardless of placement restrictions (slope, underwater, clamp, collisions, carving). Normal dimension objects always place first; upper objects place second and may clip or occlude lower-dimension placements when this is enabled.") + @Description("When true, upper-dimension objects force-place regardless of placement restrictions (slope, underwater, clamp, collisions, carving). Normal dimension objects always place first; upper objects place second and may clip or occlude lower-dimension placements when this is enabled.") private boolean upperObjectsForcePlace = false; - @Desc("Stack dimension terrain upright in declared top-to-bottom order. The final dimension key must reference this dimension.") + @Description("Stack dimension terrain upright in declared top-to-bottom order. The final dimension key must reference this dimension.") private IrisDimensionStack dimensionStack = null; @RegistryListResource(IrisBiome.class) - @Desc("Keep this either undefined or empty. Setting any biome name into this will force iris to only generate the specified biome. Great for testing.") + @Description("Keep this either undefined or empty. Setting any biome name into this will force iris to only generate the specified biome. Great for testing.") private String focus = ""; @RegistryListResource(IrisRegion.class) - @Desc("Keep this either undefined or empty. Setting any region name into this will force iris to only generate the specified region. Great for testing.") + @Description("Keep this either undefined or empty. Setting any region name into this will force iris to only generate the specified region. Great for testing.") private String focusRegion = ""; @MinNumber(0.0001) @MaxNumber(512) - @Desc("Zoom in or out the biome size. Higher = bigger biomes") + @Description("Zoom in or out the biome size. Higher = bigger biomes") private double biomeZoom = 1D; @MinNumber(0) @MaxNumber(360) - @Desc("You can rotate the input coordinates by an angle. This can make terrain appear more natural (less sharp corners and lines). This literally rotates the entire dimension by an angle. Hint: Try 12 degrees or something not on a 90 or 45 degree angle.") + @Description("You can rotate the input coordinates by an angle. This can make terrain appear more natural (less sharp corners and lines). This literally rotates the entire dimension by an angle. Hint: Try 12 degrees or something not on a 90 or 45 degree angle.") private double dimensionAngleDeg = 0; @Required - @Desc("Define the mode of this dimension (required!)") + @Description("Define the mode of this dimension (required!)") private IrisDimensionMode mode = new IrisDimensionMode(); @MinNumber(0) @MaxNumber(8192) - @Desc("Coordinate fracturing applies noise to the input coordinates. This creates the 'iris swirls' and wavy features. The distance pushes these waves further into places they shouldnt be. This is a block value multiplier.") + @Description("Coordinate fracturing applies noise to the input coordinates. This creates the 'iris swirls' and wavy features. The distance pushes these waves further into places they shouldnt be. This is a block value multiplier.") private double coordFractureDistance = 20; @MinNumber(0.0001) @MaxNumber(512) - @Desc("Coordinate fracturing zoom. Higher = less frequent warping, Lower = more frequent and rapid warping / swirls.") + @Description("Coordinate fracturing zoom. Higher = less frequent warping, Lower = more frequent and rapid warping / swirls.") private double coordFractureZoom = 8; @MinNumber(0.0001) @MaxNumber(512) - @Desc("This zooms in the land space") + @Description("This zooms in the land space") private double landZoom = 1; @MinNumber(0.0001) @MaxNumber(512) - @Desc("This zooms oceanic biomes") + @Description("This zooms oceanic biomes") private double seaZoom = 1; @MinNumber(0.0001) @MaxNumber(512) - @Desc("Zoom in continents") + @Description("Zoom in continents") private double continentZoom = 1; @MinNumber(0.0001) @MaxNumber(512) - @Desc("Change the size of regions") + @Description("Change the size of regions") private double regionZoom = 1; - @Desc("Disable this to stop placing objects, entities, features & updates") + @Description("Disable this to stop placing objects, entities, features & updates") private boolean useMantle = true; - @Desc("Prevent Leaf decay as if placed in creative mode") + @Description("Prevent Leaf decay as if placed in creative mode") private boolean preventLeafDecay = false; @ArrayType(min = 1, type = IrisDepositGenerator.class) - @Desc("Define global deposit generators") + @Description("Define global deposit generators") private KList deposits = new KList<>(); @ArrayType(min = 1, type = IrisDepositVariant.class) - @Desc("Dimension-wide deposit ore remap rules. Each entry declares a vertical band and a source->replacement block id map. Applied after biome and region rules; first matching dimension rule wins.") + @Description("Dimension-wide deposit ore remap rules. Each entry declares a vertical band and a source->replacement block id map. Applied after biome and region rules; first matching dimension rule wins.") private KList depositVariants = new KList<>(); @ArrayType(min = 1, type = IrisShapedGeneratorStyle.class) - @Desc("Overlay additional noise on top of the interoplated terrain.") + @Description("Overlay additional noise on top of the interoplated terrain.") private KList overlayNoise = new KList<>(); - @Desc("The palette of blocks for 'stone'") + @Description("The palette of blocks for 'stone'") private IrisMaterialPalette rockPalette = new IrisMaterialPalette().qclear().qadd("stone"); - @Desc("The dimension fluid block palette used for ocean columns and cave aquifers.") + @Description("The dimension fluid block palette used for ocean columns and cave aquifers.") private IrisMaterialPalette fluidPalette = new IrisMaterialPalette().qclear().qadd("water"); - @Desc("Collection of ores to be generated") + @Description("Collection of ores to be generated") @ArrayType(type = IrisOreGenerator.class, min = 1) private KList ores = new KList<>(); - @Desc("Dimension-wide Iris structure placements, independent of biome/region placements") + @Description("Dimension-wide Iris structure placements, independent of biome/region placements") @ArrayType(type = IrisStructurePlacement.class, min = 1) private KList structures = new KList<>(); - @Desc("Controls native vanilla, mod, and ingested datapack structure generation for this dimension. Every registered structure is enabled by default; 'disabled' is the sole generation deny list and autocompletes live structure keys.") + @Description("Controls native vanilla, mod, and ingested datapack structure generation for this dimension. Every registered structure is enabled by default; 'disabled' is the sole generation deny list and autocompletes live structure keys.") private IrisImportedStructureControl importedStructures = new IrisImportedStructureControl(); - @Desc("Controls native vanilla, mod, and ingested datapack PLACED FEATURE generation (ores, trees, plants, springs, geodes) for this dimension. Disabled by default: leaving this out generates exactly the terrain Iris always has. Set 'enabled' true to run the vanilla decoration feature pass over Iris terrain. Carvers are never imported.") + @Description("Controls native vanilla, mod, and ingested datapack PLACED FEATURE generation (ores, trees, plants, springs, geodes) for this dimension. Disabled by default: leaving this out generates exactly the terrain Iris always has. Set 'enabled' true to run the vanilla decoration feature pass over Iris terrain. Carvers are never imported.") private IrisImportedFeatureControl importedFeatures = new IrisImportedFeatureControl(); @ArrayType(type = String.class, min = 1) - @Desc("External HTTP(S) or file URL datapack sources owned by this dimension. Bukkit registers their resources server-wide, but Iris excludes their structure sets and definitions from generation and locate state in vanilla worlds and Iris dimensions that do not declare the same source. Local ZIPs under Iris/datapacks/imports are discovered automatically and enabled for every Iris dimension. Editable auto-import is limited to resources supplied by configured or discovered sources. Any registered datapack structure can be placed directly through nativeStructures without conversion. Replacing native generation requires a dimension-level structure placement with nativeSuppression set to REPLACE_SOURCE; provenance alone never disables native structures.") + @Description("External HTTP(S) or file URL datapack sources owned by this dimension. Bukkit registers their resources server-wide, but Iris excludes their structure sets and definitions from generation and locate state in vanilla worlds and Iris dimensions that do not declare the same source. Local ZIPs under Iris/datapacks/imports are discovered automatically and enabled for every Iris dimension. Editable auto-import is limited to resources supplied by configured or discovered sources. Any registered datapack structure can be placed directly through nativeStructures without conversion. Replacing native generation requires a dimension-level structure placement with nativeSuppression set to REPLACE_SOURCE; provenance alone never disables native structures.") private KList datapackImports = new KList<>(); @MinNumber(0) @MaxNumber(318) - @Desc("The subterranean fluid (cave lava) layer height, in engine-local Y where 0 is the bottom of the dimension, not world Y. With the default -64..320 height, 8 means world Y -56.") + @Description("The subterranean fluid (cave lava) layer height, in engine-local Y where 0 is the bottom of the dimension, not world Y. With the default -64..320 height, 8 means world Y -56.") private int caveLavaHeight = 8; @RegistryListFunction(ComponentFlagFunction.class) @ArrayType(type = String.class) - @Desc("Collection of disabled components") + @Description("Collection of disabled components") private KList disabledComponents = new KList<>(); public int getMaxHeight() { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisDimensionCarvingEntry.java b/core/src/main/java/art/arcane/iris/generation/terrain/IrisDimensionCarvingEntry.java similarity index 58% rename from core/src/main/java/art/arcane/iris/engine/object/IrisDimensionCarvingEntry.java rename to core/src/main/java/art/arcane/iris/generation/terrain/IrisDimensionCarvingEntry.java index 129c6a563..6dd847744 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisDimensionCarvingEntry.java +++ b/core/src/main/java/art/arcane/iris/generation/terrain/IrisDimensionCarvingEntry.java @@ -1,13 +1,19 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.terrain; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.DependsOn; -import art.arcane.iris.engine.object.annotations.RegistryListResource; -import art.arcane.iris.engine.object.annotations.Snippet; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.generation.noise.NoiseStyle; +import art.arcane.iris.pack.validation.CompatPools; +import art.arcane.iris.pack.value.IrisRange; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.DependsOn; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; +import art.arcane.iris.pack.schema.annotation.Snippet; +import art.arcane.volmlib.util.noise.CNG; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; import lombok.AllArgsConstructor; @@ -22,38 +28,38 @@ import java.util.concurrent.ConcurrentHashMap; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Dimension-level cave biome override with absolute world Y bounds.") +@Description("Dimension-level cave biome override with absolute world Y bounds.") @Data public class IrisDimensionCarvingEntry { private final transient AtomicCache realBiome = new AtomicCache<>(true); private final transient Map childGenerators = new ConcurrentHashMap<>(); - @Desc("Stable id for this carving entry") + @Description("Stable id for this carving entry") private String id = ""; - @Desc("Enable or disable this carving entry") + @Description("Enable or disable this carving entry") private boolean enabled = true; @RegistryListResource(IrisBiome.class) - @Desc("Cave biome to apply when world Y falls within worldYRange") + @Description("Cave biome to apply when world Y falls within worldYRange") private String biome = ""; - @Desc("Absolute world Y bounds where this carving entry applies") + @Description("Absolute world Y bounds where this carving entry applies") private IrisRange worldYRange = new IrisRange(-64, 320); @DependsOn({"children"}) - @Desc("If this carving entry has child carving entries, this controls how small those child carving patches are.") + @Description("If this carving entry has child carving entries, this controls how small those child carving patches are.") private double childShrinkFactor = 1.5; @DependsOn({"children"}) - @Desc("If this carving entry has child carving entries, this controls the shape pattern used to pick them.") + @Description("If this carving entry has child carving entries, this controls the shape pattern used to pick them.") private IrisGeneratorStyle childStyle = NoiseStyle.CELLULAR_IRIS_DOUBLE.style(); @ArrayType(min = 1, type = String.class) - @Desc("Child carving entry ids. Child ids can point back to parent ids to create cycles; recursion is bounded by childRecursionDepth.") + @Description("Child carving entry ids. Child ids can point back to parent ids to create cycles; recursion is bounded by childRecursionDepth.") private KList children = new KList<>(); - @Desc("Maximum recursion depth when resolving child carving entries from this entry.") + @Description("Maximum recursion depth when resolving child carving entries from this entry.") private int childRecursionDepth = 3; public IrisBiome getRealBiome(IrisData data) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisDimensionCarvingResolver.java b/core/src/main/java/art/arcane/iris/generation/terrain/IrisDimensionCarvingResolver.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/object/IrisDimensionCarvingResolver.java rename to core/src/main/java/art/arcane/iris/generation/terrain/IrisDimensionCarvingResolver.java index 9590d8afa..d681c68dd 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisDimensionCarvingResolver.java +++ b/core/src/main/java/art/arcane/iris/generation/terrain/IrisDimensionCarvingResolver.java @@ -1,9 +1,15 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.terrain; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.pack.value.IrisRange; +import art.arcane.iris.pack.value.IrisRaritySelection; + +import art.arcane.volmlib.util.math.Rarity; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.volmlib.util.collection.KList; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.volmlib.util.noise.CNG; import java.lang.ref.WeakReference; import java.util.ArrayList; @@ -284,7 +290,7 @@ public final class IrisDimensionCarvingResolver { } } - private static final class CarvingChoice implements IRare { + private static final class CarvingChoice implements Rarity { private final IrisDimensionCarvingEntry entry; private final int rarity; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisDimensionContractException.java b/core/src/main/java/art/arcane/iris/generation/terrain/IrisDimensionContractException.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/object/IrisDimensionContractException.java rename to core/src/main/java/art/arcane/iris/generation/terrain/IrisDimensionContractException.java index 8d432d410..918d08475 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisDimensionContractException.java +++ b/core/src/main/java/art/arcane/iris/generation/terrain/IrisDimensionContractException.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.terrain; public final class IrisDimensionContractException extends IllegalStateException { public IrisDimensionContractException(String message) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisDimensionMode.java b/core/src/main/java/art/arcane/iris/generation/terrain/IrisDimensionMode.java similarity index 77% rename from core/src/main/java/art/arcane/iris/engine/object/IrisDimensionMode.java rename to core/src/main/java/art/arcane/iris/generation/terrain/IrisDimensionMode.java index 42170e426..49550e83d 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisDimensionMode.java +++ b/core/src/main/java/art/arcane/iris/generation/terrain/IrisDimensionMode.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.terrain; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineMode; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineMode; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.Snippet; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -31,10 +31,10 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Represents a dimensional mode") +@Description("Represents a dimensional mode") @Data public class IrisDimensionMode { - @Desc("The dimension type") + @Description("The dimension type") private IrisDimensionModeType type = IrisDimensionModeType.OVERWORLD; public EngineMode create(Engine engine) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisDimensionModeType.java b/core/src/main/java/art/arcane/iris/generation/terrain/IrisDimensionModeType.java similarity index 59% rename from core/src/main/java/art/arcane/iris/engine/object/IrisDimensionModeType.java rename to core/src/main/java/art/arcane/iris/generation/terrain/IrisDimensionModeType.java index 155dc99e7..332a80d30 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisDimensionModeType.java +++ b/core/src/main/java/art/arcane/iris/generation/terrain/IrisDimensionModeType.java @@ -16,30 +16,30 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.terrain; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineMode; -import art.arcane.iris.engine.mode.ModeEnclosure; -import art.arcane.iris.engine.mode.ModeIslands; -import art.arcane.iris.engine.mode.ModeOverworld; -import art.arcane.iris.engine.mode.ModeSuperFlat; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineMode; +import art.arcane.iris.generation.mode.ModeEnclosure; +import art.arcane.iris.generation.mode.ModeIslands; +import art.arcane.iris.generation.mode.ModeOverworld; +import art.arcane.iris.generation.mode.ModeSuperFlat; +import art.arcane.volmlib.util.documentation.Description; import java.util.function.Function; -@Desc("The type of dimension this is") +@Description("The type of dimension this is") public enum IrisDimensionModeType { - @Desc("Typical dimensions. Has a fluid height, and all features of a biome based world") + @Description("Typical dimensions. Has a fluid height, and all features of a biome based world") OVERWORLD(ModeOverworld::new), - @Desc("Ultra fast, but very limited in features. Only supports terrain & biomes. No decorations, mobs, objects, or anything of the sort!") + @Description("Ultra fast, but very limited in features. Only supports terrain & biomes. No decorations, mobs, objects, or anything of the sort!") SUPERFLAT(ModeSuperFlat::new), - @Desc("Like the nether, a ceiling & floor carved out") + @Description("Like the nether, a ceiling & floor carved out") ENCLOSURE(ModeEnclosure::new), - @Desc("Floating islands of terrain") + @Description("Floating islands of terrain") ISLANDS(ModeIslands::new), ; private final Function factory; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisDimensionRuntimeContract.java b/core/src/main/java/art/arcane/iris/generation/terrain/IrisDimensionRuntimeContract.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/object/IrisDimensionRuntimeContract.java rename to core/src/main/java/art/arcane/iris/generation/terrain/IrisDimensionRuntimeContract.java index fe617eab9..8be6d5b60 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisDimensionRuntimeContract.java +++ b/core/src/main/java/art/arcane/iris/generation/terrain/IrisDimensionRuntimeContract.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.terrain; -import art.arcane.iris.core.nms.datapack.DataVersion; +import art.arcane.iris.platform.bukkit.nms.datapack.DataVersion; import art.arcane.volmlib.util.json.JSONObject; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisDimensionStack.java b/core/src/main/java/art/arcane/iris/generation/terrain/IrisDimensionStack.java similarity index 61% rename from core/src/main/java/art/arcane/iris/engine/object/IrisDimensionStack.java rename to core/src/main/java/art/arcane/iris/generation/terrain/IrisDimensionStack.java index 740d4ef83..e7124bc59 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisDimensionStack.java +++ b/core/src/main/java/art/arcane/iris/generation/terrain/IrisDimensionStack.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.terrain; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListResource; -import art.arcane.iris.engine.object.annotations.Required; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; +import art.arcane.iris.pack.schema.annotation.Required; import art.arcane.volmlib.util.collection.KList; import lombok.Data; import lombok.NoArgsConstructor; @@ -31,20 +31,20 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor -@Desc("Stacks dimension terrain upright in declared top-to-bottom order") +@Description("Stacks dimension terrain upright in declared top-to-bottom order") @Data public class IrisDimensionStack { @Required @ArrayType(min = 2, type = String.class) @RegistryListResource(IrisDimension.class) - @Desc("Dimension load keys ordered from the highest layer to the lowest layer. The final key must be this dimension.") + @Description("Dimension load keys ordered from the highest layer to the lowest layer. The final key must be this dimension.") private KList dimensions = new KList<>(); @MinNumber(0) @MaxNumber(256) - @Desc("Nominal air gap in blocks between adjacent dimension layers") + @Description("Nominal air gap in blocks between adjacent dimension layers") private int spacer = 32; - @Desc("Optional noise that blends adjacent layer boundaries. Omit this object for a constant configured gap.") + @Description("Optional noise that blends adjacent layer boundaries. Omit this object for a constant configured gap.") private IrisDimensionStackBlend blend = null; } diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisDimensionStackBlend.java b/core/src/main/java/art/arcane/iris/generation/terrain/IrisDimensionStackBlend.java similarity index 66% rename from core/src/main/java/art/arcane/iris/engine/object/IrisDimensionStackBlend.java rename to core/src/main/java/art/arcane/iris/generation/terrain/IrisDimensionStackBlend.java index 2bb15a9a3..67b0aa142 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisDimensionStackBlend.java +++ b/core/src/main/java/art/arcane/iris/generation/terrain/IrisDimensionStackBlend.java @@ -16,25 +16,28 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.terrain; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.generation.noise.NoiseStyle; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor -@Desc("Controls noise blending at each dimension stack boundary") +@Description("Controls noise blending at each dimension stack boundary") @Data public class IrisDimensionStackBlend { @MinNumber(0) @MaxNumber(256) - @Desc("Maximum vertical boundary displacement in blocks") + @Description("Maximum vertical boundary displacement in blocks") private int amplitude = 8; - @Desc("Noise style sampled independently for each adjacent layer boundary") + @Description("Noise style sampled independently for each adjacent layer boundary") private IrisGeneratorStyle style = NoiseStyle.SIMPLEX.style(); } diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisDimensionType.java b/core/src/main/java/art/arcane/iris/generation/terrain/IrisDimensionType.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/object/IrisDimensionType.java rename to core/src/main/java/art/arcane/iris/generation/terrain/IrisDimensionType.java index 1f56ad0b2..749fd31ce 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisDimensionType.java +++ b/core/src/main/java/art/arcane/iris/generation/terrain/IrisDimensionType.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.terrain; -import art.arcane.iris.core.nms.datapack.IDataFixer; +import art.arcane.iris.platform.bukkit.nms.datapack.IDataFixer; import art.arcane.volmlib.util.data.Varint; import art.arcane.volmlib.util.io.IO; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisDimensionTypeOptions.java b/core/src/main/java/art/arcane/iris/generation/terrain/IrisDimensionTypeOptions.java similarity index 82% rename from core/src/main/java/art/arcane/iris/engine/object/IrisDimensionTypeOptions.java rename to core/src/main/java/art/arcane/iris/generation/terrain/IrisDimensionTypeOptions.java index 41394e19e..96ba2be77 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisDimensionTypeOptions.java +++ b/core/src/main/java/art/arcane/iris/generation/terrain/IrisDimensionTypeOptions.java @@ -1,14 +1,14 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.terrain; import lombok.Data; import lombok.NoArgsConstructor; import lombok.NonNull; -import static art.arcane.iris.engine.object.IrisDimensionTypeOptions.TriState.DEFAULT; -import static art.arcane.iris.engine.object.IrisDimensionTypeOptions.TriState.FALSE; -import static art.arcane.iris.engine.object.IrisDimensionTypeOptions.TriState.TRUE; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; +import static art.arcane.iris.generation.terrain.IrisDimensionTypeOptions.TriState.DEFAULT; +import static art.arcane.iris.generation.terrain.IrisDimensionTypeOptions.TriState.FALSE; +import static art.arcane.iris.generation.terrain.IrisDimensionTypeOptions.TriState.TRUE; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; import art.arcane.volmlib.util.data.Varint; import art.arcane.volmlib.util.json.JSONObject; import lombok.experimental.Accessors; @@ -23,54 +23,54 @@ import java.util.Arrays; @Data @NoArgsConstructor @Accessors(fluent = true, chain = true) -@Desc("Optional options for the dimension type") +@Description("Optional options for the dimension type") public class IrisDimensionTypeOptions { @MinNumber(0.00001) @MaxNumber(30000000) - @Desc("The multiplier applied to coordinates when leaving the dimension. Value between 0.00001 and 30000000.0 (both inclusive).") + @Description("The multiplier applied to coordinates when leaving the dimension. Value between 0.00001 and 30000000.0 (both inclusive).") private double coordinateScale = -1; @MinNumber(0) @MaxNumber(1) - @Desc("How much light the dimension has. When set to 0, it completely follows the light level; when set to 1, there is no ambient lighting.") + @Description("How much light the dimension has. When set to 0, it completely follows the light level; when set to 1, there is no ambient lighting.") private float ambientLight = -1; @Nullable @MinNumber(0) @MaxNumber(Long.MAX_VALUE) - @Desc("If this is set to an int, the time of the day is the specified value. To ensure a normal time cycle, set it to null.") + @Description("If this is set to an int, the time of the day is the specified value. To ensure a normal time cycle, set it to null.") private Long fixedTime = -1L; @Nullable @MinNumber(-2032) @MaxNumber(2031) - @Desc("Optional value between -2032 and 2031. If set, determines the lower edge of the clouds. If set to null, clouds are disabled in the dimension.") + @Description("Optional value between -2032 and 2031. If set, determines the lower edge of the clouds. If set to null, clouds are disabled in the dimension.") private Integer cloudHeight = -1; @MinNumber(0) @MaxNumber(15) - @Desc("Value between 0 and 15 (both inclusive). Maximum block light required when the monster spawns.") + @Description("Value between 0 and 15 (both inclusive). Maximum block light required when the monster spawns.") private int monsterSpawnBlockLightLimit = -1; @NonNull - @Desc("Whether the dimensions behaves like the nether (water evaporates and sponges dry) or not. Also lets stalactites drip lava and causes lava to spread faster and thinner.") + @Description("Whether the dimensions behaves like the nether (water evaporates and sponges dry) or not. Also lets stalactites drip lava and causes lava to spread faster and thinner.") private TriState ultrawarm = DEFAULT; @NonNull - @Desc("When false, compasses spin randomly, and using a bed to set the respawn point or sleep, is disabled. When true, nether portals can spawn zombified piglins, and creaking hearts can spawn creakings.") + @Description("When false, compasses spin randomly, and using a bed to set the respawn point or sleep, is disabled. When true, nether portals can spawn zombified piglins, and creaking hearts can spawn creakings.") private TriState natural = DEFAULT; @NonNull - @Desc("When false, Piglins and hoglins shake and transform to zombified entities.") + @Description("When false, Piglins and hoglins shake and transform to zombified entities.") private TriState piglinSafe = DEFAULT; @NonNull - @Desc("When false, the respawn anchor blows up when trying to set spawn point.") + @Description("When false, the respawn anchor blows up when trying to set spawn point.") private TriState respawnAnchorWorks = DEFAULT; @NonNull - @Desc("When false, the bed blows up when trying to sleep.") + @Description("When false, the bed blows up when trying to sleep.") private TriState bedWorks = DEFAULT; @NonNull - @Desc("Whether players with the Bad Omen effect can cause a raid.") + @Description("Whether players with the Bad Omen effect can cause a raid.") private TriState raids = DEFAULT; @NonNull - @Desc("Whether the dimension has skylight or not.") + @Description("Whether the dimension has skylight or not.") private TriState skylight = DEFAULT; @NonNull - @Desc("Whether the dimension has a bedrock ceiling. Note that this is only a logical ceiling. It is unrelated with whether the dimension really has a block ceiling.") + @Description("Whether the dimension has a bedrock ceiling. Note that this is only a logical ceiling. It is unrelated with whether the dimension really has a block ceiling.") private TriState ceiling = DEFAULT; public IrisDimensionTypeOptions( @@ -308,13 +308,13 @@ public class IrisDimensionTypeOptions { && (cloudHeight == null || cloudHeight != -1); } - @Desc("Allows reusing the behavior of the base dimension") + @Description("Allows reusing the behavior of the base dimension") public enum TriState { - @Desc("Follow the behavior of the base dimension") + @Description("Follow the behavior of the base dimension") DEFAULT, - @Desc("True") + @Description("True") TRUE, - @Desc("False") + @Description("False") FALSE; public boolean bool() { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisMaterialPalette.java b/core/src/main/java/art/arcane/iris/generation/terrain/IrisMaterialPalette.java similarity index 86% rename from core/src/main/java/art/arcane/iris/engine/object/IrisMaterialPalette.java rename to core/src/main/java/art/arcane/iris/generation/terrain/IrisMaterialPalette.java index 4d10aa6c7..7d7ca2aa4 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisMaterialPalette.java +++ b/core/src/main/java/art/arcane/iris/generation/terrain/IrisMaterialPalette.java @@ -16,19 +16,24 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.terrain; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.data.cache.LazyBoundedCache; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.generation.block.IrisBlockData; +import art.arcane.iris.generation.block.TileData; +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.generation.noise.NoiseStyle; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.generation.cache.LazyBoundedCache; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.volmlib.util.noise.CNG; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; import lombok.AccessLevel; @@ -46,7 +51,7 @@ import java.util.concurrent.atomic.AtomicReference; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("A palette of materials") +@Description("A palette of materials") @Data public class IrisMaterialPalette { private static final int LAYER_GENERATOR_CACHE_SIZE = 32; @@ -61,14 +66,14 @@ public class IrisMaterialPalette { @Setter(AccessLevel.NONE) private final transient AtomicReference recentLayerGenerator = new AtomicReference<>(); private final transient AtomicCache heightGenerator = new AtomicCache<>(); - @Desc("The style of noise") + @Description("The style of noise") private IrisGeneratorStyle style = NoiseStyle.STATIC.style(); @MinNumber(0.0001) - @Desc("The terrain zoom mostly for zooming in on a wispy palette") + @Description("The terrain zoom mostly for zooming in on a wispy palette") private double zoom = 5; @Required @ArrayType(min = 1, type = IrisBlockData.class) - @Desc("The palette of blocks to be used in this layer") + @Description("The palette of blocks to be used in this layer") private KList palette = new KList().qadd(new IrisBlockData("STONE")); public PlatformBlockState get(RNG rng, double x, double y, double z, IrisData rdata) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisRegion.java b/core/src/main/java/art/arcane/iris/generation/terrain/IrisRegion.java similarity index 78% rename from core/src/main/java/art/arcane/iris/engine/object/IrisRegion.java rename to core/src/main/java/art/arcane/iris/generation/terrain/IrisRegion.java index 843c7d390..c786e65ab 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisRegion.java +++ b/core/src/main/java/art/arcane/iris/generation/terrain/IrisRegion.java @@ -16,31 +16,49 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.terrain; -import art.arcane.iris.engine.framework.render.RenderType; -import art.arcane.iris.core.compat.CompatFinding; -import art.arcane.iris.core.compat.CompatStatus; -import art.arcane.iris.core.compat.ContentGate; -import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.cave.IrisCaveProfile; +import art.arcane.iris.generation.decoration.IrisDepositGenerator; +import art.arcane.iris.generation.decoration.IrisDepositVariant; +import art.arcane.iris.generation.decoration.IrisOreGenerator; +import art.arcane.iris.generation.decoration.IrisOreGeneratorBounds; +import art.arcane.iris.generation.decoration.IrisProceduralObjects; +import art.arcane.iris.generation.hydrology.IrisRiverPolicy; +import art.arcane.iris.pack.validation.CompatPools; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.structure.placement.IrisStructurePlacement; +import art.arcane.iris.world.entity.IrisEffect; +import art.arcane.iris.world.entity.IrisSpawner; +import art.arcane.iris.world.loot.IrisBlockDrops; +import art.arcane.iris.world.loot.IrisLootReference; + +import art.arcane.volmlib.util.math.Rarity; + +import art.arcane.iris.studio.render.RenderType; +import art.arcane.iris.pack.validation.CompatFinding; +import art.arcane.iris.pack.validation.CompatStatus; +import art.arcane.iris.pack.validation.ContentGate; +import art.arcane.iris.pack.loading.IrisData; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListResource; -import art.arcane.iris.engine.object.annotations.Required; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; +import art.arcane.iris.pack.schema.annotation.Required; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KSet; -import art.arcane.iris.util.common.data.DataProvider; +import art.arcane.iris.generation.block.DataProvider; import art.arcane.volmlib.util.data.VanillaBiomeColors; import art.arcane.volmlib.util.inventorygui.RandomColor; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.volmlib.util.noise.CNG; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; @@ -54,10 +72,10 @@ import java.util.Random; @Accessors(chain = true) @NoArgsConstructor -@Desc("Represents an iris region") +@Description("Represents an iris region") @Data @EqualsAndHashCode(callSuper = false) -public class IrisRegion extends IrisRegistrant implements IRare { +public class IrisRegion extends IrisRegistrant implements Rarity { private final transient AtomicCache> surfaceObjectsCache = new AtomicCache<>(); private final transient AtomicCache> carveObjectsCache = new AtomicCache<>(); private final transient AtomicCache> cacheRidge = new AtomicCache<>(); @@ -74,83 +92,83 @@ public class IrisRegion extends IrisRegistrant implements IRare { private final transient AtomicCache undergroundOreBoundsCache = new AtomicCache<>(); @MinNumber(2) @Required - @Desc("The name of the region") + @Description("The name of the region") private String name = "A Region"; @ArrayType(min = 1, type = IrisEffect.class) - @Desc("Effects are ambient effects such as potion effects, random sounds, or even particles around each player. All of these effects are played via packets so two players won't see/hear each others effects.\nDue to performance reasons, effects will play arround the player even if where the effect was played is no longer in the biome the player is in.") + @Description("Effects are ambient effects such as potion effects, random sounds, or even particles around each player. All of these effects are played via packets so two players won't see/hear each others effects.\nDue to performance reasons, effects will play arround the player even if where the effect was played is no longer in the biome the player is in.") private KList effects = new KList<>(); - @Desc("Spawn Entities in this region over time. Iris will continually replenish these mobs just like vanilla does.") + @Description("Spawn Entities in this region over time. Iris will continually replenish these mobs just like vanilla does.") @ArrayType(min = 1, type = String.class) @RegistryListResource(IrisSpawner.class) private KList entitySpawners = new KList<>(); @MinNumber(1) @MaxNumber(128) - @Desc("The rarity of the region") + @Description("The rarity of the region") private int rarity = 1; @ArrayType(min = 1, type = IrisBlockDrops.class) - @Desc("Define custom block drops for this region") + @Description("Define custom block drops for this region") private KList blockDrops = new KList<>(); @ArrayType(min = 1, type = IrisObjectPlacement.class) - @Desc("Objects define what schematics (iob files) iris will place in this region") + @Description("Objects define what schematics (iob files) iris will place in this region") private KList objects = new KList<>(); - @Desc("Procedural objects (trees, ruins, formations, coral, fungi, crystals) iris generates from scratch and places across this region") + @Description("Procedural objects (trees, ruins, formations, coral, fungi, crystals) iris generates from scratch and places across this region") private IrisProceduralObjects proceduralObjects = new IrisProceduralObjects(); @ArrayType(min = 1, type = IrisStructurePlacement.class) - @Desc("Structures define jigsaw or vanilla/datapack structures iris will place in this region") + @Description("Structures define jigsaw or vanilla/datapack structures iris will place in this region") private KList structures = new KList<>(); @MinNumber(0) - @Desc("The min shore height") + @Description("The min shore height") private double shoreHeightMin = 1.2; - @Desc("Reference loot tables in this area") + @Description("Reference loot tables in this area") private IrisLootReference loot = new IrisLootReference(); @MinNumber(0) - @Desc("The the max shore height") + @Description("The the max shore height") private double shoreHeightMax = 3.2; @MinNumber(0.0001) - @Desc("The varience of the shore height") + @Description("The varience of the shore height") private double shoreHeightZoom = 3.14; @MinNumber(0.0001) - @Desc("How large land biomes are in this region") + @Description("How large land biomes are in this region") private double landBiomeZoom = 1; @MinNumber(0.0001) - @Desc("How large shore biomes are in this region") + @Description("How large shore biomes are in this region") private double shoreBiomeZoom = 1; @MinNumber(0.0001) - @Desc("How large sea biomes are in this region") + @Description("How large sea biomes are in this region") private double seaBiomeZoom = 1; @MinNumber(0.0001) - @Desc("How large cave biomes are in this region") + @Description("How large cave biomes are in this region") private double caveBiomeZoom = 1; - @Desc("Profile-driven 3D cave configuration") + @Description("Profile-driven 3D cave configuration") private IrisCaveProfile caveProfile = new IrisCaveProfile(); - @Desc("Region-level river placement, routing, profile, biome, and geometry policy. Omit to inherit dimension settings.") + @Description("Region-level river placement, routing, profile, biome, and geometry policy. Omit to inherit dimension settings.") private IrisRiverPolicy riverPolicy = null; @RegistryListResource(IrisBiome.class) @Required @ArrayType(min = 1, type = String.class) - @Desc("A list of root-level biomes in this region. Don't specify child biomes of other biomes here. Just the root parents.") + @Description("A list of root-level biomes in this region. Don't specify child biomes of other biomes here. Just the root parents.") private KList landBiomes = new KList<>(); @RegistryListResource(IrisBiome.class) @ArrayType(type = String.class) - @Desc("A list of root-level sea biomes in this region. Optional: leave empty for land-only dimensions (flat, island, or fully-land worlds where no ocean is generated). Don't specify child biomes of other biomes here. Just the root parents.") + @Description("A list of root-level sea biomes in this region. Optional: leave empty for land-only dimensions (flat, island, or fully-land worlds where no ocean is generated). Don't specify child biomes of other biomes here. Just the root parents.") private KList seaBiomes = new KList<>(); @RegistryListResource(IrisBiome.class) @ArrayType(type = String.class) - @Desc("A list of root-level shore biomes in this region. Optional: leave empty for land-only dimensions (flat, island, or fully-land worlds where no shoreline is generated). Don't specify child biomes of other biomes here. Just the root parents.") + @Description("A list of root-level shore biomes in this region. Optional: leave empty for land-only dimensions (flat, island, or fully-land worlds where no shoreline is generated). Don't specify child biomes of other biomes here. Just the root parents.") private KList shoreBiomes = new KList<>(); @RegistryListResource(IrisBiome.class) @ArrayType(min = 1, type = String.class) - @Desc("A list of root-level cave biomes in this region, used for carved cave interiors. Don't specify child biomes of other biomes here. Just the root parents.") + @Description("A list of root-level cave biomes in this region, used for carved cave interiors. Don't specify child biomes of other biomes here. Just the root parents.") private KList caveBiomes = new KList<>(); @ArrayType(min = 1, type = IrisDepositGenerator.class) - @Desc("Define regional deposit generators that add onto the global deposit generators") + @Description("Define regional deposit generators that add onto the global deposit generators") private KList deposits = new KList<>(); @ArrayType(min = 1, type = IrisDepositVariant.class) - @Desc("Deposit ore remap rules scoped to this region. Each entry declares a vertical band and a source->replacement block id map. Applied after biome rules but before dimension rules; first matching region rule wins.") + @Description("Deposit ore remap rules scoped to this region. Each entry declares a vertical band and a source->replacement block id map. Applied after biome rules but before dimension rules; first matching region rule wins.") private KList depositVariants = new KList<>(); - @Desc("A color for visualizing this region with a color. I.e. #F13AF5. This will show up on the map.") + @Description("A color for visualizing this region with a color. I.e. #F13AF5. This will show up on the map.") private String color = null; - @Desc("Collection of ores to be generated") + @Description("Collection of ores to be generated") @ArrayType(type = IrisOreGenerator.class, min = 1) private KList ores = new KList<>(); diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisSlopeClip.java b/core/src/main/java/art/arcane/iris/generation/terrain/IrisSlopeClip.java similarity index 77% rename from core/src/main/java/art/arcane/iris/engine/object/IrisSlopeClip.java rename to core/src/main/java/art/arcane/iris/generation/terrain/IrisSlopeClip.java index 3cebbe846..60607cea3 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisSlopeClip.java +++ b/core/src/main/java/art/arcane/iris/generation/terrain/IrisSlopeClip.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.terrain; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Snippet; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -31,17 +31,17 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Limits placement to a minimum and maximum terrain slope") +@Description("Limits placement to a minimum and maximum terrain slope") @Data public class IrisSlopeClip { @MinNumber(0) @MaxNumber(1024) - @Desc("The minimum slope for placement") + @Description("The minimum slope for placement") private double minimumSlope = 0; @MinNumber(0) @MaxNumber(1024) - @Desc("The maximum slope for placement") + @Description("The maximum slope for placement") private double maximumSlope = 10; public boolean isDefault() { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisTerrain3D.java b/core/src/main/java/art/arcane/iris/generation/terrain/IrisTerrain3D.java similarity index 63% rename from core/src/main/java/art/arcane/iris/engine/object/IrisTerrain3D.java rename to core/src/main/java/art/arcane/iris/generation/terrain/IrisTerrain3D.java index db0c1775c..f1660f288 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisTerrain3D.java +++ b/core/src/main/java/art/arcane/iris/generation/terrain/IrisTerrain3D.java @@ -1,9 +1,12 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.terrain; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.generation.noise.NoiseStyle; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Snippet; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; @@ -12,68 +15,68 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @Data -@Desc("Volumetric surface terrain that adds projecting rock and removes undercuts and fissures around the biome's height generators.") +@Description("Volumetric surface terrain that adds projecting rock and removes undercuts and fissures around the biome's height generators.") public class IrisTerrain3D { - @Desc("Enable this biome's volumetric terrain profile.") + @Description("Enable this biome's volumetric terrain profile.") private boolean enabled = true; - @Desc("Seed offset for the surface density and fissure fields.") + @Description("Seed offset for the surface density and fissure fields.") private long seed = 0; @MinNumber(0) @MaxNumber(128) - @Desc("Maximum positive or negative surface density displacement in blocks.") + @Description("Maximum positive or negative surface density displacement in blocks.") private double amplitude = 32; @MinNumber(8) @MaxNumber(4096) - @Desc("Horizontal feature size in blocks for a density style with its default zoom.") + @Description("Horizontal feature size in blocks for a density style with its default zoom.") private double horizontalScale = 96; @MinNumber(8) @MaxNumber(4096) - @Desc("Vertical feature size in blocks. Shorter scales relative to amplitude permit overlapping ledges and overhangs.") + @Description("Vertical feature size in blocks. Shorter scales relative to amplitude permit overlapping ledges and overhangs.") private double verticalScale = 24; - @Desc("Signed three-dimensional noise that displaces terrain density. Style zoom multiplies the configured feature sizes.") + @Description("Signed three-dimensional noise that displaces terrain density. Style zoom multiplies the configured feature sizes.") private IrisGeneratorStyle densityStyle = new IrisGeneratorStyle(NoiseStyle.SIMPLEX); @MinNumber(0) @MaxNumber(128) - @Desc("Maximum additional fissure depth in blocks. Zero disables fissures.") + @Description("Maximum additional fissure depth in blocks. Zero disables fissures.") private double crackDepth = 0; @MinNumber(0.25) @MaxNumber(64) - @Desc("Approximate fissure half-width in blocks around the fissure field's zero crossings.") + @Description("Approximate fissure half-width in blocks around the fissure field's zero crossings.") private double crackWidth = 4; @MinNumber(8) @MaxNumber(4096) - @Desc("Horizontal fissure feature size in blocks. Fissures use four times this vertical scale.") + @Description("Horizontal fissure feature size in blocks. Fissures use four times this vertical scale.") private double crackScale = 96; - @Desc("Noise whose zero crossings define tall narrow fissures.") + @Description("Noise whose zero crossings define tall narrow fissures.") private IrisGeneratorStyle crackStyle = new IrisGeneratorStyle(NoiseStyle.SIMPLEX); @MinNumber(0) @MaxNumber(16) - @Desc("Minimum original terrain slope, measured as rise divided by horizontal distance, before shaping starts. Zero disables slope gating.") + @Description("Minimum original terrain slope, measured as rise divided by horizontal distance, before shaping starts. Zero disables slope gating.") private double minimumSlope = 0.15; @MinNumber(0.001) @MaxNumber(16) - @Desc("Slope interval above minimumSlope over which shaping reaches full strength.") + @Description("Slope interval above minimumSlope over which shaping reaches full strength.") private double slopeFade = 0.35; @MinNumber(0) @MaxNumber(128) - @Desc("Height above the dimension fluid level below which terrain remains solid and unchanged.") + @Description("Height above the dimension fluid level below which terrain remains solid and unchanged.") private double fluidClearance = 8; @MinNumber(1) @MaxNumber(128) - @Desc("Vertical distance over which shaping grows from zero above the fluid clearance.") + @Description("Vertical distance over which shaping grows from zero above the fluid clearance.") private double fluidFade = 24; public void validate() { diff --git a/core/src/main/java/art/arcane/iris/engine/terrain/Terrain3DColumn.java b/core/src/main/java/art/arcane/iris/generation/terrain/Terrain3DColumn.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/terrain/Terrain3DColumn.java rename to core/src/main/java/art/arcane/iris/generation/terrain/Terrain3DColumn.java index 80693c47d..d19c1c5df 100644 --- a/core/src/main/java/art/arcane/iris/engine/terrain/Terrain3DColumn.java +++ b/core/src/main/java/art/arcane/iris/generation/terrain/Terrain3DColumn.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.terrain; +package art.arcane.iris.generation.terrain; import java.util.Arrays; diff --git a/core/src/main/java/art/arcane/iris/engine/terrain/Terrain3DFragmentFilter.java b/core/src/main/java/art/arcane/iris/generation/terrain/Terrain3DFragmentFilter.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/terrain/Terrain3DFragmentFilter.java rename to core/src/main/java/art/arcane/iris/generation/terrain/Terrain3DFragmentFilter.java index 850e3f29f..c7e2831dc 100644 --- a/core/src/main/java/art/arcane/iris/engine/terrain/Terrain3DFragmentFilter.java +++ b/core/src/main/java/art/arcane/iris/generation/terrain/Terrain3DFragmentFilter.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.terrain; +package art.arcane.iris.generation.terrain; import it.unimi.dsi.fastutil.HashCommon; diff --git a/core/src/main/java/art/arcane/iris/engine/terrain/Terrain3DRuntime.java b/core/src/main/java/art/arcane/iris/generation/terrain/Terrain3DRuntime.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/terrain/Terrain3DRuntime.java rename to core/src/main/java/art/arcane/iris/generation/terrain/Terrain3DRuntime.java index 8e6f8fb3a..8e6d2d39f 100644 --- a/core/src/main/java/art/arcane/iris/engine/terrain/Terrain3DRuntime.java +++ b/core/src/main/java/art/arcane/iris/generation/terrain/Terrain3DRuntime.java @@ -1,10 +1,9 @@ -package art.arcane.iris.engine.terrain; +package art.arcane.iris.generation.terrain; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisGeneratorStyle; -import art.arcane.iris.engine.object.IrisTerrain3D; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.volmlib.util.noise.CNG; import art.arcane.volmlib.util.math.RNG; import it.unimi.dsi.fastutil.longs.Long2ObjectLinkedOpenHashMap; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/GoldenHashEngine.java b/core/src/main/java/art/arcane/iris/generation/validation/GoldenHashEngine.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/runtime/GoldenHashEngine.java rename to core/src/main/java/art/arcane/iris/generation/validation/GoldenHashEngine.java index 5540161aa..56d653423 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/GoldenHashEngine.java +++ b/core/src/main/java/art/arcane/iris/generation/validation/GoldenHashEngine.java @@ -16,17 +16,17 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.runtime; +package art.arcane.iris.generation.validation; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.RuntimeProgressMessages; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.mantle.EngineMantle; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.RuntimeProgressMessages; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.mantle.EngineMantle; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.math.ChunkSpiral; -import art.arcane.iris.util.common.parallel.MultiBurst; +import art.arcane.volmlib.util.math.ChunkSpiral; +import art.arcane.iris.generation.concurrent.MultiBurst; import art.arcane.volmlib.util.localization.MessageArgument; import art.arcane.volmlib.util.mantle.runtime.Mantle; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/GoldenHashScanner.java b/core/src/main/java/art/arcane/iris/generation/validation/GoldenHashScanner.java similarity index 86% rename from core/src/main/java/art/arcane/iris/core/runtime/GoldenHashScanner.java rename to core/src/main/java/art/arcane/iris/generation/validation/GoldenHashScanner.java index ed815ee9a..350fa5512 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/GoldenHashScanner.java +++ b/core/src/main/java/art/arcane/iris/generation/validation/GoldenHashScanner.java @@ -16,17 +16,21 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.runtime; +package art.arcane.iris.generation.validation; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.RuntimeProgressMessages; -import art.arcane.iris.engine.data.chunk.TerrainChunk; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.world.runtime.ChunkJobReporter; + +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.RuntimeProgressMessages; +import art.arcane.iris.generation.chunk.TerrainChunk; +import art.arcane.iris.generation.chunk.ChunkDataHunkView; +import art.arcane.iris.generation.chunk.TerrainChunkBiomeHunkView; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.format.C; -import art.arcane.iris.util.common.plugin.VolmitSender; +import art.arcane.iris.localization.C; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; import org.bukkit.Bukkit; import org.bukkit.World; @@ -81,7 +85,8 @@ public final class GoldenHashScanner { private GoldenHashEngine.ChunkSnapshot snapshot(int chunkX, int chunkZ) throws Exception { TerrainChunk buffer = TerrainChunk.create(world); - engine.generate(chunkX << 4, chunkZ << 4, buffer, false); + engine.generate(chunkX << 4, chunkZ << 4, new ChunkDataHunkView(buffer.getChunkData()), + new TerrainChunkBiomeHunkView(buffer), false); return new GoldenHashEngine.ChunkSnapshot() { @Override public int minY() { diff --git a/core/src/main/java/art/arcane/iris/core/link/ExternalDataProvider.java b/core/src/main/java/art/arcane/iris/integration/ExternalDataProvider.java similarity index 93% rename from core/src/main/java/art/arcane/iris/core/link/ExternalDataProvider.java rename to core/src/main/java/art/arcane/iris/integration/ExternalDataProvider.java index 8abcf40d1..e0341f2a1 100644 --- a/core/src/main/java/art/arcane/iris/core/link/ExternalDataProvider.java +++ b/core/src/main/java/art/arcane/iris/integration/ExternalDataProvider.java @@ -1,13 +1,13 @@ -package art.arcane.iris.core.link; +package art.arcane.iris.integration; -import art.arcane.iris.core.link.data.DataType; -import art.arcane.iris.core.nms.container.BiomeColor; -import art.arcane.iris.core.nms.container.BlockProperty; -import art.arcane.iris.core.nms.container.Pair; -import art.arcane.iris.engine.data.cache.Cache; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.integration.data.DataType; +import art.arcane.iris.platform.bukkit.nms.container.BiomeColor; +import art.arcane.iris.platform.bukkit.nms.container.BlockProperty; +import art.arcane.iris.platform.bukkit.nms.container.Pair; +import art.arcane.iris.generation.cache.Cache; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.volmlib.util.collection.KMap; -import art.arcane.iris.util.common.data.IrisCustomData; +import art.arcane.iris.generation.block.IrisCustomData; import art.arcane.volmlib.util.math.RNG; import lombok.Getter; import lombok.NonNull; diff --git a/core/src/main/java/art/arcane/iris/core/service/ExternalDataSVC.java b/core/src/main/java/art/arcane/iris/integration/ExternalDataSVC.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/service/ExternalDataSVC.java rename to core/src/main/java/art/arcane/iris/integration/ExternalDataSVC.java index dd8364c4f..71056ec91 100644 --- a/core/src/main/java/art/arcane/iris/core/service/ExternalDataSVC.java +++ b/core/src/main/java/art/arcane/iris/integration/ExternalDataSVC.java @@ -16,19 +16,17 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.service; +package art.arcane.iris.integration; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.platform.bukkit.BukkitPlatform; -import art.arcane.iris.core.link.ExternalDataProvider; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.core.link.data.DataType; -import art.arcane.iris.core.nms.container.BlockProperty; -import art.arcane.iris.core.nms.container.Pair; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.util.common.data.IrisCustomData; +import art.arcane.iris.integration.data.DataType; +import art.arcane.iris.platform.bukkit.nms.container.BlockProperty; +import art.arcane.iris.platform.bukkit.nms.container.Pair; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.block.IrisCustomData; import art.arcane.volmlib.util.collection.KMap; -import art.arcane.iris.util.common.plugin.IrisService; +import art.arcane.iris.platform.bukkit.plugin.IrisService; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.block.Block; @@ -54,7 +52,7 @@ import java.util.concurrent.atomic.AtomicLong; import java.util.stream.Collectors; public class ExternalDataSVC implements IrisService { - private static final String PROVIDER_PACKAGE = "art.arcane.iris.core.link.data."; + private static final String PROVIDER_PACKAGE = "art.arcane.iris.integration.data."; private static final List BUILT_IN_PROVIDERS = List.of( new ProviderDefinition("CraftEngine", PROVIDER_PACKAGE + "CraftEngineDataProvider"), new ProviderDefinition("Nexo", PROVIDER_PACKAGE + "NexoDataProvider"), diff --git a/core/src/main/java/art/arcane/iris/core/link/Identifier.java b/core/src/main/java/art/arcane/iris/integration/Identifier.java similarity index 92% rename from core/src/main/java/art/arcane/iris/core/link/Identifier.java rename to core/src/main/java/art/arcane/iris/integration/Identifier.java index 65ea5ca6a..6b9dc6111 100644 --- a/core/src/main/java/art/arcane/iris/core/link/Identifier.java +++ b/core/src/main/java/art/arcane/iris/integration/Identifier.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.link; +package art.arcane.iris.integration; public record Identifier(String namespace, String key) { private static final String DEFAULT_NAMESPACE = "minecraft"; diff --git a/core/src/main/java/art/arcane/iris/core/link/MultiverseCoreLink.java b/core/src/main/java/art/arcane/iris/integration/MultiverseCoreLink.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/link/MultiverseCoreLink.java rename to core/src/main/java/art/arcane/iris/integration/MultiverseCoreLink.java index be518db36..d7798f317 100644 --- a/core/src/main/java/art/arcane/iris/core/link/MultiverseCoreLink.java +++ b/core/src/main/java/art/arcane/iris/integration/MultiverseCoreLink.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.link; +package art.arcane.iris.integration; -import art.arcane.iris.core.IrisWorldStorage; -import art.arcane.iris.core.IrisWorlds; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.world.IrisWorldStorage; +import art.arcane.iris.world.IrisWorlds; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.iris.platform.bukkit.BukkitEnvironment; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.bukkit.WorldIdentity; diff --git a/core/src/main/java/art/arcane/iris/core/link/MultiverseGuardListener.java b/core/src/main/java/art/arcane/iris/integration/MultiverseGuardListener.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/link/MultiverseGuardListener.java rename to core/src/main/java/art/arcane/iris/integration/MultiverseGuardListener.java index 14c9fc046..a3622bdd2 100644 --- a/core/src/main/java/art/arcane/iris/core/link/MultiverseGuardListener.java +++ b/core/src/main/java/art/arcane/iris/integration/MultiverseGuardListener.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.link; +package art.arcane.iris.integration; -import art.arcane.iris.core.IrisWorldStorage; -import art.arcane.iris.core.lifecycle.ManagedWorldLoader; -import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.iris.world.IrisWorldStorage; +import art.arcane.iris.world.lifecycle.ManagedWorldLoader; +import art.arcane.iris.world.IrisToolbelt; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.plugin.ComponentMessenger; import org.bukkit.Bukkit; import org.bukkit.World; diff --git a/core/src/main/java/art/arcane/iris/core/service/MultiverseSVC.java b/core/src/main/java/art/arcane/iris/integration/MultiverseSVC.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/service/MultiverseSVC.java rename to core/src/main/java/art/arcane/iris/integration/MultiverseSVC.java index 0cb6ed7a7..c25035f5f 100644 --- a/core/src/main/java/art/arcane/iris/core/service/MultiverseSVC.java +++ b/core/src/main/java/art/arcane/iris/integration/MultiverseSVC.java @@ -16,13 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.service; +package art.arcane.iris.integration; -import art.arcane.iris.core.link.MultiverseCoreLink; -import art.arcane.iris.core.link.MultiverseGuardListener; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.util.common.plugin.IrisService; +import art.arcane.iris.platform.bukkit.plugin.IrisService; import art.arcane.iris.platform.bukkit.BukkitPlatform; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; diff --git a/core/src/main/java/art/arcane/iris/core/link/WorldEditLink.java b/core/src/main/java/art/arcane/iris/integration/WorldEditLink.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/link/WorldEditLink.java rename to core/src/main/java/art/arcane/iris/integration/WorldEditLink.java index d98e0f134..e8c778c57 100644 --- a/core/src/main/java/art/arcane/iris/core/link/WorldEditLink.java +++ b/core/src/main/java/art/arcane/iris/integration/WorldEditLink.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.link; +package art.arcane.iris.integration; import art.arcane.iris.spi.CapabilityProbe; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.generation.cache.AtomicCache; import art.arcane.volmlib.util.data.Cuboid; import art.arcane.volmlib.util.scheduling.ChronoLatch; import org.bukkit.Bukkit; diff --git a/core/src/main/java/art/arcane/iris/core/link/data/CraftEngineDataProvider.java b/core/src/main/java/art/arcane/iris/integration/data/CraftEngineDataProvider.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/link/data/CraftEngineDataProvider.java rename to core/src/main/java/art/arcane/iris/integration/data/CraftEngineDataProvider.java index e369e9d61..52ea0b157 100644 --- a/core/src/main/java/art/arcane/iris/core/link/data/CraftEngineDataProvider.java +++ b/core/src/main/java/art/arcane/iris/integration/data/CraftEngineDataProvider.java @@ -1,16 +1,16 @@ -package art.arcane.iris.core.link.data; +package art.arcane.iris.integration.data; -import art.arcane.iris.core.link.ExternalDataProvider; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.core.nms.container.BlockProperty; -import art.arcane.iris.core.nms.container.Pair; -import art.arcane.iris.core.service.ExternalDataSVC; -import art.arcane.iris.engine.data.cache.Cache; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.integration.ExternalDataProvider; +import art.arcane.iris.integration.Identifier; +import art.arcane.iris.platform.bukkit.nms.container.BlockProperty; +import art.arcane.iris.platform.bukkit.nms.container.Pair; +import art.arcane.iris.integration.ExternalDataSVC; +import art.arcane.iris.generation.cache.Cache; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.iris.platform.bukkit.BukkitBlockResolution; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.util.common.data.IrisCustomData; +import art.arcane.iris.generation.block.IrisCustomData; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.math.RNG; import net.momirealms.craftengine.bukkit.api.CraftEngineBlocks; diff --git a/core/src/main/java/art/arcane/iris/core/link/data/DataType.java b/core/src/main/java/art/arcane/iris/integration/data/DataType.java similarity index 85% rename from core/src/main/java/art/arcane/iris/core/link/data/DataType.java rename to core/src/main/java/art/arcane/iris/integration/data/DataType.java index fc0e90b86..ad7287fb1 100644 --- a/core/src/main/java/art/arcane/iris/core/link/data/DataType.java +++ b/core/src/main/java/art/arcane/iris/integration/data/DataType.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.link.data; +package art.arcane.iris.integration.data; -import art.arcane.iris.core.link.ExternalDataProvider; -import art.arcane.iris.core.link.Identifier; +import art.arcane.iris.integration.ExternalDataProvider; +import art.arcane.iris.integration.Identifier; import java.util.MissingResourceException; import java.util.function.BiPredicate; diff --git a/core/src/main/java/art/arcane/iris/core/link/data/EcoItemsDataProvider.java b/core/src/main/java/art/arcane/iris/integration/data/EcoItemsDataProvider.java similarity index 92% rename from core/src/main/java/art/arcane/iris/core/link/data/EcoItemsDataProvider.java rename to core/src/main/java/art/arcane/iris/integration/data/EcoItemsDataProvider.java index 5beb4cbf9..5a1c7ffc6 100644 --- a/core/src/main/java/art/arcane/iris/core/link/data/EcoItemsDataProvider.java +++ b/core/src/main/java/art/arcane/iris/integration/data/EcoItemsDataProvider.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.link.data; +package art.arcane.iris.integration.data; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.core.link.ExternalDataProvider; -import art.arcane.iris.core.link.Identifier; +import art.arcane.iris.integration.ExternalDataProvider; +import art.arcane.iris.integration.Identifier; import art.arcane.volmlib.util.collection.KMap; import com.willfp.eco.core.items.CustomItem; import com.willfp.eco.core.items.Items; diff --git a/core/src/main/java/art/arcane/iris/core/link/data/ExecutableItemsDataProvider.java b/core/src/main/java/art/arcane/iris/integration/data/ExecutableItemsDataProvider.java similarity index 92% rename from core/src/main/java/art/arcane/iris/core/link/data/ExecutableItemsDataProvider.java rename to core/src/main/java/art/arcane/iris/integration/data/ExecutableItemsDataProvider.java index 2264488c5..6b3e6fac6 100644 --- a/core/src/main/java/art/arcane/iris/core/link/data/ExecutableItemsDataProvider.java +++ b/core/src/main/java/art/arcane/iris/integration/data/ExecutableItemsDataProvider.java @@ -1,9 +1,9 @@ -package art.arcane.iris.core.link.data; +package art.arcane.iris.integration.data; import com.ssomar.score.api.executableitems.ExecutableItemsAPI; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.core.link.ExternalDataProvider; -import art.arcane.iris.core.link.Identifier; +import art.arcane.iris.integration.ExternalDataProvider; +import art.arcane.iris.integration.Identifier; import art.arcane.volmlib.util.collection.KMap; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; diff --git a/core/src/main/java/art/arcane/iris/core/link/data/ItemAdderDataProvider.java b/core/src/main/java/art/arcane/iris/integration/data/ItemAdderDataProvider.java similarity index 94% rename from core/src/main/java/art/arcane/iris/core/link/data/ItemAdderDataProvider.java rename to core/src/main/java/art/arcane/iris/integration/data/ItemAdderDataProvider.java index 5410458f4..528186fdb 100644 --- a/core/src/main/java/art/arcane/iris/core/link/data/ItemAdderDataProvider.java +++ b/core/src/main/java/art/arcane/iris/integration/data/ItemAdderDataProvider.java @@ -1,13 +1,13 @@ -package art.arcane.iris.core.link.data; +package art.arcane.iris.integration.data; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.core.link.ExternalDataProvider; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.core.service.ExternalDataSVC; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.integration.ExternalDataProvider; +import art.arcane.iris.integration.Identifier; +import art.arcane.iris.integration.ExternalDataSVC; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.iris.spi.IrisServices; import art.arcane.volmlib.util.collection.KMap; -import art.arcane.iris.util.common.data.IrisCustomData; +import art.arcane.iris.generation.block.IrisCustomData; import dev.lone.itemsadder.api.CustomBlock; import dev.lone.itemsadder.api.CustomStack; import dev.lone.itemsadder.api.Events.ItemsAdderLoadDataEvent; diff --git a/core/src/main/java/art/arcane/iris/core/link/data/KGeneratorsDataProvider.java b/core/src/main/java/art/arcane/iris/integration/data/KGeneratorsDataProvider.java similarity index 91% rename from core/src/main/java/art/arcane/iris/core/link/data/KGeneratorsDataProvider.java rename to core/src/main/java/art/arcane/iris/integration/data/KGeneratorsDataProvider.java index 4cdb4885e..e0a9a5bf4 100644 --- a/core/src/main/java/art/arcane/iris/core/link/data/KGeneratorsDataProvider.java +++ b/core/src/main/java/art/arcane/iris/integration/data/KGeneratorsDataProvider.java @@ -1,13 +1,13 @@ -package art.arcane.iris.core.link.data; +package art.arcane.iris.integration.data; import art.arcane.iris.platform.bukkit.BukkitBlockResolution; -import art.arcane.iris.core.link.ExternalDataProvider; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.core.service.ExternalDataSVC; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.integration.ExternalDataProvider; +import art.arcane.iris.integration.Identifier; +import art.arcane.iris.integration.ExternalDataSVC; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.volmlib.util.collection.KMap; -import art.arcane.iris.util.common.data.IrisCustomData; +import art.arcane.iris.generation.block.IrisCustomData; import me.kryniowesegryderiusz.kgenerators.Main; import me.kryniowesegryderiusz.kgenerators.api.KGeneratorsAPI; import me.kryniowesegryderiusz.kgenerators.api.interfaces.IGeneratorLocation; diff --git a/core/src/main/java/art/arcane/iris/core/link/data/MMOItemsDataProvider.java b/core/src/main/java/art/arcane/iris/integration/data/MMOItemsDataProvider.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/link/data/MMOItemsDataProvider.java rename to core/src/main/java/art/arcane/iris/integration/data/MMOItemsDataProvider.java index 6f5e76c71..1bf11ece2 100644 --- a/core/src/main/java/art/arcane/iris/core/link/data/MMOItemsDataProvider.java +++ b/core/src/main/java/art/arcane/iris/integration/data/MMOItemsDataProvider.java @@ -1,10 +1,10 @@ -package art.arcane.iris.core.link.data; +package art.arcane.iris.integration.data; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.core.link.ExternalDataProvider; -import art.arcane.iris.core.link.Identifier; +import art.arcane.iris.integration.ExternalDataProvider; +import art.arcane.iris.integration.Identifier; import art.arcane.volmlib.util.collection.KMap; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.ItemTier; import net.Indyuce.mmoitems.api.Type; diff --git a/core/src/main/java/art/arcane/iris/core/link/data/MythicCrucibleDataProvider.java b/core/src/main/java/art/arcane/iris/integration/data/MythicCrucibleDataProvider.java similarity index 91% rename from core/src/main/java/art/arcane/iris/core/link/data/MythicCrucibleDataProvider.java rename to core/src/main/java/art/arcane/iris/integration/data/MythicCrucibleDataProvider.java index 27d7358c8..1e7a3cb42 100644 --- a/core/src/main/java/art/arcane/iris/core/link/data/MythicCrucibleDataProvider.java +++ b/core/src/main/java/art/arcane/iris/integration/data/MythicCrucibleDataProvider.java @@ -16,21 +16,21 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.link.data; +package art.arcane.iris.integration.data; import art.arcane.iris.platform.bukkit.BukkitBlockResolution; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.core.link.ExternalDataProvider; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.core.nms.container.BiomeColor; -import art.arcane.iris.core.nms.container.BlockProperty; -import art.arcane.iris.core.nms.container.Pair; -import art.arcane.iris.core.service.ExternalDataSVC; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.integration.ExternalDataProvider; +import art.arcane.iris.integration.Identifier; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.platform.bukkit.nms.container.BiomeColor; +import art.arcane.iris.platform.bukkit.nms.container.BlockProperty; +import art.arcane.iris.platform.bukkit.nms.container.Pair; +import art.arcane.iris.integration.ExternalDataSVC; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.volmlib.util.collection.KMap; -import art.arcane.iris.util.common.data.IrisCustomData; +import art.arcane.iris.generation.block.IrisCustomData; import io.lumine.mythic.bukkit.BukkitAdapter; import io.lumine.mythic.bukkit.utils.serialize.Chroma; import io.lumine.mythiccrucible.MythicCrucible; diff --git a/core/src/main/java/art/arcane/iris/core/link/data/MythicMobsDataProvider.java b/core/src/main/java/art/arcane/iris/integration/data/MythicMobsDataProvider.java similarity index 93% rename from core/src/main/java/art/arcane/iris/core/link/data/MythicMobsDataProvider.java rename to core/src/main/java/art/arcane/iris/integration/data/MythicMobsDataProvider.java index 2cceddd61..786d2b13c 100644 --- a/core/src/main/java/art/arcane/iris/core/link/data/MythicMobsDataProvider.java +++ b/core/src/main/java/art/arcane/iris/integration/data/MythicMobsDataProvider.java @@ -1,12 +1,12 @@ -package art.arcane.iris.core.link.data; +package art.arcane.iris.integration.data; -import art.arcane.iris.core.link.ExternalDataProvider; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.integration.ExternalDataProvider; +import art.arcane.iris.integration.Identifier; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; import io.lumine.mythic.api.adapters.AbstractLocation; import io.lumine.mythic.api.config.MythicLineConfig; import io.lumine.mythic.api.mobs.MythicMob; diff --git a/core/src/main/java/art/arcane/iris/core/link/data/NexoDataProvider.java b/core/src/main/java/art/arcane/iris/integration/data/NexoDataProvider.java similarity index 91% rename from core/src/main/java/art/arcane/iris/core/link/data/NexoDataProvider.java rename to core/src/main/java/art/arcane/iris/integration/data/NexoDataProvider.java index edf9d9b53..0a56e05a5 100644 --- a/core/src/main/java/art/arcane/iris/core/link/data/NexoDataProvider.java +++ b/core/src/main/java/art/arcane/iris/integration/data/NexoDataProvider.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.link.data; +package art.arcane.iris.integration.data; import art.arcane.iris.platform.bukkit.BukkitBlockResolution; @@ -6,17 +6,17 @@ import com.nexomc.nexo.api.NexoBlocks; import com.nexomc.nexo.api.NexoFurniture; import com.nexomc.nexo.api.NexoItems; import com.nexomc.nexo.items.ItemBuilder; -import art.arcane.iris.core.link.ExternalDataProvider; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.core.nms.container.BiomeColor; -import art.arcane.iris.core.nms.container.BlockProperty; -import art.arcane.iris.core.nms.container.Pair; -import art.arcane.iris.core.service.ExternalDataSVC; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.integration.ExternalDataProvider; +import art.arcane.iris.integration.Identifier; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.platform.bukkit.nms.container.BiomeColor; +import art.arcane.iris.platform.bukkit.nms.container.BlockProperty; +import art.arcane.iris.platform.bukkit.nms.container.Pair; +import art.arcane.iris.integration.ExternalDataSVC; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.collection.KMap; -import art.arcane.iris.util.common.data.IrisCustomData; +import art.arcane.iris.generation.block.IrisCustomData; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.block.data.BlockData; diff --git a/core/src/main/java/art/arcane/iris/core/link/data/OraxenDataProvider.java b/core/src/main/java/art/arcane/iris/integration/data/OraxenDataProvider.java similarity index 90% rename from core/src/main/java/art/arcane/iris/core/link/data/OraxenDataProvider.java rename to core/src/main/java/art/arcane/iris/integration/data/OraxenDataProvider.java index f434e8f2b..1e625ba30 100644 --- a/core/src/main/java/art/arcane/iris/core/link/data/OraxenDataProvider.java +++ b/core/src/main/java/art/arcane/iris/integration/data/OraxenDataProvider.java @@ -1,11 +1,11 @@ -package art.arcane.iris.core.link.data; +package art.arcane.iris.integration.data; -import art.arcane.iris.core.link.ExternalDataProvider; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.core.service.ExternalDataSVC; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.integration.ExternalDataProvider; +import art.arcane.iris.integration.Identifier; +import art.arcane.iris.integration.ExternalDataSVC; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.util.common.data.IrisCustomData; +import art.arcane.iris.generation.block.IrisCustomData; import art.arcane.volmlib.util.collection.KMap; import io.th0rgal.oraxen.api.OraxenBlocks; import io.th0rgal.oraxen.api.OraxenItems; diff --git a/core/src/main/java/art/arcane/iris/core/localization/BukkitCommandMessages.java b/core/src/main/java/art/arcane/iris/localization/BukkitCommandMessages.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/localization/BukkitCommandMessages.java rename to core/src/main/java/art/arcane/iris/localization/BukkitCommandMessages.java index 5eb36360e..d87d00873 100644 --- a/core/src/main/java/art/arcane/iris/core/localization/BukkitCommandMessages.java +++ b/core/src/main/java/art/arcane/iris/localization/BukkitCommandMessages.java @@ -1,6 +1,5 @@ -package art.arcane.iris.core.localization; +package art.arcane.iris.localization; -import art.arcane.iris.util.common.format.C; import art.arcane.volmlib.util.localization.MessageKey; import art.arcane.volmlib.util.localization.TextKey; diff --git a/core/src/main/java/art/arcane/iris/core/localization/BukkitCommandMessagesExtended.java b/core/src/main/java/art/arcane/iris/localization/BukkitCommandMessagesExtended.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/localization/BukkitCommandMessagesExtended.java rename to core/src/main/java/art/arcane/iris/localization/BukkitCommandMessagesExtended.java index ec664ae77..aa24913d1 100644 --- a/core/src/main/java/art/arcane/iris/core/localization/BukkitCommandMessagesExtended.java +++ b/core/src/main/java/art/arcane/iris/localization/BukkitCommandMessagesExtended.java @@ -1,6 +1,5 @@ -package art.arcane.iris.core.localization; +package art.arcane.iris.localization; -import art.arcane.iris.util.common.format.C; import art.arcane.volmlib.util.localization.MessageKey; import art.arcane.volmlib.util.localization.TextKey; diff --git a/core/src/main/java/art/arcane/iris/core/localization/BukkitRuntimeMessages.java b/core/src/main/java/art/arcane/iris/localization/BukkitRuntimeMessages.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/localization/BukkitRuntimeMessages.java rename to core/src/main/java/art/arcane/iris/localization/BukkitRuntimeMessages.java index 1bec08def..b11584402 100644 --- a/core/src/main/java/art/arcane/iris/core/localization/BukkitRuntimeMessages.java +++ b/core/src/main/java/art/arcane/iris/localization/BukkitRuntimeMessages.java @@ -1,6 +1,5 @@ -package art.arcane.iris.core.localization; +package art.arcane.iris.localization; -import art.arcane.iris.util.common.format.C; import art.arcane.volmlib.util.localization.LinesKey; import art.arcane.volmlib.util.localization.MessageKey; import art.arcane.volmlib.util.localization.PluralKey; diff --git a/core/src/main/java/art/arcane/iris/core/localization/BukkitUiMessages.java b/core/src/main/java/art/arcane/iris/localization/BukkitUiMessages.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/localization/BukkitUiMessages.java rename to core/src/main/java/art/arcane/iris/localization/BukkitUiMessages.java index 36df1b54a..8d4e03098 100644 --- a/core/src/main/java/art/arcane/iris/core/localization/BukkitUiMessages.java +++ b/core/src/main/java/art/arcane/iris/localization/BukkitUiMessages.java @@ -1,6 +1,5 @@ -package art.arcane.iris.core.localization; +package art.arcane.iris.localization; -import art.arcane.iris.util.common.format.C; import art.arcane.volmlib.util.localization.MessageKey; import art.arcane.volmlib.util.localization.TextKey; diff --git a/core/src/main/java/art/arcane/iris/util/common/format/C.java b/core/src/main/java/art/arcane/iris/localization/C.java similarity index 99% rename from core/src/main/java/art/arcane/iris/util/common/format/C.java rename to core/src/main/java/art/arcane/iris/localization/C.java index 034972894..3d016a278 100644 --- a/core/src/main/java/art/arcane/iris/util/common/format/C.java +++ b/core/src/main/java/art/arcane/iris/localization/C.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.format; +package art.arcane.iris.localization; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.plugin.VolmitSender; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; import net.kyori.adventure.text.minimessage.MiniMessage; import net.md_5.bungee.api.chat.BaseComponent; import net.md_5.bungee.api.chat.TextComponent; diff --git a/core/src/main/java/art/arcane/iris/core/localization/DesktopUiMessages.java b/core/src/main/java/art/arcane/iris/localization/DesktopUiMessages.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/localization/DesktopUiMessages.java rename to core/src/main/java/art/arcane/iris/localization/DesktopUiMessages.java index f25220608..3c045cd5a 100644 --- a/core/src/main/java/art/arcane/iris/core/localization/DesktopUiMessages.java +++ b/core/src/main/java/art/arcane/iris/localization/DesktopUiMessages.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.localization; +package art.arcane.iris.localization; import art.arcane.volmlib.util.localization.MessageKey; import art.arcane.volmlib.util.localization.TextKey; diff --git a/core/src/main/java/art/arcane/iris/core/localization/DirectorCommandMessages.java b/core/src/main/java/art/arcane/iris/localization/DirectorCommandMessages.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/localization/DirectorCommandMessages.java rename to core/src/main/java/art/arcane/iris/localization/DirectorCommandMessages.java index 327e90124..f19a2eb08 100644 --- a/core/src/main/java/art/arcane/iris/core/localization/DirectorCommandMessages.java +++ b/core/src/main/java/art/arcane/iris/localization/DirectorCommandMessages.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.localization; +package art.arcane.iris.localization; import art.arcane.volmlib.util.localization.MessageKey; import art.arcane.volmlib.util.localization.TextKey; diff --git a/core/src/main/java/art/arcane/iris/core/localization/IrisLanguage.java b/core/src/main/java/art/arcane/iris/localization/IrisLanguage.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/localization/IrisLanguage.java rename to core/src/main/java/art/arcane/iris/localization/IrisLanguage.java index b50c525e7..1a64b2079 100644 --- a/core/src/main/java/art/arcane/iris/core/localization/IrisLanguage.java +++ b/core/src/main/java/art/arcane/iris/localization/IrisLanguage.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.localization; +package art.arcane.iris.localization; -import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.configuration.IrisSettings; import art.arcane.iris.spi.CapabilityProbe; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; diff --git a/core/src/main/java/art/arcane/iris/core/localization/IrisLanguageGuide.java b/core/src/main/java/art/arcane/iris/localization/IrisLanguageGuide.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/localization/IrisLanguageGuide.java rename to core/src/main/java/art/arcane/iris/localization/IrisLanguageGuide.java index 96cdb474d..4052d1ca1 100644 --- a/core/src/main/java/art/arcane/iris/core/localization/IrisLanguageGuide.java +++ b/core/src/main/java/art/arcane/iris/localization/IrisLanguageGuide.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.localization; +package art.arcane.iris.localization; import art.arcane.volmlib.util.localization.LanguageFileEditor; import art.arcane.volmlib.util.localization.LanguageFileHeader; diff --git a/core/src/main/java/art/arcane/iris/core/localization/IrisMessageContributor.java b/core/src/main/java/art/arcane/iris/localization/IrisMessageContributor.java similarity index 78% rename from core/src/main/java/art/arcane/iris/core/localization/IrisMessageContributor.java rename to core/src/main/java/art/arcane/iris/localization/IrisMessageContributor.java index 94c81e700..c347cce0e 100644 --- a/core/src/main/java/art/arcane/iris/core/localization/IrisMessageContributor.java +++ b/core/src/main/java/art/arcane/iris/localization/IrisMessageContributor.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.localization; +package art.arcane.iris.localization; import art.arcane.volmlib.util.localization.MessageKey; diff --git a/core/src/main/java/art/arcane/iris/core/localization/IrisMessages.java b/core/src/main/java/art/arcane/iris/localization/IrisMessages.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/localization/IrisMessages.java rename to core/src/main/java/art/arcane/iris/localization/IrisMessages.java index e122e3ed7..5ad0fbeff 100644 --- a/core/src/main/java/art/arcane/iris/core/localization/IrisMessages.java +++ b/core/src/main/java/art/arcane/iris/localization/IrisMessages.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.localization; +package art.arcane.iris.localization; import art.arcane.volmlib.util.diagnostics.BukkitDebugMessages; import art.arcane.volmlib.util.director.DirectorMessages; diff --git a/core/src/main/java/art/arcane/iris/core/localization/LocaleHotloadSnapshot.java b/core/src/main/java/art/arcane/iris/localization/LocaleHotloadSnapshot.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/localization/LocaleHotloadSnapshot.java rename to core/src/main/java/art/arcane/iris/localization/LocaleHotloadSnapshot.java index 39b424b81..950993fe3 100644 --- a/core/src/main/java/art/arcane/iris/core/localization/LocaleHotloadSnapshot.java +++ b/core/src/main/java/art/arcane/iris/localization/LocaleHotloadSnapshot.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.localization; +package art.arcane.iris.localization; import java.io.File; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/core/localization/PackDownloadMessages.java b/core/src/main/java/art/arcane/iris/localization/PackDownloadMessages.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/localization/PackDownloadMessages.java rename to core/src/main/java/art/arcane/iris/localization/PackDownloadMessages.java index ed8a92383..2e0551cea 100644 --- a/core/src/main/java/art/arcane/iris/core/localization/PackDownloadMessages.java +++ b/core/src/main/java/art/arcane/iris/localization/PackDownloadMessages.java @@ -1,6 +1,5 @@ -package art.arcane.iris.core.localization; +package art.arcane.iris.localization; -import art.arcane.iris.util.common.format.C; import art.arcane.volmlib.util.localization.LinesKey; import art.arcane.volmlib.util.localization.MessageKey; import art.arcane.volmlib.util.localization.PluralKey; diff --git a/core/src/main/java/art/arcane/iris/core/localization/RuntimeProgressMessages.java b/core/src/main/java/art/arcane/iris/localization/RuntimeProgressMessages.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/localization/RuntimeProgressMessages.java rename to core/src/main/java/art/arcane/iris/localization/RuntimeProgressMessages.java index 029be4f0e..55908bbbe 100644 --- a/core/src/main/java/art/arcane/iris/core/localization/RuntimeProgressMessages.java +++ b/core/src/main/java/art/arcane/iris/localization/RuntimeProgressMessages.java @@ -1,6 +1,5 @@ -package art.arcane.iris.core.localization; +package art.arcane.iris.localization; -import art.arcane.iris.util.common.format.C; import art.arcane.volmlib.util.localization.MessageKey; import art.arcane.volmlib.util.localization.PluralKey; import art.arcane.volmlib.util.localization.TextKey; diff --git a/core/src/main/java/art/arcane/iris/core/localization/RuntimeUiMessages.java b/core/src/main/java/art/arcane/iris/localization/RuntimeUiMessages.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/localization/RuntimeUiMessages.java rename to core/src/main/java/art/arcane/iris/localization/RuntimeUiMessages.java index 093469a40..e7e74b1f9 100644 --- a/core/src/main/java/art/arcane/iris/core/localization/RuntimeUiMessages.java +++ b/core/src/main/java/art/arcane/iris/localization/RuntimeUiMessages.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.localization; +package art.arcane.iris.localization; import art.arcane.volmlib.util.localization.MessageKey; import art.arcane.volmlib.util.localization.TextKey; diff --git a/core/src/main/java/art/arcane/iris/core/pack/AtomicDirectoryPublisher.java b/core/src/main/java/art/arcane/iris/pack/AtomicDirectoryPublisher.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/pack/AtomicDirectoryPublisher.java rename to core/src/main/java/art/arcane/iris/pack/AtomicDirectoryPublisher.java index f9237e78e..885ff5bc7 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/AtomicDirectoryPublisher.java +++ b/core/src/main/java/art/arcane/iris/pack/AtomicDirectoryPublisher.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import java.io.IOException; import java.nio.file.AtomicMoveNotSupportedException; diff --git a/core/src/main/java/art/arcane/iris/core/pack/BrokenPackException.java b/core/src/main/java/art/arcane/iris/pack/BrokenPackException.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/pack/BrokenPackException.java rename to core/src/main/java/art/arcane/iris/pack/BrokenPackException.java index 898aed374..a073c7ad7 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/BrokenPackException.java +++ b/core/src/main/java/art/arcane/iris/pack/BrokenPackException.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import java.util.ArrayList; import java.util.Collections; diff --git a/core/src/main/java/art/arcane/iris/core/pack/ContentKeyValidator.java b/core/src/main/java/art/arcane/iris/pack/ContentKeyValidator.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/pack/ContentKeyValidator.java rename to core/src/main/java/art/arcane/iris/pack/ContentKeyValidator.java index 35f0ab405..666a7c090 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/ContentKeyValidator.java +++ b/core/src/main/java/art/arcane/iris/pack/ContentKeyValidator.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.engine.object.IrisObjectIO; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.structure.object.IrisObjectIO; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBlockProperty; diff --git a/core/src/main/java/art/arcane/iris/core/pack/DefaultPackBootstrapProvisioner.java b/core/src/main/java/art/arcane/iris/pack/DefaultPackBootstrapProvisioner.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/pack/DefaultPackBootstrapProvisioner.java rename to core/src/main/java/art/arcane/iris/pack/DefaultPackBootstrapProvisioner.java index a91da1ebf..0208ae2f6 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/DefaultPackBootstrapProvisioner.java +++ b/core/src/main/java/art/arcane/iris/pack/DefaultPackBootstrapProvisioner.java @@ -1,11 +1,11 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; -import art.arcane.iris.core.IrisDatapackCompiler; -import art.arcane.iris.core.lifecycle.BukkitStartupPaths; -import art.arcane.iris.core.lifecycle.BukkitWorldConfiguration; -import art.arcane.iris.core.lifecycle.BukkitWorldConfiguration.IrisGeneratorBinding; -import art.arcane.iris.core.nms.datapack.DataVersion; -import art.arcane.iris.core.nms.datapack.IDataFixer; +import art.arcane.iris.pack.datapack.IrisDatapackCompiler; +import art.arcane.iris.world.lifecycle.BukkitStartupPaths; +import art.arcane.iris.world.lifecycle.BukkitWorldConfiguration; +import art.arcane.iris.world.lifecycle.BukkitWorldConfiguration.IrisGeneratorBinding; +import art.arcane.iris.platform.bukkit.nms.datapack.DataVersion; +import art.arcane.iris.platform.bukkit.nms.datapack.IDataFixer; import art.arcane.volmlib.util.collection.KList; import java.io.File; diff --git a/core/src/main/java/art/arcane/iris/core/pack/ImageMapPackageClosure.java b/core/src/main/java/art/arcane/iris/pack/ImageMapPackageClosure.java similarity index 93% rename from core/src/main/java/art/arcane/iris/core/pack/ImageMapPackageClosure.java rename to core/src/main/java/art/arcane/iris/pack/ImageMapPackageClosure.java index 069daa70f..7a3ad20e6 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/ImageMapPackageClosure.java +++ b/core/src/main/java/art/arcane/iris/pack/ImageMapPackageClosure.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisImageMap; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.image.IrisImageMap; import art.arcane.volmlib.util.io.IO; import art.arcane.volmlib.util.json.JSONObject; diff --git a/core/src/main/java/art/arcane/iris/core/tools/IrisConverter.java b/core/src/main/java/art/arcane/iris/pack/IrisConverter.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/tools/IrisConverter.java rename to core/src/main/java/art/arcane/iris/pack/IrisConverter.java index 7c622406d..898cdba34 100644 --- a/core/src/main/java/art/arcane/iris/core/tools/IrisConverter.java +++ b/core/src/main/java/art/arcane/iris/pack/IrisConverter.java @@ -1,11 +1,11 @@ -package art.arcane.iris.core.tools; +package art.arcane.iris.pack; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.engine.object.IrisObject; +import art.arcane.iris.structure.object.IrisObject; import art.arcane.volmlib.util.data.Varint; -import art.arcane.iris.util.common.format.C; +import art.arcane.iris.localization.C; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.nbt.io.NBTUtil; import art.arcane.volmlib.util.nbt.io.NamedTag; @@ -14,8 +14,8 @@ import art.arcane.volmlib.util.nbt.tag.CompoundTag; import art.arcane.volmlib.util.nbt.tag.IntTag; import art.arcane.volmlib.util.nbt.tag.ShortTag; import art.arcane.volmlib.util.nbt.tag.Tag; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import org.apache.commons.io.FileUtils; import org.bukkit.Bukkit; @@ -33,9 +33,9 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.atomic.AtomicInteger; -import art.arcane.iris.core.localization.BukkitRuntimeMessages; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.RuntimeUiMessages; +import art.arcane.iris.localization.BukkitRuntimeMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.RuntimeUiMessages; import art.arcane.volmlib.util.localization.MessageArgument; public class IrisConverter { public static void convertSchematics(VolmitSender sender) { diff --git a/core/src/main/java/art/arcane/iris/core/pack/IrisPack.java b/core/src/main/java/art/arcane/iris/pack/IrisPack.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/pack/IrisPack.java rename to core/src/main/java/art/arcane/iris/pack/IrisPack.java index 175e7baf4..62e1c9ae5 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/IrisPack.java +++ b/core/src/main/java/art/arcane/iris/pack/IrisPack.java @@ -16,22 +16,22 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.core.service.StudioSVC; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisWorld; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.studio.StudioSVC; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.world.IrisWorld; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.exceptions.IrisException; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.io.IO; import art.arcane.volmlib.util.json.JSONArray; import art.arcane.volmlib.util.json.JSONObject; -import art.arcane.iris.util.common.plugin.VolmitSender; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import lombok.Data; import org.bukkit.World; diff --git a/core/src/main/java/art/arcane/iris/core/tools/IrisPackBenchmarking.java b/core/src/main/java/art/arcane/iris/pack/IrisPackBenchmarking.java similarity index 94% rename from core/src/main/java/art/arcane/iris/core/tools/IrisPackBenchmarking.java rename to core/src/main/java/art/arcane/iris/pack/IrisPackBenchmarking.java index e8eb34d87..5c44bf1af 100644 --- a/core/src/main/java/art/arcane/iris/core/tools/IrisPackBenchmarking.java +++ b/core/src/main/java/art/arcane/iris/pack/IrisPackBenchmarking.java @@ -1,21 +1,23 @@ -package art.arcane.iris.core.tools; +package art.arcane.iris.pack; + +import art.arcane.iris.world.IrisToolbelt; -import art.arcane.iris.core.IrisWorldStorage; +import art.arcane.iris.world.IrisWorldStorage; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.core.lifecycle.WorldLifecycleService; -import art.arcane.iris.core.pregenerator.PregenTask; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.world.lifecycle.WorldLifecycleService; +import art.arcane.iris.world.pregen.PregenTask; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.bukkit.WorldIdentity; import art.arcane.volmlib.util.exceptions.IrisException; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.io.IO; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import org.bukkit.World; diff --git a/core/src/main/java/art/arcane/iris/core/pack/IrisPackRepository.java b/core/src/main/java/art/arcane/iris/pack/IrisPackRepository.java similarity index 91% rename from core/src/main/java/art/arcane/iris/core/pack/IrisPackRepository.java rename to core/src/main/java/art/arcane/iris/pack/IrisPackRepository.java index bc7efa6fb..45f367d82 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/IrisPackRepository.java +++ b/core/src/main/java/art/arcane/iris/pack/IrisPackRepository.java @@ -16,18 +16,18 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.RuntimeUiMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.RuntimeUiMessages; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.core.service.StudioSVC; +import art.arcane.iris.studio.StudioSVC; import art.arcane.volmlib.util.format.Form; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.jobs.DownloadJob; -import art.arcane.iris.util.common.scheduling.jobs.JobCollection; -import art.arcane.iris.util.common.scheduling.jobs.SingleJob; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.jobs.DownloadJob; +import art.arcane.iris.world.task.jobs.JobCollection; +import art.arcane.iris.world.task.jobs.SingleJob; import lombok.Builder; import lombok.Data; import org.zeroturnaround.zip.ZipUtil; diff --git a/core/src/main/java/art/arcane/iris/core/pack/PackBiomeLayerValidator.java b/core/src/main/java/art/arcane/iris/pack/PackBiomeLayerValidator.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/pack/PackBiomeLayerValidator.java rename to core/src/main/java/art/arcane/iris/pack/PackBiomeLayerValidator.java index a9e5a0406..c41de4438 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/PackBiomeLayerValidator.java +++ b/core/src/main/java/art/arcane/iris/pack/PackBiomeLayerValidator.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import art.arcane.volmlib.util.json.JSONArray; import art.arcane.volmlib.util.json.JSONObject; diff --git a/core/src/main/java/art/arcane/iris/core/pack/PackCaveProfileValidator.java b/core/src/main/java/art/arcane/iris/pack/PackCaveProfileValidator.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/pack/PackCaveProfileValidator.java rename to core/src/main/java/art/arcane/iris/pack/PackCaveProfileValidator.java index d7d631b22..1cd2d427d 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/PackCaveProfileValidator.java +++ b/core/src/main/java/art/arcane/iris/pack/PackCaveProfileValidator.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import art.arcane.volmlib.util.json.JSONObject; diff --git a/core/src/main/java/art/arcane/iris/core/pack/PackDimensionValidator.java b/core/src/main/java/art/arcane/iris/pack/PackDimensionValidator.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/pack/PackDimensionValidator.java rename to core/src/main/java/art/arcane/iris/pack/PackDimensionValidator.java index bb7d3d675..d014a6a33 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/PackDimensionValidator.java +++ b/core/src/main/java/art/arcane/iris/pack/PackDimensionValidator.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; -import art.arcane.iris.engine.object.IrisDimensionType; -import art.arcane.iris.engine.object.IrisObjectScale; -import art.arcane.iris.engine.object.IrisWorldBoundary; +import art.arcane.iris.generation.terrain.IrisDimensionType; +import art.arcane.iris.structure.object.IrisObjectScale; +import art.arcane.iris.world.IrisWorldBoundary; import art.arcane.volmlib.util.json.JSONArray; import art.arcane.volmlib.util.json.JSONObject; diff --git a/core/src/main/java/art/arcane/iris/core/pack/PackDirectoryResolver.java b/core/src/main/java/art/arcane/iris/pack/PackDirectoryResolver.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/pack/PackDirectoryResolver.java rename to core/src/main/java/art/arcane/iris/pack/PackDirectoryResolver.java index 9a2a1f0e3..05f009ec9 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/PackDirectoryResolver.java +++ b/core/src/main/java/art/arcane/iris/pack/PackDirectoryResolver.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import java.io.File; import java.io.IOException; diff --git a/core/src/main/java/art/arcane/iris/core/pack/PackDownloadExecution.java b/core/src/main/java/art/arcane/iris/pack/PackDownloadExecution.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/pack/PackDownloadExecution.java rename to core/src/main/java/art/arcane/iris/pack/PackDownloadExecution.java index a0829eb3b..be81ad88d 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/PackDownloadExecution.java +++ b/core/src/main/java/art/arcane/iris/pack/PackDownloadExecution.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; -import art.arcane.iris.core.lifecycle.LifecycleOperationCoordinator; +import art.arcane.iris.world.lifecycle.LifecycleOperationCoordinator; import art.arcane.iris.spi.IrisLogging; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/core/pack/PackDownloader.java b/core/src/main/java/art/arcane/iris/pack/PackDownloader.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/pack/PackDownloader.java rename to core/src/main/java/art/arcane/iris/pack/PackDownloader.java index 120c61386..88c135962 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/PackDownloader.java +++ b/core/src/main/java/art/arcane/iris/pack/PackDownloader.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.PackDownloadMessages; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.PackDownloadMessages; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.util.common.misc.WebCache; +import art.arcane.iris.platform.bootstrap.WebCache; import art.arcane.volmlib.util.io.IO; import art.arcane.volmlib.util.localization.MessageArgument; import org.zeroturnaround.zip.commons.FileUtils; diff --git a/core/src/main/java/art/arcane/iris/core/pack/PackExportClosure.java b/core/src/main/java/art/arcane/iris/pack/PackExportClosure.java similarity index 94% rename from core/src/main/java/art/arcane/iris/core/pack/PackExportClosure.java rename to core/src/main/java/art/arcane/iris/pack/PackExportClosure.java index da07db772..0d2594464 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/PackExportClosure.java +++ b/core/src/main/java/art/arcane/iris/pack/PackExportClosure.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisDimensionStack; -import art.arcane.iris.engine.object.IrisObjectMarker; -import art.arcane.iris.engine.object.IrisObjectPlacement; -import art.arcane.iris.engine.object.IrisStaticObject; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisDimensionStack; +import art.arcane.iris.structure.object.IrisObjectMarker; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.structure.object.IrisStaticObject; import art.arcane.volmlib.util.collection.KSet; import art.arcane.volmlib.util.io.IO; import art.arcane.volmlib.util.json.JSONObject; diff --git a/core/src/main/java/art/arcane/iris/core/pack/PackGeneratorDuplicateValidator.java b/core/src/main/java/art/arcane/iris/pack/PackGeneratorDuplicateValidator.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/pack/PackGeneratorDuplicateValidator.java rename to core/src/main/java/art/arcane/iris/pack/PackGeneratorDuplicateValidator.java index 0e18fe1d8..4da8e0af2 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/PackGeneratorDuplicateValidator.java +++ b/core/src/main/java/art/arcane/iris/pack/PackGeneratorDuplicateValidator.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import art.arcane.volmlib.util.json.JSONArray; import art.arcane.volmlib.util.json.JSONObject; diff --git a/core/src/main/java/art/arcane/iris/core/pack/PackHydrologyValidator.java b/core/src/main/java/art/arcane/iris/pack/PackHydrologyValidator.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/pack/PackHydrologyValidator.java rename to core/src/main/java/art/arcane/iris/pack/PackHydrologyValidator.java index 28b116dcb..d5cdcac50 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/PackHydrologyValidator.java +++ b/core/src/main/java/art/arcane/iris/pack/PackHydrologyValidator.java @@ -1,9 +1,9 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; -import art.arcane.iris.engine.hydrology.HydrologyFeatureQuery; -import art.arcane.iris.engine.object.IrisCoastalRiverGrottoConfig; -import art.arcane.iris.engine.object.IrisDeepFluidConfig; -import art.arcane.iris.engine.object.IrisInlandRiverGrottoConfig; +import art.arcane.iris.generation.hydrology.HydrologyFeatureQuery; +import art.arcane.iris.generation.hydrology.IrisCoastalRiverGrottoConfig; +import art.arcane.iris.generation.hydrology.IrisDeepFluidConfig; +import art.arcane.iris.generation.hydrology.IrisInlandRiverGrottoConfig; import art.arcane.volmlib.util.json.JSONArray; import art.arcane.volmlib.util.json.JSONObject; diff --git a/core/src/main/java/art/arcane/iris/core/pack/PackImageMapValidator.java b/core/src/main/java/art/arcane/iris/pack/PackImageMapValidator.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/pack/PackImageMapValidator.java rename to core/src/main/java/art/arcane/iris/pack/PackImageMapValidator.java index 39d95e2f2..50f754b77 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/PackImageMapValidator.java +++ b/core/src/main/java/art/arcane/iris/pack/PackImageMapValidator.java @@ -1,25 +1,25 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.image.CompiledIrisImageMap; -import art.arcane.iris.engine.image.IrisImageMapCompiler; -import art.arcane.iris.engine.image.IrisImageMapValidationException; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBiomeGeneratorLink; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisDimensionStack; -import art.arcane.iris.engine.object.IrisExpression; -import art.arcane.iris.engine.object.IrisGenerator; -import art.arcane.iris.engine.object.IrisImage; -import art.arcane.iris.engine.object.IrisImageMap; -import art.arcane.iris.engine.object.IrisImageMapApplication; -import art.arcane.iris.engine.object.IrisImageMapBinding; -import art.arcane.iris.engine.object.IrisImageMapMask; -import art.arcane.iris.engine.object.IrisImageMapOutOfBounds; -import art.arcane.iris.engine.object.IrisImageMapType; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisRange; -import art.arcane.iris.engine.object.IrisWorldBoundary; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.image.CompiledIrisImageMap; +import art.arcane.iris.generation.image.IrisImageMapCompiler; +import art.arcane.iris.generation.image.IrisImageMapValidationException; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiomeGeneratorLink; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisDimensionStack; +import art.arcane.iris.generation.noise.IrisExpression; +import art.arcane.iris.generation.noise.IrisGenerator; +import art.arcane.iris.generation.image.IrisImage; +import art.arcane.iris.generation.image.IrisImageMap; +import art.arcane.iris.generation.image.IrisImageMapApplication; +import art.arcane.iris.generation.image.IrisImageMapBinding; +import art.arcane.iris.generation.image.IrisImageMapMask; +import art.arcane.iris.generation.image.IrisImageMapOutOfBounds; +import art.arcane.iris.generation.image.IrisImageMapType; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.pack.value.IrisRange; +import art.arcane.iris.world.IrisWorldBoundary; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBlockState; diff --git a/core/src/main/java/art/arcane/iris/core/pack/PackJsonFieldChecks.java b/core/src/main/java/art/arcane/iris/pack/PackJsonFieldChecks.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/pack/PackJsonFieldChecks.java rename to core/src/main/java/art/arcane/iris/pack/PackJsonFieldChecks.java index c397a5890..c03a7705f 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/PackJsonFieldChecks.java +++ b/core/src/main/java/art/arcane/iris/pack/PackJsonFieldChecks.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import art.arcane.volmlib.util.json.JSONObject; diff --git a/core/src/main/java/art/arcane/iris/core/pack/PackLootValidator.java b/core/src/main/java/art/arcane/iris/pack/PackLootValidator.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/pack/PackLootValidator.java rename to core/src/main/java/art/arcane/iris/pack/PackLootValidator.java index 102eca458..13b301f07 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/PackLootValidator.java +++ b/core/src/main/java/art/arcane/iris/pack/PackLootValidator.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; -import art.arcane.iris.engine.object.IrisLoot; -import art.arcane.iris.engine.object.IrisLootReference; -import art.arcane.iris.engine.object.IrisLootTable; +import art.arcane.iris.world.loot.IrisLoot; +import art.arcane.iris.world.loot.IrisLootReference; +import art.arcane.iris.world.loot.IrisLootTable; import art.arcane.volmlib.util.json.JSONArray; import art.arcane.volmlib.util.json.JSONObject; diff --git a/core/src/main/java/art/arcane/iris/core/pack/PackNativeStructureValidator.java b/core/src/main/java/art/arcane/iris/pack/PackNativeStructureValidator.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/pack/PackNativeStructureValidator.java rename to core/src/main/java/art/arcane/iris/pack/PackNativeStructureValidator.java index 85dcc62c2..17665ed0d 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/PackNativeStructureValidator.java +++ b/core/src/main/java/art/arcane/iris/pack/PackNativeStructureValidator.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; -import art.arcane.iris.engine.object.ObjectPlaceMode; +import art.arcane.iris.structure.object.ObjectPlaceMode; import art.arcane.volmlib.util.json.JSONArray; import art.arcane.volmlib.util.json.JSONObject; diff --git a/core/src/main/java/art/arcane/iris/core/pack/PackObjectSurfaceValidator.java b/core/src/main/java/art/arcane/iris/pack/PackObjectSurfaceValidator.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/pack/PackObjectSurfaceValidator.java rename to core/src/main/java/art/arcane/iris/pack/PackObjectSurfaceValidator.java index 7b7e8c8a6..304ef7f5a 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/PackObjectSurfaceValidator.java +++ b/core/src/main/java/art/arcane/iris/pack/PackObjectSurfaceValidator.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import art.arcane.volmlib.util.json.JSONArray; import art.arcane.volmlib.util.json.JSONObject; diff --git a/core/src/main/java/art/arcane/iris/core/pack/PackResourceCleanup.java b/core/src/main/java/art/arcane/iris/pack/PackResourceCleanup.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/pack/PackResourceCleanup.java rename to core/src/main/java/art/arcane/iris/pack/PackResourceCleanup.java index b352c1275..a575e6150 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/PackResourceCleanup.java +++ b/core/src/main/java/art/arcane/iris/pack/PackResourceCleanup.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import art.arcane.iris.spi.IrisLogging; diff --git a/core/src/main/java/art/arcane/iris/core/pack/PackRiverBank3DValidator.java b/core/src/main/java/art/arcane/iris/pack/PackRiverBank3DValidator.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/pack/PackRiverBank3DValidator.java rename to core/src/main/java/art/arcane/iris/pack/PackRiverBank3DValidator.java index f7f882adb..dda13993e 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/PackRiverBank3DValidator.java +++ b/core/src/main/java/art/arcane/iris/pack/PackRiverBank3DValidator.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; -import art.arcane.iris.engine.object.IrisRiverBank3DConfig; +import art.arcane.iris.generation.hydrology.IrisRiverBank3DConfig; import art.arcane.volmlib.util.json.JSONObject; import com.google.gson.Gson; import com.google.gson.JsonParseException; diff --git a/core/src/main/java/art/arcane/iris/core/pack/PackSpawnValidator.java b/core/src/main/java/art/arcane/iris/pack/PackSpawnValidator.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/pack/PackSpawnValidator.java rename to core/src/main/java/art/arcane/iris/pack/PackSpawnValidator.java index 7e2d1f470..4d040e7b9 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/PackSpawnValidator.java +++ b/core/src/main/java/art/arcane/iris/pack/PackSpawnValidator.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; -import art.arcane.iris.engine.object.IrisBiomeCustomSpawnType; +import art.arcane.iris.generation.biome.IrisBiomeCustomSpawnType; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformEntityType; diff --git a/core/src/main/java/art/arcane/iris/core/pack/PackStaticObjectValidator.java b/core/src/main/java/art/arcane/iris/pack/PackStaticObjectValidator.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/pack/PackStaticObjectValidator.java rename to core/src/main/java/art/arcane/iris/pack/PackStaticObjectValidator.java index 225feab6c..29069d2ef 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/PackStaticObjectValidator.java +++ b/core/src/main/java/art/arcane/iris/pack/PackStaticObjectValidator.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; -import art.arcane.iris.engine.object.IrisObjectPlacementScaleInterpolator; -import art.arcane.iris.engine.object.IrisStaticObject; +import art.arcane.iris.structure.object.IrisObjectPlacementScaleInterpolator; +import art.arcane.iris.structure.object.IrisStaticObject; import art.arcane.volmlib.util.json.JSONArray; import art.arcane.volmlib.util.json.JSONObject; diff --git a/core/src/main/java/art/arcane/iris/core/pack/PackStructurePlacementValidator.java b/core/src/main/java/art/arcane/iris/pack/PackStructurePlacementValidator.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/pack/PackStructurePlacementValidator.java rename to core/src/main/java/art/arcane/iris/pack/PackStructurePlacementValidator.java index cd820a12b..e007d62bf 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/PackStructurePlacementValidator.java +++ b/core/src/main/java/art/arcane/iris/pack/PackStructurePlacementValidator.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; diff --git a/core/src/main/java/art/arcane/iris/core/pack/PackStyledRangeDefaultValidator.java b/core/src/main/java/art/arcane/iris/pack/PackStyledRangeDefaultValidator.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/pack/PackStyledRangeDefaultValidator.java rename to core/src/main/java/art/arcane/iris/pack/PackStyledRangeDefaultValidator.java index bbfa1abfb..9b903585c 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/PackStyledRangeDefaultValidator.java +++ b/core/src/main/java/art/arcane/iris/pack/PackStyledRangeDefaultValidator.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import art.arcane.volmlib.util.json.JSONArray; import art.arcane.volmlib.util.json.JSONObject; diff --git a/core/src/main/java/art/arcane/iris/core/pack/PackTerrain3DValidator.java b/core/src/main/java/art/arcane/iris/pack/PackTerrain3DValidator.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/pack/PackTerrain3DValidator.java rename to core/src/main/java/art/arcane/iris/pack/PackTerrain3DValidator.java index f3795126f..add3b7508 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/PackTerrain3DValidator.java +++ b/core/src/main/java/art/arcane/iris/pack/PackTerrain3DValidator.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; -import art.arcane.iris.engine.object.IrisTerrain3D; -import art.arcane.iris.engine.object.NoiseStyle; +import art.arcane.iris.generation.terrain.IrisTerrain3D; +import art.arcane.iris.generation.noise.NoiseStyle; import com.google.gson.Gson; import com.google.gson.JsonElement; import com.google.gson.JsonObject; diff --git a/core/src/main/java/art/arcane/iris/core/pack/PackValidationCache.java b/core/src/main/java/art/arcane/iris/pack/PackValidationCache.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/pack/PackValidationCache.java rename to core/src/main/java/art/arcane/iris/pack/PackValidationCache.java index b7f6cf473..81da1a065 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/PackValidationCache.java +++ b/core/src/main/java/art/arcane/iris/pack/PackValidationCache.java @@ -1,10 +1,10 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; -import art.arcane.iris.core.ServerConfigurator; -import art.arcane.iris.core.compat.CompatAction; -import art.arcane.iris.core.compat.CompatFinding; -import art.arcane.iris.core.compat.CompatRegistry; -import art.arcane.iris.engine.history.GenerationKernelRegistry; +import art.arcane.iris.pack.datapack.ServerConfigurator; +import art.arcane.iris.pack.validation.CompatAction; +import art.arcane.iris.pack.validation.CompatFinding; +import art.arcane.iris.pack.validation.CompatRegistry; +import art.arcane.iris.world.history.GenerationKernelRegistry; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; diff --git a/core/src/main/java/art/arcane/iris/core/pack/PackValidationIo.java b/core/src/main/java/art/arcane/iris/pack/PackValidationIo.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/pack/PackValidationIo.java rename to core/src/main/java/art/arcane/iris/pack/PackValidationIo.java index 8e6c73a01..45398da2f 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/PackValidationIo.java +++ b/core/src/main/java/art/arcane/iris/pack/PackValidationIo.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import art.arcane.volmlib.util.json.JSONObject; diff --git a/core/src/main/java/art/arcane/iris/core/pack/PackValidationRegistry.java b/core/src/main/java/art/arcane/iris/pack/PackValidationRegistry.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/pack/PackValidationRegistry.java rename to core/src/main/java/art/arcane/iris/pack/PackValidationRegistry.java index 03369ea53..d5e5bcbeb 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/PackValidationRegistry.java +++ b/core/src/main/java/art/arcane/iris/pack/PackValidationRegistry.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import java.io.IOException; import java.nio.file.Files; diff --git a/core/src/main/java/art/arcane/iris/core/pack/PackValidationResult.java b/core/src/main/java/art/arcane/iris/pack/PackValidationResult.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/pack/PackValidationResult.java rename to core/src/main/java/art/arcane/iris/pack/PackValidationResult.java index a9971a69d..4d39ab609 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/PackValidationResult.java +++ b/core/src/main/java/art/arcane/iris/pack/PackValidationResult.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; -import art.arcane.iris.core.compat.CompatFinding; +import art.arcane.iris.pack.validation.CompatFinding; import java.util.ArrayList; import java.util.Collections; diff --git a/core/src/main/java/art/arcane/iris/core/pack/PackValidator.java b/core/src/main/java/art/arcane/iris/pack/PackValidator.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/pack/PackValidator.java rename to core/src/main/java/art/arcane/iris/pack/PackValidator.java index e4174d44f..ef510e75a 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/PackValidator.java +++ b/core/src/main/java/art/arcane/iris/pack/PackValidator.java @@ -16,20 +16,20 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; -import art.arcane.iris.core.compat.CompatFinding; -import art.arcane.iris.core.compat.PackCompatReport; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisImage; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisObjectPlacement; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.matter.IrisMatterObject; +import art.arcane.iris.pack.validation.CompatFinding; +import art.arcane.iris.pack.validation.PackCompatReport; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.image.IrisImage; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.structure.object.matter.IrisMatterObject; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.volmlib.util.json.JSONObject; diff --git a/core/src/main/java/art/arcane/iris/core/pack/StructureGraphPackValidator.java b/core/src/main/java/art/arcane/iris/pack/StructureGraphPackValidator.java similarity index 93% rename from core/src/main/java/art/arcane/iris/core/pack/StructureGraphPackValidator.java rename to core/src/main/java/art/arcane/iris/pack/StructureGraphPackValidator.java index 7c5fe8692..e999df124 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/StructureGraphPackValidator.java +++ b/core/src/main/java/art/arcane/iris/pack/StructureGraphPackValidator.java @@ -16,22 +16,22 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; -import art.arcane.iris.engine.framework.PlacedStructurePiece; -import art.arcane.iris.engine.framework.StructureAssembler; -import art.arcane.iris.engine.framework.structure.IrisObjectFrameReader; -import art.arcane.iris.engine.framework.structure.StructureAssemblyResult; -import art.arcane.iris.engine.framework.structure.StructureGraphCompilation; -import art.arcane.iris.engine.framework.structure.StructureGraphCompiler; -import art.arcane.iris.engine.framework.structure.StructureGraphDiagnostic; -import art.arcane.iris.engine.framework.structure.StructureGraphAssemblySample; -import art.arcane.iris.engine.framework.structure.StructureGraphResolver; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisJigsawPool; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.IrisStructure; +import art.arcane.iris.structure.placement.PlacedStructurePiece; +import art.arcane.iris.structure.placement.StructureAssembler; +import art.arcane.iris.structure.graph.IrisObjectFrameReader; +import art.arcane.iris.structure.graph.StructureAssemblyResult; +import art.arcane.iris.structure.graph.StructureGraphCompilation; +import art.arcane.iris.structure.graph.StructureGraphCompiler; +import art.arcane.iris.structure.graph.StructureGraphDiagnostic; +import art.arcane.iris.structure.graph.StructureGraphAssemblySample; +import art.arcane.iris.structure.graph.StructureGraphResolver; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.jigsaw.IrisJigsawPool; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.structure.placement.IrisStructure; import art.arcane.volmlib.util.math.RNG; import com.google.gson.Gson; import com.google.gson.GsonBuilder; diff --git a/core/src/main/java/art/arcane/iris/core/pack/StructurePackageClosure.java b/core/src/main/java/art/arcane/iris/pack/StructurePackageClosure.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/pack/StructurePackageClosure.java rename to core/src/main/java/art/arcane/iris/pack/StructurePackageClosure.java index 08526c246..ab121fa3c 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/StructurePackageClosure.java +++ b/core/src/main/java/art/arcane/iris/pack/StructurePackageClosure.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; -import art.arcane.iris.core.structure.authoring.StructureResourceBundle; +import art.arcane.iris.structure.authoring.StructureResourceBundle; import art.arcane.volmlib.util.io.IO; import art.arcane.volmlib.util.json.JSONArray; import art.arcane.volmlib.util.json.JSONObject; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/CoordinatorDirectory.java b/core/src/main/java/art/arcane/iris/pack/datapack/CoordinatorDirectory.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/datapack/CoordinatorDirectory.java rename to core/src/main/java/art/arcane/iris/pack/datapack/CoordinatorDirectory.java index c596644f3..0e6dff8a7 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/CoordinatorDirectory.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/CoordinatorDirectory.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; final class CoordinatorDirectory { diff --git a/core/src/main/java/art/arcane/iris/core/datapack/CoordinatorEditable.java b/core/src/main/java/art/arcane/iris/pack/datapack/CoordinatorEditable.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/datapack/CoordinatorEditable.java rename to core/src/main/java/art/arcane/iris/pack/datapack/CoordinatorEditable.java index 48c684d9d..441e07036 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/CoordinatorEditable.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/CoordinatorEditable.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; final class CoordinatorEditable { diff --git a/core/src/main/java/art/arcane/iris/core/datapack/CoordinatorJournal.java b/core/src/main/java/art/arcane/iris/pack/datapack/CoordinatorJournal.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/datapack/CoordinatorJournal.java rename to core/src/main/java/art/arcane/iris/pack/datapack/CoordinatorJournal.java index 49529e55c..7d7065ff2 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/CoordinatorJournal.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/CoordinatorJournal.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; import java.util.ArrayList; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/CoordinatorOperation.java b/core/src/main/java/art/arcane/iris/pack/datapack/CoordinatorOperation.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/datapack/CoordinatorOperation.java rename to core/src/main/java/art/arcane/iris/pack/datapack/CoordinatorOperation.java index 8638f9e29..1a7fc700d 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/CoordinatorOperation.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/CoordinatorOperation.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; enum CoordinatorOperation { diff --git a/core/src/main/java/art/arcane/iris/core/datapack/CoordinatorPhase.java b/core/src/main/java/art/arcane/iris/pack/datapack/CoordinatorPhase.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/datapack/CoordinatorPhase.java rename to core/src/main/java/art/arcane/iris/pack/datapack/CoordinatorPhase.java index 9ee762e90..38ebcf549 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/CoordinatorPhase.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/CoordinatorPhase.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; enum CoordinatorPhase { diff --git a/core/src/main/java/art/arcane/iris/core/datapack/DatapackArchive.java b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackArchive.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/datapack/DatapackArchive.java rename to core/src/main/java/art/arcane/iris/pack/datapack/DatapackArchive.java index 952aff3b5..fd05dbc80 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/DatapackArchive.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackArchive.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; -import art.arcane.iris.core.datapack.DatapackIngestService.Entry; +import art.arcane.iris.pack.datapack.DatapackIngestService.Entry; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.core.datapack.ModrinthResolver.ResolvedDatapack; +import art.arcane.iris.pack.datapack.ModrinthResolver.ResolvedDatapack; import art.arcane.volmlib.util.io.IO; import art.arcane.volmlib.util.io.ZipUtils; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/DatapackCoordinator.java b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackCoordinator.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/datapack/DatapackCoordinator.java rename to core/src/main/java/art/arcane/iris/pack/datapack/DatapackCoordinator.java index 116e5552a..3d6565683 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/DatapackCoordinator.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackCoordinator.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; import java.io.IOException; import java.nio.file.Path; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/DatapackCoordinatorResolution.java b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackCoordinatorResolution.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/datapack/DatapackCoordinatorResolution.java rename to core/src/main/java/art/arcane/iris/pack/datapack/DatapackCoordinatorResolution.java index f40e7240d..cbfb8b018 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/DatapackCoordinatorResolution.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackCoordinatorResolution.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; -import art.arcane.iris.core.datapack.DatapackIngestService.Entry; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.structure.authoring.StructureTransactionWriter; +import art.arcane.iris.pack.datapack.DatapackIngestService.Entry; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.structure.authoring.StructureTransactionWriter; import art.arcane.volmlib.util.io.IO; import java.io.File; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/DatapackImportSources.java b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackImportSources.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/datapack/DatapackImportSources.java rename to core/src/main/java/art/arcane/iris/pack/datapack/DatapackImportSources.java index 5fee31d21..b7d8c80c5 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/DatapackImportSources.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackImportSources.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.volmlib.util.collection.KList; import java.io.File; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/DatapackIngestService.java b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackIngestService.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/datapack/DatapackIngestService.java rename to core/src/main/java/art/arcane/iris/pack/datapack/DatapackIngestService.java index 71b82d927..526e406cb 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/DatapackIngestService.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackIngestService.java @@ -16,21 +16,20 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.core.IrisStartupValidation; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.ServerConfigurator; -import art.arcane.iris.core.datapack.ModrinthResolver.ResolvedDatapack; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.nms.MinecraftVersion; -import art.arcane.iris.core.project.IrisProject; -import art.arcane.iris.core.project.IrisCodeWorkspace; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.util.common.format.C; -import art.arcane.iris.util.common.plugin.VolmitSender; +import art.arcane.iris.world.IrisStartupValidation; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.pack.datapack.ModrinthResolver.ResolvedDatapack; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.platform.bukkit.nms.MinecraftVersion; +import art.arcane.iris.studio.workspace.IrisProject; +import art.arcane.iris.studio.workspace.IrisCodeWorkspace; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.localization.C; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.io.IO; import org.bukkit.Bukkit; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/DatapackInstall.java b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackInstall.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/datapack/DatapackInstall.java rename to core/src/main/java/art/arcane/iris/pack/datapack/DatapackInstall.java index 24d223272..a1686213e 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/DatapackInstall.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackInstall.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; -import art.arcane.iris.core.datapack.DatapackIngestService.Entry; +import art.arcane.iris.pack.datapack.DatapackIngestService.Entry; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.io.IO; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/DatapackInstallPlanner.java b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackInstallPlanner.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/datapack/DatapackInstallPlanner.java rename to core/src/main/java/art/arcane/iris/pack/datapack/DatapackInstallPlanner.java index 443fd8163..7bdfc5c4c 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/DatapackInstallPlanner.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackInstallPlanner.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; -import art.arcane.iris.core.datapack.DatapackIngestService.Entry; +import art.arcane.iris.pack.datapack.DatapackIngestService.Entry; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.io.IO; diff --git a/core/src/main/java/art/arcane/iris/core/DatapackInstallResult.java b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackInstallResult.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/DatapackInstallResult.java rename to core/src/main/java/art/arcane/iris/pack/datapack/DatapackInstallResult.java index 42ca4bbba..f6b1cb4ff 100644 --- a/core/src/main/java/art/arcane/iris/core/DatapackInstallResult.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackInstallResult.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core; +package art.arcane.iris.pack.datapack; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/DatapackManifestStore.java b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackManifestStore.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/datapack/DatapackManifestStore.java rename to core/src/main/java/art/arcane/iris/pack/datapack/DatapackManifestStore.java index 42582dc03..2ab143277 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/DatapackManifestStore.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackManifestStore.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; -import art.arcane.iris.core.datapack.DatapackIngestService.Entry; +import art.arcane.iris.pack.datapack.DatapackIngestService.Entry; import art.arcane.iris.spi.IrisLogging; import java.io.File; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/DatapackOwnership.java b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackOwnership.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/datapack/DatapackOwnership.java rename to core/src/main/java/art/arcane/iris/pack/datapack/DatapackOwnership.java index c40e36913..3ca276497 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/DatapackOwnership.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackOwnership.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; -import art.arcane.iris.core.datapack.DatapackIngestService.Entry; +import art.arcane.iris.pack.datapack.DatapackIngestService.Entry; import art.arcane.volmlib.util.io.IO; import java.io.File; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/DatapackPackMetadata.java b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackPackMetadata.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/datapack/DatapackPackMetadata.java rename to core/src/main/java/art/arcane/iris/pack/datapack/DatapackPackMetadata.java index 4a529e39c..d767a0948 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/DatapackPackMetadata.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackPackMetadata.java @@ -16,12 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; -import art.arcane.iris.core.ServerConfigurator; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisImportedStructureControl; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.structure.nativegen.IrisImportedStructureControl; import art.arcane.volmlib.util.io.IO; import com.google.gson.JsonElement; import com.google.gson.JsonObject; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/DatapackRemoval.java b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackRemoval.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/datapack/DatapackRemoval.java rename to core/src/main/java/art/arcane/iris/pack/datapack/DatapackRemoval.java index 3d5d4afa7..f2a173d70 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/DatapackRemoval.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackRemoval.java @@ -16,17 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; -import art.arcane.iris.core.datapack.DatapackIngestService.Entry; +import art.arcane.iris.pack.datapack.DatapackIngestService.Entry; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.core.ServerConfigurator; -import art.arcane.iris.core.structure.authoring.StructureKey; -import art.arcane.iris.core.structure.authoring.StructureSource; -import art.arcane.iris.core.structure.authoring.StructureTransactionWriter; -import art.arcane.iris.util.common.format.C; -import art.arcane.iris.util.common.plugin.VolmitSender; +import art.arcane.iris.structure.authoring.StructureKey; +import art.arcane.iris.structure.authoring.StructureSource; +import art.arcane.iris.structure.authoring.StructureTransactionWriter; +import art.arcane.iris.localization.C; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; import java.io.File; import java.io.IOException; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/DatapackScratchRecovery.java b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackScratchRecovery.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/datapack/DatapackScratchRecovery.java rename to core/src/main/java/art/arcane/iris/pack/datapack/DatapackScratchRecovery.java index be8a88aad..dfad5d0ad 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/DatapackScratchRecovery.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackScratchRecovery.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; import java.io.File; import java.io.IOException; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/DatapackStagingGuard.java b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackStagingGuard.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/datapack/DatapackStagingGuard.java rename to core/src/main/java/art/arcane/iris/pack/datapack/DatapackStagingGuard.java index ac7033637..503dfc00a 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/DatapackStagingGuard.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackStagingGuard.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; -import art.arcane.iris.core.datapack.DatapackIngestService.Report; -import art.arcane.iris.core.datapack.DatapackIngestService.Entry; +import art.arcane.iris.pack.datapack.DatapackIngestService.Report; +import art.arcane.iris.pack.datapack.DatapackIngestService.Entry; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.format.C; -import art.arcane.iris.util.common.plugin.VolmitSender; +import art.arcane.iris.localization.C; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; import art.arcane.volmlib.util.collection.KList; import java.io.File; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/DatapackStagingReapply.java b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackStagingReapply.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/datapack/DatapackStagingReapply.java rename to core/src/main/java/art/arcane/iris/pack/datapack/DatapackStagingReapply.java index df6404551..d4001b5d7 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/DatapackStagingReapply.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackStagingReapply.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; -import art.arcane.iris.core.datapack.DatapackIngestService.ReapplyOutcome; -import art.arcane.iris.core.datapack.DatapackIngestService.Entry; +import art.arcane.iris.pack.datapack.DatapackIngestService.ReapplyOutcome; +import art.arcane.iris.pack.datapack.DatapackIngestService.Entry; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.volmlib.util.collection.KList; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/DatapackStartupValidation.java b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackStartupValidation.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/datapack/DatapackStartupValidation.java rename to core/src/main/java/art/arcane/iris/pack/datapack/DatapackStartupValidation.java index 838776064..cdfb98226 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/DatapackStartupValidation.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackStartupValidation.java @@ -16,14 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; -import art.arcane.iris.core.datapack.DatapackIngestService.Entry; +import art.arcane.iris.pack.datapack.DatapackIngestService.Entry; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.core.IrisStartupValidation; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.ServerConfigurator; +import art.arcane.iris.world.IrisStartupValidation; +import art.arcane.iris.configuration.IrisSettings; import art.arcane.volmlib.util.collection.KList; import java.io.File; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/DatapackStructureImports.java b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackStructureImports.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/datapack/DatapackStructureImports.java rename to core/src/main/java/art/arcane/iris/pack/datapack/DatapackStructureImports.java index 3e033cdc2..8e92b94ee 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/DatapackStructureImports.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackStructureImports.java @@ -16,20 +16,19 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; -import art.arcane.iris.core.datapack.DatapackIngestService.Entry; +import art.arcane.iris.pack.datapack.DatapackIngestService.Entry; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.platform.bukkit.BukkitPlatform; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.ServerConfigurator; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.structure.BulkStructureImporter; -import art.arcane.iris.core.structure.StructureImporter; -import art.arcane.iris.core.structure.authoring.StructureKey; -import art.arcane.iris.core.structure.authoring.StructureSource; -import art.arcane.iris.core.structure.authoring.StructureTransactionWriter; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.structure.BulkStructureImporter; +import art.arcane.iris.structure.StructureImporter; +import art.arcane.iris.structure.authoring.StructureKey; +import art.arcane.iris.structure.authoring.StructureSource; +import art.arcane.iris.structure.authoring.StructureTransactionWriter; import java.io.File; import java.io.IOException; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/DatapackStructureScopeIndex.java b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackStructureScopeIndex.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/datapack/DatapackStructureScopeIndex.java rename to core/src/main/java/art/arcane/iris/pack/datapack/DatapackStructureScopeIndex.java index 43a3b379d..0aa1e3162 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/DatapackStructureScopeIndex.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackStructureScopeIndex.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; import java.util.HashMap; import java.util.HashSet; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/DatapackSupport.java b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackSupport.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/datapack/DatapackSupport.java rename to core/src/main/java/art/arcane/iris/pack/datapack/DatapackSupport.java index 42be7a288..27501bec9 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/DatapackSupport.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackSupport.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.io.Durability; -import art.arcane.iris.util.common.plugin.VolmitSender; +import art.arcane.iris.world.storage.Durability; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; import com.google.gson.Gson; import com.google.gson.GsonBuilder; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/DatapackTransactions.java b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackTransactions.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/datapack/DatapackTransactions.java rename to core/src/main/java/art/arcane/iris/pack/datapack/DatapackTransactions.java index 714795e4d..8c6d7ad12 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/DatapackTransactions.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/DatapackTransactions.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; -import art.arcane.iris.core.datapack.DatapackIngestService.Entry; -import art.arcane.iris.core.structure.authoring.StructureTransactionWriter; +import art.arcane.iris.pack.datapack.DatapackIngestService.Entry; +import art.arcane.iris.structure.authoring.StructureTransactionWriter; import java.io.File; import java.io.IOException; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/DirectoryDeleter.java b/core/src/main/java/art/arcane/iris/pack/datapack/DirectoryDeleter.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/datapack/DirectoryDeleter.java rename to core/src/main/java/art/arcane/iris/pack/datapack/DirectoryDeleter.java index c194879ea..ad0c38d86 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/DirectoryDeleter.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/DirectoryDeleter.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; import java.io.File; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/DirectoryMove.java b/core/src/main/java/art/arcane/iris/pack/datapack/DirectoryMove.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/datapack/DirectoryMove.java rename to core/src/main/java/art/arcane/iris/pack/datapack/DirectoryMove.java index e9c5f4261..f25edd3f8 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/DirectoryMove.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/DirectoryMove.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; import java.io.File; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/DirectoryRemoval.java b/core/src/main/java/art/arcane/iris/pack/datapack/DirectoryRemoval.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/datapack/DirectoryRemoval.java rename to core/src/main/java/art/arcane/iris/pack/datapack/DirectoryRemoval.java index 55c74fcf1..a3ef8a790 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/DirectoryRemoval.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/DirectoryRemoval.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; import java.io.File; import java.io.IOException; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/DownloadResult.java b/core/src/main/java/art/arcane/iris/pack/datapack/DownloadResult.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/datapack/DownloadResult.java rename to core/src/main/java/art/arcane/iris/pack/datapack/DownloadResult.java index 26b1428f7..d7b25a1eb 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/DownloadResult.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/DownloadResult.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; record DownloadResult(boolean notModified, String etag, String lastModified) { diff --git a/core/src/main/java/art/arcane/iris/core/datapack/EditableImportRemoval.java b/core/src/main/java/art/arcane/iris/pack/datapack/EditableImportRemoval.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/datapack/EditableImportRemoval.java rename to core/src/main/java/art/arcane/iris/pack/datapack/EditableImportRemoval.java index e87aa7f72..e1980d45a 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/EditableImportRemoval.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/EditableImportRemoval.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.structure.authoring.StructureTransactionWriter; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.structure.authoring.StructureTransactionWriter; import java.io.IOException; import java.nio.file.Path; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/InstallExecution.java b/core/src/main/java/art/arcane/iris/pack/datapack/InstallExecution.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/datapack/InstallExecution.java rename to core/src/main/java/art/arcane/iris/pack/datapack/InstallExecution.java index b59960b29..0f37b473e 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/InstallExecution.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/InstallExecution.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; -import art.arcane.iris.core.datapack.DatapackIngestService.Entry; +import art.arcane.iris.pack.datapack.DatapackIngestService.Entry; import java.io.File; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/InstallPlan.java b/core/src/main/java/art/arcane/iris/pack/datapack/InstallPlan.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/datapack/InstallPlan.java rename to core/src/main/java/art/arcane/iris/pack/datapack/InstallPlan.java index 38071dfa9..40d6337fb 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/InstallPlan.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/InstallPlan.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; import java.io.File; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/InstallResult.java b/core/src/main/java/art/arcane/iris/pack/datapack/InstallResult.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/datapack/InstallResult.java rename to core/src/main/java/art/arcane/iris/pack/datapack/InstallResult.java index 9e59552dd..efe55cce2 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/InstallResult.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/InstallResult.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; record InstallResult(boolean changed) { diff --git a/core/src/main/java/art/arcane/iris/core/IrisDatapackCompiler.java b/core/src/main/java/art/arcane/iris/pack/datapack/IrisDatapackCompiler.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/IrisDatapackCompiler.java rename to core/src/main/java/art/arcane/iris/pack/datapack/IrisDatapackCompiler.java index 2301be54d..235648cc8 100644 --- a/core/src/main/java/art/arcane/iris/core/IrisDatapackCompiler.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/IrisDatapackCompiler.java @@ -1,23 +1,25 @@ -package art.arcane.iris.core; +package art.arcane.iris.pack.datapack; + +import art.arcane.iris.world.WorldSlotKey; import art.arcane.iris.BuildConstants; -import art.arcane.iris.core.lifecycle.BukkitWorldConfiguration.IrisGeneratorBinding; -import art.arcane.iris.core.compat.ContentGate; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.core.nms.datapack.DataVersion; -import art.arcane.iris.core.nms.datapack.IDataFixer; -import art.arcane.iris.core.pack.AtomicDirectoryPublisher; -import art.arcane.iris.core.pack.PackDirectoryResolver; -import art.arcane.iris.engine.history.GenerationEpoch; -import art.arcane.iris.engine.history.GenerationHistory; -import art.arcane.iris.engine.history.GenerationRegistryContract; -import art.arcane.iris.engine.history.GenerationRegistryContract.PhysicalResourceKey; -import art.arcane.iris.engine.history.GenerationRegistryContractFactory; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBiomeCustom; -import art.arcane.iris.engine.object.IrisCustomBiomeAliasResolver; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.world.lifecycle.BukkitWorldConfiguration.IrisGeneratorBinding; +import art.arcane.iris.pack.validation.ContentGate; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.platform.bukkit.nms.datapack.DataVersion; +import art.arcane.iris.platform.bukkit.nms.datapack.IDataFixer; +import art.arcane.iris.pack.AtomicDirectoryPublisher; +import art.arcane.iris.pack.PackDirectoryResolver; +import art.arcane.iris.world.history.GenerationEpoch; +import art.arcane.iris.world.history.GenerationHistory; +import art.arcane.iris.world.history.GenerationRegistryContract; +import art.arcane.iris.world.history.GenerationRegistryContract.PhysicalResourceKey; +import art.arcane.iris.world.history.GenerationRegistryContractFactory; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiomeCustom; +import art.arcane.iris.generation.biome.IrisCustomBiomeAliasResolver; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KSet; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/Manifest.java b/core/src/main/java/art/arcane/iris/pack/datapack/Manifest.java similarity index 94% rename from core/src/main/java/art/arcane/iris/core/datapack/Manifest.java rename to core/src/main/java/art/arcane/iris/pack/datapack/Manifest.java index 838c15977..a83a759c8 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/Manifest.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/Manifest.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; -import art.arcane.iris.core.datapack.DatapackIngestService.Entry; +import art.arcane.iris.pack.datapack.DatapackIngestService.Entry; import java.util.ArrayList; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/ManifestWrite.java b/core/src/main/java/art/arcane/iris/pack/datapack/ManifestWrite.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/datapack/ManifestWrite.java rename to core/src/main/java/art/arcane/iris/pack/datapack/ManifestWrite.java index faf904e59..2d531af0f 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/ManifestWrite.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/ManifestWrite.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; import java.io.IOException; import java.nio.file.Files; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/MetadataEntry.java b/core/src/main/java/art/arcane/iris/pack/datapack/MetadataEntry.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/datapack/MetadataEntry.java rename to core/src/main/java/art/arcane/iris/pack/datapack/MetadataEntry.java index c71ebb518..f1aa1baf8 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/MetadataEntry.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/MetadataEntry.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; import java.nio.file.Path; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/ModrinthResolver.java b/core/src/main/java/art/arcane/iris/pack/datapack/ModrinthResolver.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/datapack/ModrinthResolver.java rename to core/src/main/java/art/arcane/iris/pack/datapack/ModrinthResolver.java index 0b998ca41..91427e4d6 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/ModrinthResolver.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/ModrinthResolver.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; import com.google.gson.JsonArray; import com.google.gson.JsonElement; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/Ownership.java b/core/src/main/java/art/arcane/iris/pack/datapack/Ownership.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/datapack/Ownership.java rename to core/src/main/java/art/arcane/iris/pack/datapack/Ownership.java index fb52546fd..f7c507387 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/Ownership.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/Ownership.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; -import art.arcane.iris.core.datapack.DatapackIngestService.Entry; +import art.arcane.iris.pack.datapack.DatapackIngestService.Entry; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/PackResources.java b/core/src/main/java/art/arcane/iris/pack/datapack/PackResources.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/datapack/PackResources.java rename to core/src/main/java/art/arcane/iris/pack/datapack/PackResources.java index 88e81648f..ca4d3f4d0 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/PackResources.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/PackResources.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/PreparedEditableImport.java b/core/src/main/java/art/arcane/iris/pack/datapack/PreparedEditableImport.java similarity index 88% rename from core/src/main/java/art/arcane/iris/core/datapack/PreparedEditableImport.java rename to core/src/main/java/art/arcane/iris/pack/datapack/PreparedEditableImport.java index 64e553de9..5b85a0e67 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/PreparedEditableImport.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/PreparedEditableImport.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; -import art.arcane.iris.core.structure.authoring.StructureTransactionWriter; +import art.arcane.iris.structure.authoring.StructureTransactionWriter; import java.io.File; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/RemoveOutcome.java b/core/src/main/java/art/arcane/iris/pack/datapack/RemoveOutcome.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/datapack/RemoveOutcome.java rename to core/src/main/java/art/arcane/iris/pack/datapack/RemoveOutcome.java index 9400549d5..2834fe72a 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/RemoveOutcome.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/RemoveOutcome.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; enum RemoveOutcome { diff --git a/core/src/main/java/art/arcane/iris/core/ServerConfigurator.java b/core/src/main/java/art/arcane/iris/pack/datapack/ServerConfigurator.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/ServerConfigurator.java rename to core/src/main/java/art/arcane/iris/pack/datapack/ServerConfigurator.java index be8c06d86..59c101dd6 100644 --- a/core/src/main/java/art/arcane/iris/core/ServerConfigurator.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/ServerConfigurator.java @@ -16,32 +16,36 @@ * along with this program. If not, see . */ -package art.arcane.iris.core; +package art.arcane.iris.pack.datapack; + +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.world.IrisStartupValidation; +import art.arcane.iris.world.IrisWorldStorage; +import art.arcane.iris.world.IrisWorlds; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.core.datapack.DatapackIngestService; -import art.arcane.iris.core.datapack.DatapackIngestService.ReapplyOutcome; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.core.lifecycle.BukkitWorldConfiguration; -import art.arcane.iris.core.lifecycle.BukkitWorldConfiguration.IrisGeneratorBinding; -import art.arcane.iris.core.lifecycle.LifecycleOperationCoordinator; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.core.nms.datapack.DataVersion; -import art.arcane.iris.core.nms.datapack.IDataFixer; -import art.arcane.iris.core.pack.AtomicDirectoryPublisher; -import art.arcane.iris.core.pack.DefaultPackBootstrapProvisioner; -import art.arcane.iris.core.pack.PackDirectoryResolver; +import art.arcane.iris.pack.datapack.DatapackIngestService.ReapplyOutcome; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.world.lifecycle.BukkitWorldConfiguration; +import art.arcane.iris.world.lifecycle.BukkitWorldConfiguration.IrisGeneratorBinding; +import art.arcane.iris.world.lifecycle.LifecycleOperationCoordinator; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.platform.bukkit.nms.datapack.DataVersion; +import art.arcane.iris.platform.bukkit.nms.datapack.IDataFixer; +import art.arcane.iris.pack.AtomicDirectoryPublisher; +import art.arcane.iris.pack.DefaultPackBootstrapProvisioner; +import art.arcane.iris.pack.PackDirectoryResolver; import art.arcane.iris.platform.bukkit.BukkitPlatform; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBiomeCustom; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiomeCustom; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KSet; -import art.arcane.iris.util.common.misc.ServerProperties; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.platform.bootstrap.ServerProperties; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import lombok.NonNull; import org.bukkit.Bukkit; import org.bukkit.NamespacedKey; @@ -83,8 +87,8 @@ import java.util.concurrent.TimeUnit; import java.util.function.BiConsumer; import java.util.stream.Stream; -import art.arcane.iris.core.localization.BukkitRuntimeMessages; -import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.localization.BukkitRuntimeMessages; +import art.arcane.iris.localization.IrisLanguage; import art.arcane.volmlib.util.localization.MessageArgument; public class ServerConfigurator { private static final Object DATAPACK_INSTALL_LOCK = new Object(); diff --git a/core/src/main/java/art/arcane/iris/core/datapack/StagingInspection.java b/core/src/main/java/art/arcane/iris/pack/datapack/StagingInspection.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/datapack/StagingInspection.java rename to core/src/main/java/art/arcane/iris/pack/datapack/StagingInspection.java index aebfd1775..53857560e 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/StagingInspection.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/StagingInspection.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; record StagingInspection( diff --git a/core/src/main/java/art/arcane/iris/core/datapack/StartupValidationCache.java b/core/src/main/java/art/arcane/iris/pack/datapack/StartupValidationCache.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/datapack/StartupValidationCache.java rename to core/src/main/java/art/arcane/iris/pack/datapack/StartupValidationCache.java index 295dd3d53..d222a3501 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/StartupValidationCache.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/StartupValidationCache.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/core/datapack/VerifiedStagingInstall.java b/core/src/main/java/art/arcane/iris/pack/datapack/VerifiedStagingInstall.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/datapack/VerifiedStagingInstall.java rename to core/src/main/java/art/arcane/iris/pack/datapack/VerifiedStagingInstall.java index ec768d594..de4bd316c 100644 --- a/core/src/main/java/art/arcane/iris/core/datapack/VerifiedStagingInstall.java +++ b/core/src/main/java/art/arcane/iris/pack/datapack/VerifiedStagingInstall.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; -import art.arcane.iris.core.datapack.DatapackIngestService.Entry; +import art.arcane.iris.pack.datapack.DatapackIngestService.Entry; import java.io.File; import java.io.IOException; diff --git a/core/src/main/java/art/arcane/iris/core/loader/ImageResourceLoader.java b/core/src/main/java/art/arcane/iris/pack/loading/ImageResourceLoader.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/loader/ImageResourceLoader.java rename to core/src/main/java/art/arcane/iris/pack/loading/ImageResourceLoader.java index 8c4fcb7ab..e5905df7f 100644 --- a/core/src/main/java/art/arcane/iris/core/loader/ImageResourceLoader.java +++ b/core/src/main/java/art/arcane/iris/pack/loading/ImageResourceLoader.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.loader; +package art.arcane.iris.pack.loading; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.engine.image.IrisImageMapCompiler; -import art.arcane.iris.engine.object.IrisImage; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.generation.image.IrisImageMapCompiler; +import art.arcane.iris.generation.image.IrisImage; import art.arcane.volmlib.util.collection.KSet; import art.arcane.volmlib.util.data.KCache; import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; diff --git a/core/src/main/java/art/arcane/iris/core/loader/IrisData.java b/core/src/main/java/art/arcane/iris/pack/loading/IrisData.java similarity index 94% rename from core/src/main/java/art/arcane/iris/core/loader/IrisData.java rename to core/src/main/java/art/arcane/iris/pack/loading/IrisData.java index 8445c923b..47981f4cf 100644 --- a/core/src/main/java/art/arcane/iris/core/loader/IrisData.java +++ b/core/src/main/java/art/arcane/iris/pack/loading/IrisData.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.loader; +package art.arcane.iris.pack.loading; -import art.arcane.iris.core.compat.CompatStatus; -import art.arcane.iris.core.compat.ContentGate; -import art.arcane.iris.core.compat.PackCompatReport; +import art.arcane.iris.pack.validation.CompatStatus; +import art.arcane.iris.pack.validation.ContentGate; +import art.arcane.iris.pack.validation.PackCompatReport; import com.google.gson.ExclusionStrategy; import com.google.gson.FieldAttributes; import com.google.gson.Gson; @@ -34,49 +34,49 @@ import com.google.gson.stream.JsonToken; import com.google.gson.stream.JsonWriter; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.core.pack.PackDirectoryResolver; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.IrisStructureLocator; -import art.arcane.iris.engine.framework.structure.StructureGraphCatalog; -import art.arcane.iris.engine.history.GenerationPackFingerprint; -import art.arcane.iris.engine.history.GenerationRegistryContract; -import art.arcane.iris.engine.history.GenerationRegistryContractFactory; -import art.arcane.iris.core.structure.authoring.StructureRecoveryResult; -import art.arcane.iris.core.structure.authoring.StructureTransactionWriter; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBiomeCustom; +import art.arcane.iris.pack.PackDirectoryResolver; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.placement.IrisStructureLocator; +import art.arcane.iris.structure.graph.StructureGraphCatalog; +import art.arcane.iris.world.history.GenerationPackFingerprint; +import art.arcane.iris.world.history.GenerationRegistryContract; +import art.arcane.iris.world.history.GenerationRegistryContractFactory; +import art.arcane.iris.structure.authoring.StructureRecoveryResult; +import art.arcane.iris.structure.authoring.StructureTransactionWriter; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiomeCustom; import art.arcane.iris.spi.PlatformGenerationRegistry; -import art.arcane.iris.engine.object.IrisBlockData; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisEntity; -import art.arcane.iris.engine.object.IrisExpression; -import art.arcane.iris.engine.object.IrisObjectScale; -import art.arcane.iris.engine.object.IrisGenerator; -import art.arcane.iris.engine.object.IrisImage; -import art.arcane.iris.engine.object.IrisImageMap; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisJigsawPool; -import art.arcane.iris.engine.object.IrisLootTable; -import art.arcane.iris.engine.object.IrisMarker; -import art.arcane.iris.engine.object.IrisMod; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisSpawner; -import art.arcane.iris.engine.object.IrisStructure; -import art.arcane.iris.engine.object.annotations.Snippet; -import art.arcane.iris.engine.object.matter.IrisMatterObject; +import art.arcane.iris.generation.block.IrisBlockData; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.world.entity.IrisEntity; +import art.arcane.iris.generation.noise.IrisExpression; +import art.arcane.iris.structure.object.IrisObjectScale; +import art.arcane.iris.generation.noise.IrisGenerator; +import art.arcane.iris.generation.image.IrisImage; +import art.arcane.iris.generation.image.IrisImageMap; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.jigsaw.IrisJigsawPool; +import art.arcane.iris.world.loot.IrisLootTable; +import art.arcane.iris.world.entity.IrisMarker; +import art.arcane.iris.pack.mod.IrisMod; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.world.entity.IrisSpawner; +import art.arcane.iris.structure.placement.IrisStructure; +import art.arcane.iris.pack.schema.annotation.Snippet; +import art.arcane.iris.structure.object.matter.IrisMatterObject; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.mantle.flag.MantleFlagAdapter; import art.arcane.volmlib.util.mantle.flag.MantleFlag; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.common.parallel.BurstExecutor; -import art.arcane.iris.util.common.parallel.MultiBurst; -import art.arcane.iris.util.common.reflect.KeyedType; +import art.arcane.iris.generation.concurrent.BurstExecutor; +import art.arcane.iris.generation.concurrent.MultiBurst; +import art.arcane.iris.platform.reflect.KeyedType; import art.arcane.volmlib.util.scheduling.ChronoLatch; -import art.arcane.iris.util.common.scheduling.J; -import art.arcane.iris.util.project.context.IrisContext; +import art.arcane.iris.world.task.J; +import art.arcane.iris.generation.context.IrisContext; import lombok.AccessLevel; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/art/arcane/iris/core/loader/IrisRegistrant.java b/core/src/main/java/art/arcane/iris/pack/loading/IrisRegistrant.java similarity index 94% rename from core/src/main/java/art/arcane/iris/core/loader/IrisRegistrant.java rename to core/src/main/java/art/arcane/iris/pack/loading/IrisRegistrant.java index 7e3a15570..39f9918a2 100644 --- a/core/src/main/java/art/arcane/iris/core/loader/IrisRegistrant.java +++ b/core/src/main/java/art/arcane/iris/pack/loading/IrisRegistrant.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.loader; +package art.arcane.iris.pack.loading; -import art.arcane.iris.core.compat.CompatStatus; -import art.arcane.iris.core.compat.ContentGate; +import art.arcane.iris.pack.validation.CompatStatus; +import art.arcane.iris.pack.validation.ContentGate; import com.google.gson.GsonBuilder; import art.arcane.iris.spi.IrisLogging; import lombok.Data; diff --git a/core/src/main/java/art/arcane/iris/core/loader/JsonSchemaValidator.java b/core/src/main/java/art/arcane/iris/pack/loading/JsonSchemaValidator.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/loader/JsonSchemaValidator.java rename to core/src/main/java/art/arcane/iris/pack/loading/JsonSchemaValidator.java index 8857a35fa..a71e354b5 100644 --- a/core/src/main/java/art/arcane/iris/core/loader/JsonSchemaValidator.java +++ b/core/src/main/java/art/arcane/iris/pack/loading/JsonSchemaValidator.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.loader; +package art.arcane.iris.pack.loading; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.format.C; +import art.arcane.iris.localization.C; import art.arcane.volmlib.util.json.JSONObject; import com.google.gson.annotations.SerializedName; diff --git a/core/src/main/java/art/arcane/iris/core/loader/MatterObjectResourceLoader.java b/core/src/main/java/art/arcane/iris/pack/loading/MatterObjectResourceLoader.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/loader/MatterObjectResourceLoader.java rename to core/src/main/java/art/arcane/iris/pack/loading/MatterObjectResourceLoader.java index e08b70b83..c15ee8c5e 100644 --- a/core/src/main/java/art/arcane/iris/core/loader/MatterObjectResourceLoader.java +++ b/core/src/main/java/art/arcane/iris/pack/loading/MatterObjectResourceLoader.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.loader; +package art.arcane.iris.pack.loading; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.engine.object.matter.IrisMatterObject; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.structure.object.matter.IrisMatterObject; import art.arcane.volmlib.util.collection.KSet; import art.arcane.volmlib.util.data.KCache; import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; diff --git a/core/src/main/java/art/arcane/iris/core/loader/ObjectResourceLoader.java b/core/src/main/java/art/arcane/iris/pack/loading/ObjectResourceLoader.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/loader/ObjectResourceLoader.java rename to core/src/main/java/art/arcane/iris/pack/loading/ObjectResourceLoader.java index 9f7fc902e..54a594f45 100644 --- a/core/src/main/java/art/arcane/iris/core/loader/ObjectResourceLoader.java +++ b/core/src/main/java/art/arcane/iris/pack/loading/ObjectResourceLoader.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.loader; +package art.arcane.iris.pack.loading; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.engine.object.IrisObject; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.structure.object.IrisObject; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KSet; import art.arcane.volmlib.util.data.KCache; diff --git a/core/src/main/java/art/arcane/iris/core/loader/ResourceLoader.java b/core/src/main/java/art/arcane/iris/pack/loading/ResourceLoader.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/loader/ResourceLoader.java rename to core/src/main/java/art/arcane/iris/pack/loading/ResourceLoader.java index 0543e83b4..61173a8d1 100644 --- a/core/src/main/java/art/arcane/iris/core/loader/ResourceLoader.java +++ b/core/src/main/java/art/arcane/iris/pack/loading/ResourceLoader.java @@ -16,33 +16,33 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.loader; +package art.arcane.iris.pack.loading; import com.google.common.util.concurrent.AtomicDouble; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.project.SchemaBuilder; -import art.arcane.iris.core.pack.PackValidator; -import art.arcane.iris.engine.framework.PreservationRegistry; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.MeteredCache; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.pack.schema.SchemaBuilder; +import art.arcane.iris.pack.PackValidator; +import art.arcane.iris.generation.runtime.PreservationRegistry; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.MeteredCache; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KSet; import art.arcane.volmlib.util.data.KCache; -import art.arcane.iris.util.common.format.C; +import art.arcane.iris.localization.C; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.io.CustomOutputStream; import art.arcane.volmlib.util.io.IO; import art.arcane.volmlib.util.json.JSONArray; import art.arcane.volmlib.util.json.JSONObject; -import art.arcane.iris.util.common.parallel.BurstExecutor; -import art.arcane.iris.util.common.parallel.MultiBurst; +import art.arcane.iris.generation.concurrent.BurstExecutor; +import art.arcane.iris.generation.concurrent.MultiBurst; import art.arcane.volmlib.util.scheduling.ChronoLatch; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import lombok.Data; import lombok.EqualsAndHashCode; @@ -294,7 +294,7 @@ public class ResourceLoader implements MeteredCache { return walker.walk(frames -> frames .filter(f -> { String cn = f.getClassName(); - return !cn.startsWith("art.arcane.iris.core.loader.") + return !cn.startsWith("art.arcane.iris.pack.loading.") && !cn.startsWith("art.arcane.volmlib.util.data.") && !cn.startsWith("com.github.benmanes.caffeine."); }) diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisMod.java b/core/src/main/java/art/arcane/iris/pack/mod/IrisMod.java similarity index 73% rename from core/src/main/java/art/arcane/iris/engine/object/IrisMod.java rename to core/src/main/java/art/arcane/iris/pack/mod/IrisMod.java index 081de8ee3..df7291494 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisMod.java +++ b/core/src/main/java/art/arcane/iris/pack/mod/IrisMod.java @@ -16,18 +16,24 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.pack.mod; -import art.arcane.iris.core.compat.CompatStatus; -import art.arcane.iris.core.compat.ContentGate; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListResource; -import art.arcane.iris.engine.object.annotations.Required; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.pack.validation.CompatPools; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectReplace; + +import art.arcane.iris.pack.validation.CompatStatus; +import art.arcane.iris.pack.validation.ContentGate; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; +import art.arcane.iris.pack.schema.annotation.Required; import art.arcane.volmlib.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; @@ -38,73 +44,73 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @AllArgsConstructor @NoArgsConstructor -@Desc("Represents a pack modification schema") +@Description("Represents a pack modification schema") @Data @EqualsAndHashCode(callSuper = false) public class IrisMod extends IrisRegistrant { @MinNumber(2) @Required - @Desc("The human-readable name of this pack modification") + @Description("The human-readable name of this pack modification") private String name = "A Pack Modification"; - @Desc("The optional dimension load key this modification targets. An empty value does not restrict the target.") + @Description("The optional dimension load key this modification targets. An empty value does not restrict the target.") private String forDimension = ""; @MinNumber(-1) @MaxNumber(512) - @Desc("Override the fluid height. Otherwise set it to -1") + @Description("Override the fluid height. Otherwise set it to -1") private int overrideFluidHeight = -1; - @Desc("A list of biomes to remove") + @Description("A list of biomes to remove") @RegistryListResource(IrisBiome.class) @ArrayType(type = String.class, min = 1) private KList removeBiomes = new KList<>(); - @Desc("A list of objects to remove") + @Description("A list of objects to remove") @RegistryListResource(IrisObject.class) @ArrayType(type = String.class, min = 1) private KList removeObjects = new KList<>(); - @Desc("A list of regions to remove") + @Description("A list of regions to remove") @RegistryListResource(IrisRegion.class) @ArrayType(type = String.class, min = 1) private KList removeRegions = new KList<>(); - @Desc("A list of regions to inject") + @Description("A list of regions to inject") @RegistryListResource(IrisRegion.class) @ArrayType(type = String.class, min = 1) private KList injectRegions = new KList<>(); @ArrayType(min = 1, type = IrisModBiomeInjector.class) - @Desc("Inject biomes into existing regions") + @Description("Inject biomes into existing regions") private KList biomeInjectors = new KList<>(); @ArrayType(min = 1, type = IrisModBiomeReplacer.class) - @Desc("Replace biomes with other biomes") + @Description("Replace biomes with other biomes") private KList biomeReplacers = new KList<>(); @ArrayType(min = 1, type = IrisModObjectReplacer.class) - @Desc("Replace objects with other objects") + @Description("Replace objects with other objects") private KList objectReplacers = new KList<>(); @ArrayType(min = 1, type = IrisModObjectPlacementBiomeInjector.class) - @Desc("Inject placers into existing biomes") + @Description("Inject placers into existing biomes") private KList biomeObjectPlacementInjectors = new KList<>(); @ArrayType(min = 1, type = IrisModObjectPlacementRegionInjector.class) - @Desc("Inject placers into existing regions") + @Description("Inject placers into existing regions") private KList regionObjectPlacementInjectors = new KList<>(); @ArrayType(min = 1, type = IrisModRegionReplacer.class) - @Desc("Replace regions with other regions") + @Description("Replace regions with other regions") private KList regionReplacers = new KList<>(); @ArrayType(min = 1, type = IrisObjectReplace.class) - @Desc("Replace blocks with other blocks") + @Description("Replace blocks with other blocks") private KList blockReplacers = new KList<>(); @ArrayType(min = 1, type = IrisModNoiseStyleReplacer.class) - @Desc("Replace noise styles with other styles") + @Description("Replace noise styles with other styles") private KList styleReplacers = new KList<>(); /** diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisModBiomeInjector.java b/core/src/main/java/art/arcane/iris/pack/mod/IrisModBiomeInjector.java similarity index 70% rename from core/src/main/java/art/arcane/iris/engine/object/IrisModBiomeInjector.java rename to core/src/main/java/art/arcane/iris/pack/mod/IrisModBiomeInjector.java index 2129c460b..0c7ba9c68 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisModBiomeInjector.java +++ b/core/src/main/java/art/arcane/iris/pack/mod/IrisModBiomeInjector.java @@ -16,13 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.pack.mod; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.RegistryListResource; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisRegion; + +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.volmlib.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; @@ -33,16 +36,16 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("A biome injector") +@Description("A biome injector") @Data public class IrisModBiomeInjector { @Required - @Desc("The region to find") + @Description("The region to find") @RegistryListResource(IrisRegion.class) private String region = ""; @Required - @Desc("A biome to inject into the region") + @Description("A biome to inject into the region") @RegistryListResource(IrisBiome.class) @ArrayType(type = String.class, min = 1) private KList inject = new KList<>(); diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisModBiomeReplacer.java b/core/src/main/java/art/arcane/iris/pack/mod/IrisModBiomeReplacer.java similarity index 72% rename from core/src/main/java/art/arcane/iris/engine/object/IrisModBiomeReplacer.java rename to core/src/main/java/art/arcane/iris/pack/mod/IrisModBiomeReplacer.java index 4d6323a15..267357cbc 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisModBiomeReplacer.java +++ b/core/src/main/java/art/arcane/iris/pack/mod/IrisModBiomeReplacer.java @@ -16,13 +16,15 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.pack.mod; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.RegistryListResource; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.generation.biome.IrisBiome; + +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.volmlib.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; @@ -33,17 +35,17 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("A biome replacer") +@Description("A biome replacer") @Data public class IrisModBiomeReplacer { @Required - @Desc("A list of biomes to find") + @Description("A list of biomes to find") @RegistryListResource(IrisBiome.class) @ArrayType(type = String.class, min = 1) private KList find = new KList<>(); @Required - @Desc("A biome to replace it with") + @Description("A biome to replace it with") @RegistryListResource(IrisBiome.class) private String replace = ""; } diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisModNoiseStyleReplacer.java b/core/src/main/java/art/arcane/iris/pack/mod/IrisModNoiseStyleReplacer.java similarity index 65% rename from core/src/main/java/art/arcane/iris/engine/object/IrisModNoiseStyleReplacer.java rename to core/src/main/java/art/arcane/iris/pack/mod/IrisModNoiseStyleReplacer.java index bbe3611cb..ced7d53cd 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisModNoiseStyleReplacer.java +++ b/core/src/main/java/art/arcane/iris/pack/mod/IrisModNoiseStyleReplacer.java @@ -16,11 +16,14 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.pack.mod; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.generation.noise.NoiseStyle; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -30,18 +33,18 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("A noise style replacer") +@Description("A noise style replacer") @Data public class IrisModNoiseStyleReplacer { @Required - @Desc("A noise style to find") + @Description("A noise style to find") private NoiseStyle find = NoiseStyle.IRIS; @Required - @Desc("If replaceTypeOnly is set to true, Iris will keep the existing generator style and only replace the type itself. Otherwise it will use the replace tag for every style using the find type.") + @Description("If replaceTypeOnly is set to true, Iris will keep the existing generator style and only replace the type itself. Otherwise it will use the replace tag for every style using the find type.") private boolean replaceTypeOnly = false; @Required - @Desc("A noise style to replace it with") + @Description("A noise style to replace it with") private IrisGeneratorStyle replace = new IrisGeneratorStyle(); } diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisModObjectPlacementBiomeInjector.java b/core/src/main/java/art/arcane/iris/pack/mod/IrisModObjectPlacementBiomeInjector.java similarity index 69% rename from core/src/main/java/art/arcane/iris/engine/object/IrisModObjectPlacementBiomeInjector.java rename to core/src/main/java/art/arcane/iris/pack/mod/IrisModObjectPlacementBiomeInjector.java index 8c1cfd0e9..7bdf59b08 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisModObjectPlacementBiomeInjector.java +++ b/core/src/main/java/art/arcane/iris/pack/mod/IrisModObjectPlacementBiomeInjector.java @@ -16,13 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.pack.mod; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.RegistryListResource; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.structure.object.IrisObjectPlacement; + +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.volmlib.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; @@ -33,16 +36,16 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("An object placement injector") +@Description("An object placement injector") @Data public class IrisModObjectPlacementBiomeInjector { @Required - @Desc("The biome to find") + @Description("The biome to find") @RegistryListResource(IrisBiome.class) private String biome = ""; @Required - @Desc("Object placements to inject into the biome") + @Description("Object placements to inject into the biome") @ArrayType(type = IrisObjectPlacement.class, min = 1) private KList place = new KList<>(); } diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisModObjectPlacementRegionInjector.java b/core/src/main/java/art/arcane/iris/pack/mod/IrisModObjectPlacementRegionInjector.java similarity index 69% rename from core/src/main/java/art/arcane/iris/engine/object/IrisModObjectPlacementRegionInjector.java rename to core/src/main/java/art/arcane/iris/pack/mod/IrisModObjectPlacementRegionInjector.java index d9121abf2..0b2ca9930 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisModObjectPlacementRegionInjector.java +++ b/core/src/main/java/art/arcane/iris/pack/mod/IrisModObjectPlacementRegionInjector.java @@ -16,13 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.pack.mod; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.RegistryListResource; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.structure.object.IrisObjectPlacement; + +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.volmlib.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; @@ -33,16 +36,16 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("An object placement injector") +@Description("An object placement injector") @Data public class IrisModObjectPlacementRegionInjector { @Required - @Desc("The region to find") + @Description("The region to find") @RegistryListResource(IrisRegion.class) private String biome = ""; @Required - @Desc("Object placements to inject into the region") + @Description("Object placements to inject into the region") @ArrayType(type = IrisObjectPlacement.class, min = 1) private KList place = new KList<>(); } diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisModObjectReplacer.java b/core/src/main/java/art/arcane/iris/pack/mod/IrisModObjectReplacer.java similarity index 72% rename from core/src/main/java/art/arcane/iris/engine/object/IrisModObjectReplacer.java rename to core/src/main/java/art/arcane/iris/pack/mod/IrisModObjectReplacer.java index 176f580ba..d7cf02af7 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisModObjectReplacer.java +++ b/core/src/main/java/art/arcane/iris/pack/mod/IrisModObjectReplacer.java @@ -16,13 +16,15 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.pack.mod; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.RegistryListResource; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.structure.object.IrisObject; + +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.volmlib.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; @@ -33,17 +35,17 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("An object replacer") +@Description("An object replacer") @Data public class IrisModObjectReplacer { @Required - @Desc("A list of objects to find") + @Description("A list of objects to find") @RegistryListResource(IrisObject.class) @ArrayType(type = String.class, min = 1) private KList find = new KList<>(); @Required - @Desc("An object to replace it with") + @Description("An object to replace it with") @RegistryListResource(IrisObject.class) private String replace = ""; } diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisModRegionReplacer.java b/core/src/main/java/art/arcane/iris/pack/mod/IrisModRegionReplacer.java similarity index 72% rename from core/src/main/java/art/arcane/iris/engine/object/IrisModRegionReplacer.java rename to core/src/main/java/art/arcane/iris/pack/mod/IrisModRegionReplacer.java index 67ac742fe..8091b537c 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisModRegionReplacer.java +++ b/core/src/main/java/art/arcane/iris/pack/mod/IrisModRegionReplacer.java @@ -16,13 +16,15 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.pack.mod; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.RegistryListResource; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.generation.terrain.IrisRegion; + +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.volmlib.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; @@ -33,17 +35,17 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("A region replacer") +@Description("A region replacer") @Data public class IrisModRegionReplacer { @Required - @Desc("A list of regions to find") + @Description("A list of regions to find") @RegistryListResource(IrisRegion.class) @ArrayType(type = String.class, min = 1) private KList find = new KList<>(); @Required - @Desc("A region to replace it with") + @Description("A region to replace it with") @RegistryListResource(IrisRegion.class) private String replace = ""; } diff --git a/core/src/main/java/art/arcane/iris/core/project/SchemaBlockStates.java b/core/src/main/java/art/arcane/iris/pack/schema/SchemaBlockStates.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/project/SchemaBlockStates.java rename to core/src/main/java/art/arcane/iris/pack/schema/SchemaBlockStates.java index 6d9f49148..7164224c3 100644 --- a/core/src/main/java/art/arcane/iris/core/project/SchemaBlockStates.java +++ b/core/src/main/java/art/arcane/iris/pack/schema/SchemaBlockStates.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.project; +package art.arcane.iris.pack.schema; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBlockProperty; diff --git a/core/src/main/java/art/arcane/iris/core/project/SchemaBuilder.java b/core/src/main/java/art/arcane/iris/pack/schema/SchemaBuilder.java similarity index 87% rename from core/src/main/java/art/arcane/iris/core/project/SchemaBuilder.java rename to core/src/main/java/art/arcane/iris/pack/schema/SchemaBuilder.java index bf197724a..44fefdf2a 100644 --- a/core/src/main/java/art/arcane/iris/core/project/SchemaBuilder.java +++ b/core/src/main/java/art/arcane/iris/pack/schema/SchemaBuilder.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.project; +package art.arcane.iris.pack.schema; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.json.JSONArray; @@ -201,8 +201,8 @@ public class SchemaBuilder { return "object"; } - if (!c.isAnnotationPresent(Desc.class) && c.getCanonicalName().startsWith("art.arcane.iris.")) { - warnings.addIfMissing("Unsupported Type: " + c.getCanonicalName() + " Did you forget @Desc?"); + if (!c.isAnnotationPresent(Description.class) && c.getCanonicalName().startsWith("art.arcane.iris.")) { + warnings.addIfMissing("Unsupported Type: " + c.getCanonicalName() + " Did you forget @Description?"); } return "object"; @@ -210,21 +210,21 @@ public class SchemaBuilder { String getFieldDescription(Field r) { - if (r.isAnnotationPresent(Desc.class)) { - return r.getDeclaredAnnotation(Desc.class).value(); + if (r.isAnnotationPresent(Description.class)) { + return r.getDeclaredAnnotation(Description.class).value(); } - warnings.addIfMissing("Missing @Desc on field " + r.getName() + " (" + r.getType() + ") in " + r.getDeclaringClass().getCanonicalName()); + warnings.addIfMissing("Missing @Description on field " + r.getName() + " (" + r.getType() + ") in " + r.getDeclaringClass().getCanonicalName()); return "No Field Description"; } String getDescription(Class r) { - if (r.isAnnotationPresent(Desc.class)) { - return r.getDeclaredAnnotation(Desc.class).value(); + if (r.isAnnotationPresent(Description.class)) { + return r.getDeclaredAnnotation(Description.class).value(); } if (!r.isPrimitive() && !r.equals(KList.class) && !r.equals(KMap.class) && r.getCanonicalName().startsWith("art.arcane.")) { - warnings.addIfMissing("Missing @Desc on " + r.getSimpleName() + " in " + (r.getDeclaringClass() != null ? r.getDeclaringClass().getCanonicalName() : " NOSRC")); + warnings.addIfMissing("Missing @Description on " + r.getSimpleName() + " in " + (r.getDeclaringClass() != null ? r.getDeclaringClass().getCanonicalName() : " NOSRC")); } return ""; } diff --git a/core/src/main/java/art/arcane/iris/core/project/SchemaEnums.java b/core/src/main/java/art/arcane/iris/pack/schema/SchemaEnums.java similarity index 92% rename from core/src/main/java/art/arcane/iris/core/project/SchemaEnums.java rename to core/src/main/java/art/arcane/iris/pack/schema/SchemaEnums.java index 3fe493a15..209144103 100644 --- a/core/src/main/java/art/arcane/iris/core/project/SchemaEnums.java +++ b/core/src/main/java/art/arcane/iris/pack/schema/SchemaEnums.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.project; +package art.arcane.iris.pack.schema; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.json.JSONArray; import art.arcane.volmlib.util.json.JSONObject; @@ -65,14 +65,14 @@ final class SchemaEnums { @NotNull String addEnum(Class type, JSONObject prop, KList description, T[] values, Function function) { JSONArray a = new JSONArray(); - boolean advanced = type.isAnnotationPresent(Desc.class); + boolean advanced = type.isAnnotationPresent(Description.class); for (T gg : values) { if (advanced) { try { JSONObject j = new JSONObject(); String name = function.apply(gg); j.put("const", name); - Desc dd = type.getField(name).getAnnotation(Desc.class); + Description dd = type.getField(name).getAnnotation(Description.class); String desc = dd == null ? ("No Description for " + name) : dd.value(); j.put("description", desc); j.put("x-intellij-html-description", desc.replace("\n", "
")); diff --git a/core/src/main/java/art/arcane/iris/core/project/SchemaKeyedTypes.java b/core/src/main/java/art/arcane/iris/pack/schema/SchemaKeyedTypes.java similarity index 91% rename from core/src/main/java/art/arcane/iris/core/project/SchemaKeyedTypes.java rename to core/src/main/java/art/arcane/iris/pack/schema/SchemaKeyedTypes.java index 6026c96e1..5b0653ffa 100644 --- a/core/src/main/java/art/arcane/iris/core/project/SchemaKeyedTypes.java +++ b/core/src/main/java/art/arcane/iris/pack/schema/SchemaKeyedTypes.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.project; +package art.arcane.iris.pack.schema; -import art.arcane.iris.util.common.reflect.KeyedType; +import art.arcane.iris.platform.reflect.KeyedType; final class SchemaKeyedTypes { private SchemaKeyedTypes() { diff --git a/core/src/main/java/art/arcane/iris/core/project/SchemaPropertyBuilder.java b/core/src/main/java/art/arcane/iris/pack/schema/SchemaPropertyBuilder.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/project/SchemaPropertyBuilder.java rename to core/src/main/java/art/arcane/iris/pack/schema/SchemaPropertyBuilder.java index d9c77bf9f..04f7b2572 100644 --- a/core/src/main/java/art/arcane/iris/core/project/SchemaPropertyBuilder.java +++ b/core/src/main/java/art/arcane/iris/pack/schema/SchemaPropertyBuilder.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.project; +package art.arcane.iris.pack.schema; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryMapBlockState; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryMapBlockState; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.json.JSONObject; diff --git a/core/src/main/java/art/arcane/iris/core/project/SchemaRegistryCatalog.java b/core/src/main/java/art/arcane/iris/pack/schema/SchemaRegistryCatalog.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/project/SchemaRegistryCatalog.java rename to core/src/main/java/art/arcane/iris/pack/schema/SchemaRegistryCatalog.java index 706c6fc24..2f9992f8d 100644 --- a/core/src/main/java/art/arcane/iris/core/project/SchemaRegistryCatalog.java +++ b/core/src/main/java/art/arcane/iris/pack/schema/SchemaRegistryCatalog.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.project; +package art.arcane.iris.pack.schema; import art.arcane.iris.spi.CapabilityProbe; import art.arcane.iris.spi.IrisLogging; diff --git a/core/src/main/java/art/arcane/iris/core/project/SchemaRegistryProperties.java b/core/src/main/java/art/arcane/iris/pack/schema/SchemaRegistryProperties.java similarity index 92% rename from core/src/main/java/art/arcane/iris/core/project/SchemaRegistryProperties.java rename to core/src/main/java/art/arcane/iris/pack/schema/SchemaRegistryProperties.java index 9b445a51c..81a74900d 100644 --- a/core/src/main/java/art/arcane/iris/core/project/SchemaRegistryProperties.java +++ b/core/src/main/java/art/arcane/iris/pack/schema/SchemaRegistryProperties.java @@ -16,26 +16,26 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.project; +package art.arcane.iris.pack.schema; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.core.structure.StructureSchemaKeys; -import art.arcane.iris.engine.framework.ListFunction; -import art.arcane.iris.engine.object.annotations.RegistryListBiome; -import art.arcane.iris.engine.object.annotations.RegistryListBlockType; -import art.arcane.iris.engine.object.annotations.RegistryListEnchantment; -import art.arcane.iris.engine.object.annotations.RegistryListEntityType; -import art.arcane.iris.engine.object.annotations.RegistryListFont; -import art.arcane.iris.engine.object.annotations.RegistryListFunction; -import art.arcane.iris.engine.object.annotations.RegistryListItemType; -import art.arcane.iris.engine.object.annotations.RegistryListNativeJigsawPool; -import art.arcane.iris.engine.object.annotations.RegistryListPotionEffect; -import art.arcane.iris.engine.object.annotations.RegistryListResource; -import art.arcane.iris.engine.object.annotations.RegistryListSpecialEntity; -import art.arcane.iris.engine.object.annotations.RegistryListStructure; -import art.arcane.iris.engine.object.annotations.RegistryListVanillaStructure; -import art.arcane.iris.engine.object.annotations.RegistryListVanillaStructureSet; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.structure.StructureSchemaKeys; +import art.arcane.iris.generation.runtime.ListFunction; +import art.arcane.iris.pack.schema.annotation.RegistryListBiome; +import art.arcane.iris.pack.schema.annotation.RegistryListBlockType; +import art.arcane.iris.pack.schema.annotation.RegistryListEnchantment; +import art.arcane.iris.pack.schema.annotation.RegistryListEntityType; +import art.arcane.iris.pack.schema.annotation.RegistryListFont; +import art.arcane.iris.pack.schema.annotation.RegistryListFunction; +import art.arcane.iris.pack.schema.annotation.RegistryListItemType; +import art.arcane.iris.pack.schema.annotation.RegistryListNativeJigsawPool; +import art.arcane.iris.pack.schema.annotation.RegistryListPotionEffect; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; +import art.arcane.iris.pack.schema.annotation.RegistryListSpecialEntity; +import art.arcane.iris.pack.schema.annotation.RegistryListStructure; +import art.arcane.iris.pack.schema.annotation.RegistryListVanillaStructure; +import art.arcane.iris.pack.schema.annotation.RegistryListVanillaStructureSet; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.json.JSONArray; import art.arcane.volmlib.util.json.JSONObject; diff --git a/core/src/main/java/art/arcane/iris/engine/object/annotations/ArrayType.java b/core/src/main/java/art/arcane/iris/pack/schema/annotation/ArrayType.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/object/annotations/ArrayType.java rename to core/src/main/java/art/arcane/iris/pack/schema/annotation/ArrayType.java index 8c07ecbe1..d650216da 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/annotations/ArrayType.java +++ b/core/src/main/java/art/arcane/iris/pack/schema/annotation/ArrayType.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.annotations; +package art.arcane.iris.pack.schema.annotation; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/art/arcane/iris/engine/object/annotations/DependsOn.java b/core/src/main/java/art/arcane/iris/pack/schema/annotation/DependsOn.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/object/annotations/DependsOn.java rename to core/src/main/java/art/arcane/iris/pack/schema/annotation/DependsOn.java index 05c175a76..96389378d 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/annotations/DependsOn.java +++ b/core/src/main/java/art/arcane/iris/pack/schema/annotation/DependsOn.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.annotations; +package art.arcane.iris.pack.schema.annotation; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/art/arcane/iris/engine/object/annotations/MaxNumber.java b/core/src/main/java/art/arcane/iris/pack/schema/annotation/MaxNumber.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/object/annotations/MaxNumber.java rename to core/src/main/java/art/arcane/iris/pack/schema/annotation/MaxNumber.java index a50844724..1140eb2f3 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/annotations/MaxNumber.java +++ b/core/src/main/java/art/arcane/iris/pack/schema/annotation/MaxNumber.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.annotations; +package art.arcane.iris.pack.schema.annotation; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/art/arcane/iris/engine/object/annotations/MinNumber.java b/core/src/main/java/art/arcane/iris/pack/schema/annotation/MinNumber.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/object/annotations/MinNumber.java rename to core/src/main/java/art/arcane/iris/pack/schema/annotation/MinNumber.java index 1e286d941..203fdc8bd 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/annotations/MinNumber.java +++ b/core/src/main/java/art/arcane/iris/pack/schema/annotation/MinNumber.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.annotations; +package art.arcane.iris.pack.schema.annotation; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListBiome.java b/core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListBiome.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListBiome.java rename to core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListBiome.java index 538c1b367..519e98f48 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListBiome.java +++ b/core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListBiome.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.annotations; +package art.arcane.iris.pack.schema.annotation; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListBlockType.java b/core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListBlockType.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListBlockType.java rename to core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListBlockType.java index 9c698782d..8bb9f7736 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListBlockType.java +++ b/core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListBlockType.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.annotations; +package art.arcane.iris.pack.schema.annotation; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListEnchantment.java b/core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListEnchantment.java similarity index 88% rename from core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListEnchantment.java rename to core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListEnchantment.java index 918fe7343..310e91554 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListEnchantment.java +++ b/core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListEnchantment.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.object.annotations; +package art.arcane.iris.pack.schema.annotation; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListEntityType.java b/core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListEntityType.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListEntityType.java rename to core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListEntityType.java index 74473f2c5..2882f1729 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListEntityType.java +++ b/core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListEntityType.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.annotations; +package art.arcane.iris.pack.schema.annotation; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListFont.java b/core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListFont.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListFont.java rename to core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListFont.java index 83a8dc660..83201e6cf 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListFont.java +++ b/core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListFont.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.annotations; +package art.arcane.iris.pack.schema.annotation; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListFunction.java b/core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListFunction.java similarity index 82% rename from core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListFunction.java rename to core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListFunction.java index d1157b77a..bca173a57 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListFunction.java +++ b/core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListFunction.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.object.annotations; +package art.arcane.iris.pack.schema.annotation; -import art.arcane.iris.engine.framework.ListFunction; +import art.arcane.iris.generation.runtime.ListFunction; import art.arcane.volmlib.util.collection.KList; import java.lang.annotation.Retention; diff --git a/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListItemType.java b/core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListItemType.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListItemType.java rename to core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListItemType.java index b1ff189dd..b754a6f96 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListItemType.java +++ b/core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListItemType.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.annotations; +package art.arcane.iris.pack.schema.annotation; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListNativeJigsawPool.java b/core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListNativeJigsawPool.java similarity index 88% rename from core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListNativeJigsawPool.java rename to core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListNativeJigsawPool.java index 8fcf6d18d..fbb82419c 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListNativeJigsawPool.java +++ b/core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListNativeJigsawPool.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.object.annotations; +package art.arcane.iris.pack.schema.annotation; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListPotionEffect.java b/core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListPotionEffect.java similarity index 88% rename from core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListPotionEffect.java rename to core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListPotionEffect.java index 9b8493c8f..dce7fc960 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListPotionEffect.java +++ b/core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListPotionEffect.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.object.annotations; +package art.arcane.iris.pack.schema.annotation; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListResource.java b/core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListResource.java similarity index 92% rename from core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListResource.java rename to core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListResource.java index 7f8e40b19..e9c66a4f5 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListResource.java +++ b/core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListResource.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.annotations; +package art.arcane.iris.pack.schema.annotation; -import art.arcane.iris.core.loader.IrisRegistrant; +import art.arcane.iris.pack.loading.IrisRegistrant; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListSpecialEntity.java b/core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListSpecialEntity.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListSpecialEntity.java rename to core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListSpecialEntity.java index 528c33c47..5622f822f 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListSpecialEntity.java +++ b/core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListSpecialEntity.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.annotations; +package art.arcane.iris.pack.schema.annotation; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListStructure.java b/core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListStructure.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListStructure.java rename to core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListStructure.java index 8f985907c..6be707403 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListStructure.java +++ b/core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListStructure.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.annotations; +package art.arcane.iris.pack.schema.annotation; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListVanillaStructure.java b/core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListVanillaStructure.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListVanillaStructure.java rename to core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListVanillaStructure.java index 58bd66442..8f8201fda 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListVanillaStructure.java +++ b/core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListVanillaStructure.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.annotations; +package art.arcane.iris.pack.schema.annotation; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListVanillaStructureSet.java b/core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListVanillaStructureSet.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListVanillaStructureSet.java rename to core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListVanillaStructureSet.java index e877e6ff5..f49c78bdc 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListVanillaStructureSet.java +++ b/core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryListVanillaStructureSet.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.annotations; +package art.arcane.iris.pack.schema.annotation; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryMapBlockState.java b/core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryMapBlockState.java similarity index 85% rename from core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryMapBlockState.java rename to core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryMapBlockState.java index c313daf93..4984d6d72 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryMapBlockState.java +++ b/core/src/main/java/art/arcane/iris/pack/schema/annotation/RegistryMapBlockState.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.object.annotations; +package art.arcane.iris.pack.schema.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/core/src/main/java/art/arcane/iris/engine/object/annotations/Required.java b/core/src/main/java/art/arcane/iris/pack/schema/annotation/Required.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/object/annotations/Required.java rename to core/src/main/java/art/arcane/iris/pack/schema/annotation/Required.java index a449f470c..fc0539213 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/annotations/Required.java +++ b/core/src/main/java/art/arcane/iris/pack/schema/annotation/Required.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.annotations; +package art.arcane.iris.pack.schema.annotation; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/art/arcane/iris/engine/object/annotations/Snippet.java b/core/src/main/java/art/arcane/iris/pack/schema/annotation/Snippet.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/object/annotations/Snippet.java rename to core/src/main/java/art/arcane/iris/pack/schema/annotation/Snippet.java index 980e818bd..c62d6059e 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/annotations/Snippet.java +++ b/core/src/main/java/art/arcane/iris/pack/schema/annotation/Snippet.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object.annotations; +package art.arcane.iris.pack.schema.annotation; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/art/arcane/iris/engine/object/annotations/functions/ComponentFlagFunction.java b/core/src/main/java/art/arcane/iris/pack/schema/annotation/functions/ComponentFlagFunction.java similarity index 76% rename from core/src/main/java/art/arcane/iris/engine/object/annotations/functions/ComponentFlagFunction.java rename to core/src/main/java/art/arcane/iris/pack/schema/annotation/functions/ComponentFlagFunction.java index eabc3086e..1fe399296 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/annotations/functions/ComponentFlagFunction.java +++ b/core/src/main/java/art/arcane/iris/pack/schema/annotation/functions/ComponentFlagFunction.java @@ -1,11 +1,11 @@ -package art.arcane.iris.engine.object.annotations.functions; +package art.arcane.iris.pack.schema.annotation.functions; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.ListFunction; -import art.arcane.iris.engine.mantle.ComponentFlag; -import art.arcane.iris.engine.mantle.MantleComponent; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.ListFunction; +import art.arcane.iris.generation.mantle.ComponentFlag; +import art.arcane.iris.generation.mantle.MantleComponent; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.io.JarScanner; import art.arcane.volmlib.util.mantle.flag.MantleFlag; @@ -27,7 +27,7 @@ public class ComponentFlagFunction implements ListFunction> { public KList apply(IrisData data) { var engine = data.getEngine(); if (engine != null) return engine.getMantle().getComponentFlags().toStringList(); - JarScanner scanner = new JarScanner(IrisPlatforms.get().pluginJar(), "art.arcane.iris.engine.mantle.components"); + JarScanner scanner = new JarScanner(IrisPlatforms.get().pluginJar(), "art.arcane.iris.generation.mantle"); J.attempt(scanner::scan); return scanner.getClasses() .stream() diff --git a/core/src/main/java/art/arcane/iris/engine/object/annotations/functions/LootTableKeyFunction.java b/core/src/main/java/art/arcane/iris/pack/schema/annotation/functions/LootTableKeyFunction.java similarity index 75% rename from core/src/main/java/art/arcane/iris/engine/object/annotations/functions/LootTableKeyFunction.java rename to core/src/main/java/art/arcane/iris/pack/schema/annotation/functions/LootTableKeyFunction.java index 37107e219..894e5b66b 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/annotations/functions/LootTableKeyFunction.java +++ b/core/src/main/java/art/arcane/iris/pack/schema/annotation/functions/LootTableKeyFunction.java @@ -1,7 +1,7 @@ -package art.arcane.iris.engine.object.annotations.functions; +package art.arcane.iris.pack.schema.annotation.functions; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.ListFunction; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.ListFunction; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.volmlib.util.collection.KList; diff --git a/core/src/main/java/art/arcane/iris/core/compat/CompatAction.java b/core/src/main/java/art/arcane/iris/pack/validation/CompatAction.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/compat/CompatAction.java rename to core/src/main/java/art/arcane/iris/pack/validation/CompatAction.java index 644026884..96781d575 100644 --- a/core/src/main/java/art/arcane/iris/core/compat/CompatAction.java +++ b/core/src/main/java/art/arcane/iris/pack/validation/CompatAction.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package art.arcane.iris.core.compat; +package art.arcane.iris.pack.validation; import java.util.Locale; diff --git a/core/src/main/java/art/arcane/iris/core/compat/CompatFinding.java b/core/src/main/java/art/arcane/iris/pack/validation/CompatFinding.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/compat/CompatFinding.java rename to core/src/main/java/art/arcane/iris/pack/validation/CompatFinding.java index c535523e5..42f6bf539 100644 --- a/core/src/main/java/art/arcane/iris/core/compat/CompatFinding.java +++ b/core/src/main/java/art/arcane/iris/pack/validation/CompatFinding.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package art.arcane.iris.core.compat; +package art.arcane.iris.pack.validation; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/object/CompatPools.java b/core/src/main/java/art/arcane/iris/pack/validation/CompatPools.java similarity index 91% rename from core/src/main/java/art/arcane/iris/engine/object/CompatPools.java rename to core/src/main/java/art/arcane/iris/pack/validation/CompatPools.java index 4a0e65e46..440a7eed5 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/CompatPools.java +++ b/core/src/main/java/art/arcane/iris/pack/validation/CompatPools.java @@ -16,14 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.pack.validation; -import art.arcane.iris.core.compat.CompatAction; -import art.arcane.iris.core.compat.CompatFinding; -import art.arcane.iris.core.compat.CompatStatus; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.core.loader.ResourceLoader; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.pack.loading.ResourceLoader; import art.arcane.volmlib.util.collection.KList; import java.util.ArrayList; @@ -37,7 +34,7 @@ import java.util.List; *

* Surviving entries keep their declaration order, so only the removed entries change what a pool picks. */ -final class CompatPools { +public final class CompatPools { private CompatPools() { } @@ -51,7 +48,7 @@ final class CompatPools { * * @param field the JSON field the keys came from, used for the finding detail ({@code landBiomes[2] key}) */ - static KList load(ResourceLoader loader, + public static KList load(ResourceLoader loader, List keys, IrisData data, String subjectType, @@ -84,7 +81,7 @@ final class CompatPools { } /** The surviving keys of a reference pool, in declaration order. */ - static KList surviving(ResourceLoader loader, + public static KList surviving(ResourceLoader loader, List keys, IrisData data, String subjectType, @@ -93,7 +90,7 @@ final class CompatPools { return surviving(loader, keys, data, subjectType, subjectKey, field, null); } - static KList surviving(ResourceLoader loader, + public static KList surviving(ResourceLoader loader, List keys, IrisData data, String subjectType, @@ -133,7 +130,7 @@ final class CompatPools { * Records one DROPPED finding for a reference to an excluded registrant, reusing the registry and key of the * child's exclusion cause. Returns null when the child carries no cause to attribute the drop to. */ - static CompatFinding drop(IrisData data, + public static CompatFinding drop(IrisData data, IrisRegistrant child, String subjectType, String subjectKey, @@ -160,7 +157,7 @@ final class CompatPools { * The EXCLUDED status for a container whose required pool lost every entry. Returns {@code base} untouched when no * cause was collected, so a container that never declared the pool is not excluded for being empty. */ - static CompatStatus cascade(IrisData data, + public static CompatStatus cascade(IrisData data, CompatStatus base, List causes, String subjectType, @@ -181,7 +178,7 @@ final class CompatPools { } /** The findings on a status that dropped an entry, used as the cause set of a cascade. */ - static List droppedReasons(CompatStatus status) { + public static List droppedReasons(CompatStatus status) { List dropped = new ArrayList<>(); if (status == null) { diff --git a/core/src/main/java/art/arcane/iris/core/compat/CompatRegistry.java b/core/src/main/java/art/arcane/iris/pack/validation/CompatRegistry.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/compat/CompatRegistry.java rename to core/src/main/java/art/arcane/iris/pack/validation/CompatRegistry.java index 161086600..e3dd0ef49 100644 --- a/core/src/main/java/art/arcane/iris/core/compat/CompatRegistry.java +++ b/core/src/main/java/art/arcane/iris/pack/validation/CompatRegistry.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package art.arcane.iris.core.compat; +package art.arcane.iris.pack.validation; import java.util.Locale; diff --git a/core/src/main/java/art/arcane/iris/core/compat/CompatStatus.java b/core/src/main/java/art/arcane/iris/pack/validation/CompatStatus.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/compat/CompatStatus.java rename to core/src/main/java/art/arcane/iris/pack/validation/CompatStatus.java index 148a7033c..986a995fc 100644 --- a/core/src/main/java/art/arcane/iris/core/compat/CompatStatus.java +++ b/core/src/main/java/art/arcane/iris/pack/validation/CompatStatus.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package art.arcane.iris.core.compat; +package art.arcane.iris.pack.validation; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/core/compat/CompatWalker.java b/core/src/main/java/art/arcane/iris/pack/validation/CompatWalker.java similarity index 91% rename from core/src/main/java/art/arcane/iris/core/compat/CompatWalker.java rename to core/src/main/java/art/arcane/iris/pack/validation/CompatWalker.java index c6c8c40e4..3563d3e37 100644 --- a/core/src/main/java/art/arcane/iris/core/compat/CompatWalker.java +++ b/core/src/main/java/art/arcane/iris/pack/validation/CompatWalker.java @@ -15,21 +15,29 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package art.arcane.iris.core.compat; +package art.arcane.iris.pack.validation; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.engine.object.IrisBlockData; -import art.arcane.iris.engine.object.IrisObjectPlacement; -import art.arcane.iris.engine.object.IrisStaticObject; -import art.arcane.iris.engine.object.annotations.RegistryListBiome; -import art.arcane.iris.engine.object.annotations.RegistryListBlockType; -import art.arcane.iris.engine.object.annotations.RegistryListEnchantment; -import art.arcane.iris.engine.object.annotations.RegistryListEntityType; -import art.arcane.iris.engine.object.annotations.RegistryListItemType; -import art.arcane.iris.engine.object.annotations.RegistryListPotionEffect; -import art.arcane.iris.engine.object.annotations.RegistryListResource; -import art.arcane.iris.engine.object.annotations.RegistryListVanillaStructure; -import art.arcane.iris.engine.object.annotations.RegistryMapBlockState; +import art.arcane.iris.world.entity.IrisEntity; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.structure.object.IrisObjectReplace; +import art.arcane.iris.structure.object.IrisObjectLoot; +import art.arcane.iris.structure.object.IrisObjectVanillaLoot; +import art.arcane.iris.structure.object.IrisObjectMarker; +import art.arcane.iris.world.loot.IrisBlockDrops; +import art.arcane.iris.generation.decoration.IrisDecorator; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.generation.block.IrisBlockData; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.structure.object.IrisStaticObject; +import art.arcane.iris.pack.schema.annotation.RegistryListBiome; +import art.arcane.iris.pack.schema.annotation.RegistryListBlockType; +import art.arcane.iris.pack.schema.annotation.RegistryListEnchantment; +import art.arcane.iris.pack.schema.annotation.RegistryListEntityType; +import art.arcane.iris.pack.schema.annotation.RegistryListItemType; +import art.arcane.iris.pack.schema.annotation.RegistryListPotionEffect; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; +import art.arcane.iris.pack.schema.annotation.RegistryListVanillaStructure; +import art.arcane.iris.pack.schema.annotation.RegistryMapBlockState; import art.arcane.iris.spi.IrisLogging; import java.lang.reflect.Constructor; @@ -60,22 +68,21 @@ import java.util.concurrent.ConcurrentHashMap; */ final class CompatWalker { private static final String IRIS_PACKAGE = "art.arcane.iris."; - private static final String OBJECT_PACKAGE = "art.arcane.iris.engine.object."; private static final int MAX_BACKUP_DEPTH = 8; private static final Map, ClassPlan> PLANS = new ConcurrentHashMap<>(); // Annotated fields whose key defines the registrant itself: missing means the registrant is excluded. private static final Set EXCLUSION_SITES = Set.of( - OBJECT_PACKAGE + "IrisEntity#type", - OBJECT_PACKAGE + "IrisBiome#derivative"); + IrisEntity.class.getName() + "#type", + IrisBiome.class.getName() + "#derivative"); // Block lists that only select which existing blocks to act on; a missing key there matches nothing and is harmless. private static final Set MATCH_ONLY = Set.of( - OBJECT_PACKAGE + "IrisObjectReplace#find", - OBJECT_PACKAGE + "IrisObjectLoot#filter", - OBJECT_PACKAGE + "IrisObjectVanillaLoot#filter", - OBJECT_PACKAGE + "IrisObjectMarker#mark", - OBJECT_PACKAGE + "IrisBlockDrops#blocks", - OBJECT_PACKAGE + "IrisDecorator#whitelist", - OBJECT_PACKAGE + "IrisDecorator#blacklist"); + IrisObjectReplace.class.getName() + "#find", + IrisObjectLoot.class.getName() + "#filter", + IrisObjectVanillaLoot.class.getName() + "#filter", + IrisObjectMarker.class.getName() + "#mark", + IrisBlockDrops.class.getName() + "#blocks", + IrisDecorator.class.getName() + "#whitelist", + IrisDecorator.class.getName() + "#blacklist"); private final ContentGate gate; private final IrisRegistrant registrant; diff --git a/core/src/main/java/art/arcane/iris/core/compat/ContentGate.java b/core/src/main/java/art/arcane/iris/pack/validation/ContentGate.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/compat/ContentGate.java rename to core/src/main/java/art/arcane/iris/pack/validation/ContentGate.java index b84761b33..c4618752d 100644 --- a/core/src/main/java/art/arcane/iris/core/compat/ContentGate.java +++ b/core/src/main/java/art/arcane/iris/pack/validation/ContentGate.java @@ -15,12 +15,12 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package art.arcane.iris.core.compat; +package art.arcane.iris.pack.validation; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.engine.object.IrisBlockData; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.generation.block.IrisBlockData; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBlockState; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisCompat.java b/core/src/main/java/art/arcane/iris/pack/validation/IrisCompat.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/object/IrisCompat.java rename to core/src/main/java/art/arcane/iris/pack/validation/IrisCompat.java index cf18b690a..ebc5f4caa 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisCompat.java +++ b/core/src/main/java/art/arcane/iris/pack/validation/IrisCompat.java @@ -16,9 +16,8 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.pack.validation; -import art.arcane.iris.core.compat.LegacyBlockRenames; import art.arcane.iris.platform.bukkit.BukkitBlockResolution; import art.arcane.iris.spi.IrisLogging; @@ -26,7 +25,7 @@ import com.google.gson.Gson; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.io.IO; import art.arcane.volmlib.util.json.JSONObject; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import lombok.Data; import org.bukkit.Material; import org.bukkit.block.data.BlockData; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisCompatabilityBlockFilter.java b/core/src/main/java/art/arcane/iris/pack/validation/IrisCompatabilityBlockFilter.java similarity index 78% rename from core/src/main/java/art/arcane/iris/engine/object/IrisCompatabilityBlockFilter.java rename to core/src/main/java/art/arcane/iris/pack/validation/IrisCompatabilityBlockFilter.java index dd8d1fd8d..4a14c779e 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisCompatabilityBlockFilter.java +++ b/core/src/main/java/art/arcane/iris/pack/validation/IrisCompatabilityBlockFilter.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.pack.validation; import art.arcane.iris.platform.bukkit.BukkitBlockResolution; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.Required; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.Required; import art.arcane.iris.spi.IrisLogging; import lombok.AllArgsConstructor; import lombok.Data; @@ -33,18 +33,18 @@ import org.bukkit.block.data.BlockData; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Find and replace object materials for compatability") +@Description("Find and replace object materials for compatability") @Data public class IrisCompatabilityBlockFilter { private final transient AtomicCache findData = new AtomicCache<>(true); private final transient AtomicCache replaceData = new AtomicCache<>(true); @Required - @Desc("When iris sees this block, and it's not reconized") + @Description("When iris sees this block, and it's not reconized") private String when = ""; @Required - @Desc("Replace it with this block. Dont worry if this block is also not reconized, iris repeat this compat check.") + @Description("Replace it with this block. Dont worry if this block is also not reconized, iris repeat this compat check.") private String supplement = ""; - @Desc("If exact is true, it compares block data for example minecraft:some_log[axis=x]") + @Description("If exact is true, it compares block data for example minecraft:some_log[axis=x]") private boolean exact = false; public IrisCompatabilityBlockFilter(String when, String supplement) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisCompatabilityItemFilter.java b/core/src/main/java/art/arcane/iris/pack/validation/IrisCompatabilityItemFilter.java similarity index 81% rename from core/src/main/java/art/arcane/iris/engine/object/IrisCompatabilityItemFilter.java rename to core/src/main/java/art/arcane/iris/pack/validation/IrisCompatabilityItemFilter.java index ef960581d..001bcc8a1 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisCompatabilityItemFilter.java +++ b/core/src/main/java/art/arcane/iris/pack/validation/IrisCompatabilityItemFilter.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.pack.validation; import art.arcane.iris.platform.bukkit.BukkitBlockResolution; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.Required; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.Required; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; @@ -31,16 +31,16 @@ import org.bukkit.Material; @Accessors(chain = true) @NoArgsConstructor -@Desc("Find and replace object items for compatability") +@Description("Find and replace object items for compatability") @Data public class IrisCompatabilityItemFilter { private final transient AtomicCache findData = new AtomicCache<>(true); private final transient AtomicCache replaceData = new AtomicCache<>(true); @Required - @Desc("When iris sees this block, and it's not reconized") + @Description("When iris sees this block, and it's not reconized") private String when = ""; @Required - @Desc("Replace it with this block. Dont worry if this block is also not reconized, iris repeat this compat check.") + @Description("Replace it with this block. Dont worry if this block is also not reconized, iris repeat this compat check.") private String supplement = ""; public IrisCompatabilityItemFilter(String when, String supplement) { diff --git a/core/src/main/java/art/arcane/iris/core/compat/KeyStatus.java b/core/src/main/java/art/arcane/iris/pack/validation/KeyStatus.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/compat/KeyStatus.java rename to core/src/main/java/art/arcane/iris/pack/validation/KeyStatus.java index eec50caf4..152fc156b 100644 --- a/core/src/main/java/art/arcane/iris/core/compat/KeyStatus.java +++ b/core/src/main/java/art/arcane/iris/pack/validation/KeyStatus.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package art.arcane.iris.core.compat; +package art.arcane.iris.pack.validation; /** * Existence of a key in the live platform registry. {@code UNKNOWN} means the registry could not be consulted (not diff --git a/core/src/main/java/art/arcane/iris/core/compat/LegacyBlockRenames.java b/core/src/main/java/art/arcane/iris/pack/validation/LegacyBlockRenames.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/compat/LegacyBlockRenames.java rename to core/src/main/java/art/arcane/iris/pack/validation/LegacyBlockRenames.java index 03cd5d393..650a7c1d0 100644 --- a/core/src/main/java/art/arcane/iris/core/compat/LegacyBlockRenames.java +++ b/core/src/main/java/art/arcane/iris/pack/validation/LegacyBlockRenames.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package art.arcane.iris.core.compat; +package art.arcane.iris.pack.validation; import java.util.ArrayList; import java.util.Collections; diff --git a/core/src/main/java/art/arcane/iris/core/compat/MissingBlockState.java b/core/src/main/java/art/arcane/iris/pack/validation/MissingBlockState.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/compat/MissingBlockState.java rename to core/src/main/java/art/arcane/iris/pack/validation/MissingBlockState.java index 60fd59b74..650aeb27e 100644 --- a/core/src/main/java/art/arcane/iris/core/compat/MissingBlockState.java +++ b/core/src/main/java/art/arcane/iris/pack/validation/MissingBlockState.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package art.arcane.iris.core.compat; +package art.arcane.iris.pack.validation; import art.arcane.iris.spi.PlatformBlockState; diff --git a/core/src/main/java/art/arcane/iris/core/compat/PackCompatReport.java b/core/src/main/java/art/arcane/iris/pack/validation/PackCompatReport.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/compat/PackCompatReport.java rename to core/src/main/java/art/arcane/iris/pack/validation/PackCompatReport.java index 3da136465..2f44794cc 100644 --- a/core/src/main/java/art/arcane/iris/core/compat/PackCompatReport.java +++ b/core/src/main/java/art/arcane/iris/pack/validation/PackCompatReport.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package art.arcane.iris.core.compat; +package art.arcane.iris.pack.validation; import java.util.ArrayList; import java.util.Comparator; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisColor.java b/core/src/main/java/art/arcane/iris/pack/value/IrisColor.java similarity index 77% rename from core/src/main/java/art/arcane/iris/engine/object/IrisColor.java rename to core/src/main/java/art/arcane/iris/pack/value/IrisColor.java index 3a8b255be..8212a9647 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisColor.java +++ b/core/src/main/java/art/arcane/iris/pack/value/IrisColor.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.pack.value; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.iris.spi.IrisLogging; import lombok.Data; import lombok.NoArgsConstructor; @@ -33,25 +33,25 @@ import java.awt.Color; @Snippet("color") @Accessors(chain = true) @NoArgsConstructor -@Desc("Represents a color") +@Description("Represents a color") @Data public class IrisColor { private final transient AtomicCache color = new AtomicCache<>(); @MaxNumber(7) @MinNumber(6) - @Desc("Pass in a 6 digit hexadecimal color to fill R G and B values. You can also include the # symbol, but it's not required.") + @Description("Pass in a 6 digit hexadecimal color to fill R G and B values. You can also include the # symbol, but it's not required.") private String hex = null; @MaxNumber(255) @MinNumber(0) - @Desc("Represents the red channel. Only define this if you are not defining the hex value.") + @Description("Represents the red channel. Only define this if you are not defining the hex value.") private int red = 0; @MaxNumber(255) @MinNumber(0) - @Desc("Represents the green channel. Only define this if you are not defining the hex value.") + @Description("Represents the green channel. Only define this if you are not defining the hex value.") private int green = 0; @MaxNumber(255) @MinNumber(0) - @Desc("Represents the blue channel. Only define this if you are not defining the hex value.") + @Description("Represents the blue channel. Only define this if you are not defining the hex value.") private int blue = 0; public static Color blend(Color... c) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisDirection.java b/core/src/main/java/art/arcane/iris/pack/value/IrisDirection.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/object/IrisDirection.java rename to core/src/main/java/art/arcane/iris/pack/value/IrisDirection.java index 35502f0d6..987e27aef 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisDirection.java +++ b/core/src/main/java/art/arcane/iris/pack/value/IrisDirection.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.pack.value; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.documentation.Description; import art.arcane.volmlib.util.collection.GBiset; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; @@ -36,19 +36,19 @@ import java.util.Map; * * @author cyberpwn */ -@Desc("A direction object") +@Description("A direction object") public enum IrisDirection { - @Desc("0, 1, 0") + @Description("0, 1, 0") UP_POSITIVE_Y(0, 1, 0, CuboidDirection.Up), - @Desc("0, -1, 0") + @Description("0, -1, 0") DOWN_NEGATIVE_Y(0, -1, 0, CuboidDirection.Down), - @Desc("0, 0, -1") + @Description("0, 0, -1") NORTH_NEGATIVE_Z(0, 0, -1, CuboidDirection.North), - @Desc("0, 0, 1") + @Description("0, 0, 1") SOUTH_POSITIVE_Z(0, 0, 1, CuboidDirection.South), - @Desc("1, 0, 0") + @Description("1, 0, 0") EAST_POSITIVE_X(1, 0, 0, CuboidDirection.East), - @Desc("-1, 0, 0") + @Description("-1, 0, 0") WEST_NEGATIVE_X(-1, 0, 0, CuboidDirection.West); private static KMap, DOP> permute = null; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisDuration.java b/core/src/main/java/art/arcane/iris/pack/value/IrisDuration.java similarity index 68% rename from core/src/main/java/art/arcane/iris/engine/object/IrisDuration.java rename to core/src/main/java/art/arcane/iris/pack/value/IrisDuration.java index d26c82352..88e256e4e 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisDuration.java +++ b/core/src/main/java/art/arcane/iris/pack/value/IrisDuration.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.pack.value; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.volmlib.util.format.Form; import lombok.Data; @@ -27,36 +27,36 @@ import java.util.concurrent.TimeUnit; @Snippet("duration") @Data -@Desc("Represents a combined duration. Fill each property to add time into a single duration") +@Description("Represents a combined duration. Fill each property to add time into a single duration") public class IrisDuration { - @Desc("Milliseconds (1000ms = 1 second)") + @Description("Milliseconds (1000ms = 1 second)") private int milliseconds = 0; - @Desc("Minecraft Ticks (20 minecraft ticks = 1 second)") + @Description("Minecraft Ticks (20 minecraft ticks = 1 second)") private int minecraftTicks = 0; - @Desc("Seconds (60 seconds = 1 minute)") + @Description("Seconds (60 seconds = 1 minute)") private int seconds = 0; - @Desc("Minutes (60 minutes = 1 hour)") + @Description("Minutes (60 minutes = 1 hour)") private int minutes = 0; - @Desc("Minecraft Hours (about 50 real seconds)") + @Description("Minecraft Hours (about 50 real seconds)") private int minecraftHours = 0; - @Desc("Hours (24 hours = 1 day)") + @Description("Hours (24 hours = 1 day)") private int hours = 0; - @Desc("Minecraft Days (1 minecraft day = 20 real minutes)") + @Description("Minecraft Days (1 minecraft day = 20 real minutes)") private int minecraftDays = 0; - @Desc("Minecraft Weeks (7 minecraft days = 2 real hours and 20 real minutes)") + @Description("Minecraft Weeks (7 minecraft days = 2 real hours and 20 real minutes)") private int minecraftWeeks = 0; - @Desc("Minecraft Lunar Cycles (8 minecraft days = 2 real hours and 40 real minutes)") + @Description("Minecraft Lunar Cycles (8 minecraft days = 2 real hours and 40 real minutes)") private int minecraftLunarCycles = 0; - @Desc("REAL (not minecraft) Days") + @Description("REAL (not minecraft) Days") private int days = 0; public String toString() { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisPosition.java b/core/src/main/java/art/arcane/iris/pack/value/IrisPosition.java similarity index 86% rename from core/src/main/java/art/arcane/iris/engine/object/IrisPosition.java rename to core/src/main/java/art/arcane/iris/pack/value/IrisPosition.java index b2bbbd310..798420afa 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisPosition.java +++ b/core/src/main/java/art/arcane/iris/pack/value/IrisPosition.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.pack.value; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.Snippet; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -29,16 +29,16 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Represents a position") +@Description("Represents a position") @Data public class IrisPosition { - @Desc("The x position") + @Description("The x position") private int x = 0; - @Desc("The y position") + @Description("The y position") private int y = 0; - @Desc("The z position") + @Description("The z position") private int z = 0; public IrisPosition(double x, double y, double z) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisRange.java b/core/src/main/java/art/arcane/iris/pack/value/IrisRange.java similarity index 85% rename from core/src/main/java/art/arcane/iris/engine/object/IrisRange.java rename to core/src/main/java/art/arcane/iris/pack/value/IrisRange.java index 5f7cd5e3d..fc5928822 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisRange.java +++ b/core/src/main/java/art/arcane/iris/pack/value/IrisRange.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.pack.value; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.volmlib.util.math.RNG; import lombok.AllArgsConstructor; import lombok.Data; @@ -30,13 +30,13 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Represents a range") +@Description("Represents a range") @Data public class IrisRange { - @Desc("The minimum value") + @Description("The minimum value") private double min = 16; - @Desc("The maximum value") + @Description("The maximum value") private double max = 32; public double get(RNG rng) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisRaritySelection.java b/core/src/main/java/art/arcane/iris/pack/value/IrisRaritySelection.java similarity index 89% rename from core/src/main/java/art/arcane/iris/engine/object/IrisRaritySelection.java rename to core/src/main/java/art/arcane/iris/pack/value/IrisRaritySelection.java index 967a05b59..eb5c2ab45 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisRaritySelection.java +++ b/core/src/main/java/art/arcane/iris/pack/value/IrisRaritySelection.java @@ -1,10 +1,12 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.pack.value; + +import art.arcane.volmlib.util.math.Rarity; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -public final class IrisRaritySelection { +public final class IrisRaritySelection { private final List choices; private final long[] cumulativeCounts; @@ -13,7 +15,7 @@ public final class IrisRaritySelection { this.cumulativeCounts = cumulativeCounts; } - public static IrisRaritySelection create(List options) { + public static IrisRaritySelection create(List options) { ArrayList choices = new ArrayList<>(options.size()); long maximumRarity = 1L; for (T option : options) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisRate.java b/core/src/main/java/art/arcane/iris/pack/value/IrisRate.java similarity index 78% rename from core/src/main/java/art/arcane/iris/engine/object/IrisRate.java rename to core/src/main/java/art/arcane/iris/pack/value/IrisRate.java index 72b3daa97..9f37c9186 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisRate.java +++ b/core/src/main/java/art/arcane/iris/pack/value/IrisRate.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.pack.value; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.scheduling.ChronoLatch; import lombok.AllArgsConstructor; @@ -30,12 +30,12 @@ import lombok.NoArgsConstructor; @NoArgsConstructor @AllArgsConstructor @Data -@Desc("Represents a count of something per time duration") +@Description("Represents a count of something per time duration") public class IrisRate { - @Desc("The amount of things. Leave 0 for infinite (meaning always spawn whenever)") + @Description("The amount of things. Leave 0 for infinite (meaning always spawn whenever)") private int amount = 0; - @Desc("The time interval. Leave blank for infinite 0 (meaning always spawn all the time)") + @Description("The time interval. Leave blank for infinite 0 (meaning always spawn all the time)") private IrisDuration per = new IrisDuration(); public String toString() { diff --git a/core/src/main/java/art/arcane/iris/engine/object/OverrideMode.java b/core/src/main/java/art/arcane/iris/pack/value/OverrideMode.java similarity index 58% rename from core/src/main/java/art/arcane/iris/engine/object/OverrideMode.java rename to core/src/main/java/art/arcane/iris/pack/value/OverrideMode.java index feb23578d..362bbcced 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/OverrideMode.java +++ b/core/src/main/java/art/arcane/iris/pack/value/OverrideMode.java @@ -16,18 +16,18 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.pack.value; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.documentation.Description; -@Desc("Controls how an override list is combined with the inherited object set from the target biome.") +@Description("Controls how an override list is combined with the inherited object set from the target biome.") public enum OverrideMode { - @Desc("Ignore the override list entirely. Use only the inherited objects from the target biome (subject to inheritObjects).") + @Description("Ignore the override list entirely. Use only the inherited objects from the target biome (subject to inheritObjects).") INHERIT_ONLY, - @Desc("Append override list entries after the inherited objects from the target biome. Both sets are placed.") + @Description("Append override list entries after the inherited objects from the target biome. Both sets are placed.") MERGE, - @Desc("Use only the override list. The inherited objects from the target biome are discarded regardless of inheritObjects.") + @Description("Use only the override list. The inherited objects from the target biome are discarded regardless of inheritObjects.") REPLACE } diff --git a/core/src/main/java/art/arcane/iris/util/project/agent/Agent.java b/core/src/main/java/art/arcane/iris/platform/agent/Agent.java similarity index 97% rename from core/src/main/java/art/arcane/iris/util/project/agent/Agent.java rename to core/src/main/java/art/arcane/iris/platform/agent/Agent.java index ee9a777cf..bd3c5640b 100644 --- a/core/src/main/java/art/arcane/iris/util/project/agent/Agent.java +++ b/core/src/main/java/art/arcane/iris/platform/agent/Agent.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.project.agent; +package art.arcane.iris.platform.agent; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.IrisLogging; @@ -13,7 +13,7 @@ import java.nio.file.Files; import java.nio.file.StandardCopyOption; public class Agent { - private static final String NAME = "art.arcane.iris.util.project.agent.Installer"; + private static final String NAME = "art.arcane.iris.platform.agent.Installer"; public static final File AGENT_JAR = new File(IrisPlatforms.get().dataFolder(), "agent.jar"); public static ClassReloadingStrategy installed() { diff --git a/core/src/main/java/art/arcane/iris/util/common/misc/Bindings.java b/core/src/main/java/art/arcane/iris/platform/bootstrap/Bindings.java similarity index 89% rename from core/src/main/java/art/arcane/iris/util/common/misc/Bindings.java rename to core/src/main/java/art/arcane/iris/platform/bootstrap/Bindings.java index 9096abd56..b30c21867 100644 --- a/core/src/main/java/art/arcane/iris/util/common/misc/Bindings.java +++ b/core/src/main/java/art/arcane/iris/platform/bootstrap/Bindings.java @@ -1,10 +1,10 @@ -package art.arcane.iris.util.common.misc; +package art.arcane.iris.platform.bootstrap; import art.arcane.iris.BuildConstants; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; -import art.arcane.iris.util.common.plugin.VolmitPlugin; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; +import art.arcane.iris.platform.bukkit.plugin.VolmitPlugin; +import art.arcane.iris.world.task.J; import org.bstats.bukkit.Metrics; import org.bstats.charts.DrilldownPie; import org.bstats.charts.SingleLineChart; diff --git a/core/src/main/java/art/arcane/iris/util/common/misc/ServerProperties.java b/core/src/main/java/art/arcane/iris/platform/bootstrap/ServerProperties.java similarity index 90% rename from core/src/main/java/art/arcane/iris/util/common/misc/ServerProperties.java rename to core/src/main/java/art/arcane/iris/platform/bootstrap/ServerProperties.java index 6f499eea8..7b117487d 100644 --- a/core/src/main/java/art/arcane/iris/util/common/misc/ServerProperties.java +++ b/core/src/main/java/art/arcane/iris/platform/bootstrap/ServerProperties.java @@ -1,6 +1,6 @@ -package art.arcane.iris.util.common.misc; +package art.arcane.iris.platform.bootstrap; -import art.arcane.iris.core.lifecycle.BukkitStartupPaths; +import art.arcane.iris.world.lifecycle.BukkitStartupPaths; import java.io.File; import java.io.FileInputStream; diff --git a/core/src/main/java/art/arcane/iris/util/common/misc/SlimJar.java b/core/src/main/java/art/arcane/iris/platform/bootstrap/SlimJar.java similarity index 97% rename from core/src/main/java/art/arcane/iris/util/common/misc/SlimJar.java rename to core/src/main/java/art/arcane/iris/platform/bootstrap/SlimJar.java index bb67b965c..2fd046ba4 100644 --- a/core/src/main/java/art/arcane/iris/util/common/misc/SlimJar.java +++ b/core/src/main/java/art/arcane/iris/platform/bootstrap/SlimJar.java @@ -1,7 +1,7 @@ -package art.arcane.iris.util.common.misc; +package art.arcane.iris.platform.bootstrap; import art.arcane.iris.platform.bukkit.BukkitPlatform; -import art.arcane.iris.util.common.plugin.VolmitPlugin; +import art.arcane.iris.platform.bukkit.plugin.VolmitPlugin; import io.github.slimjar.app.builder.ApplicationBuilder; import io.github.slimjar.app.builder.SpigotApplicationBuilder; import io.github.slimjar.injector.loader.factory.InjectableFactory; diff --git a/core/src/main/java/art/arcane/iris/util/common/misc/WebCache.java b/core/src/main/java/art/arcane/iris/platform/bootstrap/WebCache.java similarity index 99% rename from core/src/main/java/art/arcane/iris/util/common/misc/WebCache.java rename to core/src/main/java/art/arcane/iris/platform/bootstrap/WebCache.java index e5bdb142b..be286e176 100644 --- a/core/src/main/java/art/arcane/iris/util/common/misc/WebCache.java +++ b/core/src/main/java/art/arcane/iris/platform/bootstrap/WebCache.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.misc; +package art.arcane.iris.platform.bootstrap; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; diff --git a/core/src/main/java/art/arcane/iris/util/common/misc/getHardware.java b/core/src/main/java/art/arcane/iris/platform/bootstrap/getHardware.java similarity index 98% rename from core/src/main/java/art/arcane/iris/util/common/misc/getHardware.java rename to core/src/main/java/art/arcane/iris/platform/bootstrap/getHardware.java index 5bba139f6..7b5bd07d6 100644 --- a/core/src/main/java/art/arcane/iris/util/common/misc/getHardware.java +++ b/core/src/main/java/art/arcane/iris/platform/bootstrap/getHardware.java @@ -1,9 +1,11 @@ -package art.arcane.iris.util.common.misc; +package art.arcane.iris.platform.bootstrap; + +import art.arcane.volmlib.util.documentation.Description; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.collection.KList; -import art.arcane.iris.util.common.format.C; +import art.arcane.iris.localization.C; import art.arcane.volmlib.util.format.Form; import oshi.SystemInfo; import oshi.hardware.CentralProcessor; diff --git a/core/src/main/java/art/arcane/iris/core/service/BoardSVC.java b/core/src/main/java/art/arcane/iris/platform/bukkit/BoardSVC.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/service/BoardSVC.java rename to core/src/main/java/art/arcane/iris/platform/bukkit/BoardSVC.java index 956b29cb2..bc7f7f349 100644 --- a/core/src/main/java/art/arcane/iris/core/service/BoardSVC.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/BoardSVC.java @@ -16,27 +16,29 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.service; +package art.arcane.iris.platform.bukkit; -import art.arcane.iris.core.localization.BukkitUiMessages; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.RuntimeUiMessages; +import art.arcane.iris.studio.jigsaw.JigsawStudioBoardContext; + +import art.arcane.iris.localization.BukkitUiMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.RuntimeUiMessages; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.framework.BiomeEnvironment; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineLifecycleTasks; -import art.arcane.iris.engine.history.SavedBiomeUnavailableException; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.generation.runtime.BiomeEnvironment; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineLifecycleTasks; +import art.arcane.iris.world.history.SavedBiomeUnavailableException; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; import art.arcane.volmlib.util.board.Board; import art.arcane.volmlib.util.board.BoardProvider; import art.arcane.volmlib.util.board.BoardSettings; import art.arcane.volmlib.util.board.ScoreDirection; import art.arcane.volmlib.util.format.Form; -import art.arcane.iris.util.common.plugin.IrisService; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.platform.bukkit.plugin.IrisService; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.matter.MatterCavern; import art.arcane.volmlib.util.localization.MessageArgument; import org.bukkit.Bukkit; @@ -317,7 +319,7 @@ public class BoardSVC implements IrisService, BoardProvider { return !Objects.equals(previous, next); } - static String untrustedBoardValue(String value) { + public static String untrustedBoardValue(String value) { String normalized = value == null ? "" : value.replace('\n', ' ').replace('\r', ' '); return LEGACY_COLOR.matcher(normalized).replaceAll("") .replace("&", "&") diff --git a/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitBiomeWriter.java b/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitBiomeWriter.java index 866b4584b..1ef5df81f 100644 --- a/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitBiomeWriter.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitBiomeWriter.java @@ -18,7 +18,7 @@ package art.arcane.iris.platform.bukkit; -import art.arcane.iris.core.nms.INMS; +import art.arcane.iris.platform.bukkit.nms.INMS; import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBiomeWriter; diff --git a/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitBlockResolution.java b/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitBlockResolution.java index bf6bdf9ee..57e19d7fd 100644 --- a/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitBlockResolution.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitBlockResolution.java @@ -18,17 +18,17 @@ package art.arcane.iris.platform.bukkit; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.core.link.data.DataType; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.core.nms.container.BlockProperty; -import art.arcane.iris.core.service.ExternalDataSVC; -import art.arcane.iris.engine.object.IrisCompat; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.integration.Identifier; +import art.arcane.iris.integration.data.DataType; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.platform.bukkit.nms.container.BlockProperty; +import art.arcane.iris.integration.ExternalDataSVC; +import art.arcane.iris.pack.validation.IrisCompat; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.util.common.data.registry.Materials; -import art.arcane.iris.util.common.reflect.KeyedType; +import art.arcane.iris.platform.bukkit.registry.Materials; +import art.arcane.iris.platform.reflect.KeyedType; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.data.BSupport; @@ -208,7 +208,7 @@ public final class BukkitBlockResolution { /** * Strict lookup: null when nothing claims the key, never an air substitute. Unlike {@link #getOrNull(String)} this - * never reaches the {@link art.arcane.iris.engine.object.IrisCompat} legacy rewrite table, which is a Bukkit-only + * never reaches the {@link art.arcane.iris.pack.validation.IrisCompat} legacy rewrite table, which is a Bukkit-only * layer and must stay off the generation path. */ public static BlockData resolveOrNull(String bdxf) { diff --git a/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitBlockState.java b/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitBlockState.java index 17182dbb6..34a164136 100644 --- a/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitBlockState.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitBlockState.java @@ -18,15 +18,15 @@ package art.arcane.iris.platform.bukkit; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.core.nms.container.Pair; -import art.arcane.iris.core.service.ExternalDataSVC; -import art.arcane.iris.engine.object.IrisObjectRotation; +import art.arcane.iris.integration.Identifier; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.platform.bukkit.nms.container.Pair; +import art.arcane.iris.integration.ExternalDataSVC; +import art.arcane.iris.structure.object.IrisObjectRotation; import art.arcane.iris.platform.BlockStateKey; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.IrisCustomData; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.generation.block.IrisCustomData; +import art.arcane.iris.generation.geometry.IrisBlockVector; import art.arcane.volmlib.util.collection.KMap; import org.bukkit.Axis; import org.bukkit.Bukkit; diff --git a/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitEntityType.java b/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitEntityType.java index b08080711..e3f7043bd 100644 --- a/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitEntityType.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitEntityType.java @@ -18,7 +18,7 @@ package art.arcane.iris.platform.bukkit; -import art.arcane.iris.core.nms.INMS; +import art.arcane.iris.platform.bukkit.nms.INMS; import art.arcane.iris.spi.PlatformEntityType; import org.bukkit.entity.EntityType; diff --git a/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitEnvironment.java b/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitEnvironment.java index 602e0cfca..308020a04 100644 --- a/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitEnvironment.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitEnvironment.java @@ -18,7 +18,7 @@ package art.arcane.iris.platform.bukkit; -import art.arcane.iris.engine.object.IrisEnvironment; +import art.arcane.iris.world.IrisEnvironment; import org.bukkit.World; public final class BukkitEnvironment { diff --git a/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitPlatform.java b/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitPlatform.java index cc330514f..2d40c6bd5 100644 --- a/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitPlatform.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitPlatform.java @@ -18,10 +18,10 @@ package art.arcane.iris.platform.bukkit; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.core.nms.MinecraftVersion; -import art.arcane.iris.engine.object.IrisPosition; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.platform.bukkit.nms.MinecraftVersion; +import art.arcane.iris.pack.value.IrisPosition; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.LogLevel; import art.arcane.iris.spi.PlatformBiome; @@ -30,8 +30,8 @@ import art.arcane.iris.spi.PlatformRegistries; import art.arcane.iris.spi.PlatformScheduler; import art.arcane.iris.spi.PlatformStructureHooks; import art.arcane.iris.spi.PlatformWorld; -import art.arcane.iris.util.common.plugin.VolmitPlugin; -import art.arcane.iris.util.common.plugin.VolmitSender; +import art.arcane.iris.platform.bukkit.plugin.VolmitPlugin; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.hud.HudActionBar; import art.arcane.volmlib.util.hud.HudBossBarLane; diff --git a/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitRegistries.java b/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitRegistries.java index 44511d927..aad7e9933 100644 --- a/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitRegistries.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitRegistries.java @@ -18,11 +18,11 @@ package art.arcane.iris.platform.bukkit; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.core.link.data.DataType; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.core.nms.container.BlockProperty; -import art.arcane.iris.core.service.ExternalDataSVC; +import art.arcane.iris.integration.Identifier; +import art.arcane.iris.integration.data.DataType; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.platform.bukkit.nms.container.BlockProperty; +import art.arcane.iris.integration.ExternalDataSVC; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBlockProperty; @@ -32,7 +32,7 @@ import art.arcane.iris.spi.PlatformGenerationRegistry; import art.arcane.iris.spi.PlatformItem; import art.arcane.iris.spi.PlatformNumericRange; import art.arcane.iris.spi.PlatformRegistries; -import art.arcane.iris.util.common.reflect.KeyedType; +import art.arcane.iris.platform.reflect.KeyedType; import art.arcane.volmlib.util.json.JSONArray; import art.arcane.volmlib.util.json.JSONObject; import org.bukkit.Material; diff --git a/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitScheduler.java b/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitScheduler.java index 70766410f..acf173f97 100644 --- a/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitScheduler.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitScheduler.java @@ -20,7 +20,7 @@ package art.arcane.iris.platform.bukkit; import art.arcane.iris.spi.PlatformScheduler; import art.arcane.iris.spi.PlatformWorld; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import org.bukkit.World; /** diff --git a/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitStructureHooks.java b/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitStructureHooks.java index e8f255c88..4bf0d0d29 100644 --- a/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitStructureHooks.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitStructureHooks.java @@ -18,7 +18,7 @@ package art.arcane.iris.platform.bukkit; -import art.arcane.iris.core.nms.INMS; +import art.arcane.iris.platform.bukkit.nms.INMS; import art.arcane.iris.spi.PlatformStructureHooks; import art.arcane.iris.spi.PlatformWorld; diff --git a/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitWorldBinding.java b/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitWorldBinding.java index c874849bc..3d37fbfd5 100644 --- a/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitWorldBinding.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitWorldBinding.java @@ -18,8 +18,8 @@ package art.arcane.iris.platform.bukkit; -import art.arcane.iris.core.IrisWorldStorage; -import art.arcane.iris.engine.object.IrisWorld; +import art.arcane.iris.world.IrisWorldStorage; +import art.arcane.iris.world.IrisWorld; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.bukkit.WorldIdentity; import org.bukkit.Location; diff --git a/core/src/main/java/art/arcane/iris/util/common/plugin/chunk/ChunkTickets.java b/core/src/main/java/art/arcane/iris/platform/bukkit/chunk/ChunkTickets.java similarity index 97% rename from core/src/main/java/art/arcane/iris/util/common/plugin/chunk/ChunkTickets.java rename to core/src/main/java/art/arcane/iris/platform/bukkit/chunk/ChunkTickets.java index 4e17412cf..c4d810610 100644 --- a/core/src/main/java/art/arcane/iris/util/common/plugin/chunk/ChunkTickets.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/chunk/ChunkTickets.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.common.plugin.chunk; +package art.arcane.iris.platform.bukkit.chunk; import art.arcane.iris.platform.bukkit.BukkitPlatform; import lombok.NonNull; diff --git a/core/src/main/java/art/arcane/iris/util/common/plugin/chunk/TicketHolder.java b/core/src/main/java/art/arcane/iris/platform/bukkit/chunk/TicketHolder.java similarity index 94% rename from core/src/main/java/art/arcane/iris/util/common/plugin/chunk/TicketHolder.java rename to core/src/main/java/art/arcane/iris/platform/bukkit/chunk/TicketHolder.java index 29d3cfde4..311df419f 100644 --- a/core/src/main/java/art/arcane/iris/util/common/plugin/chunk/TicketHolder.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/chunk/TicketHolder.java @@ -1,7 +1,7 @@ -package art.arcane.iris.util.common.plugin.chunk; +package art.arcane.iris.platform.bukkit.chunk; import art.arcane.iris.platform.bukkit.BukkitPlatform; -import art.arcane.iris.engine.data.cache.Cache; +import art.arcane.iris.generation.cache.Cache; import art.arcane.volmlib.util.collection.KMap; import lombok.NonNull; import org.bukkit.Chunk; diff --git a/core/src/main/java/art/arcane/iris/core/nms/DatapackStructureScopeResult.java b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/DatapackStructureScopeResult.java similarity index 72% rename from core/src/main/java/art/arcane/iris/core/nms/DatapackStructureScopeResult.java rename to core/src/main/java/art/arcane/iris/platform/bukkit/nms/DatapackStructureScopeResult.java index 005d72752..b4644f47f 100644 --- a/core/src/main/java/art/arcane/iris/core/nms/DatapackStructureScopeResult.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/DatapackStructureScopeResult.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.nms; +package art.arcane.iris.platform.bukkit.nms; public record DatapackStructureScopeResult( int retainedManagedSets, diff --git a/core/src/main/java/art/arcane/iris/core/nms/INMS.java b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/INMS.java similarity index 94% rename from core/src/main/java/art/arcane/iris/core/nms/INMS.java rename to core/src/main/java/art/arcane/iris/platform/bukkit/nms/INMS.java index 3fce9b724..63a5d5cd5 100644 --- a/core/src/main/java/art/arcane/iris/core/nms/INMS.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/INMS.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.nms; +package art.arcane.iris.platform.bukkit.nms; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.nms.v1X.NMSBinding1X; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.platform.bukkit.nms.v1X.NMSBinding1X; import org.bukkit.Bukkit; public class INMS { @@ -97,7 +97,7 @@ public class INMS { private static INMSBinding bindExact(String code) { IrisLogging.debug("Locating exact NMS Binding for " + code); try { - Class clazz = Class.forName("art.arcane.iris.core.nms." + code + ".NMSBinding"); + Class clazz = Class.forName("art.arcane.iris.platform.bukkit.nms." + code + ".NMSBinding"); Object candidate = clazz.getConstructor().newInstance(); if (candidate instanceof INMSBinding binding) { IrisLogging.debug("Craftbukkit " + code + " <-> " + candidate.getClass().getSimpleName() + " Successfully Bound"); diff --git a/core/src/main/java/art/arcane/iris/core/nms/INMSBinding.java b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/INMSBinding.java similarity index 92% rename from core/src/main/java/art/arcane/iris/core/nms/INMSBinding.java rename to core/src/main/java/art/arcane/iris/platform/bukkit/nms/INMSBinding.java index 9ccf45001..3fbd43cc4 100644 --- a/core/src/main/java/art/arcane/iris/core/nms/INMSBinding.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/INMSBinding.java @@ -16,26 +16,26 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.nms; +package art.arcane.iris.platform.bukkit.nms; -import art.arcane.iris.engine.history.SavedTerrainChunk; +import art.arcane.iris.world.history.SavedTerrainChunk; import java.util.concurrent.CompletableFuture; -import art.arcane.iris.core.datapack.DatapackStructureScopeIndex; -import art.arcane.iris.engine.object.IrisImportedStructureControl; -import art.arcane.iris.core.lifecycle.WorldLifecycleCaller; -import art.arcane.iris.core.lifecycle.WorldLifecycleRequest; -import art.arcane.iris.core.lifecycle.WorldLifecycleService; -import art.arcane.iris.core.nms.container.BiomeColor; -import art.arcane.iris.core.nms.container.BlockProperty; -import art.arcane.iris.core.nms.datapack.DataVersion; -import art.arcane.iris.engine.data.chunk.TerrainChunk; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.NativeStructureVolume; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.pack.datapack.DatapackStructureScopeIndex; +import art.arcane.iris.structure.nativegen.IrisImportedStructureControl; +import art.arcane.iris.world.lifecycle.WorldLifecycleCaller; +import art.arcane.iris.world.lifecycle.WorldLifecycleRequest; +import art.arcane.iris.world.lifecycle.WorldLifecycleService; +import art.arcane.iris.platform.bukkit.nms.container.BiomeColor; +import art.arcane.iris.platform.bukkit.nms.container.BlockProperty; +import art.arcane.iris.platform.bukkit.nms.datapack.DataVersion; +import art.arcane.iris.generation.chunk.TerrainChunk; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.nativegen.NativeStructureVolume; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformGenerationRegistry; import art.arcane.iris.spi.PlatformStructureHooks.JigsawSourceMetadata; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.mantle.runtime.Mantle; diff --git a/core/src/main/java/art/arcane/iris/core/nms/MinecraftVersion.java b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/MinecraftVersion.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/nms/MinecraftVersion.java rename to core/src/main/java/art/arcane/iris/platform/bukkit/nms/MinecraftVersion.java index dde236c23..8721b54a2 100644 --- a/core/src/main/java/art/arcane/iris/core/nms/MinecraftVersion.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/MinecraftVersion.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.nms; +package art.arcane.iris.platform.bukkit.nms; import org.bukkit.Server; diff --git a/core/src/main/java/art/arcane/iris/core/nms/NmsBindingSelector.java b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/NmsBindingSelector.java similarity index 94% rename from core/src/main/java/art/arcane/iris/core/nms/NmsBindingSelector.java rename to core/src/main/java/art/arcane/iris/platform/bukkit/nms/NmsBindingSelector.java index 797936ce1..e5508d4d3 100644 --- a/core/src/main/java/art/arcane/iris/core/nms/NmsBindingSelector.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/NmsBindingSelector.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.nms; +package art.arcane.iris.platform.bukkit.nms; final class NmsBindingSelector { private static final String SUPPORTED_VERSIONS = "26.1.2 or 26.2"; diff --git a/core/src/main/java/art/arcane/iris/core/nms/ServerShutdownBoundary.java b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/ServerShutdownBoundary.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/nms/ServerShutdownBoundary.java rename to core/src/main/java/art/arcane/iris/platform/bukkit/nms/ServerShutdownBoundary.java index b253a53cc..93633d730 100644 --- a/core/src/main/java/art/arcane/iris/core/nms/ServerShutdownBoundary.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/ServerShutdownBoundary.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.nms; +package art.arcane.iris.platform.bukkit.nms; import java.util.Objects; import java.util.concurrent.TimeUnit; diff --git a/core/src/main/java/art/arcane/iris/core/nms/container/BiomeColor.java b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/container/BiomeColor.java similarity index 63% rename from core/src/main/java/art/arcane/iris/core/nms/container/BiomeColor.java rename to core/src/main/java/art/arcane/iris/platform/bukkit/nms/container/BiomeColor.java index 02d7cbcf7..dae921f14 100644 --- a/core/src/main/java/art/arcane/iris/core/nms/container/BiomeColor.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/container/BiomeColor.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.nms.container; +package art.arcane.iris.platform.bukkit.nms.container; public enum BiomeColor { FOG, diff --git a/core/src/main/java/art/arcane/iris/core/nms/container/BlockProperty.java b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/container/BlockProperty.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/nms/container/BlockProperty.java rename to core/src/main/java/art/arcane/iris/platform/bukkit/nms/container/BlockProperty.java index 3a9d01425..d5c7123c0 100644 --- a/core/src/main/java/art/arcane/iris/core/nms/container/BlockProperty.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/container/BlockProperty.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.nms.container; +package art.arcane.iris.platform.bukkit.nms.container; import art.arcane.volmlib.util.json.JSONArray; import art.arcane.volmlib.util.json.JSONObject; diff --git a/core/src/main/java/art/arcane/iris/core/nms/container/Pair.java b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/container/Pair.java similarity index 78% rename from core/src/main/java/art/arcane/iris/core/nms/container/Pair.java rename to core/src/main/java/art/arcane/iris/platform/bukkit/nms/container/Pair.java index 4a253acb8..546730c6a 100644 --- a/core/src/main/java/art/arcane/iris/core/nms/container/Pair.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/container/Pair.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.nms.container; +package art.arcane.iris.platform.bukkit.nms.container; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/core/src/main/java/art/arcane/iris/core/nms/datapack/DataVersion.java b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/datapack/DataVersion.java similarity index 92% rename from core/src/main/java/art/arcane/iris/core/nms/datapack/DataVersion.java rename to core/src/main/java/art/arcane/iris/platform/bukkit/nms/datapack/DataVersion.java index cd8a964c7..7f3a8c5ca 100644 --- a/core/src/main/java/art/arcane/iris/core/nms/datapack/DataVersion.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/datapack/DataVersion.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.nms.datapack; +package art.arcane.iris.platform.bukkit.nms.datapack; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.core.nms.datapack.v1217.DataFixerV1217; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.platform.bukkit.nms.datapack.v1217.DataFixerV1217; import art.arcane.volmlib.util.collection.KMap; import lombok.AccessLevel; import lombok.Getter; diff --git a/core/src/main/java/art/arcane/iris/core/nms/datapack/IDataFixer.java b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/datapack/IDataFixer.java similarity index 82% rename from core/src/main/java/art/arcane/iris/core/nms/datapack/IDataFixer.java rename to core/src/main/java/art/arcane/iris/platform/bukkit/nms/datapack/IDataFixer.java index f58638b05..25f431ac5 100644 --- a/core/src/main/java/art/arcane/iris/core/nms/datapack/IDataFixer.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/datapack/IDataFixer.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.nms.datapack; +package art.arcane.iris.platform.bukkit.nms.datapack; -import art.arcane.iris.engine.object.IrisBiomeCustom; -import art.arcane.iris.engine.object.IrisDimensionTypeOptions; +import art.arcane.iris.generation.biome.IrisBiomeCustom; +import art.arcane.iris.generation.terrain.IrisDimensionTypeOptions; import art.arcane.volmlib.util.json.JSONObject; import org.jetbrains.annotations.Nullable; diff --git a/core/src/main/java/art/arcane/iris/core/nms/datapack/v1192/DataFixerV1192.java b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/datapack/v1192/DataFixerV1192.java similarity index 89% rename from core/src/main/java/art/arcane/iris/core/nms/datapack/v1192/DataFixerV1192.java rename to core/src/main/java/art/arcane/iris/platform/bukkit/nms/datapack/v1192/DataFixerV1192.java index 8de733b3e..6c215a1a2 100644 --- a/core/src/main/java/art/arcane/iris/core/nms/datapack/v1192/DataFixerV1192.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/datapack/v1192/DataFixerV1192.java @@ -1,9 +1,9 @@ -package art.arcane.iris.core.nms.datapack.v1192; +package art.arcane.iris.platform.bukkit.nms.datapack.v1192; -import static art.arcane.iris.engine.object.IrisDimensionTypeOptions.TriState.FALSE; -import static art.arcane.iris.engine.object.IrisDimensionTypeOptions.TriState.TRUE; -import art.arcane.iris.core.nms.datapack.IDataFixer; -import art.arcane.iris.engine.object.IrisDimensionTypeOptions; +import static art.arcane.iris.generation.terrain.IrisDimensionTypeOptions.TriState.FALSE; +import static art.arcane.iris.generation.terrain.IrisDimensionTypeOptions.TriState.TRUE; +import art.arcane.iris.platform.bukkit.nms.datapack.IDataFixer; +import art.arcane.iris.generation.terrain.IrisDimensionTypeOptions; import art.arcane.volmlib.util.json.JSONObject; import org.jetbrains.annotations.Nullable; diff --git a/core/src/main/java/art/arcane/iris/core/nms/datapack/v1206/DataFixerV1206.java b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/datapack/v1206/DataFixerV1206.java similarity index 88% rename from core/src/main/java/art/arcane/iris/core/nms/datapack/v1206/DataFixerV1206.java rename to core/src/main/java/art/arcane/iris/platform/bukkit/nms/datapack/v1206/DataFixerV1206.java index bbd2e6ce2..964cb3fc9 100644 --- a/core/src/main/java/art/arcane/iris/core/nms/datapack/v1206/DataFixerV1206.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/datapack/v1206/DataFixerV1206.java @@ -1,10 +1,10 @@ -package art.arcane.iris.core.nms.datapack.v1206; +package art.arcane.iris.platform.bukkit.nms.datapack.v1206; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.core.nms.datapack.v1192.DataFixerV1192; -import art.arcane.iris.engine.object.IrisBiomeCustom; -import art.arcane.iris.engine.object.IrisBiomeCustomSpawn; -import art.arcane.iris.engine.object.IrisBiomeCustomSpawnType; +import art.arcane.iris.platform.bukkit.nms.datapack.v1192.DataFixerV1192; +import art.arcane.iris.generation.biome.IrisBiomeCustom; +import art.arcane.iris.generation.biome.IrisBiomeCustomSpawn; +import art.arcane.iris.generation.biome.IrisBiomeCustomSpawnType; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.json.JSONArray; diff --git a/core/src/main/java/art/arcane/iris/core/nms/datapack/v1213/DataFixerV1213.java b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/datapack/v1213/DataFixerV1213.java similarity index 65% rename from core/src/main/java/art/arcane/iris/core/nms/datapack/v1213/DataFixerV1213.java rename to core/src/main/java/art/arcane/iris/platform/bukkit/nms/datapack/v1213/DataFixerV1213.java index e79fa19e1..f39d4e29a 100644 --- a/core/src/main/java/art/arcane/iris/core/nms/datapack/v1213/DataFixerV1213.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/datapack/v1213/DataFixerV1213.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.nms.datapack.v1213; +package art.arcane.iris.platform.bukkit.nms.datapack.v1213; -import art.arcane.iris.core.nms.datapack.v1206.DataFixerV1206; -import art.arcane.iris.engine.object.IrisBiomeCustom; +import art.arcane.iris.platform.bukkit.nms.datapack.v1206.DataFixerV1206; +import art.arcane.iris.generation.biome.IrisBiomeCustom; import art.arcane.volmlib.util.json.JSONArray; import art.arcane.volmlib.util.json.JSONObject; diff --git a/core/src/main/java/art/arcane/iris/core/nms/datapack/v1217/DataFixerV1217.java b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/datapack/v1217/DataFixerV1217.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/nms/datapack/v1217/DataFixerV1217.java rename to core/src/main/java/art/arcane/iris/platform/bukkit/nms/datapack/v1217/DataFixerV1217.java index 2065c6f42..e9da2dcc3 100644 --- a/core/src/main/java/art/arcane/iris/core/nms/datapack/v1217/DataFixerV1217.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/datapack/v1217/DataFixerV1217.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.nms.datapack.v1217; +package art.arcane.iris.platform.bukkit.nms.datapack.v1217; -import art.arcane.iris.core.nms.datapack.v1213.DataFixerV1213; -import art.arcane.iris.engine.object.IrisBiomeCustom; +import art.arcane.iris.platform.bukkit.nms.datapack.v1213.DataFixerV1213; +import art.arcane.iris.generation.biome.IrisBiomeCustom; import art.arcane.volmlib.util.json.JSONArray; import art.arcane.volmlib.util.json.JSONObject; diff --git a/core/src/main/java/art/arcane/iris/core/nms/v1X/NMSBinding1X.java b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/v1X/NMSBinding1X.java similarity index 94% rename from core/src/main/java/art/arcane/iris/core/nms/v1X/NMSBinding1X.java rename to core/src/main/java/art/arcane/iris/platform/bukkit/nms/v1X/NMSBinding1X.java index af94ff7c8..8280eb9d4 100644 --- a/core/src/main/java/art/arcane/iris/core/nms/v1X/NMSBinding1X.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/nms/v1X/NMSBinding1X.java @@ -16,17 +16,17 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.nms.v1X; +package art.arcane.iris.platform.bukkit.nms.v1X; -import art.arcane.iris.core.datapack.DatapackStructureScopeIndex; -import art.arcane.iris.core.nms.DatapackStructureScopeResult; -import art.arcane.iris.engine.object.IrisImportedStructureControl; +import art.arcane.iris.pack.datapack.DatapackStructureScopeIndex; +import art.arcane.iris.platform.bukkit.nms.DatapackStructureScopeResult; +import art.arcane.iris.structure.nativegen.IrisImportedStructureControl; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.core.nms.INMSBinding; -import art.arcane.iris.core.nms.container.BiomeColor; -import art.arcane.iris.core.nms.container.BlockProperty; -import art.arcane.iris.core.nms.datapack.DataVersion; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.platform.bukkit.nms.INMSBinding; +import art.arcane.iris.platform.bukkit.nms.container.BiomeColor; +import art.arcane.iris.platform.bukkit.nms.container.BlockProperty; +import art.arcane.iris.platform.bukkit.nms.datapack.DataVersion; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.mantle.runtime.Mantle; diff --git a/core/src/main/java/art/arcane/iris/util/common/plugin/Chunks.java b/core/src/main/java/art/arcane/iris/platform/bukkit/plugin/Chunks.java similarity index 97% rename from core/src/main/java/art/arcane/iris/util/common/plugin/Chunks.java rename to core/src/main/java/art/arcane/iris/platform/bukkit/plugin/Chunks.java index 0cbdc9056..996330899 100644 --- a/core/src/main/java/art/arcane/iris/util/common/plugin/Chunks.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/plugin/Chunks.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.plugin; +package art.arcane.iris.platform.bukkit.plugin; import org.bukkit.Location; import org.bukkit.World; diff --git a/core/src/main/java/art/arcane/iris/util/common/plugin/IrisService.java b/core/src/main/java/art/arcane/iris/platform/bukkit/plugin/IrisService.java similarity index 95% rename from core/src/main/java/art/arcane/iris/util/common/plugin/IrisService.java rename to core/src/main/java/art/arcane/iris/platform/bukkit/plugin/IrisService.java index 43c69f484..f0e9a42d7 100644 --- a/core/src/main/java/art/arcane/iris/util/common/plugin/IrisService.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/plugin/IrisService.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.plugin; +package art.arcane.iris.platform.bukkit.plugin; import art.arcane.iris.platform.bukkit.BukkitPlatform; import org.bukkit.event.Listener; diff --git a/core/src/main/java/art/arcane/iris/util/common/plugin/VolmitPlugin.java b/core/src/main/java/art/arcane/iris/platform/bukkit/plugin/VolmitPlugin.java similarity index 98% rename from core/src/main/java/art/arcane/iris/util/common/plugin/VolmitPlugin.java rename to core/src/main/java/art/arcane/iris/platform/bukkit/plugin/VolmitPlugin.java index e1f89fd6b..0939e8649 100644 --- a/core/src/main/java/art/arcane/iris/util/common/plugin/VolmitPlugin.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/plugin/VolmitPlugin.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.plugin; +package art.arcane.iris.platform.bukkit.plugin; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.io.IO; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import org.bukkit.Bukkit; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; diff --git a/core/src/main/java/art/arcane/iris/util/common/plugin/VolmitSender.java b/core/src/main/java/art/arcane/iris/platform/bukkit/plugin/VolmitSender.java similarity index 98% rename from core/src/main/java/art/arcane/iris/util/common/plugin/VolmitSender.java rename to core/src/main/java/art/arcane/iris/platform/bukkit/plugin/VolmitSender.java index 3a9b31033..2a8067812 100644 --- a/core/src/main/java/art/arcane/iris/util/common/plugin/VolmitSender.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/plugin/VolmitSender.java @@ -16,17 +16,17 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.plugin; +package art.arcane.iris.platform.bukkit.plugin; import art.arcane.iris.platform.bukkit.BukkitPlatform; -import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.configuration.IrisSettings; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.hud.HudPriority; import art.arcane.volmlib.util.hud.HudSegment; import art.arcane.volmlib.util.hud.HudSlot; import art.arcane.volmlib.util.plugin.ComponentMessenger; import art.arcane.volmlib.util.plugin.ComponentText; -import art.arcane.iris.util.common.format.C; +import art.arcane.iris.localization.C; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.math.M; import lombok.Getter; diff --git a/core/src/main/java/art/arcane/iris/util/common/data/registry/Attributes.java b/core/src/main/java/art/arcane/iris/platform/bukkit/registry/Attributes.java similarity index 78% rename from core/src/main/java/art/arcane/iris/util/common/data/registry/Attributes.java rename to core/src/main/java/art/arcane/iris/platform/bukkit/registry/Attributes.java index 8400d7b90..c9e01f9fc 100644 --- a/core/src/main/java/art/arcane/iris/util/common/data/registry/Attributes.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/registry/Attributes.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.common.data.registry; +package art.arcane.iris.platform.bukkit.registry; import org.bukkit.attribute.Attribute; diff --git a/core/src/main/java/art/arcane/iris/util/common/data/registry/KeyedRegistry.java b/core/src/main/java/art/arcane/iris/platform/bukkit/registry/KeyedRegistry.java similarity index 98% rename from core/src/main/java/art/arcane/iris/util/common/data/registry/KeyedRegistry.java rename to core/src/main/java/art/arcane/iris/platform/bukkit/registry/KeyedRegistry.java index c6543f258..f114be688 100644 --- a/core/src/main/java/art/arcane/iris/util/common/data/registry/KeyedRegistry.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/registry/KeyedRegistry.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.common.data.registry; +package art.arcane.iris.platform.bukkit.registry; import art.arcane.volmlib.util.collection.KMap; import lombok.NonNull; diff --git a/core/src/main/java/art/arcane/iris/util/common/data/registry/Materials.java b/core/src/main/java/art/arcane/iris/platform/bukkit/registry/Materials.java similarity index 53% rename from core/src/main/java/art/arcane/iris/util/common/data/registry/Materials.java rename to core/src/main/java/art/arcane/iris/platform/bukkit/registry/Materials.java index 86fe59606..b080978df 100644 --- a/core/src/main/java/art/arcane/iris/util/common/data/registry/Materials.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/registry/Materials.java @@ -1,8 +1,8 @@ -package art.arcane.iris.util.common.data.registry; +package art.arcane.iris.platform.bukkit.registry; import org.bukkit.Material; -import static art.arcane.iris.util.common.data.registry.RegistryUtil.find; +import static art.arcane.iris.platform.bukkit.registry.RegistryUtil.find; public class Materials { public static final Material GRASS = find(Material.class, "grass", "short_grass"); diff --git a/core/src/main/java/art/arcane/iris/util/common/data/registry/Particles.java b/core/src/main/java/art/arcane/iris/platform/bukkit/registry/Particles.java similarity index 91% rename from core/src/main/java/art/arcane/iris/util/common/data/registry/Particles.java rename to core/src/main/java/art/arcane/iris/platform/bukkit/registry/Particles.java index 0ba2c2fd5..3619e4a47 100644 --- a/core/src/main/java/art/arcane/iris/util/common/data/registry/Particles.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/registry/Particles.java @@ -1,8 +1,8 @@ -package art.arcane.iris.util.common.data.registry; +package art.arcane.iris.platform.bukkit.registry; import org.bukkit.Particle; -import static art.arcane.iris.util.common.data.registry.RegistryUtil.find; +import static art.arcane.iris.platform.bukkit.registry.RegistryUtil.find; /** * Bukkit particle constants. Statically imported by {@code IrisEntity} (a Gson-registered pack diff --git a/core/src/main/java/art/arcane/iris/util/common/data/registry/RegistryTypeAdapter.java b/core/src/main/java/art/arcane/iris/platform/bukkit/registry/RegistryTypeAdapter.java similarity index 95% rename from core/src/main/java/art/arcane/iris/util/common/data/registry/RegistryTypeAdapter.java rename to core/src/main/java/art/arcane/iris/platform/bukkit/registry/RegistryTypeAdapter.java index 89523a1c5..127f82192 100644 --- a/core/src/main/java/art/arcane/iris/util/common/data/registry/RegistryTypeAdapter.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/registry/RegistryTypeAdapter.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.common.data.registry; +package art.arcane.iris.platform.bukkit.registry; import com.google.gson.TypeAdapter; import com.google.gson.stream.JsonReader; diff --git a/core/src/main/java/art/arcane/iris/util/common/data/registry/RegistryUtil.java b/core/src/main/java/art/arcane/iris/platform/bukkit/registry/RegistryUtil.java similarity index 96% rename from core/src/main/java/art/arcane/iris/util/common/data/registry/RegistryUtil.java rename to core/src/main/java/art/arcane/iris/platform/bukkit/registry/RegistryUtil.java index 3b1eb553b..50cbbb7a5 100644 --- a/core/src/main/java/art/arcane/iris/util/common/data/registry/RegistryUtil.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/registry/RegistryUtil.java @@ -1,7 +1,7 @@ -package art.arcane.iris.util.common.data.registry; +package art.arcane.iris.platform.bukkit.registry; -import art.arcane.iris.core.nms.container.Pair; -import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.platform.bukkit.nms.container.Pair; +import art.arcane.iris.generation.cache.AtomicCache; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import lombok.NonNull; @@ -20,7 +20,7 @@ import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; -import static art.arcane.iris.util.common.data.registry.KeyedRegistry.wrapped; +import static art.arcane.iris.platform.bukkit.registry.KeyedRegistry.wrapped; @SuppressWarnings("unchecked") public class RegistryUtil { diff --git a/core/src/main/java/art/arcane/iris/engine/platform/BukkitChunkGenerator.java b/core/src/main/java/art/arcane/iris/platform/generation/BukkitChunkGenerator.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/platform/BukkitChunkGenerator.java rename to core/src/main/java/art/arcane/iris/platform/generation/BukkitChunkGenerator.java index 798ff2615..cccdd3b09 100644 --- a/core/src/main/java/art/arcane/iris/engine/platform/BukkitChunkGenerator.java +++ b/core/src/main/java/art/arcane/iris/platform/generation/BukkitChunkGenerator.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.platform; +package art.arcane.iris.platform.generation; import org.bukkit.Bukkit; import org.bukkit.Chunk; @@ -27,55 +27,56 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.Semaphore; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.platform.bukkit.BukkitPlatform; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.IrisWorlds; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.core.runtime.ObjectStudioActivation; -import art.arcane.iris.core.runtime.ObjectStudioLayout; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioActivation; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioSession; -import art.arcane.iris.core.service.StudioSVC; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.data.chunk.TerrainChunk; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineTarget; -import art.arcane.iris.engine.framework.GenerationSessionException; -import art.arcane.iris.engine.framework.GenerationSessionLease; -import art.arcane.iris.engine.framework.WrongEngineBroException; -import art.arcane.iris.engine.history.GenerationActivation; -import art.arcane.iris.engine.history.GenerationEpoch; -import art.arcane.iris.engine.history.GenerationHistory; -import art.arcane.iris.engine.history.GenerationAdmission; -import art.arcane.iris.engine.history.GenerationHistoryRuntimeRouter; -import art.arcane.iris.engine.history.IrisBoundarySignatureSampler; -import art.arcane.iris.engine.history.TransitionGenerationPlan; -import art.arcane.iris.engine.hydrology.runtime.IrisHydrologyRuntime; -import art.arcane.iris.engine.object.IrisDimensionContractException; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisDimensionRuntimeContract; -import art.arcane.iris.engine.object.IrisWorld; -import art.arcane.iris.engine.object.StudioMode; -import art.arcane.iris.engine.platform.studio.StudioGenerator; -import art.arcane.iris.engine.platform.studio.generators.JigsawStudioGenerator; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.world.IrisWorlds; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.studio.object.ObjectStudioActivation; +import art.arcane.iris.studio.object.ObjectStudioLayout; +import art.arcane.iris.studio.jigsaw.JigsawStudioActivation; +import art.arcane.iris.studio.jigsaw.JigsawStudioSession; +import art.arcane.iris.studio.StudioSVC; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.generation.chunk.TerrainChunk; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineTarget; +import art.arcane.iris.generation.runtime.GenerationSessionException; +import art.arcane.iris.generation.runtime.GenerationSessionLease; +import art.arcane.iris.generation.runtime.WrongEngineBroException; +import art.arcane.iris.world.history.GenerationActivation; +import art.arcane.iris.world.history.GenerationEpoch; +import art.arcane.iris.world.history.GenerationHistory; +import art.arcane.iris.world.history.GenerationAdmission; +import art.arcane.iris.world.history.GenerationHistoryRuntimeRouter; +import art.arcane.iris.world.history.IrisBoundarySignatureSampler; +import art.arcane.iris.world.history.TransitionGenerationPlan; +import art.arcane.iris.generation.hydrology.runtime.IrisHydrologyRuntime; +import art.arcane.iris.generation.terrain.IrisDimensionContractException; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisDimensionRuntimeContract; +import art.arcane.iris.world.IrisWorld; +import art.arcane.iris.studio.StudioMode; +import art.arcane.iris.studio.generation.StudioGenerator; +import art.arcane.iris.studio.generation.JigsawStudioGenerator; import art.arcane.iris.platform.bukkit.BukkitWorldBinding; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBiome; -import art.arcane.iris.util.common.format.C; +import art.arcane.iris.localization.C; import art.arcane.volmlib.util.bukkit.WorldIdentity; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.M; -import art.arcane.iris.util.project.hunk.Hunk; -import art.arcane.iris.util.project.hunk.view.ChunkDataHunkHolder; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.project.context.IrisContext; +import art.arcane.volmlib.util.hunk.Hunk; +import art.arcane.iris.generation.chunk.TerrainChunkBiomeHunkView; +import art.arcane.iris.generation.chunk.ChunkDataHunkHolder; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.iris.generation.context.IrisContext; import art.arcane.volmlib.util.io.ReactiveFolder; import art.arcane.volmlib.util.scheduling.ChronoLatch; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.scheduling.Looper; import io.papermc.lib.PaperLib; import lombok.Data; @@ -1180,7 +1181,7 @@ public class BukkitChunkGenerator extends ChunkGenerator implements PlatformChun selected.generateChunk(engine, tc, x, z); } else { ChunkDataHunkHolder blocks = new ChunkDataHunkHolder(d); - Hunk biomes = Hunk.viewBiomes(tc); + Hunk biomes = new TerrainChunkBiomeHunkView(tc); try (GenerationHistoryRuntimeRouter.CoordinateScope historyScope = openGenerationHistoryCoordinateScope(engine, x << 4, z << 4); GenerationSessionLease lease = engine.acquireGenerationLease("bukkit_terrain_stage"); diff --git a/core/src/main/java/art/arcane/iris/engine/platform/DummyBiomeProvider.java b/core/src/main/java/art/arcane/iris/platform/generation/DummyBiomeProvider.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/platform/DummyBiomeProvider.java rename to core/src/main/java/art/arcane/iris/platform/generation/DummyBiomeProvider.java index 605b42b51..813a6f08b 100644 --- a/core/src/main/java/art/arcane/iris/engine/platform/DummyBiomeProvider.java +++ b/core/src/main/java/art/arcane/iris/platform/generation/DummyBiomeProvider.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.platform; +package art.arcane.iris.platform.generation; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBiome; diff --git a/core/src/main/java/art/arcane/iris/engine/platform/DummyChunkGenerator.java b/core/src/main/java/art/arcane/iris/platform/generation/DummyChunkGenerator.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/platform/DummyChunkGenerator.java rename to core/src/main/java/art/arcane/iris/platform/generation/DummyChunkGenerator.java index 04fb8817a..49ed00745 100644 --- a/core/src/main/java/art/arcane/iris/engine/platform/DummyChunkGenerator.java +++ b/core/src/main/java/art/arcane/iris/platform/generation/DummyChunkGenerator.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.platform; +package art.arcane.iris.platform.generation; import org.bukkit.generator.ChunkGenerator; diff --git a/core/src/main/java/art/arcane/iris/engine/platform/EngineBukkitOps.java b/core/src/main/java/art/arcane/iris/platform/generation/EngineBukkitOps.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/platform/EngineBukkitOps.java rename to core/src/main/java/art/arcane/iris/platform/generation/EngineBukkitOps.java index d94914c24..d5b7af828 100644 --- a/core/src/main/java/art/arcane/iris/engine/platform/EngineBukkitOps.java +++ b/core/src/main/java/art/arcane/iris/platform/generation/EngineBukkitOps.java @@ -16,36 +16,36 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.platform; +package art.arcane.iris.platform.generation; -import art.arcane.iris.engine.history.GenerationFindCatalog; +import art.arcane.iris.world.history.GenerationFindCatalog; import art.arcane.iris.platform.bukkit.BukkitWorldBinding; -import art.arcane.iris.core.events.IrisLootEvent; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.core.service.ExternalDataSVC; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.GenerationSessionLease; -import art.arcane.iris.engine.framework.Locator; -import art.arcane.iris.engine.framework.LootResolver; -import art.arcane.iris.engine.framework.PlacedObject; -import art.arcane.iris.engine.framework.WrongEngineBroException; -import art.arcane.iris.engine.object.InventorySlotType; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisLootTable; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.TileData; +import art.arcane.iris.world.event.IrisLootEvent; +import art.arcane.iris.integration.Identifier; +import art.arcane.iris.integration.ExternalDataSVC; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.GenerationSessionLease; +import art.arcane.iris.generation.locator.Locator; +import art.arcane.iris.structure.placement.LootResolver; +import art.arcane.iris.structure.placement.PlacedObject; +import art.arcane.iris.generation.runtime.WrongEngineBroException; +import art.arcane.iris.world.loot.InventorySlotType; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.world.loot.IrisLootTable; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.generation.block.TileData; import art.arcane.iris.platform.bukkit.BukkitBlockResolution; import art.arcane.iris.platform.bukkit.BukkitBlockState; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.util.common.format.C; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.reflect.KeyedType; -import art.arcane.iris.util.common.scheduling.J; -import art.arcane.iris.util.common.scheduling.jobs.SingleJob; -import art.arcane.iris.util.project.matter.TileWrapper; -import art.arcane.iris.util.project.context.IrisContext; +import art.arcane.iris.localization.C; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.platform.reflect.KeyedType; +import art.arcane.iris.world.task.J; +import art.arcane.iris.world.task.jobs.SingleJob; +import art.arcane.iris.world.storage.matter.TileWrapper; +import art.arcane.iris.generation.context.IrisContext; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.mantle.flag.MantleFlag; @@ -90,9 +90,9 @@ import java.util.function.BooleanSupplier; import java.util.function.Consumer; import java.util.function.Predicate; -import art.arcane.iris.core.localization.BukkitRuntimeMessages; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.RuntimeUiMessages; +import art.arcane.iris.localization.BukkitRuntimeMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.RuntimeUiMessages; import art.arcane.volmlib.util.localization.MessageArgument; public final class EngineBukkitOps { private static final ConcurrentHashMap> ACTIVE_LOCATE_REQUESTS = new ConcurrentHashMap<>(); diff --git a/core/src/main/java/art/arcane/iris/engine/platform/PlatformChunkGenerator.java b/core/src/main/java/art/arcane/iris/platform/generation/PlatformChunkGenerator.java similarity index 88% rename from core/src/main/java/art/arcane/iris/engine/platform/PlatformChunkGenerator.java rename to core/src/main/java/art/arcane/iris/platform/generation/PlatformChunkGenerator.java index f39767c64..87f9066ec 100644 --- a/core/src/main/java/art/arcane/iris/engine/platform/PlatformChunkGenerator.java +++ b/core/src/main/java/art/arcane/iris/platform/generation/PlatformChunkGenerator.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.platform; +package art.arcane.iris.platform.generation; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineTarget; -import art.arcane.iris.engine.framework.Hotloadable; -import art.arcane.iris.util.common.data.DataProvider; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineTarget; +import art.arcane.iris.generation.runtime.Hotloadable; +import art.arcane.iris.generation.block.DataProvider; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/core/src/main/java/art/arcane/iris/core/protocol/CursorInfoRequestHandler.java b/core/src/main/java/art/arcane/iris/platform/protocol/CursorInfoRequestHandler.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/protocol/CursorInfoRequestHandler.java rename to core/src/main/java/art/arcane/iris/platform/protocol/CursorInfoRequestHandler.java index bebeb7165..473dfac8f 100644 --- a/core/src/main/java/art/arcane/iris/core/protocol/CursorInfoRequestHandler.java +++ b/core/src/main/java/art/arcane/iris/platform/protocol/CursorInfoRequestHandler.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.protocol; +package art.arcane.iris.platform.protocol; @FunctionalInterface public interface CursorInfoRequestHandler { diff --git a/core/src/main/java/art/arcane/iris/core/protocol/EngineResolver.java b/core/src/main/java/art/arcane/iris/platform/protocol/EngineResolver.java similarity index 90% rename from core/src/main/java/art/arcane/iris/core/protocol/EngineResolver.java rename to core/src/main/java/art/arcane/iris/platform/protocol/EngineResolver.java index 0b073c6db..3cda06b1f 100644 --- a/core/src/main/java/art/arcane/iris/core/protocol/EngineResolver.java +++ b/core/src/main/java/art/arcane/iris/platform/protocol/EngineResolver.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.protocol; +package art.arcane.iris.platform.protocol; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.generation.runtime.Engine; @FunctionalInterface public interface EngineResolver { diff --git a/core/src/main/java/art/arcane/iris/core/protocol/IrisCursorRequestService.java b/core/src/main/java/art/arcane/iris/platform/protocol/IrisCursorRequestService.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/protocol/IrisCursorRequestService.java rename to core/src/main/java/art/arcane/iris/platform/protocol/IrisCursorRequestService.java index 18ad63efd..d2a721b0d 100644 --- a/core/src/main/java/art/arcane/iris/core/protocol/IrisCursorRequestService.java +++ b/core/src/main/java/art/arcane/iris/platform/protocol/IrisCursorRequestService.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.protocol; +package art.arcane.iris.platform.protocol; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.PreservationRegistry; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.PreservationRegistry; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.spi.protocol.IrisProtocol; diff --git a/core/src/main/java/art/arcane/iris/core/protocol/IrisCursorResolver.java b/core/src/main/java/art/arcane/iris/platform/protocol/IrisCursorResolver.java similarity index 90% rename from core/src/main/java/art/arcane/iris/core/protocol/IrisCursorResolver.java rename to core/src/main/java/art/arcane/iris/platform/protocol/IrisCursorResolver.java index 57e26b722..8d278710f 100644 --- a/core/src/main/java/art/arcane/iris/core/protocol/IrisCursorResolver.java +++ b/core/src/main/java/art/arcane/iris/platform/protocol/IrisCursorResolver.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.protocol; +package art.arcane.iris.platform.protocol; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisRegion; import art.arcane.iris.spi.protocol.IrisMessage; public final class IrisCursorResolver { diff --git a/core/src/main/java/art/arcane/iris/core/protocol/IrisProtocolServer.java b/core/src/main/java/art/arcane/iris/platform/protocol/IrisProtocolServer.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/protocol/IrisProtocolServer.java rename to core/src/main/java/art/arcane/iris/platform/protocol/IrisProtocolServer.java index c5c3e956a..d53c7a97d 100644 --- a/core/src/main/java/art/arcane/iris/core/protocol/IrisProtocolServer.java +++ b/core/src/main/java/art/arcane/iris/platform/protocol/IrisProtocolServer.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.protocol; +package art.arcane.iris.platform.protocol; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.iris.spi.protocol.IrisMessage; import art.arcane.iris.spi.protocol.IrisMessageCodec; import art.arcane.iris.spi.protocol.IrisProtocol; diff --git a/core/src/main/java/art/arcane/iris/core/protocol/IrisServerTransport.java b/core/src/main/java/art/arcane/iris/platform/protocol/IrisServerTransport.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/protocol/IrisServerTransport.java rename to core/src/main/java/art/arcane/iris/platform/protocol/IrisServerTransport.java index e0c8794c6..f68c9cc8b 100644 --- a/core/src/main/java/art/arcane/iris/core/protocol/IrisServerTransport.java +++ b/core/src/main/java/art/arcane/iris/platform/protocol/IrisServerTransport.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.protocol; +package art.arcane.iris.platform.protocol; public interface IrisServerTransport { void sendToClient(String sessionId, byte[] frame); diff --git a/core/src/main/java/art/arcane/iris/core/protocol/IrisSession.java b/core/src/main/java/art/arcane/iris/platform/protocol/IrisSession.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/protocol/IrisSession.java rename to core/src/main/java/art/arcane/iris/platform/protocol/IrisSession.java index abdd499da..5b98de997 100644 --- a/core/src/main/java/art/arcane/iris/core/protocol/IrisSession.java +++ b/core/src/main/java/art/arcane/iris/platform/protocol/IrisSession.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.protocol; +package art.arcane.iris.platform.protocol; import art.arcane.iris.spi.protocol.IrisMessage; import art.arcane.iris.spi.protocol.IrisMessageCodec; diff --git a/core/src/main/java/art/arcane/iris/core/protocol/IrisSessionRegistry.java b/core/src/main/java/art/arcane/iris/platform/protocol/IrisSessionRegistry.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/protocol/IrisSessionRegistry.java rename to core/src/main/java/art/arcane/iris/platform/protocol/IrisSessionRegistry.java index 07a800f18..9c8eedd1d 100644 --- a/core/src/main/java/art/arcane/iris/core/protocol/IrisSessionRegistry.java +++ b/core/src/main/java/art/arcane/iris/platform/protocol/IrisSessionRegistry.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.protocol; +package art.arcane.iris.platform.protocol; import java.util.concurrent.ConcurrentHashMap; diff --git a/core/src/main/java/art/arcane/iris/core/protocol/IrisTileEncoder.java b/core/src/main/java/art/arcane/iris/platform/protocol/IrisTileEncoder.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/protocol/IrisTileEncoder.java rename to core/src/main/java/art/arcane/iris/platform/protocol/IrisTileEncoder.java index c0c45bdef..66ac88234 100644 --- a/core/src/main/java/art/arcane/iris/core/protocol/IrisTileEncoder.java +++ b/core/src/main/java/art/arcane/iris/platform/protocol/IrisTileEncoder.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.protocol; +package art.arcane.iris.platform.protocol; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.render.IrisRenderer; -import art.arcane.iris.engine.framework.render.RenderType; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.studio.render.IrisRenderer; +import art.arcane.iris.studio.render.RenderType; import art.arcane.iris.spi.protocol.IrisMessage; import art.arcane.iris.spi.protocol.IrisProtocol; diff --git a/core/src/main/java/art/arcane/iris/core/protocol/IrisVisionRequestService.java b/core/src/main/java/art/arcane/iris/platform/protocol/IrisVisionRequestService.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/protocol/IrisVisionRequestService.java rename to core/src/main/java/art/arcane/iris/platform/protocol/IrisVisionRequestService.java index 39dc2d393..15677745c 100644 --- a/core/src/main/java/art/arcane/iris/core/protocol/IrisVisionRequestService.java +++ b/core/src/main/java/art/arcane/iris/platform/protocol/IrisVisionRequestService.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.protocol; +package art.arcane.iris.platform.protocol; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.PreservationRegistry; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.PreservationRegistry; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.spi.protocol.IrisMessage; diff --git a/core/src/main/java/art/arcane/iris/core/protocol/VisionTileRequestHandler.java b/core/src/main/java/art/arcane/iris/platform/protocol/VisionTileRequestHandler.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/protocol/VisionTileRequestHandler.java rename to core/src/main/java/art/arcane/iris/platform/protocol/VisionTileRequestHandler.java index ccfdb755b..7fbb5ea14 100644 --- a/core/src/main/java/art/arcane/iris/core/protocol/VisionTileRequestHandler.java +++ b/core/src/main/java/art/arcane/iris/platform/protocol/VisionTileRequestHandler.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.protocol; +package art.arcane.iris.platform.protocol; @FunctionalInterface public interface VisionTileRequestHandler { diff --git a/core/src/main/java/art/arcane/iris/util/common/reflect/KeyedType.java b/core/src/main/java/art/arcane/iris/platform/reflect/KeyedType.java similarity index 93% rename from core/src/main/java/art/arcane/iris/util/common/reflect/KeyedType.java rename to core/src/main/java/art/arcane/iris/platform/reflect/KeyedType.java index c712cd0fd..cd15ab028 100644 --- a/core/src/main/java/art/arcane/iris/util/common/reflect/KeyedType.java +++ b/core/src/main/java/art/arcane/iris/platform/reflect/KeyedType.java @@ -1,10 +1,10 @@ -package art.arcane.iris.util.common.reflect; +package art.arcane.iris.platform.reflect; import com.google.gson.Gson; import com.google.gson.TypeAdapter; import com.google.gson.reflect.TypeToken; -import art.arcane.iris.util.common.data.registry.RegistryTypeAdapter; -import art.arcane.iris.util.common.data.registry.RegistryUtil; +import art.arcane.iris.platform.bukkit.registry.RegistryTypeAdapter; +import art.arcane.iris.platform.bukkit.registry.RegistryUtil; import org.bukkit.Keyed; import org.bukkit.NamespacedKey; import org.jetbrains.annotations.Nullable; diff --git a/core/src/main/java/art/arcane/iris/util/common/reflect/W.java b/core/src/main/java/art/arcane/iris/platform/reflect/W.java similarity index 78% rename from core/src/main/java/art/arcane/iris/util/common/reflect/W.java rename to core/src/main/java/art/arcane/iris/platform/reflect/W.java index 7d04f895c..b2955397d 100644 --- a/core/src/main/java/art/arcane/iris/util/common/reflect/W.java +++ b/core/src/main/java/art/arcane/iris/platform/reflect/W.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.common.reflect; +package art.arcane.iris.platform.reflect; import lombok.Getter; diff --git a/core/src/main/java/art/arcane/iris/util/common/reflect/WrappedField.java b/core/src/main/java/art/arcane/iris/platform/reflect/WrappedField.java similarity index 97% rename from core/src/main/java/art/arcane/iris/util/common/reflect/WrappedField.java rename to core/src/main/java/art/arcane/iris/platform/reflect/WrappedField.java index 7fd8e13c4..e6b93351a 100644 --- a/core/src/main/java/art/arcane/iris/util/common/reflect/WrappedField.java +++ b/core/src/main/java/art/arcane/iris/platform/reflect/WrappedField.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.common.reflect; +package art.arcane.iris.platform.reflect; import art.arcane.iris.spi.IrisLogging; diff --git a/core/src/main/java/art/arcane/iris/util/common/reflect/WrappedReturningMethod.java b/core/src/main/java/art/arcane/iris/platform/reflect/WrappedReturningMethod.java similarity index 96% rename from core/src/main/java/art/arcane/iris/util/common/reflect/WrappedReturningMethod.java rename to core/src/main/java/art/arcane/iris/platform/reflect/WrappedReturningMethod.java index 02b220921..922933748 100644 --- a/core/src/main/java/art/arcane/iris/util/common/reflect/WrappedReturningMethod.java +++ b/core/src/main/java/art/arcane/iris/platform/reflect/WrappedReturningMethod.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.common.reflect; +package art.arcane.iris.platform.reflect; import art.arcane.iris.spi.IrisLogging; diff --git a/core/src/main/java/art/arcane/iris/core/structure/BulkStructureImporter.java b/core/src/main/java/art/arcane/iris/structure/BulkStructureImporter.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/structure/BulkStructureImporter.java rename to core/src/main/java/art/arcane/iris/structure/BulkStructureImporter.java index 53a1854d2..f790507c9 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/BulkStructureImporter.java +++ b/core/src/main/java/art/arcane/iris/structure/BulkStructureImporter.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.structure; +package art.arcane.iris.structure; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.util.common.format.C; -import art.arcane.iris.util.common.plugin.VolmitSender; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.localization.C; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; import art.arcane.volmlib.util.collection.KList; import org.bukkit.Bukkit; import org.bukkit.NamespacedKey; @@ -37,8 +37,8 @@ import java.util.TreeMap; import java.util.TreeSet; import java.util.function.Predicate; -import art.arcane.iris.core.localization.BukkitRuntimeMessages; -import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.localization.BukkitRuntimeMessages; +import art.arcane.iris.localization.IrisLanguage; import art.arcane.volmlib.util.localization.MessageArgument; public final class BulkStructureImporter { public record Report( diff --git a/core/src/main/java/art/arcane/iris/core/structure/FeatureImporter.java b/core/src/main/java/art/arcane/iris/structure/FeatureImporter.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/structure/FeatureImporter.java rename to core/src/main/java/art/arcane/iris/structure/FeatureImporter.java index 353c39446..cfcf1619d 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/FeatureImporter.java +++ b/core/src/main/java/art/arcane/iris/structure/FeatureImporter.java @@ -16,26 +16,26 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.structure; +package art.arcane.iris.structure; -import art.arcane.iris.core.IrisWorldStorage; -import art.arcane.iris.core.ServerConfigurator; -import art.arcane.iris.core.WorldCreatorCompat; -import art.arcane.iris.core.lifecycle.LifecycleOperationCoordinator; -import art.arcane.iris.core.lifecycle.WorldLifecycleService; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.core.pack.AtomicDirectoryPublisher; -import art.arcane.iris.core.runtime.WorldDeletionQueue; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.core.tools.TreePlausibilizer; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.world.IrisWorldStorage; +import art.arcane.iris.pack.datapack.ServerConfigurator; +import art.arcane.iris.world.WorldCreatorCompat; +import art.arcane.iris.world.lifecycle.LifecycleOperationCoordinator; +import art.arcane.iris.world.lifecycle.WorldLifecycleService; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.pack.AtomicDirectoryPublisher; +import art.arcane.iris.world.runtime.WorldDeletionQueue; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.studio.tree.TreePlausibilizer; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.util.common.format.C; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.localization.C; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.bukkit.WorldIdentity; import org.bukkit.Material; @@ -70,8 +70,8 @@ import java.util.function.BooleanSupplier; import java.util.function.Function; import java.util.function.Supplier; -import art.arcane.iris.core.localization.BukkitRuntimeMessages; -import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.localization.BukkitRuntimeMessages; +import art.arcane.iris.localization.IrisLanguage; import art.arcane.volmlib.util.localization.MessageArgument; public final class FeatureImporter { public record Report(int total, int imported, int skipped, int failed) { diff --git a/core/src/main/java/art/arcane/iris/core/structure/StructureCaptureImporter.java b/core/src/main/java/art/arcane/iris/structure/StructureCaptureImporter.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/structure/StructureCaptureImporter.java rename to core/src/main/java/art/arcane/iris/structure/StructureCaptureImporter.java index 70b3fce95..49559077c 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/StructureCaptureImporter.java +++ b/core/src/main/java/art/arcane/iris/structure/StructureCaptureImporter.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.structure; +package art.arcane.iris.structure; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.util.common.format.C; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.localization.C; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.collection.KList; import org.bukkit.Material; import org.bukkit.World; @@ -40,8 +40,8 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; -import art.arcane.iris.core.localization.BukkitRuntimeMessages; -import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.localization.BukkitRuntimeMessages; +import art.arcane.iris.localization.IrisLanguage; import art.arcane.volmlib.util.localization.MessageArgument; public final class StructureCaptureImporter { public record Report(int total, int imported, int skipped, int failed) { diff --git a/core/src/main/java/art/arcane/iris/core/structure/StructureImporter.java b/core/src/main/java/art/arcane/iris/structure/StructureImporter.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/structure/StructureImporter.java rename to core/src/main/java/art/arcane/iris/structure/StructureImporter.java index f4bbc4189..16b277355 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/StructureImporter.java +++ b/core/src/main/java/art/arcane/iris/structure/StructureImporter.java @@ -16,23 +16,23 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.structure; +package art.arcane.iris.structure; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.structure.authoring.IrisStructureBundleFactory; -import art.arcane.iris.core.structure.authoring.StructureBackend; -import art.arcane.iris.core.structure.authoring.StructureCapability; -import art.arcane.iris.core.structure.authoring.StructureKey; -import art.arcane.iris.core.structure.authoring.StructureLoss; -import art.arcane.iris.core.structure.authoring.StructureResourceBundle; -import art.arcane.iris.core.structure.authoring.StructureSource; -import art.arcane.iris.core.structure.authoring.StructureTransactionWriter; -import art.arcane.iris.core.structure.authoring.StructureWriteMode; -import art.arcane.iris.core.structure.authoring.StructureWriteResult; -import art.arcane.iris.engine.framework.structure.StructureGraphValidationException; -import art.arcane.iris.engine.framework.structure.StructureResourceBundleGraphCompiler; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.LegacyTileData; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.structure.authoring.IrisStructureBundleFactory; +import art.arcane.iris.structure.authoring.StructureBackend; +import art.arcane.iris.structure.authoring.StructureCapability; +import art.arcane.iris.structure.authoring.StructureKey; +import art.arcane.iris.structure.authoring.StructureLoss; +import art.arcane.iris.structure.authoring.StructureResourceBundle; +import art.arcane.iris.structure.authoring.StructureSource; +import art.arcane.iris.structure.authoring.StructureTransactionWriter; +import art.arcane.iris.structure.authoring.StructureWriteMode; +import art.arcane.iris.structure.authoring.StructureWriteResult; +import art.arcane.iris.structure.graph.StructureGraphValidationException; +import art.arcane.iris.structure.graph.StructureResourceBundleGraphCompiler; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.generation.block.LegacyTileData; import art.arcane.iris.spi.IrisLogging; import com.google.gson.Gson; import com.google.gson.GsonBuilder; diff --git a/core/src/main/java/art/arcane/iris/core/structure/StructureIndexService.java b/core/src/main/java/art/arcane/iris/structure/StructureIndexService.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/structure/StructureIndexService.java rename to core/src/main/java/art/arcane/iris/structure/StructureIndexService.java index 6c1ab1b94..a1ce45bb4 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/StructureIndexService.java +++ b/core/src/main/java/art/arcane/iris/structure/StructureIndexService.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.structure; +package art.arcane.iris.structure; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.pack.loading.IrisData; import com.google.gson.GsonBuilder; import java.io.File; diff --git a/core/src/main/java/art/arcane/iris/core/structure/StructureSchemaKeys.java b/core/src/main/java/art/arcane/iris/structure/StructureSchemaKeys.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/structure/StructureSchemaKeys.java rename to core/src/main/java/art/arcane/iris/structure/StructureSchemaKeys.java index ca036489d..1b44b09cc 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/StructureSchemaKeys.java +++ b/core/src/main/java/art/arcane/iris/structure/StructureSchemaKeys.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.structure; +package art.arcane.iris.structure; import art.arcane.volmlib.util.collection.KList; diff --git a/core/src/main/java/art/arcane/iris/core/structure/VillageImporter.java b/core/src/main/java/art/arcane/iris/structure/VillageImporter.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/structure/VillageImporter.java rename to core/src/main/java/art/arcane/iris/structure/VillageImporter.java index 961da6b05..4f0e20343 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/VillageImporter.java +++ b/core/src/main/java/art/arcane/iris/structure/VillageImporter.java @@ -16,21 +16,21 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.structure; +package art.arcane.iris.structure; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.structure.authoring.StructureBackend; -import art.arcane.iris.core.structure.authoring.StructureCapability; -import art.arcane.iris.core.structure.authoring.StructureKey; -import art.arcane.iris.core.structure.authoring.StructureLoss; -import art.arcane.iris.core.structure.authoring.StructureResourceBundle; -import art.arcane.iris.core.structure.authoring.StructureSource; -import art.arcane.iris.core.structure.authoring.StructureWriteMode; -import art.arcane.iris.core.structure.authoring.StructureWriteResult; -import art.arcane.iris.engine.framework.structure.StructureGraphValidationException; -import art.arcane.iris.engine.framework.structure.StructureResourceBundleGraphCompiler; -import art.arcane.iris.engine.object.IrisJigsawBranchFailurePolicy; -import art.arcane.iris.engine.object.IrisObject; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.structure.authoring.StructureBackend; +import art.arcane.iris.structure.authoring.StructureCapability; +import art.arcane.iris.structure.authoring.StructureKey; +import art.arcane.iris.structure.authoring.StructureLoss; +import art.arcane.iris.structure.authoring.StructureResourceBundle; +import art.arcane.iris.structure.authoring.StructureSource; +import art.arcane.iris.structure.authoring.StructureWriteMode; +import art.arcane.iris.structure.authoring.StructureWriteResult; +import art.arcane.iris.structure.graph.StructureGraphValidationException; +import art.arcane.iris.structure.graph.StructureResourceBundleGraphCompiler; +import art.arcane.iris.structure.jigsaw.IrisJigsawBranchFailurePolicy; +import art.arcane.iris.structure.object.IrisObject; import art.arcane.iris.spi.IrisLogging; import com.google.gson.Gson; import com.google.gson.GsonBuilder; diff --git a/core/src/main/java/art/arcane/iris/core/structure/authoring/IrisStructureBundleFactory.java b/core/src/main/java/art/arcane/iris/structure/authoring/IrisStructureBundleFactory.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/structure/authoring/IrisStructureBundleFactory.java rename to core/src/main/java/art/arcane/iris/structure/authoring/IrisStructureBundleFactory.java index f0c25d359..6b6b4a147 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/authoring/IrisStructureBundleFactory.java +++ b/core/src/main/java/art/arcane/iris/structure/authoring/IrisStructureBundleFactory.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.structure.authoring; +package art.arcane.iris.structure.authoring; -import art.arcane.iris.engine.object.IrisObject; +import art.arcane.iris.structure.object.IrisObject; import com.google.gson.Gson; import com.google.gson.GsonBuilder; diff --git a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureBackend.java b/core/src/main/java/art/arcane/iris/structure/authoring/StructureBackend.java similarity index 94% rename from core/src/main/java/art/arcane/iris/core/structure/authoring/StructureBackend.java rename to core/src/main/java/art/arcane/iris/structure/authoring/StructureBackend.java index 015f2b869..ce603a438 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureBackend.java +++ b/core/src/main/java/art/arcane/iris/structure/authoring/StructureBackend.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.structure.authoring; +package art.arcane.iris.structure.authoring; public enum StructureBackend { NATIVE, diff --git a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureCapability.java b/core/src/main/java/art/arcane/iris/structure/authoring/StructureCapability.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/structure/authoring/StructureCapability.java rename to core/src/main/java/art/arcane/iris/structure/authoring/StructureCapability.java index 394e28720..4961455f9 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureCapability.java +++ b/core/src/main/java/art/arcane/iris/structure/authoring/StructureCapability.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.structure.authoring; +package art.arcane.iris.structure.authoring; public enum StructureCapability { BLOCKS, diff --git a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureFileOperations.java b/core/src/main/java/art/arcane/iris/structure/authoring/StructureFileOperations.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/structure/authoring/StructureFileOperations.java rename to core/src/main/java/art/arcane/iris/structure/authoring/StructureFileOperations.java index 4a16fa414..29ad3e341 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureFileOperations.java +++ b/core/src/main/java/art/arcane/iris/structure/authoring/StructureFileOperations.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.structure.authoring; +package art.arcane.iris.structure.authoring; -import art.arcane.iris.util.common.io.Durability; +import art.arcane.iris.world.storage.Durability; import java.io.IOException; import java.io.InputStream; import java.nio.channels.FileChannel; diff --git a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureHash.java b/core/src/main/java/art/arcane/iris/structure/authoring/StructureHash.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/structure/authoring/StructureHash.java rename to core/src/main/java/art/arcane/iris/structure/authoring/StructureHash.java index db64f7f0d..5e31a1f5e 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureHash.java +++ b/core/src/main/java/art/arcane/iris/structure/authoring/StructureHash.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.structure.authoring; +package art.arcane.iris.structure.authoring; import java.io.IOException; import java.io.InputStream; diff --git a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureKey.java b/core/src/main/java/art/arcane/iris/structure/authoring/StructureKey.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/structure/authoring/StructureKey.java rename to core/src/main/java/art/arcane/iris/structure/authoring/StructureKey.java index e3789de6e..a040d8d5f 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureKey.java +++ b/core/src/main/java/art/arcane/iris/structure/authoring/StructureKey.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.structure.authoring; +package art.arcane.iris.structure.authoring; import java.util.Objects; import java.util.regex.Pattern; diff --git a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureLoss.java b/core/src/main/java/art/arcane/iris/structure/authoring/StructureLoss.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/structure/authoring/StructureLoss.java rename to core/src/main/java/art/arcane/iris/structure/authoring/StructureLoss.java index b148ec8c2..ccfbe6cee 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureLoss.java +++ b/core/src/main/java/art/arcane/iris/structure/authoring/StructureLoss.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.structure.authoring; +package art.arcane.iris.structure.authoring; import java.util.Objects; import java.util.regex.Pattern; diff --git a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureOwnershipManifest.java b/core/src/main/java/art/arcane/iris/structure/authoring/StructureOwnershipManifest.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/structure/authoring/StructureOwnershipManifest.java rename to core/src/main/java/art/arcane/iris/structure/authoring/StructureOwnershipManifest.java index a4b452826..01e3c5f57 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureOwnershipManifest.java +++ b/core/src/main/java/art/arcane/iris/structure/authoring/StructureOwnershipManifest.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.structure.authoring; +package art.arcane.iris.structure.authoring; import com.google.gson.Gson; import com.google.gson.GsonBuilder; diff --git a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureRecoveryResult.java b/core/src/main/java/art/arcane/iris/structure/authoring/StructureRecoveryResult.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/structure/authoring/StructureRecoveryResult.java rename to core/src/main/java/art/arcane/iris/structure/authoring/StructureRecoveryResult.java index 0dd5f0143..079be8c3f 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureRecoveryResult.java +++ b/core/src/main/java/art/arcane/iris/structure/authoring/StructureRecoveryResult.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.structure.authoring; +package art.arcane.iris.structure.authoring; import java.nio.file.Path; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureResourceBundle.java b/core/src/main/java/art/arcane/iris/structure/authoring/StructureResourceBundle.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/structure/authoring/StructureResourceBundle.java rename to core/src/main/java/art/arcane/iris/structure/authoring/StructureResourceBundle.java index bc72603e8..ca89b5526 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureResourceBundle.java +++ b/core/src/main/java/art/arcane/iris/structure/authoring/StructureResourceBundle.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.structure.authoring; +package art.arcane.iris.structure.authoring; import java.nio.charset.StandardCharsets; import java.util.ArrayList; diff --git a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureSource.java b/core/src/main/java/art/arcane/iris/structure/authoring/StructureSource.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/structure/authoring/StructureSource.java rename to core/src/main/java/art/arcane/iris/structure/authoring/StructureSource.java index 1569f2631..b2388c253 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureSource.java +++ b/core/src/main/java/art/arcane/iris/structure/authoring/StructureSource.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.structure.authoring; +package art.arcane.iris.structure.authoring; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureTransactionJournal.java b/core/src/main/java/art/arcane/iris/structure/authoring/StructureTransactionJournal.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/structure/authoring/StructureTransactionJournal.java rename to core/src/main/java/art/arcane/iris/structure/authoring/StructureTransactionJournal.java index 6ae3ff0b5..e8a594361 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureTransactionJournal.java +++ b/core/src/main/java/art/arcane/iris/structure/authoring/StructureTransactionJournal.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.structure.authoring; +package art.arcane.iris.structure.authoring; import com.google.gson.Gson; import com.google.gson.GsonBuilder; diff --git a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureTransactionReadSet.java b/core/src/main/java/art/arcane/iris/structure/authoring/StructureTransactionReadSet.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/structure/authoring/StructureTransactionReadSet.java rename to core/src/main/java/art/arcane/iris/structure/authoring/StructureTransactionReadSet.java index fdb9493b0..7f97c95f0 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureTransactionReadSet.java +++ b/core/src/main/java/art/arcane/iris/structure/authoring/StructureTransactionReadSet.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.structure.authoring; +package art.arcane.iris.structure.authoring; import java.nio.file.Path; import java.util.ArrayList; diff --git a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureTransactionWriter.java b/core/src/main/java/art/arcane/iris/structure/authoring/StructureTransactionWriter.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/structure/authoring/StructureTransactionWriter.java rename to core/src/main/java/art/arcane/iris/structure/authoring/StructureTransactionWriter.java index 71ca995fe..434b16103 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureTransactionWriter.java +++ b/core/src/main/java/art/arcane/iris/structure/authoring/StructureTransactionWriter.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.structure.authoring; +package art.arcane.iris.structure.authoring; import com.google.gson.Gson; import com.google.gson.JsonArray; diff --git a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureWriteMode.java b/core/src/main/java/art/arcane/iris/structure/authoring/StructureWriteMode.java similarity index 94% rename from core/src/main/java/art/arcane/iris/core/structure/authoring/StructureWriteMode.java rename to core/src/main/java/art/arcane/iris/structure/authoring/StructureWriteMode.java index d9824887c..ddbb4f292 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureWriteMode.java +++ b/core/src/main/java/art/arcane/iris/structure/authoring/StructureWriteMode.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.structure.authoring; +package art.arcane.iris.structure.authoring; public enum StructureWriteMode { ADD_ONLY, diff --git a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureWriteOptions.java b/core/src/main/java/art/arcane/iris/structure/authoring/StructureWriteOptions.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/structure/authoring/StructureWriteOptions.java rename to core/src/main/java/art/arcane/iris/structure/authoring/StructureWriteOptions.java index 976c03fa3..470e8d40e 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureWriteOptions.java +++ b/core/src/main/java/art/arcane/iris/structure/authoring/StructureWriteOptions.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.structure.authoring; +package art.arcane.iris.structure.authoring; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureWriteResult.java b/core/src/main/java/art/arcane/iris/structure/authoring/StructureWriteResult.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/structure/authoring/StructureWriteResult.java rename to core/src/main/java/art/arcane/iris/structure/authoring/StructureWriteResult.java index 3826f9593..16f93afea 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/authoring/StructureWriteResult.java +++ b/core/src/main/java/art/arcane/iris/structure/authoring/StructureWriteResult.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.structure.authoring; +package art.arcane.iris.structure.authoring; import java.util.List; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionDiagnostic.java b/core/src/main/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionDiagnostic.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionDiagnostic.java rename to core/src/main/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionDiagnostic.java index 7ef7c495d..c89988c64 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionDiagnostic.java +++ b/core/src/main/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionDiagnostic.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.structure.conversion; +package art.arcane.iris.structure.conversion; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionDisposition.java b/core/src/main/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionDisposition.java similarity index 65% rename from core/src/main/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionDisposition.java rename to core/src/main/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionDisposition.java index 9d90e5a74..7c350b95a 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionDisposition.java +++ b/core/src/main/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionDisposition.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.structure.conversion; +package art.arcane.iris.structure.conversion; public enum IrisStructureAdoptionDisposition { IN_PLACE, diff --git a/core/src/main/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionInputKind.java b/core/src/main/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionInputKind.java similarity index 63% rename from core/src/main/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionInputKind.java rename to core/src/main/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionInputKind.java index ee40b8d36..b284b3617 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionInputKind.java +++ b/core/src/main/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionInputKind.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.structure.conversion; +package art.arcane.iris.structure.conversion; public enum IrisStructureAdoptionInputKind { UNOWNED_IRIS, diff --git a/core/src/main/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionLimits.java b/core/src/main/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionLimits.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionLimits.java rename to core/src/main/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionLimits.java index 1273b2ea4..ee0d83347 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionLimits.java +++ b/core/src/main/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionLimits.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.structure.conversion; +package art.arcane.iris.structure.conversion; import java.time.Duration; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionPlan.java b/core/src/main/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionPlan.java similarity index 94% rename from core/src/main/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionPlan.java rename to core/src/main/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionPlan.java index e0d3a56f8..021c6942d 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionPlan.java +++ b/core/src/main/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionPlan.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.structure.conversion; +package art.arcane.iris.structure.conversion; -import art.arcane.iris.core.structure.authoring.StructureHash; -import art.arcane.iris.core.structure.authoring.StructureKey; -import art.arcane.iris.core.structure.authoring.StructureTransactionReadSet; +import art.arcane.iris.structure.authoring.StructureHash; +import art.arcane.iris.structure.authoring.StructureKey; +import art.arcane.iris.structure.authoring.StructureTransactionReadSet; import java.time.Instant; import java.util.ArrayList; diff --git a/core/src/main/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionReceipt.java b/core/src/main/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionReceipt.java similarity index 92% rename from core/src/main/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionReceipt.java rename to core/src/main/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionReceipt.java index e6ef0af02..4adc9a570 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionReceipt.java +++ b/core/src/main/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionReceipt.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.structure.conversion; +package art.arcane.iris.structure.conversion; -import art.arcane.iris.core.structure.authoring.StructureHash; -import art.arcane.iris.core.structure.authoring.StructureKey; -import art.arcane.iris.core.structure.authoring.StructureOwnershipManifest; +import art.arcane.iris.structure.authoring.StructureHash; +import art.arcane.iris.structure.authoring.StructureKey; +import art.arcane.iris.structure.authoring.StructureOwnershipManifest; import java.time.Instant; import java.util.Collections; diff --git a/core/src/main/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionRequest.java b/core/src/main/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionRequest.java similarity index 91% rename from core/src/main/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionRequest.java rename to core/src/main/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionRequest.java index 1279b54d5..c4d3b23b7 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionRequest.java +++ b/core/src/main/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionRequest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.structure.conversion; +package art.arcane.iris.structure.conversion; -import art.arcane.iris.core.structure.authoring.StructureKey; -import art.arcane.iris.core.structure.authoring.StructureResourceBundle; +import art.arcane.iris.structure.authoring.StructureKey; +import art.arcane.iris.structure.authoring.StructureResourceBundle; import java.util.Objects; import java.util.Optional; diff --git a/core/src/main/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionResult.java b/core/src/main/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionResult.java similarity index 93% rename from core/src/main/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionResult.java rename to core/src/main/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionResult.java index 2ad166805..953452391 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionResult.java +++ b/core/src/main/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionResult.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.structure.conversion; +package art.arcane.iris.structure.conversion; -import art.arcane.iris.core.structure.authoring.StructureWriteResult; +import art.arcane.iris.structure.authoring.StructureWriteResult; import java.util.ArrayList; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionService.java b/core/src/main/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionService.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionService.java rename to core/src/main/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionService.java index db367ab36..b42457939 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionService.java +++ b/core/src/main/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionService.java @@ -1,17 +1,17 @@ -package art.arcane.iris.core.structure.conversion; +package art.arcane.iris.structure.conversion; -import art.arcane.iris.core.pack.StructurePackageClosure; -import art.arcane.iris.core.structure.authoring.StructureBackend; -import art.arcane.iris.core.structure.authoring.StructureCapability; -import art.arcane.iris.core.structure.authoring.StructureHash; -import art.arcane.iris.core.structure.authoring.StructureKey; -import art.arcane.iris.core.structure.authoring.StructureOwnershipManifest; -import art.arcane.iris.core.structure.authoring.StructureResourceBundle; -import art.arcane.iris.core.structure.authoring.StructureSource; -import art.arcane.iris.core.structure.authoring.StructureTransactionReadSet; -import art.arcane.iris.core.structure.authoring.StructureTransactionWriter; -import art.arcane.iris.core.structure.authoring.StructureWriteOptions; -import art.arcane.iris.core.structure.authoring.StructureWriteResult; +import art.arcane.iris.pack.StructurePackageClosure; +import art.arcane.iris.structure.authoring.StructureBackend; +import art.arcane.iris.structure.authoring.StructureCapability; +import art.arcane.iris.structure.authoring.StructureHash; +import art.arcane.iris.structure.authoring.StructureKey; +import art.arcane.iris.structure.authoring.StructureOwnershipManifest; +import art.arcane.iris.structure.authoring.StructureResourceBundle; +import art.arcane.iris.structure.authoring.StructureSource; +import art.arcane.iris.structure.authoring.StructureTransactionReadSet; +import art.arcane.iris.structure.authoring.StructureTransactionWriter; +import art.arcane.iris.structure.authoring.StructureWriteOptions; +import art.arcane.iris.structure.authoring.StructureWriteResult; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonArray; diff --git a/core/src/main/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionStrategy.java b/core/src/main/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionStrategy.java similarity index 61% rename from core/src/main/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionStrategy.java rename to core/src/main/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionStrategy.java index 170cb2787..f444eee29 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionStrategy.java +++ b/core/src/main/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionStrategy.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.structure.conversion; +package art.arcane.iris.structure.conversion; public enum IrisStructureAdoptionStrategy { AUTO, diff --git a/core/src/main/java/art/arcane/iris/core/structure/export/AtomicDatapackPublisher.java b/core/src/main/java/art/arcane/iris/structure/export/AtomicDatapackPublisher.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/structure/export/AtomicDatapackPublisher.java rename to core/src/main/java/art/arcane/iris/structure/export/AtomicDatapackPublisher.java index 57362fc72..b63254a3a 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/export/AtomicDatapackPublisher.java +++ b/core/src/main/java/art/arcane/iris/structure/export/AtomicDatapackPublisher.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.structure.export; +package art.arcane.iris.structure.export; import java.io.IOException; import java.nio.file.AtomicMoveNotSupportedException; diff --git a/core/src/main/java/art/arcane/iris/core/structure/export/VanillaBlockState.java b/core/src/main/java/art/arcane/iris/structure/export/VanillaBlockState.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/structure/export/VanillaBlockState.java rename to core/src/main/java/art/arcane/iris/structure/export/VanillaBlockState.java index 888521311..28da3ff49 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/export/VanillaBlockState.java +++ b/core/src/main/java/art/arcane/iris/structure/export/VanillaBlockState.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.structure.export; +package art.arcane.iris.structure.export; import art.arcane.volmlib.util.nbt.tag.CompoundTag; diff --git a/core/src/main/java/art/arcane/iris/core/structure/export/VanillaJigsawDatapackExporter.java b/core/src/main/java/art/arcane/iris/structure/export/VanillaJigsawDatapackExporter.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/structure/export/VanillaJigsawDatapackExporter.java rename to core/src/main/java/art/arcane/iris/structure/export/VanillaJigsawDatapackExporter.java index d2e2a9b50..0c0329085 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/export/VanillaJigsawDatapackExporter.java +++ b/core/src/main/java/art/arcane/iris/structure/export/VanillaJigsawDatapackExporter.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.structure.export; +package art.arcane.iris.structure.export; import java.io.IOException; import java.nio.file.Files; diff --git a/core/src/main/java/art/arcane/iris/core/structure/export/VanillaJigsawExportCompiler.java b/core/src/main/java/art/arcane/iris/structure/export/VanillaJigsawExportCompiler.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/structure/export/VanillaJigsawExportCompiler.java rename to core/src/main/java/art/arcane/iris/structure/export/VanillaJigsawExportCompiler.java index 73f45f97d..ac79463ec 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/export/VanillaJigsawExportCompiler.java +++ b/core/src/main/java/art/arcane/iris/structure/export/VanillaJigsawExportCompiler.java @@ -1,24 +1,24 @@ -package art.arcane.iris.core.structure.export; +package art.arcane.iris.structure.export; -import art.arcane.iris.engine.framework.structure.CompiledStructureGraph; -import art.arcane.iris.engine.framework.structure.PlanarJigsawWorkcellResolver; -import art.arcane.iris.engine.framework.structure.StructureGraphCompilation; -import art.arcane.iris.engine.framework.structure.StructureGraphCompiler; -import art.arcane.iris.engine.framework.structure.StructureGraphDiagnostic; -import art.arcane.iris.engine.object.IrisJigsawCompatibility; -import art.arcane.iris.engine.object.IrisJigsawConnector; -import art.arcane.iris.engine.object.IrisJigsawMode; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisJigsawPieceEntry; -import art.arcane.iris.engine.object.IrisJigsawPieceRules; -import art.arcane.iris.engine.object.IrisJigsawPool; -import art.arcane.iris.engine.object.IrisJigsawWorkcellArchetype; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.IrisStructure; -import art.arcane.iris.engine.object.ObjectPlaceMode; +import art.arcane.iris.structure.graph.CompiledStructureGraph; +import art.arcane.iris.structure.graph.PlanarJigsawWorkcellResolver; +import art.arcane.iris.structure.graph.StructureGraphCompilation; +import art.arcane.iris.structure.graph.StructureGraphCompiler; +import art.arcane.iris.structure.graph.StructureGraphDiagnostic; +import art.arcane.iris.structure.jigsaw.IrisJigsawCompatibility; +import art.arcane.iris.structure.jigsaw.IrisJigsawConnector; +import art.arcane.iris.structure.jigsaw.IrisJigsawMode; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.jigsaw.IrisJigsawPieceEntry; +import art.arcane.iris.structure.jigsaw.IrisJigsawPieceRules; +import art.arcane.iris.structure.jigsaw.IrisJigsawPool; +import art.arcane.iris.structure.jigsaw.IrisJigsawWorkcellArchetype; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.structure.placement.IrisStructure; +import art.arcane.iris.structure.object.ObjectPlaceMode; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.generation.geometry.IrisBlockVector; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonArray; diff --git a/core/src/main/java/art/arcane/iris/core/structure/export/VanillaJigsawExportDiagnostic.java b/core/src/main/java/art/arcane/iris/structure/export/VanillaJigsawExportDiagnostic.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/structure/export/VanillaJigsawExportDiagnostic.java rename to core/src/main/java/art/arcane/iris/structure/export/VanillaJigsawExportDiagnostic.java index 42aa3b160..15bc3773c 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/export/VanillaJigsawExportDiagnostic.java +++ b/core/src/main/java/art/arcane/iris/structure/export/VanillaJigsawExportDiagnostic.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.structure.export; +package art.arcane.iris.structure.export; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/core/structure/export/VanillaJigsawExportFormat.java b/core/src/main/java/art/arcane/iris/structure/export/VanillaJigsawExportFormat.java similarity index 58% rename from core/src/main/java/art/arcane/iris/core/structure/export/VanillaJigsawExportFormat.java rename to core/src/main/java/art/arcane/iris/structure/export/VanillaJigsawExportFormat.java index f9665dd78..0a252a257 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/export/VanillaJigsawExportFormat.java +++ b/core/src/main/java/art/arcane/iris/structure/export/VanillaJigsawExportFormat.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.structure.export; +package art.arcane.iris.structure.export; public enum VanillaJigsawExportFormat { DIRECTORY, diff --git a/core/src/main/java/art/arcane/iris/core/structure/export/VanillaJigsawExportRequest.java b/core/src/main/java/art/arcane/iris/structure/export/VanillaJigsawExportRequest.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/structure/export/VanillaJigsawExportRequest.java rename to core/src/main/java/art/arcane/iris/structure/export/VanillaJigsawExportRequest.java index 1f0def324..912c0d032 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/export/VanillaJigsawExportRequest.java +++ b/core/src/main/java/art/arcane/iris/structure/export/VanillaJigsawExportRequest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.structure.export; +package art.arcane.iris.structure.export; import java.nio.file.Path; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/core/structure/export/VanillaJigsawExportResult.java b/core/src/main/java/art/arcane/iris/structure/export/VanillaJigsawExportResult.java similarity index 94% rename from core/src/main/java/art/arcane/iris/core/structure/export/VanillaJigsawExportResult.java rename to core/src/main/java/art/arcane/iris/structure/export/VanillaJigsawExportResult.java index e3fc24e20..734a3891a 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/export/VanillaJigsawExportResult.java +++ b/core/src/main/java/art/arcane/iris/structure/export/VanillaJigsawExportResult.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.structure.export; +package art.arcane.iris.structure.export; import java.nio.file.Path; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/core/structure/export/VanillaJigsawExportSettings.java b/core/src/main/java/art/arcane/iris/structure/export/VanillaJigsawExportSettings.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/structure/export/VanillaJigsawExportSettings.java rename to core/src/main/java/art/arcane/iris/structure/export/VanillaJigsawExportSettings.java index ae4522815..f90cc6c7d 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/export/VanillaJigsawExportSettings.java +++ b/core/src/main/java/art/arcane/iris/structure/export/VanillaJigsawExportSettings.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.structure.export; +package art.arcane.iris.structure.export; import java.util.ArrayList; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/core/structure/export/VanillaJigsawExportSource.java b/core/src/main/java/art/arcane/iris/structure/export/VanillaJigsawExportSource.java similarity index 89% rename from core/src/main/java/art/arcane/iris/core/structure/export/VanillaJigsawExportSource.java rename to core/src/main/java/art/arcane/iris/structure/export/VanillaJigsawExportSource.java index e063d0faa..3c36cb2ae 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/export/VanillaJigsawExportSource.java +++ b/core/src/main/java/art/arcane/iris/structure/export/VanillaJigsawExportSource.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.structure.export; +package art.arcane.iris.structure.export; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.structure.StructureGraphResolver; -import art.arcane.iris.engine.object.IrisStructure; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.structure.graph.StructureGraphResolver; +import art.arcane.iris.structure.placement.IrisStructure; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/core/structure/export/VanillaJigsawExportValidation.java b/core/src/main/java/art/arcane/iris/structure/export/VanillaJigsawExportValidation.java similarity index 92% rename from core/src/main/java/art/arcane/iris/core/structure/export/VanillaJigsawExportValidation.java rename to core/src/main/java/art/arcane/iris/structure/export/VanillaJigsawExportValidation.java index 6144e593c..68d08d141 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/export/VanillaJigsawExportValidation.java +++ b/core/src/main/java/art/arcane/iris/structure/export/VanillaJigsawExportValidation.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.structure.export; +package art.arcane.iris.structure.export; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/core/structure/export/VanillaResourceIdentifier.java b/core/src/main/java/art/arcane/iris/structure/export/VanillaResourceIdentifier.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/structure/export/VanillaResourceIdentifier.java rename to core/src/main/java/art/arcane/iris/structure/export/VanillaResourceIdentifier.java index a457c14de..7487361a7 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/export/VanillaResourceIdentifier.java +++ b/core/src/main/java/art/arcane/iris/structure/export/VanillaResourceIdentifier.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.structure.export; +package art.arcane.iris.structure.export; import java.util.regex.Pattern; diff --git a/core/src/main/java/art/arcane/iris/core/structure/export/VanillaStructureTemplateEncoder.java b/core/src/main/java/art/arcane/iris/structure/export/VanillaStructureTemplateEncoder.java similarity index 94% rename from core/src/main/java/art/arcane/iris/core/structure/export/VanillaStructureTemplateEncoder.java rename to core/src/main/java/art/arcane/iris/structure/export/VanillaStructureTemplateEncoder.java index 2de7db6c3..8b8b6f655 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/export/VanillaStructureTemplateEncoder.java +++ b/core/src/main/java/art/arcane/iris/structure/export/VanillaStructureTemplateEncoder.java @@ -1,13 +1,13 @@ -package art.arcane.iris.core.structure.export; +package art.arcane.iris.structure.export; -import art.arcane.iris.engine.object.IrisDirection; -import art.arcane.iris.engine.object.IrisJigsawConnector; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisPosition; +import art.arcane.iris.pack.value.IrisDirection; +import art.arcane.iris.structure.jigsaw.IrisJigsawConnector; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.pack.value.IrisPosition; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.math.IrisBlockVector; -import art.arcane.iris.util.common.math.Vector3i; +import art.arcane.iris.generation.geometry.IrisBlockVector; +import art.arcane.volmlib.util.math.Vector3i; import art.arcane.volmlib.util.nbt.io.NBTUtil; import art.arcane.volmlib.util.nbt.io.NamedTag; import art.arcane.volmlib.util.nbt.tag.CompoundTag; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/structure/CompiledStructureGraph.java b/core/src/main/java/art/arcane/iris/structure/graph/CompiledStructureGraph.java similarity index 91% rename from core/src/main/java/art/arcane/iris/engine/framework/structure/CompiledStructureGraph.java rename to core/src/main/java/art/arcane/iris/structure/graph/CompiledStructureGraph.java index 3a5e70c2c..dea42d38e 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/structure/CompiledStructureGraph.java +++ b/core/src/main/java/art/arcane/iris/structure/graph/CompiledStructureGraph.java @@ -1,9 +1,9 @@ -package art.arcane.iris.engine.framework.structure; +package art.arcane.iris.structure.graph; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisJigsawPool; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisStructure; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.jigsaw.IrisJigsawPool; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.placement.IrisStructure; import java.util.Collections; import java.util.LinkedHashMap; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/structure/IrisObjectFrameReader.java b/core/src/main/java/art/arcane/iris/structure/graph/IrisObjectFrameReader.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/framework/structure/IrisObjectFrameReader.java rename to core/src/main/java/art/arcane/iris/structure/graph/IrisObjectFrameReader.java index 0a4341e2a..33c9ff26f 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/structure/IrisObjectFrameReader.java +++ b/core/src/main/java/art/arcane/iris/structure/graph/IrisObjectFrameReader.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.framework.structure; +package art.arcane.iris.structure.graph; -import art.arcane.iris.engine.object.IrisObject; +import art.arcane.iris.structure.object.IrisObject; import com.google.gson.JsonElement; import com.google.gson.JsonParser; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/structure/JigsawPoolSelection.java b/core/src/main/java/art/arcane/iris/structure/graph/JigsawPoolSelection.java similarity index 90% rename from core/src/main/java/art/arcane/iris/engine/framework/structure/JigsawPoolSelection.java rename to core/src/main/java/art/arcane/iris/structure/graph/JigsawPoolSelection.java index 3cf93c2f7..b785cc9ac 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/structure/JigsawPoolSelection.java +++ b/core/src/main/java/art/arcane/iris/structure/graph/JigsawPoolSelection.java @@ -1,11 +1,11 @@ -package art.arcane.iris.engine.framework.structure; +package art.arcane.iris.structure.graph; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisJigsawPieceEntry; -import art.arcane.iris.engine.object.IrisJigsawPieceRules; -import art.arcane.iris.engine.object.IrisJigsawPool; -import art.arcane.iris.engine.object.IrisJigsawThemeSet; -import art.arcane.iris.engine.object.IrisStructure; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.jigsaw.IrisJigsawPieceEntry; +import art.arcane.iris.structure.jigsaw.IrisJigsawPieceRules; +import art.arcane.iris.structure.jigsaw.IrisJigsawPool; +import art.arcane.iris.structure.jigsaw.IrisJigsawThemeSet; +import art.arcane.iris.structure.placement.IrisStructure; import art.arcane.volmlib.util.math.RNG; import java.util.ArrayList; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/structure/PlanarJigsawWorkcellResolver.java b/core/src/main/java/art/arcane/iris/structure/graph/PlanarJigsawWorkcellResolver.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/framework/structure/PlanarJigsawWorkcellResolver.java rename to core/src/main/java/art/arcane/iris/structure/graph/PlanarJigsawWorkcellResolver.java index 26237e087..e382abac1 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/structure/PlanarJigsawWorkcellResolver.java +++ b/core/src/main/java/art/arcane/iris/structure/graph/PlanarJigsawWorkcellResolver.java @@ -1,11 +1,11 @@ -package art.arcane.iris.engine.framework.structure; +package art.arcane.iris.structure.graph; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisJigsawWorkcell; -import art.arcane.iris.engine.object.IrisJigsawWorkcellArchetype; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.IrisStructure; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.jigsaw.IrisJigsawWorkcell; +import art.arcane.iris.structure.jigsaw.IrisJigsawWorkcellArchetype; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.structure.placement.IrisStructure; import java.util.Collections; import java.util.EnumMap; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/structure/StructureAssemblyResult.java b/core/src/main/java/art/arcane/iris/structure/graph/StructureAssemblyResult.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/framework/structure/StructureAssemblyResult.java rename to core/src/main/java/art/arcane/iris/structure/graph/StructureAssemblyResult.java index 02d7d1e87..7523dfc69 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/structure/StructureAssemblyResult.java +++ b/core/src/main/java/art/arcane/iris/structure/graph/StructureAssemblyResult.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.framework.structure; +package art.arcane.iris.structure.graph; -import art.arcane.iris.engine.framework.PlacedStructurePiece; +import art.arcane.iris.structure.placement.PlacedStructurePiece; import java.util.List; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/structure/StructureAssemblyStatus.java b/core/src/main/java/art/arcane/iris/structure/graph/StructureAssemblyStatus.java similarity index 85% rename from core/src/main/java/art/arcane/iris/engine/framework/structure/StructureAssemblyStatus.java rename to core/src/main/java/art/arcane/iris/structure/graph/StructureAssemblyStatus.java index c8642ab59..4b61947d8 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/structure/StructureAssemblyStatus.java +++ b/core/src/main/java/art/arcane/iris/structure/graph/StructureAssemblyStatus.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.framework.structure; +package art.arcane.iris.structure.graph; public enum StructureAssemblyStatus { COMPLETE, diff --git a/core/src/main/java/art/arcane/iris/engine/framework/structure/StructureGraphAssemblySample.java b/core/src/main/java/art/arcane/iris/structure/graph/StructureGraphAssemblySample.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/framework/structure/StructureGraphAssemblySample.java rename to core/src/main/java/art/arcane/iris/structure/graph/StructureGraphAssemblySample.java index b045843f6..ffc0f5632 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/structure/StructureGraphAssemblySample.java +++ b/core/src/main/java/art/arcane/iris/structure/graph/StructureGraphAssemblySample.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.framework.structure; +package art.arcane.iris.structure.graph; import java.util.List; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/structure/StructureGraphCatalog.java b/core/src/main/java/art/arcane/iris/structure/graph/StructureGraphCatalog.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/framework/structure/StructureGraphCatalog.java rename to core/src/main/java/art/arcane/iris/structure/graph/StructureGraphCatalog.java index 0ec1d3e07..b35879a2c 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/structure/StructureGraphCatalog.java +++ b/core/src/main/java/art/arcane/iris/structure/graph/StructureGraphCatalog.java @@ -1,9 +1,9 @@ -package art.arcane.iris.engine.framework.structure; +package art.arcane.iris.structure.graph; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.StructureAssembler; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.IrisStructure; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.structure.placement.StructureAssembler; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.structure.placement.IrisStructure; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.math.RNG; import com.github.benmanes.caffeine.cache.Cache; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/structure/StructureGraphCompilation.java b/core/src/main/java/art/arcane/iris/structure/graph/StructureGraphCompilation.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/framework/structure/StructureGraphCompilation.java rename to core/src/main/java/art/arcane/iris/structure/graph/StructureGraphCompilation.java index a0accb9c7..b4a477559 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/structure/StructureGraphCompilation.java +++ b/core/src/main/java/art/arcane/iris/structure/graph/StructureGraphCompilation.java @@ -1,12 +1,12 @@ -package art.arcane.iris.engine.framework.structure; +package art.arcane.iris.structure.graph; -import art.arcane.iris.engine.object.IrisJigsawConnector; -import art.arcane.iris.engine.object.IrisJigsawBranchFailurePolicy; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisJigsawPieceEntry; -import art.arcane.iris.engine.object.IrisJigsawPool; -import art.arcane.iris.engine.object.IrisJigsawThemeSet; -import art.arcane.iris.engine.object.IrisObject; +import art.arcane.iris.structure.jigsaw.IrisJigsawConnector; +import art.arcane.iris.structure.jigsaw.IrisJigsawBranchFailurePolicy; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.jigsaw.IrisJigsawPieceEntry; +import art.arcane.iris.structure.jigsaw.IrisJigsawPool; +import art.arcane.iris.structure.jigsaw.IrisJigsawThemeSet; +import art.arcane.iris.structure.object.IrisObject; import java.util.ArrayList; import java.util.Collections; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/structure/StructureGraphCompiler.java b/core/src/main/java/art/arcane/iris/structure/graph/StructureGraphCompiler.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/framework/structure/StructureGraphCompiler.java rename to core/src/main/java/art/arcane/iris/structure/graph/StructureGraphCompiler.java index 48546695e..2f963c9d4 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/structure/StructureGraphCompiler.java +++ b/core/src/main/java/art/arcane/iris/structure/graph/StructureGraphCompiler.java @@ -1,22 +1,22 @@ -package art.arcane.iris.engine.framework.structure; +package art.arcane.iris.structure.graph; -import art.arcane.iris.engine.framework.PlacedStructurePiece; -import art.arcane.iris.engine.framework.StructureAssembler; -import art.arcane.iris.engine.object.IrisDirection; -import art.arcane.iris.engine.object.IrisJigsawBranchFailurePolicy; -import art.arcane.iris.engine.object.IrisJigsawCompatibility; -import art.arcane.iris.engine.object.IrisJigsawConnector; -import art.arcane.iris.engine.object.IrisJigsawMode; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisJigsawPieceEntry; -import art.arcane.iris.engine.object.IrisJigsawPieceRules; -import art.arcane.iris.engine.object.IrisJigsawPool; -import art.arcane.iris.engine.object.IrisJigsawThemeSet; -import art.arcane.iris.engine.object.IrisJigsawWorkcellArchetype; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.IrisStructure; -import art.arcane.iris.engine.object.JigsawJoint; +import art.arcane.iris.structure.placement.PlacedStructurePiece; +import art.arcane.iris.structure.placement.StructureAssembler; +import art.arcane.iris.pack.value.IrisDirection; +import art.arcane.iris.structure.jigsaw.IrisJigsawBranchFailurePolicy; +import art.arcane.iris.structure.jigsaw.IrisJigsawCompatibility; +import art.arcane.iris.structure.jigsaw.IrisJigsawConnector; +import art.arcane.iris.structure.jigsaw.IrisJigsawMode; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.jigsaw.IrisJigsawPieceEntry; +import art.arcane.iris.structure.jigsaw.IrisJigsawPieceRules; +import art.arcane.iris.structure.jigsaw.IrisJigsawPool; +import art.arcane.iris.structure.jigsaw.IrisJigsawThemeSet; +import art.arcane.iris.structure.jigsaw.IrisJigsawWorkcellArchetype; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.structure.placement.IrisStructure; +import art.arcane.iris.structure.jigsaw.JigsawJoint; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/structure/StructureGraphDiagnostic.java b/core/src/main/java/art/arcane/iris/structure/graph/StructureGraphDiagnostic.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/framework/structure/StructureGraphDiagnostic.java rename to core/src/main/java/art/arcane/iris/structure/graph/StructureGraphDiagnostic.java index e6fc5a636..f8774bc1f 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/structure/StructureGraphDiagnostic.java +++ b/core/src/main/java/art/arcane/iris/structure/graph/StructureGraphDiagnostic.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.framework.structure; +package art.arcane.iris.structure.graph; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/structure/StructureGraphResolver.java b/core/src/main/java/art/arcane/iris/structure/graph/StructureGraphResolver.java similarity index 87% rename from core/src/main/java/art/arcane/iris/engine/framework/structure/StructureGraphResolver.java rename to core/src/main/java/art/arcane/iris/structure/graph/StructureGraphResolver.java index d252b0a5a..8308e241d 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/structure/StructureGraphResolver.java +++ b/core/src/main/java/art/arcane/iris/structure/graph/StructureGraphResolver.java @@ -1,9 +1,9 @@ -package art.arcane.iris.engine.framework.structure; +package art.arcane.iris.structure.graph; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisJigsawPool; -import art.arcane.iris.engine.object.IrisObject; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.jigsaw.IrisJigsawPool; +import art.arcane.iris.structure.object.IrisObject; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/structure/StructureGraphValidationException.java b/core/src/main/java/art/arcane/iris/structure/graph/StructureGraphValidationException.java similarity index 85% rename from core/src/main/java/art/arcane/iris/engine/framework/structure/StructureGraphValidationException.java rename to core/src/main/java/art/arcane/iris/structure/graph/StructureGraphValidationException.java index fc2b25643..1d54a4675 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/structure/StructureGraphValidationException.java +++ b/core/src/main/java/art/arcane/iris/structure/graph/StructureGraphValidationException.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.framework.structure; +package art.arcane.iris.structure.graph; public final class StructureGraphValidationException extends IllegalArgumentException { public StructureGraphValidationException(String message) { diff --git a/core/src/main/java/art/arcane/iris/engine/framework/structure/StructureResourceBundleGraphCompiler.java b/core/src/main/java/art/arcane/iris/structure/graph/StructureResourceBundleGraphCompiler.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/framework/structure/StructureResourceBundleGraphCompiler.java rename to core/src/main/java/art/arcane/iris/structure/graph/StructureResourceBundleGraphCompiler.java index 6365de942..c7baef591 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/structure/StructureResourceBundleGraphCompiler.java +++ b/core/src/main/java/art/arcane/iris/structure/graph/StructureResourceBundleGraphCompiler.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework.structure; +package art.arcane.iris.structure.graph; -import art.arcane.iris.core.structure.authoring.StructureResourceBundle; -import art.arcane.iris.engine.framework.StructureAssembler; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisJigsawPool; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.IrisStructure; +import art.arcane.iris.structure.authoring.StructureResourceBundle; +import art.arcane.iris.structure.placement.StructureAssembler; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.jigsaw.IrisJigsawPool; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.structure.placement.IrisStructure; import art.arcane.volmlib.util.math.RNG; import com.google.gson.Gson; import com.google.gson.GsonBuilder; diff --git a/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawBranchFailurePolicy.java b/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawBranchFailurePolicy.java new file mode 100644 index 000000000..a894b3b1f --- /dev/null +++ b/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawBranchFailurePolicy.java @@ -0,0 +1,12 @@ +package art.arcane.iris.structure.jigsaw; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("Controls how an Iris jigsaw assembly handles an optional connector branch that exhausts its primary pool and direct fallback without attaching a piece.") +public enum IrisJigsawBranchFailurePolicy { + @Description("Fails the complete assembly when an optional connector branch cannot attach before the maximum depth.") + FAIL_ASSEMBLY, + + @Description("Ends only the unresolved optional connector branch, matching vanilla jigsaw placement behavior.") + TERMINATE_BRANCH +} diff --git a/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawCompatibility.java b/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawCompatibility.java new file mode 100644 index 000000000..269a86e6c --- /dev/null +++ b/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawCompatibility.java @@ -0,0 +1,12 @@ +package art.arcane.iris.structure.jigsaw; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("Declares the resource compatibility target of an Iris jigsaw structure.") +public enum IrisJigsawCompatibility { + @Description("Allows Iris-specific connector metadata and placement behavior.") + IRIS_EXTENDED, + + @Description("Restricts the graph to metadata that can be represented by vanilla jigsaw resources.") + VANILLA_PORTABLE +} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawConfiguration.java b/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawConfiguration.java similarity index 52% rename from core/src/main/java/art/arcane/iris/engine/object/IrisJigsawConfiguration.java rename to core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawConfiguration.java index bf743d239..0e5e6b257 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawConfiguration.java +++ b/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawConfiguration.java @@ -1,9 +1,9 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.jigsaw; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListNativeJigsawPool; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListNativeJigsawPool; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -13,47 +13,47 @@ import lombok.experimental.Accessors; @NoArgsConstructor @AllArgsConstructor @Data -@Desc("Optional overrides applied to a live vanilla, datapack, or modded jigsaw definition before Minecraft assembles it. Omitted values preserve the registered source definition.") +@Description("Optional overrides applied to a live vanilla, datapack, or modded jigsaw definition before Minecraft assembles it. Omitted values preserve the registered source definition.") public class IrisJigsawConfiguration { - @Desc("Optional registered template-pool key used instead of the source jigsaw's start pool. Empty preserves the source pool.") + @Description("Optional registered template-pool key used instead of the source jigsaw's start pool. Empty preserves the source pool.") @RegistryListNativeJigsawPool private String startPool = ""; - @Desc("Optional start connector name. Empty preserves the source value; the literal NONE removes the source constraint.") + @Description("Optional start connector name. Empty preserves the source value; the literal NONE removes the source constraint.") private String startJigsawName = ""; @MinNumber(0) @MaxNumber(20) - @Desc("Maximum jigsaw recursion depth. Null preserves the source value.") + @Description("Maximum jigsaw recursion depth. Null preserves the source value.") private Integer maxDepth = null; @MinNumber(1) @MaxNumber(128) - @Desc("Exact horizontal block distance allowed from the start. Null preserves the source value.") + @Description("Exact horizontal block distance allowed from the start. Null preserves the source value.") private Integer maxDistanceHorizontal = null; @MinNumber(1) @MaxNumber(4064) - @Desc("Exact vertical block distance allowed from the start. Null preserves the source value.") + @Description("Exact vertical block distance allowed from the start. Null preserves the source value.") private Integer maxDistanceVertical = null; - @Desc("Expansion-hack override. Null preserves the source value.") + @Description("Expansion-hack override. Null preserves the source value.") private Boolean useExpansionHack = null; - @Desc("Heightmap projection override. SOURCE preserves the registered value and NONE removes projection.") + @Description("Heightmap projection override. SOURCE preserves the registered value and NONE removes projection.") private IrisJigsawHeightmap projectStartToHeightmap = IrisJigsawHeightmap.SOURCE; @MinNumber(0) @MaxNumber(Integer.MAX_VALUE) - @Desc("Minimum distance retained above the dimension floor. Null preserves the source value.") + @Description("Minimum distance retained above the dimension floor. Null preserves the source value.") private Integer dimensionPaddingBottom = null; @MinNumber(0) @MaxNumber(Integer.MAX_VALUE) - @Desc("Minimum distance retained below the dimension ceiling. Null preserves the source value.") + @Description("Minimum distance retained below the dimension ceiling. Null preserves the source value.") private Integer dimensionPaddingTop = null; - @Desc("Waterlogging override. SOURCE preserves the registered value.") + @Description("Waterlogging override. SOURCE preserves the registered value.") private IrisJigsawLiquidSettings liquidSettings = IrisJigsawLiquidSettings.SOURCE; public boolean hasOverrides() { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawConnector.java b/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawConnector.java similarity index 59% rename from core/src/main/java/art/arcane/iris/engine/object/IrisJigsawConnector.java rename to core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawConnector.java index 3c2477950..a2b333211 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawConnector.java +++ b/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawConnector.java @@ -16,11 +16,14 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.jigsaw; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.RegistryListResource; -import art.arcane.iris.engine.object.annotations.Required; +import art.arcane.iris.pack.value.IrisDirection; +import art.arcane.iris.pack.value.IrisPosition; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; +import art.arcane.iris.pack.schema.annotation.Required; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -31,7 +34,7 @@ import java.util.Objects; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("A jigsaw connection point on a piece. When two connectors face each other and their names match, the assembler may join the pieces.") +@Description("A jigsaw connection point on a piece. When two connectors face each other and their names match, the assembler may join the pieces.") @Data public class IrisJigsawConnector { public static IrisPosition canonicalPlanarPosition(IrisPosition cellSize, IrisDirection direction) { @@ -54,41 +57,41 @@ public class IrisJigsawConnector { } @Required - @Desc("The position of this connector relative to the piece object's origin (0,0,0 is the lowest-corner of the object).") + @Description("The position of this connector relative to the piece object's origin (0,0,0 is the lowest-corner of the object).") private IrisPosition position = new IrisPosition(); @Required - @Desc("The direction this connector faces. The connecting piece is placed on this side.") + @Description("The direction this connector faces. The connecting piece is placed on this side.") private IrisDirection direction = IrisDirection.NORTH_NEGATIVE_Z; @Required - @Desc("The connector's authored top direction, used to preserve aligned vanilla jigsaw orientation.") + @Description("The connector's authored top direction, used to preserve aligned vanilla jigsaw orientation.") private IrisDirection top = IrisDirection.UP_POSITIVE_Y; @Required @RegistryListResource(IrisJigsawPool.class) - @Desc("The jigsaw pool to draw the connecting piece from.") + @Description("The jigsaw pool to draw the connecting piece from.") private String pool = ""; - @Desc("The identity exposed by this connector. Another connector can attach when its targetName equals this name, matching Minecraft's jigsaw target-to-name contract.") + @Description("The identity exposed by this connector. Another connector can attach when its targetName equals this name, matching Minecraft's jigsaw target-to-name contract.") private String name = ""; - @Desc("The name this connector wants to connect to on the other piece.") + @Description("The name this connector wants to connect to on the other piece.") private String targetName = ""; - @Desc("Optional Iris-only connection channel. Matching is exact, case-sensitive, and whitespace-sensitive; empty channels match only other empty channels.") + @Description("Optional Iris-only connection channel. Matching is exact, case-sensitive, and whitespace-sensitive; empty channels match only other empty channels.") private String channel = ""; - @Desc("How the connecting piece may be rotated relative to this connector.") + @Description("How the connecting piece may be rotated relative to this connector.") private JigsawJoint joint = JigsawJoint.ROLLABLE; @Required - @Desc("Block state placed where this jigsaw marker was authored after assembly. Used when exporting or capturing Mojang-style jigsaw templates.") + @Description("Block state placed where this jigsaw marker was authored after assembly. Used when exporting or capturing Mojang-style jigsaw templates.") private String finalState = "minecraft:air"; - @Desc("Signed priority for selecting this connector within its piece. Higher values are processed before lower values; equal priorities preserve authored order.") + @Description("Signed priority for selecting this connector within its piece. Higher values are processed before lower values; equal priorities preserve authored order.") private int selectionPriority = 0; - @Desc("Signed priority assigned to a child piece attached through this connector. Higher-priority child pieces expand first; equal priorities preserve attachment order.") + @Description("Signed priority assigned to a child piece attached through this connector. Higher-priority child pieces expand first; equal priorities preserve attachment order.") private int placementPriority = 0; } diff --git a/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawHeightmap.java b/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawHeightmap.java new file mode 100644 index 000000000..96c4bc9d0 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawHeightmap.java @@ -0,0 +1,30 @@ +package art.arcane.iris.structure.jigsaw; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("Controls whether a configured native jigsaw projects its start onto a Minecraft heightmap.") +public enum IrisJigsawHeightmap { + @Description("Keeps the registered structure's own heightmap projection exactly as the vanilla, datapack, or mod definition declares it.") + SOURCE, + + @Description("Removes heightmap projection entirely, so the start piece lands at the structure's literal start height instead of following terrain.") + NONE, + + @Description("Drops the start piece onto the terrain top counting water as solid, so ocean starts sit on the water surface.") + WORLD_SURFACE_WG, + + @Description("Identical to WORLD_SURFACE_WG in Iris worlds: the start piece rides the terrain top including water.") + WORLD_SURFACE, + + @Description("Drops the start piece onto solid terrain, ignoring water, so ocean starts sit on the seabed.") + OCEAN_FLOOR_WG, + + @Description("Identical to OCEAN_FLOOR_WG in Iris worlds: the start piece sits on solid ground beneath any water.") + OCEAN_FLOOR, + + @Description("Behaves like WORLD_SURFACE in Iris worlds; the start piece sits on the terrain top including water.") + MOTION_BLOCKING, + + @Description("Behaves like WORLD_SURFACE in Iris worlds; Iris height queries have no leaf layer to skip.") + MOTION_BLOCKING_NO_LEAVES +} diff --git a/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawLiquidSettings.java b/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawLiquidSettings.java new file mode 100644 index 000000000..2ebda6b02 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawLiquidSettings.java @@ -0,0 +1,15 @@ +package art.arcane.iris.structure.jigsaw; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("Controls waterlogging behavior for a configured native jigsaw.") +public enum IrisJigsawLiquidSettings { + @Description("Keeps the registered structure's own liquid setting; vanilla defaults to applying waterlogging when the definition omits it.") + SOURCE, + + @Description("Places pieces dry: existing water is displaced and waterloggable blocks stay unwaterlogged, leaving air-filled interiors underwater.") + IGNORE_WATERLOGGING, + + @Description("Re-applies pre-existing water into placed waterloggable blocks and floods from neighboring sources, so underwater pieces come out waterlogged.") + APPLY_WATERLOGGING +} diff --git a/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawMode.java b/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawMode.java new file mode 100644 index 000000000..315372b76 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawMode.java @@ -0,0 +1,12 @@ +package art.arcane.iris.structure.jigsaw; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("Controls the topology used by an Iris jigsaw structure.") +public enum IrisJigsawMode { + @Description("A cell-aligned planar jigsaw intended for villages, paths, and other two-dimensional layouts.") + PLANAR_JIGSAW, + + @Description("A freeform spatial connector graph intended for multi-level and three-dimensional structures.") + SPATIAL_JIGSAW +} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawPiece.java b/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawPiece.java similarity index 67% rename from core/src/main/java/art/arcane/iris/engine/object/IrisJigsawPiece.java rename to core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawPiece.java index 9203dffb4..0752e4559 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawPiece.java +++ b/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawPiece.java @@ -16,19 +16,22 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.jigsaw; -import art.arcane.iris.core.compat.CompatAction; -import art.arcane.iris.core.compat.CompatFinding; -import art.arcane.iris.core.compat.CompatRegistry; -import art.arcane.iris.core.compat.CompatStatus; -import art.arcane.iris.core.compat.ContentGate; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.RegistryListResource; -import art.arcane.iris.engine.object.annotations.Required; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectIO; + +import art.arcane.iris.pack.validation.CompatAction; +import art.arcane.iris.pack.validation.CompatFinding; +import art.arcane.iris.pack.validation.CompatRegistry; +import art.arcane.iris.pack.validation.CompatStatus; +import art.arcane.iris.pack.validation.ContentGate; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; +import art.arcane.iris.pack.schema.annotation.Required; import art.arcane.volmlib.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; @@ -39,33 +42,33 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("A jigsaw piece. A piece is a single Iris object plus the connection points (connectors) that let the assembler attach other pieces to it.") +@Description("A jigsaw piece. A piece is a single Iris object plus the connection points (connectors) that let the assembler attach other pieces to it.") @Data @EqualsAndHashCode(callSuper = false) public class IrisJigsawPiece extends IrisRegistrant { - @Desc("Optional author-facing name shown by Jigsaw Studio. The resource key is shown when this is blank.") + @Description("Optional author-facing name shown by Jigsaw Studio. The resource key is shown when this is blank.") private String displayName = ""; @Required @RegistryListResource(IrisObject.class) - @Desc("The object (schematic) that makes up this piece.") + @Description("The object (schematic) that makes up this piece.") private String object = ""; @ArrayType(type = IrisJigsawConnector.class, min = 1) - @Desc("The jigsaw connection points on this piece.") + @Description("The jigsaw connection points on this piece.") private KList connectors = new KList<>(); - @Desc("If true, this piece may be rotated around the Y axis when placed so the assembler can match its connectors. Disable for pieces that must keep a fixed orientation.") + @Description("If true, this piece may be rotated around the Y axis when placed so the assembler can match its connectors. Disable for pieces that must keep a fixed orientation.") private boolean rotatable = true; - @Desc("If true, this piece's object bounds block overlapping jigsaw pieces. Disable for connector-only scaffolds whose stored volume is intentionally shared with physical pieces.") + @Description("If true, this piece's object bounds block overlapping jigsaw pieces. Disable for connector-only scaffolds whose stored volume is intentionally shared with physical pieces.") private boolean collidable = true; @ArrayType(type = String.class, min = 1) - @Desc("Theme keys that may select this piece. An empty list makes the piece available to every selected theme.") + @Description("Theme keys that may select this piece. An empty list makes the piece available to every selected theme.") private KList themes = new KList<>(); - @Desc("Deterministic depth, placement-count, and terminal-role rules for this piece.") + @Description("Deterministic depth, placement-count, and terminal-role rules for this piece.") private IrisJigsawPieceRules rules = new IrisJigsawPieceRules(); public boolean supportsTheme(String selectedTheme) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawPieceEntry.java b/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawPieceEntry.java similarity index 67% rename from core/src/main/java/art/arcane/iris/engine/object/IrisJigsawPieceEntry.java rename to core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawPieceEntry.java index 46bd3afca..5283636c4 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawPieceEntry.java +++ b/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawPieceEntry.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.jigsaw; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListResource; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -30,23 +30,23 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("A weighted reference to a jigsaw piece inside a jigsaw pool.") +@Description("A weighted reference to a jigsaw piece inside a jigsaw pool.") @Data public class IrisJigsawPieceEntry { @RegistryListResource(IrisJigsawPiece.class) - @Desc("The jigsaw piece this entry refers to. Omit when empty is true.") + @Description("The jigsaw piece this entry refers to. Omit when empty is true.") private String piece; @MinNumber(1) - @Desc("The relative weight of this piece within its pool. Higher weights are chosen more often.") + @Description("The relative weight of this piece within its pool. Higher weights are chosen more often.") private int weight = 1; @MinNumber(0) @MaxNumber(1) - @Desc("The independent eligibility chance applied to this exact pool membership before weighted selection. Zero never passes and one always passes.") + @Description("The independent eligibility chance applied to this exact pool membership before weighted selection. Zero never passes and one always passes.") private double chance = 1D; - @Desc("When true, choosing this entry successfully terminates the current branch without placing a piece.") + @Description("When true, choosing this entry successfully terminates the current branch without placing a piece.") private boolean empty = false; public IrisJigsawPieceEntry(String piece, int weight) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawPieceRules.java b/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawPieceRules.java similarity index 53% rename from core/src/main/java/art/arcane/iris/engine/object/IrisJigsawPieceRules.java rename to core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawPieceRules.java index 0072dc4f2..5268771bb 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawPieceRules.java +++ b/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawPieceRules.java @@ -1,8 +1,8 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.jigsaw; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -11,30 +11,30 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Deterministic eligibility, placement-count, and terminal-role rules for one jigsaw piece.") +@Description("Deterministic eligibility, placement-count, and terminal-role rules for one jigsaw piece.") @Data public class IrisJigsawPieceRules { @MinNumber(0) @MaxNumber(30) - @Desc("The shallowest assembly depth at which this piece may be placed. The start piece is depth zero.") + @Description("The shallowest assembly depth at which this piece may be placed. The start piece is depth zero.") private int minimumDepth = 0; @MinNumber(0) @MaxNumber(30) - @Desc("The deepest assembly depth at which this piece may be placed.") + @Description("The deepest assembly depth at which this piece may be placed.") private int maximumDepth = 30; @MinNumber(0) @MaxNumber(512) - @Desc("The minimum number of placements required for this piece in a completed assembly.") + @Description("The minimum number of placements required for this piece in a completed assembly.") private int minimumPlacements = 0; @MinNumber(0) @MaxNumber(512) - @Desc("The maximum number of placements allowed for this piece. Zero means unbounded within the structure safety cap.") + @Description("The maximum number of placements allowed for this piece. Zero means unbounded within the structure safety cap.") private int maximumPlacements = 0; - @Desc("Whether this piece is a physical terminal cap. A terminal piece may consume a matching connector but must not continue expansion.") + @Description("Whether this piece is a physical terminal cap. A terminal piece may consume a matching connector but must not continue expansion.") private boolean terminal = false; public boolean allowsDepth(int depth) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawPool.java b/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawPool.java similarity index 78% rename from core/src/main/java/art/arcane/iris/engine/object/IrisJigsawPool.java rename to core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawPool.java index 76862e026..3767b1d35 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawPool.java +++ b/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawPool.java @@ -16,18 +16,18 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.jigsaw; -import art.arcane.iris.core.compat.CompatAction; -import art.arcane.iris.core.compat.CompatFinding; -import art.arcane.iris.core.compat.CompatRegistry; -import art.arcane.iris.core.compat.CompatStatus; -import art.arcane.iris.core.compat.ContentGate; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.RegistryListResource; +import art.arcane.iris.pack.validation.CompatAction; +import art.arcane.iris.pack.validation.CompatFinding; +import art.arcane.iris.pack.validation.CompatRegistry; +import art.arcane.iris.pack.validation.CompatStatus; +import art.arcane.iris.pack.validation.ContentGate; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; import art.arcane.volmlib.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; @@ -38,19 +38,19 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("A jigsaw pool. A pool is a weighted set of pieces the assembler chooses from when a connector targets this pool.") +@Description("A jigsaw pool. A pool is a weighted set of pieces the assembler chooses from when a connector targets this pool.") @Data @EqualsAndHashCode(callSuper = false) public class IrisJigsawPool extends IrisRegistrant { @ArrayType(type = IrisJigsawPieceEntry.class, min = 1) - @Desc("The weighted pieces in this pool.") + @Description("The weighted pieces in this pool.") private KList pieces = new KList<>(); @RegistryListResource(IrisJigsawPool.class) - @Desc("The direct fallback pool tried after this pool, or used alone at maximum depth. The fallback pool's own fallback is not part of the same selection. Leave empty to stop expanding at maximum depth.") + @Description("The direct fallback pool tried after this pool, or used alone at maximum depth. The fallback pool's own fallback is not part of the same selection. Leave empty to stop expanding at maximum depth.") private String fallback = ""; - @Desc("Whether failure to place from this pool must be resolved through its direct fallback even when the structure does not require every branch to be capped.") + @Description("Whether failure to place from this pool must be resolved through its direct fallback even when the structure does not require every branch to be capped.") private boolean mandatoryFallback = false; public boolean requiresFallback(boolean structureRequiresCaps) { diff --git a/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawThemeSet.java b/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawThemeSet.java new file mode 100644 index 000000000..525c272c5 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawThemeSet.java @@ -0,0 +1,24 @@ +package art.arcane.iris.structure.jigsaw; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Required; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@AllArgsConstructor +@Description("A weighted structure-wide jigsaw theme. One declared theme is selected for an assembly, and pieces may opt into one or more themes.") +@Data +public class IrisJigsawThemeSet { + @Required + @Description("The exact theme key referenced by jigsaw pieces.") + private String key = ""; + + @MinNumber(1) + @Description("The relative weight used when selecting one theme for an assembly.") + private int weight = 1; +} diff --git a/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawWorkcell.java b/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawWorkcell.java new file mode 100644 index 000000000..f91b846f0 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawWorkcell.java @@ -0,0 +1,40 @@ +package art.arcane.iris.structure.jigsaw; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@AllArgsConstructor +@Data +@Description("Persistent authoring bounds and runtime availability for one planar jigsaw workcell.") +public class IrisJigsawWorkcell { + @Description("Optional author-facing name shown by Jigsaw Studio. The canonical archetype name is shown when this is blank.") + private String displayName = ""; + + @Description("The orientation-independent planar connector shape configured by this workcell.") + private IrisJigsawWorkcellArchetype archetype = IrisJigsawWorkcellArchetype.BLANK; + + @MinNumber(3) + @MaxNumber(128) + @Description("The maximum canonical variant width that this workcell can contain, in blocks.") + private int width = 16; + + @MinNumber(1) + @MaxNumber(192) + @Description("The maximum variant height that this workcell can contain, in blocks.") + private int height = 16; + + @MinNumber(3) + @MaxNumber(128) + @Description("The maximum canonical variant depth that this workcell can contain, in blocks.") + private int depth = 16; + + @Description("Whether pieces with this planar connector shape participate in assembly and vanilla export.") + private boolean enabled = true; +} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawWorkcellArchetype.java b/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawWorkcellArchetype.java similarity index 71% rename from core/src/main/java/art/arcane/iris/engine/object/IrisJigsawWorkcellArchetype.java rename to core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawWorkcellArchetype.java index 75986aa0d..f6b4fc8cc 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawWorkcellArchetype.java +++ b/core/src/main/java/art/arcane/iris/structure/jigsaw/IrisJigsawWorkcellArchetype.java @@ -1,25 +1,25 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.jigsaw; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.documentation.Description; -@Desc("The orientation-independent connector shape represented by a planar jigsaw workcell.") +@Description("The orientation-independent connector shape represented by a planar jigsaw workcell.") public enum IrisJigsawWorkcellArchetype { - @Desc("Pieces with no horizontal connectors: sealed filler cells that terminate nothing and are excluded from the default piece pool.") + @Description("Pieces with no horizontal connectors: sealed filler cells that terminate nothing and are excluded from the default piece pool.") BLANK(0), - @Desc("One-connector dead-end pieces; the Studio bay seeds a single north connector and new projects mark these as terminal caps.") + @Description("One-connector dead-end pieces; the Studio bay seeds a single north connector and new projects mark these as terminal caps.") END(1), - @Desc("Two-connector pass-through pieces with openings on opposite sides; the Studio bay seeds north and south connectors.") + @Description("Two-connector pass-through pieces with openings on opposite sides; the Studio bay seeds north and south connectors.") STRAIGHT(5), - @Desc("Two-connector right-angle pieces with openings on adjacent sides; the Studio bay seeds north and east connectors.") + @Description("Two-connector right-angle pieces with openings on adjacent sides; the Studio bay seeds north and east connectors.") CORNER(3), - @Desc("Three-connector junction pieces; the Studio bay seeds north, east, and west connectors.") + @Description("Three-connector junction pieces; the Studio bay seeds north, east, and west connectors.") TEE(11), - @Desc("Four-connector pieces open on all sides; new projects use this archetype as the structure's start piece.") + @Description("Four-connector pieces open on all sides; new projects use this archetype as the structure's start piece.") CROSS(15); private final int canonicalMask; diff --git a/core/src/main/java/art/arcane/iris/engine/object/JigsawJoint.java b/core/src/main/java/art/arcane/iris/structure/jigsaw/JigsawJoint.java similarity index 59% rename from core/src/main/java/art/arcane/iris/engine/object/JigsawJoint.java rename to core/src/main/java/art/arcane/iris/structure/jigsaw/JigsawJoint.java index 9d83a5369..966f5c6f2 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/JigsawJoint.java +++ b/core/src/main/java/art/arcane/iris/structure/jigsaw/JigsawJoint.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.jigsaw; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.documentation.Description; -@Desc("How a jigsaw connection may be rotated when matching two pieces together.") +@Description("How a jigsaw connection may be rotated when matching two pieces together.") public enum JigsawJoint { - @Desc("The connecting piece may rotate freely around the connection axis. Use this for vertical connectors (floors, ceilings) and any joint where roll does not matter.") + @Description("The connecting piece may rotate freely around the connection axis. Use this for vertical connectors (floors, ceilings) and any joint where roll does not matter.") ROLLABLE, - @Desc("The connecting piece's rotation is locked to face the connector. Use this for horizontal connectors where the attached piece must align to a specific facing (doorways, street ends).") + @Description("The connecting piece's rotation is locked to face the connector. Use this for horizontal connectors where the attached piece must align to a specific facing (doorways, street ends).") ALIGNED } diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisImportedFeatureControl.java b/core/src/main/java/art/arcane/iris/structure/nativegen/IrisImportedFeatureControl.java similarity index 65% rename from core/src/main/java/art/arcane/iris/engine/object/IrisImportedFeatureControl.java rename to core/src/main/java/art/arcane/iris/structure/nativegen/IrisImportedFeatureControl.java index dadfd23be..9bd7b9859 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisImportedFeatureControl.java +++ b/core/src/main/java/art/arcane/iris/structure/nativegen/IrisImportedFeatureControl.java @@ -16,10 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.nativegen; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.iris.generation.decoration.IrisDecorationStep; + +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; import art.arcane.volmlib.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; @@ -31,22 +33,22 @@ import java.util.Objects; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Controls native vanilla, mod, and ingested datapack PLACED FEATURE generation for this dimension (set as the dimension's 'importedFeatures' field). Placed features are ores, trees, plants, springs, geodes and every other decoration entry a biome declares. This is OFF by default: with 'enabled' false Iris generates exactly the terrain it always has and no native feature runs. With it true, every placed feature the biome's vanilla derivative declares runs over Iris terrain, in vanilla step order, on the same worldgen thread vanilla uses. Carvers are never imported - Iris has no NoiseGeneratorSettings, so there is nothing for a carver to carve against. Family matching on 'disabled' uses namespace, slash, or underscore boundaries, so 'minecraft:ore' covers every vanilla ore feature without matching unrelated names.") +@Description("Controls native vanilla, mod, and ingested datapack PLACED FEATURE generation for this dimension (set as the dimension's 'importedFeatures' field). Placed features are ores, trees, plants, springs, geodes and every other decoration entry a biome declares. This is OFF by default: with 'enabled' false Iris generates exactly the terrain it always has and no native feature runs. With it true, every placed feature the biome's vanilla derivative declares runs over Iris terrain, in vanilla step order, on the same worldgen thread vanilla uses. Carvers are never imported - Iris has no NoiseGeneratorSettings, so there is nothing for a carver to carve against. Family matching on 'disabled' uses namespace, slash, or underscore boundaries, so 'minecraft:ore' covers every vanilla ore feature without matching unrelated names.") @Data public class IrisImportedFeatureControl { - @Desc("Master switch. False (the default) means no native placed feature generates and chunk output is identical to a pack without this block at all. True runs the vanilla decoration feature pass over Iris terrain.") + @Description("Master switch. False (the default) means no native placed feature generates and chunk output is identical to a pack without this block at all. True runs the vanilla decoration feature pass over Iris terrain.") private boolean enabled = false; @ArrayType(type = String.class, min = 1) - @Desc("Placed feature keys to deny explicitly, e.g. 'minecraft:ore_diamond'. A namespace:path prefix also matches, so 'minecraft:ore' denies every vanilla ore and 'minecraft:trees' denies every tree placement. Every key not matched here generates while 'enabled' is true.") + @Description("Placed feature keys to deny explicitly, e.g. 'minecraft:ore_diamond'. A namespace:path prefix also matches, so 'minecraft:ore' denies every vanilla ore and 'minecraft:trees' denies every tree placement. Every key not matched here generates while 'enabled' is true.") private KList disabled = new KList<>(); @ArrayType(type = IrisDecorationStep.class, min = 1) - @Desc("Restrict feature generation to these decoration steps only. Empty (the default) means every step is eligible. Use this to import ores without importing vegetation: set it to UNDERGROUND_ORES.") + @Description("Restrict feature generation to these decoration steps only. Empty (the default) means every step is eligible. Use this to import ores without importing vegetation: set it to UNDERGROUND_ORES.") private KList steps = new KList<>(); @ArrayType(type = IrisDecorationStep.class, min = 1) - @Desc("Decoration steps to deny. Applied after 'steps', so a step listed here never generates even if 'steps' allows it. VEGETAL_DECORATION is the usual entry for packs that grow their own trees.") + @Description("Decoration steps to deny. Applied after 'steps', so a step listed here never generates even if 'steps' allows it. VEGETAL_DECORATION is the usual entry for packs that grow their own trees.") private KList disabledSteps = new KList<>(); /** diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisImportedStructureControl.java b/core/src/main/java/art/arcane/iris/structure/nativegen/IrisImportedStructureControl.java similarity index 65% rename from core/src/main/java/art/arcane/iris/engine/object/IrisImportedStructureControl.java rename to core/src/main/java/art/arcane/iris/structure/nativegen/IrisImportedStructureControl.java index 7d43b31bd..b8f81a85a 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisImportedStructureControl.java +++ b/core/src/main/java/art/arcane/iris/structure/nativegen/IrisImportedStructureControl.java @@ -16,13 +16,18 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.nativegen; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListVanillaStructure; +import art.arcane.iris.structure.placement.IrisStructureSetFrequencyOverride; +import art.arcane.iris.structure.placement.IrisStructureStiltSettings; +import art.arcane.iris.structure.placement.IrisStructureTerrain; +import art.arcane.iris.structure.placement.IrisStructureYBand; + +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListVanillaStructure; import art.arcane.volmlib.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; @@ -35,33 +40,33 @@ import java.util.Objects; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Controls native vanilla, mod, and ingested datapack structure generation for this dimension (set as the dimension's 'importedStructures' field). Every registered structure generates through its native placement unless its key matches 'disabled', equals a key in 'disabledExact', or a viable dimension-level Iris placement explicitly replaces its source. Family matching uses namespace, slash, or underscore boundaries, while exact matching compares normalized complete keys only. Run '/iris structure list ' to dump every valid key. Only affects newly generated chunks and is separate from Iris structure placements.") +@Description("Controls native vanilla, mod, and ingested datapack structure generation for this dimension (set as the dimension's 'importedStructures' field). Every registered structure generates through its native placement unless its key matches 'disabled', equals a key in 'disabledExact', or a viable dimension-level Iris placement explicitly replaces its source. Family matching uses namespace, slash, or underscore boundaries, while exact matching compares normalized complete keys only. Run '/iris structure list ' to dump every valid key. Only affects newly generated chunks and is separate from Iris structure placements.") @Data public class IrisImportedStructureControl { @ArrayType(type = String.class, min = 1) @RegistryListVanillaStructure(prefixes = true) - @Desc("Structure keys to deny explicitly, e.g. 'minecraft:stronghold'. A namespace:path prefix also matches, so 'minecraft:village' disables every village variant and 'minecraft:ruined_portal' disables every ruined portal. Every key not matched here remains enabled.") + @Description("Structure keys to deny explicitly, e.g. 'minecraft:stronghold'. A namespace:path prefix also matches, so 'minecraft:village' disables every village variant and 'minecraft:ruined_portal' disables every ruined portal. Every key not matched here remains enabled.") private KList disabled = new KList<>(); @ArrayType(type = String.class, min = 1) @RegistryListVanillaStructure(prefixes = false) - @Desc("Exact structure keys to deny after trimming and case normalization. Unlike 'disabled', entries never match key families, so 'minecraft:ruined_portal' does not disable 'minecraft:ruined_portal_nether'.") + @Description("Exact structure keys to deny after trimming and case normalization. Unlike 'disabled', entries never match key families, so 'minecraft:ruined_portal' does not disable 'minecraft:ruined_portal_nether'.") private KList disabledExact = new KList<>(); @MinNumber(-512) @MaxNumber(512) - @Desc("Vertical block offset applied only to UNDERGROUND vanilla structures (the UNDERGROUND_STRUCTURES, UNDERGROUND_DECORATION, and STRONGHOLDS generation steps: strongholds, trial chambers, mineshafts, ancient cities, etc.). Surface structures (villages, outposts, etc.) are never shifted. Use a negative value to push deep structures lower when your dimension's sea/terrain level differs from vanilla's (e.g. -64 if you lowered the fluid height to 0). 0 = no shift.") + @Description("Vertical block offset applied only to UNDERGROUND vanilla structures (the UNDERGROUND_STRUCTURES, UNDERGROUND_DECORATION, and STRONGHOLDS generation steps: strongholds, trial chambers, mineshafts, ancient cities, etc.). Surface structures (villages, outposts, etc.) are never shifted. Use a negative value to push deep structures lower when your dimension's sea/terrain level differs from vanilla's (e.g. -64 if you lowered the fluid height to 0). 0 = no shift.") private int undergroundYShift = 0; - @Desc("Controls whether ingested datapacks may replace minecraft-namespaced structure definitions, sets, pools, and templates. When false, those overrides are stripped from installed datapack copies so vanilla definitions stay intact. Non-minecraft structures from datapacks and mods remain governed by disabled because namespace alone cannot identify their origin. Resolved globally across loaded packs: if any dimension sets this false, minecraft-namespaced overrides are stripped from every installed datapack copy.") + @Description("Controls whether ingested datapacks may replace minecraft-namespaced structure definitions, sets, pools, and templates. When false, those overrides are stripped from installed datapack copies so vanilla definitions stay intact. Non-minecraft structures from datapacks and mods remain governed by disabled because namespace alone cannot identify their origin. Resolved globally across loaded packs: if any dimension sets this false, minecraft-namespaced overrides are stripped from every installed datapack copy.") private boolean datapackOverrides = true; @ArrayType(type = IrisStructureSetFrequencyOverride.class, min = 1) - @Desc("Exact registered structure-set frequency overrides for native generation. The last entry for a normalized structure-set key wins. These do not convert native structures into Iris placements and affect only newly generated chunks.") + @Description("Exact registered structure-set frequency overrides for native generation. The last entry for a normalized structure-set key wins. These do not convert native structures into Iris placements and affect only newly generated chunks.") private KList frequencyOverrides = new KList<>(); @ArrayType(type = IrisVanillaStructureAdjustment.class, min = 1) - @Desc("Per-structure adjustments applied to vanilla, mod, and datapack structures that still generate natively. Vertical shifts from every matching entry stack. A matching preserveSourceY option disables Iris burial repositioning for that structure. The last matching entry with stilt settings controls foundation columns, and likewise for terrain and yBand settings. A structure suppressed by an Iris placement is unaffected.") + @Description("Per-structure adjustments applied to vanilla, mod, and datapack structures that still generate natively. Vertical shifts from every matching entry stack. A matching preserveSourceY option disables Iris burial repositioning for that structure. The last matching entry with stilt settings controls foundation columns, and likewise for terrain and yBand settings. A structure suppressed by an Iris placement is unaffected.") private KList adjustments = new KList<>(); public boolean shouldGenerate(String key) { diff --git a/core/src/main/java/art/arcane/iris/structure/nativegen/IrisNativeStructure.java b/core/src/main/java/art/arcane/iris/structure/nativegen/IrisNativeStructure.java new file mode 100644 index 000000000..57c0775b3 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/structure/nativegen/IrisNativeStructure.java @@ -0,0 +1,31 @@ +package art.arcane.iris.structure.nativegen; + +import art.arcane.iris.structure.jigsaw.IrisJigsawConfiguration; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListVanillaStructure; +import art.arcane.iris.pack.schema.annotation.Required; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@AllArgsConstructor +@Data +@Description("A live vanilla, datapack, or modded structure generated by Minecraft at an Iris-controlled placement.") +public class IrisNativeStructure { + @Required + @RegistryListVanillaStructure + @Description("Registered structure key. The source retains its native generator, pieces, templates, processors, entities, markers, and data.") + private String structure = ""; + + @MinNumber(1) + @Description("Relative selection weight when a placement offers multiple native structure sources.") + private int weight = 1; + + @Description("Optional jigsaw-only assembly overrides. Null preserves the complete registered structure definition.") + private IrisJigsawConfiguration jigsaw = null; +} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisNativeStructureDecision.java b/core/src/main/java/art/arcane/iris/structure/nativegen/IrisNativeStructureDecision.java similarity index 84% rename from core/src/main/java/art/arcane/iris/engine/object/IrisNativeStructureDecision.java rename to core/src/main/java/art/arcane/iris/structure/nativegen/IrisNativeStructureDecision.java index 33a8bb34c..5331507ee 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisNativeStructureDecision.java +++ b/core/src/main/java/art/arcane/iris/structure/nativegen/IrisNativeStructureDecision.java @@ -16,7 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.nativegen; + +import art.arcane.iris.structure.placement.IrisStructureStiltSettings; +import art.arcane.iris.structure.placement.IrisStructureTerrain; +import art.arcane.iris.structure.placement.IrisStructureYBand; public record IrisNativeStructureDecision( NativeStructureGenerationStatus status, diff --git a/core/src/main/java/art/arcane/iris/structure/nativegen/IrisVanillaStructureAdjustment.java b/core/src/main/java/art/arcane/iris/structure/nativegen/IrisVanillaStructureAdjustment.java new file mode 100644 index 000000000..a529e75fd --- /dev/null +++ b/core/src/main/java/art/arcane/iris/structure/nativegen/IrisVanillaStructureAdjustment.java @@ -0,0 +1,72 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2022 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package art.arcane.iris.structure.nativegen; + +import art.arcane.iris.structure.placement.IrisStructureStiltSettings; +import art.arcane.iris.structure.placement.IrisStructureTerrain; +import art.arcane.iris.structure.placement.IrisStructureYBand; + +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListVanillaStructure; +import art.arcane.volmlib.util.collection.KList; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@AllArgsConstructor +@Description("A per-structure adjustment applied to vanilla, mod, and datapack structures that still generate natively (those NOT suppressed by an Iris 'structures' placement). Vertical shifts move the structure start, pieces, bounds, and jigsaw metadata together before references and placement. Intersecting trees are cleared automatically inside structure piece envelopes; optional postprocessing can build palette-driven foundation columns.") +@Data +public class IrisVanillaStructureAdjustment { + @ArrayType(type = String.class, min = 1) + @RegistryListVanillaStructure(prefixes = true) + @Description("Structure keys this adjustment applies to, e.g. 'minecraft:stronghold'. A namespace:path prefix also matches, so 'minecraft:village' adjusts every village variant and 'minecraft:ruined_portal' adjusts every ruined portal. Empty matches nothing.") + private KList match = new KList<>(); + + @MinNumber(-512) + @MaxNumber(512) + @Description("Vertical block offset. Negative pushes the structure down, positive lifts it. The resolved shift is clamped so the structure remains inside the world's vertical build bounds.") + private int yShift = 0; + + @Description("Optional absolute world Y band. The structure is relocated so its vertical midpoint lands inside the band, deterministically from its start chunk and clamped to the world's build bounds. Precedence: preserveSourceY wins over yBand, and yBand wins over both yShift and Iris burial repositioning. Structures with a fixed vanilla alignment (ocean monument sea level, desert and jungle pyramid surface fit) ignore it.") + private IrisStructureYBand yBand = null; + + @Description("When true, skip Iris burial repositioning so the structure keeps the Y its own vanilla placement chose. Underground structures are otherwise pushed below the lowest solid column across their whole footprint, which hides terrain-aware structures such as mineshafts that intentionally breach cliffs and surfaces. Vertical shifts still apply on top of the preserved Y: this dimension's undergroundYShift plus every matching adjustment's yShift.") + private boolean preserveSourceY = false; + + @Description("Optional foundation columns placed beneath the native structure piece bases after placement.") + private IrisStructureStiltSettings stilt = null; + + @Description("Optional terrain integration override. FLATTEN cuts and fills exposed surface foundations within flattenRange, blending across horizontalPadding blocks while preserving buried and submerged structures. VACUUM raises processed rigid-template foundations with a fixed 12-block falloff without lowering ground. BORE and FORCE_CARVE clear every intersecting chunk before native placement, while ENCASE fills it. Left unset, SOURCE replays the registered structure's authored terrain adaptation.") + private IrisStructureTerrain terrain = null; + + public boolean matches(String key) { + for (String entry : match) { + if (IrisImportedStructureControl.matchesKey(entry, key)) { + return true; + } + } + return false; + } +} diff --git a/core/src/main/java/art/arcane/iris/engine/framework/NativeFeatureGenerationPolicy.java b/core/src/main/java/art/arcane/iris/structure/nativegen/NativeFeatureGenerationPolicy.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/framework/NativeFeatureGenerationPolicy.java rename to core/src/main/java/art/arcane/iris/structure/nativegen/NativeFeatureGenerationPolicy.java index 6cc54244f..2187aa418 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/NativeFeatureGenerationPolicy.java +++ b/core/src/main/java/art/arcane/iris/structure/nativegen/NativeFeatureGenerationPolicy.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.nativegen; -import art.arcane.iris.engine.object.IrisDecorationStep; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisImportedFeatureControl; -import art.arcane.iris.engine.object.NativeFeatureGenerationStatus; +import art.arcane.iris.generation.runtime.Engine; + +import art.arcane.iris.generation.decoration.IrisDecorationStep; +import art.arcane.iris.generation.terrain.IrisDimension; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/object/NativeFeatureGenerationStatus.java b/core/src/main/java/art/arcane/iris/structure/nativegen/NativeFeatureGenerationStatus.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/object/NativeFeatureGenerationStatus.java rename to core/src/main/java/art/arcane/iris/structure/nativegen/NativeFeatureGenerationStatus.java index cb8fba394..b4b1f03bf 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/NativeFeatureGenerationStatus.java +++ b/core/src/main/java/art/arcane/iris/structure/nativegen/NativeFeatureGenerationStatus.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.nativegen; public enum NativeFeatureGenerationStatus { GENERATE_NATIVE, diff --git a/core/src/main/java/art/arcane/iris/engine/framework/NativeStructureFrequencyScale.java b/core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructureFrequencyScale.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/framework/NativeStructureFrequencyScale.java rename to core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructureFrequencyScale.java index b3263a3dc..e29a9134f 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/NativeStructureFrequencyScale.java +++ b/core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructureFrequencyScale.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.nativegen; public record NativeStructureFrequencyScale(float frequency, int spacing) { public static NativeStructureFrequencyScale randomSpread( diff --git a/core/src/main/java/art/arcane/iris/engine/framework/NativeStructureGenerationPolicy.java b/core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructureGenerationPolicy.java similarity index 91% rename from core/src/main/java/art/arcane/iris/engine/framework/NativeStructureGenerationPolicy.java rename to core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructureGenerationPolicy.java index fac5bfc63..5fed5ae70 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/NativeStructureGenerationPolicy.java +++ b/core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructureGenerationPolicy.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.nativegen; -import art.arcane.iris.engine.object.IrisImportedStructureControl; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisNativeStructureDecision; -import art.arcane.iris.engine.object.NativeStructureGenerationStatus; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.placement.IrisStructureLocator; + +import art.arcane.iris.generation.terrain.IrisDimension; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/object/NativeStructureGenerationStatus.java b/core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructureGenerationStatus.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/object/NativeStructureGenerationStatus.java rename to core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructureGenerationStatus.java index e022a6ba5..c53449afa 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/NativeStructureGenerationStatus.java +++ b/core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructureGenerationStatus.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.nativegen; public enum NativeStructureGenerationStatus { GENERATE_NATIVE, diff --git a/core/src/main/java/art/arcane/iris/engine/framework/NativeStructureOwnershipBundle.java b/core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructureOwnershipBundle.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/framework/NativeStructureOwnershipBundle.java rename to core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructureOwnershipBundle.java index cc8a47824..10ba0111e 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/NativeStructureOwnershipBundle.java +++ b/core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructureOwnershipBundle.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.nativegen; -import art.arcane.iris.engine.framework.NativeStructureOwnershipRecord.OwnershipKey; +import art.arcane.iris.structure.nativegen.NativeStructureOwnershipRecord.OwnershipKey; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/NativeStructureOwnershipRecord.java b/core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructureOwnershipRecord.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/framework/NativeStructureOwnershipRecord.java rename to core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructureOwnershipRecord.java index ed6a4acbc..a32937fe6 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/NativeStructureOwnershipRecord.java +++ b/core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructureOwnershipRecord.java @@ -1,9 +1,7 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.nativegen; -import art.arcane.iris.engine.object.IrisNativeStructureDecision; -import art.arcane.iris.engine.object.IrisStructureStiltSettings; -import art.arcane.iris.engine.object.IrisStructureTerrain; -import art.arcane.iris.engine.object.NativeStructureGenerationStatus; +import art.arcane.iris.structure.placement.IrisStructureStiltSettings; +import art.arcane.iris.structure.placement.IrisStructureTerrain; import com.google.gson.Gson; import java.io.DataInputStream; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/NativeStructureOwnershipStore.java b/core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructureOwnershipStore.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/framework/NativeStructureOwnershipStore.java rename to core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructureOwnershipStore.java index db42c7d06..1acd1b070 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/NativeStructureOwnershipStore.java +++ b/core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructureOwnershipStore.java @@ -1,8 +1,10 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.nativegen; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.history.GenerationHistoryRuntimeRouter; -import art.arcane.iris.engine.mantle.EngineMantle; +import art.arcane.iris.generation.runtime.Engine; + +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.world.history.GenerationHistoryRuntimeRouter; +import art.arcane.iris.generation.mantle.EngineMantle; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.matter.Matter; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/NativeStructurePlacementPlanner.java b/core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructurePlacementPlanner.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/framework/NativeStructurePlacementPlanner.java rename to core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructurePlacementPlanner.java index f9ee90c67..495c7ec3e 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/NativeStructurePlacementPlanner.java +++ b/core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructurePlacementPlanner.java @@ -1,11 +1,12 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.nativegen; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.object.IrisNativeStructure; -import art.arcane.iris.engine.object.IrisNativeStructureDecision; -import art.arcane.iris.engine.object.IrisStructureAnchorMode; -import art.arcane.iris.engine.object.IrisStructurePlacement; -import art.arcane.iris.engine.object.NativeStructureGenerationStatus; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.placement.StructurePlacementGrid; +import art.arcane.iris.structure.placement.StructurePlacementScope; + +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.structure.placement.IrisStructureAnchorMode; +import art.arcane.iris.structure.placement.IrisStructurePlacement; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; @@ -164,7 +165,7 @@ public final class NativeStructurePlacementPlanner { return bandMin == bandMax ? bandMin : bandMin + rng.nextInt((bandMax - bandMin) + 1); } - static boolean isSubmerged(Engine engine, int blockX, int blockZ) { + public static boolean isSubmerged(Engine engine, int blockX, int blockZ) { int localFluidHeight = engine.getComplex() == null ? engine.getDimension().getFluidHeight() : (int) Math.round(engine.getComplex().getRiverWaterSurfaceStream().get(blockX, blockZ)); diff --git a/core/src/main/java/art/arcane/iris/engine/framework/NativeStructureStartPlan.java b/core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructureStartPlan.java similarity index 53% rename from core/src/main/java/art/arcane/iris/engine/framework/NativeStructureStartPlan.java rename to core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructureStartPlan.java index 9c188c02e..49f0b0505 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/NativeStructureStartPlan.java +++ b/core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructureStartPlan.java @@ -1,7 +1,6 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.nativegen; -import art.arcane.iris.engine.object.IrisNativeStructure; -import art.arcane.iris.engine.object.IrisStructurePlacement; +import art.arcane.iris.structure.placement.IrisStructurePlacement; public record NativeStructureStartPlan( IrisStructurePlacement placement, diff --git a/core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructureSuppression.java b/core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructureSuppression.java new file mode 100644 index 000000000..b8e268750 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructureSuppression.java @@ -0,0 +1,12 @@ +package art.arcane.iris.structure.nativegen; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("Controls whether an Iris structure placement suppresses its imported native source.") +public enum NativeStructureSuppression { + @Description("Leaves native generation enabled alongside this Iris structure placement.") + NONE, + + @Description("Suppresses the structure's vanillaSource when used by a validated dimension-level replacement placement.") + REPLACE_SOURCE +} diff --git a/core/src/main/java/art/arcane/iris/engine/framework/NativeStructureVolume.java b/core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructureVolume.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/framework/NativeStructureVolume.java rename to core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructureVolume.java index a277630ef..560b0b7e4 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/NativeStructureVolume.java +++ b/core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructureVolume.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.nativegen; import art.arcane.volmlib.util.collection.KList; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/NativeStructureVolumeMemo.java b/core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructureVolumeMemo.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/framework/NativeStructureVolumeMemo.java rename to core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructureVolumeMemo.java index 5cdc7e3cc..4d31aeb97 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/NativeStructureVolumeMemo.java +++ b/core/src/main/java/art/arcane/iris/structure/nativegen/NativeStructureVolumeMemo.java @@ -16,7 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.nativegen; + +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EnginePlatformHooks; import art.arcane.volmlib.util.collection.KList; import it.unimi.dsi.fastutil.longs.Long2ObjectLinkedOpenHashMap; diff --git a/core/src/main/java/art/arcane/iris/engine/object/DecayControlPlacer.java b/core/src/main/java/art/arcane/iris/structure/object/DecayControlPlacer.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/object/DecayControlPlacer.java rename to core/src/main/java/art/arcane/iris/structure/object/DecayControlPlacer.java index 3255294e5..ea99428f2 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/DecayControlPlacer.java +++ b/core/src/main/java/art/arcane/iris/structure/object/DecayControlPlacer.java @@ -16,10 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.generation.block.TileData; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.iris.spi.PlatformBlockState; import org.jetbrains.annotations.Nullable; diff --git a/core/src/main/java/art/arcane/iris/engine/object/FloatingObjectFootprint.java b/core/src/main/java/art/arcane/iris/structure/object/FloatingObjectFootprint.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/object/FloatingObjectFootprint.java rename to core/src/main/java/art/arcane/iris/structure/object/FloatingObjectFootprint.java index 45ab1b21c..24d0e0795 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/FloatingObjectFootprint.java +++ b/core/src/main/java/art/arcane/iris/structure/object/FloatingObjectFootprint.java @@ -16,7 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; + +import art.arcane.iris.structure.object.IrisObject; import java.util.HashMap; import java.util.Map; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/placer/HeightmapObjectPlacer.java b/core/src/main/java/art/arcane/iris/structure/object/HeightmapObjectPlacer.java similarity index 91% rename from core/src/main/java/art/arcane/iris/engine/framework/placer/HeightmapObjectPlacer.java rename to core/src/main/java/art/arcane/iris/structure/object/HeightmapObjectPlacer.java index d87ca5800..b391f169b 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/placer/HeightmapObjectPlacer.java +++ b/core/src/main/java/art/arcane/iris/structure/object/HeightmapObjectPlacer.java @@ -16,13 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework.placer; +package art.arcane.iris.structure.object; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IObjectPlacer; -import art.arcane.iris.engine.object.IrisObjectPlacement; -import art.arcane.iris.engine.object.TileData; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.block.TileData; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.volmlib.util.math.RNG; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IObjectLoot.java b/core/src/main/java/art/arcane/iris/structure/object/IObjectLoot.java similarity index 67% rename from core/src/main/java/art/arcane/iris/engine/object/IObjectLoot.java rename to core/src/main/java/art/arcane/iris/structure/object/IObjectLoot.java index 6f7b64e1a..0093c6c7b 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IObjectLoot.java +++ b/core/src/main/java/art/arcane/iris/structure/object/IObjectLoot.java @@ -1,6 +1,8 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.generation.block.IrisBlockData; + +import art.arcane.iris.pack.loading.IrisData; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.volmlib.util.collection.KList; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IObjectPlacer.java b/core/src/main/java/art/arcane/iris/structure/object/IObjectPlacer.java similarity index 91% rename from core/src/main/java/art/arcane/iris/engine/object/IObjectPlacer.java rename to core/src/main/java/art/arcane/iris/structure/object/IObjectPlacer.java index 5d3e0c746..e2099e1a9 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IObjectPlacer.java +++ b/core/src/main/java/art/arcane/iris/structure/object/IObjectPlacer.java @@ -16,11 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.history.TerrainBoundarySignature; +import art.arcane.iris.generation.block.TileData; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.world.history.TerrainBoundarySignature; import java.util.Optional; import art.arcane.iris.spi.PlatformBlockState; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IPostBlockAccess.java b/core/src/main/java/art/arcane/iris/structure/object/IPostBlockAccess.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/object/IPostBlockAccess.java rename to core/src/main/java/art/arcane/iris/structure/object/IPostBlockAccess.java index d1c50bc1f..7a34a2f90 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IPostBlockAccess.java +++ b/core/src/main/java/art/arcane/iris/structure/object/IPostBlockAccess.java @@ -16,7 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; + +import art.arcane.iris.generation.cave.CaveResult; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.volmlib.util.collection.KList; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisAxisRotationClamp.java b/core/src/main/java/art/arcane/iris/structure/object/IrisAxisRotationClamp.java similarity index 65% rename from core/src/main/java/art/arcane/iris/engine/object/IrisAxisRotationClamp.java rename to core/src/main/java/art/arcane/iris/structure/object/IrisAxisRotationClamp.java index 1fbbd8c82..88e3f89f6 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisAxisRotationClamp.java +++ b/core/src/main/java/art/arcane/iris/structure/object/IrisAxisRotationClamp.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.engine.object.annotations.DependsOn; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.pack.schema.annotation.DependsOn; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.volmlib.util.math.M; import lombok.AllArgsConstructor; import lombok.Data; @@ -34,10 +34,10 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @AllArgsConstructor @NoArgsConstructor -@Desc("Represents a rotation axis with intervals and maxes. The x and z axis values are defaulted to disabled. The Y axis defaults to on, rotating by 90 degree increments.") +@Description("Represents a rotation axis with intervals and maxes. The x and z axis values are defaulted to disabled. The Y axis defaults to on, rotating by 90 degree increments.") @Data public class IrisAxisRotationClamp { - @Desc("Should this axis be rotated at all?") + @Description("Should this axis be rotated at all?") private boolean enabled = false; private transient boolean forceLock = false; @@ -46,21 +46,21 @@ public class IrisAxisRotationClamp { @DependsOn({"max"}) @MinNumber(-360) @MaxNumber(360) - @Desc("The minimum angle (from) or set this and max to zero for any angle degrees. Set both to the same non-zero value to force it to that angle only") + @Description("The minimum angle (from) or set this and max to zero for any angle degrees. Set both to the same non-zero value to force it to that angle only") private double min = 0; @Required @DependsOn({"min"}) @MinNumber(-360) @MaxNumber(360) - @Desc("The maximum angle (to) or set this and min to zero for any angle degrees. Set both to the same non-zero value to force it to that angle only") + @Description("The maximum angle (to) or set this and min to zero for any angle degrees. Set both to the same non-zero value to force it to that angle only") private double max = 0; @Required @DependsOn({"min", "max"}) @MinNumber(0) @MaxNumber(360) - @Desc("Iris spins the axis but not freely. For example an interval of 90 would mean 4 possible angles (right angles) degrees. \nSetting this to 0 means totally free rotation.\n\nNote that a lot of structures can have issues with non 90 degree intervals because the minecraft block resolution is so low.") + @Description("Iris spins the axis but not freely. For example an interval of 90 would mean 4 possible angles (right angles) degrees. \nSetting this to 0 means totally free rotation.\n\nNote that a lot of structures can have issues with non 90 degree intervals because the minecraft block resolution is so low.") private double interval = 0; public void minMax(double fd) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisObject.java b/core/src/main/java/art/arcane/iris/structure/object/IrisObject.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/object/IrisObject.java rename to core/src/main/java/art/arcane/iris/structure/object/IrisObject.java index 3b95d49b0..9055f01db 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisObject.java +++ b/core/src/main/java/art/arcane/iris/structure/object/IrisObject.java @@ -16,28 +16,33 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.compat.CompatStatus; -import art.arcane.iris.core.compat.ContentGate; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.core.service.ExternalDataSVC; -import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.structure.object.FloatingObjectFootprint; +import art.arcane.iris.generation.block.TileData; +import art.arcane.iris.generation.cave.CarveResult; +import art.arcane.iris.pack.value.IrisPosition; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.validation.CompatStatus; +import art.arcane.iris.pack.validation.ContentGate; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.integration.ExternalDataSVC; +import art.arcane.iris.generation.cache.AtomicCache; import art.arcane.iris.platform.bukkit.BukkitBlockState; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; -import art.arcane.iris.util.common.data.IrisCustomData; -import art.arcane.iris.util.common.data.VectorMap; -import art.arcane.iris.util.common.math.AxisAlignedBB; -import art.arcane.iris.util.common.math.IrisBlockVector; -import art.arcane.iris.util.common.math.IrisVector; -import art.arcane.iris.util.common.math.Vector3i; -import art.arcane.iris.util.common.plugin.VolmitSender; +import art.arcane.iris.generation.block.B; +import art.arcane.iris.generation.block.IrisCustomData; +import art.arcane.iris.generation.block.VectorMap; +import art.arcane.iris.generation.geometry.AxisAlignedBB; +import art.arcane.iris.generation.geometry.IrisBlockVector; +import art.arcane.iris.generation.geometry.IrisVector; +import art.arcane.volmlib.util.math.Vector3i; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.BlockPosition; import art.arcane.volmlib.util.math.RNG; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectCompat.java b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectCompat.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/object/IrisObjectCompat.java rename to core/src/main/java/art/arcane/iris/structure/object/IrisObjectCompat.java index 4f1692836..47ce8b1d9 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectCompat.java +++ b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectCompat.java @@ -16,14 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.core.compat.CompatAction; -import art.arcane.iris.core.compat.CompatFinding; -import art.arcane.iris.core.compat.CompatRegistry; -import art.arcane.iris.core.compat.ContentGate; -import art.arcane.iris.core.compat.PackCompatReport; -import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.generation.block.IrisBlockData; + +import art.arcane.iris.pack.validation.CompatAction; +import art.arcane.iris.pack.validation.CompatFinding; +import art.arcane.iris.pack.validation.CompatRegistry; +import art.arcane.iris.pack.validation.ContentGate; +import art.arcane.iris.pack.validation.PackCompatReport; +import art.arcane.iris.pack.loading.IrisData; import art.arcane.volmlib.util.collection.KList; /** diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectIO.java b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectIO.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/object/IrisObjectIO.java rename to core/src/main/java/art/arcane/iris/structure/object/IrisObjectIO.java index f6f9967e5..7fdaf34b3 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectIO.java +++ b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectIO.java @@ -16,19 +16,21 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.core.compat.ContentGate; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.RuntimeUiMessages; +import art.arcane.iris.generation.block.TileData; + +import art.arcane.iris.pack.validation.ContentGate; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.RuntimeUiMessages; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; -import art.arcane.iris.util.common.math.IrisBlockVector; -import art.arcane.iris.util.common.math.Vector3i; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.jobs.Job; +import art.arcane.iris.generation.block.B; +import art.arcane.iris.generation.geometry.IrisBlockVector; +import art.arcane.volmlib.util.math.Vector3i; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.jobs.Job; import art.arcane.volmlib.util.collection.KList; import java.io.BufferedInputStream; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectLimit.java b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectLimit.java similarity index 72% rename from core/src/main/java/art/arcane/iris/engine/object/IrisObjectLimit.java rename to core/src/main/java/art/arcane/iris/structure/object/IrisObjectLimit.java index 004a95baa..9e9a9a324 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectLimit.java +++ b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectLimit.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Snippet; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -31,17 +31,17 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Limits object placement by minimum and maximum world height") +@Description("Limits object placement by minimum and maximum world height") @Data public class IrisObjectLimit { @MinNumber(-2048) @MaxNumber(2048) - @Desc("The minimum height for placement (bottom of object)") + @Description("The minimum height for placement (bottom of object)") private int minimumHeight = -2048; @MinNumber(-2048) @MaxNumber(2048) - @Desc("The maximum height for placement (top of object)") + @Description("The maximum height for placement (top of object)") private int maximumHeight = 2048; public boolean canPlace(int h, int l) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectLoot.java b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectLoot.java similarity index 70% rename from core/src/main/java/art/arcane/iris/engine/object/IrisObjectLoot.java rename to core/src/main/java/art/arcane/iris/structure/object/IrisObjectLoot.java index 6d54a99c5..b1de7f08f 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectLoot.java +++ b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectLoot.java @@ -16,17 +16,20 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListResource; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; -import art.arcane.iris.util.common.data.B; +import art.arcane.iris.generation.block.IrisBlockData; +import art.arcane.iris.world.loot.IrisLootTable; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; +import art.arcane.iris.generation.block.B; import art.arcane.volmlib.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; @@ -38,20 +41,20 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Represents loot within this object") +@Description("Represents loot within this object") @Data public class IrisObjectLoot implements IObjectLoot { private final transient AtomicCache> filterCache = new AtomicCache<>(); @ArrayType(min = 1, type = IrisBlockData.class) - @Desc("The list of blocks this loot table should apply to") + @Description("The list of blocks this loot table should apply to") private KList filter = new KList<>(); - @Desc("Exactly match the block data or not") + @Description("Exactly match the block data or not") private boolean exact = false; - @Desc("The loot table name") + @Description("The loot table name") @Required @RegistryListResource(IrisLootTable.class) private String name; - @Desc("The weight of this loot table being chosen") + @Description("The weight of this loot table being chosen") @MinNumber(1) private int weight = 1; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectMarker.java b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectMarker.java similarity index 67% rename from core/src/main/java/art/arcane/iris/engine/object/IrisObjectMarker.java rename to core/src/main/java/art/arcane/iris/structure/object/IrisObjectMarker.java index 2d4ffc1cd..6896f523c 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectMarker.java +++ b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectMarker.java @@ -16,17 +16,20 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListResource; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.generation.block.IrisBlockData; +import art.arcane.iris.world.entity.IrisMarker; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.volmlib.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; @@ -38,23 +41,23 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Find blocks to mark") +@Description("Find blocks to mark") @Data public class IrisObjectMarker { private final transient AtomicCache> findData = new AtomicCache<>(); @ArrayType(min = 1, type = IrisBlockData.class) @Required - @Desc("Find block types to mark") + @Description("Find block types to mark") private KList mark = new KList<>(); @MinNumber(1) @MaxNumber(16) - @Desc("The maximum amount of markers to place. Use these sparingly!") + @Description("The maximum amount of markers to place. Use these sparingly!") private int maximumMarkers = 8; - @Desc("If true, markers will only be placed if the block matches the mark list perfectly.") + @Description("If true, markers will only be placed if the block matches the mark list perfectly.") private boolean exact = false; @Required @RegistryListResource(IrisMarker.class) - @Desc("The marker to add") + @Description("The marker to add") private String marker; public KList getMark(IrisData rdata) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectPlacement.java b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectPlacement.java similarity index 74% rename from core/src/main/java/art/arcane/iris/engine/object/IrisObjectPlacement.java rename to core/src/main/java/art/arcane/iris/structure/object/IrisObjectPlacement.java index b86e89696..2c011fd75 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectPlacement.java +++ b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectPlacement.java @@ -16,35 +16,50 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; + +import art.arcane.iris.generation.cave.CarvingMode; +import art.arcane.iris.generation.cave.IrisCaveAnchorMode; +import art.arcane.iris.generation.decoration.IrisStiltSettings; +import art.arcane.iris.generation.decoration.IrisVacuumSettings; +import art.arcane.iris.generation.decoration.tree.IrisTree; +import art.arcane.iris.generation.decoration.tree.IrisTreeSize; +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.generation.noise.IrisNoiseGenerator; +import art.arcane.iris.generation.noise.IrisStyledRange; +import art.arcane.iris.generation.noise.NoiseStyle; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisSlopeClip; +import art.arcane.iris.world.loot.IrisLootTable; +import art.arcane.iris.world.loot.IrisVanillaLootTable; import art.arcane.iris.platform.bukkit.BukkitBlockResolution; -import art.arcane.iris.core.compat.CompatAction; -import art.arcane.iris.core.compat.CompatFinding; -import art.arcane.iris.core.compat.CompatRegistry; -import art.arcane.iris.core.compat.CompatStatus; -import art.arcane.iris.core.compat.ContentGate; -import art.arcane.iris.core.compat.PackCompatReport; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.data.cache.LazyBoundedCache; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.LootResolver; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListResource; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.pack.validation.CompatAction; +import art.arcane.iris.pack.validation.CompatFinding; +import art.arcane.iris.pack.validation.CompatRegistry; +import art.arcane.iris.pack.validation.CompatStatus; +import art.arcane.iris.pack.validation.ContentGate; +import art.arcane.iris.pack.validation.PackCompatReport; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.generation.cache.LazyBoundedCache; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.placement.LootResolver; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; -import art.arcane.iris.util.common.data.DataProvider; +import art.arcane.iris.generation.block.DataProvider; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.volmlib.util.noise.CNG; import com.google.gson.annotations.SerializedName; import lombok.AccessLevel; import lombok.AllArgsConstructor; @@ -69,7 +84,7 @@ import java.util.function.Function; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Represents an iris object placer. It places objects.") +@Description("Represents an iris object placer. It places objects.") @Data public class IrisObjectPlacement { private static final int SURFACE_WARP_CACHE_SIZE = 8; @@ -80,110 +95,110 @@ public class IrisObjectPlacement { @RegistryListResource(IrisObject.class) @Required @ArrayType(min = 1, type = String.class) - @Desc("List of objects to place") + @Description("List of objects to place") private KList place = new KList<>(); - @Desc("Rotate this objects placement") + @Description("Rotate this objects placement") private IrisObjectRotation rotation = new IrisObjectRotation(); - @Desc("Limit the max height or min height of placement.") + @Description("Limit the max height or min height of placement.") private IrisObjectLimit clamp = new IrisObjectLimit(); @MinNumber(0) @MaxNumber(1) - @Desc("The maximum layer level of a snow filter overtop of this placement. Set to 0 to disable. Max of 1.") + @Description("The maximum layer level of a snow filter overtop of this placement. Set to 0 to disable. Max of 1.") private double snow = 0; - @Desc("Whether or not this object can be targeted by a dolphin.") + @Description("Whether or not this object can be targeted by a dolphin.") private boolean isDolphinTarget = false; - @Desc("The slope at which this object can be placed. Range from 0 to 10 by default. Calculated from a 3-block radius from the center of the object placement.") + @Description("The slope at which this object can be placed. Range from 0 to 10 by default. Calculated from a 3-block radius from the center of the object placement.") private IrisSlopeClip slopeCondition = new IrisSlopeClip(); - @Desc("Set to true to add the rotation of the direction of the slope of the terrain (wherever the slope is going down) to the y-axis rotation of the object." + + @Description("Set to true to add the rotation of the direction of the slope of the terrain (wherever the slope is going down) to the y-axis rotation of the object." + "Rounded to 90 degrees. Adds the *min* rotation of the y axis as well (to still allow you to rotate objects nicely). Discards *max* and *interval* on *yaxis*") private boolean rotateTowardsSlope = false; @MinNumber(0) @MaxNumber(1) - @Desc("The chance for this to place in a chunk. If you need multiple per chunk, set this to 1 and use density.") + @Description("The chance for this to place in a chunk. If you need multiple per chunk, set this to 1 and use density.") private double chance = 1; @MinNumber(1) - @Desc("If the chance check passes, place this many in a single chunk") + @Description("If the chance check passes, place this many in a single chunk") private int density = 1; - @Desc("If the chance check passes, and you specify this, it picks a number in the range based on noise, and 'density' is ignored.") + @Description("If the chance check passes, and you specify this, it picks a number in the range based on noise, and 'density' is ignored.") private IrisStyledRange densityStyle = null; - @Desc("When stilting is enabled, this object will define various properties related to it.") + @Description("When stilting is enabled, this object will define various properties related to it.") private IrisStiltSettings stiltSettings; - @Desc("When a VACUUM place mode is used, this defines the deformation radius and falloff.") + @Description("When a VACUUM place mode is used, this defines the deformation radius and falloff.") private IrisVacuumSettings vacuumSettings; @MaxNumber(64) @MinNumber(0) - @Desc("When bore is enabled, expand max-y of the cuboid it removes") + @Description("When bore is enabled, expand max-y of the cuboid it removes") private int boreExtendMaxY = 0; @ArrayType(min = 1, type = IrisObjectMarker.class) - @Desc("Add markers to blocks in this object") + @Description("Add markers to blocks in this object") private KList markers = new KList<>(); @MaxNumber(64) @MinNumber(-1) - @Desc("When bore is enabled, lower min-y of the cuboid it removes") + @Description("When bore is enabled, lower min-y of the cuboid it removes") private int boreExtendMinY = 0; - @Desc("If set to true, objects will place on the terrain height, ignoring the water surface.") + @Description("If set to true, objects will place on the terrain height, ignoring the water surface.") private boolean underwater = false; - @Desc("If set to true, objects will place in carvings (such as underground) or under an overhang.") + @Description("If set to true, objects will place in carvings (such as underground) or under an overhang.") private CarvingMode carvingSupport = CarvingMode.SURFACE_ONLY; @MinNumber(0) @MaxNumber(16) - @Desc("Extra buffer, in blocks, around this object's base footprint that must also be solid, un-carved ground. 0 checks only the footprint itself.") + @Description("Extra buffer, in blocks, around this object's base footprint that must also be solid, un-carved ground. 0 checks only the footprint itself.") private int surfaceSupportBuffer = 2; @MinNumber(1) @MaxNumber(16) - @Desc("Minimum thickness, in blocks, of un-carved ground required under every column of this object's base footprint.") + @Description("Minimum thickness, in blocks, of un-carved ground required under every column of this object's base footprint.") private int surfaceSupportDepth = 2; - @Desc("Set to false to let this placement sit over carved surface openings such as cave entrances.") + @Description("Set to false to let this placement sit over carved surface openings such as cave entrances.") private boolean requireSurfaceSupport = true; - @Desc("When carving placement is enabled, select which carved-space anchor this placement targets.") + @Description("When carving placement is enabled, select which carved-space anchor this placement targets.") private IrisCaveAnchorMode caveAnchorMode = IrisCaveAnchorMode.PROFILE_DEFAULT; - @Desc("If this is defined, this object wont place on the terrain heightmap, but instead on this virtual heightmap") + @Description("If this is defined, this object wont place on the terrain heightmap, but instead on this virtual heightmap") private IrisNoiseGenerator heightmap; - @Desc("If set to true, Iris will try to fill the insides of 'rooms' and 'pockets' where air should fit based off of raytrace checks. This prevents a village house placing in an area where a tree already exists, and instead replaces the parts of the tree where the interior of the structure is. \n\nThis operation does not affect warmed-up generation speed however it does slow down loading objects.") + @Description("If set to true, Iris will try to fill the insides of 'rooms' and 'pockets' where air should fit based off of raytrace checks. This prevents a village house placing in an area where a tree already exists, and instead replaces the parts of the tree where the interior of the structure is. \n\nThis operation does not affect warmed-up generation speed however it does slow down loading objects.") private boolean smartBore = false; - @Desc("If set to true, Blocks placed underwater that could be waterlogged are waterlogged.") + @Description("If set to true, Blocks placed underwater that could be waterlogged are waterlogged.") private boolean waterloggable = false; - @Desc("If set to true, objects will place on the fluid height level Such as boats.") + @Description("If set to true, objects will place on the fluid height level Such as boats.") private boolean onwater = false; - @Desc("If set to true, this object will only place parts of itself where blocks already exist. Warning: Melding is very performance intensive!") + @Description("If set to true, this object will only place parts of itself where blocks already exist. Warning: Melding is very performance intensive!") private boolean meld = false; - @Desc("If set to true, this object will get placed from the bottom of the world up") + @Description("If set to true, this object will get placed from the bottom of the world up") private boolean fromBottom; - @Desc("If set to true, this object will place from the ground up instead of height checks when not y locked to the surface. This is not compatable with X and Z axis rotations (it may look off)") + @Description("If set to true, this object will place from the ground up instead of height checks when not y locked to the surface. This is not compatable with X and Z axis rotations (it may look off)") private boolean bottom = false; - @Desc("If set to true, air will be placed before the schematic places.") + @Description("If set to true, air will be placed before the schematic places.") private boolean bore = false; - @Desc("Use a generator to warp the field of coordinates. Using simplex for example would make a square placement warp like a flag") + @Description("Use a generator to warp the field of coordinates. Using simplex for example would make a square placement warp like a flag") private IrisGeneratorStyle warp = new IrisGeneratorStyle(NoiseStyle.FLAT); - @Desc("The placement mode") + @Description("The placement mode") private ObjectPlaceMode mode = ObjectPlaceMode.CENTER_HEIGHT; @ArrayType(min = 1, type = IrisObjectReplace.class) - @Desc("Find and replace blocks") + @Description("Find and replace blocks") private KList edit = new KList<>(); - @Desc("Translate this object's placement") + @Description("Translate this object's placement") private IrisObjectTranslate translate = new IrisObjectTranslate(); - @Desc("Explicit object scale. When omitted, the dimension's allObjectScaleFactor applies. Any authored scale, including size 1, overrides that factor.") + @Description("Explicit object scale. When omitted, the dimension's allObjectScaleFactor applies. Any authored scale, including size 1, overrides that factor.") private IrisObjectScale scale; @ArrayType(min = 1, type = IrisObjectLoot.class) - @Desc("The loot tables to apply to these objects") + @Description("The loot tables to apply to these objects") private KList loot = new KList<>(); @ArrayType(min = 1, type = IrisObjectVanillaLoot.class) - @Desc("The vanilla loot tables to apply to these objects") + @Description("The vanilla loot tables to apply to these objects") private KList vanillaLoot = new KList<>(); - @Desc("Whether the given loot tables override any and all other loot tables available in the dimension, region or biome.") + @Description("Whether the given loot tables override any and all other loot tables available in the dimension, region or biome.") private boolean overrideGlobalLoot = false; - @Desc("This object / these objects override the following trees when they grow...") + @Description("This object / these objects override the following trees when they grow...") @ArrayType(min = 1, type = IrisTree.class) private KList trees = new KList<>(); @RegistryListResource(IrisObject.class) @ArrayType(type = String.class) - @Desc("List of objects to this object is allowed to collied with") + @Description("List of objects to this object is allowed to collied with") private KList allowedCollisions = new KList<>(); @RegistryListResource(IrisObject.class) @ArrayType(type = String.class) - @Desc("List of objects to this object is forbidden to collied with") + @Description("List of objects to this object is forbidden to collied with") private KList forbiddenCollisions = new KList<>(); - @Desc("Ignore any placement restrictions for this object") + @Description("Ignore any placement restrictions for this object") @SerializedName(value = "forcePlace", alternate = {"force"}) private boolean forcePlace = false; private transient AtomicCache cache = new AtomicCache<>(); diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectPlacementRunner.java b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectPlacementRunner.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/object/IrisObjectPlacementRunner.java rename to core/src/main/java/art/arcane/iris/structure/object/IrisObjectPlacementRunner.java index 936ce4042..fd95a780f 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectPlacementRunner.java +++ b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectPlacementRunner.java @@ -16,22 +16,31 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.NativeStructureVolume; -import art.arcane.iris.engine.framework.PlacedObject; -import art.arcane.iris.engine.framework.placer.HeightmapObjectPlacer; +import art.arcane.iris.generation.block.BlockDataMergeSupport; +import art.arcane.iris.generation.block.TileData; +import art.arcane.iris.generation.cave.CarveResult; +import art.arcane.iris.generation.cave.CarvingMode; +import art.arcane.iris.generation.decoration.IrisProceduralBlocks; +import art.arcane.iris.generation.decoration.IrisStiltSettings; +import art.arcane.iris.structure.object.IrisSurfaceSupport; +import art.arcane.iris.generation.decoration.IrisVacuumSettings; +import art.arcane.iris.world.entity.IrisMarker; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.nativegen.NativeStructureVolume; +import art.arcane.iris.structure.placement.PlacedObject; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; -import art.arcane.iris.util.common.data.VectorMap; -import art.arcane.iris.util.common.math.IrisBlockVector; -import art.arcane.iris.util.project.noise.CNG; -import art.arcane.iris.util.project.noise.SimplexNoise; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.iris.generation.block.B; +import art.arcane.iris.generation.block.VectorMap; +import art.arcane.iris.generation.geometry.IrisBlockVector; +import art.arcane.volmlib.util.noise.CNG; +import art.arcane.volmlib.util.noise.SimplexNoise; +import art.arcane.volmlib.util.stream.ProceduralStream; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.math.BlockPosition; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectPlacementScaleInterpolator.java b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectPlacementScaleInterpolator.java similarity index 61% rename from core/src/main/java/art/arcane/iris/engine/object/IrisObjectPlacementScaleInterpolator.java rename to core/src/main/java/art/arcane/iris/structure/object/IrisObjectPlacementScaleInterpolator.java index c64a46645..27f500e40 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectPlacementScaleInterpolator.java +++ b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectPlacementScaleInterpolator.java @@ -16,18 +16,18 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.documentation.Description; -@Desc("Use 3D Interpolation on scaled objects if they are larger than the origin.") +@Description("Use 3D Interpolation on scaled objects if they are larger than the origin.") public enum IrisObjectPlacementScaleInterpolator { - @Desc("Don't interpolate, big cubes") + @Description("Don't interpolate, big cubes") NONE, - @Desc("Uses linear interpolation in 3 dimensions, generally pretty good, but slow") + @Description("Uses linear interpolation in 3 dimensions, generally pretty good, but slow") TRILINEAR, - @Desc("Uses cubic spline interpolation in 3 dimensions, even better, but extreme slowdowns") + @Description("Uses cubic spline interpolation in 3 dimensions, even better, but extreme slowdowns") TRICUBIC, - @Desc("Uses hermite spline interpolation in 3 dimensions, even better, but extreme slowdowns") + @Description("Uses hermite spline interpolation in 3 dimensions, even better, but extreme slowdowns") TRIHERMITE } diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectReplace.java b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectReplace.java similarity index 84% rename from core/src/main/java/art/arcane/iris/engine/object/IrisObjectReplace.java rename to core/src/main/java/art/arcane/iris/structure/object/IrisObjectReplace.java index 401882b08..3b57bbc27 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectReplace.java +++ b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectReplace.java @@ -16,20 +16,23 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.core.compat.ContentGate; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.generation.block.IrisBlockData; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; + +import art.arcane.iris.pack.validation.ContentGate; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.volmlib.util.noise.CNG; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -43,7 +46,7 @@ import java.util.Map; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Find and replace object materials") +@Description("Find and replace object materials") @Data public class IrisObjectReplace { private final transient AtomicCache replaceGen = new AtomicCache<>(); @@ -51,16 +54,16 @@ public class IrisObjectReplace { private final transient AtomicCache> replaceData = new AtomicCache<>(); @ArrayType(min = 1, type = IrisBlockData.class) @Required - @Desc("Find this block") + @Description("Find this block") private KList find = new KList<>(); @Required - @Desc("Replace it with this block palette") + @Description("Replace it with this block palette") private IrisMaterialPalette replace = new IrisMaterialPalette(); - @Desc("Exactly match the block data or not") + @Description("Exactly match the block data or not") private boolean exact = false; @MinNumber(0) @MaxNumber(1) - @Desc("Modifies the chance the block is replaced") + @Description("Modifies the chance the block is replaced") private float chance = 1; public KList getFind(IrisData rdata) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectRotation.java b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectRotation.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/object/IrisObjectRotation.java rename to core/src/main/java/art/arcane/iris/structure/object/IrisObjectRotation.java index b3cba90f2..f5267894c 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectRotation.java +++ b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectRotation.java @@ -16,16 +16,19 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.Snippet; -import art.arcane.iris.core.compat.MissingBlockState; +import art.arcane.iris.pack.value.IrisDirection; +import art.arcane.iris.pack.value.IrisPosition; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.Snippet; +import art.arcane.iris.pack.validation.MissingBlockState; import art.arcane.iris.platform.bukkit.BukkitBlockState; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.IrisCustomData; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.generation.block.IrisCustomData; +import art.arcane.iris.generation.geometry.IrisBlockVector; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import lombok.AllArgsConstructor; @@ -52,7 +55,7 @@ import java.util.Set; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Configures rotation for iris") +@Description("Configures rotation for iris") @Data public class IrisObjectRotation { private static volatile StateRotator PLATFORM_ROTATOR = null; @@ -76,16 +79,16 @@ public class IrisObjectRotation { } - @Desc("If this rotator is enabled or not") + @Description("If this rotator is enabled or not") private boolean enabled = true; - @Desc("The x axis rotation") + @Description("The x axis rotation") private IrisAxisRotationClamp xAxis = new IrisAxisRotationClamp(); - @Desc("The y axis rotation") + @Description("The y axis rotation") private IrisAxisRotationClamp yAxis = new IrisAxisRotationClamp(true, false, 0, 0, 90); - @Desc("The z axis rotation") + @Description("The z axis rotation") private IrisAxisRotationClamp zAxis = new IrisAxisRotationClamp(); public static IrisObjectRotation xFlip180() { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectScale.java b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectScale.java similarity index 91% rename from core/src/main/java/art/arcane/iris/engine/object/IrisObjectScale.java rename to core/src/main/java/art/arcane/iris/structure/object/IrisObjectScale.java index 21fc17275..88ece7cd7 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectScale.java +++ b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectScale.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Snippet; -import art.arcane.iris.util.common.math.Vector3i; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Snippet; +import art.arcane.volmlib.util.math.Vector3i; import art.arcane.volmlib.util.math.RNG; import lombok.AllArgsConstructor; import lombok.Data; @@ -40,7 +40,7 @@ import java.util.Map; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Scale objects") +@Description("Scale objects") @Data public class IrisObjectScale { public static final double MINIMUM_FACTOR = 0.01D; @@ -59,25 +59,25 @@ public class IrisObjectScale { @MinNumber(0.01) @MaxNumber(50) - @Desc("Fixed scale multiplier for this object. 0.5 shrinks to half size, 2.0 doubles the size. When set to anything other than 1, this overrides minimumScale and maximumScale. Leave at 1 to use the minimumScale/maximumScale range.") + @Description("Fixed scale multiplier for this object. 0.5 shrinks to half size, 2.0 doubles the size. When set to anything other than 1, this overrides minimumScale and maximumScale. Leave at 1 to use the minimumScale/maximumScale range.") private double size = 1; @MinNumber(1) @MaxNumber(32) - @Desc("Iris Objects are scaled and cached to speed up placements. Because of this extra memory is used, so we evenly distribute variations across the defined scale range, then pick one randomly. If the differences is small, use a lower number. For more possibilities on the scale spectrum, increase this at the cost of memory.") + @Description("Iris Objects are scaled and cached to speed up placements. Because of this extra memory is used, so we evenly distribute variations across the defined scale range, then pick one randomly. If the differences is small, use a lower number. For more possibilities on the scale spectrum, increase this at the cost of memory.") private int variations = 7; @MinNumber(0.01) @MaxNumber(50) - @Desc("The minimum scale. Used when size is 1 to pick a random scale per placement.") + @Description("The minimum scale. Used when size is 1 to pick a random scale per placement.") private double minimumScale = 1; @MinNumber(0.01) @MaxNumber(50) - @Desc("The maximum scale. Used when size is 1 to pick a random scale per placement.") + @Description("The maximum scale. Used when size is 1 to pick a random scale per placement.") private double maximumScale = 1; - @Desc("If this object is scaled up beyond its origin size, specify a 3D interpolator. NONE keeps blocky scaled output, TRILINEAR (LERP) smooths with linear interpolation, TRICUBIC and TRIHERMITE produce smoother but slower output.") + @Description("If this object is scaled up beyond its origin size, specify a 3D interpolator. NONE keeps blocky scaled output, TRILINEAR (LERP) smooths with linear interpolation, TRICUBIC and TRIHERMITE produce smoother but slower output.") private IrisObjectPlacementScaleInterpolator interpolation = IrisObjectPlacementScaleInterpolator.NONE; public boolean shouldScale() { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectShaping.java b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectShaping.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/object/IrisObjectShaping.java rename to core/src/main/java/art/arcane/iris/structure/object/IrisObjectShaping.java index dd3564d2b..eba0a0054 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectShaping.java +++ b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectShaping.java @@ -16,13 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; + +import art.arcane.iris.generation.block.TileData; +import art.arcane.iris.generation.decoration.IrisProceduralBlocks; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.VectorMap; -import art.arcane.iris.util.common.math.IrisBlockVector; -import art.arcane.iris.util.common.math.Vector3i; +import art.arcane.iris.generation.block.VectorMap; +import art.arcane.iris.generation.geometry.IrisBlockVector; +import art.arcane.volmlib.util.math.Vector3i; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectTransforms.java b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectTransforms.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/object/IrisObjectTransforms.java rename to core/src/main/java/art/arcane/iris/structure/object/IrisObjectTransforms.java index fb605c8d1..b627d4100 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectTransforms.java +++ b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectTransforms.java @@ -16,16 +16,19 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; + +import art.arcane.iris.generation.block.TileData; +import art.arcane.iris.pack.value.IrisPosition; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; -import art.arcane.iris.util.common.data.VectorMap; -import art.arcane.iris.util.common.math.AxisAlignedBB; -import art.arcane.iris.util.common.math.IrisBlockVector; -import art.arcane.iris.util.common.math.IrisVector; -import art.arcane.iris.util.common.math.Vector3i; -import art.arcane.iris.util.project.interpolation.Interpolation3D; +import art.arcane.iris.generation.block.B; +import art.arcane.iris.generation.block.VectorMap; +import art.arcane.iris.generation.geometry.AxisAlignedBB; +import art.arcane.iris.generation.geometry.IrisBlockVector; +import art.arcane.iris.generation.geometry.IrisVector; +import art.arcane.volmlib.util.math.Vector3i; +import art.arcane.volmlib.util.interpolation.Interpolation3D; import java.util.ArrayList; import java.util.Arrays; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectTranslate.java b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectTranslate.java similarity index 74% rename from core/src/main/java/art/arcane/iris/engine/object/IrisObjectTranslate.java rename to core/src/main/java/art/arcane/iris/structure/object/IrisObjectTranslate.java index ce77a67ab..319199ee9 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectTranslate.java +++ b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectTranslate.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; +import art.arcane.iris.generation.geometry.IrisBlockVector; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -33,28 +33,28 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Translate objects") +@Description("Translate objects") @Data public class IrisObjectTranslate { @MinNumber(-128) @MaxNumber(128) - @Desc("The x shift in blocks") + @Description("The x shift in blocks") private int x = 0; @Required @MinNumber(-128) @MaxNumber(128) - @Desc("The y shift in blocks") + @Description("The y shift in blocks") private int y = 0; @MinNumber(-128) @MaxNumber(128) - @Desc("Adds an additional amount of height randomly (translateY + rand(0 - yRandom))") + @Description("Adds an additional amount of height randomly (translateY + rand(0 - yRandom))") private int yRandom = 0; @MinNumber(-128) @MaxNumber(128) - @Desc("The z shift in blocks") + @Description("The z shift in blocks") private int z = 0; public boolean canTranslate() { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectVacuum.java b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectVacuum.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/object/IrisObjectVacuum.java rename to core/src/main/java/art/arcane/iris/structure/object/IrisObjectVacuum.java index 1b8b46084..85ca01525 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectVacuum.java +++ b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectVacuum.java @@ -16,7 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; + +import art.arcane.iris.generation.decoration.IrisVacuumSettings; public final class IrisObjectVacuum { private static final double DEFAULT_WAVE_AMPLITUDE = 3.0; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectVanillaLoot.java b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectVanillaLoot.java similarity index 56% rename from core/src/main/java/art/arcane/iris/engine/object/IrisObjectVanillaLoot.java rename to core/src/main/java/art/arcane/iris/structure/object/IrisObjectVanillaLoot.java index 90e35395f..fadfe8645 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisObjectVanillaLoot.java +++ b/core/src/main/java/art/arcane/iris/structure/object/IrisObjectVanillaLoot.java @@ -1,14 +1,16 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListFunction; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; -import art.arcane.iris.engine.object.annotations.functions.LootTableKeyFunction; +import art.arcane.iris.generation.block.IrisBlockData; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListFunction; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; +import art.arcane.iris.pack.schema.annotation.functions.LootTableKeyFunction; import art.arcane.volmlib.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; @@ -20,20 +22,20 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Represents vanilla loot within this object") +@Description("Represents vanilla loot within this object") @Data public class IrisObjectVanillaLoot implements IObjectLoot { private final transient AtomicCache> filterCache = new AtomicCache<>(); @ArrayType(min = 1, type = IrisBlockData.class) - @Desc("The list of blocks this loot table should apply to") + @Description("The list of blocks this loot table should apply to") private KList filter = new KList<>(); - @Desc("Exactly match the block data or not") + @Description("Exactly match the block data or not") private boolean exact = false; - @Desc("The vanilla loot table key") + @Description("The vanilla loot table key") @Required @RegistryListFunction(LootTableKeyFunction.class) private String name; - @Desc("The weight of this loot table being chosen") + @Description("The weight of this loot table being chosen") @MinNumber(1) private int weight = 1; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisPaintSurfaceProjection.java b/core/src/main/java/art/arcane/iris/structure/object/IrisPaintSurfaceProjection.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/object/IrisPaintSurfaceProjection.java rename to core/src/main/java/art/arcane/iris/structure/object/IrisPaintSurfaceProjection.java index 84d99b607..183e7ac67 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisPaintSurfaceProjection.java +++ b/core/src/main/java/art/arcane/iris/structure/object/IrisPaintSurfaceProjection.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.pack.loading.IrisData; import java.util.Arrays; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisStaticObject.java b/core/src/main/java/art/arcane/iris/structure/object/IrisStaticObject.java similarity index 77% rename from core/src/main/java/art/arcane/iris/engine/object/IrisStaticObject.java rename to core/src/main/java/art/arcane/iris/structure/object/IrisStaticObject.java index e3b422061..1c189d65c 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisStaticObject.java +++ b/core/src/main/java/art/arcane/iris/structure/object/IrisStaticObject.java @@ -1,18 +1,22 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.core.compat.CompatAction; -import art.arcane.iris.core.compat.CompatFinding; -import art.arcane.iris.core.compat.CompatRegistry; -import art.arcane.iris.core.compat.CompatStatus; -import art.arcane.iris.core.compat.ContentGate; -import art.arcane.iris.core.compat.PackCompatReport; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListResource; -import art.arcane.iris.engine.object.annotations.Required; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; +import art.arcane.iris.pack.value.IrisPosition; + +import art.arcane.iris.pack.validation.CompatAction; +import art.arcane.iris.pack.validation.CompatFinding; +import art.arcane.iris.pack.validation.CompatRegistry; +import art.arcane.iris.pack.validation.CompatStatus; +import art.arcane.iris.pack.validation.ContentGate; +import art.arcane.iris.pack.validation.PackCompatReport; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; +import art.arcane.iris.pack.schema.annotation.Required; import art.arcane.volmlib.util.collection.KList; import lombok.Data; import lombok.NoArgsConstructor; @@ -21,7 +25,7 @@ import lombok.experimental.Accessors; @Data @NoArgsConstructor @Accessors(chain = true) -@Desc("One object placed at a fixed world position, with transformations and edits applied to a copy") +@Description("One object placed at a fixed world position, with transformations and edits applied to a copy") public class IrisStaticObject { public static final int MAXIMUM_HORIZONTAL_POSITION = 29_999_984; public static final double MINIMUM_SCALE = 0.01D; @@ -31,27 +35,27 @@ public class IrisStaticObject { @Required @RegistryListResource(IrisObject.class) - @Desc("Object load key under objects/, without the .iob extension") + @Description("Object load key under objects/, without the .iob extension") private String object; @Required - @Desc("Absolute world X, Y and Z for the object's saved origin. Rotation and scaling keep this origin fixed.") + @Description("Absolute world X, Y and Z for the object's saved origin. Rotation and scaling keep this origin fixed.") private IrisPosition position; - @Desc("Fixed rotation around the saved object origin, in degrees. All axes default to zero.") + @Description("Fixed rotation around the saved object origin, in degrees. All axes default to zero.") private IrisStaticObjectRotation rotation = new IrisStaticObjectRotation(); @MinNumber(MINIMUM_SCALE) @MaxNumber(MAXIMUM_SCALE) - @Desc("Explicit fixed size multiplier. When omitted, the dimension's allObjectScaleFactor applies. An explicit 1 preserves the saved size.") + @Description("Explicit fixed size multiplier. When omitted, the dimension's allObjectScaleFactor applies. An explicit 1 preserves the saved size.") private Double scale; - @Desc("Interpolation used when enlarging the object. NONE preserves blocky shapes.") + @Description("Interpolation used when enlarging the object. NONE preserves blocky shapes.") private IrisObjectPlacementScaleInterpolator scaleInterpolation = IrisObjectPlacementScaleInterpolator.NONE; @ArrayType(type = IrisObjectReplace.class) - @Desc("Material and block-state replacements applied before rotation, without changing the source object") + @Description("Material and block-state replacements applied before rotation, without changing the source object") private KList edit = new KList<>(); - @Desc("Replace blocks inside the object's transformed bounding box with air before placing its blocks") + @Description("Replace blocks inside the object's transformed bounding box with air before placing its blocks") private boolean bore = false; - @Desc("Fill enclosed rooms and pockets with air before placement, preserving their empty interiors") + @Description("Fill enclosed rooms and pockets with air before placement, preserving their empty interiors") private boolean smartBore = false; - @Desc("Fixed seed for block replacement palettes and probabilities, independent of the world seed and chunk generation order.") + @Description("Fixed seed for block replacement palettes and probabilities, independent of the world seed and chunk generation order.") private long seed = 0L; public void validate(int minY, int maxY) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisStaticObjectLayer.java b/core/src/main/java/art/arcane/iris/structure/object/IrisStaticObjectLayer.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/object/IrisStaticObjectLayer.java rename to core/src/main/java/art/arcane/iris/structure/object/IrisStaticObjectLayer.java index 442afbb29..b3f1f6c4d 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisStaticObjectLayer.java +++ b/core/src/main/java/art/arcane/iris/structure/object/IrisStaticObjectLayer.java @@ -1,12 +1,16 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.TreeBlockMaterial; +import art.arcane.iris.generation.block.TileData; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.pack.value.IrisPosition; + +import art.arcane.iris.integration.Identifier; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.decoration.tree.TreeBlockMaterial; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.hunk.Hunk; -import art.arcane.iris.util.project.matter.TileWrapper; +import art.arcane.volmlib.util.hunk.Hunk; +import art.arcane.iris.world.storage.matter.TileWrapper; import art.arcane.volmlib.util.mantle.flag.MantleFlag; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.math.RNG; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisStaticObjectRotation.java b/core/src/main/java/art/arcane/iris/structure/object/IrisStaticObjectRotation.java similarity index 68% rename from core/src/main/java/art/arcane/iris/engine/object/IrisStaticObjectRotation.java rename to core/src/main/java/art/arcane/iris/structure/object/IrisStaticObjectRotation.java index b1ef2e808..85bc7d05b 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisStaticObjectRotation.java +++ b/core/src/main/java/art/arcane/iris/structure/object/IrisStaticObjectRotation.java @@ -1,8 +1,8 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; @@ -10,19 +10,19 @@ import lombok.experimental.Accessors; @Data @NoArgsConstructor @Accessors(chain = true) -@Desc("Fixed object rotation in degrees around its saved origin") +@Description("Fixed object rotation in degrees around its saved origin") public class IrisStaticObjectRotation { @MinNumber(-360) @MaxNumber(360) - @Desc("Fixed X-axis rotation in degrees, including negative and fractional angles") + @Description("Fixed X-axis rotation in degrees, including negative and fractional angles") private double x = 0; @MinNumber(-360) @MaxNumber(360) - @Desc("Fixed Y-axis rotation in degrees, including negative and fractional angles") + @Description("Fixed Y-axis rotation in degrees, including negative and fractional angles") private double y = 0; @MinNumber(-360) @MaxNumber(360) - @Desc("Fixed Z-axis rotation in degrees, including negative and fractional angles") + @Description("Fixed Z-axis rotation in degrees, including negative and fractional angles") private double z = 0; public void validate() { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceSupport.java b/core/src/main/java/art/arcane/iris/structure/object/IrisSurfaceSupport.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceSupport.java rename to core/src/main/java/art/arcane/iris/structure/object/IrisSurfaceSupport.java index 2c12e7296..c6c7850a4 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisSurfaceSupport.java +++ b/core/src/main/java/art/arcane/iris/structure/object/IrisSurfaceSupport.java @@ -1,9 +1,14 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.structure.object.IObjectPlacer; +import art.arcane.iris.structure.object.IrisObjectRotation; +import art.arcane.iris.structure.object.IrisObjectTranslate; +import art.arcane.iris.structure.object.IrisPaintSurfaceProjection; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.geometry.IrisBlockVector; import java.util.Arrays; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/structure/object/ObjectPlaceMode.java b/core/src/main/java/art/arcane/iris/structure/object/ObjectPlaceMode.java new file mode 100644 index 000000000..ba6ef9f8d --- /dev/null +++ b/core/src/main/java/art/arcane/iris/structure/object/ObjectPlaceMode.java @@ -0,0 +1,108 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2022 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package art.arcane.iris.structure.object; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("Object Place modes are useful for positioning objects just right. The default value is CENTER_HEIGHT.") +public enum ObjectPlaceMode { + @Description("The default place mode. This mode picks a center point (where the center of the object will be) and takes the height. That height is used for the whole object.") + + CENTER_HEIGHT, + + @Description("Samples a lot of points where the object will cover (horizontally) and picks the highest height, that height is then used to place the object. This mode is useful for preventing any part of your object from being buried though it will float off of cliffs.") + + MAX_HEIGHT, + + @Description("Samples only 4 points where the object will cover (horizontally) and picks the highest height, that height is then used to place the object. This mode is useful for preventing any part of your object from being buried though it will float off of cliffs.\"") + + FAST_MAX_HEIGHT, + + @Description("Samples a lot of points where the object will cover (horizontally) and picks the lowest height, that height is then used to place the object. This mode is useful for preventing any part of your object from overhanging a cliff though it gets buried a lot") + + MIN_HEIGHT, + + @Description("Samples only 4 points where the object will cover (horizontally) and picks the lowest height, that height is then used to place the object. This mode is useful for preventing any part of your object from overhanging a cliff though it gets buried a lot") + + FAST_MIN_HEIGHT, + + @Description("Stilting is MAX_HEIGHT but it repeats the bottom most block of your object until it hits the surface. This is expensive because it has to first sample every height value for each x,z position of your object. Avoid using this unless its structures for performance reasons.") + + STILT, + + @Description("Just like stilting but very inaccurate. Useful for stilting a lot of objects without too much care on accuracy (you can use the over-stilt value to force stilts under ground further)") + + FAST_STILT, + + @Description("Stilting is MIN_HEIGHT but it repeats the bottom most block of your object until it hits the surface. This is expensive because it has to first sample every height value for each x,z position of your object. Avoid using this unless its structures for performance reasons.") + + MIN_STILT, + + @Description("Just like MIN_STILT but very inaccurate. Useful for stilting a lot of objects without too much care on accuracy (you can use the over-stilt value to force stilts under ground further)") + + FAST_MIN_STILT, + + @Description("Stilting is CENTER_HEIGHT but it repeats the bottom most block of your object until it hits the surface. This is expensive because it has to first sample every height value for each x,z position of your object. Avoid using this unless its structures for performance reasons.") + + CENTER_STILT, + + @Description("Erode stilting tapers columns downward like an ice cream cone. Blocks near the center extend deepest while edge blocks drop off first. Blocks are randomly skipped in the lower portion for a rough organic eroded texture.") + + ERODE_STILT, + + @Description("Organic stilting scans straight down from the bottom of the object to the first solid block (the cave floor, or terrain) and fills the gap with the object's own bottom block. Each column stops at a slightly different, noise-varied depth and the lower portion is randomly broken up, so the underside reads as rough organic roots rather than a flat disc. Designed for objects placed inside caves so they connect to the floor instead of floating. Tune with stilt-settings (organicMaxScan, organicJitter, organicScratch).") + + ORGANIC_STILT, + + @Description("Hangs the object upside-down from a cave ceiling. The object is flipped vertically (its tip points down like a stalactite) and its top is anchored to the ceiling, while an organic, noise-varied stilt grows up into the ceiling so it never floats below the roof. Use inside caves; tune with stilt-settings (organicMaxScan, organicJitter, organicScratch).") + + CEILING_HANG, + + @Description("Anchors the object at the terrain surface (plus translate.y) like CENTER_HEIGHT, then bends the surrounding terrain to be flush with the object's base. Columns inside the object footprint are raised (or lowered) to meet the base, and the deformation falls off parabolically out to a radius so the terrain smoothly blends back to its natural height. Use this to seat a floating/translated object on the ground without a flat stilt disc, e.g. a cube translated up 10 on a mountain pulls the terrain up to meet it. Tune with vacuum-settings (radius, falloff).") + + VACUUM, + + @Description("VACUUM with a larger radius and finer per-column sampling for the smoothest terrain blend. More expensive.") + + VACUUM_HIGH, + + @Description("VACUUM with a smaller radius and coarser sampling for performance. Use when seating many objects.") + + VACUUM_FAST, + + @Description("VACUUM whose falloff radius is perturbed by noise per column, so the terrain meets the object with an irregular organic edge rather than a clean parabolic bowl.") + + VACUUM_ORGANIC, + + @Description("VACUUM whose terrain bend is bent by smooth coherent simplex noise so the surface meets the object with a gently rolling, wavy slope instead of the ragged white-noise edge of VACUUM_ORGANIC or a clean parabolic bowl. The object itself still seats flush; the waves fade to zero under the object and at the outer rim, peaking across the mid-slope. Tune with vacuum-settings (waveAmplitude, waveScale).") + + VACUUM_WAVY, + + @Description("Samples the height of the terrain at every x,z position of your object and pushes it down to the surface. It's pretty much like a melt function over the terrain.") + + PAINT, + + @Description("Places the object in pure air at an absolute Y driven entirely by translate.y (plus optional translate.yRandom). Terrain height, underwater, and carving anchor checks are skipped. Use this for floating islands, sky structures, clouds, or blimps where the object must not be translated to the ground.") + + FLOATING, + + @Description("Raw stamp at the caller-supplied (x, y, z). No terrain sampling, no stilting, no Y recomputation, no underwater or carving anchor guards. Used internally to route native Minecraft structure pieces (villages etc.) through the Iris object placer.") + + STRUCTURE_PIECE +} diff --git a/core/src/main/java/art/arcane/iris/engine/framework/placer/WorldObjectPlacer.java b/core/src/main/java/art/arcane/iris/structure/object/WorldObjectPlacer.java similarity index 86% rename from core/src/main/java/art/arcane/iris/engine/framework/placer/WorldObjectPlacer.java rename to core/src/main/java/art/arcane/iris/structure/object/WorldObjectPlacer.java index f49a0a676..5f6dbd748 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/placer/WorldObjectPlacer.java +++ b/core/src/main/java/art/arcane/iris/structure/object/WorldObjectPlacer.java @@ -1,25 +1,24 @@ -package art.arcane.iris.engine.framework.placer; +package art.arcane.iris.structure.object; import art.arcane.iris.platform.bukkit.BukkitBlockResolution; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.LootResolver; -import art.arcane.iris.core.events.IrisLootEvent; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.platform.EngineBukkitOps; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; -import art.arcane.iris.engine.object.IObjectPlacer; -import art.arcane.iris.engine.object.InventorySlotType; -import art.arcane.iris.engine.object.IrisLootTable; -import art.arcane.iris.engine.object.TileData; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.placement.LootResolver; +import art.arcane.iris.world.event.IrisLootEvent; +import art.arcane.iris.generation.mantle.EngineMantle; +import art.arcane.iris.platform.generation.EngineBukkitOps; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; +import art.arcane.iris.world.loot.InventorySlotType; +import art.arcane.iris.world.loot.IrisLootTable; +import art.arcane.iris.generation.block.TileData; import art.arcane.iris.platform.bukkit.BukkitBlockState; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.collection.KList; -import art.arcane.iris.util.common.data.IrisCustomData; +import art.arcane.iris.generation.block.IrisCustomData; import art.arcane.volmlib.util.math.RNG; import lombok.EqualsAndHashCode; import lombok.Getter; diff --git a/core/src/main/java/art/arcane/iris/engine/object/matter/IrisMatterObject.java b/core/src/main/java/art/arcane/iris/structure/object/matter/IrisMatterObject.java similarity index 80% rename from core/src/main/java/art/arcane/iris/engine/object/matter/IrisMatterObject.java rename to core/src/main/java/art/arcane/iris/structure/object/matter/IrisMatterObject.java index 4df8191a2..bad9e568c 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/matter/IrisMatterObject.java +++ b/core/src/main/java/art/arcane/iris/structure/object/matter/IrisMatterObject.java @@ -1,10 +1,10 @@ -package art.arcane.iris.engine.object.matter; +package art.arcane.iris.structure.object.matter; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.util.project.matter.IrisMatterContext; -import art.arcane.iris.util.project.matter.IrisMatterSupport; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.world.storage.matter.IrisMatterContext; +import art.arcane.iris.world.storage.matter.IrisMatterSupport; import art.arcane.volmlib.util.matter.IrisMatter; import art.arcane.volmlib.util.matter.Matter; import lombok.Data; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisStructure.java b/core/src/main/java/art/arcane/iris/structure/placement/IrisStructure.java similarity index 56% rename from core/src/main/java/art/arcane/iris/engine/object/IrisStructure.java rename to core/src/main/java/art/arcane/iris/structure/placement/IrisStructure.java index 5d123c0e5..97c67cf85 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisStructure.java +++ b/core/src/main/java/art/arcane/iris/structure/placement/IrisStructure.java @@ -16,22 +16,35 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.placement; -import art.arcane.iris.core.compat.CompatAction; -import art.arcane.iris.core.compat.CompatFinding; -import art.arcane.iris.core.compat.CompatRegistry; -import art.arcane.iris.core.compat.CompatStatus; -import art.arcane.iris.core.compat.ContentGate; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListResource; -import art.arcane.iris.engine.object.annotations.RegistryListVanillaStructure; -import art.arcane.iris.engine.object.annotations.Required; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.structure.jigsaw.IrisJigsawBranchFailurePolicy; +import art.arcane.iris.structure.jigsaw.IrisJigsawCompatibility; +import art.arcane.iris.structure.jigsaw.IrisJigsawMode; +import art.arcane.iris.structure.jigsaw.IrisJigsawPool; +import art.arcane.iris.structure.jigsaw.IrisJigsawThemeSet; +import art.arcane.iris.structure.jigsaw.IrisJigsawWorkcell; +import art.arcane.iris.structure.object.IrisObjectLoot; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.structure.object.IrisObjectReplace; +import art.arcane.iris.structure.object.ObjectPlaceMode; +import art.arcane.iris.world.loot.IrisLootTable; + +import art.arcane.iris.pack.validation.CompatAction; +import art.arcane.iris.pack.validation.CompatFinding; +import art.arcane.iris.pack.validation.CompatRegistry; +import art.arcane.iris.pack.validation.CompatStatus; +import art.arcane.iris.pack.validation.ContentGate; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; +import art.arcane.iris.pack.schema.annotation.RegistryListVanillaStructure; +import art.arcane.iris.pack.schema.annotation.Required; import art.arcane.volmlib.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; @@ -42,65 +55,65 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("A jigsaw structure. Starting from a pool, the assembler places a start piece and recursively attaches more pieces through matching connectors until it reaches the max depth or size. Pieces are Iris objects, so they carry the full object placement and block-control feature set.") +@Description("A jigsaw structure. Starting from a pool, the assembler places a start piece and recursively attaches more pieces through matching connectors until it reaches the max depth or size. Pieces are Iris objects, so they carry the full object placement and block-control feature set.") @Data @EqualsAndHashCode(callSuper = false) public class IrisStructure extends IrisRegistrant { @Required @RegistryListResource(IrisJigsawPool.class) - @Desc("The pool the assembler draws the start piece from.") + @Description("The pool the assembler draws the start piece from.") private String startPool = ""; @MinNumber(1) @MaxNumber(30) - @Desc("The maximum jigsaw recursion depth. Larger values allow larger structures (e.g. villages) at the cost of generation time.") + @Description("The maximum jigsaw recursion depth. Larger values allow larger structures (e.g. villages) at the cost of generation time.") private int maxDepth = 7; @MinNumber(1) @MaxNumber(32) - @Desc("The maximum radius of the structure in chunks from its start piece. Acts as a hard bound on assembly size and collision checks.") + @Description("The maximum radius of the structure in chunks from its start piece. Acts as a hard bound on assembly size and collision checks.") private int maxSizeChunks = 8; - @Desc("Assembly topology. SPATIAL_JIGSAW preserves the existing freeform connector graph; PLANAR_JIGSAW declares a cell-aligned planar graph.") + @Description("Assembly topology. SPATIAL_JIGSAW preserves the existing freeform connector graph; PLANAR_JIGSAW declares a cell-aligned planar graph.") private IrisJigsawMode mode = IrisJigsawMode.SPATIAL_JIGSAW; - @Desc("Target compatibility contract for this structure. IRIS_EXTENDED permits Iris-only metadata; VANILLA_PORTABLE requires a graph that can be represented by vanilla jigsaw resources.") + @Description("Target compatibility contract for this structure. IRIS_EXTENDED permits Iris-only metadata; VANILLA_PORTABLE requires a graph that can be represented by vanilla jigsaw resources.") private IrisJigsawCompatibility compatibility = IrisJigsawCompatibility.IRIS_EXTENDED; - @Desc("How unresolved optional connector branches affect assembly. FAIL_ASSEMBLY preserves strict Iris behavior; TERMINATE_BRANCH matches vanilla jigsaw branch termination.") + @Description("How unresolved optional connector branches affect assembly. FAIL_ASSEMBLY preserves strict Iris behavior; TERMINATE_BRANCH matches vanilla jigsaw branch termination.") private IrisJigsawBranchFailurePolicy branchFailurePolicy = IrisJigsawBranchFailurePolicy.FAIL_ASSEMBLY; - @Desc("Default Studio cell dimensions. Legacy planar structures use this value for every workcell when planarWorkcells is empty.") + @Description("Default Studio cell dimensions. Legacy planar structures use this value for every workcell when planarWorkcells is empty.") private IrisPosition cellSize = new IrisPosition(15, 15, 15); - @Desc("Optional author-facing name for the single spatial Jigsaw Studio workcell. Spatial is shown when this is blank.") + @Description("Optional author-facing name for the single spatial Jigsaw Studio workcell. Spatial is shown when this is blank.") private String spatialWorkcellDisplayName = ""; @ArrayType(type = IrisJigsawWorkcell.class) - @Desc("The six persistent planar Studio workcells. Leave empty only for the legacy cellSize fallback.") + @Description("The six persistent planar Studio workcells. Leave empty only for the legacy cellSize fallback.") private KList planarWorkcells = new KList<>(); @ArrayType(type = IrisJigsawThemeSet.class, min = 1) - @Desc("Weighted themes available to an assembly. Leave empty for one implicit unthemed assembly path.") + @Description("Weighted themes available to an assembly. Leave empty for one implicit unthemed assembly path.") private KList themeSets = new KList<>(); - @Desc("Whether every open connector must close with a real terminal piece through a mandatory direct fallback.") + @Description("Whether every open connector must close with a real terminal piece through a mandatory direct fallback.") private boolean requireCaps = false; - @Desc("The place mode used when stamping each piece object into the world.") + @Description("The place mode used when stamping each piece object into the world.") private ObjectPlaceMode placeMode = ObjectPlaceMode.STRUCTURE_PIECE; @ArrayType(min = 1, type = IrisObjectReplace.class) - @Desc("Find-and-replace block edits applied to every piece of this structure, using the exact same syntax as an object's 'edit'. For example, replace stone bricks with obsidian.") + @Description("Find-and-replace block edits applied to every piece of this structure, using the exact same syntax as an object's 'edit'. For example, replace stone bricks with obsidian.") private KList edit = new KList<>(); @ArrayType(type = String.class, min = 1) @RegistryListResource(IrisLootTable.class) - @Desc("Loot tables applied to containers placed by this structure's pieces.") + @Description("Loot tables applied to containers placed by this structure's pieces.") private KList loot = new KList<>(); @RegistryListVanillaStructure - @Desc("If this structure was generated by importing a vanilla or datapack structure, this is that structure's key (provenance). Empty for hand-authored structures.") + @Description("If this structure was generated by importing a vanilla or datapack structure, this is that structure's key (provenance). Empty for hand-authored structures.") private String vanillaSource = ""; public IrisJigsawMode resolvedMode() { diff --git a/core/src/main/java/art/arcane/iris/structure/placement/IrisStructureAnchorMode.java b/core/src/main/java/art/arcane/iris/structure/placement/IrisStructureAnchorMode.java new file mode 100644 index 000000000..f27f9f1e0 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/structure/placement/IrisStructureAnchorMode.java @@ -0,0 +1,34 @@ +package art.arcane.iris.structure.placement; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("Selects the vertical environment used to anchor an Iris structure placement.") +public enum IrisStructureAnchorMode { + @Description("Preserve the historical underground boolean behavior.") + LEGACY, + + @Description("Anchor to the terrain surface and use minHeight/maxHeight as a surface gate.") + SURFACE, + + @Description("Choose a deterministic Y inside the minHeight/maxHeight band.") + HEIGHT_BAND, + + @Description("Anchor in carved space with solid support below.") + CAVE_FLOOR, + + @Description("Anchor in carved space with solid support above.") + CAVE_CEILING, + + @Description("Anchor in carved space without nearby floor or ceiling support.") + CAVE_CENTER, + + @Description("Anchor at any carved-space position.") + CAVE_ANY; + + public boolean isCave() { + return switch (this) { + case CAVE_FLOOR, CAVE_CEILING, CAVE_CENTER, CAVE_ANY -> true; + default -> false; + }; + } +} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisStructureCarveShape.java b/core/src/main/java/art/arcane/iris/structure/placement/IrisStructureCarveShape.java similarity index 62% rename from core/src/main/java/art/arcane/iris/engine/object/IrisStructureCarveShape.java rename to core/src/main/java/art/arcane/iris/structure/placement/IrisStructureCarveShape.java index 127793924..86c2de54c 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisStructureCarveShape.java +++ b/core/src/main/java/art/arcane/iris/structure/placement/IrisStructureCarveShape.java @@ -1,16 +1,16 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.placement; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.documentation.Description; -@Desc("Controls the shape of the expanded terrain carve around an overbored structure.") +@Description("Controls the shape of the expanded terrain carve around an overbored structure.") public enum IrisStructureCarveShape { - @Desc("Carves the full expanded rectangular volume with straight walls, ceiling, and floor.") + @Description("Carves the full expanded rectangular volume with straight walls, ceiling, and floor.") BOX, - @Desc("Carves a smooth rounded volume around the structure without erosion noise.") + @Description("Carves a smooth rounded volume around the structure without erosion noise.") ROUNDED, - @Desc("Carves a rounded volume whose outer boundary is eroded by deterministic noise.") + @Description("Carves a rounded volume whose outer boundary is eroded by deterministic noise.") ERODED; public double maximumCeilingScale() { diff --git a/core/src/main/java/art/arcane/iris/engine/framework/IrisStructureLocator.java b/core/src/main/java/art/arcane/iris/structure/placement/IrisStructureLocator.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/framework/IrisStructureLocator.java rename to core/src/main/java/art/arcane/iris/structure/placement/IrisStructureLocator.java index 24389e4df..45196992d 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/IrisStructureLocator.java +++ b/core/src/main/java/art/arcane/iris/structure/placement/IrisStructureLocator.java @@ -16,25 +16,23 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.placement; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.structure.StructureGraphCatalog; -import art.arcane.iris.engine.framework.structure.StructureGraphCompilation; -import art.arcane.iris.engine.framework.structure.StructureAssemblyResult; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisNativeStructure; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisStructure; -import art.arcane.iris.engine.object.IrisStructureAnchorMode; -import art.arcane.iris.engine.object.IrisStructureCarveShape; -import art.arcane.iris.engine.object.IrisStructurePlacement; -import art.arcane.iris.engine.object.IrisStructureTerrain; -import art.arcane.iris.engine.object.IrisStructureTerrainMode; -import art.arcane.iris.engine.object.NativeStructureSuppression; -import art.arcane.iris.engine.object.ObjectPlaceMode; -import art.arcane.iris.engine.object.StructureDistribution; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.SeedManager; +import art.arcane.iris.structure.nativegen.NativeStructurePlacementPlanner; +import art.arcane.iris.structure.nativegen.NativeStructureStartPlan; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.structure.graph.StructureGraphCatalog; +import art.arcane.iris.structure.graph.StructureGraphCompilation; +import art.arcane.iris.structure.graph.StructureAssemblyResult; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.structure.nativegen.IrisNativeStructure; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.structure.nativegen.NativeStructureSuppression; +import art.arcane.iris.structure.object.ObjectPlaceMode; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; import com.github.benmanes.caffeine.cache.Cache; diff --git a/core/src/main/java/art/arcane/iris/structure/placement/IrisStructurePlacement.java b/core/src/main/java/art/arcane/iris/structure/placement/IrisStructurePlacement.java new file mode 100644 index 000000000..a52872cb3 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/structure/placement/IrisStructurePlacement.java @@ -0,0 +1,176 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2022 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package art.arcane.iris.structure.placement; + +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.pack.validation.CompatPools; +import art.arcane.iris.structure.nativegen.IrisNativeStructure; +import art.arcane.iris.structure.nativegen.NativeStructureSuppression; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; +import art.arcane.iris.pack.schema.annotation.RegistryListStructure; +import art.arcane.volmlib.util.collection.KList; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@AllArgsConstructor +@Description("Attaches structures to a biome, region or dimension and controls where and how often they generate. This is independent of a structure's own native generation, so you can add custom placements in tandem with native generation or instead of it.") +@Data +public class IrisStructurePlacement { + @ArrayType(type = String.class, min = 1) + @RegistryListStructure + @Description("Editable Iris assembly resources offered by this placement. Leave empty when nativeStructures supplies the source.") + private KList structures = new KList<>(); + + @ArrayType(type = IrisNativeStructure.class, min = 1) + @Description("Live registered vanilla, datapack, and modded structures offered by this placement. Minecraft runs their native generator directly, independent of normal biome or dimension eligibility.") + private KList nativeStructures = new KList<>(); + + @Description("Stable authored identity for this placement. Set this when multiple placements use the same structure and settings. When empty, Iris derives identity from the placement content so list reordering does not move generated structures.") + private String placementId = ""; + + @Description("Controls native replacement for this placement. REPLACE_SOURCE suppresses each selected Iris structure's vanillaSource or registered native source, and is honored only for dimension-level placements. NONE leaves native generation untouched.") + private NativeStructureSuppression nativeSuppression = NativeStructureSuppression.NONE; + + @Description("How start positions are scattered.") + private StructureDistribution distribution = StructureDistribution.RANDOM_SPREAD; + + @MinNumber(1) + @MaxNumber(4096) + @Description("RANDOM_SPREAD only: the grid cell size in chunks. One placement attempt per cell. Larger = rarer.") + private int spacing = 32; + + @MinNumber(0) + @Description("RANDOM_SPREAD only: the minimum chunk separation between placements within the grid. Must be smaller than spacing.") + private int separation = 8; + + @Description("RANDOM_SPREAD only: a salt mixed into the placement RNG so different structures using the same spacing do not stack.") + private int salt = 165745296; + + @MinNumber(0) + @MaxNumber(1) + @Description("DENSITY only: the per-chunk probability (0-1) of a placement starting in a chunk.") + private double density = 0.02; + + @MinNumber(1) + @Description("CONCENTRIC_RINGS only: the number of placements distributed across the rings.") + private int ringCount = 128; + + @MinNumber(1) + @Description("CONCENTRIC_RINGS only: the ring spacing in chunks.") + private int ringDistance = 32; + + @MinNumber(1) + @Description("CONCENTRIC_RINGS only: how many placements share each ring before moving outward.") + private int ringSpread = 3; + + @Description("Minimum world Y. SURFACE uses it as a terrain-height gate; HEIGHT_BAND and cave anchors use it as the lower candidate bound. LEGACY follows underground.") + private int minHeight = -2032; + + @Description("Maximum world Y. SURFACE uses it as a terrain-height gate; HEIGHT_BAND and cave anchors use it as the upper candidate bound. LEGACY follows underground.") + private int maxHeight = 2032; + + @Description("LEGACY anchor only: if true, choose a deterministic world Y inside [minHeight, maxHeight]; otherwise gate the terrain surface. Explicit anchor modes override this field.") + private boolean underground = false; + + @Description("Vertical anchor policy. LEGACY preserves the underground boolean. Cave modes search existing carved-space data and implicitly behave as underground placements.") + private IrisStructureAnchorMode anchor = IrisStructureAnchorMode.LEGACY; + + @RegistryListResource(IrisBiome.class) + @ArrayType(type = String.class, min = 1) + @Description("Optional cave-biome allowlist for cave anchor modes. Empty accepts the cave biome resolved at the selected anchor. Entries match by load key, including prefix matches.") + private KList caveBiomes = new KList<>(); + + @MinNumber(1) + @MaxNumber(64) + @Description("Cave anchor modes only: deterministic X/Z columns tested inside the start chunk before the placement is skipped.") + private int caveAnchorAttempts = 8; + + @MinNumber(1) + @MaxNumber(16) + @Description("Cave anchor modes only: vertical scan step in blocks. One is exact; larger values trade precision for speed.") + private int caveAnchorScanStep = 1; + + @MinNumber(1) + @MaxNumber(64) + @Description("Cave anchor modes only: minimum contiguous carved-space height required at the selected anchor.") + private int caveMinimumClearance = 3; + + @Description("Terrain integration for this placement. The editable structures backend supports SOURCE, PRESERVE, BORE, and FORCE_CARVE. The nativeStructures backend supports every terrain mode.") + private IrisStructureTerrain terrain = new IrisStructureTerrain(); + + @Description("Optional foundation columns placed beneath the assembled structure's occupied bottom cells. Columns pass through air and fluids until they reach solid ground, up to maxDepth.") + private IrisStructureStiltSettings stilt = null; + + @Description("If false, the placement is skipped when its selected surface or cave column is submerged.") + private boolean underwater = false; + + public IrisStructureTerrain resolvedTerrain() { + return terrain == null ? new IrisStructureTerrain() : terrain; + } + + public boolean hasIrisStructures() { + return structures != null && !structures.isEmpty(); + } + + public boolean hasNativeStructures() { + return nativeStructures != null && !nativeStructures.isEmpty(); + } + + public IrisStructureAnchorMode resolvedAnchor() { + if (anchor == null || anchor == IrisStructureAnchorMode.LEGACY) { + return underground ? IrisStructureAnchorMode.HEIGHT_BAND : IrisStructureAnchorMode.SURFACE; + } + return anchor; + } + + public boolean isAnchoredUnderground() { + IrisStructureAnchorMode activeAnchor = resolvedAnchor(); + return activeAnchor == IrisStructureAnchorMode.HEIGHT_BAND || activeAnchor.isCave(); + } + + /** + * Reports cave biome references the version-content gate excluded. The list is deliberately not filtered: it is an + * allowlist whose emptiness means "any cave biome", and it feeds the placement determinism signature. An excluded + * biome never generates, so the entry is inert - this only makes it visible in the pack compat report. + */ + public void reportExcludedCaveBiomes(IrisData data, String subjectType, String subjectKey, String field) { + if (data == null || data.getBiomeLoader() == null || caveBiomes == null) { + return; + } + + for (int index = 0; index < caveBiomes.size(); index++) { + String key = caveBiomes.get(index); + IrisBiome biome = data.getBiomeLoader().load(key); + + if (biome != null && biome.isCompatExcluded()) { + CompatPools.drop(data, biome, subjectType, subjectKey, field + "[" + index + "] " + key, null); + } + } + } +} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisStructureSetFrequencyOverride.java b/core/src/main/java/art/arcane/iris/structure/placement/IrisStructureSetFrequencyOverride.java similarity index 52% rename from core/src/main/java/art/arcane/iris/engine/object/IrisStructureSetFrequencyOverride.java rename to core/src/main/java/art/arcane/iris/structure/placement/IrisStructureSetFrequencyOverride.java index d73963568..57e9cea8c 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisStructureSetFrequencyOverride.java +++ b/core/src/main/java/art/arcane/iris/structure/placement/IrisStructureSetFrequencyOverride.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.placement; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListVanillaStructureSet; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListVanillaStructureSet; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -30,15 +30,15 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("An exact registered structure-set frequency multiplier. Iris retains the set's structures, weights, biome eligibility, placement algorithm, salt, exclusion zone, starts, processors, mobs, loot, and locate behavior while scaling only its native placement density.") +@Description("An exact registered structure-set frequency multiplier. Iris retains the set's structures, weights, biome eligibility, placement algorithm, salt, exclusion zone, starts, processors, mobs, loot, and locate behavior while scaling only its native placement density.") @Data public class IrisStructureSetFrequencyOverride { @RegistryListVanillaStructureSet - @Desc("Exact registered structure-set key, for example 'minecraft:nether_complexes'. Structure keys such as 'minecraft:fortress' are not valid here.") + @Description("Exact registered structure-set key, for example 'minecraft:nether_complexes'. Structure keys such as 'minecraft:fortress' are not valid here.") private String structureSet = ""; @MinNumber(0.01) @MaxNumber(16) - @Desc("Requested placement-density multiplier. Random-spread sets scale their placement frequency first and then their integer chunk spacing; integer spacing and separation constraints can make the realized increase slightly lower or higher. The default 1 leaves the registered placement unchanged.") + @Description("Requested placement-density multiplier. Random-spread sets scale their placement frequency first and then their integer chunk spacing; integer spacing and separation constraints can make the realized increase slightly lower or higher. The default 1 leaves the registered placement unchanged.") private double multiplier = 1D; } diff --git a/core/src/main/java/art/arcane/iris/structure/placement/IrisStructureStiltSettings.java b/core/src/main/java/art/arcane/iris/structure/placement/IrisStructureStiltSettings.java new file mode 100644 index 000000000..90e7b82ad --- /dev/null +++ b/core/src/main/java/art/arcane/iris/structure/placement/IrisStructureStiltSettings.java @@ -0,0 +1,34 @@ +package art.arcane.iris.structure.placement; + +import art.arcane.iris.generation.terrain.IrisMaterialPalette; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Accessors(chain = true) +@NoArgsConstructor +@AllArgsConstructor +@Description("Defines foundation columns placed beneath a structure.") +@Data +public class IrisStructureStiltSettings { + @MinNumber(1) + @MaxNumber(4064) + @Description("Maximum number of blocks each foundation column may descend while searching for solid ground.") + private int maxDepth = 64; + + @Description("Block palette used for foundation columns.") + private IrisMaterialPalette palette = new IrisMaterialPalette().qclear().qadd("minecraft:cobblestone"); + + @MinNumber(1) + @MaxNumber(64) + @Description("Horizontal spacing between support columns. One fills every eligible foundation column; larger values create sparse stilts.") + private int spacing = 1; + + @Description("For Iris-authored structures, whether solid partial blocks such as slabs, stairs, and walls may seed foundation columns instead of requiring a fully occluding base block.") + private boolean supportNonOccluding = false; +} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisStructureTerrain.java b/core/src/main/java/art/arcane/iris/structure/placement/IrisStructureTerrain.java similarity index 59% rename from core/src/main/java/art/arcane/iris/engine/object/IrisStructureTerrain.java rename to core/src/main/java/art/arcane/iris/structure/placement/IrisStructureTerrain.java index fadfc1543..f9e3ef98b 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisStructureTerrain.java +++ b/core/src/main/java/art/arcane/iris/structure/placement/IrisStructureTerrain.java @@ -1,8 +1,10 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.placement; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; + +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -12,7 +14,7 @@ import lombok.experimental.Accessors; @NoArgsConstructor @AllArgsConstructor @Data -@Desc("Terrain integration applied after a structure graph is assembled and before its pieces are placed.") +@Description("Terrain integration applied after a structure graph is assembled and before its pieces are placed.") public class IrisStructureTerrain { private static final double AUTO_LOBE_FREQUENCY_RATIO = 0.3D; private static final double DEFAULT_EROSION_STRENGTH = 0.8D; @@ -22,53 +24,53 @@ public class IrisStructureTerrain { private static final double MAX_EROSION_FREQUENCY = 1D; private static final double MAX_LOBE_FREQUENCY = 1D; - @Desc("Terrain operation. SOURCE applies the registered native structure's authored terrain adaptation and is a no-op for editable Iris structures. PRESERVE disables terrain integration. FLATTEN cuts and fills exposed native structure terrain within flattenRange, blending across horizontalPadding blocks. VACUUM raises terrain from processed rigid-template foundations with a fixed 12-block falloff without lowering ground. BORE and FORCE_CARVE clear the requested envelope, while ENCASE fills it before placement.") + @Description("Terrain operation. SOURCE applies the registered native structure's authored terrain adaptation and is a no-op for editable Iris structures. PRESERVE disables terrain integration. FLATTEN cuts and fills exposed native structure terrain within flattenRange, blending across horizontalPadding blocks. VACUUM raises terrain from processed rigid-template foundations with a fixed 12-block falloff without lowering ground. BORE and FORCE_CARVE clear the requested envelope, while ENCASE fills it before placement.") private IrisStructureTerrainMode mode = IrisStructureTerrainMode.SOURCE; @MinNumber(0) @MaxNumber(128) - @Desc("Horizontal clearance for BORE, FORCE_CARVE, and ENCASE, or the terrain blend distance for FLATTEN, in blocks. VACUUM uses its fixed 12-block terrain falloff.") + @Description("Horizontal clearance for BORE, FORCE_CARVE, and ENCASE, or the terrain blend distance for FLATTEN, in blocks. VACUUM uses its fixed 12-block terrain falloff.") private int horizontalPadding = 0; @MinNumber(0) @MaxNumber(128) - @Desc("Maximum vertical cut, fill, and foundation support depth for FLATTEN, in blocks. Other terrain modes ignore this setting.") + @Description("Maximum vertical cut, fill, and foundation support depth for FLATTEN, in blocks. Other terrain modes ignore this setting.") private int flattenRange = 64; @MinNumber(0) @MaxNumber(128) - @Desc("Air clearance above the assembled pieces.") + @Description("Air clearance above the assembled pieces.") private int ceilingPadding = 0; @MinNumber(0) @MaxNumber(64) - @Desc("Terrain cleared below the assembled pieces. Zero preserves their supporting floor.") + @Description("Terrain cleared below the assembled pieces. Zero preserves their supporting floor.") private int floorPadding = 0; - @Desc("Shape used by FORCE_CARVE.") + @Description("Shape used by FORCE_CARVE.") private IrisStructureCarveShape shape = IrisStructureCarveShape.BOX; - @Desc("Block palette used by ENCASE. When unset, the Overworld uses stone or deepslate, the Nether uses netherrack, and the End uses end stone.") + @Description("Block palette used by ENCASE. When unset, the Overworld uses stone or deepslate, the Nether uses netherrack, and the End uses end stone.") private IrisMaterialPalette encasePalette = null; @MinNumber(0) @MaxNumber(1) - @Desc("Boundary erosion strength for ERODED force carving.") + @Description("Boundary erosion strength for ERODED force carving.") private double erosionStrength = DEFAULT_EROSION_STRENGTH; @MinNumber(MIN_EROSION_FREQUENCY) @MaxNumber(MAX_EROSION_FREQUENCY) - @Desc("Boundary noise frequency for ERODED force carving.") + @Description("Boundary noise frequency for ERODED force carving.") private double erosionFrequency = DEFAULT_EROSION_FREQUENCY; @MinNumber(0) @MaxNumber(1) - @Desc("Low frequency lobe wavelength for ERODED force carving. Zero derives it from the erosion frequency.") + @Description("Low frequency lobe wavelength for ERODED force carving. Zero derives it from the erosion frequency.") private double lobeFrequency = 0D; @MinNumber(0) @MaxNumber(1) - @Desc("Fraction of the horizontal padding the lobes may remove for ERODED force carving. Zero keeps a uniform boundary.") + @Description("Fraction of the horizontal padding the lobes may remove for ERODED force carving. Zero keeps a uniform boundary.") private double lobeStrength = DEFAULT_LOBE_STRENGTH; public IrisStructureTerrainMode resolvedMode() { diff --git a/core/src/main/java/art/arcane/iris/structure/placement/IrisStructureTerrainMode.java b/core/src/main/java/art/arcane/iris/structure/placement/IrisStructureTerrainMode.java new file mode 100644 index 000000000..ac6f42128 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/structure/placement/IrisStructureTerrainMode.java @@ -0,0 +1,27 @@ +package art.arcane.iris.structure.placement; + +import art.arcane.volmlib.util.documentation.Description; + +@Description("Controls how terrain is integrated with a structure.") +public enum IrisStructureTerrainMode { + @Description("Replays the registered native structure's own authored terrain adaptation (beard surface fitting, BURY/ENCAPSULATE fill, legacy template-air clearing). Does nothing for editable Iris structures, which have no source adaptation to replay.") + SOURCE, + + @Description("Disables all terrain integration. Pieces are placed into completely unmodified terrain and may end up embedded in solid rock or floating over dips.") + PRESERVE, + + @Description("Clears one straight axis-aligned box around the assembled pieces, expanded by horizontalPadding, ceilingPadding, and floorPadding. Ignores the carve shape and erosion settings.") + BORE, + + @Description("Clears the padded envelope using the configured carve shape (BOX, ROUNDED, or noise-eroded ERODED) so the cavity hugs the assembled pieces instead of a straight box.") + FORCE_CARVE, + + @Description("Raises surface terrain from processed solid rigid-template foundations at or below each authored ground plane with a 12-block falloff, even when the registered structure has no terrain adaptation. Existing higher terrain and authored air remain untouched.") + VACUUM, + + @Description("Cuts and fills exposed native structure foundations within flattenRange, blending into surrounding terrain across horizontalPadding blocks. Buried and submerged pieces retain their terrain.") + FLATTEN, + + @Description("Fills the padded piece volume with solid blocks before any piece is placed so shells, walls, and floors land in solid ground instead of pre-carved air. Only air and liquid cells are filled; existing terrain and structures are never overwritten. Native pieces then carve their own interiors.") + ENCASE +} diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisStructureYBand.java b/core/src/main/java/art/arcane/iris/structure/placement/IrisStructureYBand.java similarity index 53% rename from core/src/main/java/art/arcane/iris/engine/object/IrisStructureYBand.java rename to core/src/main/java/art/arcane/iris/structure/placement/IrisStructureYBand.java index 7163332ba..c34867f59 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisStructureYBand.java +++ b/core/src/main/java/art/arcane/iris/structure/placement/IrisStructureYBand.java @@ -1,8 +1,8 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.placement; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -12,16 +12,16 @@ import lombok.experimental.Accessors; @NoArgsConstructor @AllArgsConstructor @Data -@Desc("An absolute world Y band a native structure is relocated into. Reversed bounds are normalized.") +@Description("An absolute world Y band a native structure is relocated into. Reversed bounds are normalized.") public class IrisStructureYBand { @MinNumber(-4064) @MaxNumber(4064) - @Desc("Lowest absolute world Y of the band.") + @Description("Lowest absolute world Y of the band.") private int min = 0; @MinNumber(-4064) @MaxNumber(4064) - @Desc("Highest absolute world Y of the band.") + @Description("Highest absolute world Y of the band.") private int max = 0; public int resolvedMin() { diff --git a/core/src/main/java/art/arcane/iris/engine/framework/LootResolver.java b/core/src/main/java/art/arcane/iris/structure/placement/LootResolver.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/framework/LootResolver.java rename to core/src/main/java/art/arcane/iris/structure/placement/LootResolver.java index c4d6c0945..feca22827 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/LootResolver.java +++ b/core/src/main/java/art/arcane/iris/structure/placement/LootResolver.java @@ -16,13 +16,15 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.placement; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisLootMode; -import art.arcane.iris.engine.object.IrisLootReference; -import art.arcane.iris.engine.object.IrisLootTable; -import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.generation.runtime.Engine; + +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.world.loot.IrisLootMode; +import art.arcane.iris.world.loot.IrisLootReference; +import art.arcane.iris.world.loot.IrisLootTable; +import art.arcane.iris.generation.terrain.IrisRegion; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/PlacedObject.java b/core/src/main/java/art/arcane/iris/structure/placement/PlacedObject.java similarity index 87% rename from core/src/main/java/art/arcane/iris/engine/framework/PlacedObject.java rename to core/src/main/java/art/arcane/iris/structure/placement/PlacedObject.java index c72d0d080..da764773a 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/PlacedObject.java +++ b/core/src/main/java/art/arcane/iris/structure/placement/PlacedObject.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.placement; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisObjectPlacement; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectPlacement; import lombok.AllArgsConstructor; import lombok.Data; import org.jetbrains.annotations.Nullable; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/PlacedStructurePiece.java b/core/src/main/java/art/arcane/iris/structure/placement/PlacedStructurePiece.java similarity index 89% rename from core/src/main/java/art/arcane/iris/engine/framework/PlacedStructurePiece.java rename to core/src/main/java/art/arcane/iris/structure/placement/PlacedStructurePiece.java index 7756b271b..005557871 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/PlacedStructurePiece.java +++ b/core/src/main/java/art/arcane/iris/structure/placement/PlacedStructurePiece.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.placement; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisObjectRotation; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectRotation; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/StructureAssembler.java b/core/src/main/java/art/arcane/iris/structure/placement/StructureAssembler.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/framework/StructureAssembler.java rename to core/src/main/java/art/arcane/iris/structure/placement/StructureAssembler.java index fb7d048d2..30e28f101 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/StructureAssembler.java +++ b/core/src/main/java/art/arcane/iris/structure/placement/StructureAssembler.java @@ -16,32 +16,31 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.placement; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.structure.CompiledStructureGraph; -import art.arcane.iris.engine.framework.structure.JigsawPoolSelection; -import art.arcane.iris.engine.framework.structure.PlanarJigsawWorkcellResolver; -import art.arcane.iris.engine.framework.structure.StructureAssemblyResult; -import art.arcane.iris.engine.framework.structure.StructureAssemblyStatus; -import art.arcane.iris.engine.framework.structure.StructureGraphCatalog; -import art.arcane.iris.engine.framework.structure.StructureGraphCompilation; -import art.arcane.iris.engine.framework.structure.StructureGraphCompiler; -import art.arcane.iris.engine.framework.structure.StructureGraphDiagnostic; -import art.arcane.iris.engine.framework.structure.StructureGraphResolver; -import art.arcane.iris.engine.object.IrisDirection; -import art.arcane.iris.engine.object.IrisJigsawBranchFailurePolicy; -import art.arcane.iris.engine.object.IrisJigsawConnector; -import art.arcane.iris.engine.object.IrisJigsawMode; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisJigsawPieceEntry; -import art.arcane.iris.engine.object.IrisJigsawPool; -import art.arcane.iris.engine.object.IrisJigsawWorkcellArchetype; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisObjectRotation; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.IrisStructure; -import art.arcane.iris.engine.object.JigsawJoint; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.structure.graph.CompiledStructureGraph; +import art.arcane.iris.structure.graph.JigsawPoolSelection; +import art.arcane.iris.structure.graph.PlanarJigsawWorkcellResolver; +import art.arcane.iris.structure.graph.StructureAssemblyResult; +import art.arcane.iris.structure.graph.StructureAssemblyStatus; +import art.arcane.iris.structure.graph.StructureGraphCatalog; +import art.arcane.iris.structure.graph.StructureGraphCompilation; +import art.arcane.iris.structure.graph.StructureGraphCompiler; +import art.arcane.iris.structure.graph.StructureGraphDiagnostic; +import art.arcane.iris.structure.graph.StructureGraphResolver; +import art.arcane.iris.pack.value.IrisDirection; +import art.arcane.iris.structure.jigsaw.IrisJigsawBranchFailurePolicy; +import art.arcane.iris.structure.jigsaw.IrisJigsawConnector; +import art.arcane.iris.structure.jigsaw.IrisJigsawMode; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.jigsaw.IrisJigsawPieceEntry; +import art.arcane.iris.structure.jigsaw.IrisJigsawPool; +import art.arcane.iris.structure.jigsaw.IrisJigsawWorkcellArchetype; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectRotation; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.structure.jigsaw.JigsawJoint; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/StructureCaveAnchorResolver.java b/core/src/main/java/art/arcane/iris/structure/placement/StructureCaveAnchorResolver.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/framework/StructureCaveAnchorResolver.java rename to core/src/main/java/art/arcane/iris/structure/placement/StructureCaveAnchorResolver.java index 75a715f29..fe16c072b 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/StructureCaveAnchorResolver.java +++ b/core/src/main/java/art/arcane/iris/structure/placement/StructureCaveAnchorResolver.java @@ -1,10 +1,10 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.placement; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisStructureAnchorMode; -import art.arcane.iris.engine.object.IrisStructurePlacement; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveStorage; +import art.arcane.iris.generation.runtime.Engine; + +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveStorage; import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.matter.MatterCavern; diff --git a/core/src/main/java/art/arcane/iris/engine/object/StructureDistribution.java b/core/src/main/java/art/arcane/iris/structure/placement/StructureDistribution.java similarity index 60% rename from core/src/main/java/art/arcane/iris/engine/object/StructureDistribution.java rename to core/src/main/java/art/arcane/iris/structure/placement/StructureDistribution.java index ff396886c..2235143b4 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/StructureDistribution.java +++ b/core/src/main/java/art/arcane/iris/structure/placement/StructureDistribution.java @@ -16,18 +16,18 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.placement; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.documentation.Description; -@Desc("Controls how structure start positions are scattered across the world.") +@Description("Controls how structure start positions are scattered across the world.") public enum StructureDistribution { - @Desc("Vanilla-style spacing/separation grid. One placement attempt per grid cell, randomly offset within it by the separation. Use spacing, separation and salt.") + @Description("Vanilla-style spacing/separation grid. One placement attempt per grid cell, randomly offset within it by the separation. Use spacing, separation and salt.") RANDOM_SPREAD, - @Desc("A per-chunk probability roll, like object density. Use density (0-1).") + @Description("A per-chunk probability roll, like object density. Use density (0-1).") DENSITY, - @Desc("Concentric rings around the world origin, like vanilla strongholds. Use rings.") + @Description("Concentric rings around the world origin, like vanilla strongholds. Use rings.") CONCENTRIC_RINGS } diff --git a/core/src/main/java/art/arcane/iris/engine/framework/StructurePlacementGrid.java b/core/src/main/java/art/arcane/iris/structure/placement/StructurePlacementGrid.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/framework/StructurePlacementGrid.java rename to core/src/main/java/art/arcane/iris/structure/placement/StructurePlacementGrid.java index 4ae945a10..6d0b7296a 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/StructurePlacementGrid.java +++ b/core/src/main/java/art/arcane/iris/structure/placement/StructurePlacementGrid.java @@ -16,11 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.placement; -import art.arcane.iris.engine.object.IrisNativeStructure; -import art.arcane.iris.engine.object.IrisStructureAnchorMode; -import art.arcane.iris.engine.object.IrisStructurePlacement; +import art.arcane.iris.structure.nativegen.IrisNativeStructure; import art.arcane.volmlib.util.math.RNG; import java.util.Locale; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/StructurePlacementMarker.java b/core/src/main/java/art/arcane/iris/structure/placement/StructurePlacementMarker.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/framework/StructurePlacementMarker.java rename to core/src/main/java/art/arcane/iris/structure/placement/StructurePlacementMarker.java index 13bd4bed2..093522b44 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/StructurePlacementMarker.java +++ b/core/src/main/java/art/arcane/iris/structure/placement/StructurePlacementMarker.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.placement; import java.nio.charset.StandardCharsets; import java.util.Base64; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/StructurePlacementScope.java b/core/src/main/java/art/arcane/iris/structure/placement/StructurePlacementScope.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/framework/StructurePlacementScope.java rename to core/src/main/java/art/arcane/iris/structure/placement/StructurePlacementScope.java index c32142391..5f6021f1e 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/StructurePlacementScope.java +++ b/core/src/main/java/art/arcane/iris/structure/placement/StructurePlacementScope.java @@ -1,9 +1,10 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.placement; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisStructurePlacement; +import art.arcane.iris.generation.runtime.Engine; + +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisRegion; import art.arcane.volmlib.util.collection.KList; import java.lang.ref.WeakReference; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/StructureReachability.java b/core/src/main/java/art/arcane/iris/structure/placement/StructureReachability.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/framework/StructureReachability.java rename to core/src/main/java/art/arcane/iris/structure/placement/StructureReachability.java index aa780a7eb..7e60a0d60 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/StructureReachability.java +++ b/core/src/main/java/art/arcane/iris/structure/placement/StructureReachability.java @@ -16,9 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.placement; -import art.arcane.iris.engine.object.IrisWorld; +import art.arcane.iris.generation.runtime.Engine; + +import art.arcane.iris.world.IrisWorld; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.volmlib.util.collection.KList; import com.github.benmanes.caffeine.cache.Cache; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/StructureVerticalBounds.java b/core/src/main/java/art/arcane/iris/structure/placement/StructureVerticalBounds.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/framework/StructureVerticalBounds.java rename to core/src/main/java/art/arcane/iris/structure/placement/StructureVerticalBounds.java index 05e67668c..0fd295d8d 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/StructureVerticalBounds.java +++ b/core/src/main/java/art/arcane/iris/structure/placement/StructureVerticalBounds.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.placement; public final class StructureVerticalBounds { private StructureVerticalBounds() { diff --git a/core/src/main/java/art/arcane/iris/core/service/PackDownloadProgressReporter.java b/core/src/main/java/art/arcane/iris/studio/PackDownloadProgressReporter.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/service/PackDownloadProgressReporter.java rename to core/src/main/java/art/arcane/iris/studio/PackDownloadProgressReporter.java index 5963f08f4..cc666f047 100644 --- a/core/src/main/java/art/arcane/iris/core/service/PackDownloadProgressReporter.java +++ b/core/src/main/java/art/arcane/iris/studio/PackDownloadProgressReporter.java @@ -1,14 +1,14 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.PackDownloadMessages; -import art.arcane.iris.core.pack.PackDownloader; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.PackDownloadMessages; +import art.arcane.iris.pack.PackDownloader; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.format.C; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.localization.C; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.localization.MessageArgument; import org.bukkit.boss.BarColor; diff --git a/core/src/main/java/art/arcane/iris/engine/object/StudioMode.java b/core/src/main/java/art/arcane/iris/studio/StudioMode.java similarity index 52% rename from core/src/main/java/art/arcane/iris/engine/object/StudioMode.java rename to core/src/main/java/art/arcane/iris/studio/StudioMode.java index 706b8e5da..810dfca9e 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/StudioMode.java +++ b/core/src/main/java/art/arcane/iris/studio/StudioMode.java @@ -16,40 +16,40 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.studio; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.platform.BukkitChunkGenerator; -import art.arcane.iris.engine.platform.studio.generators.BiomeBuffetGenerator; -import art.arcane.iris.engine.platform.studio.generators.ObjectStudioGenerator; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.platform.generation.BukkitChunkGenerator; +import art.arcane.iris.studio.generation.BiomeBuffetGenerator; +import art.arcane.iris.studio.generation.ObjectStudioGenerator; -@Desc("Represents a studio mode") +@Description("Represents a studio mode") public enum StudioMode { - @Desc("Installs no studio generator; the dimension generates normally.") + @Description("Installs no studio generator; the dimension generates normally.") NORMAL, - @Desc("Debug layout: every biome in the dimension on a square grid, one chunk per biome cell, barrier floor past the last biome. Bukkit studio worlds only.") + @Description("Debug layout: every biome in the dimension on a square grid, one chunk per biome cell, barrier floor past the last biome. Bukkit studio worlds only.") BIOME_BUFFET_1x1, - @Desc("Debug layout: every biome on a square grid with 3x3-chunk cells per biome, barrier floor past the last biome. Bukkit studio worlds only.") + @Description("Debug layout: every biome on a square grid with 3x3-chunk cells per biome, barrier floor past the last biome. Bukkit studio worlds only.") BIOME_BUFFET_3x3, - @Desc("Debug layout: every biome on a square grid with 5x5-chunk cells per biome, barrier floor past the last biome. Bukkit studio worlds only.") + @Description("Debug layout: every biome on a square grid with 5x5-chunk cells per biome, barrier floor past the last biome. Bukkit studio worlds only.") BIOME_BUFFET_5x5, - @Desc("Debug layout: every biome on a square grid with 9x9-chunk cells per biome, barrier floor past the last biome. Bukkit studio worlds only.") + @Description("Debug layout: every biome on a square grid with 9x9-chunk cells per biome, barrier floor past the last biome. Bukkit studio worlds only.") BIOME_BUFFET_9x9, - @Desc("Debug layout: every biome on a square grid with 18x18-chunk cells per biome, barrier floor past the last biome. Bukkit studio worlds only.") + @Description("Debug layout: every biome on a square grid with 18x18-chunk cells per biome, barrier floor past the last biome. Bukkit studio worlds only.") BIOME_BUFFET_18x18, - @Desc("Debug layout: every biome on a square grid with 36x36-chunk cells per biome, barrier floor past the last biome. Bukkit studio worlds only.") + @Description("Debug layout: every biome on a square grid with 36x36-chunk cells per biome, barrier floor past the last biome. Bukkit studio worlds only.") BIOME_BUFFET_36x36, - @Desc("Deprecated: generates exactly like NORMAL and will be removed in a future release.") + @Description("Deprecated: generates exactly like NORMAL and will be removed in a future release.") REGION_BUFFET, - @Desc("Replaces terrain with the object studio: a flat polished-deepslate floor laying every pack object out on framed, end-rod-marked grid plinths. Bukkit studio worlds only.") + @Description("Replaces terrain with the object studio: a flat polished-deepslate floor laying every pack object out on framed, end-rod-marked grid plinths. Bukkit studio worlds only.") OBJECT_BUFFET; public int biomeSizeChunks() { diff --git a/core/src/main/java/art/arcane/iris/core/service/StudioSVC.java b/core/src/main/java/art/arcane/iris/studio/StudioSVC.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/service/StudioSVC.java rename to core/src/main/java/art/arcane/iris/studio/StudioSVC.java index 03821df86..c1898d560 100644 --- a/core/src/main/java/art/arcane/iris/core/service/StudioSVC.java +++ b/core/src/main/java/art/arcane/iris/studio/StudioSVC.java @@ -16,56 +16,58 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.service; +package art.arcane.iris.studio; + +import art.arcane.iris.studio.jigsaw.JigsawStudioService; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.IrisStartupValidation; -import art.arcane.iris.core.IrisWorldStorage; -import art.arcane.iris.core.ServerConfigurator; -import art.arcane.iris.core.DatapackInstallResult; -import art.arcane.iris.core.lifecycle.LifecycleOperationCoordinator; -import art.arcane.iris.core.lifecycle.WorldLifecycleService; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.pack.AtomicDirectoryPublisher; -import art.arcane.iris.core.pack.BrokenPackException; -import art.arcane.iris.core.pack.PackDirectoryResolver; -import art.arcane.iris.core.pack.PackDownloadExecution; -import art.arcane.iris.core.pack.PackDownloader; -import art.arcane.iris.core.pack.PackValidationRegistry; -import art.arcane.iris.core.pack.PackValidationResult; -import art.arcane.iris.core.pack.PackValidator; -import art.arcane.iris.core.project.IrisProject; -import art.arcane.iris.core.project.IrisPackageCompiler; -import art.arcane.iris.core.project.IrisCodeWorkspace; -import art.arcane.iris.core.project.IrisProjectCopier; -import art.arcane.iris.core.runtime.StudioOpenCoordinator; -import art.arcane.iris.core.runtime.TransientWorldCleanupSupport; -import art.arcane.iris.core.runtime.WorldDeletionQueue; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioActivation; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.history.GenerationActivation; -import art.arcane.iris.engine.history.GenerationEpoch; -import art.arcane.iris.engine.history.GenerationEpochContractFactory; -import art.arcane.iris.engine.history.GenerationHistory; -import art.arcane.iris.engine.history.GenerationHistoryPaths; -import art.arcane.iris.engine.history.GenerationPackFingerprint; -import art.arcane.iris.engine.history.GenerationRegistryContract; -import art.arcane.iris.engine.history.GenerationRegistryContractFactory; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.world.IrisStartupValidation; +import art.arcane.iris.world.IrisWorldStorage; +import art.arcane.iris.pack.datapack.ServerConfigurator; +import art.arcane.iris.pack.datapack.DatapackInstallResult; +import art.arcane.iris.world.lifecycle.LifecycleOperationCoordinator; +import art.arcane.iris.world.lifecycle.WorldLifecycleService; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.AtomicDirectoryPublisher; +import art.arcane.iris.pack.BrokenPackException; +import art.arcane.iris.pack.PackDirectoryResolver; +import art.arcane.iris.pack.PackDownloadExecution; +import art.arcane.iris.pack.PackDownloader; +import art.arcane.iris.pack.PackValidationRegistry; +import art.arcane.iris.pack.PackValidationResult; +import art.arcane.iris.pack.PackValidator; +import art.arcane.iris.studio.workspace.IrisProject; +import art.arcane.iris.studio.workspace.IrisPackageCompiler; +import art.arcane.iris.studio.workspace.IrisCodeWorkspace; +import art.arcane.iris.studio.workspace.IrisProjectCopier; +import art.arcane.iris.studio.object.StudioOpenCoordinator; +import art.arcane.iris.world.runtime.TransientWorldCleanupSupport; +import art.arcane.iris.world.runtime.WorldDeletionQueue; +import art.arcane.iris.studio.jigsaw.JigsawStudioActivation; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.world.history.GenerationActivation; +import art.arcane.iris.world.history.GenerationEpoch; +import art.arcane.iris.world.history.GenerationEpochContractFactory; +import art.arcane.iris.world.history.GenerationHistory; +import art.arcane.iris.world.history.GenerationHistoryPaths; +import art.arcane.iris.world.history.GenerationPackFingerprint; +import art.arcane.iris.world.history.GenerationRegistryContract; +import art.arcane.iris.world.history.GenerationRegistryContractFactory; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.volmlib.util.bukkit.WorldIdentity; import art.arcane.volmlib.util.exceptions.IrisException; import art.arcane.volmlib.util.io.IO; import art.arcane.volmlib.util.json.JSONObject; -import art.arcane.iris.util.common.plugin.IrisService; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.parallel.MultiBurst; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.platform.bukkit.plugin.IrisService; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.generation.concurrent.MultiBurst; +import art.arcane.iris.world.task.J; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.entity.Player; @@ -98,9 +100,9 @@ import java.util.function.Consumer; import java.util.function.Supplier; import java.util.regex.Pattern; -import art.arcane.iris.core.localization.BukkitRuntimeMessages; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.PackDownloadMessages; +import art.arcane.iris.localization.BukkitRuntimeMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.PackDownloadMessages; import art.arcane.volmlib.util.localization.MessageArgument; public class StudioSVC implements IrisService { public static final String WORKSPACE_NAME = "packs"; @@ -195,7 +197,7 @@ public class StudioSVC implements IrisService { activeProject = null; try { - art.arcane.iris.core.tools.IrisCreator.removeTransientStudioWorldsFromBukkitYml(); + art.arcane.iris.world.IrisCreator.removeTransientStudioWorldsFromBukkitYml(); } catch (Throwable e) { IrisLogging.reportError("Failed to unregister transient studio worlds from bukkit.yml during shutdown.", e); } diff --git a/core/src/main/java/art/arcane/iris/core/edit/BlockSignal.java b/core/src/main/java/art/arcane/iris/studio/edit/BlockSignal.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/edit/BlockSignal.java rename to core/src/main/java/art/arcane/iris/studio/edit/BlockSignal.java index 19c104f41..b296a6029 100644 --- a/core/src/main/java/art/arcane/iris/core/edit/BlockSignal.java +++ b/core/src/main/java/art/arcane/iris/studio/edit/BlockSignal.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.edit; +package art.arcane.iris.studio.edit; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.scheduling.SR; import org.bukkit.Bukkit; import org.bukkit.Location; diff --git a/core/src/main/java/art/arcane/iris/core/edit/DustRevealer.java b/core/src/main/java/art/arcane/iris/studio/edit/DustRevealer.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/edit/DustRevealer.java rename to core/src/main/java/art/arcane/iris/studio/edit/DustRevealer.java index f3b1998ef..f91c8093e 100644 --- a/core/src/main/java/art/arcane/iris/core/edit/DustRevealer.java +++ b/core/src/main/java/art/arcane/iris/studio/edit/DustRevealer.java @@ -16,26 +16,26 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.edit; +package art.arcane.iris.studio.edit; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.RuntimeUiMessages; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; -import art.arcane.iris.util.common.format.C; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.RuntimeUiMessages; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; +import art.arcane.iris.localization.C; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.BlockPosition; import art.arcane.volmlib.util.math.M; import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.localization.MessageArgument; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import org.bukkit.Location; import org.bukkit.Sound; import org.bukkit.World; diff --git a/core/src/main/java/art/arcane/iris/engine/platform/studio/generators/BiomeBuffetGenerator.java b/core/src/main/java/art/arcane/iris/studio/generation/BiomeBuffetGenerator.java similarity index 73% rename from core/src/main/java/art/arcane/iris/engine/platform/studio/generators/BiomeBuffetGenerator.java rename to core/src/main/java/art/arcane/iris/studio/generation/BiomeBuffetGenerator.java index 6dbae6fb9..c84593fda 100644 --- a/core/src/main/java/art/arcane/iris/engine/platform/studio/generators/BiomeBuffetGenerator.java +++ b/core/src/main/java/art/arcane/iris/studio/generation/BiomeBuffetGenerator.java @@ -16,16 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.platform.studio.generators; +package art.arcane.iris.studio.generation; -import art.arcane.iris.engine.data.chunk.TerrainChunk; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.GenerationSessionLease; -import art.arcane.iris.engine.framework.WrongEngineBroException; -import art.arcane.iris.engine.platform.studio.BiomeBuffetLayout; -import art.arcane.iris.engine.platform.studio.EnginedStudioGenerator; -import art.arcane.iris.util.common.data.BoundBlockState; -import art.arcane.iris.util.project.context.IrisContext; +import art.arcane.iris.generation.chunk.TerrainChunk; +import art.arcane.iris.generation.chunk.ChunkDataHunkView; +import art.arcane.iris.generation.chunk.TerrainChunkBiomeHunkView; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.GenerationSessionLease; +import art.arcane.iris.generation.runtime.WrongEngineBroException; +import art.arcane.iris.generation.block.BoundBlockState; +import art.arcane.iris.generation.context.IrisContext; public class BiomeBuffetGenerator extends EnginedStudioGenerator { private static final BoundBlockState FLOOR = BoundBlockState.of("BARRIER"); @@ -48,7 +48,8 @@ public class BiomeBuffetGenerator extends EnginedStudioGenerator { try (GenerationSessionLease lease = engine.acquireGenerationLease("bukkit_biome_buffet_stage"); IrisContext.Scope ignored = IrisContext.open(engine, lease.sessionId(), null)) { - engine.generate(x << 4, z << 4, tc, true); + engine.generate(x << 4, z << 4, new ChunkDataHunkView(tc.getChunkData()), + new TerrainChunkBiomeHunkView(tc), true); } } diff --git a/core/src/main/java/art/arcane/iris/engine/platform/studio/BiomeBuffetLayout.java b/core/src/main/java/art/arcane/iris/studio/generation/BiomeBuffetLayout.java similarity index 85% rename from core/src/main/java/art/arcane/iris/engine/platform/studio/BiomeBuffetLayout.java rename to core/src/main/java/art/arcane/iris/studio/generation/BiomeBuffetLayout.java index eff99f50d..0df3dd4f5 100644 --- a/core/src/main/java/art/arcane/iris/engine/platform/studio/BiomeBuffetLayout.java +++ b/core/src/main/java/art/arcane/iris/studio/generation/BiomeBuffetLayout.java @@ -1,10 +1,10 @@ -package art.arcane.iris.engine.platform.studio; +package art.arcane.iris.studio.generation; -import art.arcane.iris.engine.object.InferredType; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.util.common.data.DataProvider; +import art.arcane.iris.generation.terrain.InferredType; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.generation.block.DataProvider; import java.util.ArrayList; import java.util.Comparator; diff --git a/core/src/main/java/art/arcane/iris/engine/platform/studio/EnginedStudioGenerator.java b/core/src/main/java/art/arcane/iris/studio/generation/EnginedStudioGenerator.java similarity index 83% rename from core/src/main/java/art/arcane/iris/engine/platform/studio/EnginedStudioGenerator.java rename to core/src/main/java/art/arcane/iris/studio/generation/EnginedStudioGenerator.java index 4d36201fd..e93dbc5cb 100644 --- a/core/src/main/java/art/arcane/iris/engine/platform/studio/EnginedStudioGenerator.java +++ b/core/src/main/java/art/arcane/iris/studio/generation/EnginedStudioGenerator.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.platform.studio; +package art.arcane.iris.studio.generation; -import art.arcane.iris.engine.data.chunk.TerrainChunk; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.WrongEngineBroException; +import art.arcane.iris.generation.chunk.TerrainChunk; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.WrongEngineBroException; import lombok.RequiredArgsConstructor; @RequiredArgsConstructor diff --git a/core/src/main/java/art/arcane/iris/engine/platform/studio/generators/JigsawStudioGenerator.java b/core/src/main/java/art/arcane/iris/studio/generation/JigsawStudioGenerator.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/platform/studio/generators/JigsawStudioGenerator.java rename to core/src/main/java/art/arcane/iris/studio/generation/JigsawStudioGenerator.java index fb6e724d9..b3fcf0925 100644 --- a/core/src/main/java/art/arcane/iris/engine/platform/studio/generators/JigsawStudioGenerator.java +++ b/core/src/main/java/art/arcane/iris/studio/generation/JigsawStudioGenerator.java @@ -1,36 +1,35 @@ -package art.arcane.iris.engine.platform.studio.generators; +package art.arcane.iris.studio.generation; -import art.arcane.iris.core.runtime.jigsaw.JigsawPlanarDirection; -import art.arcane.iris.core.runtime.jigsaw.JigsawPlanarTopology; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioActivation; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBay; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBounds; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCellDimensions; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioControlPosition; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioLayout; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioSession; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioVariant; -import art.arcane.iris.core.service.JigsawStudioService; -import art.arcane.iris.engine.data.chunk.TerrainChunk; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.GenerationSessionLease; -import art.arcane.iris.engine.framework.WrongEngineBroException; -import art.arcane.iris.engine.object.IrisDirection; -import art.arcane.iris.engine.object.IrisJigsawConnector; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisObjectRotation; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.JigsawJoint; -import art.arcane.iris.engine.object.TileData; -import art.arcane.iris.engine.platform.studio.EnginedStudioGenerator; +import art.arcane.iris.studio.jigsaw.JigsawPlanarDirection; +import art.arcane.iris.studio.jigsaw.JigsawPlanarTopology; +import art.arcane.iris.studio.jigsaw.JigsawStudioActivation; +import art.arcane.iris.studio.jigsaw.JigsawStudioBay; +import art.arcane.iris.studio.jigsaw.JigsawStudioBounds; +import art.arcane.iris.studio.jigsaw.JigsawStudioCellDimensions; +import art.arcane.iris.studio.jigsaw.JigsawStudioControlPosition; +import art.arcane.iris.studio.jigsaw.JigsawStudioLayout; +import art.arcane.iris.studio.jigsaw.JigsawStudioSession; +import art.arcane.iris.studio.jigsaw.JigsawStudioVariant; +import art.arcane.iris.studio.jigsaw.JigsawStudioService; +import art.arcane.iris.generation.chunk.TerrainChunk; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.GenerationSessionLease; +import art.arcane.iris.generation.runtime.WrongEngineBroException; +import art.arcane.iris.pack.value.IrisDirection; +import art.arcane.iris.structure.jigsaw.IrisJigsawConnector; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectRotation; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.structure.jigsaw.JigsawJoint; +import art.arcane.iris.generation.block.TileData; import art.arcane.iris.platform.bukkit.BukkitWorldBinding; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; -import art.arcane.iris.util.common.data.VectorMap; -import art.arcane.iris.util.common.math.IrisBlockVector; -import art.arcane.iris.util.common.math.Vector3i; -import art.arcane.iris.util.project.context.IrisContext; +import art.arcane.iris.generation.block.B; +import art.arcane.iris.generation.block.VectorMap; +import art.arcane.iris.generation.geometry.IrisBlockVector; +import art.arcane.volmlib.util.math.Vector3i; +import art.arcane.iris.generation.context.IrisContext; import art.arcane.volmlib.util.collection.KList; import org.bukkit.World; diff --git a/core/src/main/java/art/arcane/iris/engine/platform/studio/generators/ObjectStudioGenerator.java b/core/src/main/java/art/arcane/iris/studio/generation/ObjectStudioGenerator.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/platform/studio/generators/ObjectStudioGenerator.java rename to core/src/main/java/art/arcane/iris/studio/generation/ObjectStudioGenerator.java index 024e7032f..a44f6b94f 100644 --- a/core/src/main/java/art/arcane/iris/engine/platform/studio/generators/ObjectStudioGenerator.java +++ b/core/src/main/java/art/arcane/iris/studio/generation/ObjectStudioGenerator.java @@ -16,31 +16,30 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.platform.studio.generators; +package art.arcane.iris.studio.generation; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.runtime.ObjectStudioActivation; -import art.arcane.iris.core.runtime.ObjectStudioLayout; -import art.arcane.iris.core.runtime.ObjectStudioLayout.GridCell; -import art.arcane.iris.core.service.ObjectStudioSaveService; -import art.arcane.iris.engine.data.chunk.TerrainChunk; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.GenerationSessionLease; -import art.arcane.iris.engine.framework.WrongEngineBroException; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.TileData; -import art.arcane.iris.engine.platform.studio.EnginedStudioGenerator; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.studio.object.ObjectStudioActivation; +import art.arcane.iris.studio.object.ObjectStudioLayout; +import art.arcane.iris.studio.object.ObjectStudioLayout.GridCell; +import art.arcane.iris.studio.object.ObjectStudioSaveService; +import art.arcane.iris.generation.chunk.TerrainChunk; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.GenerationSessionLease; +import art.arcane.iris.generation.runtime.WrongEngineBroException; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.generation.block.TileData; import art.arcane.iris.platform.bukkit.BukkitBiome; import art.arcane.iris.platform.bukkit.BukkitBlockState; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.VectorMap; -import art.arcane.iris.util.common.math.Vector3i; +import art.arcane.iris.generation.block.VectorMap; +import art.arcane.volmlib.util.math.Vector3i; import org.bukkit.Material; import org.bukkit.block.Biome; -import art.arcane.iris.util.common.math.IrisBlockVector; -import art.arcane.iris.util.project.context.IrisContext; +import art.arcane.iris.generation.geometry.IrisBlockVector; +import art.arcane.iris.generation.context.IrisContext; import java.io.File; import java.util.ArrayList; diff --git a/core/src/main/java/art/arcane/iris/engine/platform/studio/StudioGenerator.java b/core/src/main/java/art/arcane/iris/studio/generation/StudioGenerator.java similarity index 80% rename from core/src/main/java/art/arcane/iris/engine/platform/studio/StudioGenerator.java rename to core/src/main/java/art/arcane/iris/studio/generation/StudioGenerator.java index bda46bed0..764966453 100644 --- a/core/src/main/java/art/arcane/iris/engine/platform/studio/StudioGenerator.java +++ b/core/src/main/java/art/arcane/iris/studio/generation/StudioGenerator.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.platform.studio; +package art.arcane.iris.studio.generation; -import art.arcane.iris.engine.data.chunk.TerrainChunk; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.WrongEngineBroException; +import art.arcane.iris.generation.chunk.TerrainChunk; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.WrongEngineBroException; public interface StudioGenerator { void generateChunk(Engine engine, TerrainChunk tc, int x, int z) throws WrongEngineBroException; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawPlanarArchetype.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawPlanarArchetype.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawPlanarArchetype.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawPlanarArchetype.java index e54c875ca..6aaa4ac57 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawPlanarArchetype.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawPlanarArchetype.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.engine.object.IrisJigsawWorkcellArchetype; +import art.arcane.iris.structure.jigsaw.IrisJigsawWorkcellArchetype; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawPlanarDirection.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawPlanarDirection.java similarity index 90% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawPlanarDirection.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawPlanarDirection.java index 0bbb80bc0..33fe1330a 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawPlanarDirection.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawPlanarDirection.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.engine.object.IrisDirection; +import art.arcane.iris.pack.value.IrisDirection; public enum JigsawPlanarDirection { NORTH(1), diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawPlanarTopology.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawPlanarTopology.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawPlanarTopology.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawPlanarTopology.java index 8f59b28e5..5e08bdb3e 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawPlanarTopology.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawPlanarTopology.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; import java.util.Collections; import java.util.EnumSet; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawPlanarTopologyKind.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawPlanarTopologyKind.java similarity index 70% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawPlanarTopologyKind.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawPlanarTopologyKind.java index ecf50678d..de90cfbf7 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawPlanarTopologyKind.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawPlanarTopologyKind.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; public enum JigsawPlanarTopologyKind { BLANK, diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioActivation.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioActivation.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioActivation.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioActivation.java index 34132e38e..ebc81bb43 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioActivation.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioActivation.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.pack.loading.IrisData; import java.util.Locale; import java.util.Map; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioAuthoringAccess.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioAuthoringAccess.java similarity index 89% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioAuthoringAccess.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioAuthoringAccess.java index 207c43d57..784d27a83 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioAuthoringAccess.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioAuthoringAccess.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.structure.authoring.StructureOwnershipManifest; +import art.arcane.iris.structure.authoring.StructureOwnershipManifest; import java.io.IOException; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioAutosaveScheduler.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioAutosaveScheduler.java similarity index 92% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioAutosaveScheduler.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioAutosaveScheduler.java index 896d14d68..f7509af88 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioAutosaveScheduler.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioAutosaveScheduler.java @@ -1,24 +1,18 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioActivation; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBay; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBounds; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioLayout; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioSession; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioVariant; -import art.arcane.iris.core.service.JigsawStudioCapture.ChunkCaptureArea; -import art.arcane.iris.core.service.JigsawStudioCapture.ChunkSnapshot; -import art.arcane.iris.core.service.JigsawStudioCaptureScheduler.CaptureCoordinator; -import art.arcane.iris.core.service.JigsawStudioCaptureScheduler.CaptureTarget; -import art.arcane.iris.core.service.JigsawStudioCaptureScheduler.CaptureWork; -import art.arcane.iris.core.service.JigsawStudioMaterializer.VariantReloadRequest; -import art.arcane.iris.core.service.JigsawStudioSaveLifecycle.BayReadiness; -import art.arcane.iris.core.service.JigsawStudioSaveLifecycle.SaveAttempt; -import art.arcane.iris.core.service.JigsawStudioSaveLifecycle.SaveStart; -import art.arcane.iris.core.service.JigsawStudioService.ActiveStudio; -import art.arcane.iris.core.service.JigsawStudioService.CommandGraphMutationResult; +import art.arcane.iris.studio.jigsaw.JigsawStudioCapture.ChunkCaptureArea; +import art.arcane.iris.studio.jigsaw.JigsawStudioCapture.ChunkSnapshot; +import art.arcane.iris.studio.jigsaw.JigsawStudioCaptureScheduler.CaptureCoordinator; +import art.arcane.iris.studio.jigsaw.JigsawStudioCaptureScheduler.CaptureTarget; +import art.arcane.iris.studio.jigsaw.JigsawStudioCaptureScheduler.CaptureWork; +import art.arcane.iris.studio.jigsaw.JigsawStudioMaterializer.VariantReloadRequest; +import art.arcane.iris.studio.jigsaw.JigsawStudioSaveLifecycle.BayReadiness; +import art.arcane.iris.studio.jigsaw.JigsawStudioSaveLifecycle.SaveAttempt; +import art.arcane.iris.studio.jigsaw.JigsawStudioSaveLifecycle.SaveStart; +import art.arcane.iris.studio.jigsaw.JigsawStudioService.ActiveStudio; +import art.arcane.iris.studio.jigsaw.JigsawStudioService.CommandGraphMutationResult; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import org.bukkit.entity.Player; import java.io.IOException; @@ -34,15 +28,15 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; -import static art.arcane.iris.core.service.JigsawStudioCapture.captureChunkIntersection; -import static art.arcane.iris.core.service.JigsawStudioCapture.chunkIntersections; -import static art.arcane.iris.core.service.JigsawStudioCaptureScheduler.resolveCaptureTarget; -import static art.arcane.iris.core.service.JigsawStudioGraphMutations.loadMappedLayout; -import static art.arcane.iris.core.service.JigsawStudioProtection.authorizeOwner; -import static art.arcane.iris.core.service.JigsawStudioService.AUTOSAVE_RETRY_TICKS; -import static art.arcane.iris.core.service.JigsawStudioService.failureMessage; -import static art.arcane.iris.core.service.JigsawStudioService.message; -import static art.arcane.iris.core.service.JigsawStudioService.writeFailure; +import static art.arcane.iris.studio.jigsaw.JigsawStudioCapture.captureChunkIntersection; +import static art.arcane.iris.studio.jigsaw.JigsawStudioCapture.chunkIntersections; +import static art.arcane.iris.studio.jigsaw.JigsawStudioCaptureScheduler.resolveCaptureTarget; +import static art.arcane.iris.studio.jigsaw.JigsawStudioGraphMutations.loadMappedLayout; +import static art.arcane.iris.studio.jigsaw.JigsawStudioProtection.authorizeOwner; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.AUTOSAVE_RETRY_TICKS; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.failureMessage; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.message; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.writeFailure; final class JigsawStudioAutosaveScheduler { static final int AUTOSAVE_DEBOUNCE_TICKS = 40; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioBay.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioBay.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioBay.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioBay.java index e239d46a5..bb30c636c 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioBay.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioBay.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; import java.util.Objects; import java.util.Optional; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioBayKind.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioBayKind.java similarity index 63% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioBayKind.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioBayKind.java index 9a19e0647..71670b622 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioBayKind.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioBayKind.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; public enum JigsawStudioBayKind { PLANAR_WORKCELL, diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioBoardContext.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioBoardContext.java similarity index 94% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioBoardContext.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioBoardContext.java index 4e04ceb5f..fa316e7ef 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioBoardContext.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioBoardContext.java @@ -1,6 +1,5 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioMode; import java.util.Objects; import java.util.UUID; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioBoardState.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioBoardState.java similarity index 91% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioBoardState.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioBoardState.java index b37852ecd..76dde7c17 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioBoardState.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioBoardState.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; public enum JigsawStudioBoardState { LOADING("Loading"), diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioBounds.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioBounds.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioBounds.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioBounds.java index 7578ee6c8..a6e317a16 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioBounds.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioBounds.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioCapture.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioCapture.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioCapture.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioCapture.java index d03bcd810..4acec7dd0 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioCapture.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioCapture.java @@ -1,23 +1,17 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.runtime.jigsaw.JigsawPlanarArchetype; -import art.arcane.iris.core.runtime.jigsaw.JigsawPlanarDirection; -import art.arcane.iris.core.runtime.jigsaw.JigsawPlanarTopology; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBay; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBounds; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCellDimensions; -import art.arcane.iris.engine.object.IrisDirection; -import art.arcane.iris.engine.object.IrisJigsawConnector; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisObjectRotation; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.JigsawJoint; -import art.arcane.iris.engine.object.TileData; +import art.arcane.iris.pack.value.IrisDirection; +import art.arcane.iris.structure.jigsaw.IrisJigsawConnector; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectRotation; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.structure.jigsaw.JigsawJoint; +import art.arcane.iris.generation.block.TileData; import art.arcane.iris.platform.bukkit.BukkitBlockState; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; +import art.arcane.iris.generation.block.B; import art.arcane.volmlib.util.collection.KMap; import org.bukkit.Bukkit; import org.bukkit.Material; @@ -38,9 +32,9 @@ import java.util.Map; import java.util.Objects; import java.util.Set; -import static art.arcane.iris.core.service.JigsawStudioChunkWriter.restoreCapturedMetadataForDisplay; -import static art.arcane.iris.core.service.JigsawStudioService.chunkKey; -import static art.arcane.iris.core.service.JigsawStudioService.failureMessage; +import static art.arcane.iris.studio.jigsaw.JigsawStudioChunkWriter.restoreCapturedMetadataForDisplay; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.chunkKey; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.failureMessage; final class JigsawStudioCapture { private static final Comparator NEW_CONNECTOR_SOURCE_POSITION_ORDER = Comparator diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioCaptureScheduler.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioCaptureScheduler.java similarity index 89% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioCaptureScheduler.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioCaptureScheduler.java index 19d109ed0..fbed3baba 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioCaptureScheduler.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioCaptureScheduler.java @@ -1,30 +1,23 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioActivation; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBay; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBounds; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCellDimensions; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioLayout; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioSession; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioVariant; -import art.arcane.iris.core.service.JigsawStudioAutosaveScheduler.AutosaveFailureState; -import art.arcane.iris.core.service.JigsawStudioAutosaveScheduler.AutosavePersistentFailure; -import art.arcane.iris.core.service.JigsawStudioCapture.Capture; -import art.arcane.iris.core.service.JigsawStudioCapture.ChunkCaptureArea; -import art.arcane.iris.core.service.JigsawStudioCapture.ChunkSnapshot; -import art.arcane.iris.core.service.JigsawStudioCapture.WorkcellTopologyException; -import art.arcane.iris.core.service.JigsawStudioService.ActiveStudio; -import art.arcane.iris.core.structure.authoring.StructureTransactionWriter; -import art.arcane.iris.core.structure.authoring.StructureWriteOptions; -import art.arcane.iris.core.structure.authoring.StructureWriteResult; -import art.arcane.iris.engine.framework.structure.StructureResourceBundleGraphCompiler; -import art.arcane.iris.engine.object.IrisJigsawConnector; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.platform.studio.generators.JigsawStudioGenerator; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.studio.jigsaw.JigsawStudioAutosaveScheduler.AutosaveFailureState; +import art.arcane.iris.studio.jigsaw.JigsawStudioAutosaveScheduler.AutosavePersistentFailure; +import art.arcane.iris.studio.jigsaw.JigsawStudioCapture.Capture; +import art.arcane.iris.studio.jigsaw.JigsawStudioCapture.ChunkCaptureArea; +import art.arcane.iris.studio.jigsaw.JigsawStudioCapture.ChunkSnapshot; +import art.arcane.iris.studio.jigsaw.JigsawStudioCapture.WorkcellTopologyException; +import art.arcane.iris.studio.jigsaw.JigsawStudioService.ActiveStudio; +import art.arcane.iris.structure.authoring.StructureTransactionWriter; +import art.arcane.iris.structure.authoring.StructureWriteOptions; +import art.arcane.iris.structure.authoring.StructureWriteResult; +import art.arcane.iris.structure.graph.StructureResourceBundleGraphCompiler; +import art.arcane.iris.structure.jigsaw.IrisJigsawConnector; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.studio.generation.JigsawStudioGenerator; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import org.bukkit.World; import org.bukkit.entity.Player; @@ -40,16 +33,16 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; -import static art.arcane.iris.core.service.JigsawStudioCapture.aggregateSnapshots; -import static art.arcane.iris.core.service.JigsawStudioCapture.captureChunkIntersection; -import static art.arcane.iris.core.service.JigsawStudioCapture.chunkIntersections; -import static art.arcane.iris.core.service.JigsawStudioCapture.preserveCapturedConnectorOrder; -import static art.arcane.iris.core.service.JigsawStudioCapture.requireWorkcellTopology; -import static art.arcane.iris.core.service.JigsawStudioService.chunkKey; -import static art.arcane.iris.core.service.JigsawStudioService.failureMessage; -import static art.arcane.iris.core.service.JigsawStudioService.message; -import static art.arcane.iris.core.service.JigsawStudioService.playSaveSound; -import static art.arcane.iris.core.service.JigsawStudioService.writeFailure; +import static art.arcane.iris.studio.jigsaw.JigsawStudioCapture.aggregateSnapshots; +import static art.arcane.iris.studio.jigsaw.JigsawStudioCapture.captureChunkIntersection; +import static art.arcane.iris.studio.jigsaw.JigsawStudioCapture.chunkIntersections; +import static art.arcane.iris.studio.jigsaw.JigsawStudioCapture.preserveCapturedConnectorOrder; +import static art.arcane.iris.studio.jigsaw.JigsawStudioCapture.requireWorkcellTopology; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.chunkKey; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.failureMessage; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.message; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.playSaveSound; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.writeFailure; final class JigsawStudioCaptureScheduler { private final JigsawStudioService service; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioCellDimensions.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioCellDimensions.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioCellDimensions.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioCellDimensions.java index 342f0e2b6..aa15c9dbe 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioCellDimensions.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioCellDimensions.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; public record JigsawStudioCellDimensions(int width, int height, int depth) { public static final int MAX_HORIZONTAL_AXIS = 128; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioChunkWriter.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioChunkWriter.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioChunkWriter.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioChunkWriter.java index ba94ad4c1..3da10be34 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioChunkWriter.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioChunkWriter.java @@ -1,20 +1,16 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBay; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBounds; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCellDimensions; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioMarkerKeyCodec; -import art.arcane.iris.core.service.JigsawStudioCapture.CapturedConnector; -import art.arcane.iris.core.service.JigsawStudioCapture.ChunkCaptureArea; -import art.arcane.iris.core.service.JigsawStudioCapture.LocalPosition; -import art.arcane.iris.core.service.JigsawStudioSaveLifecycle.BayReadiness; -import art.arcane.iris.core.service.JigsawStudioService.ActiveStudio; -import art.arcane.iris.engine.object.IrisJigsawConnector; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisObjectRotation; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.TileData; -import art.arcane.iris.engine.platform.studio.generators.JigsawStudioGenerator; +import art.arcane.iris.studio.jigsaw.JigsawStudioCapture.CapturedConnector; +import art.arcane.iris.studio.jigsaw.JigsawStudioCapture.ChunkCaptureArea; +import art.arcane.iris.studio.jigsaw.JigsawStudioCapture.LocalPosition; +import art.arcane.iris.studio.jigsaw.JigsawStudioSaveLifecycle.BayReadiness; +import art.arcane.iris.studio.jigsaw.JigsawStudioService.ActiveStudio; +import art.arcane.iris.structure.jigsaw.IrisJigsawConnector; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.object.IrisObjectRotation; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.generation.block.TileData; +import art.arcane.iris.studio.generation.JigsawStudioGenerator; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.PlatformBlockState; @@ -36,9 +32,9 @@ import java.util.Objects; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; -import static art.arcane.iris.core.service.JigsawStudioCapture.inversePosition; -import static art.arcane.iris.core.service.JigsawStudioService.chunkKey; -import static art.arcane.iris.core.service.JigsawStudioService.failureMessage; +import static art.arcane.iris.studio.jigsaw.JigsawStudioCapture.inversePosition; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.chunkKey; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.failureMessage; final class JigsawStudioChunkWriter { private JigsawStudioChunkWriter() { diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioCompatibilityTarget.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioCompatibilityTarget.java similarity index 66% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioCompatibilityTarget.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioCompatibilityTarget.java index e2262ebca..573a98b6d 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioCompatibilityTarget.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioCompatibilityTarget.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; public enum JigsawStudioCompatibilityTarget { IRIS_EXTENDED, diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioControlPosition.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioControlPosition.java similarity index 64% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioControlPosition.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioControlPosition.java index 25b709f54..9fd855c2b 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioControlPosition.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioControlPosition.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; public record JigsawStudioControlPosition(int worldX, int worldY, int worldZ) { } diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioDetailsMenu.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioDetailsMenu.java similarity index 92% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioDetailsMenu.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioDetailsMenu.java index bd3295e6b..d1ba75b3b 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioDetailsMenu.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioDetailsMenu.java @@ -1,7 +1,5 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioToolAction; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioToolPayload; import art.arcane.volmlib.util.inventorygui.UIElement; import art.arcane.volmlib.util.inventorygui.UIWindow; import org.bukkit.ChatColor; @@ -10,21 +8,21 @@ import org.bukkit.Material; import java.util.List; import java.util.Objects; -import static art.arcane.iris.core.service.JigsawStudioMenuController.CHANCE_STEP_PERCENTAGE_POINTS; -import static art.arcane.iris.core.service.JigsawStudioMenuController.GRID_POSITIONS; -import static art.arcane.iris.core.service.JigsawStudioMenuController.MEMBERSHIPS_PER_PAGE; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.chance; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.clampPage; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.dimensions; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.displayKey; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.element; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.evaluationElement; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.maximumPlacements; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.page; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.pageCount; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.safe; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.themes; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.yesNo; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuController.CHANCE_STEP_PERCENTAGE_POINTS; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuController.GRID_POSITIONS; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuController.MEMBERSHIPS_PER_PAGE; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.chance; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.clampPage; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.dimensions; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.displayKey; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.element; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.evaluationElement; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.maximumPlacements; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.page; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.pageCount; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.safe; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.themes; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.yesNo; final class JigsawStudioDetailsMenu { private final JigsawStudioMenuController controller; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioDirtyTracker.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioDirtyTracker.java similarity index 88% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioDirtyTracker.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioDirtyTracker.java index 927bf25c3..d2a3a47fd 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioDirtyTracker.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioDirtyTracker.java @@ -1,9 +1,6 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBay; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioSession; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioVariant; -import art.arcane.iris.core.service.JigsawStudioService.ActiveStudio; +import art.arcane.iris.studio.jigsaw.JigsawStudioService.ActiveStudio; import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.inventory.Inventory; @@ -11,8 +8,8 @@ import org.bukkit.inventory.Inventory; import java.util.List; import java.util.Objects; -import static art.arcane.iris.core.service.JigsawStudioAutosaveScheduler.AUTOSAVE_DEBOUNCE_TICKS; -import static art.arcane.iris.core.service.JigsawStudioProtection.inventoryBlocks; +import static art.arcane.iris.studio.jigsaw.JigsawStudioAutosaveScheduler.AUTOSAVE_DEBOUNCE_TICKS; +import static art.arcane.iris.studio.jigsaw.JigsawStudioProtection.inventoryBlocks; final class JigsawStudioDirtyTracker { private final JigsawStudioService service; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioEvaluationState.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioEvaluationState.java similarity index 72% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioEvaluationState.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioEvaluationState.java index 66bebb410..d6b1d7287 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioEvaluationState.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioEvaluationState.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; public enum JigsawStudioEvaluationState { PENDING, diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioEvaluator.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioEvaluator.java similarity index 92% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioEvaluator.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioEvaluator.java index 041be6ee9..85f142158 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioEvaluator.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioEvaluator.java @@ -1,20 +1,17 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioActivation; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioLayout; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioMode; -import art.arcane.iris.core.service.JigsawStudioService.ActiveStudio; -import art.arcane.iris.engine.framework.PlacedStructurePiece; -import art.arcane.iris.engine.framework.StructureAssembler; -import art.arcane.iris.engine.framework.structure.StructureAssemblyResult; -import art.arcane.iris.engine.framework.structure.StructureGraphCompilation; -import art.arcane.iris.engine.framework.structure.StructureGraphCompiler; -import art.arcane.iris.engine.framework.structure.StructureGraphDiagnostic; -import art.arcane.iris.engine.framework.structure.StructureGraphResolver; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.IrisStructure; +import art.arcane.iris.studio.jigsaw.JigsawStudioService.ActiveStudio; +import art.arcane.iris.structure.placement.PlacedStructurePiece; +import art.arcane.iris.structure.placement.StructureAssembler; +import art.arcane.iris.structure.graph.StructureAssemblyResult; +import art.arcane.iris.structure.graph.StructureGraphCompilation; +import art.arcane.iris.structure.graph.StructureGraphCompiler; +import art.arcane.iris.structure.graph.StructureGraphDiagnostic; +import art.arcane.iris.structure.graph.StructureGraphResolver; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.structure.placement.IrisStructure; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.math.RNG; import java.io.IOException; @@ -27,7 +24,7 @@ import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicLong; -import static art.arcane.iris.core.service.JigsawStudioService.failureMessage; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.failureMessage; final class JigsawStudioEvaluator { private static final long PREVIEW_SEED = 1337L; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioGraphDocuments.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioGraphDocuments.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioGraphDocuments.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioGraphDocuments.java index 9ebee0776..47edb804b 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioGraphDocuments.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioGraphDocuments.java @@ -1,9 +1,9 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.engine.framework.structure.PlanarJigsawWorkcellResolver; -import art.arcane.iris.engine.object.IrisJigsawMode; -import art.arcane.iris.engine.object.IrisJigsawWorkcellArchetype; -import art.arcane.iris.engine.object.IrisStructure; +import art.arcane.iris.structure.graph.PlanarJigsawWorkcellResolver; +import art.arcane.iris.structure.jigsaw.IrisJigsawMode; +import art.arcane.iris.structure.jigsaw.IrisJigsawWorkcellArchetype; +import art.arcane.iris.structure.placement.IrisStructure; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonArray; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioGraphEditor.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioGraphEditor.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioGraphEditor.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioGraphEditor.java index 57683436e..1bbb60039 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioGraphEditor.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioGraphEditor.java @@ -1,25 +1,25 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.structure.authoring.StructureKey; -import art.arcane.iris.core.structure.authoring.StructureHash; -import art.arcane.iris.core.structure.authoring.StructureOwnershipManifest; -import art.arcane.iris.core.structure.authoring.StructureResourceBundle; -import art.arcane.iris.core.structure.authoring.StructureTransactionWriter; -import art.arcane.iris.core.structure.authoring.StructureWriteOptions; -import art.arcane.iris.core.structure.authoring.StructureWriteResult; -import art.arcane.iris.engine.framework.structure.PlanarJigsawWorkcellResolver; -import art.arcane.iris.engine.framework.structure.StructureResourceBundleGraphCompiler; -import art.arcane.iris.engine.object.IrisDirection; -import art.arcane.iris.engine.object.IrisJigsawConnector; -import art.arcane.iris.engine.object.IrisJigsawMode; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisJigsawPool; -import art.arcane.iris.engine.object.IrisJigsawWorkcellArchetype; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.IrisStructure; -import art.arcane.iris.engine.object.JigsawJoint; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.structure.authoring.StructureKey; +import art.arcane.iris.structure.authoring.StructureHash; +import art.arcane.iris.structure.authoring.StructureOwnershipManifest; +import art.arcane.iris.structure.authoring.StructureResourceBundle; +import art.arcane.iris.structure.authoring.StructureTransactionWriter; +import art.arcane.iris.structure.authoring.StructureWriteOptions; +import art.arcane.iris.structure.authoring.StructureWriteResult; +import art.arcane.iris.structure.graph.PlanarJigsawWorkcellResolver; +import art.arcane.iris.structure.graph.StructureResourceBundleGraphCompiler; +import art.arcane.iris.pack.value.IrisDirection; +import art.arcane.iris.structure.jigsaw.IrisJigsawConnector; +import art.arcane.iris.structure.jigsaw.IrisJigsawMode; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.jigsaw.IrisJigsawPool; +import art.arcane.iris.structure.jigsaw.IrisJigsawWorkcellArchetype; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.structure.placement.IrisStructure; +import art.arcane.iris.structure.jigsaw.JigsawJoint; +import art.arcane.iris.generation.geometry.IrisBlockVector; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonArray; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioGraphEvaluation.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioGraphEvaluation.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioGraphEvaluation.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioGraphEvaluation.java index 6405c0555..ab5f6692f 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioGraphEvaluation.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioGraphEvaluation.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; import java.util.Objects; import java.util.UUID; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioGraphInspector.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioGraphInspector.java similarity index 93% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioGraphInspector.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioGraphInspector.java index 3be84bdc6..2daf84125 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioGraphInspector.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioGraphInspector.java @@ -1,11 +1,11 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.structure.authoring.StructureResourceBundle; -import art.arcane.iris.engine.framework.structure.PlanarJigsawWorkcellResolver; -import art.arcane.iris.engine.object.IrisJigsawMode; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisJigsawWorkcellArchetype; -import art.arcane.iris.engine.object.IrisStructure; +import art.arcane.iris.structure.authoring.StructureResourceBundle; +import art.arcane.iris.structure.graph.PlanarJigsawWorkcellResolver; +import art.arcane.iris.structure.jigsaw.IrisJigsawMode; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.jigsaw.IrisJigsawWorkcellArchetype; +import art.arcane.iris.structure.placement.IrisStructure; import java.io.IOException; import java.nio.file.Files; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioGraphMapper.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioGraphMapper.java similarity index 94% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioGraphMapper.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioGraphMapper.java index e18007ec4..0922cde6d 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioGraphMapper.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioGraphMapper.java @@ -1,20 +1,20 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.structure.authoring.StructureKey; -import art.arcane.iris.core.structure.authoring.StructureOwnershipManifest; -import art.arcane.iris.core.structure.authoring.StructureTransactionWriter; -import art.arcane.iris.engine.framework.structure.PlanarJigsawWorkcellResolver; -import art.arcane.iris.engine.object.IrisDirection; -import art.arcane.iris.engine.object.IrisJigsawConnector; -import art.arcane.iris.engine.object.IrisJigsawMode; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisJigsawPieceEntry; -import art.arcane.iris.engine.object.IrisJigsawPool; -import art.arcane.iris.engine.object.IrisJigsawWorkcellArchetype; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.IrisStructure; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.structure.authoring.StructureKey; +import art.arcane.iris.structure.authoring.StructureOwnershipManifest; +import art.arcane.iris.structure.authoring.StructureTransactionWriter; +import art.arcane.iris.structure.graph.PlanarJigsawWorkcellResolver; +import art.arcane.iris.pack.value.IrisDirection; +import art.arcane.iris.structure.jigsaw.IrisJigsawConnector; +import art.arcane.iris.structure.jigsaw.IrisJigsawMode; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.jigsaw.IrisJigsawPieceEntry; +import art.arcane.iris.structure.jigsaw.IrisJigsawPool; +import art.arcane.iris.structure.jigsaw.IrisJigsawWorkcellArchetype; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.structure.placement.IrisStructure; import java.io.File; import java.nio.file.Files; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioGraphMutations.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioGraphMutations.java similarity index 91% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioGraphMutations.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioGraphMutations.java index 735bed61f..a785c937b 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioGraphMutations.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioGraphMutations.java @@ -1,22 +1,16 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.core.runtime.InPlaceChunkRegenerator; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioActivation; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBay; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBounds; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioGraphMapper; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioLayout; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioSession; -import art.arcane.iris.core.service.JigsawStudioService.ActiveStudio; -import art.arcane.iris.core.service.JigsawStudioService.CommandGraphMutation; -import art.arcane.iris.core.service.JigsawStudioService.CommandGraphMutationResult; -import art.arcane.iris.engine.data.chunk.TerrainChunk; -import art.arcane.iris.engine.object.IrisStructure; -import art.arcane.iris.engine.platform.studio.generators.JigsawStudioGenerator; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.world.runtime.InPlaceChunkRegenerator; +import art.arcane.iris.studio.jigsaw.JigsawStudioService.ActiveStudio; +import art.arcane.iris.studio.jigsaw.JigsawStudioService.CommandGraphMutation; +import art.arcane.iris.studio.jigsaw.JigsawStudioService.CommandGraphMutationResult; +import art.arcane.iris.generation.chunk.TerrainChunk; +import art.arcane.iris.structure.placement.IrisStructure; +import art.arcane.iris.studio.generation.JigsawStudioGenerator; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import org.bukkit.Chunk; import org.bukkit.World; import org.bukkit.entity.Player; @@ -29,11 +23,11 @@ import java.util.UUID; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; -import static art.arcane.iris.core.service.JigsawStudioChunkWriter.applyRenderedBayChunk; -import static art.arcane.iris.core.service.JigsawStudioChunkWriter.verifyRenderedBayChunk; -import static art.arcane.iris.core.service.JigsawStudioProtection.authorizeOwner; -import static art.arcane.iris.core.service.JigsawStudioService.failureMessage; -import static art.arcane.iris.core.service.JigsawStudioService.message; +import static art.arcane.iris.studio.jigsaw.JigsawStudioChunkWriter.applyRenderedBayChunk; +import static art.arcane.iris.studio.jigsaw.JigsawStudioChunkWriter.verifyRenderedBayChunk; +import static art.arcane.iris.studio.jigsaw.JigsawStudioProtection.authorizeOwner; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.failureMessage; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.message; final class JigsawStudioGraphMutations { private final JigsawStudioService service; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioHistoryStore.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioHistoryStore.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioHistoryStore.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioHistoryStore.java index d59243cdf..1eafcd297 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioHistoryStore.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioHistoryStore.java @@ -1,18 +1,18 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.structure.authoring.StructureBackend; -import art.arcane.iris.core.structure.authoring.StructureCapability; -import art.arcane.iris.core.structure.authoring.StructureHash; -import art.arcane.iris.core.structure.authoring.StructureKey; -import art.arcane.iris.core.structure.authoring.StructureLoss; -import art.arcane.iris.core.structure.authoring.StructureOwnershipManifest; -import art.arcane.iris.core.structure.authoring.StructureResourceBundle; -import art.arcane.iris.core.structure.authoring.StructureSource; -import art.arcane.iris.core.structure.authoring.StructureTransactionWriter; -import art.arcane.iris.core.structure.authoring.StructureWriteOptions; -import art.arcane.iris.core.structure.authoring.StructureWriteResult; -import art.arcane.iris.engine.framework.structure.StructureResourceBundleGraphCompiler; -import art.arcane.iris.util.common.io.Durability; +import art.arcane.iris.structure.authoring.StructureBackend; +import art.arcane.iris.structure.authoring.StructureCapability; +import art.arcane.iris.structure.authoring.StructureHash; +import art.arcane.iris.structure.authoring.StructureKey; +import art.arcane.iris.structure.authoring.StructureLoss; +import art.arcane.iris.structure.authoring.StructureOwnershipManifest; +import art.arcane.iris.structure.authoring.StructureResourceBundle; +import art.arcane.iris.structure.authoring.StructureSource; +import art.arcane.iris.structure.authoring.StructureTransactionWriter; +import art.arcane.iris.structure.authoring.StructureWriteOptions; +import art.arcane.iris.structure.authoring.StructureWriteResult; +import art.arcane.iris.structure.graph.StructureResourceBundleGraphCompiler; +import art.arcane.iris.world.storage.Durability; import com.google.gson.Gson; import com.google.gson.GsonBuilder; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioLayout.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioLayout.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioLayout.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioLayout.java index 407e5fdcd..7ac6ed12c 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioLayout.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioLayout.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; import java.util.ArrayList; import java.util.Collections; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioMainMenu.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioMainMenu.java similarity index 91% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioMainMenu.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioMainMenu.java index 7c9f739fc..9383036bd 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioMainMenu.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioMainMenu.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.inventorygui.UIElement; import art.arcane.volmlib.util.inventorygui.UIWindow; import org.bukkit.ChatColor; @@ -9,22 +9,22 @@ import org.bukkit.Material; import java.util.List; import java.util.Objects; -import static art.arcane.iris.core.service.JigsawStudioMenuController.GRID_POSITIONS; -import static art.arcane.iris.core.service.JigsawStudioMenuController.VARIANTS_PER_PAGE; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.clampPage; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.compatibilityName; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.dimensions; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.element; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.evaluationElement; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.nextThemeSetKey; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.page; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.pageCount; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.safe; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.themes; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.variantMaterial; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.workcellMaterial; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.workcellStatus; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.yesNo; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuController.GRID_POSITIONS; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuController.VARIANTS_PER_PAGE; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.clampPage; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.compatibilityName; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.dimensions; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.element; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.evaluationElement; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.nextThemeSetKey; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.page; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.pageCount; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.safe; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.themes; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.variantMaterial; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.workcellMaterial; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.workcellStatus; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.yesNo; final class JigsawStudioMainMenu { private final JigsawStudioMenuController controller; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioMarkerKeyCodec.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioMarkerKeyCodec.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioMarkerKeyCodec.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioMarkerKeyCodec.java index 43fa4c18b..0cd83b3eb 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioMarkerKeyCodec.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioMarkerKeyCodec.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; import java.util.Locale; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioMarkerParser.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioMarkerParser.java similarity index 93% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioMarkerParser.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioMarkerParser.java index fd2c64b20..491ebfd66 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioMarkerParser.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioMarkerParser.java @@ -1,10 +1,9 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioMarkerKeyCodec; -import art.arcane.iris.engine.object.IrisDirection; -import art.arcane.iris.engine.object.IrisJigsawConnector; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.JigsawJoint; +import art.arcane.iris.pack.value.IrisDirection; +import art.arcane.iris.structure.jigsaw.IrisJigsawConnector; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.structure.jigsaw.JigsawJoint; import org.bukkit.block.Orientation; import java.util.Locale; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioMaterializer.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioMaterializer.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioMaterializer.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioMaterializer.java index 9be122b41..78660012f 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioMaterializer.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioMaterializer.java @@ -1,14 +1,11 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBay; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBounds; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioSession; -import art.arcane.iris.core.service.JigsawStudioCapture.ChunkCaptureArea; -import art.arcane.iris.core.service.JigsawStudioCapture.LocalPosition; -import art.arcane.iris.core.service.JigsawStudioService.ActiveStudio; -import art.arcane.iris.engine.platform.studio.generators.JigsawStudioGenerator; +import art.arcane.iris.studio.jigsaw.JigsawStudioCapture.ChunkCaptureArea; +import art.arcane.iris.studio.jigsaw.JigsawStudioCapture.LocalPosition; +import art.arcane.iris.studio.jigsaw.JigsawStudioService.ActiveStudio; +import art.arcane.iris.studio.generation.JigsawStudioGenerator; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import org.bukkit.World; import org.bukkit.entity.Player; @@ -25,14 +22,14 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; -import static art.arcane.iris.core.service.JigsawStudioCapture.chunkIntersections; -import static art.arcane.iris.core.service.JigsawStudioChunkWriter.hydrateChunk; -import static art.arcane.iris.core.service.JigsawStudioChunkWriter.restoreConnectorChunk; -import static art.arcane.iris.core.service.JigsawStudioChunkWriter.validateMaterialization; -import static art.arcane.iris.core.service.JigsawStudioChunkWriter.writeMaterializedChunk; -import static art.arcane.iris.core.service.JigsawStudioService.chunkKey; -import static art.arcane.iris.core.service.JigsawStudioService.failureMessage; -import static art.arcane.iris.core.service.JigsawStudioService.message; +import static art.arcane.iris.studio.jigsaw.JigsawStudioCapture.chunkIntersections; +import static art.arcane.iris.studio.jigsaw.JigsawStudioChunkWriter.hydrateChunk; +import static art.arcane.iris.studio.jigsaw.JigsawStudioChunkWriter.restoreConnectorChunk; +import static art.arcane.iris.studio.jigsaw.JigsawStudioChunkWriter.validateMaterialization; +import static art.arcane.iris.studio.jigsaw.JigsawStudioChunkWriter.writeMaterializedChunk; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.chunkKey; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.failureMessage; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.message; final class JigsawStudioMaterializer { private static final int HYDRATION_RETRY_TICKS = 2; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioMenuActions.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioMenuActions.java similarity index 92% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioMenuActions.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioMenuActions.java index 7a3f675cc..ed385eb7c 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioMenuActions.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioMenuActions.java @@ -1,8 +1,5 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCellDimensions; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioPieceRules; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioToolPayload; import org.bukkit.entity.Player; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioMenuController.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioMenuController.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioMenuController.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioMenuController.java index 99b833a17..49d69790c 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioMenuController.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioMenuController.java @@ -1,11 +1,8 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.service.JigsawStudioMenuFormat.DimensionAxis; -import art.arcane.iris.core.service.JigsawStudioMenuFormat.RuleField; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCellDimensions; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioPieceRules; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioToolPayload; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.DimensionAxis; +import art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.RuleField; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.inventorygui.UIPaneDecorator; import art.arcane.volmlib.util.inventorygui.UIWindow; import art.arcane.volmlib.util.inventorygui.WindowResolution; @@ -23,14 +20,14 @@ import java.util.Optional; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.activeVariant; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.adjustedDimensions; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.adjustedPositiveValue; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.adjustedRules; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.hasMembership; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.nextThemeSetKey; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.title; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.variant; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.activeVariant; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.adjustedDimensions; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.adjustedPositiveValue; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.adjustedRules; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.hasMembership; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.nextThemeSetKey; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.title; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.variant; public final class JigsawStudioMenuController { static final int VARIANTS_PER_PAGE = 28; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioMenuFormat.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioMenuFormat.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioMenuFormat.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioMenuFormat.java index e44130646..8702c2734 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioMenuFormat.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioMenuFormat.java @@ -1,8 +1,7 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; + +import art.arcane.iris.platform.bukkit.BoardSVC; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCellDimensions; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCompatibilityTarget; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioPieceRules; import art.arcane.volmlib.util.data.MaterialBlock; import art.arcane.volmlib.util.inventorygui.UIElement; import org.bukkit.ChatColor; @@ -13,8 +12,8 @@ import java.util.Locale; import java.util.Objects; import java.util.Optional; -import static art.arcane.iris.core.service.JigsawStudioMenuController.PLACEMENT_RULE_SHIFT_STEP; -import static art.arcane.iris.core.service.JigsawStudioMenuController.RULE_SHIFT_STEP; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuController.PLACEMENT_RULE_SHIFT_STEP; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuController.RULE_SHIFT_STEP; final class JigsawStudioMenuFormat { private JigsawStudioMenuFormat() { diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioMenuState.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioMenuState.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioMenuState.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioMenuState.java index 93f59cd4e..d52ebf934 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioMenuState.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioMenuState.java @@ -1,9 +1,5 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCellDimensions; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCompatibilityTarget; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioMode; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioPieceRules; import java.util.ArrayList; import java.util.HashSet; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioMode.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioMode.java similarity index 61% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioMode.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioMode.java index e114f3ee6..dd5560980 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioMode.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioMode.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; public enum JigsawStudioMode { PLANAR_JIGSAW, diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioObjectResizer.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioObjectResizer.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioObjectResizer.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioObjectResizer.java index 20875644d..30707f774 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioObjectResizer.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioObjectResizer.java @@ -1,14 +1,14 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.engine.object.IrisDirection; -import art.arcane.iris.engine.object.IrisJigsawConnector; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisJigsawWorkcellArchetype; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.TileData; +import art.arcane.iris.pack.value.IrisDirection; +import art.arcane.iris.structure.jigsaw.IrisJigsawConnector; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.jigsaw.IrisJigsawWorkcellArchetype; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.generation.block.TileData; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.generation.geometry.IrisBlockVector; import java.io.IOException; import java.util.ArrayList; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioPieceRules.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioPieceRules.java similarity index 92% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioPieceRules.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioPieceRules.java index 2238d8f0b..66a965d46 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioPieceRules.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioPieceRules.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.engine.object.IrisJigsawPieceRules; +import art.arcane.iris.structure.jigsaw.IrisJigsawPieceRules; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioPlayerContext.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioPlayerContext.java similarity index 93% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioPlayerContext.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioPlayerContext.java index a164ecb85..13b973786 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioPlayerContext.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioPlayerContext.java @@ -1,12 +1,11 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBay; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioSession; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioVariant; -import art.arcane.iris.core.service.JigsawStudioSaveLifecycle.BayReadiness; -import art.arcane.iris.core.service.JigsawStudioService.ActiveStudio; +import art.arcane.iris.platform.bukkit.BoardSVC; + +import art.arcane.iris.studio.jigsaw.JigsawStudioSaveLifecycle.BayReadiness; +import art.arcane.iris.studio.jigsaw.JigsawStudioService.ActiveStudio; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.entity.Player; @@ -16,7 +15,7 @@ import java.util.Objects; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; -import static art.arcane.iris.core.service.JigsawStudioProtection.ownerMatches; +import static art.arcane.iris.studio.jigsaw.JigsawStudioProtection.ownerMatches; final class JigsawStudioPlayerContext { private final JigsawStudioService service; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioPoolEditor.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioPoolEditor.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioPoolEditor.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioPoolEditor.java index 85937116e..46735c3f5 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioPoolEditor.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioPoolEditor.java @@ -1,13 +1,13 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.structure.authoring.StructureKey; -import art.arcane.iris.core.structure.authoring.StructureHash; -import art.arcane.iris.core.structure.authoring.StructureOwnershipManifest; -import art.arcane.iris.core.structure.authoring.StructureResourceBundle; -import art.arcane.iris.core.structure.authoring.StructureTransactionWriter; -import art.arcane.iris.core.structure.authoring.StructureWriteOptions; -import art.arcane.iris.core.structure.authoring.StructureWriteResult; -import art.arcane.iris.engine.framework.structure.StructureResourceBundleGraphCompiler; +import art.arcane.iris.structure.authoring.StructureKey; +import art.arcane.iris.structure.authoring.StructureHash; +import art.arcane.iris.structure.authoring.StructureOwnershipManifest; +import art.arcane.iris.structure.authoring.StructureResourceBundle; +import art.arcane.iris.structure.authoring.StructureTransactionWriter; +import art.arcane.iris.structure.authoring.StructureWriteOptions; +import art.arcane.iris.structure.authoring.StructureWriteResult; +import art.arcane.iris.structure.graph.StructureResourceBundleGraphCompiler; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonArray; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioPoolMembership.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioPoolMembership.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioPoolMembership.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioPoolMembership.java index 8cbeed936..dd53fa31b 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioPoolMembership.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioPoolMembership.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioPreviewRenderer.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioPreviewRenderer.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioPreviewRenderer.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioPreviewRenderer.java index b512d123f..2944bf81c 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioPreviewRenderer.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioPreviewRenderer.java @@ -1,14 +1,14 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.engine.framework.PlacedStructurePiece; -import art.arcane.iris.engine.object.IrisJigsawConnector; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisObjectRotation; +import art.arcane.iris.structure.placement.PlacedStructurePiece; +import art.arcane.iris.structure.jigsaw.IrisJigsawConnector; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectRotation; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; -import art.arcane.iris.util.common.math.IrisBlockVector; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.generation.block.B; +import art.arcane.iris.generation.geometry.IrisBlockVector; +import art.arcane.iris.world.task.J; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.World; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioProjectCreator.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioProjectCreator.java similarity index 89% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioProjectCreator.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioProjectCreator.java index ba9ae56fe..3cf423c08 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioProjectCreator.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioProjectCreator.java @@ -1,29 +1,29 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.structure.authoring.StructureBackend; -import art.arcane.iris.core.structure.authoring.StructureCapability; -import art.arcane.iris.core.structure.authoring.StructureKey; -import art.arcane.iris.core.structure.authoring.StructureResourceBundle; -import art.arcane.iris.core.structure.authoring.StructureSource; -import art.arcane.iris.core.structure.authoring.StructureTransactionWriter; -import art.arcane.iris.core.structure.authoring.StructureWriteMode; -import art.arcane.iris.core.structure.authoring.StructureWriteResult; -import art.arcane.iris.engine.framework.structure.StructureResourceBundleGraphCompiler; -import art.arcane.iris.engine.object.IrisJigsawBranchFailurePolicy; -import art.arcane.iris.engine.object.IrisJigsawCompatibility; -import art.arcane.iris.engine.object.IrisDirection; -import art.arcane.iris.engine.object.IrisJigsawConnector; -import art.arcane.iris.engine.object.IrisJigsawMode; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisJigsawPieceEntry; -import art.arcane.iris.engine.object.IrisJigsawPieceRules; -import art.arcane.iris.engine.object.IrisJigsawPool; -import art.arcane.iris.engine.object.IrisJigsawThemeSet; -import art.arcane.iris.engine.object.IrisJigsawWorkcell; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.IrisStructure; -import art.arcane.iris.engine.object.JigsawJoint; +import art.arcane.iris.structure.authoring.StructureBackend; +import art.arcane.iris.structure.authoring.StructureCapability; +import art.arcane.iris.structure.authoring.StructureKey; +import art.arcane.iris.structure.authoring.StructureResourceBundle; +import art.arcane.iris.structure.authoring.StructureSource; +import art.arcane.iris.structure.authoring.StructureTransactionWriter; +import art.arcane.iris.structure.authoring.StructureWriteMode; +import art.arcane.iris.structure.authoring.StructureWriteResult; +import art.arcane.iris.structure.graph.StructureResourceBundleGraphCompiler; +import art.arcane.iris.structure.jigsaw.IrisJigsawBranchFailurePolicy; +import art.arcane.iris.structure.jigsaw.IrisJigsawCompatibility; +import art.arcane.iris.pack.value.IrisDirection; +import art.arcane.iris.structure.jigsaw.IrisJigsawConnector; +import art.arcane.iris.structure.jigsaw.IrisJigsawMode; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.jigsaw.IrisJigsawPieceEntry; +import art.arcane.iris.structure.jigsaw.IrisJigsawPieceRules; +import art.arcane.iris.structure.jigsaw.IrisJigsawPool; +import art.arcane.iris.structure.jigsaw.IrisJigsawThemeSet; +import art.arcane.iris.structure.jigsaw.IrisJigsawWorkcell; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.structure.placement.IrisStructure; +import art.arcane.iris.structure.jigsaw.JigsawJoint; import com.google.gson.Gson; import com.google.gson.GsonBuilder; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioProjectDeletionService.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioProjectDeletionService.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioProjectDeletionService.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioProjectDeletionService.java index 4c01e088f..56fce1da8 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioProjectDeletionService.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioProjectDeletionService.java @@ -1,11 +1,11 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.structure.authoring.StructureHash; -import art.arcane.iris.core.structure.authoring.StructureKey; -import art.arcane.iris.core.structure.authoring.StructureOwnershipManifest; -import art.arcane.iris.core.structure.authoring.StructureResourceBundle; -import art.arcane.iris.core.structure.authoring.StructureSource; -import art.arcane.iris.core.structure.authoring.StructureTransactionWriter; +import art.arcane.iris.structure.authoring.StructureHash; +import art.arcane.iris.structure.authoring.StructureKey; +import art.arcane.iris.structure.authoring.StructureOwnershipManifest; +import art.arcane.iris.structure.authoring.StructureResourceBundle; +import art.arcane.iris.structure.authoring.StructureSource; +import art.arcane.iris.structure.authoring.StructureTransactionWriter; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioProtection.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioProtection.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioProtection.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioProtection.java index b30bdf2fc..c1217dbb6 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioProtection.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioProtection.java @@ -1,13 +1,6 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioActivation; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBay; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCompatibilityTarget; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioControlPosition; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioLayout; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioSession; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioVariant; -import art.arcane.iris.core.service.JigsawStudioService.ActiveStudio; +import art.arcane.iris.studio.jigsaw.JigsawStudioService.ActiveStudio; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; @@ -25,7 +18,7 @@ import java.util.Objects; import java.util.Set; import java.util.UUID; -import static art.arcane.iris.core.service.JigsawStudioService.message; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.message; final class JigsawStudioProtection { private static final Set MUTATING_COMMANDS = Set.of( diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioProtectionListener.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioProtectionListener.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioProtectionListener.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioProtectionListener.java index 7e9b4990b..099e2d53e 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioProtectionListener.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioProtectionListener.java @@ -1,8 +1,6 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioToolPayload; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioTripleSneakTracker; -import art.arcane.iris.core.service.JigsawStudioService.ActiveStudio; +import art.arcane.iris.studio.jigsaw.JigsawStudioService.ActiveStudio; import art.arcane.iris.spi.IrisLogging; import org.bukkit.Material; import org.bukkit.block.Block; @@ -63,17 +61,17 @@ import java.util.Objects; import java.util.Optional; import java.util.UUID; -import static art.arcane.iris.core.service.JigsawStudioPlayerContext.boardService; -import static art.arcane.iris.core.service.JigsawStudioProtection.authorizeOwner; -import static art.arcane.iris.core.service.JigsawStudioProtection.blocksMutatingCommand; -import static art.arcane.iris.core.service.JigsawStudioProtection.blocksNonEditableWorkcellMutation; -import static art.arcane.iris.core.service.JigsawStudioProtection.hasNonEditableWorkcell; -import static art.arcane.iris.core.service.JigsawStudioProtection.isMutatingCommand; -import static art.arcane.iris.core.service.JigsawStudioProtection.isSafeNonOwnerCommand; -import static art.arcane.iris.core.service.JigsawStudioProtection.ownerMatches; -import static art.arcane.iris.core.service.JigsawStudioService.isNaturalStudioSpawn; -import static art.arcane.iris.core.service.JigsawStudioService.message; -import static art.arcane.iris.core.service.JigsawStudioService.sameBlockPosition; +import static art.arcane.iris.studio.jigsaw.JigsawStudioPlayerContext.boardService; +import static art.arcane.iris.studio.jigsaw.JigsawStudioProtection.authorizeOwner; +import static art.arcane.iris.studio.jigsaw.JigsawStudioProtection.blocksMutatingCommand; +import static art.arcane.iris.studio.jigsaw.JigsawStudioProtection.blocksNonEditableWorkcellMutation; +import static art.arcane.iris.studio.jigsaw.JigsawStudioProtection.hasNonEditableWorkcell; +import static art.arcane.iris.studio.jigsaw.JigsawStudioProtection.isMutatingCommand; +import static art.arcane.iris.studio.jigsaw.JigsawStudioProtection.isSafeNonOwnerCommand; +import static art.arcane.iris.studio.jigsaw.JigsawStudioProtection.ownerMatches; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.isNaturalStudioSpawn; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.message; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.sameBlockPosition; final class JigsawStudioProtectionListener implements Listener { private final JigsawStudioService service; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioRegistry.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioRegistry.java similarity index 94% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioRegistry.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioRegistry.java index 1667b2a46..e99a33677 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioRegistry.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioRegistry.java @@ -1,14 +1,12 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioActivation; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBay; -import art.arcane.iris.core.service.JigsawStudioChunkWriter.BayPopulation; -import art.arcane.iris.core.service.JigsawStudioService.ActiveStudio; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.platform.studio.generators.JigsawStudioGenerator; +import art.arcane.iris.studio.jigsaw.JigsawStudioChunkWriter.BayPopulation; +import art.arcane.iris.studio.jigsaw.JigsawStudioService.ActiveStudio; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.studio.generation.JigsawStudioGenerator; import art.arcane.iris.platform.bukkit.BukkitWorldBinding; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import org.bukkit.World; import java.util.Objects; @@ -17,9 +15,9 @@ import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicLong; -import static art.arcane.iris.core.service.JigsawStudioService.AUTOSAVE_RETRY_TICKS; -import static art.arcane.iris.core.service.JigsawStudioService.INSTANCE; -import static art.arcane.iris.core.service.JigsawStudioService.disableNaturalStudioSpawning; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.AUTOSAVE_RETRY_TICKS; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.INSTANCE; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.disableNaturalStudioSpawning; final class JigsawStudioRegistry { private final JigsawStudioService service; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioResourceBundleAssembler.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioResourceBundleAssembler.java similarity index 92% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioResourceBundleAssembler.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioResourceBundleAssembler.java index 8bf127797..c6e016ae8 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioResourceBundleAssembler.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioResourceBundleAssembler.java @@ -1,15 +1,14 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.pack.StructurePackageClosure; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioAuthoringAccess; -import art.arcane.iris.core.structure.authoring.StructureCapability; -import art.arcane.iris.core.structure.authoring.StructureHash; -import art.arcane.iris.core.structure.authoring.StructureKey; -import art.arcane.iris.core.structure.authoring.StructureOwnershipManifest; -import art.arcane.iris.core.structure.authoring.StructureResourceBundle; -import art.arcane.iris.core.structure.authoring.StructureTransactionWriter; -import art.arcane.iris.engine.object.IrisJigsawConnector; -import art.arcane.iris.engine.object.IrisJigsawPiece; +import art.arcane.iris.pack.StructurePackageClosure; +import art.arcane.iris.structure.authoring.StructureCapability; +import art.arcane.iris.structure.authoring.StructureHash; +import art.arcane.iris.structure.authoring.StructureKey; +import art.arcane.iris.structure.authoring.StructureOwnershipManifest; +import art.arcane.iris.structure.authoring.StructureResourceBundle; +import art.arcane.iris.structure.authoring.StructureTransactionWriter; +import art.arcane.iris.structure.jigsaw.IrisJigsawConnector; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; import art.arcane.volmlib.util.collection.KList; import com.google.gson.Gson; import com.google.gson.GsonBuilder; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioSaveLifecycle.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioSaveLifecycle.java similarity index 94% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioSaveLifecycle.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioSaveLifecycle.java index 1c58ccfd7..3d37ca6d3 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioSaveLifecycle.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioSaveLifecycle.java @@ -1,17 +1,13 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioActivation; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBay; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioSession; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioVariant; -import art.arcane.iris.core.service.JigsawStudioAutosaveScheduler.AutosaveKey; -import art.arcane.iris.core.service.JigsawStudioAutosaveScheduler.AutosavePersistentFailure; -import art.arcane.iris.core.service.JigsawStudioCaptureScheduler.CaptureTarget; -import art.arcane.iris.core.service.JigsawStudioService.ActiveStudio; -import art.arcane.iris.core.service.JigsawStudioService.CloseStart; -import art.arcane.iris.core.service.JigsawStudioService.ExportStart; +import art.arcane.iris.studio.jigsaw.JigsawStudioAutosaveScheduler.AutosaveKey; +import art.arcane.iris.studio.jigsaw.JigsawStudioAutosaveScheduler.AutosavePersistentFailure; +import art.arcane.iris.studio.jigsaw.JigsawStudioCaptureScheduler.CaptureTarget; +import art.arcane.iris.studio.jigsaw.JigsawStudioService.ActiveStudio; +import art.arcane.iris.studio.jigsaw.JigsawStudioService.CloseStart; +import art.arcane.iris.studio.jigsaw.JigsawStudioService.ExportStart; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.entity.Player; @@ -24,12 +20,12 @@ import java.util.UUID; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentHashMap; -import static art.arcane.iris.core.service.JigsawStudioCaptureScheduler.resolveCaptureTarget; -import static art.arcane.iris.core.service.JigsawStudioProtection.authorizeOwner; -import static art.arcane.iris.core.service.JigsawStudioService.AUTOSAVE_RETRY_TICKS; -import static art.arcane.iris.core.service.JigsawStudioService.failureMessage; -import static art.arcane.iris.core.service.JigsawStudioService.findBay; -import static art.arcane.iris.core.service.JigsawStudioService.message; +import static art.arcane.iris.studio.jigsaw.JigsawStudioCaptureScheduler.resolveCaptureTarget; +import static art.arcane.iris.studio.jigsaw.JigsawStudioProtection.authorizeOwner; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.AUTOSAVE_RETRY_TICKS; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.failureMessage; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.findBay; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.message; final class JigsawStudioSaveLifecycle { private static final int REPLACEMENT_CLOSE_WAIT_TICKS = 2_400; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioService.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioService.java similarity index 94% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioService.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioService.java index f00936854..220a0a82f 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioService.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioService.java @@ -1,31 +1,20 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.runtime.jigsaw.JigsawPlanarArchetype; -import art.arcane.iris.core.runtime.jigsaw.JigsawPlanarTopology; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioActivation; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBay; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBounds; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCellDimensions; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioLayout; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioPieceRules; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioToolPayload; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioTripleSneakTracker; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioVariant; -import art.arcane.iris.core.service.JigsawStudioChunkWriter.BayPopulation; -import art.arcane.iris.core.service.JigsawStudioMaterializer.VariantReloadRequest; -import art.arcane.iris.core.structure.authoring.StructureWriteResult; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.PlacedStructurePiece; -import art.arcane.iris.engine.framework.StructureAssembler; -import art.arcane.iris.engine.framework.structure.StructureAssemblyResult; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.IrisStructure; -import art.arcane.iris.engine.platform.studio.generators.JigsawStudioGenerator; +import art.arcane.iris.studio.jigsaw.JigsawStudioChunkWriter.BayPopulation; +import art.arcane.iris.studio.jigsaw.JigsawStudioMaterializer.VariantReloadRequest; +import art.arcane.iris.structure.authoring.StructureWriteResult; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.placement.PlacedStructurePiece; +import art.arcane.iris.structure.placement.StructureAssembler; +import art.arcane.iris.structure.graph.StructureAssemblyResult; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.structure.placement.IrisStructure; +import art.arcane.iris.studio.generation.JigsawStudioGenerator; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.util.common.plugin.IrisService; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.platform.bukkit.plugin.IrisService; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.plugin.ComponentMessenger; import org.bukkit.GameRules; @@ -49,10 +38,10 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; -import static art.arcane.iris.core.service.JigsawStudioCaptureScheduler.requiredChunks; -import static art.arcane.iris.core.service.JigsawStudioGraphMutations.loadMappedLayout; -import static art.arcane.iris.core.service.JigsawStudioProtection.authorizeOwner; -import static art.arcane.iris.core.service.JigsawStudioProtection.ownerMatches; +import static art.arcane.iris.studio.jigsaw.JigsawStudioCaptureScheduler.requiredChunks; +import static art.arcane.iris.studio.jigsaw.JigsawStudioGraphMutations.loadMappedLayout; +import static art.arcane.iris.studio.jigsaw.JigsawStudioProtection.authorizeOwner; +import static art.arcane.iris.studio.jigsaw.JigsawStudioProtection.ownerMatches; public final class JigsawStudioService implements IrisService, JigsawStudioMenuActions { static final int AUTOSAVE_RETRY_TICKS = 5; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioSession.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioSession.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioSession.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioSession.java index f847f83bf..27a7daa0f 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioSession.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioSession.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; import java.util.ArrayList; import java.util.LinkedHashMap; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioStructureEditor.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioStructureEditor.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioStructureEditor.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioStructureEditor.java index c98270d5b..89dd1c5a2 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioStructureEditor.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioStructureEditor.java @@ -1,20 +1,20 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.structure.authoring.StructureKey; -import art.arcane.iris.core.structure.authoring.StructureHash; -import art.arcane.iris.core.structure.authoring.StructureOwnershipManifest; -import art.arcane.iris.core.structure.authoring.StructureResourceBundle; -import art.arcane.iris.core.structure.authoring.StructureTransactionWriter; -import art.arcane.iris.core.structure.authoring.StructureWriteOptions; -import art.arcane.iris.core.structure.authoring.StructureWriteResult; -import art.arcane.iris.engine.framework.structure.PlanarJigsawWorkcellResolver; -import art.arcane.iris.engine.framework.structure.StructureResourceBundleGraphCompiler; -import art.arcane.iris.engine.object.IrisJigsawMode; -import art.arcane.iris.engine.object.IrisJigsawThemeSet; -import art.arcane.iris.engine.object.IrisJigsawWorkcellArchetype; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisStructure; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.structure.authoring.StructureKey; +import art.arcane.iris.structure.authoring.StructureHash; +import art.arcane.iris.structure.authoring.StructureOwnershipManifest; +import art.arcane.iris.structure.authoring.StructureResourceBundle; +import art.arcane.iris.structure.authoring.StructureTransactionWriter; +import art.arcane.iris.structure.authoring.StructureWriteOptions; +import art.arcane.iris.structure.authoring.StructureWriteResult; +import art.arcane.iris.structure.graph.PlanarJigsawWorkcellResolver; +import art.arcane.iris.structure.graph.StructureResourceBundleGraphCompiler; +import art.arcane.iris.structure.jigsaw.IrisJigsawMode; +import art.arcane.iris.structure.jigsaw.IrisJigsawThemeSet; +import art.arcane.iris.structure.jigsaw.IrisJigsawWorkcellArchetype; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.placement.IrisStructure; +import art.arcane.iris.generation.geometry.IrisBlockVector; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonArray; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioStructureMenu.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioStructureMenu.java similarity index 91% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioStructureMenu.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioStructureMenu.java index f0a5db8d8..6e9e505ed 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioStructureMenu.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioStructureMenu.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; import art.arcane.volmlib.util.inventorygui.UIElement; import art.arcane.volmlib.util.inventorygui.UIWindow; @@ -8,17 +8,17 @@ import org.bukkit.Material; import java.util.List; import java.util.Objects; -import static art.arcane.iris.core.service.JigsawStudioMenuController.GRID_POSITIONS; -import static art.arcane.iris.core.service.JigsawStudioMenuController.THEME_SETS_PER_PAGE; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.clampPage; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.compatibilityName; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.element; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.evaluationElement; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.nextThemeSetKey; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.page; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.pageCount; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.safe; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.themeSelectionPercent; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuController.GRID_POSITIONS; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuController.THEME_SETS_PER_PAGE; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.clampPage; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.compatibilityName; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.element; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.evaluationElement; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.nextThemeSetKey; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.page; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.pageCount; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.safe; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.themeSelectionPercent; final class JigsawStudioStructureMenu { private final JigsawStudioMenuController controller; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioTileWatcher.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioTileWatcher.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioTileWatcher.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioTileWatcher.java index 7abc4c9a0..c2d23e74c 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioTileWatcher.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioTileWatcher.java @@ -1,13 +1,9 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioActivation; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBay; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioSession; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioVariant; -import art.arcane.iris.core.service.JigsawStudioService.ActiveStudio; +import art.arcane.iris.studio.jigsaw.JigsawStudioService.ActiveStudio; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.collection.KMap; import org.bukkit.Material; import org.bukkit.World; @@ -21,7 +17,7 @@ import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicBoolean; -import static art.arcane.iris.core.service.JigsawStudioService.AUTOSAVE_RETRY_TICKS; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.AUTOSAVE_RETRY_TICKS; final class JigsawStudioTileWatcher { private static final int JIGSAW_TILE_WATCH_INTERVAL_TICKS = 5; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioToolAction.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioToolAction.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioToolAction.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioToolAction.java index a94d84ffc..63fba4d0c 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioToolAction.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioToolAction.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioToolCodec.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioToolCodec.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioToolCodec.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioToolCodec.java index 48a208d84..5203a587a 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioToolCodec.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioToolCodec.java @@ -1,7 +1,5 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioToolAction; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioToolPayload; import org.bukkit.ChatColor; import org.bukkit.Material; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioToolPayload.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioToolPayload.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioToolPayload.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioToolPayload.java index 9c5272d2a..01d8dbe3b 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioToolPayload.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioToolPayload.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; import java.util.Objects; import java.util.UUID; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioToolbelt.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioToolbelt.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioToolbelt.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioToolbelt.java index 9a81fc273..51242f6f6 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioToolbelt.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioToolbelt.java @@ -1,17 +1,10 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioActivation; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBay; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioLayout; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioPoolMembership; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioSession; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioToolPayload; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioVariant; -import art.arcane.iris.core.service.JigsawStudioService.ActiveStudio; -import art.arcane.iris.engine.object.IrisJigsawThemeSet; -import art.arcane.iris.engine.object.IrisStructure; +import art.arcane.iris.studio.jigsaw.JigsawStudioService.ActiveStudio; +import art.arcane.iris.structure.jigsaw.IrisJigsawThemeSet; +import art.arcane.iris.structure.placement.IrisStructure; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.entity.Player; @@ -26,13 +19,13 @@ import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicBoolean; -import static art.arcane.iris.core.service.JigsawStudioEvaluator.loadStudioStructure; -import static art.arcane.iris.core.service.JigsawStudioProtection.authorizeOwner; -import static art.arcane.iris.core.service.JigsawStudioProtection.canToggleVariantRotation; -import static art.arcane.iris.core.service.JigsawStudioProtection.ownerMatches; -import static art.arcane.iris.core.service.JigsawStudioService.AUTOSAVE_RETRY_TICKS; -import static art.arcane.iris.core.service.JigsawStudioService.message; -import static art.arcane.iris.core.service.JigsawStudioVariantProperties.canResizeVariantToCapacity; +import static art.arcane.iris.studio.jigsaw.JigsawStudioEvaluator.loadStudioStructure; +import static art.arcane.iris.studio.jigsaw.JigsawStudioProtection.authorizeOwner; +import static art.arcane.iris.studio.jigsaw.JigsawStudioProtection.canToggleVariantRotation; +import static art.arcane.iris.studio.jigsaw.JigsawStudioProtection.ownerMatches; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.AUTOSAVE_RETRY_TICKS; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.message; +import static art.arcane.iris.studio.jigsaw.JigsawStudioVariantProperties.canResizeVariantToCapacity; final class JigsawStudioToolbelt { private static final long TOOL_CONFIRM_NANOS = 10_000_000_000L; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioToolboxMenu.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioToolboxMenu.java similarity index 93% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioToolboxMenu.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioToolboxMenu.java index 0f4b3d998..72b5fe0aa 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioToolboxMenu.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioToolboxMenu.java @@ -1,8 +1,5 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioMode; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioToolAction; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioToolPayload; import art.arcane.volmlib.util.inventorygui.UIElement; import art.arcane.volmlib.util.inventorygui.UIWindow; import org.bukkit.ChatColor; @@ -13,17 +10,17 @@ import java.util.List; import java.util.Objects; import java.util.UUID; -import static art.arcane.iris.core.service.JigsawStudioMenuController.CHANCE_STEP_PERCENTAGE_POINTS; -import static art.arcane.iris.core.service.JigsawStudioMenuController.GRID_POSITIONS; -import static art.arcane.iris.core.service.JigsawStudioMenuController.TOOLS_PER_PAGE; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.clampPage; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.displayKey; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.element; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.evaluationElement; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.nextThemeSetKey; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.page; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.pageCount; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.safe; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuController.CHANCE_STEP_PERCENTAGE_POINTS; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuController.GRID_POSITIONS; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuController.TOOLS_PER_PAGE; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.clampPage; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.displayKey; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.element; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.evaluationElement; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.nextThemeSetKey; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.page; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.pageCount; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.safe; final class JigsawStudioToolboxMenu { private final JigsawStudioMenuController controller; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioTripleSneakTracker.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioTripleSneakTracker.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioTripleSneakTracker.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioTripleSneakTracker.java index 8c300a720..5204ad9aa 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioTripleSneakTracker.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioTripleSneakTracker.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; import java.util.HashMap; import java.util.Iterator; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioVariant.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioVariant.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioVariant.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioVariant.java index 2130d21ea..d78a0c5ac 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioVariant.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioVariant.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.engine.object.IrisPosition; +import art.arcane.iris.pack.value.IrisPosition; import java.util.List; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioVariantCatalog.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioVariantCatalog.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioVariantCatalog.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioVariantCatalog.java index f25979904..2aec35546 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioVariantCatalog.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioVariantCatalog.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; import java.util.ArrayList; import java.util.Collections; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioVariantEditor.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioVariantEditor.java similarity index 92% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioVariantEditor.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioVariantEditor.java index 91a783e40..f69ed4650 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioVariantEditor.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioVariantEditor.java @@ -1,26 +1,17 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioActivation; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBay; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCompatibilityTarget; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioGraphEditor; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioLayout; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioMode; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioPoolEditor; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioPoolMembership; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioProjectDeletionService; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioSession; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioVariant; -import art.arcane.iris.core.service.JigsawStudioMaterializer.MaterializationWork; -import art.arcane.iris.core.service.JigsawStudioMaterializer.VariantReloadRequest; -import art.arcane.iris.core.service.JigsawStudioService.ActiveStudio; -import art.arcane.iris.core.service.JigsawStudioService.CloseStart; -import art.arcane.iris.core.service.JigsawStudioService.CommandGraphMutationResult; -import art.arcane.iris.core.service.JigsawStudioToolbelt.DeferredDuplication; -import art.arcane.iris.engine.platform.studio.generators.JigsawStudioGenerator; +import art.arcane.iris.studio.StudioSVC; + +import art.arcane.iris.studio.jigsaw.JigsawStudioMaterializer.MaterializationWork; +import art.arcane.iris.studio.jigsaw.JigsawStudioMaterializer.VariantReloadRequest; +import art.arcane.iris.studio.jigsaw.JigsawStudioService.ActiveStudio; +import art.arcane.iris.studio.jigsaw.JigsawStudioService.CloseStart; +import art.arcane.iris.studio.jigsaw.JigsawStudioService.CommandGraphMutationResult; +import art.arcane.iris.studio.jigsaw.JigsawStudioToolbelt.DeferredDuplication; +import art.arcane.iris.studio.generation.JigsawStudioGenerator; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import org.bukkit.entity.Player; import java.io.IOException; @@ -32,15 +23,15 @@ import java.util.Objects; import java.util.Optional; import java.util.UUID; -import static art.arcane.iris.core.service.JigsawStudioChunkWriter.validateMaterialization; -import static art.arcane.iris.core.service.JigsawStudioGraphMutations.loadMappedLayout; -import static art.arcane.iris.core.service.JigsawStudioProtection.authorizeOwner; -import static art.arcane.iris.core.service.JigsawStudioProtection.canCreateVariants; -import static art.arcane.iris.core.service.JigsawStudioProtection.variantCreationSourceFailure; -import static art.arcane.iris.core.service.JigsawStudioService.clearAutosaveHistory; -import static art.arcane.iris.core.service.JigsawStudioService.failureMessage; -import static art.arcane.iris.core.service.JigsawStudioService.message; -import static art.arcane.iris.core.service.JigsawStudioToolbelt.findMembership; +import static art.arcane.iris.studio.jigsaw.JigsawStudioChunkWriter.validateMaterialization; +import static art.arcane.iris.studio.jigsaw.JigsawStudioGraphMutations.loadMappedLayout; +import static art.arcane.iris.studio.jigsaw.JigsawStudioProtection.authorizeOwner; +import static art.arcane.iris.studio.jigsaw.JigsawStudioProtection.canCreateVariants; +import static art.arcane.iris.studio.jigsaw.JigsawStudioProtection.variantCreationSourceFailure; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.clearAutosaveHistory; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.failureMessage; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.message; +import static art.arcane.iris.studio.jigsaw.JigsawStudioToolbelt.findMembership; final class JigsawStudioVariantEditor { private final JigsawStudioService service; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioVariantMenu.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioVariantMenu.java similarity index 91% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioVariantMenu.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioVariantMenu.java index 7a0581fb2..57ad71631 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioVariantMenu.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioVariantMenu.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.service.JigsawStudioMenuFormat.RuleField; +import art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.RuleField; import art.arcane.volmlib.util.inventorygui.UIElement; import art.arcane.volmlib.util.inventorygui.UIWindow; import org.bukkit.ChatColor; @@ -10,16 +10,16 @@ import java.util.List; import java.util.Locale; import java.util.Objects; -import static art.arcane.iris.core.service.JigsawStudioMenuController.GRID_POSITIONS; -import static art.arcane.iris.core.service.JigsawStudioMenuController.THEME_SETS_PER_PAGE; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.clampPage; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.element; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.evaluationElement; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.page; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.pageCount; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.safe; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.themes; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.withTerminal; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuController.GRID_POSITIONS; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuController.THEME_SETS_PER_PAGE; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.clampPage; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.element; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.evaluationElement; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.page; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.pageCount; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.safe; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.themes; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.withTerminal; final class JigsawStudioVariantMenu { private final JigsawStudioMenuController controller; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioVariantProperties.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioVariantProperties.java similarity index 92% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioVariantProperties.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioVariantProperties.java index fd4a601fe..6b8f38974 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioVariantProperties.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioVariantProperties.java @@ -1,23 +1,12 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioActivation; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBay; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCellDimensions; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCompatibilityTarget; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioGraphEditor; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioMode; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioPieceRules; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioPoolEditor; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioPoolMembership; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioSession; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioVariant; -import art.arcane.iris.core.service.JigsawStudioMaterializer.VariantReloadRequest; -import art.arcane.iris.core.service.JigsawStudioService.ActiveStudio; -import art.arcane.iris.core.service.JigsawStudioService.CommandGraphMutationResult; -import art.arcane.iris.engine.object.IrisJigsawThemeSet; -import art.arcane.iris.engine.object.IrisStructure; -import art.arcane.iris.engine.platform.studio.generators.JigsawStudioGenerator; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.studio.jigsaw.JigsawStudioMaterializer.VariantReloadRequest; +import art.arcane.iris.studio.jigsaw.JigsawStudioService.ActiveStudio; +import art.arcane.iris.studio.jigsaw.JigsawStudioService.CommandGraphMutationResult; +import art.arcane.iris.structure.jigsaw.IrisJigsawThemeSet; +import art.arcane.iris.structure.placement.IrisStructure; +import art.arcane.iris.studio.generation.JigsawStudioGenerator; +import art.arcane.iris.world.task.J; import org.bukkit.entity.Player; import java.util.HashSet; @@ -27,13 +16,13 @@ import java.util.Objects; import java.util.Optional; import java.util.Set; -import static art.arcane.iris.core.service.JigsawStudioEvaluator.loadStudioStructure; -import static art.arcane.iris.core.service.JigsawStudioGraphMutations.loadMappedLayout; -import static art.arcane.iris.core.service.JigsawStudioProtection.authorizeOwner; -import static art.arcane.iris.core.service.JigsawStudioProtection.canToggleVariantRotation; -import static art.arcane.iris.core.service.JigsawStudioService.DEFAULT_PIECE_RULES; -import static art.arcane.iris.core.service.JigsawStudioService.message; -import static art.arcane.iris.core.service.JigsawStudioToolbelt.findMembership; +import static art.arcane.iris.studio.jigsaw.JigsawStudioEvaluator.loadStudioStructure; +import static art.arcane.iris.studio.jigsaw.JigsawStudioGraphMutations.loadMappedLayout; +import static art.arcane.iris.studio.jigsaw.JigsawStudioProtection.authorizeOwner; +import static art.arcane.iris.studio.jigsaw.JigsawStudioProtection.canToggleVariantRotation; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.DEFAULT_PIECE_RULES; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.message; +import static art.arcane.iris.studio.jigsaw.JigsawStudioToolbelt.findMembership; final class JigsawStudioVariantProperties { private final JigsawStudioService service; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioVisualization.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioVisualization.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioVisualization.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioVisualization.java index 7d7d852ca..ef0f27f67 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioVisualization.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioVisualization.java @@ -1,16 +1,12 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBay; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBounds; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioLayout; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioSession; -import art.arcane.iris.core.service.JigsawStudioService.ActiveStudio; -import art.arcane.iris.engine.framework.PlacedStructurePiece; -import art.arcane.iris.engine.object.IrisDirection; -import art.arcane.iris.engine.object.IrisJigsawConnector; -import art.arcane.iris.engine.platform.studio.generators.JigsawStudioGenerator; +import art.arcane.iris.studio.jigsaw.JigsawStudioService.ActiveStudio; +import art.arcane.iris.structure.placement.PlacedStructurePiece; +import art.arcane.iris.pack.value.IrisDirection; +import art.arcane.iris.structure.jigsaw.IrisJigsawConnector; +import art.arcane.iris.studio.generation.JigsawStudioGenerator; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import org.bukkit.Color; import org.bukkit.Location; import org.bukkit.Particle; @@ -25,7 +21,7 @@ import java.util.Set; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; -import static art.arcane.iris.core.service.JigsawStudioService.message; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.message; final class JigsawStudioVisualization { private static final int VISUAL_INTERVAL_TICKS = 8; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioWorkcellEditor.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioWorkcellEditor.java similarity index 92% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioWorkcellEditor.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioWorkcellEditor.java index 9c44326f7..1e7023e22 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioWorkcellEditor.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioWorkcellEditor.java @@ -1,32 +1,23 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.runtime.jigsaw.JigsawPlanarArchetype; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioActivation; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBay; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCellDimensions; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCompatibilityTarget; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioGraphEditor; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioSession; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioStructureEditor; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioVariant; -import art.arcane.iris.core.service.JigsawStudioMaterializer.MaterializationWork; -import art.arcane.iris.core.service.JigsawStudioService.ActiveStudio; -import art.arcane.iris.core.service.JigsawStudioService.CommandGraphMutationResult; -import art.arcane.iris.engine.object.IrisJigsawThemeSet; -import art.arcane.iris.engine.object.IrisStructure; -import art.arcane.iris.engine.platform.studio.generators.JigsawStudioGenerator; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.studio.jigsaw.JigsawStudioMaterializer.MaterializationWork; +import art.arcane.iris.studio.jigsaw.JigsawStudioService.ActiveStudio; +import art.arcane.iris.studio.jigsaw.JigsawStudioService.CommandGraphMutationResult; +import art.arcane.iris.structure.jigsaw.IrisJigsawThemeSet; +import art.arcane.iris.structure.placement.IrisStructure; +import art.arcane.iris.studio.generation.JigsawStudioGenerator; +import art.arcane.iris.world.task.J; import org.bukkit.entity.Player; import java.util.ArrayList; import java.util.List; import java.util.Objects; -import static art.arcane.iris.core.service.JigsawStudioChunkWriter.validateMaterialization; -import static art.arcane.iris.core.service.JigsawStudioEvaluator.loadStudioStructure; -import static art.arcane.iris.core.service.JigsawStudioGraphMutations.loadMappedLayout; -import static art.arcane.iris.core.service.JigsawStudioProtection.authorizeOwner; -import static art.arcane.iris.core.service.JigsawStudioService.message; +import static art.arcane.iris.studio.jigsaw.JigsawStudioChunkWriter.validateMaterialization; +import static art.arcane.iris.studio.jigsaw.JigsawStudioEvaluator.loadStudioStructure; +import static art.arcane.iris.studio.jigsaw.JigsawStudioGraphMutations.loadMappedLayout; +import static art.arcane.iris.studio.jigsaw.JigsawStudioProtection.authorizeOwner; +import static art.arcane.iris.studio.jigsaw.JigsawStudioService.message; final class JigsawStudioWorkcellEditor { private final JigsawStudioService service; diff --git a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioWorkcellMenu.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioWorkcellMenu.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/service/JigsawStudioWorkcellMenu.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioWorkcellMenu.java index a80694191..fb441886a 100644 --- a/core/src/main/java/art/arcane/iris/core/service/JigsawStudioWorkcellMenu.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioWorkcellMenu.java @@ -1,11 +1,7 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.service.JigsawStudioMenuFormat.DimensionAxis; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCellDimensions; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioMode; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioToolAction; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioToolPayload; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.DimensionAxis; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.inventorygui.UIElement; import art.arcane.volmlib.util.inventorygui.UIWindow; import org.bukkit.ChatColor; @@ -19,13 +15,13 @@ import java.util.Optional; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; -import static art.arcane.iris.core.service.JigsawStudioMenuController.send; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.adjustedDimensions; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.dimensions; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.element; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.evaluationElement; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.safe; -import static art.arcane.iris.core.service.JigsawStudioMenuFormat.withCapacity; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuController.send; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.adjustedDimensions; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.dimensions; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.element; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.evaluationElement; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.safe; +import static art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat.withCapacity; final class JigsawStudioWorkcellMenu { private static final int WORKCELL_RESIZE_REFRESH_TICKS = 2; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioWorkcellSpec.java b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioWorkcellSpec.java similarity index 93% rename from core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioWorkcellSpec.java rename to core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioWorkcellSpec.java index fe0b7f933..bcda649ff 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioWorkcellSpec.java +++ b/core/src/main/java/art/arcane/iris/studio/jigsaw/JigsawStudioWorkcellSpec.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/core/service/ObjectSVC.java b/core/src/main/java/art/arcane/iris/studio/object/ObjectSVC.java similarity index 93% rename from core/src/main/java/art/arcane/iris/core/service/ObjectSVC.java rename to core/src/main/java/art/arcane/iris/studio/object/ObjectSVC.java index 310d4711c..3e5360d5e 100644 --- a/core/src/main/java/art/arcane/iris/core/service/ObjectSVC.java +++ b/core/src/main/java/art/arcane/iris/studio/object/ObjectSVC.java @@ -16,13 +16,15 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.object; + +import art.arcane.iris.integration.ExternalDataSVC; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.util.common.data.IrisCustomData; -import art.arcane.iris.util.common.plugin.IrisService; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.generation.block.IrisCustomData; +import art.arcane.iris.platform.bukkit.plugin.IrisService; +import art.arcane.iris.world.task.J; import lombok.Getter; import org.bukkit.block.Block; import org.bukkit.block.data.BlockData; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/ObjectStudioActivation.java b/core/src/main/java/art/arcane/iris/studio/object/ObjectStudioActivation.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/runtime/ObjectStudioActivation.java rename to core/src/main/java/art/arcane/iris/studio/object/ObjectStudioActivation.java index c28475569..ef5b53bcf 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/ObjectStudioActivation.java +++ b/core/src/main/java/art/arcane/iris/studio/object/ObjectStudioActivation.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.runtime; +package art.arcane.iris.studio.object; -import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.pack.loading.IrisData; import java.util.Collections; import java.util.LinkedHashMap; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/ObjectStudioLayout.java b/core/src/main/java/art/arcane/iris/studio/object/ObjectStudioLayout.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/runtime/ObjectStudioLayout.java rename to core/src/main/java/art/arcane/iris/studio/object/ObjectStudioLayout.java index 6fe7ff778..207fcfdc1 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/ObjectStudioLayout.java +++ b/core/src/main/java/art/arcane/iris/studio/object/ObjectStudioLayout.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.runtime; +package art.arcane.iris.studio.object; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisObject; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.structure.object.IrisObject; import art.arcane.volmlib.util.json.JSONArray; import art.arcane.volmlib.util.json.JSONObject; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.generation.geometry.IrisBlockVector; import java.io.File; import java.nio.file.Files; diff --git a/core/src/main/java/art/arcane/iris/core/service/ObjectStudioSaveService.java b/core/src/main/java/art/arcane/iris/studio/object/ObjectStudioSaveService.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/service/ObjectStudioSaveService.java rename to core/src/main/java/art/arcane/iris/studio/object/ObjectStudioSaveService.java index 0ce5c9f50..d92b5558e 100644 --- a/core/src/main/java/art/arcane/iris/core/service/ObjectStudioSaveService.java +++ b/core/src/main/java/art/arcane/iris/studio/object/ObjectStudioSaveService.java @@ -16,23 +16,21 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.object; import art.arcane.iris.platform.bukkit.BukkitWorldBinding; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.runtime.ObjectStudioActivation; -import art.arcane.iris.core.runtime.ObjectStudioLayout; -import art.arcane.iris.core.runtime.ObjectStudioLayout.GridCell; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.platform.studio.generators.ObjectStudioGenerator; -import art.arcane.iris.engine.platform.studio.generators.ObjectStudioGenerator.ChunkTiles; -import art.arcane.iris.engine.platform.studio.generators.ObjectStudioGenerator.PlacedTile; -import art.arcane.iris.util.common.format.C; -import art.arcane.iris.util.common.plugin.IrisService; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.studio.object.ObjectStudioLayout.GridCell; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.studio.generation.ObjectStudioGenerator; +import art.arcane.iris.studio.generation.ObjectStudioGenerator.ChunkTiles; +import art.arcane.iris.studio.generation.ObjectStudioGenerator.PlacedTile; +import art.arcane.iris.localization.C; +import art.arcane.iris.platform.bukkit.plugin.IrisService; +import art.arcane.iris.world.task.J; import io.papermc.lib.PaperLib; import org.bukkit.Bukkit; import org.bukkit.Chunk; @@ -55,8 +53,8 @@ import java.util.Map; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; -import art.arcane.iris.core.localization.BukkitRuntimeMessages; -import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.localization.BukkitRuntimeMessages; +import art.arcane.iris.localization.IrisLanguage; import art.arcane.volmlib.util.localization.MessageArgument; import art.arcane.volmlib.util.plugin.ComponentMessenger; public class ObjectStudioSaveService implements IrisService { diff --git a/core/src/main/java/art/arcane/iris/core/runtime/StudioOpenCoordinator.java b/core/src/main/java/art/arcane/iris/studio/object/StudioOpenCoordinator.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/runtime/StudioOpenCoordinator.java rename to core/src/main/java/art/arcane/iris/studio/object/StudioOpenCoordinator.java index e5c683c76..2247fb8aa 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/StudioOpenCoordinator.java +++ b/core/src/main/java/art/arcane/iris/studio/object/StudioOpenCoordinator.java @@ -1,24 +1,28 @@ -package art.arcane.iris.core.runtime; +package art.arcane.iris.studio.object; + +import art.arcane.iris.world.runtime.TransientWorldCleanupSupport; +import art.arcane.iris.world.runtime.WorldDeletionQueue; +import art.arcane.iris.world.runtime.WorldRuntimeControlService; import art.arcane.iris.platform.bukkit.BukkitWorldBinding; -import art.arcane.iris.core.IrisWorldStorage; -import art.arcane.iris.core.ServerConfigurator; -import art.arcane.iris.core.lifecycle.LifecycleOperationCoordinator; -import art.arcane.iris.core.link.MultiverseCoreLink; -import art.arcane.iris.core.nms.INMS; +import art.arcane.iris.world.IrisWorldStorage; +import art.arcane.iris.pack.datapack.ServerConfigurator; +import art.arcane.iris.world.lifecycle.LifecycleOperationCoordinator; +import art.arcane.iris.integration.MultiverseCoreLink; +import art.arcane.iris.platform.bukkit.nms.INMS; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.core.lifecycle.WorldLifecycleService; -import art.arcane.iris.core.pack.AtomicDirectoryPublisher; -import art.arcane.iris.core.project.IrisProject; -import art.arcane.iris.core.project.IrisCodeWorkspace; -import art.arcane.iris.core.tools.IrisCreator; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.platform.BukkitChunkGenerator; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.lifecycle.WorldLifecycleService; +import art.arcane.iris.pack.AtomicDirectoryPublisher; +import art.arcane.iris.studio.workspace.IrisProject; +import art.arcane.iris.studio.workspace.IrisCodeWorkspace; +import art.arcane.iris.world.IrisCreator; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.platform.generation.BukkitChunkGenerator; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.exceptions.IrisException; import art.arcane.volmlib.util.bukkit.WorldIdentity; import org.bukkit.Bukkit; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/render/IrisRenderer.java b/core/src/main/java/art/arcane/iris/studio/render/IrisRenderer.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/framework/render/IrisRenderer.java rename to core/src/main/java/art/arcane/iris/studio/render/IrisRenderer.java index 51f6796d1..499c8d88f 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/render/IrisRenderer.java +++ b/core/src/main/java/art/arcane/iris/studio/render/IrisRenderer.java @@ -16,22 +16,22 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework.render; +package art.arcane.iris.studio.render; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.hydrology.HydrologyCandidateKind; -import art.arcane.iris.engine.hydrology.HydrologyDiagnosticCandidate; -import art.arcane.iris.engine.hydrology.HydrologyDiagnosticRenderSample; -import art.arcane.iris.engine.hydrology.HydrologyFeatureRef; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.engine.hydrology.HydrologyRenderSample; -import art.arcane.iris.engine.hydrology.runtime.IrisHydrologyRuntime; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBiomeGeneratorLink; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.hydrology.HydrologyCandidateKind; +import art.arcane.iris.generation.hydrology.HydrologyDiagnosticCandidate; +import art.arcane.iris.generation.hydrology.HydrologyDiagnosticRenderSample; +import art.arcane.iris.generation.hydrology.HydrologyFeatureRef; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.hydrology.HydrologyRenderSample; +import art.arcane.iris.generation.hydrology.runtime.IrisHydrologyRuntime; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiomeGeneratorLink; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.volmlib.util.stream.ProceduralStream; import java.awt.Color; import java.awt.image.BufferedImage; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/render/RenderType.java b/core/src/main/java/art/arcane/iris/studio/render/RenderType.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/framework/render/RenderType.java rename to core/src/main/java/art/arcane/iris/studio/render/RenderType.java index 50b79ce47..2e56b37b4 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/render/RenderType.java +++ b/core/src/main/java/art/arcane/iris/studio/render/RenderType.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework.render; +package art.arcane.iris.studio.render; public enum RenderType { BIOME, BIOME_LAND, BIOME_SEA, REGION, CAVE_LAND, RIVER, HEIGHT, OBJECT_LOAD, DECORATOR_LOAD, CONTINENT, LAYER_LOAD diff --git a/core/src/main/java/art/arcane/iris/engine/framework/render/Renderer.java b/core/src/main/java/art/arcane/iris/studio/render/Renderer.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/framework/render/Renderer.java rename to core/src/main/java/art/arcane/iris/studio/render/Renderer.java index 676bea97b..58ba79f24 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/render/Renderer.java +++ b/core/src/main/java/art/arcane/iris/studio/render/Renderer.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework.render; +package art.arcane.iris.studio.render; import java.awt.Color; diff --git a/core/src/main/java/art/arcane/iris/core/tools/TreePlausibilizeBatch.java b/core/src/main/java/art/arcane/iris/studio/tree/TreePlausibilizeBatch.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/tools/TreePlausibilizeBatch.java rename to core/src/main/java/art/arcane/iris/studio/tree/TreePlausibilizeBatch.java index ede80be84..de7b9f995 100644 --- a/core/src/main/java/art/arcane/iris/core/tools/TreePlausibilizeBatch.java +++ b/core/src/main/java/art/arcane/iris/studio/tree/TreePlausibilizeBatch.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.tools; +package art.arcane.iris.studio.tree; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.RuntimeUiMessages; -import art.arcane.iris.engine.object.IrisObject; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.RuntimeUiMessages; +import art.arcane.iris.structure.object.IrisObject; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.localization.MessageArgument; import art.arcane.volmlib.util.localization.TextKey; diff --git a/core/src/main/java/art/arcane/iris/core/tools/TreePlausibilizer.java b/core/src/main/java/art/arcane/iris/studio/tree/TreePlausibilizer.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/tools/TreePlausibilizer.java rename to core/src/main/java/art/arcane/iris/studio/tree/TreePlausibilizer.java index 4debad381..8772656c9 100644 --- a/core/src/main/java/art/arcane/iris/core/tools/TreePlausibilizer.java +++ b/core/src/main/java/art/arcane/iris/studio/tree/TreePlausibilizer.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.tools; +package art.arcane.iris.studio.tree; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisProceduralBlocks; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.generation.decoration.IrisProceduralBlocks; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.VectorMap; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.generation.block.VectorMap; +import art.arcane.iris.generation.geometry.IrisBlockVector; import art.arcane.volmlib.util.math.RNG; import java.util.ArrayDeque; diff --git a/core/src/main/java/art/arcane/iris/core/gui/GuiHost.java b/core/src/main/java/art/arcane/iris/studio/view/GuiHost.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/gui/GuiHost.java rename to core/src/main/java/art/arcane/iris/studio/view/GuiHost.java index 8ad6e8d62..6665f6af1 100644 --- a/core/src/main/java/art/arcane/iris/core/gui/GuiHost.java +++ b/core/src/main/java/art/arcane/iris/studio/view/GuiHost.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; -import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.configuration.IrisSettings; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.generation.runtime.Engine; import javax.swing.JFrame; import java.awt.Desktop; diff --git a/core/src/main/java/art/arcane/iris/core/gui/GuiMarker.java b/core/src/main/java/art/arcane/iris/studio/view/GuiMarker.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/gui/GuiMarker.java rename to core/src/main/java/art/arcane/iris/studio/view/GuiMarker.java index 58173f942..da7e086ed 100644 --- a/core/src/main/java/art/arcane/iris/core/gui/GuiMarker.java +++ b/core/src/main/java/art/arcane/iris/studio/view/GuiMarker.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; public record GuiMarker(String label, double worldX, double worldY, double worldZ, double health, double maxHealth) { public static GuiMarker player(String name, double worldX, double worldZ) { diff --git a/core/src/main/java/art/arcane/iris/core/gui/GuiOverlay.java b/core/src/main/java/art/arcane/iris/studio/view/GuiOverlay.java similarity index 91% rename from core/src/main/java/art/arcane/iris/core/gui/GuiOverlay.java rename to core/src/main/java/art/arcane/iris/studio/view/GuiOverlay.java index b329e0272..da4a307fa 100644 --- a/core/src/main/java/art/arcane/iris/core/gui/GuiOverlay.java +++ b/core/src/main/java/art/arcane/iris/studio/view/GuiOverlay.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; -import art.arcane.iris.engine.framework.render.RenderType; +import art.arcane.iris.studio.render.RenderType; import java.util.List; import java.util.function.Consumer; diff --git a/core/src/main/java/art/arcane/iris/core/gui/ImageMapStudioGUI.java b/core/src/main/java/art/arcane/iris/studio/view/ImageMapStudioGUI.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/gui/ImageMapStudioGUI.java rename to core/src/main/java/art/arcane/iris/studio/view/ImageMapStudioGUI.java index 74728cf9d..f3038d5db 100644 --- a/core/src/main/java/art/arcane/iris/core/gui/ImageMapStudioGUI.java +++ b/core/src/main/java/art/arcane/iris/studio/view/ImageMapStudioGUI.java @@ -1,25 +1,25 @@ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.localization.DesktopUiMessages; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.project.ImageMapStudioExporter; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisImageMap; -import art.arcane.iris.engine.object.IrisImageMapAlpha; -import art.arcane.iris.engine.object.IrisImageMapApplication; -import art.arcane.iris.engine.object.IrisImageMapBinding; -import art.arcane.iris.engine.object.IrisImageMapMask; -import art.arcane.iris.engine.object.IrisImageMapMaskOperation; -import art.arcane.iris.engine.object.IrisImageMapOrigin; -import art.arcane.iris.engine.object.IrisImageMapOutOfBounds; -import art.arcane.iris.engine.object.IrisImageMapRotation; -import art.arcane.iris.engine.object.IrisImageMapSampling; -import art.arcane.iris.engine.object.IrisImageMapType; -import art.arcane.iris.engine.object.IrisImageMapUnknownColor; -import art.arcane.iris.engine.object.IrisWorldBoundary; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.localization.DesktopUiMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.studio.workspace.ImageMapStudioExporter; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.image.IrisImageMap; +import art.arcane.iris.generation.image.IrisImageMapAlpha; +import art.arcane.iris.generation.image.IrisImageMapApplication; +import art.arcane.iris.generation.image.IrisImageMapBinding; +import art.arcane.iris.generation.image.IrisImageMapMask; +import art.arcane.iris.generation.image.IrisImageMapMaskOperation; +import art.arcane.iris.generation.image.IrisImageMapOrigin; +import art.arcane.iris.generation.image.IrisImageMapOutOfBounds; +import art.arcane.iris.generation.image.IrisImageMapRotation; +import art.arcane.iris.generation.image.IrisImageMapSampling; +import art.arcane.iris.generation.image.IrisImageMapType; +import art.arcane.iris.generation.image.IrisImageMapUnknownColor; +import art.arcane.iris.world.IrisWorldBoundary; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.localization.TextKey; diff --git a/core/src/main/java/art/arcane/iris/core/gui/ImageMapStudioModel.java b/core/src/main/java/art/arcane/iris/studio/view/ImageMapStudioModel.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/gui/ImageMapStudioModel.java rename to core/src/main/java/art/arcane/iris/studio/view/ImageMapStudioModel.java index 27f704db3..45abc7418 100644 --- a/core/src/main/java/art/arcane/iris/core/gui/ImageMapStudioModel.java +++ b/core/src/main/java/art/arcane/iris/studio/view/ImageMapStudioModel.java @@ -1,14 +1,14 @@ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; -import art.arcane.iris.engine.object.IrisImage; -import art.arcane.iris.engine.object.IrisImageMap; -import art.arcane.iris.engine.object.IrisImageMapOrigin; -import art.arcane.iris.engine.object.IrisImageMapMask; -import art.arcane.iris.engine.object.IrisImageMapMaskOperation; -import art.arcane.iris.engine.object.IrisImageMapRotation; -import art.arcane.iris.engine.object.IrisImageMapType; -import art.arcane.iris.engine.object.IrisImageMapUnknownColor; -import art.arcane.iris.engine.object.IrisWorldBoundary; +import art.arcane.iris.generation.image.IrisImage; +import art.arcane.iris.generation.image.IrisImageMap; +import art.arcane.iris.generation.image.IrisImageMapOrigin; +import art.arcane.iris.generation.image.IrisImageMapMask; +import art.arcane.iris.generation.image.IrisImageMapMaskOperation; +import art.arcane.iris.generation.image.IrisImageMapRotation; +import art.arcane.iris.generation.image.IrisImageMapType; +import art.arcane.iris.generation.image.IrisImageMapUnknownColor; +import art.arcane.iris.world.IrisWorldBoundary; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; diff --git a/core/src/main/java/art/arcane/iris/core/gui/ImageMapStudioPreviewPanel.java b/core/src/main/java/art/arcane/iris/studio/view/ImageMapStudioPreviewPanel.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/gui/ImageMapStudioPreviewPanel.java rename to core/src/main/java/art/arcane/iris/studio/view/ImageMapStudioPreviewPanel.java index 78cd18b58..bbf0e1aea 100644 --- a/core/src/main/java/art/arcane/iris/core/gui/ImageMapStudioPreviewPanel.java +++ b/core/src/main/java/art/arcane/iris/studio/view/ImageMapStudioPreviewPanel.java @@ -1,14 +1,14 @@ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; -import art.arcane.iris.core.localization.DesktopUiMessages; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.engine.image.CompiledIrisImageMap; -import art.arcane.iris.engine.image.IrisImageMapRuntime; -import art.arcane.iris.engine.image.IrisImageMapMaskSampler; -import art.arcane.iris.engine.object.IrisImageMap; -import art.arcane.iris.engine.object.IrisImageMapApplication; -import art.arcane.iris.engine.object.IrisImageMapType; -import art.arcane.iris.engine.object.IrisWorldBoundary; +import art.arcane.iris.localization.DesktopUiMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.generation.image.CompiledIrisImageMap; +import art.arcane.iris.generation.image.IrisImageMapRuntime; +import art.arcane.iris.generation.image.IrisImageMapMaskSampler; +import art.arcane.iris.generation.image.IrisImageMap; +import art.arcane.iris.generation.image.IrisImageMapApplication; +import art.arcane.iris.generation.image.IrisImageMapType; +import art.arcane.iris.world.IrisWorldBoundary; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.localization.MessageArgument; diff --git a/core/src/main/java/art/arcane/iris/core/gui/NoiseExplorerGUI.java b/core/src/main/java/art/arcane/iris/studio/view/NoiseExplorerGUI.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/gui/NoiseExplorerGUI.java rename to core/src/main/java/art/arcane/iris/studio/view/NoiseExplorerGUI.java index f9674662f..0d4d2c9cc 100644 --- a/core/src/main/java/art/arcane/iris/core/gui/NoiseExplorerGUI.java +++ b/core/src/main/java/art/arcane/iris/studio/view/NoiseExplorerGUI.java @@ -16,19 +16,19 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.localization.DesktopUiMessages; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.PreservationRegistry; -import art.arcane.iris.engine.object.IrisGenerator; -import art.arcane.iris.engine.object.NoiseStyle; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.localization.DesktopUiMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.PreservationRegistry; +import art.arcane.iris.generation.noise.IrisGenerator; +import art.arcane.iris.generation.noise.NoiseStyle; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.volmlib.util.noise.CNG; import art.arcane.volmlib.util.function.NoiseProvider; import art.arcane.volmlib.util.localization.MessageArgument; import art.arcane.volmlib.util.math.RNG; diff --git a/core/src/main/java/art/arcane/iris/core/gui/NoisePalette.java b/core/src/main/java/art/arcane/iris/studio/view/NoisePalette.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/gui/NoisePalette.java rename to core/src/main/java/art/arcane/iris/studio/view/NoisePalette.java index 499440552..8d7569227 100644 --- a/core/src/main/java/art/arcane/iris/core/gui/NoisePalette.java +++ b/core/src/main/java/art/arcane/iris/studio/view/NoisePalette.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; import java.awt.Color; diff --git a/core/src/main/java/art/arcane/iris/core/gui/NoiseRenderCoordinator.java b/core/src/main/java/art/arcane/iris/studio/view/NoiseRenderCoordinator.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/gui/NoiseRenderCoordinator.java rename to core/src/main/java/art/arcane/iris/studio/view/NoiseRenderCoordinator.java index 53335f69e..c48fa0aaa 100644 --- a/core/src/main/java/art/arcane/iris/core/gui/NoiseRenderCoordinator.java +++ b/core/src/main/java/art/arcane/iris/studio/view/NoiseRenderCoordinator.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; -import art.arcane.iris.engine.framework.PreservationRegistry; +import art.arcane.iris.generation.runtime.PreservationRegistry; import art.arcane.iris.spi.IrisServices; import art.arcane.volmlib.util.function.NoiseProvider; diff --git a/core/src/main/java/art/arcane/iris/core/gui/NoiseViewport.java b/core/src/main/java/art/arcane/iris/studio/view/NoiseViewport.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/gui/NoiseViewport.java rename to core/src/main/java/art/arcane/iris/studio/view/NoiseViewport.java index 9f33853f0..ebd1ec616 100644 --- a/core/src/main/java/art/arcane/iris/core/gui/NoiseViewport.java +++ b/core/src/main/java/art/arcane/iris/studio/view/NoiseViewport.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; record NoiseViewport(double centerX, double centerZ, double blocksPerPixel) { static final double MIN_BLOCKS_PER_PIXEL = 0.0001D; diff --git a/core/src/main/java/art/arcane/iris/core/gui/PregenMapPanel.java b/core/src/main/java/art/arcane/iris/studio/view/PregenMapPanel.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/gui/PregenMapPanel.java rename to core/src/main/java/art/arcane/iris/studio/view/PregenMapPanel.java index f6ee6ec52..6d68be8fc 100644 --- a/core/src/main/java/art/arcane/iris/core/gui/PregenMapPanel.java +++ b/core/src/main/java/art/arcane/iris/studio/view/PregenMapPanel.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; import javax.swing.JPanel; import java.awt.Color; diff --git a/core/src/main/java/art/arcane/iris/core/gui/PregenRenderSnapshot.java b/core/src/main/java/art/arcane/iris/studio/view/PregenRenderSnapshot.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/gui/PregenRenderSnapshot.java rename to core/src/main/java/art/arcane/iris/studio/view/PregenRenderSnapshot.java index e8a2dba9d..f7500ab64 100644 --- a/core/src/main/java/art/arcane/iris/core/gui/PregenRenderSnapshot.java +++ b/core/src/main/java/art/arcane/iris/studio/view/PregenRenderSnapshot.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/core/gui/PregenRenderSource.java b/core/src/main/java/art/arcane/iris/studio/view/PregenRenderSource.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/gui/PregenRenderSource.java rename to core/src/main/java/art/arcane/iris/studio/view/PregenRenderSource.java index fd02b9772..2ef15ffcc 100644 --- a/core/src/main/java/art/arcane/iris/core/gui/PregenRenderSource.java +++ b/core/src/main/java/art/arcane/iris/studio/view/PregenRenderSource.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; public interface PregenRenderSource { PregenRenderSnapshot renderSnapshot(); diff --git a/core/src/main/java/art/arcane/iris/core/gui/PregenRenderer.java b/core/src/main/java/art/arcane/iris/studio/view/PregenRenderer.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/gui/PregenRenderer.java rename to core/src/main/java/art/arcane/iris/studio/view/PregenRenderer.java index 2ab844001..b3701e83d 100644 --- a/core/src/main/java/art/arcane/iris/core/gui/PregenRenderer.java +++ b/core/src/main/java/art/arcane/iris/studio/view/PregenRenderer.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.localization.DesktopUiMessages; -import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.localization.DesktopUiMessages; +import art.arcane.iris.localization.IrisLanguage; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.localization.MessageArgument; diff --git a/core/src/main/java/art/arcane/iris/core/gui/PregeneratorJob.java b/core/src/main/java/art/arcane/iris/studio/view/PregeneratorJob.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/gui/PregeneratorJob.java rename to core/src/main/java/art/arcane/iris/studio/view/PregeneratorJob.java index e226a202d..f767a73e6 100644 --- a/core/src/main/java/art/arcane/iris/core/gui/PregeneratorJob.java +++ b/core/src/main/java/art/arcane/iris/studio/view/PregeneratorJob.java @@ -16,27 +16,27 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; -import art.arcane.iris.core.localization.DesktopUiMessages; -import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.localization.DesktopUiMessages; +import art.arcane.iris.localization.IrisLanguage; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.spi.protocol.IrisMessage; -import art.arcane.iris.core.protocol.IrisProtocolServer; -import art.arcane.iris.core.pregenerator.IrisPregenerator; -import art.arcane.iris.core.pregenerator.PregenApiPhase; -import art.arcane.iris.core.pregenerator.PregenApiSink; -import art.arcane.iris.core.pregenerator.PregenListener; -import art.arcane.iris.core.pregenerator.PregenPhaseTracker; -import art.arcane.iris.core.pregenerator.PregenRates; -import art.arcane.iris.core.pregenerator.PregenTask; -import art.arcane.iris.core.pregenerator.PregeneratorMethod; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.history.SavedBiomeUnavailableException; +import art.arcane.iris.platform.protocol.IrisProtocolServer; +import art.arcane.iris.world.pregen.IrisPregenerator; +import art.arcane.iris.world.pregen.PregenApiPhase; +import art.arcane.iris.world.pregen.PregenApiSink; +import art.arcane.iris.world.pregen.PregenListener; +import art.arcane.iris.world.pregen.PregenPhaseTracker; +import art.arcane.iris.world.pregen.PregenRates; +import art.arcane.iris.world.pregen.PregenTask; +import art.arcane.iris.world.pregen.PregeneratorMethod; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.world.history.SavedBiomeUnavailableException; import art.arcane.volmlib.util.format.MemoryMonitor; import art.arcane.volmlib.util.mantle.runtime.Mantle; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import java.awt.Color; import java.awt.EventQueue; diff --git a/core/src/main/java/art/arcane/iris/core/gui/VisionGUI.java b/core/src/main/java/art/arcane/iris/studio/view/VisionGUI.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/gui/VisionGUI.java rename to core/src/main/java/art/arcane/iris/studio/view/VisionGUI.java index b67935ed7..291fbd9ed 100644 --- a/core/src/main/java/art/arcane/iris/core/gui/VisionGUI.java +++ b/core/src/main/java/art/arcane/iris/studio/view/VisionGUI.java @@ -16,18 +16,18 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; -import art.arcane.iris.core.localization.DesktopUiMessages; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.render.IrisRenderer; -import art.arcane.iris.engine.framework.render.RenderType; -import art.arcane.iris.engine.hydrology.HydrologyCandidateKind; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.localization.DesktopUiMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.studio.render.IrisRenderer; +import art.arcane.iris.studio.render.RenderType; +import art.arcane.iris.generation.hydrology.HydrologyCandidateKind; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.localization.MessageArgument; diff --git a/core/src/main/java/art/arcane/iris/core/gui/VisionRenderController.java b/core/src/main/java/art/arcane/iris/studio/view/VisionRenderController.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/gui/VisionRenderController.java rename to core/src/main/java/art/arcane/iris/studio/view/VisionRenderController.java index 9702a829b..e466885a6 100644 --- a/core/src/main/java/art/arcane/iris/core/gui/VisionRenderController.java +++ b/core/src/main/java/art/arcane/iris/studio/view/VisionRenderController.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; -import art.arcane.iris.engine.framework.PreservationRegistry; -import art.arcane.iris.engine.framework.render.IrisRenderer; -import art.arcane.iris.engine.framework.render.RenderType; +import art.arcane.iris.generation.runtime.PreservationRegistry; +import art.arcane.iris.studio.render.IrisRenderer; +import art.arcane.iris.studio.render.RenderType; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; diff --git a/core/src/main/java/art/arcane/iris/core/gui/VisionViewport.java b/core/src/main/java/art/arcane/iris/studio/view/VisionViewport.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/gui/VisionViewport.java rename to core/src/main/java/art/arcane/iris/studio/view/VisionViewport.java index 08b75401f..7eb515eb6 100644 --- a/core/src/main/java/art/arcane/iris/core/gui/VisionViewport.java +++ b/core/src/main/java/art/arcane/iris/studio/view/VisionViewport.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; record VisionViewport(double centerX, double centerZ, double blocksPerPixel) { VisionViewport { diff --git a/core/src/main/java/art/arcane/iris/core/project/ImageMapStudioExporter.java b/core/src/main/java/art/arcane/iris/studio/workspace/ImageMapStudioExporter.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/project/ImageMapStudioExporter.java rename to core/src/main/java/art/arcane/iris/studio/workspace/ImageMapStudioExporter.java index bd358e47f..c85743e06 100644 --- a/core/src/main/java/art/arcane/iris/core/project/ImageMapStudioExporter.java +++ b/core/src/main/java/art/arcane/iris/studio/workspace/ImageMapStudioExporter.java @@ -1,19 +1,19 @@ -package art.arcane.iris.core.project; +package art.arcane.iris.studio.workspace; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.pack.PackValidationResult; -import art.arcane.iris.core.pack.PackValidator; -import art.arcane.iris.engine.image.CompiledIrisImageMap; -import art.arcane.iris.engine.image.IrisImageMapCompiler; -import art.arcane.iris.engine.image.IrisImageMapRuntime; -import art.arcane.iris.engine.image.IrisImageMapMaskSampler; -import art.arcane.iris.engine.image.IrisImageMapValidationException; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisImage; -import art.arcane.iris.engine.object.IrisImageMap; -import art.arcane.iris.engine.object.IrisImageMapApplication; -import art.arcane.iris.engine.object.IrisImageMapBinding; -import art.arcane.iris.engine.object.IrisImageMapMask; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.PackValidationResult; +import art.arcane.iris.pack.PackValidator; +import art.arcane.iris.generation.image.CompiledIrisImageMap; +import art.arcane.iris.generation.image.IrisImageMapCompiler; +import art.arcane.iris.generation.image.IrisImageMapRuntime; +import art.arcane.iris.generation.image.IrisImageMapMaskSampler; +import art.arcane.iris.generation.image.IrisImageMapValidationException; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.image.IrisImage; +import art.arcane.iris.generation.image.IrisImageMap; +import art.arcane.iris.generation.image.IrisImageMapApplication; +import art.arcane.iris.generation.image.IrisImageMapBinding; +import art.arcane.iris.generation.image.IrisImageMapMask; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.json.JSONObject; import com.google.gson.Gson; diff --git a/core/src/main/java/art/arcane/iris/core/project/IrisCodeWorkspace.java b/core/src/main/java/art/arcane/iris/studio/workspace/IrisCodeWorkspace.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/project/IrisCodeWorkspace.java rename to core/src/main/java/art/arcane/iris/studio/workspace/IrisCodeWorkspace.java index debbcc9cd..ecd55e370 100644 --- a/core/src/main/java/art/arcane/iris/core/project/IrisCodeWorkspace.java +++ b/core/src/main/java/art/arcane/iris/studio/workspace/IrisCodeWorkspace.java @@ -16,15 +16,17 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.project; +package art.arcane.iris.studio.workspace; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.pack.schema.SchemaBuilder; + +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.format.Form; diff --git a/core/src/main/java/art/arcane/iris/core/project/IrisPackageCompiler.java b/core/src/main/java/art/arcane/iris/studio/workspace/IrisPackageCompiler.java similarity index 93% rename from core/src/main/java/art/arcane/iris/core/project/IrisPackageCompiler.java rename to core/src/main/java/art/arcane/iris/studio/workspace/IrisPackageCompiler.java index 154c37a90..97911807a 100644 --- a/core/src/main/java/art/arcane/iris/core/project/IrisPackageCompiler.java +++ b/core/src/main/java/art/arcane/iris/studio/workspace/IrisPackageCompiler.java @@ -16,33 +16,33 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.project; +package art.arcane.iris.studio.workspace; import com.google.gson.Gson; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.localization.BukkitRuntimeMessages; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.pack.ImageMapPackageClosure; -import art.arcane.iris.core.pack.PackValidationResult; -import art.arcane.iris.core.pack.PackValidator; -import art.arcane.iris.core.pack.StructurePackageClosure; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBlockData; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisEntity; -import art.arcane.iris.engine.object.IrisExpression; -import art.arcane.iris.engine.object.IrisGenerator; -import art.arcane.iris.engine.object.IrisLootTable; -import art.arcane.iris.core.pack.PackExportClosure; -import art.arcane.iris.engine.object.IrisMarker; -import art.arcane.iris.engine.object.IrisObjectPlacement; -import art.arcane.iris.engine.object.IrisStaticObject; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisSpawner; -import art.arcane.iris.engine.object.IrisStructurePlacement; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.localization.BukkitRuntimeMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.pack.ImageMapPackageClosure; +import art.arcane.iris.pack.PackValidationResult; +import art.arcane.iris.pack.PackValidator; +import art.arcane.iris.pack.StructurePackageClosure; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.block.IrisBlockData; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.world.entity.IrisEntity; +import art.arcane.iris.generation.noise.IrisExpression; +import art.arcane.iris.generation.noise.IrisGenerator; +import art.arcane.iris.world.loot.IrisLootTable; +import art.arcane.iris.pack.PackExportClosure; +import art.arcane.iris.world.entity.IrisMarker; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.structure.object.IrisStaticObject; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.world.entity.IrisSpawner; +import art.arcane.iris.structure.placement.IrisStructurePlacement; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.util.common.plugin.VolmitSender; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KSet; diff --git a/core/src/main/java/art/arcane/iris/core/project/IrisProject.java b/core/src/main/java/art/arcane/iris/studio/workspace/IrisProject.java similarity index 93% rename from core/src/main/java/art/arcane/iris/core/project/IrisProject.java rename to core/src/main/java/art/arcane/iris/studio/workspace/IrisProject.java index fae105f29..638c7ee16 100644 --- a/core/src/main/java/art/arcane/iris/core/project/IrisProject.java +++ b/core/src/main/java/art/arcane/iris/studio/workspace/IrisProject.java @@ -16,16 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.project; +package art.arcane.iris.studio.workspace; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.core.runtime.StudioOpenCoordinator; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.studio.object.StudioOpenCoordinator; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.exceptions.IrisException; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import lombok.Data; import org.bukkit.World; @@ -35,8 +35,8 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; import java.util.function.Consumer; -import art.arcane.iris.core.localization.BukkitRuntimeMessages; -import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.localization.BukkitRuntimeMessages; +import art.arcane.iris.localization.IrisLanguage; import art.arcane.volmlib.util.localization.MessageArgument; @SuppressWarnings("ALL") @Data diff --git a/core/src/main/java/art/arcane/iris/core/project/IrisProjectCopier.java b/core/src/main/java/art/arcane/iris/studio/workspace/IrisProjectCopier.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/project/IrisProjectCopier.java rename to core/src/main/java/art/arcane/iris/studio/workspace/IrisProjectCopier.java index 262aafb34..5b80cbe36 100644 --- a/core/src/main/java/art/arcane/iris/core/project/IrisProjectCopier.java +++ b/core/src/main/java/art/arcane/iris/studio/workspace/IrisProjectCopier.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.project; +package art.arcane.iris.studio.workspace; -import art.arcane.iris.core.pack.PackDirectoryResolver; +import art.arcane.iris.pack.PackDirectoryResolver; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.io.IO; import art.arcane.volmlib.util.json.JSONArray; diff --git a/core/src/main/java/art/arcane/iris/core/project/StudioOpenProgressReporter.java b/core/src/main/java/art/arcane/iris/studio/workspace/StudioOpenProgressReporter.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/project/StudioOpenProgressReporter.java rename to core/src/main/java/art/arcane/iris/studio/workspace/StudioOpenProgressReporter.java index 6ae3375db..5d83ef8e4 100644 --- a/core/src/main/java/art/arcane/iris/core/project/StudioOpenProgressReporter.java +++ b/core/src/main/java/art/arcane/iris/studio/workspace/StudioOpenProgressReporter.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.project; +package art.arcane.iris.studio.workspace; -import art.arcane.iris.core.localization.BukkitRuntimeMessages; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.RuntimeProgressMessages; -import art.arcane.iris.util.common.format.C; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.localization.BukkitRuntimeMessages; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.RuntimeProgressMessages; +import art.arcane.iris.localization.C; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.localization.MessageArgument; import org.bukkit.Bukkit; diff --git a/core/src/main/java/art/arcane/iris/util/common/director/handlers/BooleanHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/handlers/BooleanHandler.java deleted file mode 100644 index 24ae4ce7c..000000000 --- a/core/src/main/java/art/arcane/iris/util/common/director/handlers/BooleanHandler.java +++ /dev/null @@ -1,7 +0,0 @@ -package art.arcane.iris.util.common.director.handlers; - -import art.arcane.volmlib.util.director.handlers.base.BooleanHandlerBase; -import art.arcane.volmlib.util.director.DirectorParameterHandler; - -public class BooleanHandler extends BooleanHandlerBase implements DirectorParameterHandler { -} diff --git a/core/src/main/java/art/arcane/iris/util/common/director/handlers/ByteHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/handlers/ByteHandler.java deleted file mode 100644 index f8886be55..000000000 --- a/core/src/main/java/art/arcane/iris/util/common/director/handlers/ByteHandler.java +++ /dev/null @@ -1,7 +0,0 @@ -package art.arcane.iris.util.common.director.handlers; - -import art.arcane.volmlib.util.director.handlers.base.ByteHandlerBase; -import art.arcane.volmlib.util.director.DirectorParameterHandler; - -public class ByteHandler extends ByteHandlerBase implements DirectorParameterHandler { -} diff --git a/core/src/main/java/art/arcane/iris/util/common/director/handlers/DoubleHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/handlers/DoubleHandler.java deleted file mode 100644 index dc82f8c55..000000000 --- a/core/src/main/java/art/arcane/iris/util/common/director/handlers/DoubleHandler.java +++ /dev/null @@ -1,7 +0,0 @@ -package art.arcane.iris.util.common.director.handlers; - -import art.arcane.volmlib.util.director.handlers.base.DoubleHandlerBase; -import art.arcane.volmlib.util.director.DirectorParameterHandler; - -public class DoubleHandler extends DoubleHandlerBase implements DirectorParameterHandler { -} diff --git a/core/src/main/java/art/arcane/iris/util/common/director/handlers/FloatHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/handlers/FloatHandler.java deleted file mode 100644 index ba3d1b4e5..000000000 --- a/core/src/main/java/art/arcane/iris/util/common/director/handlers/FloatHandler.java +++ /dev/null @@ -1,7 +0,0 @@ -package art.arcane.iris.util.common.director.handlers; - -import art.arcane.volmlib.util.director.handlers.base.FloatHandlerBase; -import art.arcane.volmlib.util.director.DirectorParameterHandler; - -public class FloatHandler extends FloatHandlerBase implements DirectorParameterHandler { -} diff --git a/core/src/main/java/art/arcane/iris/util/common/director/handlers/IntegerHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/handlers/IntegerHandler.java deleted file mode 100644 index e845710e0..000000000 --- a/core/src/main/java/art/arcane/iris/util/common/director/handlers/IntegerHandler.java +++ /dev/null @@ -1,7 +0,0 @@ -package art.arcane.iris.util.common.director.handlers; - -import art.arcane.volmlib.util.director.handlers.base.IntegerHandlerBase; -import art.arcane.volmlib.util.director.DirectorParameterHandler; - -public class IntegerHandler extends IntegerHandlerBase implements DirectorParameterHandler { -} diff --git a/core/src/main/java/art/arcane/iris/util/common/director/handlers/LongHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/handlers/LongHandler.java deleted file mode 100644 index e78712f22..000000000 --- a/core/src/main/java/art/arcane/iris/util/common/director/handlers/LongHandler.java +++ /dev/null @@ -1,7 +0,0 @@ -package art.arcane.iris.util.common.director.handlers; - -import art.arcane.volmlib.util.director.handlers.base.LongHandlerBase; -import art.arcane.volmlib.util.director.DirectorParameterHandler; - -public class LongHandler extends LongHandlerBase implements DirectorParameterHandler { -} diff --git a/core/src/main/java/art/arcane/iris/util/common/director/handlers/ShortHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/handlers/ShortHandler.java deleted file mode 100644 index 292ecbad2..000000000 --- a/core/src/main/java/art/arcane/iris/util/common/director/handlers/ShortHandler.java +++ /dev/null @@ -1,7 +0,0 @@ -package art.arcane.iris.util.common.director.handlers; - -import art.arcane.volmlib.util.director.handlers.base.ShortHandlerBase; -import art.arcane.volmlib.util.director.DirectorParameterHandler; - -public class ShortHandler extends ShortHandlerBase implements DirectorParameterHandler { -} diff --git a/core/src/main/java/art/arcane/iris/util/common/director/handlers/StringHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/handlers/StringHandler.java deleted file mode 100644 index 477f3b60c..000000000 --- a/core/src/main/java/art/arcane/iris/util/common/director/handlers/StringHandler.java +++ /dev/null @@ -1,7 +0,0 @@ -package art.arcane.iris.util.common.director.handlers; - -import art.arcane.volmlib.util.director.handlers.StringHandlerBase; -import art.arcane.volmlib.util.director.DirectorParameterHandler; - -public class StringHandler extends StringHandlerBase implements DirectorParameterHandler { -} diff --git a/core/src/main/java/art/arcane/iris/util/common/math/ChunkSpiral.java b/core/src/main/java/art/arcane/iris/util/common/math/ChunkSpiral.java deleted file mode 100644 index a24a75d47..000000000 --- a/core/src/main/java/art/arcane/iris/util/common/math/ChunkSpiral.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2026 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.common.math; - -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; - -public final class ChunkSpiral { - private ChunkSpiral() { - } - - public static List centerOut(int centerX, int centerZ, int radius) { - List targets = new ArrayList<>(); - for (int dx = -radius; dx <= radius; dx++) { - for (int dz = -radius; dz <= radius; dz++) { - targets.add(new int[]{centerX + dx, centerZ + dz}); - } - } - - targets.sort(Comparator.comparingInt((int[] t) -> { - int ox = t[0] - centerX; - int oz = t[1] - centerZ; - return ox * ox + oz * oz; - })); - return targets; - } -} diff --git a/core/src/main/java/art/arcane/iris/util/common/math/Direction.java b/core/src/main/java/art/arcane/iris/util/common/math/Direction.java deleted file mode 100644 index d33ab9f5a..000000000 --- a/core/src/main/java/art/arcane/iris/util/common/math/Direction.java +++ /dev/null @@ -1,158 +0,0 @@ -package art.arcane.iris.util.common.math; - -import art.arcane.volmlib.util.collection.KList; -import art.arcane.volmlib.util.data.Cuboid.CuboidDirection; -import org.bukkit.Axis; -import org.bukkit.block.BlockFace; -import org.bukkit.util.Vector; - -public enum Direction { - U(art.arcane.volmlib.util.math.DirectionBasis.U, CuboidDirection.Up), - D(art.arcane.volmlib.util.math.DirectionBasis.D, CuboidDirection.Down), - N(art.arcane.volmlib.util.math.DirectionBasis.N, CuboidDirection.North), - S(art.arcane.volmlib.util.math.DirectionBasis.S, CuboidDirection.South), - E(art.arcane.volmlib.util.math.DirectionBasis.E, CuboidDirection.East), - W(art.arcane.volmlib.util.math.DirectionBasis.W, CuboidDirection.West); - - private final art.arcane.volmlib.util.math.DirectionBasis basis; - private final CuboidDirection f; - - Direction(art.arcane.volmlib.util.math.DirectionBasis basis, CuboidDirection f) { - this.basis = basis; - this.f = f; - } - - private static Direction fromBasis(art.arcane.volmlib.util.math.DirectionBasis b) { - if (b == null) { - return null; - } - - return switch (b) { - case U -> U; - case D -> D; - case N -> N; - case S -> S; - case E -> E; - case W -> W; - }; - } - - public static Direction getDirection(BlockFace f) { - return fromBasis(art.arcane.volmlib.util.math.DirectionBasis.getDirection(f)); - } - - public static Direction closest(Vector v) { - return fromBasis(art.arcane.volmlib.util.math.DirectionBasis.closest(v)); - } - - public static Direction closest(Vector v, Direction... d) { - double m = Double.MAX_VALUE; - Direction s = null; - - for (Direction i : d) { - Vector x = i.toVector(); - double g = x.distance(v); - - if (g < m) { - m = g; - s = i; - } - } - - return s; - } - - public static Direction closest(Vector v, KList d) { - double m = Double.MAX_VALUE; - Direction s = null; - - for (Direction i : d) { - Vector x = i.toVector(); - double g = x.distance(v); - - if (g < m) { - m = g; - s = i; - } - } - - return s; - } - - public static KList news() { - return new KList().add(N, E, W, S); - } - - public static Direction getDirection(Vector v) { - return fromBasis(art.arcane.volmlib.util.math.DirectionBasis.getDirection(v)); - } - - public static KList udnews() { - return new KList().add(U, D, N, E, W, S); - } - - public static Direction fromByte(byte b) { - return fromBasis(art.arcane.volmlib.util.math.DirectionBasis.fromByte(b)); - } - - public static void calculatePermutations() { - art.arcane.volmlib.util.math.DirectionBasis.calculatePermutations(); - } - - @Override - public String toString() { - return basis.toString(); - } - - public boolean isVertical() { - return basis.isVertical(); - } - - public Vector toVector() { - return basis.toVector(); - } - - public boolean isCrooked(Direction to) { - if (equals(to.reverse())) { - return false; - } - - return !equals(to); - } - - public Vector angle(Vector initial, Direction d) { - return basis.angle(initial, d.basis); - } - - public Direction reverse() { - return fromBasis(basis.reverse()); - } - - public int x() { - return basis.x(); - } - - public int y() { - return basis.y(); - } - - public int z() { - return basis.z(); - } - - public CuboidDirection f() { - return f; - } - - public byte byteValue() { - return basis.byteValue(); - } - - public BlockFace getFace() { - return basis.getFace(); - } - - public Axis getAxis() { - return basis.getAxis(); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/common/math/Vector3i.java b/core/src/main/java/art/arcane/iris/util/common/math/Vector3i.java deleted file mode 100644 index 9051e0c07..000000000 --- a/core/src/main/java/art/arcane/iris/util/common/math/Vector3i.java +++ /dev/null @@ -1,65 +0,0 @@ -package art.arcane.iris.util.common.math; - -public class Vector3i implements Cloneable { - private final int x; - private final int y; - private final int z; - - public Vector3i(int x, int y, int z) { - this.x = x; - this.y = y; - this.z = z; - } - - public int getX() { - return x; - } - - public int getY() { - return y; - } - - public int getZ() { - return z; - } - - public int getBlockX() { - return x; - } - - public int getBlockY() { - return y; - } - - public int getBlockZ() { - return z; - } - - @Override - public Vector3i clone() { - try { - return (Vector3i) super.clone(); - } catch (CloneNotSupportedException e) { - throw new Error(e); - } - } - - @Override - public boolean equals(Object obj) { - if (!(obj instanceof Vector3i other)) { - return false; - } - - return x == other.x && y == other.y && z == other.z; - } - - @Override - public int hashCode() { - return x ^ (z << 12) ^ (y << 24); - } - - @Override - public String toString() { - return x + "," + y + "," + z; - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/hunk/Hunk.java b/core/src/main/java/art/arcane/iris/util/project/hunk/Hunk.java deleted file mode 100644 index 37eaac79f..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/hunk/Hunk.java +++ /dev/null @@ -1,1206 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.hunk; - -import art.arcane.iris.engine.data.chunk.TerrainChunk; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.spi.IrisLogging; -import art.arcane.volmlib.util.function.Consumer2; -import art.arcane.volmlib.util.function.Consumer3; -import art.arcane.volmlib.util.function.Consumer4; -import art.arcane.volmlib.util.function.Consumer4IO; -import art.arcane.volmlib.util.function.Consumer5; -import art.arcane.volmlib.util.function.Consumer6; -import art.arcane.volmlib.util.function.Consumer8; -import art.arcane.volmlib.util.function.Function3; -import art.arcane.volmlib.util.function.Function4; -import art.arcane.volmlib.util.function.Supplier3R; -import art.arcane.volmlib.util.hunk.HunkComputeSupport; -import art.arcane.volmlib.util.hunk.HunkCoreSupport; -import art.arcane.volmlib.util.hunk.HunkInterpolationSupport; -import art.arcane.volmlib.util.hunk.HunkMutationSupport; -import art.arcane.volmlib.util.hunk.HunkSectionSupport; -import art.arcane.volmlib.util.hunk.HunkFace; -import art.arcane.volmlib.util.hunk.HunkLike; -import art.arcane.iris.util.project.hunk.storage.ArrayHunk; -import art.arcane.iris.util.project.hunk.storage.AtomicDoubleHunk; -import art.arcane.iris.util.project.hunk.storage.AtomicHunk; -import art.arcane.iris.util.project.hunk.storage.AtomicIntegerHunk; -import art.arcane.iris.util.project.hunk.storage.AtomicLongHunk; -import art.arcane.iris.util.project.hunk.storage.SynchronizedArrayHunk; -import art.arcane.iris.util.project.hunk.view.ChunkBiomeHunkView; -import art.arcane.iris.util.project.hunk.view.ChunkDataHunkView; -import art.arcane.iris.util.project.hunk.view.ChunkHunkView; -import art.arcane.iris.util.project.hunk.view.TerrainChunkBiomeHunkView; -import art.arcane.iris.util.project.interpolation.InterpolationMethod; -import art.arcane.iris.util.project.interpolation.InterpolationMethod3D; -import art.arcane.iris.util.project.interpolation.Interpolation3D; -import art.arcane.iris.util.project.interpolation.IrisInterpolation; -import art.arcane.volmlib.util.math.BlockPosition; -import art.arcane.iris.util.common.parallel.MultiBurst; -import art.arcane.iris.spi.PlatformBiome; -import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.stream.interpolation.Interpolated; -import org.bukkit.Chunk; -import org.bukkit.generator.ChunkGenerator.ChunkData; - -import java.io.IOException; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.function.Consumer; -import java.util.function.Function; -import java.util.function.Predicate; - -@SuppressWarnings("ALL") -public interface Hunk extends HunkLike { - static Hunk adapt(HunkLike hunk) { - if (hunk == null) { - return null; - } - - if (hunk instanceof Hunk existing) { - return (Hunk) existing; - } - - return new SharedHunkAdapter<>(hunk); - } - - static HunkLike unwrap(HunkLike hunk) { - if (hunk instanceof SharedHunkAdapter adapter) { - return (HunkLike) adapter.delegate(); - } - - return hunk; - } - - /** - * Create a hunk view from a source hunk. This view reads and writes through to - * the source hunk. Its is not a copy. - * - * @param the type - * @param src the source hunk - * @return the hunk view - */ - static Hunk view(Hunk src) { - return adapt(new art.arcane.volmlib.util.hunk.view.HunkView<>(unwrap(src))); - } - - static Hunk convertedReadView(Hunk src, Function reader) { - return adapt(new art.arcane.volmlib.util.hunk.view.FunctionalHunkView<>(unwrap(src), reader, null)); - } - - static Hunk convertedWriteView(Hunk src, Function writer) { - return adapt(new art.arcane.volmlib.util.hunk.view.FunctionalHunkView<>(unwrap(src), null, writer)); - } - - static Hunk convertedReadWriteView(Hunk src, Function reader, Function writer) { - return adapt(new art.arcane.volmlib.util.hunk.view.FunctionalHunkView<>(unwrap(src), reader, writer)); - } - - static Hunk fringe(Hunk i, Hunk o) { - return adapt(new art.arcane.volmlib.util.hunk.view.FringedHunkView<>(unwrap(i), unwrap(o))); - } - - static Hunk view(TerrainChunk src) { - return new ChunkDataHunkView(src.getChunkData()); - } - - static Hunk viewBiomes(TerrainChunk src) { - return new TerrainChunkBiomeHunkView(src); - } - - static Hunk view(ChunkData src) { - return new ChunkDataHunkView(src); - } - - static Hunk viewBlocks(Chunk src) { - return new ChunkHunkView(src); - } - - static Hunk viewBiomes(Chunk src) { - return new ChunkBiomeHunkView(src); - } - - static Hunk newHunk(int w, int h, int d) { - return newArrayHunk(w, h, d); - } - - @SafeVarargs - static Hunk newCombinedHunk(Hunk... hunks) { - return newCombinedArrayHunk(hunks); - } - - static Hunk newArrayHunk(int w, int h, int d) { - return new ArrayHunk<>(w, h, d); - } - - @SafeVarargs - static Hunk newCombinedArrayHunk(Hunk... hunks) { - return combined(Hunk::newArrayHunk, hunks); - } - - static Hunk newSynchronizedArrayHunk(int w, int h, int d) { - return new SynchronizedArrayHunk<>(w, h, d); - } - - @SafeVarargs - static Hunk newCombinedSynchronizedArrayHunk(Hunk... hunks) { - return combined(Hunk::newSynchronizedArrayHunk, hunks); - } - - static Hunk newMappedHunk(int w, int h, int d) { - return adapt(new art.arcane.volmlib.util.hunk.storage.MappedHunk<>(w, h, d)); - } - - static Hunk newMappedHunkSynced(int w, int h, int d) { - return adapt(new art.arcane.volmlib.util.hunk.storage.MappedSyncHunk<>(w, h, d)); - } - - @SafeVarargs - static Hunk newCombinedMappedHunk(Hunk... hunks) { - return combined(Hunk::newMappedHunk, hunks); - } - - static Hunk newAtomicHunk(int w, int h, int d) { - return new AtomicHunk<>(w, h, d); - } - - @SafeVarargs - static Hunk newCombinedAtomicHunk(Hunk... hunks) { - return combined(Hunk::newAtomicHunk, hunks); - } - - static Hunk newAtomicDoubleHunk(int w, int h, int d) { - return new AtomicDoubleHunk(w, h, d); - } - - @SafeVarargs - static Hunk newCombinedAtomicDoubleHunk(Hunk... hunks) { - return combined(Hunk::newAtomicDoubleHunk, hunks); - } - - static Hunk newAtomicLongHunk(int w, int h, int d) { - return new AtomicLongHunk(w, h, d); - } - - @SafeVarargs - static Hunk newCombinedAtomicLongHunk(Hunk... hunks) { - return combined(Hunk::newAtomicLongHunk, hunks); - } - - static Hunk newAtomicIntegerHunk(int w, int h, int d) { - return new AtomicIntegerHunk(w, h, d); - } - - @SafeVarargs - static Hunk newCombinedAtomicIntegerHunk(Hunk... hunks) { - return combined(Hunk::newAtomicIntegerHunk, hunks); - } - - /** - * Creates a new bounding hunk from the given hunks - * - * @param the type - * @param factory the factory that creates a hunk - * @param hunks the hunks - * @return the new bounding hunk - */ - @SafeVarargs - static Hunk combined(Function3> factory, Hunk... hunks) { - int w = 0; - int h = 0; - int d = 0; - - for (Hunk i : hunks) { - w = Math.max(w, i.getWidth()); - h = Math.max(h, i.getHeight()); - d = Math.max(d, i.getDepth()); - } - - Hunk b = factory.apply(w, h, d); - - for (Hunk i : hunks) { - b.insert(i); - } - - return b; - } - - static void computeDual2D(int parallelism, Hunk a, Hunk b, Consumer5, Hunk> v) { - if (a.getWidth() != b.getWidth() || a.getHeight() != b.getHeight() || a.getDepth() != b.getDepth()) { - throw new RuntimeException("Hunk sizes must match!"); - } - - if (a.get2DDimension(parallelism) == 1) { - v.accept(0, 0, 0, a, b); - return; - } - - HunkComputeSupport.computeDualMerged( - parallelism, - p -> MultiBurst.burst.burst(p), - consumer -> getDualSections2D(parallelism, a, b, consumer, (x, y, z, hax, hbx) -> - { - a.insert(x, y, z, hax); - b.insert(x, y, z, hbx); - }), - v); - } - - static void getDualSections2D(int sections, Hunk a, Hunk b, Consumer6, Hunk, Runnable> v, Consumer5, Hunk> inserterAB) { - if (a.getWidth() != b.getWidth() || a.getHeight() != b.getHeight() || a.getDepth() != b.getDepth()) { - throw new RuntimeException("Hunk sizes must match!"); - } - - HunkSectionSupport.forEach2DSectionBounds(a, sections, (x, y, z, x1, y1, z1) -> - getDualSection(x, y, z, x1, y1, z1, a, b, (ha, hr, r) -> v.accept(x, y, z, ha, hr, r), inserterAB)); - } - - static void getDualSection(int x, int y, int z, int x1, int y1, int z1, Hunk a, Hunk b, Consumer3, Hunk, Runnable> v, Consumer5, Hunk> inserter) { - Hunk copya = a.crop(x, y, z, x1, y1, z1); - Hunk copyb = b.crop(x, y, z, x1, y1, z1); - v.accept(copya, copyb, () -> inserter.accept(x, y, z, copya, copyb)); - } - - /** - * Create a hunk that is optimized for specific uses - * - * @param w width - * @param h height - * @param d depth - * @param type the class type - * @param packed if the hunk is generally more than 50% full (non-null nodes) - * @param concurrent if this hunk must be thread safe - * @param the type - * @return the hunk - */ - static Hunk newHunk(int w, int h, int d, Class type, boolean packed, boolean concurrent) { - if (type.equals(Double.class)) { - return concurrent ? - packed ? (Hunk) newAtomicDoubleHunk(w, h, d) : newMappedHunk(w, h, d) - : packed ? newArrayHunk(w, h, d) : newMappedHunkSynced(w, h, d); - } - - if (type.equals(Integer.class)) { - return concurrent ? - packed ? (Hunk) newAtomicIntegerHunk(w, h, d) : newMappedHunk(w, h, d) - : packed ? newArrayHunk(w, h, d) : newMappedHunkSynced(w, h, d); - } - - if (type.equals(Long.class)) { - return concurrent ? - packed ? (Hunk) newAtomicLongHunk(w, h, d) : newMappedHunk(w, h, d) - : packed ? newArrayHunk(w, h, d) : newMappedHunkSynced(w, h, d); - } - - return concurrent ? - packed ? newAtomicHunk(w, h, d) : newMappedHunk(w, h, d) - : packed ? newArrayHunk(w, h, d) : newMappedHunkSynced(w, h, d); - } - - static IrisPosition rotatedBounding(int w, int h, int d, double x, double y, double z) { - int[] bounds = HunkCoreSupport.rotatedBoundsSize(w, h, d, x, y, z); - return new IrisPosition(bounds[0], bounds[1], bounds[2]); - } - - static int max(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8) { - return HunkCoreSupport.max8(a1, a2, a3, a4, a5, a6, a7, a8); - } - - static int min(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8) { - return HunkCoreSupport.min8(a1, a2, a3, a4, a5, a6, a7, a8); - } - - static void rotate(double x, double y, double z, int[] c) { - HunkCoreSupport.rotate(x, y, z, c); - } - - static void rotateAroundX(double a, int[] c) { - HunkCoreSupport.rotateAroundX(a, c); - } - - static void rotateAroundX(double cos, double sin, int[] c) { - HunkCoreSupport.rotateAroundX(cos, sin, c); - } - - static void rotateAroundY(double a, int[] c) { - HunkCoreSupport.rotateAroundY(a, c); - } - - static void rotateAroundY(double cos, double sin, int[] c) { - HunkCoreSupport.rotateAroundY(cos, sin, c); - } - - static void rotateAroundZ(double a, int[] c) { - HunkCoreSupport.rotateAroundZ(a, c); - } - - static void rotateAroundZ(double cos, double sin, int[] c) { - HunkCoreSupport.rotateAroundZ(cos, sin, c); - } - - default boolean isMapped() { - return false; - } - - default int getEntryCount() { - return getWidth() * getHeight() * getDepth(); - } - - default Hunk listen(Consumer4 l) { - return adapt(new art.arcane.volmlib.util.hunk.view.ListeningHunk<>(unwrap(this), l)); - } - - default Hunk synchronize() { - return adapt(new art.arcane.volmlib.util.hunk.view.SynchronizedHunkView<>(unwrap(this))); - } - - default Hunk trackWrite(AtomicBoolean b) { - return adapt(new art.arcane.volmlib.util.hunk.view.WriteTrackHunk<>(unwrap(this), b)); - } - - default Hunk readOnly() { - return adapt(new art.arcane.volmlib.util.hunk.view.ReadOnlyHunk<>(unwrap(this))); - } - - default int getNonNullEntries() { - AtomicInteger count = new AtomicInteger(); - iterate((x, y, z, v) -> count.getAndAdd(1)); - - return count.get(); - } - - default boolean isAtomic() { - return false; - } - - default Hunk invertY() { - return adapt(new art.arcane.volmlib.util.hunk.view.InvertedHunkView<>(unwrap(this))); - } - - default int getMaximumDimension() { - return HunkCoreSupport.getMaximumDimension(this); - } - - default int getIdeal2DParallelism() { - return getMax2DParallelism() / 4; - } - - default int getIdeal3DParallelism() { - return getMax3DParallelism() / 8; - } - - default int getMinimumDimension() { - return HunkCoreSupport.getMinimumDimension(this); - } - - default int getMax2DParallelism() { - return HunkCoreSupport.getMax2DParallelism(this); - } - - default int getMax3DParallelism() { - return HunkCoreSupport.getMax3DParallelism(this); - } - - default int filterDimension(int dim) { - return HunkCoreSupport.filterDimension(dim, getMinimumDimension()); - } - - default int get2DDimension(int sections) { - return HunkCoreSupport.get2DDimension(sections, getMinimumDimension()); - } - - default int get3DDimension(int sections) { - return HunkCoreSupport.get3DDimension(sections, getMinimumDimension()); - } - - /** - * Iterate surfaces on 2d. Raytraces with a front and a back which stretches - * through surfaces. Essentially what is returned is the following (in - * order)
- *
- *

- * The predicate is used to determine if the given block type is solid or not. - * - *
- *
- * ================================================
- * AX, AZ: Hunk Relative X and Z - * - *
- *
- * HX, HZ: Hunk Positional X and Z (in its parent hunk) - * - *
- *
- * TOP: The top of this surface (top+1 is air above a surface) - * - *
- *
- * BOTTOM: The bottom of this surface (bottom is the lowest SOLID surface before - * either air or bedrock going down further) - * - *
- *
- * LAST_BOTTOM: The previous bottom. If your surface is the top surface, this - * will be -1 as there is no bottom-of-surface above you. However if you are not - * the top surface, this value is equal to the next solid layer above TOP, such - * that ((LAST_BOTTOM - 1) - (TOP + 1)) is how many air blocks are between your - * surface and the surface above you - * - *
- *
- * HUNK: The hunk to set data to.
- * ================================================
- *
- * If we assume your chunk coordinates are x and z, then
- *
- * bX = (x * 16)
- * bZ = (z * 16)
- *
- * (ax, az, hx, hz, top, bottom, lastBottom, hunk) {
- * actualBlockX = ax+hx;
- * actualBlockZ = az+hz;
- *
- * hunkX = ax;
- * hunkZ = az;
- *
- * hunk.set(hunkX, ?, hunkZ, noise(actualBlockX, ?, actualBlockZ));
- * }
- * - * @param p the predicate - * @param c the consumer - * @return this - */ - default Hunk iterateSurfaces2D(Predicate p, Consumer8> c) { - return iterateSurfaces2D(getIdeal2DParallelism(), p, c); - } - - /** - * Iterate surfaces on 2d. Raytraces with a front and a back which stretches - * through surfaces. Essentially what is returned is the following (in - * order)
- *
- *

- * The predicate is used to determine if the given block type is solid or not. - * - *
- *
- * ================================================
- * AX, AZ: Hunk Relative X and Z - * - *
- *
- * HX, HZ: Hunk Positional X and Z (in its parent hunk) - * - *
- *
- * TOP: The top of this surface (top+1 is air above a surface) - * - *
- *
- * BOTTOM: The bottom of this surface (bottom is the lowest SOLID surface before - * either air or bedrock going down further) - * - *
- *
- * LAST_BOTTOM: The previous bottom. If your surface is the top surface, this - * will be -1 as there is no bottom-of-surface above you. However if you are not - * the top surface, this value is equal to the next solid layer above TOP, such - * that ((LAST_BOTTOM - 1) - (TOP + 1)) is how many air blocks are between your - * surface and the surface above you - * - *
- *
- * HUNK: The hunk to set data to.
- * ================================================
- *
- * If we assume your chunk coordinates are x and z, then
- *
- * bX = (x * 16)
- * bZ = (z * 16)
- *
- * (ax, az, hx, hz, top, bottom, lastBottom, hunk) {
- * actualBlockX = ax+hx;
- * actualBlockZ = az+hz;
- *
- * hunkX = ax;
- * hunkZ = az;
- *
- * hunk.set(hunkX, ?, hunkZ, noise(actualBlockX, ?, actualBlockZ));
- * }
- * - * @param parallelism the ideal threads to use on this - * @param p the predicate - * @param c the consumer - * @return this - */ - default Hunk iterateSurfaces2D(int parallelism, Predicate p, Consumer8> c) { - iterate2DTop(parallelism, (ax, az, hox, hoz, h) -> - { - int last = -1; - int in = getHeight() - 1; - boolean hitting = false; - for (int i = getHeight() - 1; i >= 0; i--) { - boolean solid = p.test(h.get(ax, i, az)); - - if (!hitting && solid) { - in = i; - hitting = true; - } else if (hitting && !solid) { - hitting = false; - c.accept(ax, az, hox, hoz, in, i - 1, last, h); - last = i - 1; - } - } - - if (hitting) { - c.accept(ax, az, hox, hoz, in, 0, last, h); - } - }); - - return this; - } - - /** - * Iterate on the xz top of this hunk. When using this consumer, given - *

- * consumer: (ax, az, hx, hz, hunk) - *

- * hunk.set(ax, ?, az, NOISE.get(ax+hx, az+hz)); - * - * @param c the consumer hunkX, hunkZ, hunkOffsetX, hunkOffsetZ. - * @return this - */ - default Hunk iterate2DTop(Consumer5> c) { - return iterate2DTop(getIdeal2DParallelism(), c); - } - - default Hunk drift(int x, int y, int z) { - return adapt(new art.arcane.volmlib.util.hunk.view.DriftHunkView<>(unwrap(this), x, y, z)); - } - - /** - * Iterate on the xz top of this hunk. When using this consumer, given - *

- * consumer: (ax, az, hx, hz, hunk) - *

- * hunk.set(ax, ?, az, NOISE.get(ax+hx, az+hz)); - * - * @param parallelism the target parallelism value or 0 to disable - * @param c the consumer hunkX, hunkZ, hunkOffsetX, hunkOffsetZ. - * @return this - */ - default Hunk iterate2DTop(int parallelism, Consumer5> c) { - compute2D(parallelism, (x, y, z, h) -> - { - for (int i = 0; i < h.getWidth(); i++) { - for (int k = 0; k < h.getDepth(); k++) { - c.accept(i, k, x, z, h); - } - } - }); - - return this; - } - - default Hunk iterate(Predicate p, Consumer3 c) { - return iterate(getIdeal3DParallelism(), p, c); - } - - default Hunk iterate(int parallelism, Predicate p, Consumer3 c) { - iterate(parallelism, (x, y, z, t) -> - { - if (p.test(t)) { - c.accept(x, y, z); - } - }); - - return this; - } - - default Hunk iterate(Predicate p, Consumer4 c) { - return iterate(getIdeal3DParallelism(), p, c); - } - - default Hunk iterate(int parallelism, Predicate p, Consumer4 c) { - iterate(parallelism, (x, y, z, t) -> - { - if (p.test(t)) { - c.accept(x, y, z, t); - } - }); - - return this; - } - - default Hunk iterate(Consumer3 c) { - return iterate(getIdeal3DParallelism(), c); - } - - default Hunk iterateSync(Consumer3 c) { - for (int i = 0; i < getWidth(); i++) { - for (int j = 0; j < getHeight(); j++) { - for (int k = 0; k < getDepth(); k++) { - c.accept(i, j, k); - } - } - } - - return this; - } - - default Hunk iterateSync(Consumer4 c) { - for (int i = 0; i < getWidth(); i++) { - for (int j = 0; j < getHeight(); j++) { - for (int k = 0; k < getDepth(); k++) { - c.accept(i, j, k, get(i, j, k)); - } - } - } - - return this; - } - - default Hunk updateSync(Function4 c) { - for (int i = 0; i < getWidth(); i++) { - for (int j = 0; j < getHeight(); j++) { - for (int k = 0; k < getDepth(); k++) { - set(i, j, k, c.apply(i, j, k, get(i, j, k))); - } - } - } - - return this; - } - - default Hunk iterateSyncIO(Consumer4IO c) throws IOException { - for (int i = 0; i < getWidth(); i++) { - for (int j = 0; j < getHeight(); j++) { - for (int k = 0; k < getDepth(); k++) { - c.accept(i, j, k, get(i, j, k)); - } - } - } - - return this; - } - - default Hunk iterate(int parallelism, Consumer3 c) { - compute3D(parallelism, (x, y, z, h) -> - { - for (int i = 0; i < h.getWidth(); i++) { - for (int j = 0; j < h.getHeight(); j++) { - for (int k = 0; k < h.getDepth(); k++) { - c.accept(i + x, j + y, k + z); - } - } - } - }); - - return this; - } - - default Hunk iterate(Consumer4 c) { - return iterate(getIdeal3DParallelism(), c); - } - - default Hunk iterate(int parallelism, Consumer4 c) { - compute3D(parallelism, (x, y, z, h) -> - { - for (int i = 0; i < h.getWidth(); i++) { - for (int j = 0; j < h.getHeight(); j++) { - for (int k = 0; k < h.getDepth(); k++) { - c.accept(i + x, j + y, k + z, h.get(i, j, k)); - } - } - } - }); - - return this; - } - - default Hunk compute2D(Consumer4> v) { - return compute2D(getIdeal2DParallelism(), v); - } - - default Hunk compute2D(int parallelism, Consumer4> v) { - if (get2DDimension(parallelism) == 1) { - v.accept(0, 0, 0, this); - return this; - } - - if (isAtomic()) { - HunkComputeSupport.computeAtomic( - parallelism, - p -> MultiBurst.burst.burst(p), - sections -> getSectionsAtomic2D(parallelism, sections), - v); - } else { - HunkComputeSupport.computeMerged( - parallelism, - p -> MultiBurst.burst.burst(p), - sections -> getSections2D(parallelism, sections, this::insert), - v); - } - - return this; - } - - default Hunk compute2DYRange(int parallelism, int ymin, int ymax, Consumer4> v) { - if (get2DDimension(parallelism) == 1) { - v.accept(0, 0, 0, this); - return this; - } - - HunkComputeSupport.computeMerged( - parallelism, - p -> MultiBurst.burst.burst(p), - sections -> getSections2DYLimit(parallelism, ymin, ymax, sections, this::insert), - v); - return this; - } - - default Hunk compute3D(Consumer4> v) { - return compute3D(getIdeal3DParallelism(), v); - } - - default Hunk compute3D(int parallelism, Consumer4> v) { - if (get3DDimension(parallelism) == 1) { - v.accept(0, 0, 0, this); - return this; - } - - HunkComputeSupport.computeMerged( - parallelism, - p -> MultiBurst.burst.burst(p), - sections -> getSections3D(parallelism, sections, this::insert), - v); - return this; - } - - default Hunk getSections2D(int sections, Consumer5, Runnable> v) { - return getSections2D(sections, v, this::insert); - } - - default Hunk getSectionsAtomic2D(int sections, Consumer4> v) { - HunkSectionSupport.forEachAtomic2DSectionBounds(this, sections, (x, y, z, x1, y1, z1) -> - getAtomicSection(x, y, z, x1, y1, z1, (h) -> v.accept(x, y, z, h))); - return this; - } - - default Hunk getSections2D(int sections, Consumer5, Runnable> v, Consumer4> inserter) { - HunkSectionSupport.forEach2DSectionBounds(this, sections, (x, y, z, x1, y1, z1) -> - getSection(x, y, z, x1, y1, z1, (h, r) -> v.accept(x, y, z, h, r), inserter)); - return this; - } - - default Hunk getSections2DYLimit(int sections, int ymin, int ymax, Consumer5, Runnable> v, Consumer4> inserter) { - HunkSectionSupport.forEach2DYRangeSectionBounds(this, sections, ymin, ymax, (x, y, z, x1, y1, z1) -> - getSection(x, y, z, x1, y1, z1, (h, r) -> v.accept(x, y, z, h, r), inserter)); - return this; - } - - default Hunk getSections3D(int sections, Consumer5, Runnable> v) { - return getSections3D(sections, v, (xx, yy, zz, c) -> insert(xx, yy, zz, c)); - } - - default Hunk getSections3D(int sections, Consumer5, Runnable> v, Consumer4> inserter) { - HunkSectionSupport.forEach3DSectionBounds(this, sections, (x, y, z, x1, y1, z1) -> - getSection(x, y, z, x1, y1, z1, (h, r) -> v.accept(x, y, z, h, r), inserter)); - return this; - } - - default Hunk getSection(int x, int y, int z, int x1, int y1, int z1, Consumer2, Runnable> v) { - return getSection(x, y, z, x1, y1, z1, v, (xx, yy, zz, c) -> insert(xx, yy, zz, c)); - } - - default Hunk getSection(int x, int y, int z, int x1, int y1, int z1, Consumer2, Runnable> v, Consumer4> inserter) { - Hunk copy = crop(x, y, z, x1, y1, z1); - v.accept(copy, () -> inserter.accept(x, y, z, copy)); - return this; - } - - default Hunk getAtomicSection(int x, int y, int z, int x1, int y1, int z1, Consumer> v) { - Hunk copy = croppedView(x, y, z, x1, y1, z1); - v.accept(copy); - return this; - } - - /** - * Create a new hunk from a section of this hunk. - * - * @param x1 The min x (inclusive) - * @param y1 The min y (inclusive) - * @param z1 The min z (inclusive) - * @param x2 The max x (exclusive) - * @param y2 The max y (exclusive) - * @param z2 The max z (exclusive) - * @return the new hunk (x2-x1, y2-y1, z2-z1) - */ - default ArrayHunk crop(int x1, int y1, int z1, int x2, int y2, int z2) { - ArrayHunk h = new ArrayHunk(x2 - x1, y2 - y1, z2 - z1); - - for (int i = x1; i < x2; i++) { - for (int j = y1; j < y2; j++) { - for (int k = z1; k < z2; k++) { - h.setRaw(i - x1, j - y1, k - z1, getRaw(i, j, k)); - } - } - } - - return h; - } - - /** - * Create a new view of this same hunk from a section of this hunk. - * Modifications are routed to this hunk! - * - * @param x1 The min x (inclusive) - * @param y1 The min y (inclusive) - * @param z1 The min z (inclusive) - * @param x2 The max x (exclusive) - * @param y2 The max y (exclusive) - * @param z2 The max z (exclusive) - * @return the cropped view of this hunk (x2-x1, y2-y1, z2-z1) - */ - default Hunk croppedView(int x1, int y1, int z1, int x2, int y2, int z2) { - return adapt(new art.arcane.volmlib.util.hunk.view.HunkView<>(unwrap(this), x2 - x1, y2 - y1, z2 - z1, x1, y1, z1)); - } - - /** - * @return The X length - */ - int getWidth(); - - /** - * @return The Z length - */ - int getDepth(); - - /** - * @return The Y length - */ - int getHeight(); - - /** - * Set a region - * - * @param x1 inclusive 1st x - * @param y1 inclusive 1st y - * @param z1 inclusive 1st z - * @param x2 inclusive 2nd x - * @param y2 inclusive 2nd y - * @param z2 inclusive 2nd z - * @param t the value to set - */ - default void set(int x1, int y1, int z1, int x2, int y2, int z2, T t) { - HunkMutationSupport.setRangeInclusive(this, x1, y1, z1, x2, y2, z2, t); - } - - /** - * Get the value to the closest valid position - * - * @param x the x - * @param y the y - * @param z the z - * @return the value closest to the border of the hunk - */ - default T getClosest(int x, int y, int z) { - return HunkMutationSupport.getClosest(this, x, y, z); - } - - default BlockPosition getCenter() { - return new BlockPosition(getCenterX(), getCenterY(), getCenterZ()); - } - - default int getCenterX() { - return (int) Math.floor(getWidth() / 2); - } - - default int getCenterY() { - return (int) Math.floor(getHeight() / 2); - } - - default int getCenterZ() { - return (int) Math.floor(getDepth() / 2); - } - - default void fill(T t) { - HunkMutationSupport.fill(this, t); - } - - /** - * Get a 1 node thick hunk representing the face of this hunk - * - * @param f the face - * @return the hunk view of this hunk - */ - default Hunk viewFace(HunkFace f) { - switch (f) { - case BOTTOM: - return croppedView(0, 0, 0, getWidth() - 1, 0, getDepth() - 1); - case EAST: - return croppedView(getWidth() - 1, 0, 0, getWidth() - 1, getHeight() - 1, getDepth() - 1); - case NORTH: - return croppedView(0, 0, 0, getWidth() - 1, getHeight() - 1, 0); - case SOUTH: - return croppedView(0, 0, 0, 0, getHeight() - 1, getDepth() - 1); - case TOP: - return croppedView(0, getHeight() - 1, 0, getWidth() - 1, getHeight() - 1, getDepth() - 1); - case WEST: - return croppedView(0, 0, getDepth() - 1, getWidth() - 1, getHeight() - 1, getDepth() - 1); - default: - break; - } - - return null; - } - - /** - * Crop (copy) a 1 node thick hunk representing the face of this hunk - * - * @param f the face - * @return the hunk copy (face) of this hunk - */ - default Hunk cropFace(HunkFace f) { - switch (f) { - case BOTTOM: - return crop(0, 0, 0, getWidth() - 1, 0, getDepth() - 1); - case EAST: - return crop(getWidth() - 1, 0, 0, getWidth() - 1, getHeight() - 1, getDepth() - 1); - case NORTH: - return crop(0, 0, 0, getWidth() - 1, getHeight() - 1, 0); - case SOUTH: - return crop(0, 0, 0, 0, getHeight() - 1, getDepth() - 1); - case TOP: - return crop(0, getHeight() - 1, 0, getWidth() - 1, getHeight() - 1, getDepth() - 1); - case WEST: - return crop(0, 0, getDepth() - 1, getWidth() - 1, getHeight() - 1, getDepth() - 1); - default: - break; - } - - return null; - } - - /** - * Set a value at the given position - * - * @param x the x - * @param y the y - * @param z the z - * @param t the value - */ - default void set(int x, int y, int z, T t) { - if (!contains(x, y, z)) { - // The clamp on the default write path: callers write past the edge of a hunk by design and - // rely on the write being dropped, so this is a trace of a normal event, not a problem. - IrisLogging.debug("OUT OF BOUNDS " + x + " " + y + " " + z + " in bounds " + getWidth() + " " + getHeight() + " " + getDepth()); - return; - } - - setRaw(x, y, z, t); - } - - default void setIfExists(int x, int y, int z, T t) { - HunkMutationSupport.setIfExists(this, x, y, z, t); - } - - default T getIfExists(int x, int y, int z, T t) { - return HunkMutationSupport.getIfExists(this, x, y, z, t); - } - - default T getIfExists(int x, int y, int z) { - return getIfExists(x, y, z, null); - } - - /** - * Set a value at the given position without checking coordinate bounds - * - * @param x the x - * @param y the y - * @param z the z - * @param t the value - */ - void setRaw(int x, int y, int z, T t); - - /** - * Get a value at the given position without checking coordinate bounds - * - * @param x the x - * @param y the y - * @param z the z - * @return the value or null - */ - T getRaw(int x, int y, int z); - - /** - * Get a value at the given position - * - * @param x the x - * @param y the y - * @param z the z - * @return the value or null - */ - default T get(int x, int y, int z) { - return getRaw(x, y, z); - } - - default T getOr(int x, int y, int z, T t) { - return HunkMutationSupport.getOr(this, x, y, z, t); - } - - /** - * Insert a hunk into this one with an offset the inserted hunk - * - * @param offX the offset from zero for x - * @param offY the offset from zero for y - * @param offZ the offset from zero for z - * @param hunk the hunk to insert - */ - default void insert(int offX, int offY, int offZ, Hunk hunk) { - insert(offX, offY, offZ, hunk, false); - } - - default void insertSoftly(int offX, int offY, int offZ, Hunk hunk, Predicate shouldOverwrite) { - insertSoftly(offX, offY, offZ, hunk, false, shouldOverwrite); - } - - /** - * Insert a hunk into this one - * - * @param hunk the hunk to insert - */ - default void insert(Hunk hunk) { - insert(0, 0, 0, hunk, false); - } - - /** - * Returns the source of this hunk view. This could return another hunk view, - * not an actual source, however it does return it's underlying data source. If - * this hunk is a data source and not a view, it will return null. - * - * @return the source or null if this is already the source - */ - default Hunk getSource() { - return null; - } - - /** - * Insert a hunk into this one - * - * @param hunk the hunk to insert - * @param inverted invert the inserted hunk or not - */ - default void insert(Hunk hunk, boolean inverted) { - insert(0, 0, 0, hunk, inverted); - } - - /** - * Insert a hunk into this one with an offset and possibly inverting the y of - * the inserted hunk - * - * @param offX the offset from zero for x - * @param offY the offset from zero for y - * @param offZ the offset from zero for z - * @param hunk the hunk to insert - * @param invertY should the inserted hunk be inverted - */ - default void insert(int offX, int offY, int offZ, Hunk hunk, boolean invertY) { - HunkMutationSupport.insert(this, offX, offY, offZ, hunk); - } - - /** - * Insert a hunk into this one with an offset and possibly inverting the y of. Will never insert a node if its - * already used - * the inserted hunk - * - * @param offX the offset from zero for x - * @param offY the offset from zero for y - * @param offZ the offset from zero for z - * @param hunk the hunk to insert - * @param invertY should the inserted hunk be inverted - */ - default void insertSoftly(int offX, int offY, int offZ, Hunk hunk, boolean invertY, Predicate shouldOverwrite) { - HunkMutationSupport.insertSoftly(this, offX, offY, offZ, hunk, shouldOverwrite); - } - - /** - * Acts like fill, however if used by a mapped hunk, will simply clear it - * - * @param b the data to use for fill - */ - default void empty(T b) { - fill(b); - } - - /** - * Take a hunk and scale it up using interpolation - * - * @param scale the scale - * @param d the interpolation method - * @param interpolated the interpolated value converter - * @return the new hunk - */ - default Hunk interpolate3D(double scale, InterpolationMethod3D d, Interpolated interpolated) { - return HunkInterpolationSupport.interpolate3D( - this, - scale, - Hunk::newArrayHunk, - interpolated::toDouble, - interpolated::fromDouble, - (x, y, z, s, noise) -> Interpolation3D.getNoise3D(d, x, y, z, s, noise)); - } - - /** - * Take a hunk and scale it up using interpolation - * 2D, (using only x and z) assumes the height is 1 - * - * @param scale the scale - * @param d the interpolation method - * @param interpolated the interpolated value converter - * @return the new hunk - */ - default Hunk interpolate2D(double scale, InterpolationMethod d, Interpolated interpolated) { - return HunkInterpolationSupport.interpolate2D( - this, - scale, - Hunk::newArrayHunk, - interpolated::toDouble, - interpolated::fromDouble, - (x, z, s, noise) -> IrisInterpolation.getNoise(d, x, z, s, noise)); - } - - default Hunk rotate(double x, double y, double z, Supplier3R> builder) { - return HunkCoreSupport.rotate(this, x, y, z, builder::get); - } - - default boolean isEmpty() { - return false; - } - - default boolean contains(int x, int y, int z) { - return HunkCoreSupport.contains(this, x, y, z); - } - - default int volume() { - return HunkCoreSupport.volume(this); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/hunk/SharedHunkAdapter.java b/core/src/main/java/art/arcane/iris/util/project/hunk/SharedHunkAdapter.java deleted file mode 100644 index 2239243c5..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/hunk/SharedHunkAdapter.java +++ /dev/null @@ -1,63 +0,0 @@ -package art.arcane.iris.util.project.hunk; - -import art.arcane.volmlib.util.hunk.HunkLike; -final class SharedHunkAdapter implements Hunk { - private final HunkLike delegate; - - SharedHunkAdapter(HunkLike delegate) { - this.delegate = delegate; - } - - HunkLike delegate() { - return delegate; - } - - @Override - public int getWidth() { - return delegate.getWidth(); - } - - @Override - public int getDepth() { - return delegate.getDepth(); - } - - @Override - public int getHeight() { - return delegate.getHeight(); - } - - @Override - public void setRaw(int x, int y, int z, T t) { - delegate.setRaw(x, y, z, t); - } - - @Override - public T getRaw(int x, int y, int z) { - return delegate.getRaw(x, y, z); - } - - @Override - public boolean isMapped() { - return delegate instanceof art.arcane.volmlib.util.hunk.storage.MappedHunk - || delegate instanceof art.arcane.volmlib.util.hunk.storage.MappedSyncHunk; - } - - @Override - public int getEntryCount() { - if (delegate instanceof art.arcane.volmlib.util.hunk.storage.MappedHunk mapped) { - return mapped.getEntryCount(); - } - - if (delegate instanceof art.arcane.volmlib.util.hunk.storage.MappedSyncHunk mapped) { - return mapped.getEntryCount(); - } - - return Hunk.super.getEntryCount(); - } - - @Override - public boolean isAtomic() { - return delegate instanceof art.arcane.volmlib.util.hunk.storage.AtomicHunk; - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/hunk/storage/ArrayHunk.java b/core/src/main/java/art/arcane/iris/util/project/hunk/storage/ArrayHunk.java deleted file mode 100644 index 132f4ce12..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/hunk/storage/ArrayHunk.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.hunk.storage; - -import art.arcane.iris.util.project.hunk.Hunk; - -public class ArrayHunk extends art.arcane.volmlib.util.hunk.storage.ArrayHunk implements Hunk { - public ArrayHunk(int w, int h, int d) { - super(w, h, d); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/hunk/storage/AtomicDoubleHunk.java b/core/src/main/java/art/arcane/iris/util/project/hunk/storage/AtomicDoubleHunk.java deleted file mode 100644 index ebca42bcf..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/hunk/storage/AtomicDoubleHunk.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.hunk.storage; - -import art.arcane.iris.util.project.hunk.Hunk; - -public class AtomicDoubleHunk extends art.arcane.volmlib.util.hunk.storage.AtomicDoubleHunk implements Hunk { - public AtomicDoubleHunk(int w, int h, int d) { - super(w, h, d); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/hunk/storage/AtomicHunk.java b/core/src/main/java/art/arcane/iris/util/project/hunk/storage/AtomicHunk.java deleted file mode 100644 index 56c6850ec..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/hunk/storage/AtomicHunk.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.hunk.storage; - -import art.arcane.iris.util.project.hunk.Hunk; - -public class AtomicHunk extends art.arcane.volmlib.util.hunk.storage.AtomicHunk implements Hunk { - public AtomicHunk(int w, int h, int d) { - super(w, h, d); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/hunk/storage/AtomicIntegerHunk.java b/core/src/main/java/art/arcane/iris/util/project/hunk/storage/AtomicIntegerHunk.java deleted file mode 100644 index c2f1883ea..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/hunk/storage/AtomicIntegerHunk.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.hunk.storage; - -import art.arcane.iris.util.project.hunk.Hunk; - -public class AtomicIntegerHunk extends art.arcane.volmlib.util.hunk.storage.AtomicIntegerHunk implements Hunk { - public AtomicIntegerHunk(int w, int h, int d) { - super(w, h, d); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/hunk/storage/AtomicLongHunk.java b/core/src/main/java/art/arcane/iris/util/project/hunk/storage/AtomicLongHunk.java deleted file mode 100644 index 913f36f32..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/hunk/storage/AtomicLongHunk.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.hunk.storage; - -import art.arcane.iris.util.project.hunk.Hunk; - -public class AtomicLongHunk extends art.arcane.volmlib.util.hunk.storage.AtomicLongHunk implements Hunk { - public AtomicLongHunk(int w, int h, int d) { - super(w, h, d); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/hunk/storage/StorageHunk.java b/core/src/main/java/art/arcane/iris/util/project/hunk/storage/StorageHunk.java deleted file mode 100644 index 74fb6a616..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/hunk/storage/StorageHunk.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.hunk.storage; - -import art.arcane.iris.util.project.hunk.Hunk; - -public abstract class StorageHunk extends art.arcane.volmlib.util.hunk.storage.StorageHunk implements Hunk { - public StorageHunk(int width, int height, int depth) { - super(width, height, depth); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/hunk/storage/SynchronizedArrayHunk.java b/core/src/main/java/art/arcane/iris/util/project/hunk/storage/SynchronizedArrayHunk.java deleted file mode 100644 index 6f6f08893..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/hunk/storage/SynchronizedArrayHunk.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.hunk.storage; - -import art.arcane.iris.util.project.hunk.Hunk; - -public class SynchronizedArrayHunk extends art.arcane.volmlib.util.hunk.storage.SynchronizedArrayHunk implements Hunk { - public SynchronizedArrayHunk(int w, int h, int d) { - super(w, h, d); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/interpolation/Interpolation3D.java b/core/src/main/java/art/arcane/iris/util/project/interpolation/Interpolation3D.java deleted file mode 100644 index 583be20bf..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/interpolation/Interpolation3D.java +++ /dev/null @@ -1,322 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.interpolation; - -import art.arcane.iris.util.project.hunk.Hunk; -import art.arcane.volmlib.util.function.NoiseProvider3; -import art.arcane.volmlib.util.interpolation.Starcast; - -/** - * Volumetric field samplers. The scalar kernels these compose (trilerp, tricubic, trihermite) live - * in {@link IrisInterpolation}; this class only owns the 3D sampling grids and the - * {@link InterpolationMethod3D} dispatch. - */ -public final class Interpolation3D { - private Interpolation3D() { - } - - public static double getStarcast3D(int x, int y, int z, double rad, double checks, NoiseProvider3 n) { - return (Starcast.starcast(x, z, rad, checks, (xx, zz) -> n.noise(xx, y, zz)) - + Starcast.starcast(x, y, rad, checks, (xx, yy) -> n.noise(xx, yy, z)) - + Starcast.starcast(y, z, rad, checks, (yy, zz) -> n.noise(x, yy, zz))) / 3D; - } - - public static double getTrilinear(int x, int y, int z, double rad, NoiseProvider3 n) { - return getTrilinear(x, y, z, rad, rad, rad, n); - } - - public static double getTrilinear(int x, int y, int z, double radx, double rady, double radz, NoiseProvider3 n) { - int fx = IrisInterpolation.getRadiusFactor(x, radx); - int fy = IrisInterpolation.getRadiusFactor(y, rady); - int fz = IrisInterpolation.getRadiusFactor(z, radz); - int x1 = (int) Math.round(fx * radx); - int y1 = (int) Math.round(fy * rady); - int z1 = (int) Math.round(fz * radz); - int x2 = (int) Math.round((fx + 1) * radx); - int y2 = (int) Math.round((fy + 1) * rady); - int z2 = (int) Math.round((fz + 1) * radz); - double px = IrisInterpolation.rangeScale(0, 1, x1, x2, x); - double py = IrisInterpolation.rangeScale(0, 1, y1, y2, y); - double pz = IrisInterpolation.rangeScale(0, 1, z1, z2, z); - //@builder - return IrisInterpolation.trilerp( - n.noise(x1, y1, z1), - n.noise(x2, y1, z1), - n.noise(x1, y2, z1), - n.noise(x2, y2, z1), - n.noise(x1, y1, z2), - n.noise(x2, y1, z2), - n.noise(x1, y2, z2), - n.noise(x2, y2, z2), - px, py, pz); - //@done - } - - public static double getTricubic(int x, int y, int z, double rad, NoiseProvider3 n) { - return getTricubic(x, y, z, rad, rad, rad, n); - } - - public static double getTricubic(int x, int y, int z, double radx, double rady, double radz, NoiseProvider3 n) { - int fx = IrisInterpolation.getRadiusFactor(x, radx); - int fy = IrisInterpolation.getRadiusFactor(y, rady); - int fz = IrisInterpolation.getRadiusFactor(z, radz); - int x0 = (int) Math.round((fx - 1) * radx); - int y0 = (int) Math.round((fy - 1) * rady); - int z0 = (int) Math.round((fz - 1) * radz); - int x1 = (int) Math.round(fx * radx); - int y1 = (int) Math.round(fy * rady); - int z1 = (int) Math.round(fz * radz); - int x2 = (int) Math.round((fx + 1) * radx); - int y2 = (int) Math.round((fy + 1) * rady); - int z2 = (int) Math.round((fz + 1) * radz); - int x3 = (int) Math.round((fx + 2) * radx); - int y3 = (int) Math.round((fy + 2) * rady); - int z3 = (int) Math.round((fz + 2) * radz); - double px = IrisInterpolation.rangeScale(0, 1, x1, x2, x); - double py = IrisInterpolation.rangeScale(0, 1, y1, y2, y); - double pz = IrisInterpolation.rangeScale(0, 1, z1, z2, z); - //@builder - //!!!!!!!!!!!!!!!!!! 2 1 3 - - return IrisInterpolation.tricubic( - n.noise(x0, y0, z0), - n.noise(x0, y1, z0), - n.noise(x0, y2, z0), - n.noise(x0, y3, z0), - n.noise(x1, y0, z0), - n.noise(x1, y1, z0), - n.noise(x1, y2, z0), - n.noise(x1, y3, z0), - n.noise(x2, y0, z0), - n.noise(x2, y1, z0), - n.noise(x2, y2, z0), - n.noise(x2, y3, z0), - n.noise(x3, y0, z0), - n.noise(x3, y1, z0), - n.noise(x3, y2, z0), - n.noise(x3, y3, z0), - n.noise(x0, y0, z1), - n.noise(x0, y1, z1), - n.noise(x0, y2, z1), - n.noise(x0, y3, z1), - n.noise(x1, y0, z1), - n.noise(x1, y1, z1), - n.noise(x1, y2, z1), - n.noise(x1, y3, z1), - n.noise(x2, y0, z1), - n.noise(x2, y1, z1), - n.noise(x2, y2, z1), - n.noise(x2, y3, z1), - n.noise(x3, y0, z1), - n.noise(x3, y1, z1), - n.noise(x3, y2, z1), - n.noise(x3, y3, z1), - n.noise(x0, y0, z2), - n.noise(x0, y1, z2), - n.noise(x0, y2, z2), - n.noise(x0, y3, z2), - n.noise(x1, y0, z2), - n.noise(x1, y1, z2), - n.noise(x1, y2, z2), - n.noise(x1, y3, z2), - n.noise(x2, y0, z2), - n.noise(x2, y1, z2), - n.noise(x2, y2, z2), - n.noise(x2, y3, z2), - n.noise(x3, y0, z2), - n.noise(x3, y1, z2), - n.noise(x3, y2, z2), - n.noise(x3, y3, z2), - n.noise(x0, y0, z3), - n.noise(x0, y1, z3), - n.noise(x0, y2, z3), - n.noise(x0, y3, z3), - n.noise(x1, y0, z3), - n.noise(x1, y1, z3), - n.noise(x1, y2, z3), - n.noise(x1, y3, z3), - n.noise(x2, y0, z3), - n.noise(x2, y1, z3), - n.noise(x2, y2, z3), - n.noise(x2, y3, z3), - n.noise(x3, y0, z3), - n.noise(x3, y1, z3), - n.noise(x3, y2, z3), - n.noise(x3, y3, z3), - px, py, pz); - //@done - } - - public static double getTrihermite(int x, int y, int z, double rad, NoiseProvider3 n, double tension, double bias) { - return getTrihermite(x, y, z, rad, rad, rad, n, tension, bias); - } - - public static double getTrihermite(int x, int y, int z, double radx, double rady, double radz, NoiseProvider3 n) { - return getTrihermite(x, y, z, radx, rady, radz, n, 0D, 0D); - } - - public static double getTrihermite(int x, int y, int z, double radx, double rady, double radz, NoiseProvider3 n, double tension, double bias) { - int fx = IrisInterpolation.getRadiusFactor(x, radx); - int fy = IrisInterpolation.getRadiusFactor(y, rady); - int fz = IrisInterpolation.getRadiusFactor(z, radz); - int x0 = (int) Math.round((fx - 1) * radx); - int y0 = (int) Math.round((fy - 1) * rady); - int z0 = (int) Math.round((fz - 1) * radz); - int x1 = (int) Math.round(fx * radx); - int y1 = (int) Math.round(fy * rady); - int z1 = (int) Math.round(fz * radz); - int x2 = (int) Math.round((fx + 1) * radx); - int y2 = (int) Math.round((fy + 1) * rady); - int z2 = (int) Math.round((fz + 1) * radz); - int x3 = (int) Math.round((fx + 2) * radx); - int y3 = (int) Math.round((fy + 2) * rady); - int z3 = (int) Math.round((fz + 2) * radz); - double px = IrisInterpolation.rangeScale(0, 1, x1, x2, x); - double py = IrisInterpolation.rangeScale(0, 1, y1, y2, y); - double pz = IrisInterpolation.rangeScale(0, 1, z1, z2, z); - //@builder - //!!!!!!!!!!!!!!!!!! 2 1 3 - - return IrisInterpolation.trihermite( - n.noise(x0, y0, z0), - n.noise(x0, y1, z0), - n.noise(x0, y2, z0), - n.noise(x0, y3, z0), - n.noise(x1, y0, z0), - n.noise(x1, y1, z0), - n.noise(x1, y2, z0), - n.noise(x1, y3, z0), - n.noise(x2, y0, z0), - n.noise(x2, y1, z0), - n.noise(x2, y2, z0), - n.noise(x2, y3, z0), - n.noise(x3, y0, z0), - n.noise(x3, y1, z0), - n.noise(x3, y2, z0), - n.noise(x3, y3, z0), - n.noise(x0, y0, z1), - n.noise(x0, y1, z1), - n.noise(x0, y2, z1), - n.noise(x0, y3, z1), - n.noise(x1, y0, z1), - n.noise(x1, y1, z1), - n.noise(x1, y2, z1), - n.noise(x1, y3, z1), - n.noise(x2, y0, z1), - n.noise(x2, y1, z1), - n.noise(x2, y2, z1), - n.noise(x2, y3, z1), - n.noise(x3, y0, z1), - n.noise(x3, y1, z1), - n.noise(x3, y2, z1), - n.noise(x3, y3, z1), - n.noise(x0, y0, z2), - n.noise(x0, y1, z2), - n.noise(x0, y2, z2), - n.noise(x0, y3, z2), - n.noise(x1, y0, z2), - n.noise(x1, y1, z2), - n.noise(x1, y2, z2), - n.noise(x1, y3, z2), - n.noise(x2, y0, z2), - n.noise(x2, y1, z2), - n.noise(x2, y2, z2), - n.noise(x2, y3, z2), - n.noise(x3, y0, z2), - n.noise(x3, y1, z2), - n.noise(x3, y2, z2), - n.noise(x3, y3, z2), - n.noise(x0, y0, z3), - n.noise(x0, y1, z3), - n.noise(x0, y2, z3), - n.noise(x0, y3, z3), - n.noise(x1, y0, z3), - n.noise(x1, y1, z3), - n.noise(x1, y2, z3), - n.noise(x1, y3, z3), - n.noise(x2, y0, z3), - n.noise(x2, y1, z3), - n.noise(x2, y2, z3), - n.noise(x2, y3, z3), - n.noise(x3, y0, z3), - n.noise(x3, y1, z3), - n.noise(x3, y2, z3), - n.noise(x3, y3, z3), - px, py, pz, tension, bias); - //@done - } - - public static double getNoise3D(InterpolationMethod3D method, int x, int y, int z, double radx, double rady, double radz, NoiseProvider3 n) { - return switch (method) { - case TRILINEAR -> getTrilinear(x, y, z, radx, rady, radz, n); - case TRICUBIC -> getTricubic(x, y, z, radx, rady, radz, n); - case TRIHERMITE -> getTrihermite(x, y, z, radx, rady, radz, n); - case TRISTARCAST_3 -> getStarcast3D(x, y, z, radx, 3D, n); - case TRISTARCAST_6 -> getStarcast3D(x, y, z, radx, 6D, n); - case TRISTARCAST_9 -> getStarcast3D(x, y, z, radx, 9D, n); - case TRISTARCAST_12 -> getStarcast3D(x, y, z, radx, 12D, n); - case TRILINEAR_TRISTARCAST_3 -> - getStarcast3D(x, y, z, radx, 3D, (xx, yy, zz) -> getTrilinear((int) xx, (int) yy, (int) zz, radx, rady, radz, n)); - case TRILINEAR_TRISTARCAST_6 -> - getStarcast3D(x, y, z, radx, 6D, (xx, yy, zz) -> getTrilinear((int) xx, (int) yy, (int) zz, radx, rady, radz, n)); - case TRILINEAR_TRISTARCAST_9 -> - getStarcast3D(x, y, z, radx, 9D, (xx, yy, zz) -> getTrilinear((int) xx, (int) yy, (int) zz, radx, rady, radz, n)); - case TRILINEAR_TRISTARCAST_12 -> - getStarcast3D(x, y, z, radx, 12D, (xx, yy, zz) -> getTrilinear((int) xx, (int) yy, (int) zz, radx, rady, radz, n)); - case NONE -> n.noise(x, y, z); - }; - } - - public static Hunk getNoise3D(InterpolationMethod3D method, int xo, int yo, int zo, int w, int h, int d, double rad, NoiseProvider3 n) { - return getNoise3D(method, xo, yo, zo, w, h, d, rad, rad, rad, n); - } - - /** - * Get the interpolated 3D noise within a given cuboid size with offsets - * - * @param method the interpolation method to use - * @param xo the x offset for noise - * @param yo the y offset for noise - * @param zo the z offset for noise - * @param w the width of the result - * @param h the height of the result - * @param d the depth of the result - * @param radX the interpolation radius for the x axis - * @param radY the interpolation radius for the y axis - * @param radZ the interpolation radius for the z axis - * @param n the noise provider - * @return the resulting hunk of noise - */ - public static Hunk getNoise3D(InterpolationMethod3D method, int xo, int yo, int zo, int w, int h, int d, double radX, double radY, double radZ, NoiseProvider3 n) { - Hunk hunk = Hunk.newAtomicDoubleHunk(w, h, d); - for (int i = 0; i < w; i++) { - for (int j = 0; j < h; j++) { - for (int k = 0; k < d; k++) { - hunk.set(i, j, k, getNoise3D(method, i + xo, j + yo, k + zo, radX, radY, radZ, n)); - } - } - } - - return hunk; - } - - public static double getNoise3D(InterpolationMethod3D method, int x, int y, int z, double rad, NoiseProvider3 n) { - return getNoise3D(method, x, y, z, rad, rad, rad, n); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/interpolation/InterpolationMethod.java b/core/src/main/java/art/arcane/iris/util/project/interpolation/InterpolationMethod.java deleted file mode 100644 index 167449f64..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/interpolation/InterpolationMethod.java +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.interpolation; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("An interpolation method (or function) is simply a method of smoothing a position based on surrounding points on a grid. Bicubic for example is smoother, but has 4 times the checks than Bilinear for example. Try using BILINEAR_STARCAST_9 for beautiful results.") -public enum InterpolationMethod { - @Desc("No interpolation. Nearest Neighbor (bad for terrain, great for performance).") - - NONE, - - @Desc("Uses 4 nearby points in a square to calculate a 2d slope. Very fast but creates square artifacts. See: https://en.wikipedia.org/wiki/Bilinear_interpolation") - - BILINEAR, - - @Desc("Starcast is Iris's own creation. It uses raytrace checks to find a horizontal boundary nearby. 3 Checks in a circle. Typically starcast is used with another interpolation method. See BILINEAR_STARCAST_9 For example. Starcast is meant to 'break up' large, abrupt cliffs to make cheap interpolation smoother.") - - STARCAST_3, - - @Desc("Starcast is Iris's own creation. It uses raytrace checks to find a horizontal boundary nearby. 6 Checks in a circle. Typically starcast is used with another interpolation method. See BILINEAR_STARCAST_9 For example. Starcast is meant to 'break up' large, abrupt cliffs to make cheap interpolation smoother.") - - STARCAST_6, - - @Desc("Starcast is Iris's own creation. It uses raytrace checks to find a horizontal boundary nearby. 9 Checks in a circle. Typically starcast is used with another interpolation method. See BILINEAR_STARCAST_9 For example. Starcast is meant to 'break up' large, abrupt cliffs to make cheap interpolation smoother.") - - STARCAST_9, - - @Desc("Starcast is Iris's own creation. It uses raytrace checks to find a horizontal boundary nearby. 12 Checks in a circle. Typically starcast is used with another interpolation method. See BILINEAR_STARCAST_9 For example. Starcast is meant to 'break up' large, abrupt cliffs to make cheap interpolation smoother.") - - STARCAST_12, - - @Desc("Uses starcast to break up the abrupt sharp cliffs, then smooths the rest out with bilinear.") - - BILINEAR_STARCAST_3, - - @Desc("Uses starcast to break up the abrupt sharp cliffs, then smooths the rest out with bilinear.") - - BILINEAR_STARCAST_6, - - @Desc("Uses starcast to break up the abrupt sharp cliffs, then smooths the rest out with bilinear.") - - BILINEAR_STARCAST_9, - - @Desc("Uses starcast to break up the abrupt sharp cliffs, then smooths the rest out with bilinear.") - - BILINEAR_STARCAST_12, - - @Desc("Uses starcast to break up the abrupt sharp cliffs, then smooths the rest out with hermite.") - - HERMITE_STARCAST_3, - - @Desc("Uses starcast to break up the abrupt sharp cliffs, then smooths the rest out with hermite.") - - HERMITE_STARCAST_6, - - @Desc("Uses starcast to break up the abrupt sharp cliffs, then smooths the rest out with hermite.") - - HERMITE_STARCAST_9, - - @Desc("Uses starcast to break up the abrupt sharp cliffs, then smooths the rest out with hermite.") - - HERMITE_STARCAST_12, - - @Desc("Uses bilinear but on a bezier curve. See: https://en.wikipedia.org/wiki/Bezier_curve") - - BILINEAR_BEZIER, - - @Desc("Uses Bilinear but with parametric curves alpha 2.") - - BILINEAR_PARAMETRIC_2, - - @Desc("Uses Bilinear but with parametric curves alpha 4.") - - BILINEAR_PARAMETRIC_4, - - @Desc("Uses Bilinear but with parametric curves alpha 1.5.") - - BILINEAR_PARAMETRIC_1_5, - - @Desc("Bicubic noise creates 4, 4-point splines for a total of 16 checks. Bcubic can go higher than expected and lower than expected right before a large change in slope.") - - BICUBIC, - - @Desc("Hermite is similar to bicubic, but faster and it can be tuned a little bit") - - HERMITE, - - @Desc("Essentially bicubic with zero tension") - - CATMULL_ROM_SPLINE, - - @Desc("Essentially bicubic with max tension") - - HERMITE_TENSE, - - @Desc("Hermite is similar to bicubic, this variant reduces the dimple artifacts of bicubic") - - HERMITE_LOOSE, - - @Desc("Hermite is similar to bicubic, this variant reduces the dimple artifacts of bicubic") - - HERMITE_LOOSE_HALF_POSITIVE_BIAS, - - @Desc("Hermite is similar to bicubic, this variant reduces the dimple artifacts of bicubic") - - HERMITE_LOOSE_HALF_NEGATIVE_BIAS, - - @Desc("Hermite is similar to bicubic, this variant reduces the dimple artifacts of bicubic") - - HERMITE_LOOSE_FULL_POSITIVE_BIAS, - - @Desc("Hermite is similar to bicubic, this variant reduces the dimple artifacts of bicubic") - - HERMITE_LOOSE_FULL_NEGATIVE_BIAS, - -} diff --git a/core/src/main/java/art/arcane/iris/util/project/interpolation/InterpolationMethod3D.java b/core/src/main/java/art/arcane/iris/util/project/interpolation/InterpolationMethod3D.java deleted file mode 100644 index 57251bca8..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/interpolation/InterpolationMethod3D.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.interpolation; - -import art.arcane.iris.engine.object.annotations.Desc; - -@Desc("An interpolation method (or function) is simply a method of smoothing a position based on surrounding points on a grid. Bicubic for example is smoother, but has 4 times the checks than Bilinear for example. Try using BILINEAR_STARCAST_9 for beautiful results.") -public enum InterpolationMethod3D { - TRILINEAR, - TRICUBIC, - TRIHERMITE, - TRISTARCAST_3, - TRISTARCAST_6, - TRISTARCAST_9, - TRISTARCAST_12, - TRILINEAR_TRISTARCAST_3, - TRILINEAR_TRISTARCAST_6, - TRILINEAR_TRISTARCAST_9, - TRILINEAR_TRISTARCAST_12, - NONE -} diff --git a/core/src/main/java/art/arcane/iris/util/project/interpolation/IrisInterpolation.java b/core/src/main/java/art/arcane/iris/util/project/interpolation/IrisInterpolation.java deleted file mode 100644 index 5103379b0..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/interpolation/IrisInterpolation.java +++ /dev/null @@ -1,593 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.interpolation; - -import com.google.common.util.concurrent.AtomicDouble; -import art.arcane.iris.engine.object.NoiseStyle; -import art.arcane.volmlib.util.function.NoiseProvider; -import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.project.noise.CNG; - -public class IrisInterpolation extends art.arcane.volmlib.util.interpolation.IrisInterpolation { - private static final double[][] STARCAST_OFFSETS = createStarcastOffsets(); - public static CNG cng = NoiseStyle.SIMPLEX.create(new RNG()); - private static final ThreadLocal NOISE_SAMPLE_CACHE_2D = ThreadLocal.withInitial(() -> new NoiseSampleCache2D(64)); - private static final ThreadLocal NOISE_BOUNDS_SAMPLE_CACHE_2D = ThreadLocal.withInitial(() -> new NoiseBoundsSampleCache2D(64)); - - public static double bezier(double t) { - return t * t * (3.0d - 2.0d * t); - } - - public static double parametric(double t, double alpha) { - double forward = Math.pow(t, alpha); - return forward / (forward + Math.pow(1D - t, alpha)); - } - - public static float lerpf(float a, float b, float f) { - return a + (f * (b - a)); - } - - public static double lerpBezier(double a, double b, double f) { - return a + (bezier(f) * (b - a)); - } - - public static double sinCenter(double f) { - return Math.sin(f * Math.PI); - } - - public static double lerpCenterSinBezier(double a, double b, double f) { - return lerpBezier(a, b, sinCenter(f)); - } - - public static double lerpCenterSin(double a, double b, double f) { - return lerpBezier(a, b, sinCenter(f)); - } - - public static double lerpParametric(double a, double b, double f, double v) { - return a + (parametric(f, v) * (b - a)); - } - - public static double blerpBezier(double a, double b, double c, double d, double tx, double ty) { - return lerpBezier(lerpBezier(a, b, tx), lerpBezier(c, d, tx), ty); - } - - public static double blerpSinCenter(double a, double b, double c, double d, double tx, double ty) { - return lerpCenterSin(lerpCenterSin(a, b, tx), lerpCenterSin(c, d, tx), ty); - } - - public static double blerpParametric(double a, double b, double c, double d, double tx, double ty, double v) { - return lerpParametric(lerpParametric(a, b, tx, v), lerpParametric(c, d, tx, v), ty, v); - } - - public static double hermiteBezier(double p0, double p1, double p2, double p3, double mu, double tension, double bias) { - return bezier(hermite(p0, p1, p2, p3, mu, tension, bias)); - } - - public static double hermiteParametric(double p0, double p1, double p2, double p3, double mu, double tension, double bias, double a) { - return parametric(hermite(p0, p1, p2, p3, mu, tension, bias), a); - } - - public static double bihermiteBezier(double p00, double p01, double p02, double p03, double p10, double p11, double p12, double p13, double p20, double p21, double p22, double p23, double p30, double p31, double p32, double p33, double mux, double muy, double tension, double bias) { - //@builder - return hermiteBezier( - hermiteBezier(p00, p01, p02, p03, muy, tension, bias), - hermiteBezier(p10, p11, p12, p13, muy, tension, bias), - hermiteBezier(p20, p21, p22, p23, muy, tension, bias), - hermiteBezier(p30, p31, p32, p33, muy, tension, bias), - mux, tension, bias); - //@done - } - - public static double bihermiteParametric(double p00, double p01, double p02, double p03, double p10, double p11, double p12, double p13, double p20, double p21, double p22, double p23, double p30, double p31, double p32, double p33, double mux, double muy, double tension, double bias, double a) { - //@builder - return hermiteParametric( - hermiteParametric(p00, p01, p02, p03, muy, tension, bias, a), - hermiteParametric(p10, p11, p12, p13, muy, tension, bias, a), - hermiteParametric(p20, p21, p22, p23, muy, tension, bias, a), - hermiteParametric(p30, p31, p32, p33, muy, tension, bias, a), - mux, tension, bias, a); - //@done - } - - public static double cubicBezier(double p0, double p1, double p2, double p3, double mu) { - return bezier(cubic(p0, p1, p2, p3, mu)); - } - - public static double cubicParametric(double p0, double p1, double p2, double p3, double mu, double a) { - return parametric(cubic(p0, p1, p2, p3, mu), a); - } - - public static double bicubicBezier(double p00, double p01, double p02, double p03, double p10, double p11, double p12, double p13, double p20, double p21, double p22, double p23, double p30, double p31, double p32, double p33, double mux, double muy) { - //@builder - return cubicBezier( - cubicBezier(p00, p01, p02, p03, muy), - cubicBezier(p10, p11, p12, p13, muy), - cubicBezier(p20, p21, p22, p23, muy), - cubicBezier(p30, p31, p32, p33, muy), - mux); - //@done - } - - public static double bicubicParametric(double p00, double p01, double p02, double p03, double p10, double p11, double p12, double p13, double p20, double p21, double p22, double p23, double p30, double p31, double p32, double p33, double mux, double muy, double a) { - //@builder - return cubicParametric( - cubicParametric(p00, p01, p02, p03, muy, a), - cubicParametric(p10, p11, p12, p13, muy, a), - cubicParametric(p20, p21, p22, p23, muy, a), - cubicParametric(p30, p31, p32, p33, muy, a), - mux, a); - //@done - } - - public static int getRadiusFactor(int coord, double radius) { - int radiusInt = (int) radius; - if (radius == radiusInt && radiusInt > 0 && (radiusInt & (radiusInt - 1)) == 0) { - return coord >> Integer.numberOfTrailingZeros(radiusInt); - } - return (int) Math.floor(coord / radius); - } - - public static int getRadiusFactor(double coord, double radius) { - return (int) Math.floor(coord / radius); - } - - public static double getBilinearNoise(double x, double z, double rad, NoiseProvider n) { - double fx = Math.floor(x / rad); - double fz = Math.floor(z / rad); - double x1 = fx * rad; - double z1 = fz * rad; - double x2 = (fx + 1) * rad; - double z2 = (fz + 1) * rad; - - double px = rangeScale(0, 1, x1, x2, x); - double pz = rangeScale(0, 1, z1, z2, z); - //@builder - return blerp( - n.noise(x1, z1), - n.noise(x2, z1), - n.noise(x1, z2), - n.noise(x2, z2), - px, pz); - //@done - } - - public static double getBilinearBezierNoise(double x, double z, double rad, NoiseProvider n) { - double fx = Math.floor(x / rad); - double fz = Math.floor(z / rad); - double x1 = fx * rad; - double z1 = fz * rad; - double x2 = (fx + 1) * rad; - double z2 = (fz + 1) * rad; - double px = rangeScale(0, 1, x1, x2, x); - double pz = rangeScale(0, 1, z1, z2, z); - //@builder - return blerpBezier( - n.noise(x1, z1), - n.noise(x2, z1), - n.noise(x1, z2), - n.noise(x2, z2), - px, pz); - //@done - } - - public static double getBilinearParametricNoise(double x, double z, double rad, NoiseProvider n, double a) { - double fx = Math.floor(x / rad); - double fz = Math.floor(z / rad); - double x1 = fx * rad; - double z1 = fz * rad; - double x2 = (fx + 1) * rad; - double z2 = (fz + 1) * rad; - double px = rangeScale(0, 1, x1, x2, x); - double pz = rangeScale(0, 1, z1, z2, z); - //@builder - return blerpParametric( - n.noise(x1, z1), - n.noise(x2, z1), - n.noise(x1, z2), - n.noise(x2, z2), - px, pz, a); - //@done - } - - public static double getBilinearCenterSineNoise(double x, double z, double rad, NoiseProvider n) { - double fx = Math.floor(x / rad); - double fz = Math.floor(z / rad); - double x1 = fx * rad; - double z1 = fz * rad; - double x2 = (fx + 1) * rad; - double z2 = (fz + 1) * rad; - double px = rangeScale(0, 1, x1, x2, x); - double pz = rangeScale(0, 1, z1, z2, z); - //@builder - return blerpSinCenter( - n.noise(x1, z1), - n.noise(x2, z1), - n.noise(x1, z2), - n.noise(x2, z2), - px, pz); - //@done - } - - public static double getBicubicNoise(double x, double z, double rad, NoiseProvider n) { - double fx = Math.floor(x / rad); - double fz = Math.floor(z / rad); - double x0 = (fx - 1) * rad; - double z0 = (fz - 1) * rad; - double x1 = fx * rad; - double z1 = fz * rad; - double x2 = (fx + 1) * rad; - double z2 = (fz + 1) * rad; - double x3 = (fx + 2) * rad; - double z3 = (fz + 2) * rad; - double px = rangeScale(0, 1, x1, x2, x); - double pz = rangeScale(0, 1, z1, z2, z); - //@builder - return bicubic( - n.noise(x0, z0), - n.noise(x0, z1), - n.noise(x0, z2), - n.noise(x0, z3), - n.noise(x1, z0), - n.noise(x1, z1), - n.noise(x1, z2), - n.noise(x1, z3), - n.noise(x2, z0), - n.noise(x2, z1), - n.noise(x2, z2), - n.noise(x2, z3), - n.noise(x3, z0), - n.noise(x3, z1), - n.noise(x3, z2), - n.noise(x3, z3), - px, pz); - //@done - } - - public static double getBicubicBezierNoise(double x, double z, double rad, NoiseProvider n) { - double fx = Math.floor(x / rad); - double fz = Math.floor(z / rad); - double x0 = (fx - 1) * rad; - double z0 = (fz - 1) * rad; - double x1 = fx * rad; - double z1 = fz * rad; - double x2 = (fx + 1) * rad; - double z2 = (fz + 1) * rad; - double x3 = (fx + 2) * rad; - double z3 = (fz + 2) * rad; - double px = rangeScale(0, 1, x1, x2, x); - double pz = rangeScale(0, 1, z1, z2, z); - //@builder - return bicubicBezier( - n.noise(x0, z0), - n.noise(x0, z1), - n.noise(x0, z2), - n.noise(x0, z3), - n.noise(x1, z0), - n.noise(x1, z1), - n.noise(x1, z2), - n.noise(x1, z3), - n.noise(x2, z0), - n.noise(x2, z1), - n.noise(x2, z2), - n.noise(x2, z3), - n.noise(x3, z0), - n.noise(x3, z1), - n.noise(x3, z2), - n.noise(x3, z3), - px, pz); - //@done - } - - public static double getBicubicParametricNoise(double x, double z, double rad, NoiseProvider n, double a) { - double fx = Math.floor(x / rad); - double fz = Math.floor(z / rad); - double x0 = (fx - 1) * rad; - double z0 = (fz - 1) * rad; - double x1 = fx * rad; - double z1 = fz * rad; - double x2 = (fx + 1) * rad; - double z2 = (fz + 1) * rad; - double x3 = (fx + 2) * rad; - double z3 = (fz + 2) * rad; - double px = rangeScale(0, 1, x1, x2, x); - double pz = rangeScale(0, 1, z1, z2, z); - //@builder - return bicubicParametric( - n.noise(x0, z0), - n.noise(x0, z1), - n.noise(x0, z2), - n.noise(x0, z3), - n.noise(x1, z0), - n.noise(x1, z1), - n.noise(x1, z2), - n.noise(x1, z3), - n.noise(x2, z0), - n.noise(x2, z1), - n.noise(x2, z2), - n.noise(x2, z3), - n.noise(x3, z0), - n.noise(x3, z1), - n.noise(x3, z2), - n.noise(x3, z3), - px, pz, a); - //@done - } - - public static double getHermiteNoise(double x, double z, double rad, NoiseProvider n) { - return getHermiteNoise(x, z, rad, n, 0.5, 0); - } - - public static double getHermiteBezierNoise(double x, double z, double rad, NoiseProvider n) { - return getHermiteBezierNoise(x, z, rad, n, 0.5, 0); - } - - public static double getHermiteParametricNoise(double x, double z, double rad, NoiseProvider n, double a) { - return getHermiteParametricNoise(x, z, rad, n, 0.5, 0, a); - } - - public static double getHermiteNoise(double x, double z, double rad, NoiseProvider n, double t, double b) { - double fx = Math.floor(x / rad); - double fz = Math.floor(z / rad); - double x0 = (fx - 1) * rad; - double z0 = (fz - 1) * rad; - double x1 = fx * rad; - double z1 = fz * rad; - double x2 = (fx + 1) * rad; - double z2 = (fz + 1) * rad; - double x3 = (fx + 2) * rad; - double z3 = (fz + 2) * rad; - double px = rangeScale(0, 1, x1, x2, x); - double pz = rangeScale(0, 1, z1, z2, z); - //@builder - return bihermite( - n.noise(x0, z0), - n.noise(x0, z1), - n.noise(x0, z2), - n.noise(x0, z3), - n.noise(x1, z0), - n.noise(x1, z1), - n.noise(x1, z2), - n.noise(x1, z3), - n.noise(x2, z0), - n.noise(x2, z1), - n.noise(x2, z2), - n.noise(x2, z3), - n.noise(x3, z0), - n.noise(x3, z1), - n.noise(x3, z2), - n.noise(x3, z3), - px, pz, t, b); - //@done - } - - public static double getHermiteBezierNoise(double x, double z, double rad, NoiseProvider n, double t, double b) { - double fx = Math.floor(x / rad); - double fz = Math.floor(z / rad); - double x0 = (fx - 1) * rad; - double z0 = (fz - 1) * rad; - double x1 = fx * rad; - double z1 = fz * rad; - double x2 = (fx + 1) * rad; - double z2 = (fz + 1) * rad; - double x3 = (fx + 2) * rad; - double z3 = (fz + 2) * rad; - double px = rangeScale(0, 1, x1, x2, x); - double pz = rangeScale(0, 1, z1, z2, z); - //@builder - return bihermiteBezier( - n.noise(x0, z0), - n.noise(x0, z1), - n.noise(x0, z2), - n.noise(x0, z3), - n.noise(x1, z0), - n.noise(x1, z1), - n.noise(x1, z2), - n.noise(x1, z3), - n.noise(x2, z0), - n.noise(x2, z1), - n.noise(x2, z2), - n.noise(x2, z3), - n.noise(x3, z0), - n.noise(x3, z1), - n.noise(x3, z2), - n.noise(x3, z3), - px, pz, t, b); - //@done - } - - public static double getHermiteParametricNoise(double x, double z, double rad, NoiseProvider n, double t, double b, double a) { - double fx = Math.floor(x / rad); - double fz = Math.floor(z / rad); - double x0 = (fx - 1) * rad; - double z0 = (fz - 1) * rad; - double x1 = fx * rad; - double z1 = fz * rad; - double x2 = (fx + 1) * rad; - double z2 = (fz + 1) * rad; - double x3 = (fx + 2) * rad; - double z3 = (fz + 2) * rad; - double px = rangeScale(0, 1, x1, x2, x); - double pz = rangeScale(0, 1, z1, z2, z); - //@builder - return bihermiteParametric( - n.noise(x0, z0), - n.noise(x0, z1), - n.noise(x0, z2), - n.noise(x0, z3), - n.noise(x1, z0), - n.noise(x1, z1), - n.noise(x1, z2), - n.noise(x1, z3), - n.noise(x2, z0), - n.noise(x2, z1), - n.noise(x2, z2), - n.noise(x2, z3), - n.noise(x3, z0), - n.noise(x3, z1), - n.noise(x3, z2), - n.noise(x3, z3), - px, pz, t, b, a); - //@done - } - - public static double getRealRadius(InterpolationMethod method, double h) { - AtomicDouble rad = new AtomicDouble(h); - AtomicDouble accessX = new AtomicDouble(); - AtomicDouble accessZ = new AtomicDouble(); - NoiseProvider np = (x1, z1) -> { - double d = Math.max(Math.abs(x1), Math.abs(z1)); - if (d > rad.get()) { - rad.set(d); - } - return 0; - }; - getNoise(method, 0, 0, h, np); - return rad.get(); - } - - public static double getNoise(InterpolationMethod method, double x, double z, double h, NoiseProvider noise) { - if (usesSampleCache(method)) { - NoiseSampleCache2D cache = NOISE_SAMPLE_CACHE_2D.get(); - if (!cache.isInUse()) { - cache.beginUse(); - try { - return dispatch(method, x, z, h, (x1, z1) -> cache.getOrSample(x1 - x, z1 - z, x1, z1, noise)); - } finally { - cache.endUse(); - } - } - // Nested interpolation on this thread (image maps, interpolated noise styles): - // run unmemoized. Sharing the outer table would clear it mid-flight and serve - // this provider's samples to the outer pass. Providers are pure, so the - // unmemoized result is bit-identical. - } - return dispatch(method, x, z, h, noise); - } - - private static double dispatch(InterpolationMethod method, double x, double z, double h, NoiseProvider n) { - return switch (method) { - case BILINEAR -> getBilinearNoise(x, z, h, n); - case STARCAST_3 -> starcast(x, z, h, 3, n); - case STARCAST_6 -> starcast(x, z, h, 6, n); - case STARCAST_9 -> starcast(x, z, h, 9, n); - case STARCAST_12 -> starcast(x, z, h, 12, n); - case BILINEAR_STARCAST_3 -> - starcast(x, z, h, 3, (xx, zz) -> getBilinearNoise(xx, zz, h, n)); - case BILINEAR_STARCAST_6 -> - starcast(x, z, h, 6, (xx, zz) -> getBilinearNoise(xx, zz, h, n)); - case BILINEAR_STARCAST_9 -> - starcast(x, z, h, 9, (xx, zz) -> getBilinearNoise(xx, zz, h, n)); - case BILINEAR_STARCAST_12 -> - starcast(x, z, h, 12, (xx, zz) -> getBilinearNoise(xx, zz, h, n)); - case HERMITE_STARCAST_3 -> - starcast(x, z, h, 3, (xx, zz) -> getHermiteNoise(xx, zz, h, n, 0D, 0D)); - case HERMITE_STARCAST_6 -> - starcast(x, z, h, 6, (xx, zz) -> getHermiteNoise(xx, zz, h, n, 0D, 0D)); - case HERMITE_STARCAST_9 -> - starcast(x, z, h, 9, (xx, zz) -> getHermiteNoise(xx, zz, h, n, 0D, 0D)); - case HERMITE_STARCAST_12 -> - starcast(x, z, h, 12, (xx, zz) -> getHermiteNoise(xx, zz, h, n, 0D, 0D)); - case BILINEAR_BEZIER -> getBilinearBezierNoise(x, z, h, n); - case BILINEAR_PARAMETRIC_2 -> getBilinearParametricNoise(x, z, h, n, 2); - case BILINEAR_PARAMETRIC_4 -> getBilinearParametricNoise(x, z, h, n, 4); - case BILINEAR_PARAMETRIC_1_5 -> getBilinearParametricNoise(x, z, h, n, 1.5); - case BICUBIC -> getBicubicNoise(x, z, h, n); - case HERMITE -> getHermiteNoise(x, z, h, n); - case HERMITE_TENSE -> getHermiteNoise(x, z, h, n, 0.8D, 0D); - case CATMULL_ROM_SPLINE -> getHermiteNoise(x, z, h, n, 0D, 0D); - case HERMITE_LOOSE -> getHermiteNoise(x, z, h, n, 0D, 0D); - case HERMITE_LOOSE_HALF_NEGATIVE_BIAS -> getHermiteNoise(x, z, h, n, 0D, -0.5D); - case HERMITE_LOOSE_HALF_POSITIVE_BIAS -> getHermiteNoise(x, z, h, n, 0D, 0.5D); - case HERMITE_LOOSE_FULL_NEGATIVE_BIAS -> getHermiteNoise(x, z, h, n, 0D, -1D); - case HERMITE_LOOSE_FULL_POSITIVE_BIAS -> getHermiteNoise(x, z, h, n, 0D, 1D); - case NONE -> n.noise(x, z); - }; - } - - public static NoiseBounds getNoiseBounds(InterpolationMethod method, double x, double z, double h, NoiseBoundsProvider noise) { - NoiseBoundsSampleCache2D cache = NOISE_BOUNDS_SAMPLE_CACHE_2D.get(); - if (cache.isInUse()) { - // Nested bounds interpolation: a fresh table on the rare nested path, never the - // outer pass's table — its entries belong to a different bound provider. - cache = new NoiseBoundsSampleCache2D(64); - } - NoiseSampleCache2D scalarCache = usesSampleCache(method) ? NOISE_SAMPLE_CACHE_2D.get() : null; - boolean ownsScalarCache = scalarCache != null && !scalarCache.isInUse(); - cache.beginUse(); - NoiseBoundsProvider previous = cache.bindProvider(noise); - if (ownsScalarCache) { - scalarCache.beginUse(); - } - try { - double min = dispatch(method, x, z, h, cache.minView()); - double max = dispatch(method, x, z, h, cache.replayMaxView()); - return new NoiseBounds(min, max); - } finally { - if (ownsScalarCache) { - scalarCache.endUse(); - } - cache.bindProvider(previous); - cache.endUse(); - } - } - - private static double[][] createStarcastOffsets() { - double[][] offsets = new double[4][]; - for (int index = 0; index < offsets.length; index++) { - int checks = (index + 1) * 3; - double[] samples = new double[checks * 2]; - for (int sample = 0; sample < checks; sample++) { - double angle = sample * (Math.PI * 2D / checks); - double sin = Math.sin(angle); - double cos = Math.cos(angle); - samples[sample * 2] = cos - sin; - samples[sample * 2 + 1] = sin + cos; - } - offsets[index] = samples; - } - return offsets; - } - - private static double starcast(double x, double z, double radius, int checks, NoiseProvider noise) { - double[] offsets = STARCAST_OFFSETS[checks / 3 - 1]; - double sum = 0D; - for (int sample = 0; sample < offsets.length; sample += 2) { - sum += noise.noise(x + radius * offsets[sample], z + radius * offsets[sample + 1]); - } - return sum / checks; - } - - private static boolean usesSampleCache(InterpolationMethod method) { - return switch (method) { - case BILINEAR_STARCAST_3, - BILINEAR_STARCAST_6, - BILINEAR_STARCAST_9, - BILINEAR_STARCAST_12, - HERMITE_STARCAST_3, - HERMITE_STARCAST_6, - HERMITE_STARCAST_9, - HERMITE_STARCAST_12 -> true; - default -> false; - }; - } - - public static double rangeScale(double amin, double amax, double bmin, double bmax, double b) { - return amin + ((amax - amin) * ((b - bmin) / (bmax - bmin))); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/interpolation/NoiseBounds.java b/core/src/main/java/art/arcane/iris/util/project/interpolation/NoiseBounds.java deleted file mode 100644 index c1a1e0c5f..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/interpolation/NoiseBounds.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.interpolation; - -/** - * An immutable minimum/maximum noise pair produced by bounds interpolation. - */ -public record NoiseBounds(double min, double max) { -} diff --git a/core/src/main/java/art/arcane/iris/util/project/interpolation/NoiseBoundsProvider.java b/core/src/main/java/art/arcane/iris/util/project/interpolation/NoiseBoundsProvider.java deleted file mode 100644 index ee0952ca1..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/interpolation/NoiseBoundsProvider.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.interpolation; - -@FunctionalInterface -public interface NoiseBoundsProvider { - NoiseBounds noise(double x, double z); -} diff --git a/core/src/main/java/art/arcane/iris/util/project/interpolation/NoiseBoundsSampleCache2D.java b/core/src/main/java/art/arcane/iris/util/project/interpolation/NoiseBoundsSampleCache2D.java deleted file mode 100644 index c7d826a2b..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/interpolation/NoiseBoundsSampleCache2D.java +++ /dev/null @@ -1,216 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.interpolation; - -import art.arcane.volmlib.util.function.NoiseProvider; - -import java.util.Arrays; - -/** - * Open-addressed memo table that samples a {@link NoiseBoundsProvider} once per column and serves - * the minimum while recording maxima for an identical second interpolation pass. Single threaded; held in - * thread locals. - *

- * The minimum view samples the bound provider; the maximum view replays the same sampling sequence. - * Both views are allocated once per cache instance. - */ -final class NoiseBoundsSampleCache2D { - private final NoiseProvider minView = this::sampleMin; - private final NoiseProvider replayMaxView = this::replayMax; - private NoiseBoundsProvider boundProvider; - private long[] xBits; - private long[] zBits; - private double[] minValues; - private double[] maxValues; - private byte[] states; - private int mask; - private int resizeThreshold; - private int size; - private boolean inUse; - private double[] sampledMaximums = new double[64]; - private int sampledMaximumCount; - private int maximumReplayIndex; - - public NoiseBoundsSampleCache2D(int initialCapacity) { - int minimumCapacity = Math.max(8, initialCapacity); - int tableSize = tableSizeFor((minimumCapacity << 1) + minimumCapacity); - xBits = new long[tableSize]; - zBits = new long[tableSize]; - minValues = new double[tableSize]; - maxValues = new double[tableSize]; - states = new byte[tableSize]; - mask = tableSize - 1; - resizeThreshold = Math.max(1, (tableSize * 3) >> 2); - size = 0; - } - - public void clear() { - if (size == 0) { - return; - } - Arrays.fill(states, (byte) 0); - size = 0; - } - - /** - * Bounds interpolation nests on one thread; a nested pass must never reuse the outer - * pass's table, since entries belong to one specific bound provider. - */ - public boolean isInUse() { - return inUse; - } - - public void beginUse() { - inUse = true; - sampledMaximumCount = 0; - maximumReplayIndex = 0; - clear(); - } - - public void endUse() { - inUse = false; - } - - /** - * Binds the provider that {@link #minView()} samples, returning the - * previously bound provider so callers can restore it. - */ - public NoiseBoundsProvider bindProvider(NoiseBoundsProvider provider) { - NoiseBoundsProvider previous = boundProvider; - boundProvider = provider; - return previous; - } - - public NoiseProvider minView() { - return minView; - } - - public NoiseProvider replayMaxView() { - return replayMaxView; - } - - private double sampleMin(double sampleX, double sampleZ) { - long sampleXBits = Double.doubleToLongBits(sampleX); - long sampleZBits = Double.doubleToLongBits(sampleZ); - int slot = findSlot(sampleXBits, sampleZBits); - double minimum; - double maximum; - if (states[slot] != 0) { - minimum = minValues[slot]; - maximum = maxValues[slot]; - } else { - NoiseBounds bounds = boundProvider.noise(sampleX, sampleZ); - minimum = bounds.min(); - maximum = bounds.max(); - insert(findSlot(sampleXBits, sampleZBits), sampleXBits, sampleZBits, minimum, maximum); - } - if (sampledMaximumCount == sampledMaximums.length) { - sampledMaximums = Arrays.copyOf(sampledMaximums, sampledMaximums.length << 1); - } - sampledMaximums[sampledMaximumCount++] = maximum; - return minimum; - } - - private double replayMax(double sampleX, double sampleZ) { - return sampledMaximums[maximumReplayIndex++]; - } - - private int findSlot(long xb, long zb) { - int slot = mix(xb, zb) & mask; - while (states[slot] != 0) { - if (xBits[slot] == xb && zBits[slot] == zb) { - break; - } - slot = (slot + 1) & mask; - } - return slot; - } - - private void insert(int slot, long xb, long zb, double min, double max) { - xBits[slot] = xb; - zBits[slot] = zb; - minValues[slot] = min; - maxValues[slot] = max; - states[slot] = 1; - size++; - if (size >= resizeThreshold) { - grow(); - } - } - - private int mix(long xb, long zb) { - long hash = xb * 0x9E3779B97F4A7C15L; - hash ^= Long.rotateLeft(zb * 0xC2B2AE3D27D4EB4FL, 32); - hash ^= (hash >>> 33); - hash *= 0xff51afd7ed558ccdL; - hash ^= (hash >>> 33); - return (int) hash; - } - - private void grow() { - long[] previousXBits = xBits; - long[] previousZBits = zBits; - double[] previousMin = minValues; - double[] previousMax = maxValues; - byte[] previousStates = states; - - int nextLength = xBits.length << 1; - long[] nextXBits = new long[nextLength]; - long[] nextZBits = new long[nextLength]; - double[] nextMin = new double[nextLength]; - double[] nextMax = new double[nextLength]; - byte[] nextStates = new byte[nextLength]; - - xBits = nextXBits; - zBits = nextZBits; - minValues = nextMin; - maxValues = nextMax; - states = nextStates; - mask = nextLength - 1; - resizeThreshold = Math.max(1, (nextLength * 3) >> 2); - size = 0; - - for (int i = 0; i < previousStates.length; i++) { - if (previousStates[i] == 0) { - continue; - } - int slot = findSlot(previousXBits[i], previousZBits[i]); - xBits[slot] = previousXBits[i]; - zBits[slot] = previousZBits[i]; - minValues[slot] = previousMin[i]; - maxValues[slot] = previousMax[i]; - states[slot] = 1; - size++; - } - } - - private int tableSizeFor(int value) { - int n = value - 1; - n |= n >>> 1; - n |= n >>> 2; - n |= n >>> 4; - n |= n >>> 8; - n |= n >>> 16; - int tableSize = n + 1; - if (tableSize < 8) { - return 8; - } - return tableSize; - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/interpolation/NoiseSampleCache2D.java b/core/src/main/java/art/arcane/iris/util/project/interpolation/NoiseSampleCache2D.java deleted file mode 100644 index e88b168ee..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/interpolation/NoiseSampleCache2D.java +++ /dev/null @@ -1,170 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.interpolation; - -import art.arcane.volmlib.util.function.NoiseProvider; - -import java.util.Arrays; - -/** - * Open-addressed memo table keyed on a relative sample offset, used to collapse the duplicate - * noise probes that starcast composites issue for the same column. Single threaded by contract; - * instances are held in thread locals. - */ -final class NoiseSampleCache2D { - private long[] xBits; - private long[] zBits; - private double[] values; - private byte[] states; - private int mask; - private int resizeThreshold; - private int size; - private boolean inUse; - - public NoiseSampleCache2D(int initialCapacity) { - int minimumCapacity = Math.max(8, initialCapacity); - int tableSize = tableSizeFor((minimumCapacity << 1) + minimumCapacity); - xBits = new long[tableSize]; - zBits = new long[tableSize]; - values = new double[tableSize]; - states = new byte[tableSize]; - mask = tableSize - 1; - resizeThreshold = Math.max(1, (tableSize * 3) >> 2); - size = 0; - } - - public void clear() { - if (size == 0) { - return; - } - Arrays.fill(states, (byte) 0); - size = 0; - } - - /** - * Interpolation nests on one thread (image maps and interpolated noise styles re-enter - * {@code IrisInterpolation.getNoise} from inside a provider), and a nested pass sharing - * this table would clear it mid-flight and cross-serve another provider's samples. - */ - public boolean isInUse() { - return inUse; - } - - public void beginUse() { - inUse = true; - clear(); - } - - public void endUse() { - inUse = false; - } - - public double getOrSample(double relativeX, double relativeZ, double sampleX, double sampleZ, NoiseProvider provider) { - long rx = Double.doubleToLongBits(relativeX); - long rz = Double.doubleToLongBits(relativeZ); - int slot = findSlot(rx, rz); - if (states[slot] != 0) { - return values[slot]; - } - - double value = provider.noise(sampleX, sampleZ); - // Recompute the slot: the provider call may have mutated the table (clear/grow), so - // the pre-call index can point into stale or reallocated arrays. - insert(findSlot(rx, rz), rx, rz, value); - return value; - } - - private int findSlot(long rx, long rz) { - int slot = mix(rx, rz) & mask; - while (states[slot] != 0) { - if (xBits[slot] == rx && zBits[slot] == rz) { - break; - } - slot = (slot + 1) & mask; - } - return slot; - } - - private void insert(int slot, long rx, long rz, double value) { - xBits[slot] = rx; - zBits[slot] = rz; - values[slot] = value; - states[slot] = 1; - size++; - if (size >= resizeThreshold) { - grow(); - } - } - - private int mix(long rx, long rz) { - long hash = rx * 0x9E3779B97F4A7C15L; - hash ^= Long.rotateLeft(rz * 0xC2B2AE3D27D4EB4FL, 32); - hash ^= (hash >>> 33); - hash *= 0xff51afd7ed558ccdL; - hash ^= (hash >>> 33); - return (int) hash; - } - - private void grow() { - long[] previousXBits = xBits; - long[] previousZBits = zBits; - double[] previousValues = values; - byte[] previousStates = states; - - int nextLength = xBits.length << 1; - long[] nextXBits = new long[nextLength]; - long[] nextZBits = new long[nextLength]; - double[] nextValues = new double[nextLength]; - byte[] nextStates = new byte[nextLength]; - - xBits = nextXBits; - zBits = nextZBits; - values = nextValues; - states = nextStates; - mask = nextLength - 1; - resizeThreshold = Math.max(1, (nextLength * 3) >> 2); - size = 0; - - for (int i = 0; i < previousStates.length; i++) { - if (previousStates[i] == 0) { - continue; - } - int slot = findSlot(previousXBits[i], previousZBits[i]); - xBits[slot] = previousXBits[i]; - zBits[slot] = previousZBits[i]; - values[slot] = previousValues[i]; - states[slot] = 1; - size++; - } - } - - private int tableSizeFor(int value) { - int n = value - 1; - n |= n >>> 1; - n |= n >>> 2; - n |= n >>> 4; - n |= n >>> 8; - n |= n >>> 16; - int size = n + 1; - if (size < 8) { - return 8; - } - return size; - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/CNG.java b/core/src/main/java/art/arcane/iris/util/project/noise/CNG.java deleted file mode 100644 index c9b7244d1..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/CNG.java +++ /dev/null @@ -1,1132 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.noise; - -import art.arcane.iris.engine.object.IRare; -import art.arcane.iris.engine.object.NoiseStyle; -import art.arcane.iris.spi.IrisLogging; -import art.arcane.volmlib.util.cache.FloatCache; -import art.arcane.volmlib.util.collection.KList; -import art.arcane.volmlib.util.format.Form; -import art.arcane.volmlib.util.function.NoiseInjector; -import art.arcane.iris.util.project.interpolation.IrisInterpolation; -import art.arcane.volmlib.util.math.RNG; -import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; -import art.arcane.iris.util.project.stream.ProceduralStream; -import art.arcane.iris.util.project.stream.arithmetic.FittedStream; -import art.arcane.iris.util.project.stream.sources.CNGStream; -import lombok.Data; - -import java.io.DataOutputStream; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.StandardCopyOption; -import java.util.IdentityHashMap; -import java.util.List; - -@Data -public class CNG { - public static final NoiseInjector ADD = (s, v) -> new double[]{s + v, 1}; - public static final NoiseInjector SRC_SUBTRACT = (s, v) -> new double[]{s - v < 0 ? 0 : s - v, -1}; - public static final NoiseInjector DST_SUBTRACT = (s, v) -> new double[]{v - s < 0 ? 0 : s - v, -1}; - public static final NoiseInjector MULTIPLY = (s, v) -> new double[]{s * v, 0}; - public static final NoiseInjector MAX = (s, v) -> new double[]{Math.max(s, v), 0}; - public static final NoiseInjector MIN = (s, v) -> new double[]{Math.min(s, v), 0}; - public static final NoiseInjector SRC_MOD = (s, v) -> new double[]{s % v, 0}; - public static final NoiseInjector SRC_POW = (s, v) -> new double[]{Math.pow(s, v), 0}; - public static final NoiseInjector DST_MOD = (s, v) -> new double[]{v % s, 0}; - public static final NoiseInjector DST_POW = (s, v) -> new double[]{Math.pow(v, s), 0}; - private final double opacity; - private double scale; - private double bakedScale; - private double fscale; - private KList children; - private CNG fracture; - private FloatCache cache; - private NoiseGenerator generator; - private NoiseInjector injector; - private InjectorMode injectorMode; - private RNG rng; - private boolean noscale; - private int oct; - private double patch; - private double up; - private double down; - private double power; - private NoiseStyle leakStyle; - private ProceduralStream customGenerator; - private transient boolean identityPostFastPath; - private transient boolean identitySignedFastPath; - private transient boolean unityOpacity; - private transient double effectiveScale; - private transient double signedFractureScale; - private transient boolean fastPathStateDirty = true; - private transient int coordCacheSalt; - private transient Object coordCacheIdentity = new Object(); - - public CNG(RNG random) { - this(random, 1); - } - - public CNG(RNG random, int octaves) { - this(random, 1D, octaves); - } - - public CNG(RNG random, double opacity, int octaves) { - this(random, NoiseType.SIMPLEX, opacity, octaves); - } - - public CNG(RNG random, NoiseType type, double opacity, int octaves) { - this(random, type.create(random.nextParallelRNG((long) ((1113334944L * opacity) + 12923)).lmax()), opacity, octaves); - } - - public CNG(RNG random, NoiseGenerator generator, double opacity, int octaves) { - customGenerator = null; - noscale = generator.isNoScale(); - this.oct = octaves; - this.rng = random; - power = 1; - scale = 1; - patch = 1; - bakedScale = 1; - fscale = 1; - down = 0; - up = 0; - fracture = null; - this.generator = generator; - this.opacity = opacity; - this.injector = ADD; - this.injectorMode = InjectorMode.ADD; - coordCacheSalt = createCoordCacheSalt(); - - if (generator instanceof OctaveNoise octaveNoise) { - octaveNoise.setOctaves(octaves); - } - - refreshFastPathState(); - } - - public static CNG signature(RNG rng) { - return signature(rng, NoiseType.SIMPLEX); - } - - public static CNG signatureHalf(RNG rng) { - return signatureHalf(rng, NoiseType.SIMPLEX); - } - - public static CNG signatureThick(RNG rng) { - return signatureThick(rng, NoiseType.SIMPLEX); - } - - public static CNG signatureDouble(RNG rng) { - return signatureDouble(rng, NoiseType.SIMPLEX); - } - - public static CNG signatureDouble(RNG rng, NoiseType t) { - return signatureThick(rng, t).fractureWith(signature(rng.nextParallelRNG(4956)), 93); - } - - public static CNG signatureDoubleFast(RNG rng, NoiseType t, NoiseType f) { - return signatureThickFast(rng, t, f) - .fractureWith(signatureFast(rng.nextParallelRNG(4956), t, f), 93); - } - - public static CNG signature(RNG rng, NoiseType t) { - // @NoArgsConstructor - return new CNG(rng.nextParallelRNG(17), t, 1D, 1).fractureWith(new CNG(rng.nextParallelRNG(18), 1, 1).scale(0.9).fractureWith(new CNG(rng.nextParallelRNG(20), 1, 1).scale(0.21).fractureWith(new CNG(rng.nextParallelRNG(20), 1, 1).scale(0.9), 620), 145), 44).bake(); - // @done - } - - public static CNG signaturePerlin(RNG rng) { - return signaturePerlin(rng, NoiseType.PERLIN); - } - - public static CNG signaturePerlin(RNG rng, NoiseType t) { - // @NoArgsConstructor - return new CNG(rng.nextParallelRNG(124996), t, 1D, 1) - .fractureWith(new CNG(rng.nextParallelRNG(18), NoiseType.PERLIN, 1, 1).scale(1.25), 250) - .bake(); - // @done - } - - public static CNG signatureFast(RNG rng, NoiseType t, NoiseType f) { - // @NoArgsConstructor - return new CNG(rng.nextParallelRNG(17), t, 1D, 1) - .fractureWith(new CNG(rng.nextParallelRNG(18), f, 1, 1) - .scale(0.9) - .fractureWith(new CNG(rng.nextParallelRNG(20), f, 1, 1) - .scale(0.21) - .fractureWith(new CNG(rng.nextParallelRNG(20), f, 1, 1).scale(0.9), 620), 145), 44) - .bake(); - // @done - } - - public static CNG signatureThick(RNG rng, NoiseType t) { - // @NoArgsConstructor - return new CNG(rng.nextParallelRNG(133), t, 1D, 1).fractureWith(new CNG(rng.nextParallelRNG(18), 1, 1).scale(0.5).fractureWith(new CNG(rng.nextParallelRNG(20), 1, 1).scale(0.11).fractureWith(new CNG(rng.nextParallelRNG(20), 1, 1).scale(0.4), 620), 145), 44).bake(); - // @done - } - - public static CNG signatureThickFast(RNG rng, NoiseType t, NoiseType f) { - // @NoArgsConstructor - return new CNG(rng.nextParallelRNG(133), t, 1D, 1) - .fractureWith(new CNG(rng.nextParallelRNG(18), f, 1, 1) - .scale(0.5).fractureWith(new CNG(rng.nextParallelRNG(20), f, 1, 1) - .scale(0.11).fractureWith(new CNG(rng.nextParallelRNG(20), f, 1, 1) - .scale(0.4), 620), 145), 44).bake(); - // @done - } - - public static CNG signatureHalf(RNG rng, NoiseType t) { - // @NoArgsConstructor - return new CNG(rng.nextParallelRNG(127), t, 1D, 1).fractureWith(new CNG(rng.nextParallelRNG(18), 1, 1).scale(0.9).fractureWith(new CNG(rng.nextParallelRNG(20), 1, 1).scale(0.21).fractureWith(new CNG(rng.nextParallelRNG(20), 1, 1).scale(0.9), 420), 99), 22).bake(); - // @done - } - - public static CNG signatureHalfFast(RNG rng, NoiseType t, NoiseType f) { - // @NoArgsConstructor - return new CNG(rng.nextParallelRNG(127), t, 1D, 1) - .fractureWith(new CNG(rng.nextParallelRNG(18), f, 1, 1).scale(0.9) - .fractureWith(new CNG(rng.nextParallelRNG(20), f, 1, 1).scale(0.21) - .fractureWith(new CNG(rng.nextParallelRNG(20), f, 1, 1).scale(0.9), 420), 99), 22).bake(); - // @done - } - - public static void main(String[] a) { - CNG cng = NoiseStyle.SIMPLEX.create(new RNG(1234)); - PrecisionStopwatch p = PrecisionStopwatch.start(); - double r = 0; - - for (int i = 0; i < 30000000 * 10; i++) { - r += cng.fit(-1000, 1000, i, i); - } - - IrisLogging.info(Form.duration(p.getMilliseconds(), 10) + " merged = " + r); - } - - public CNG cellularize(RNG seed, double freq) { - FastNoise cellularFilter = new FastNoise(seed.imax()); - cellularFilter.SetNoiseType(FastNoise.NoiseType.Cellular); - cellularFilter.SetCellularReturnType(FastNoise.CellularReturnType.CellValue); - cellularFilter.SetCellularDistanceFunction(FastNoise.CellularDistanceFunction.Manhattan); - cellularFilter.SetFrequency((float) freq * 0.01f); - - ProceduralStream str = stream(); - - return new CNG(seed, new NoiseGenerator() { - @Override - public double noise(double x) { - return noise(x, 0); - } - - @Override - public double noise(double x, double z) { - return (cellularFilter.GetCellular((float) x, (float) z, str, 1) * 0.5) + 0.5D; - } - - @Override - public double noise(double x, double y, double z) { - return noise(x, y + z); - } - }, 1D, 1); - } - - public CNG cached(int size, String key, File cacheFolder) { - return cached(size, key, cacheFolder, false); - } - - public CNG cached(int size, String key, File cacheFolder, boolean quiet) { - if (size <= 0) { - return this; - } - - markFastPathStateDirty(); - - File f = new File(new File(cacheFolder, ".cache"), key + ".cnm"); - FloatCache fbc; - boolean cached = false; - if (f.exists()) { - try { - fbc = new FloatCache(f); - cached = true; - } catch (IOException e) { - fbc = new FloatCache(size, size); - } - } else { - fbc = new FloatCache(size, size); - } - - if (!cached) { - for (int i = 0; i < size; i++) { - for (int j = 0; j < size; j++) { - fbc.set(i, j, (float) noise(i, j)); - } - } - - // Write to a unique temp name (excluded from the *.cnm stale-entry pruner) and - // move atomically: a throw mid-write must never leak the descriptor or leave a - // truncated .cnm that the read path would pick up by existence alone. The name is - // per-writer unique so two engines caching the same style key cannot interleave - // into one temp file. - File tmp = new File(f.getParentFile(), f.getName() + "." + Long.toUnsignedString(System.nanoTime(), 36) - + "-" + Long.toUnsignedString(Thread.currentThread().threadId(), 36) + ".tmp"); - try { - f.getParentFile().mkdirs(); - try (DataOutputStream dos = new DataOutputStream(new FileOutputStream(tmp))) { - fbc.writeCache(dos); - } - Files.move(tmp.toPath(), f.toPath(), - StandardCopyOption.REPLACE_EXISTING, StandardCopyOption.ATOMIC_MOVE); - if (!quiet) { - IrisLogging.info("Saved Noise Cache " + f.getName()); - } - } catch (IOException e) { - try { - Files.deleteIfExists(tmp.toPath()); - } catch (IOException ignored) { - } - throw new RuntimeException(e); - } - } - - cache = fbc; - coordCacheIdentity = new Object(); - return this; - } - - public NoiseGenerator getGen() { - return generator; - } - - public ProceduralStream stream() { - return new CNGStream(this); - } - - public ProceduralStream stream(double min, double max) { - return new FittedStream<>(stream(), min, max); - } - - public CNG bake() { - bakedScale *= scale; - scale = 1; - markFastPathStateDirty(); - return this; - } - - public CNG child(CNG c) { - if (children == null) { - children = new KList<>(); - } - - children.add(c); - markFastPathStateDirty(); - return this; - } - - public RNG getRNG() { - return rng; - } - - public CNG fractureWith(CNG c, double scale) { - fracture = c; - fscale = scale; - markFastPathStateDirty(); - return this; - } - - public CNG scale(double c) { - scale = c; - markFastPathStateDirty(); - return this; - } - - public CNG zoom(double factor) { - if (!Double.isFinite(factor) || factor <= 0D || !Double.isFinite(1D / factor)) { - throw new IllegalArgumentException("Zoom must be positive and finite"); - } - if (factor != 1D) { - zoom(factor, new IdentityHashMap<>()); - } - return this; - } - - public CNG patch(double c) { - patch = c; - markFastPathStateDirty(); - return this; - } - - public CNG up(double c) { - up = c; - markFastPathStateDirty(); - return this; - } - - public CNG down(double c) { - down = c; - markFastPathStateDirty(); - return this; - } - - public CNG injectWith(NoiseInjector i) { - injector = i == null ? ADD : i; - injectorMode = resolveInjectorMode(injector); - markFastPathStateDirty(); - return this; - } - - private InjectorMode resolveInjectorMode(NoiseInjector i) { - if (i == ADD) { - return InjectorMode.ADD; - } - - if (i == SRC_SUBTRACT) { - return InjectorMode.SRC_SUBTRACT; - } - - if (i == DST_SUBTRACT) { - return InjectorMode.DST_SUBTRACT; - } - - if (i == MULTIPLY) { - return InjectorMode.MULTIPLY; - } - - if (i == MAX) { - return InjectorMode.MAX; - } - - if (i == MIN) { - return InjectorMode.MIN; - } - - if (i == SRC_MOD) { - return InjectorMode.SRC_MOD; - } - - if (i == SRC_POW) { - return InjectorMode.SRC_POW; - } - - if (i == DST_MOD) { - return InjectorMode.DST_MOD; - } - - if (i == DST_POW) { - return InjectorMode.DST_POW; - } - - return InjectorMode.CUSTOM; - } - - public T fitRarity(KList b, double... dim) { - if (dim.length == 2) { - return fitRarity2D(b, dim[0], dim[1]); - } - - if (b.size() == 0) { - return null; - } - - if (b.size() == 1) { - return b.get(0); - } - - KList rarityMapped = buildRarityMapped(b); - - if (rarityMapped.size() == 1) { - return rarityMapped.get(0); - } - - if (rarityMapped.isEmpty()) { - throw new RuntimeException("BAD RARITY MAP! RELATED TO: " + b.toString(", or possibly ")); - } - - return fit(rarityMapped, dim); - } - - public T fitRarity2D(KList b, double x, double z) { - if (b.size() == 0) { - return null; - } - - if (b.size() == 1) { - return b.get(0); - } - - KList rarityMapped = buildRarityMapped(b); - if (rarityMapped.size() == 1) { - return rarityMapped.get(0); - } - - if (rarityMapped.isEmpty()) { - throw new RuntimeException("BAD RARITY MAP! RELATED TO: " + b.toString(", or possibly ")); - } - - return fit2D(rarityMapped, x, z); - } - - private KList buildRarityMapped(KList values) { - KList rarityMapped = new KList<>(); - boolean flip = false; - int max = 1; - for (T value : values) { - if (value.getRarity() > max) { - max = value.getRarity(); - } - } - - max++; - for (T value : values) { - int count = max - value.getRarity(); - for (int j = 0; j < count; j++) { - flip = !flip; - if (flip) { - rarityMapped.add(value); - } else { - rarityMapped.add(0, value); - } - } - } - - return rarityMapped; - } - - public T fit2D(T[] values, double x, double z) { - if (values.length == 0) { - return null; - } - - if (values.length == 1) { - return values[0]; - } - - return values[fit2D(0, values.length - 1, x, z)]; - } - - public T fit2D(List values, double x, double z) { - if (values.isEmpty()) { - return null; - } - - if (values.size() == 1) { - return values.get(0); - } - - try { - return values.get(fit2D(0, values.size() - 1, x, z)); - } catch (Throwable e) { - IrisLogging.reportError(e); - } - - return values.get(0); - } - - public int fit2D(int min, int max, double x, double z) { - if (min == max) { - return min; - } - - double noise = noiseFast2D(x, z); - return (int) Math.round(IrisInterpolation.lerp(min, max, noise)); - } - - public T fit(T[] v, double... dim) { - if (v.length == 0) { - return null; - } - - if (v.length == 1) { - return v[0]; - } - - return v[fit(0, v.length - 1, dim)]; - } - - public T fit(List v, double... dim) { - if (v.size() == 0) { - return null; - } - - if (v.size() == 1) { - return v.get(0); - } - - try { - return v.get(fit(0, v.size() - 1, dim)); - } catch (Throwable e) { - IrisLogging.reportError(e); - } - - return v.get(0); - } - - public int fit(int min, int max, double... dim) { - if (min == max) { - return min; - } - - double noise = noise(dim); - - return (int) Math.round(IrisInterpolation.lerp(min, max, noise)); - } - - public int fit(int min, int max, double x, double z) { - return fit2D(min, max, x, z); - } - - public int fit(int min, int max, double x, double y, double z) { - if (min == max) { - return min; - } - - double noise = noise(x, y, z); - - return (int) Math.round(IrisInterpolation.lerp(min, max, noise)); - } - - public int fit(double min, double max, double... dim) { - if (min == max) { - return (int) Math.round(min); - } - - double noise = noise(dim); - - return (int) Math.round(IrisInterpolation.lerp(min, max, noise)); - } - - public int fit(double min, double max, double x, double z) { - if (min == max) { - return (int) Math.round(min); - } - - double noise = noiseFast2D(x, z); - - return (int) Math.round(IrisInterpolation.lerp(min, max, noise)); - } - - public int fit(double min, double max, double x, double y, double z) { - if (min == max) { - return (int) Math.round(min); - } - - double noise = noise(x, y, z); - - return (int) Math.round(IrisInterpolation.lerp(min, max, noise)); - } - - public double fitDouble(double min, double max, double... dim) { - if (min == max) { - return min; - } - - double noise = noise(dim); - - return IrisInterpolation.lerp(min, max, noise); - } - - public double fitDouble(double min, double max, double x, double z) { - if (min == max) { - return min; - } - - double noise = noise(x, z); - - return IrisInterpolation.lerp(min, max, noise); - } - - public double fitDouble(double min, double max, double x, double y, double z) { - if (min == max) { - return min; - } - - double noise = noise(x, y, z); - - return IrisInterpolation.lerp(min, max, noise); - } - - private double getNoise(double x) { - ensureFastPathState(); - double scl = effectiveScale; - - if (fracture == null || noscale) { - return generator.noise(x * scl) * opacity; - } - - double fx = x + ((fracture.noiseFast1D(x) - 0.5D) * fscale); - return generator.noise(fx * scl) * opacity; - } - - private double getNoise(double x, double z) { - ensureFastPathState(); - double scl = effectiveScale; - - if (fracture == null || noscale) { - return generator.noise(x * scl, z * scl) * opacity; - } - - double fx = x + ((fracture.noiseFast2D(x, z) - 0.5D) * fscale); - double fz = z + ((fracture.noiseFast2D(z, x) - 0.5D) * fscale); - return generator.noise(fx * scl, fz * scl) * opacity; - } - - private double getNoise(double x, double y, double z) { - ensureFastPathState(); - double scl = effectiveScale; - - if (fracture == null || noscale) { - return generator.noise(x * scl, y * scl, z * scl) * opacity; - } - - double fx = x + ((fracture.noiseFast3D(x, y, z) - 0.5D) * fscale); - double fy = y + ((fracture.noiseFast2D(y, x) - 0.5D) * fscale); - double fz = z + ((fracture.noiseFast3D(z, x, y) - 0.5D) * fscale); - return generator.noise(fx * scl, fy * scl, fz * scl) * opacity; - } - - public double invertNoise(double... dim) { - if (dim.length == 1) { - return noise(-dim[0]); - } else if (dim.length == 2) { - return noise(dim[1], dim[0]); - } else if (dim.length == 3) { - return noise(dim[1], dim[2], dim[0]); - } - - return noise(dim); - } - - public double noiseSym(double... dim) { - return (noise(dim) * 2) - 1; - } - - private boolean isCachedCoordinate(double x, double z) { - return cache != null - && x >= 0D && x < cache.getWidth() - && z >= 0D && z < cache.getHeight() - && x == (int) x && z == (int) z; - } - - private double getCachedNoise(double x, double z) { - return cache.get((int) z * cache.getWidth() + (int) x); - } - - private double applyPost(double n, double x) { - n = power != 1D ? (n < 0 ? -Math.pow(Math.abs(n), power) : Math.pow(n, power)) : n; - double m = 1; - - if (children != null) { - for (CNG i : children) { - double source = n; - double value = i.noise(x); - switch (injectorMode) { - case ADD -> { - n = source + value; - m += 1D; - } - case SRC_SUBTRACT -> { - n = source - value < 0D ? 0D : source - value; - m -= 1D; - } - case DST_SUBTRACT -> { - n = value - source < 0D ? 0D : source - value; - m -= 1D; - } - case MULTIPLY -> n = source * value; - case MAX -> n = Math.max(source, value); - case MIN -> n = Math.min(source, value); - case SRC_MOD -> n = source % value; - case SRC_POW -> n = Math.pow(source, value); - case DST_MOD -> n = value % source; - case DST_POW -> n = Math.pow(value, source); - case CUSTOM -> { - double[] combined = injector.combine(source, value); - n = combined[0]; - m += combined[1]; - } - } - } - } - - return ((n / m) - down + up) * patch; - } - - private double applyPost(double n, double x, double z) { - n = power != 1D ? (n < 0 ? -Math.pow(Math.abs(n), power) : Math.pow(n, power)) : n; - double m = 1; - - if (children != null) { - for (CNG i : children) { - double source = n; - double value = i.noise(x, z); - switch (injectorMode) { - case ADD -> { - n = source + value; - m += 1D; - } - case SRC_SUBTRACT -> { - n = source - value < 0D ? 0D : source - value; - m -= 1D; - } - case DST_SUBTRACT -> { - n = value - source < 0D ? 0D : source - value; - m -= 1D; - } - case MULTIPLY -> n = source * value; - case MAX -> n = Math.max(source, value); - case MIN -> n = Math.min(source, value); - case SRC_MOD -> n = source % value; - case SRC_POW -> n = Math.pow(source, value); - case DST_MOD -> n = value % source; - case DST_POW -> n = Math.pow(value, source); - case CUSTOM -> { - double[] combined = injector.combine(source, value); - n = combined[0]; - m += combined[1]; - } - } - } - } - - return ((n / m) - down + up) * patch; - } - - private double applyPost(double n, double x, double y, double z) { - n = power != 1D ? (n < 0 ? -Math.pow(Math.abs(n), power) : Math.pow(n, power)) : n; - double m = 1; - - if (children != null) { - for (CNG i : children) { - double source = n; - double value = i.noise(x, y, z); - switch (injectorMode) { - case ADD -> { - n = source + value; - m += 1D; - } - case SRC_SUBTRACT -> { - n = source - value < 0D ? 0D : source - value; - m -= 1D; - } - case DST_SUBTRACT -> { - n = value - source < 0D ? 0D : source - value; - m -= 1D; - } - case MULTIPLY -> n = source * value; - case MAX -> n = Math.max(source, value); - case MIN -> n = Math.min(source, value); - case SRC_MOD -> n = source % value; - case SRC_POW -> n = Math.pow(source, value); - case DST_MOD -> n = value % source; - case DST_POW -> n = Math.pow(value, source); - case CUSTOM -> { - double[] combined = injector.combine(source, value); - n = combined[0]; - m += combined[1]; - } - } - } - } - - return ((n / m) - down + up) * patch; - } - - public double noise(double... dim) { - return switch (dim.length) { - case 1 -> noise(dim[0]); - case 2 -> noise(dim[0], dim[1]); - case 3 -> noise(dim[0], dim[1], dim[2]); - default -> throw new IllegalArgumentException("Noise requires one, two, or three coordinates"); - }; - } - - public double noise(double x) { - return applyPost(getNoise(x), x); - } - - public double noiseFast1D(double x) { - return applyPost(getNoise(x), x); - } - - public double noise(double x, double z) { - if (isCachedCoordinate(x, z)) { - return getCachedNoise(x, z); - } - - return applyPost(getNoise(x, z), x, z); - } - - public double noiseFast2D(double x, double z) { - if (isCachedCoordinate(x, z)) { - return getCachedNoise(x, z); - } - - if (isIdentityPostFastPath()) { - return getNoise(x, z); - } - - return applyPost(getNoise(x, z), x, z); - } - - private static final int COORD_CACHE_SIZE = 1 << 16; - private static final int COORD_CACHE_MASK = COORD_CACHE_SIZE - 1; - - private static final class CoordCache { - private final Object[] owner = new Object[COORD_CACHE_SIZE]; - private final long[] kx = new long[COORD_CACHE_SIZE]; - private final long[] kz = new long[COORD_CACHE_SIZE]; - private final double[] value = new double[COORD_CACHE_SIZE]; - } - - private static final ThreadLocal COORD_CACHE_2D = ThreadLocal.withInitial(CoordCache::new); - - private static int coordSlot(long a, long b, int salt) { - long h = (a * 0x9E3779B97F4A7C15L) ^ (b * 0xC2B2AE3D27D4EB4FL) ^ (salt * 0x165667B19E3779F9L); - h ^= (h >>> 32); - return (int) (h & COORD_CACHE_MASK); - } - - public double noiseFastSigned2D(double x, double z) { - long kx = Double.doubleToRawLongBits(x); - long kz = Double.doubleToRawLongBits(z); - CoordCache cc = COORD_CACHE_2D.get(); - Object identity = coordCacheIdentity(); - int slot = coordSlot(kx, kz, coordCacheSalt()); - if (cc.owner[slot] == identity && cc.kx[slot] == kx && cc.kz[slot] == kz) { - return cc.value[slot]; - } - double computed = computeNoiseFastSigned2D(x, z); - cc.owner[slot] = identity; - cc.kx[slot] = kx; - cc.kz[slot] = kz; - cc.value[slot] = computed; - return computed; - } - - private double computeNoiseFastSigned2D(double x, double z) { - if (isCachedCoordinate(x, z)) { - return (getCachedNoise(x, z) * 2D) - 1D; - } - - if (hasIdentitySignedFastPath()) { - return getSignedNoise(x, z); - } - - return (noiseFast2D(x, z) * 2D) - 1D; - } - - public double noise(double x, double y, double z) { - return applyPost(getNoise(x, y, z), x, y, z); - } - - public double noiseFast3D(double x, double y, double z) { - if (isIdentityPostFastPath()) { - return getNoise(x, y, z); - } - - return applyPost(getNoise(x, y, z), x, y, z); - } - - private static final class CoordCache3D { - private final Object[] owner = new Object[COORD_CACHE_SIZE]; - private final long[] kx = new long[COORD_CACHE_SIZE]; - private final long[] ky = new long[COORD_CACHE_SIZE]; - private final long[] kz = new long[COORD_CACHE_SIZE]; - private final double[] value = new double[COORD_CACHE_SIZE]; - } - - private static final ThreadLocal COORD_CACHE_3D = ThreadLocal.withInitial(CoordCache3D::new); - - public double noiseFastSigned3D(double x, double y, double z) { - long kx = Double.doubleToRawLongBits(x); - long ky = Double.doubleToRawLongBits(y); - long kz = Double.doubleToRawLongBits(z); - CoordCache3D cc = COORD_CACHE_3D.get(); - Object identity = coordCacheIdentity(); - int slot = coordSlot(kx ^ Long.rotateLeft(ky, 21), kz, coordCacheSalt()); - if (cc.owner[slot] == identity && cc.kx[slot] == kx && cc.ky[slot] == ky && cc.kz[slot] == kz) { - return cc.value[slot]; - } - double computed = hasIdentitySignedFastPath() ? getSignedNoise(x, y, z) : (noiseFast3D(x, y, z) * 2D) - 1D; - cc.owner[slot] = identity; - cc.kx[slot] = kx; - cc.ky[slot] = ky; - cc.kz[slot] = kz; - cc.value[slot] = computed; - return computed; - } - - public CNG pow(double power) { - this.power = power; - markFastPathStateDirty(); - return this; - } - - public CNG oct(int octaves) { - if (oct == octaves) { - return this; - } - - oct = octaves; - if (generator instanceof OctaveNoise octaveNoise) { - octaveNoise.setOctaves(octaves); - } - markFastPathStateDirty(); - return this; - } - - public double getScale() { - return scale; - } - - public boolean isStatic() { - return generator != null && generator.isStatic(); - } - - private boolean isIdentityPostFastPath() { - ensureFastPathState(); - return identityPostFastPath; - } - - private boolean hasIdentitySignedFastPath() { - ensureFastPathState(); - return identitySignedFastPath; - } - - private void zoom(double factor, IdentityHashMap visited) { - if (visited.put(this, Boolean.TRUE) != null) { - return; - } - bakedScale /= factor; - fscale *= factor; - if (fracture != null) { - fracture.zoom(factor, visited); - } - if (children != null) { - for (CNG child : children) { - child.zoom(factor, visited); - } - } - markFastPathStateDirty(); - } - - private void ensureFastPathState() { - if (fastPathStateDirty) { - refreshFastPathState(); - } - } - - private void markFastPathStateDirty() { - fastPathStateDirty = true; - cache = null; - coordCacheIdentity = new Object(); - } - - private Object coordCacheIdentity() { - if (coordCacheIdentity == null) { - coordCacheIdentity = new Object(); - } - - return coordCacheIdentity; - } - - private int coordCacheSalt() { - if (coordCacheSalt == 0) { - coordCacheSalt = createCoordCacheSalt(); - } - - return coordCacheSalt; - } - - private int createCoordCacheSalt() { - int salt = System.identityHashCode(this); - return salt == 0 ? 1 : salt; - } - - private void refreshFastPathState() { - effectiveScale = noscale ? 1D : bakedScale * scale; - identityPostFastPath = power == 1D - && children == null - && fracture == null - && down == 0D - && up == 0D - && patch == 1D; - identitySignedFastPath = power == 1D - && children == null - && down == 0D - && up == 0D - && patch == 1D; - unityOpacity = opacity == 1D; - signedFractureScale = 0.5D * fscale; - fastPathStateDirty = false; - } - - private double signedWithOpacity(double signedNoise) { - if (unityOpacity) { - return signedNoise; - } - - return ((signedNoise + 1D) * opacity) - 1D; - } - - private double getSignedNoise(double x, double z) { - double scl = effectiveScale; - NoiseGenerator localGenerator = generator; - CNG localFracture = fracture; - - if (localFracture == null || noscale) { - return signedWithOpacity(localGenerator.noiseSigned(x * scl, z * scl)); - } - - double fx = x + (localFracture.noiseFastSigned2D(x, z) * signedFractureScale); - double fz = z + (localFracture.noiseFastSigned2D(z, x) * signedFractureScale); - return signedWithOpacity(localGenerator.noiseSigned(fx * scl, fz * scl)); - } - - private double getSignedNoise(double x, double y, double z) { - double scl = effectiveScale; - NoiseGenerator localGenerator = generator; - CNG localFracture = fracture; - - if (localFracture == null || noscale) { - return signedWithOpacity(localGenerator.noiseSigned(x * scl, y * scl, z * scl)); - } - - double fx = x + (localFracture.noiseFastSigned3D(x, y, z) * signedFractureScale); - double fy = y + (localFracture.noiseFastSigned2D(y, x) * signedFractureScale); - double fz = z + (localFracture.noiseFastSigned3D(z, x, y) * signedFractureScale); - return signedWithOpacity(localGenerator.noiseSigned(fx * scl, fy * scl, fz * scl)); - } - - private enum InjectorMode { - ADD, - SRC_SUBTRACT, - DST_SUBTRACT, - MULTIPLY, - MAX, - MIN, - SRC_MOD, - SRC_POW, - DST_MOD, - DST_POW, - CUSTOM - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/CNGFactory.java b/core/src/main/java/art/arcane/iris/util/project/noise/CNGFactory.java deleted file mode 100644 index 058883445..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/CNGFactory.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.noise; - -import art.arcane.volmlib.util.math.RNG; - -@FunctionalInterface -public interface CNGFactory { - CNG create(RNG seed); -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/CellGenerator.java b/core/src/main/java/art/arcane/iris/util/project/noise/CellGenerator.java deleted file mode 100644 index a6a354e1b..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/CellGenerator.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.noise; - -import art.arcane.volmlib.util.math.RNG; -import lombok.Getter; -import lombok.Setter; - -public class CellGenerator { - private final FastNoiseDouble fn; - private final FastNoiseDouble fd; - private final CNG cng; - - @Getter - @Setter - private double cellScale; - - @Getter - @Setter - private double shuffle; - - public CellGenerator(RNG rng) { - shuffle = 128; - cellScale = 0.73; - cng = CNG.signature(rng.nextParallelRNG(3204)); - RNG rx = rng.nextParallelRNG(8735652); - long s = rx.lmax(); - fn = new FastNoiseDouble(s); - fn.setNoiseType(FastNoiseDouble.NoiseType.Cellular); - fn.setCellularReturnType(FastNoiseDouble.CellularReturnType.CellValue); - fn.setCellularDistanceFunction(FastNoiseDouble.CellularDistanceFunction.Natural); - fd = new FastNoiseDouble(s); - fd.setNoiseType(FastNoiseDouble.NoiseType.Cellular); - fd.setCellularReturnType(FastNoiseDouble.CellularReturnType.Distance2Sub); - fd.setCellularDistanceFunction(FastNoiseDouble.CellularDistanceFunction.Natural); - } - - public double getDistance(double x, double z) { - return ((fd.GetCellular(((x * cellScale) + (cng.noise(x, z) * shuffle)), ((z * cellScale) + (cng.noise(z, x) * shuffle)))) + 1f) / 2f; - } - - public double getDistance(double x, double y, double z) { - return ((fd.GetCellular(((x * cellScale) + (cng.noise(x, y, z) * shuffle)), ((y * cellScale) + (cng.noise(x, y, z) * shuffle)), ((z * cellScale) + (cng.noise(z, y, x) * shuffle)))) + 1f) / 2f; - } - - public double getValue(double x, double z, int possibilities) { - if (possibilities == 1) { - return 0; - } - - return ((fn.GetCellular(((x * cellScale) + (cng.noise(x, z) * shuffle)), ((z * cellScale) + (cng.noise(z, x) * shuffle))) + 1f) / 2f) * (possibilities - 1); - } - - public double getValue(double x, double y, double z, int possibilities) { - if (possibilities == 1) { - return 0; - } - - return ((fn.GetCellular(((x * cellScale) + (cng.noise(x, z) * shuffle)), ((y * 8 * cellScale) + (cng.noise(x, y * 8) * shuffle)), ((z * cellScale) + (cng.noise(z, x) * shuffle))) + 1f) / 2f) * (possibilities - 1); - } - - public int getIndex(double x, double z, int possibilities) { - if (possibilities == 1) { - return 0; - } - - return (int) Math.round(getValue(x, z, possibilities)); - } - - public int getIndex(double x, double y, double z, int possibilities) { - if (possibilities == 1) { - return 0; - } - - return (int) Math.round(getValue(x, y, z, possibilities)); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/CellHeightNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/CellHeightNoise.java deleted file mode 100644 index eed4f2729..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/CellHeightNoise.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.noise; - -import art.arcane.volmlib.util.math.M; -import art.arcane.volmlib.util.math.RNG; - -public class CellHeightNoise implements NoiseGenerator { - private final FastNoiseDouble n; - - public CellHeightNoise(long seed) { - this.n = new FastNoiseDouble(new RNG(seed).lmax()); - n.setNoiseType(FastNoiseDouble.NoiseType.Cellular); - n.setCellularReturnType(FastNoiseDouble.CellularReturnType.Distance2Sub); - n.setCellularDistanceFunction(FastNoiseDouble.CellularDistanceFunction.Natural); - } - - private double filter(double noise) { - return M.clip((noise / 2D) + 0.5D, 0D, 1D); - } - - @Override - public double noise(double x) { - return filter(n.GetCellular(x, 0)); - } - - @Override - public double noise(double x, double z) { - return filter(n.GetCellular(x, z)); - } - - @Override - public double noise(double x, double y, double z) { - return filter(n.GetCellular(x, y, z)); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/CellularNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/CellularNoise.java deleted file mode 100644 index cfee3c581..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/CellularNoise.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.noise; - -import art.arcane.volmlib.util.math.RNG; - -public class CellularNoise implements NoiseGenerator { - private final FastNoiseDouble n; - - public CellularNoise(long seed) { - this.n = new FastNoiseDouble(new RNG(seed).lmax()); - n.setNoiseType(FastNoiseDouble.NoiseType.Cellular); - n.setCellularReturnType(FastNoiseDouble.CellularReturnType.CellValue); - n.setCellularDistanceFunction(FastNoiseDouble.CellularDistanceFunction.Natural); - } - - @Override - public double noise(double x) { - return (n.GetCellular(x, 0) / 2D) + 0.5D; - } - - @Override - public double noise(double x, double z) { - return (n.GetCellular(x, z) / 2D) + 0.5D; - } - - @Override - public double noise(double x, double y, double z) { - return (n.GetCellular(x, y, z) / 2D) + 0.5D; - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/ChladniNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/ChladniNoise.java deleted file mode 100644 index 5a6cc6e01..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/ChladniNoise.java +++ /dev/null @@ -1,34 +0,0 @@ -package art.arcane.iris.util.project.noise; - -public final class ChladniNoise extends PatternNoise { - private final int firstMode; - private final int secondMode; - private final double phase; - private final double width; - - public ChladniNoise(long seed) { - long hash = mix(seed); - firstMode = 2 + (int) (hash & 1L); - secondMode = firstMode + 1 + (int) ((hash >>> 1) & 1L); - phase = (hash >>> 11) * 0x1.0p-52D; - width = 0.22D + ((hash >>> 3) & 255L) * (0.12D / 255D); - } - - @Override - protected double sample(double x, double y, double z) { - double u = (x + phase) * Math.PI; - double v = (z + phase) * Math.PI; - double first = Math.cos(firstMode * u) * Math.cos(secondMode * v); - double second = Math.cos(secondMode * u) * Math.cos(firstMode * v); - double field = first * Math.cos(y * Math.PI * 0.5D) - - second * Math.cos(y * Math.PI * 0.75D); - double node = Math.max(0D, 1D - Math.abs(field) / width); - return node * node * (3D - 2D * node); - } - - private static long mix(long value) { - value = (value ^ (value >>> 30)) * 0xBF58476D1CE4E5B9L; - value = (value ^ (value >>> 27)) * 0x94D049BB133111EBL; - return value ^ (value >>> 31); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/CircuitNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/CircuitNoise.java deleted file mode 100644 index 978ef670a..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/CircuitNoise.java +++ /dev/null @@ -1,73 +0,0 @@ -package art.arcane.iris.util.project.noise; - -public final class CircuitNoise extends PatternNoise { - private final long seed; - private final double phaseX; - private final double phaseZ; - - public CircuitNoise(long seed) { - this.seed = seed; - phaseX = (mix(seed) >>> 11) * 0x1.0p-53; - phaseZ = (mix(seed + 0x9E3779B97F4A7C15L) >>> 11) * 0x1.0p-53; - } - - @Override - protected double sample(double x, double y, double z) { - x += phaseX; - z += phaseZ; - if (y != 0D) { - x += y * 0.13D + 0.17D * Math.sin(y * Math.PI * 0.5D); - z += 0.11D * Math.sin(y * Math.PI * 0.75D); - } - long cellX = (long) Math.floor(x); - long cellZ = (long) Math.floor(z); - x -= cellX; - z -= cellZ; - long hash = mix(seed ^ cellX * 0x9E3779B97F4A7C15L ^ cellZ * 0xD1B54A32D192ED03L); - double distance; - double padDistance; - if ((hash & 3L) == 0L) { - distance = Math.min(Math.abs(x - 0.5D), Math.abs(z - 0.5D)); - double dx = x - 0.5D; - double dz = z - 0.5D; - padDistance = Math.sqrt(dx * dx + dz * dz); - } else { - if ((hash & 1L) != 0L) { - x = 1D - x; - } - distance = Math.sqrt(Math.min(routeDistanceSquared(x, z), routeDistanceSquared(1D - x, 1D - z))); - double dx = x - 0.75D; - double dz = z - 0.25D; - double oppositeX = x - 0.25D; - double oppositeZ = z - 0.75D; - padDistance = Math.sqrt(Math.min(dx * dx + dz * dz, oppositeX * oppositeX + oppositeZ * oppositeZ)); - } - double trace = smooth(1D - distance / 0.045D); - double pad = smooth(1D - Math.abs(padDistance - 0.085D) / 0.03D); - return Math.max(trace, pad) * smooth(padDistance / 0.045D); - } - - private static double routeDistanceSquared(double x, double z) { - double top = segmentDistanceSquared(x - 0.5D, z, 0D, 0.25D); - double bend = segmentDistanceSquared(z - 0.25D, x, 0.5D, 0.75D); - double middle = segmentDistanceSquared(x - 0.75D, z, 0.25D, 0.5D); - double right = segmentDistanceSquared(z - 0.5D, x, 0.75D, 1D); - return Math.min(Math.min(top, bend), Math.min(middle, right)); - } - - private static double segmentDistanceSquared(double perpendicular, double along, double start, double end) { - double excess = Math.max(start - along, Math.max(along - end, 0D)); - return perpendicular * perpendicular + excess * excess; - } - - private static double smooth(double value) { - double bounded = Math.clamp(value, 0D, 1D); - return bounded * bounded * (3D - 2D * bounded); - } - - private static long mix(long value) { - value = (value ^ (value >>> 30)) * 0xBF58476D1CE4E5B9L; - value = (value ^ (value >>> 27)) * 0x94D049BB133111EBL; - return value ^ (value >>> 31); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/CloverNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/CloverNoise.java deleted file mode 100644 index 8f9ae0808..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/CloverNoise.java +++ /dev/null @@ -1,1167 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.noise; - -public class CloverNoise implements NoiseGenerator { - private final Noise2D n2; - private final Noise3D n3; - - public CloverNoise(long seed) { - n2 = new CloverNoise.Noise2D(seed); - n3 = new CloverNoise.Noise3D(seed); - } - - @Override - public double noise(double x) { - return n2.noise(x, 0); - } - - @Override - public double noise(double x, double z) { - return n2.noise(x, z); - } - - @Override - public double noise(double x, double y, double z) { - return n3.noise(x, y, z); - } - - /** - * Java implementation of 2D Clover Noise. See https://github.com/ValgoBoi/clover-noise - */ - public static class Noise2D { - private static final long HASH_A = 25214903917L; - private static final long HASH_C = 11L; - private static final long HASH_M = 0x1000000000000L; - private static final double POINT_SPREAD = 0.3; - private static final double CURL_DX = 0.0001; - private final long seed; - - /** - * Constructs a new 2D Clover Noise generator with a specific seed. - * - * @param seed The seed for the noise generator. - */ - public Noise2D(long seed) { - this.seed = seed; - } - - /** - * Constructs a new 2D Clover Noise generator, with the seed automatically set to the system time. - */ - public Noise2D() { - this(System.currentTimeMillis()); - } - - private long doHash(long input, long seed) { - input += seed; - - if (input < 0) { - input += HASH_M; - } - - input *= HASH_A; - input += HASH_C; - input %= HASH_M; - - return input; - } - - private long mix(long input) { - input = (input ^ (input >>> 33)) * 0xff51afd7ed558ccdL; - input = (input ^ (input >>> 33)) * 0xc4ceb9fe1a85ec53L; - return input ^ (input >>> 33); - } - - private double hash(Vector2 position) { - long x = (long) Math.floor(position.getX()); - long y = (long) Math.floor(position.getY()); - long hash = seed; - hash ^= mix(x + 0x9E3779B97F4A7C15L); - hash ^= mix(y + 0xC2B2AE3D27D4EB4FL); - hash = mix(hash); - hash &= (HASH_M - 1); - if (hash < 0) { - hash += HASH_M; - } - - return (double) hash / HASH_M; - } - - private Vector2 offset(Vector2 position) { - double hash = hash(position); - double scale = Math.floor(hash * 50 + 1) / 100; - double angle = hash * Math.PI * 100; - double offsetX = Math.sin(angle) * scale + 0.5; - double offsetY = Math.cos(angle) * scale + 0.5; - return new Vector2( - position.x + offsetX * (POINT_SPREAD * 2) + (0.5 - POINT_SPREAD), - position.y + offsetY * (POINT_SPREAD * 2) + (0.5 - POINT_SPREAD)); - } - - /** - * Generates 2D Clover Noise at a specific point. - * - * @param p The point to generate noise at. - * @return The value of noise, from 0 to 1. - */ - public double noise(Vector2 p) { - Vector2 p_floor = p.floor(); - - Vector2 c_11 = offset(p_floor); - Vector2 c_01 = offset(p_floor.add(-1, 0)); - Vector2 c_21 = offset(p_floor.add(1, 0)); - - Vector2 d_p_c11 = p.sub(c_11).yx(); - Vector2 m_p_c11 = d_p_c11.mult(c_11); - - double side_nx = m_p_c11.sub(d_p_c11.mult(c_01)).ymx(); - double side_px = m_p_c11.sub(d_p_c11.mult(c_21)).ymx(); - - Vector2 a, c, d; - - if (side_nx < 0 && p.x < c_11.x || side_px > 0 && p.x > c_11.x) { - Vector2 c_12 = offset(p_floor.add(0, 1)); - double side_py = m_p_c11.sub(d_p_c11.mult(c_12)).ymx(); - - if (side_py > 0) { - a = c_12; - c = c_01; - d = new Vector2(-1, 1); - } else { - a = c_21; - c = c_12; - d = new Vector2(1, 1); - } - } else { - Vector2 c_10 = offset(p_floor.add(0, -1)); - double side_ny = m_p_c11.sub(d_p_c11.mult(c_10)).ymx(); - - if (side_ny > 0) { - a = c_10; - c = c_21; - d = new Vector2(1, -1); - } else { - a = c_01; - c = c_10; - d = new Vector2(-1, -1); - } - } - - d = offset(p_floor.add(d)); - - Vector2 f = a; - Vector2 g = c; - Vector2 h = d; - - Vector2 ac = a.sub(c); - Vector2 bd = c_11.sub(d); - - if (ac.x * ac.x + ac.y * ac.y < bd.x * bd.x + bd.y * bd.y) { - Vector2 pa = p.sub(a); - - if (pa.x * ac.y - pa.y * ac.x > 0.) { - h = c_11; - } - } else { - Vector2 pb = p.sub(c_11); - - if (pb.x * bd.y - pb.y * bd.x > 0) { - f = c_11; - } else { - g = c_11; - } - } - - Vector2 bc_v0 = g.sub(f); - Vector2 bc_v1 = h.sub(f); - Vector2 bc_v2 = p.sub(f); - double den = 1 / (bc_v0.x * bc_v1.y - bc_v1.x * bc_v0.y); - double v = (bc_v2.x * bc_v1.y - bc_v1.x * bc_v2.y) * den; - double w = (bc_v0.x * bc_v2.y - bc_v2.x * bc_v0.y) * den; - double u = 1 - v - w; - - v = v * v * v; - w = w * w * w; - u = u * u * u; - double s = 1 / (u + v + w); - v *= s; - w *= s; - u *= s; - - double fv = hash(f); - double gv = hash(g); - double hv = hash(h); - - return u * fv + v * gv + w * hv; - } - - /** - * Generates 2D Clover Noise at a specific point. - * - * @param x The x coordinate of the point. - * @param y The y coordinate of the point. - * @return The value of noise, from 0 to 1. - */ - public double noise(double x, double y) { - return noise(new Vector2(x, y)); - } - - /** - * Generates fractal 2D Clover Noise at a specific point. - * - * @param p The point to generate noise at. - * @param iterations The number of iterations for the fractal noise. - * @return The value of noise, from 0 to 1. - */ - public double fractalNoise(Vector2 p, int iterations) { - iterations = Math.max(1, Math.min(16, iterations)); - double total = 0; - double weight = 1; - double div = 0; - - for (int i = 0; i < iterations; i++) { - total += noise(p.mult(1 / weight)) * weight; - div += weight; - - weight *= 0.4; - } - - return total / div; - } - - /** - * Generates fractal 2D Clover Noise at a specific point. - * - * @param x The x coordinate of the point. - * @param y The y coordinate of the point. - * @param iterations The number of iterations for the fractal noise. - * @return The value of noise, from 0 to 1. - */ - public double fractalNoise(double x, double y, int iterations) { - return fractalNoise(new Vector2(x, y), iterations); - } - - /** - * Generates curl 2D Clover Noise at a specific point. - * - * @param p The point to generate noise at. - * @return The value of curl noise, a normalized 2D vector. - */ - public Vector2 curlNoise(Vector2 p) { - double v = noise(p); - double x = noise(p.add(CURL_DX, 0)); - double y = noise(p.add(0, CURL_DX)); - - return new Vector2(v - x, v - y).normalize(); - } - - /** - * Generates curl 2D Clover Noise at a specific point. - * - * @param x The x coordinate of the point. - * @param y The y coordinate of the point. - * @return The value of curl noise, a normalized 2D vector. - */ - public Vector2 curlNoise(double x, double y) { - return curlNoise(new Vector2(x, y)); - } - - /** - * Generates fractal curl 2D Clover Noise at a specific point. - * - * @param p The point to generate noise at. - * @param iterations The number of iterations for the fractal noise. - * @return The value of curl noise, a normalized 2D vector. - */ - public Vector2 fractalCurlNoise(Vector2 p, int iterations) { - double v = fractalNoise(p, iterations); - double x = fractalNoise(p.add(CURL_DX, 0), iterations); - double y = fractalNoise(p.add(0, CURL_DX), iterations); - - return new Vector2(v - x, v - y).normalize(); - } - - /** - * Generates fractal curl 2D Clover Noise at a specific point. - * - * @param x The x coordinate of the point. - * @param y The y coordinate of the point. - * @param iterations The number of iterations for the fractal noise. - * @return The value of curl noise, a normalized 2D vector. - */ - public Vector2 fractalCurlNoise(double x, double y, int iterations) { - return fractalCurlNoise(new Vector2(x, y), iterations); - } - - /** - * Generates 2D Frost Noise at a specific point. See https://github.com/ValgoBoi/clover-noise/blob/master/variations/frost.md - * - * @param p The point to generate noise at. - * @return The value of noise, from 0 to 1. - */ - public double frostNoise(Vector2 p) { - Vector2 curl_1 = fractalCurlNoise(p, 3).mult(fractalNoise(p, 2) * 0.4 + 0.3); - Vector2 p_1 = p.add(curl_1); - Vector2 curl_2 = fractalCurlNoise(p_1, 4).mult(fractalNoise(p_1, 3) * 0.1 + 0.05); - Vector2 p_2 = p_1.add(curl_2); - - return fractalNoise(p_2, 5) - fractalNoise(p_1, 3) * 0.5 + fractalNoise(p, 2) * 0.3; - } - - /** - * Generates 2D Frost Noise at a specific point. See https://github.com/ValgoBoi/clover-noise/blob/master/variations/frost.md - * - * @param x The x coordinate of the point. - * @param y The y coordinate of the point. - * @return The value of noise, from 0 to 1. - */ - public double frostNoise(double x, double y) { - return frostNoise(new Vector2(x, y)); - } - - /** - * Generates 2D Marble Noise at a specific point. See https://github.com/ValgoBoi/clover-noise/blob/master/variations/marble.md - * - * @param p The point to generate noise at. - * @return The value of noise, from 0 to 1. - */ - public double marbleNoise(Vector2 p) { - Vector2 p_2 = p.mult(0.6); - double d1 = Math.max(1 - Math.abs(fractalNoise(p_2.add(100), 4) - fractalNoise(p_2.add(200), 3)) * 3, 0); - d1 = d1 * d1 * d1; - d1 *= fractalNoise(p_2.add(300), 2) * 0.3; - - Vector2 curl_1 = fractalCurlNoise(p.add(400), 3).mult(fractalNoise(p.add(500), 2) * 0.05); - - Vector2 p_3 = p.mult(1.2); - double d2 = Math.max(1 - Math.abs(fractalNoise(p_3.add(curl_1).add(600), 4) - fractalNoise(p_3.add(curl_1).add(700), 3)) * 2, 0); - d2 = d2 * d2 * d2; - d2 *= fractalNoise(p_3.add(800), 2) * 0.5; - - double v = 1 - fractalNoise(p.add(900), 5); - v = 1 - v * v * v; - - return Math.min(Math.max(v - d1 - d2, 0), 1); - } - - /** - * Generates 2D Marble Noise at a specific point. See https://github.com/ValgoBoi/clover-noise/blob/master/variations/marble.md - * - * @param x The x coordinate of the point. - * @param y The y coordinate of the point. - * @return The value of noise, from 0 to 1. - */ - public double marbleNoise(double x, double y) { - return marbleNoise(new Vector2(x, y)); - } - } - - public static class Noise3D { - private static final long HASH_A = 25214903917L; - private static final long HASH_C = 11L; - private static final long HASH_M = 0x1000000000000L; - private static final double POINT_SPREAD = 0.2; - private static final double CURL_DX = 0.0001; - private static final double[] HEIGHT_SINES = new double[1000]; - private static final double[] HEIGHT_COSINES = new double[1000]; - private static final ThreadLocal SAMPLE_VERTICES = ThreadLocal.withInitial(Noise3D::createSampleVertices); - - static { - for (int index = 0; index < HEIGHT_SINES.length; index++) { - double height = (((index + 0.5D) / 100D) % 1D - 0.5D) * Math.PI / 2D; - HEIGHT_SINES[index] = Math.sin(height); - HEIGHT_COSINES[index] = Math.cos(height); - } - } - - private final long seed; - - public Noise3D(long seed) { - this.seed = seed; - } - - public Noise3D() { - this(System.currentTimeMillis()); - } - - private static Vector3[] createSampleVertices() { - Vector3[] vertices = new Vector3[21]; - for (int index = 0; index < vertices.length; index++) { - vertices[index] = new Vector3(); - } - return vertices; - } - - private long doHash(long input, long seed) { - input += seed; - - if (input < 0) { - input += HASH_M; - } - - input *= HASH_A; - input += HASH_C; - input %= HASH_M; - - return input; - } - - private long mix(long input) { - input = (input ^ (input >>> 33)) * 0xff51afd7ed558ccdL; - input = (input ^ (input >>> 33)) * 0xc4ceb9fe1a85ec53L; - return input ^ (input >>> 33); - } - - private double hash(Vector3 position) { - return hash(position.x, position.y, position.z); - } - - private double hash(double positionX, double positionY, double positionZ) { - long x = (long) Math.floor(positionX); - long y = (long) Math.floor(positionY); - long z = (long) Math.floor(positionZ); - long hash = seed; - hash ^= mix(x + 0x9E3779B97F4A7C15L); - hash ^= mix(y + 0xC2B2AE3D27D4EB4FL); - hash ^= mix(z + 0x165667B19E3779F9L); - hash = mix(hash); - hash &= (HASH_M - 1); - if (hash < 0) { - hash += HASH_M; - } - - return (double) hash / HASH_M; - } - - private Vector3 offset(Vector3 destination, Vector3 position, double xOffset, double yOffset, double zOffset) { - return offset(destination, position.x + xOffset, position.y + yOffset, position.z + zOffset); - } - - private Vector3 offset(Vector3 destination, double positionX, double positionY, double positionZ) { - double hash = hash(positionX, positionY, positionZ); - double theta = hash * Math.PI * 2000; - int heightIndex = (int) (hash * 1000D); - double layer = Math.floor(hash * 10 + 1) / 10; - double cosHeight = HEIGHT_COSINES[heightIndex]; - double offsetX = Math.sin(theta) * cosHeight * layer + 0.5; - double offsetY = HEIGHT_SINES[heightIndex] * layer + 0.5; - double offsetZ = Math.cos(theta) * cosHeight * layer + 0.5; - destination.x = positionX + (offsetX * (POINT_SPREAD * 2) + (0.5 - POINT_SPREAD)); - destination.y = positionY + (offsetY * (POINT_SPREAD * 2) + (0.5 - POINT_SPREAD)); - destination.z = positionZ + (offsetZ * (POINT_SPREAD * 2) + (0.5 - POINT_SPREAD)); - return destination; - } - - private boolean boundary(int permutation, Vector3 p, Vector3 c_00, Vector3 c_10, Vector3 c_20, Vector3 c_01, Vector3 c_11, Vector3 c_21, Vector3 c_02, Vector3 c_12, Vector3 c_22) { - double px = permutedX(p, permutation); - double py = permutedY(p, permutation); - double pz = permutedZ(p, permutation); - double c11x = permutedX(c_11, permutation); - double c11y = permutedY(c_11, permutation); - double deltaX = py - c11y; - double deltaY = px - c11x; - double multipliedX = deltaX * c11x; - double multipliedY = deltaY * c11y; - - double side_nx = side(multipliedX, multipliedY, deltaX, deltaY, c_01, permutation); - double side_px = side(multipliedX, multipliedY, deltaX, deltaY, c_21, permutation); - - Vector3 a, b, c, d; - - if (side_nx < 0 && px < c11x || side_px > 0 && px >= c11x) { - double side_py = side(multipliedX, multipliedY, deltaX, deltaY, c_12, permutation); - - if (side_py > 0.) { - a = c_01; - b = c_02; - c = c_12; - d = c_11; - } else { - a = c_11; - b = c_12; - c = c_22; - d = c_21; - } - } else { - double side_ny = side(multipliedX, multipliedY, deltaX, deltaY, c_10, permutation); - - if (side_ny > 0.) { - a = c_10; - b = c_11; - c = c_21; - d = c_20; - } else { - a = c_00; - b = c_01; - c = c_11; - d = c_10; - } - } - - Vector3 f = a; - Vector3 g = c; - Vector3 h = d; - - double acx = permutedX(a, permutation) - permutedX(c, permutation); - double acy = permutedY(a, permutation) - permutedY(c, permutation); - double pax = px - permutedX(a, permutation); - double pay = py - permutedY(a, permutation); - - if (pax * acy - pay * acx > 0) { - h = b; - } - - double fx = permutedX(f, permutation); - double fy = permutedY(f, permutation); - double v0x = permutedX(g, permutation) - fx; - double v0y = permutedY(g, permutation) - fy; - double v1x = permutedX(h, permutation) - fx; - double v1y = permutedY(h, permutation) - fy; - double v2x = px - fx; - double v2y = py - fy; - double den = 1 / (v0x * v1y - v1x * v0y); - double v = (v2x * v1y - v1x * v2y) * den; - double w = (v0x * v2y - v2x * v0y) * den; - double u = 1 - v - w; - - return pz < u * permutedZ(f, permutation) - + v * permutedZ(g, permutation) - + w * permutedZ(h, permutation); - } - - private static double side(double multipliedX, double multipliedY, double deltaX, double deltaY, Vector3 candidate, int permutation) { - double x = multipliedX - deltaX * permutedX(candidate, permutation); - double y = multipliedY - deltaY * permutedY(candidate, permutation); - return y - x; - } - - private static double permutedX(Vector3 vector, int permutation) { - return switch (permutation) { - case 1 -> vector.y; - default -> vector.x; - }; - } - - private static double permutedY(Vector3 vector, int permutation) { - return permutation == 0 ? vector.y : vector.z; - } - - private static double permutedZ(Vector3 vector, int permutation) { - return switch (permutation) { - case 1 -> vector.x; - case 2 -> vector.y; - default -> vector.z; - }; - } - - /** - * Generates 3D Clover Noise at a specific point. - * - * @param p The point to generate noise at. - * @return The value of noise, from 0 to 1. - */ - public double noise(Vector3 p) { - return sample(p, SAMPLE_VERTICES.get()); - } - - private double sample(Vector3 p, Vector3[] vertices) { - Vector3 p_floor = vertices[20]; - p_floor.x = Math.floor(p.x); - p_floor.y = Math.floor(p.y); - p_floor.z = Math.floor(p.z); - - Vector3 c_111 = offset(vertices[0], p_floor.x, p_floor.y, p_floor.z); - Vector3 c_100 = offset(vertices[1], p_floor, 0, -1, -1); - Vector3 c_010 = offset(vertices[2], p_floor, -1, 0, -1); - Vector3 c_110 = offset(vertices[3], p_floor, 0, 0, -1); - Vector3 c_210 = offset(vertices[4], p_floor, 1, 0, -1); - Vector3 c_120 = offset(vertices[5], p_floor, 0, 1, -1); - Vector3 c_001 = offset(vertices[6], p_floor, -1, -1, 0); - Vector3 c_101 = offset(vertices[7], p_floor, 0, -1, 0); - Vector3 c_201 = offset(vertices[8], p_floor, 1, -1, 0); - Vector3 c_011 = offset(vertices[9], p_floor, -1, 0, 0); - Vector3 c_211 = offset(vertices[10], p_floor, 1, 0, 0); - Vector3 c_021 = offset(vertices[11], p_floor, -1, 1, 0); - Vector3 c_121 = offset(vertices[12], p_floor, 0, 1, 0); - Vector3 c_221 = offset(vertices[13], p_floor, 1, 1, 0); - Vector3 c_102 = offset(vertices[14], p_floor, 0, -1, 1); - Vector3 c_012 = offset(vertices[15], p_floor, -1, 0, 1); - Vector3 c_112 = offset(vertices[16], p_floor, 0, 0, 1); - Vector3 c_212 = offset(vertices[17], p_floor, 1, 0, 1); - Vector3 c_122 = offset(vertices[18], p_floor, 0, 1, 1); - - boolean x_bound = boundary(1, p, c_100, c_110, c_120, c_101, c_111, c_121, c_102, c_112, c_122); - boolean y_bound = boundary(2, p, c_010, c_110, c_210, c_011, c_111, c_211, c_012, c_112, c_212); - boolean z_bound = boundary(0, p, c_001, c_101, c_201, c_011, c_111, c_211, c_021, c_121, c_221); - - Vector3 a, b, c, d, e, f, g, h; - - if (x_bound) { - if (y_bound) { - if (z_bound) { - a = offset(vertices[19], p_floor, -1, -1, -1); - b = c_001; - c = c_010; - d = c_011; - e = c_100; - f = c_101; - g = c_110; - h = c_111; - } else { - a = c_001; - b = offset(vertices[19], p_floor, -1, -1, 1); - c = c_011; - d = c_012; - e = c_101; - f = c_102; - g = c_111; - h = c_112; - } - } else { - if (z_bound) { - a = c_010; - b = c_011; - c = offset(vertices[19], p_floor, -1, 1, -1); - d = c_021; - e = c_110; - f = c_111; - g = c_120; - h = c_121; - } else { - a = c_011; - b = c_012; - c = c_021; - d = offset(vertices[19], p_floor, -1, 1, 1); - e = c_111; - f = c_112; - g = c_121; - h = c_122; - } - } - } else { - if (y_bound) { - if (z_bound) { - a = c_100; - b = c_101; - c = c_110; - d = c_111; - e = offset(vertices[19], p_floor, 1, -1, -1); - f = c_201; - g = c_210; - h = c_211; - } else { - a = c_101; - b = c_102; - c = c_111; - d = c_112; - e = c_201; - f = offset(vertices[19], p_floor, 1, -1, 1); - g = c_211; - h = c_212; - } - } else { - if (z_bound) { - a = c_110; - b = c_111; - c = c_120; - d = c_121; - e = c_210; - f = c_211; - g = offset(vertices[19], p_floor, 1, 1, -1); - h = c_221; - } else { - a = c_111; - b = c_112; - c = c_121; - d = c_122; - e = c_211; - f = c_212; - g = c_221; - h = offset(vertices[19], p_floor, 1, 1, 1); - } - } - } - - double plane_b = dotDifferenceCrossDifferences(p, a, a, h, b, h); - double plane_c = dotDifferenceCrossDifferences(p, a, a, h, c, h); - double plane_d = dotDifferenceCrossDifferences(p, a, a, h, d, h); - double plane_e = dotDifferenceCrossDifferences(p, a, a, h, e, h); - double plane_f = dotDifferenceCrossDifferences(p, a, a, h, f, h); - double plane_g = dotDifferenceCrossDifferences(p, a, a, h, g, h); - - Vector3 i, j, k, l; - - i = a; - j = h; - - if (plane_b > 0 && plane_d <= 0) { - k = b; - l = d; - } else if (plane_d > 0 && plane_c <= 0) { - k = d; - l = c; - } else if (plane_c > 0 && plane_g <= 0) { - k = c; - l = g; - } else if (plane_g > 0 && plane_e <= 0) { - k = g; - l = e; - } else if (plane_e > 0 && plane_f <= 0) { - k = e; - l = f; - } else { - k = f; - l = b; - } - - double bc_va6 = dotDifferenceCrossDifferences(p, j, l, j, k, j); - double bc_vb6 = dotDifferenceCrossDifferences(p, i, k, i, l, i); - double bc_vc6 = dotDifferenceCrossDifferences(p, i, l, i, j, i); - double bc_vd6 = dotDifferenceCrossDifferences(p, i, j, i, k, i); - double bc_v6 = 1 / dotDifferenceCrossDifferences(j, i, k, i, l, i); - - double v = bc_va6 * bc_v6; - double w = bc_vb6 * bc_v6; - double t = bc_vc6 * bc_v6; - double u = bc_vd6 * bc_v6; - - double fiu = u * u * u * (1 - v * w * t); - double fiv = v * v * v * (1 - u * w * t); - double fiw = w * w * w * (1 - v * u * t); - double fit = t * t * t * (1 - v * w * u); - double s = fiu + fiv + fiw + fit; - fiu /= s; - fiv /= s; - fiw /= s; - fit /= s; - - double iv = hash(i); - double jv = hash(j); - double kv = hash(k); - double lv = hash(l); - - return fiv * iv + fiw * jv + fit * kv + fiu * lv; - } - - private static double dotDifferenceCrossDifferences( - Vector3 dotValue, - Vector3 dotOrigin, - Vector3 crossLeftValue, - Vector3 crossLeftOrigin, - Vector3 crossRightValue, - Vector3 crossRightOrigin - ) { - double dotX = dotValue.x - dotOrigin.x; - double dotY = dotValue.y - dotOrigin.y; - double dotZ = dotValue.z - dotOrigin.z; - double leftX = crossLeftValue.x - crossLeftOrigin.x; - double leftY = crossLeftValue.y - crossLeftOrigin.y; - double leftZ = crossLeftValue.z - crossLeftOrigin.z; - double rightX = crossRightValue.x - crossRightOrigin.x; - double rightY = crossRightValue.y - crossRightOrigin.y; - double rightZ = crossRightValue.z - crossRightOrigin.z; - double crossX = leftY * rightZ - leftZ * rightY; - double crossY = leftZ * rightX - leftX * rightZ; - double crossZ = leftX * rightY - leftY * rightX; - return dotX * crossX + dotY * crossY + dotZ * crossZ; - } - - /** - * Generates 3D Clover Noise at a specific point. - * - * @param x The x coordinate of the point. - * @param y The y coordinate of the point. - * @param z The z coordinate of the point. - * @return The value of noise, from 0 to 1. - */ - public double noise(double x, double y, double z) { - return noise(new Vector3(x, y, z)); - } - - /** - * Generates fractal 3D Clover Noise at a specific point. - * - * @param p The point to generate noise at. - * @param iterations The number of iterations for the fractal noise. - * @return The value of noise, from 0 to 1. - */ - public double fractalNoise(Vector3 p, int iterations) { - iterations = Math.max(1, Math.min(16, iterations)); - double total = 0; - double weight = 1; - double div = 0; - - for (int i = 0; i < iterations; i++) { - total += noise(p.mult(1 / weight)) * weight; - div += weight; - - weight *= 0.4; - } - - return total / div; - } - - /** - * Generates fractal 3D Clover Noise at a specific point. - * - * @param x The x coordinate of the point. - * @param y The y coordinate of the point. - * @param z The z coordinate of the point. - * @param iterations The number of iterations for the fractal noise. - * @return The value of noise, from 0 to 1. - */ - public double fractalNoise(double x, double y, double z, int iterations) { - return fractalNoise(new Vector3(x, y, z), iterations); - } - - /** - * Generates curl 3D Clover Noise at a specific point. - * - * @param p The point to generate noise at. - * @return The value of curl noise, a normalized 3D vector. - */ - public Vector3 curlNoise(Vector3 p) { - double v = noise(p); - double x = noise(p.add(CURL_DX, 0, 0)); - double y = noise(p.add(0, CURL_DX, 0)); - double z = noise(p.add(0, 0, CURL_DX)); - - return new Vector3(v - x, v - y, v - z).normalize(); - } - - /** - * Generates curl 3D Clover Noise at a specific point. - * - * @param x The x coordinate of the point. - * @param y The y coordinate of the point. - * @param z The z coordinate of the point. - * @return The value of curl noise, a normalized 3D vector. - */ - public Vector3 curlNoise(double x, double y, double z) { - return curlNoise(new Vector3(x, y, z)); - } - - /** - * Generates fractal curl 3D Clover Noise at a specific point. - * - * @param p The point to generate noise at. - * @param iterations The number of iterations for the fractal noise. - * @return The value of curl noise, a normalized 3D vector. - */ - public Vector3 fractalCurlNoise(Vector3 p, int iterations) { - double v = fractalNoise(p, iterations); - double x = fractalNoise(p.add(CURL_DX, 0, 0), iterations); - double y = fractalNoise(p.add(0, CURL_DX, 0), iterations); - double z = fractalNoise(p.add(0, 0, CURL_DX), iterations); - - return new Vector3(v - x, v - y, v - z).normalize(); - } - - /** - * Generates fractal curl 3D Clover Noise at a specific point. - * - * @param x The x coordinate of the point. - * @param y The y coordinate of the point. - * @param z The z coordinate of the point. - * @param iterations The number of iterations for the fractal noise. - * @return The value of curl noise, a normalized 3D vector. - */ - public Vector3 fractalCurlNoise(double x, double y, double z, int iterations) { - return fractalCurlNoise(new Vector3(x, y, z), iterations); - } - - /** - * Generates 3D Frost Noise at a specific point. See https://github.com/ValgoBoi/clover-noise/blob/master/variations/frost.md - * - * @param p The point to generate noise at. - * @return The value of noise, from 0 to 1. - */ - public double frostNoise(Vector3 p) { - Vector3 curl_1 = fractalCurlNoise(p, 3).mult(fractalNoise(p, 2) * 0.4 + 0.3); - Vector3 p_1 = p.add(curl_1); - Vector3 curl_2 = fractalCurlNoise(p_1, 4).mult(fractalNoise(p_1, 3) * 0.1 + 0.05); - Vector3 p_2 = p_1.add(curl_2); - - return fractalNoise(p_2, 5) - fractalNoise(p_1, 3) * 0.5 + fractalNoise(p, 2) * 0.3; - } - - /** - * Generates 3D Frost Noise at a specific point. See https://github.com/ValgoBoi/clover-noise/blob/master/variations/frost.md - * - * @param x The x coordinate of the point. - * @param y The y coordinate of the point. - * @param z The z coordinate of the point. - * @return The value of noise, from 0 to 1. - */ - public double frostNoise(double x, double y, double z) { - return frostNoise(new Vector3(x, y, z)); - } - - /** - * Generates 3D Marble Noise at a specific point. See https://github.com/ValgoBoi/clover-noise/blob/master/variations/marble.md - * - * @param p The point to generate noise at. - * @return The value of noise, from 0 to 1. - */ - public double marbleNoise(Vector3 p) { - Vector3 p_2 = p.mult(0.6); - double d1 = Math.max(1 - Math.abs(fractalNoise(p_2.add(100), 4) - fractalNoise(p_2.add(200), 3)) * 3, 0); - d1 = d1 * d1 * d1; - d1 *= fractalNoise(p_2.add(300), 2) * 0.3; - - Vector3 curl_1 = fractalCurlNoise(p.add(400), 3).mult(fractalNoise(p.add(500), 2) * 0.05); - - Vector3 p_3 = p.mult(1.2); - double d2 = Math.max(1 - Math.abs(fractalNoise(p_3.add(curl_1).add(600), 4) - fractalNoise(p_3.add(curl_1).add(700), 3)) * 2, 0); - d2 = d2 * d2 * d2; - d2 *= fractalNoise(p_3.add(800), 2) * 0.5; - - double v = 1 - fractalNoise(p.add(900), 5); - v = 1 - v * v * v; - - return Math.min(Math.max(v - d1 - d2, 0), 1); - } - - /** - * Generates 3D Marble Noise at a specific point. See https://github.com/ValgoBoi/clover-noise/blob/master/variations/marble.md - * - * @param x The x coordinate of the point. - * @param y The y coordinate of the point. - * @param z The z coordinate of the point. - * @return The value of noise, from 0 to 1. - */ - public double marbleNoise(double x, double y, double z) { - return marbleNoise(new Vector3(x, y, z)); - } - } - - /** - * A 2-dimensional Vector, with methods relevant to the Clover Noise algorithm. - */ - public static class Vector2 { - private double x, y; - - public Vector2(double x, double y) { - this.x = x; - this.y = y; - } - - public Vector2() { - this(0, 0); - } - - public double getX() { - return x; - } - - public void setX(double x) { - this.x = x; - } - - public double getY() { - return y; - } - - public void setY(double y) { - this.y = y; - } - - public double ymx() { - return y - x; - } - - public Vector2 yx() { - return new Vector2(y, x); - } - - public Vector2 negate() { - return new Vector2(-x, -y); - } - - public Vector2 floor() { - return new Vector2(Math.floor(x), Math.floor(y)); - } - - public Vector2 normalize() { - double len2 = x * x + y * y; - if (len2 == 0D) { - return new Vector2(0D, 0D); - } - double len = Math.sqrt(len2); - - return new Vector2(x / len, y / len); - } - - public Vector2 add(Vector2 a) { - return new Vector2(x + a.x, y + a.y); - } - - public Vector2 add(double xa, double ya) { - return new Vector2(x + xa, y + ya); - } - - public Vector2 add(double a) { - return add(a, a); - } - - public Vector2 sub(Vector2 s) { - return new Vector2(x - s.x, y - s.y); - } - - public Vector2 sub(double xs, double ys) { - return new Vector2(x - xs, y - ys); - } - - public Vector2 sub(double s) { - return sub(s, s); - } - - public Vector2 mult(Vector2 m) { - return new Vector2(x * m.x, y * m.y); - } - - public Vector2 mult(double xm, double ym) { - return new Vector2(x * xm, y * ym); - } - - public Vector2 mult(double m) { - return mult(m, m); - } - } - - /** - * A 3-dimensional Vector, with methods relevant to the Clover Noise algorithm. - */ - public static class Vector3 { - double x, y, z; - - public Vector3(double x, double y, double z) { - this.x = x; - this.y = y; - this.z = z; - } - - public Vector3() { - this(0, 0, 0); - } - - public double getX() { - return x; - } - - public void setX(double x) { - this.x = x; - } - - public double getY() { - return y; - } - - public void setY(double y) { - this.y = y; - } - - public double getZ() { - return z; - } - - public void setZ(double z) { - this.z = z; - } - - public Vector2 xy() { - return new Vector2(x, y); - } - - public Vector2 yx() { - return new Vector2(y, x); - } - - public Vector3 yzx() { - return new Vector3(y, z, x); - } - - public Vector3 xzy() { - return new Vector3(x, z, y); - } - - public double xpypz() { - return x + y + z; - } - - public Vector3 negate() { - return new Vector3(-x, -y, -z); - } - - public Vector3 floor() { - return new Vector3(Math.floor(x), Math.floor(y), Math.floor(z)); - } - - public Vector3 normalize() { - double len2 = x * x + y * y + z * z; - if (len2 == 0D) { - return new Vector3(0D, 0D, 0D); - } - double len = Math.sqrt(len2); - - return new Vector3(x / len, y / len, z / len); - } - - public Vector3 add(Vector3 a) { - return new Vector3(x + a.x, y + a.y, z + a.z); - } - - public Vector3 add(double xa, double ya, double za) { - return new Vector3(x + xa, y + ya, z + za); - } - - public Vector3 add(double a) { - return add(a, a, a); - } - - public Vector3 sub(Vector3 s) { - return new Vector3(x - s.x, y - s.y, z - s.z); - } - - public Vector3 sub(double xs, double ys, double zs) { - return new Vector3(x - xs, y - ys, z - zs); - } - - public Vector3 sub(double s) { - return sub(s, s, s); - } - - public Vector3 mult(Vector3 m) { - return new Vector3(x * m.x, y * m.y, z * m.z); - } - - public Vector3 mult(double mx, double my, double mz) { - return new Vector3(x * mx, y * my, z * mz); - } - - public Vector3 mult(double m) { - return mult(m, m, m); - } - - public Vector3 cross(Vector3 c) { - return new Vector3(y * c.z - z * c.y, z * c.x - x * c.z, x * c.y - y * c.x); - } - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/CraterNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/CraterNoise.java deleted file mode 100644 index e358f08e7..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/CraterNoise.java +++ /dev/null @@ -1,62 +0,0 @@ -package art.arcane.iris.util.project.noise; - -public final class CraterNoise extends PatternNoise { - private static final double CENTER_SPREAD = 0.6D / 65535D; - private static final double MAX_SUPPORT_SQUARED = 0.6D * 0.6D * 1.35D; - - private final long seed; - - public CraterNoise(long seed) { - this.seed = seed; - } - - @Override - protected double sample(double x, double y, double z) { - long cellX = (long) Math.floor(x); - long cellY = (long) Math.floor(y); - long cellZ = (long) Math.floor(z); - double bowl = 0D; - double rim = 0D; - - for (int offsetY = -1; offsetY <= 1; offsetY++) { - long pointY = cellY + offsetY; - long hashY = pointY * 0xC2B2AE3D27D4EB4FL; - for (int offsetZ = -1; offsetZ <= 1; offsetZ++) { - long pointZ = cellZ + offsetZ; - long hashYZ = hashY ^ pointZ * 0x165667B19E3779F9L; - for (int offsetX = -1; offsetX <= 1; offsetX++) { - long pointX = cellX + offsetX; - long hash = mix(seed ^ pointX * 0x9E3779B97F4A7C15L ^ hashYZ); - double deltaX = x - (pointX + 0.2D + (hash & 65535L) * CENTER_SPREAD); - double deltaY = y - (pointY + 0.2D + ((hash >>> 16) & 65535L) * CENTER_SPREAD); - double deltaZ = z - (pointZ + 0.2D + ((hash >>> 32) & 65535L) * CENTER_SPREAD); - double distanceSquared = deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ; - if (distanceSquared >= MAX_SUPPORT_SQUARED) { - continue; - } - - double radius = 0.36D + (hash >>> 56) * (0.24D / 255D); - double relativeDistance = distanceSquared / (radius * radius); - if (relativeDistance >= 1.35D) { - continue; - } - - double depth = ((hash >>> 48) & 255L) / 255D; - double depression = Math.max(0D, 1D - relativeDistance); - bowl = Math.min(bowl, -(0.28D + depth * 0.17D) * depression * depression); - double rimDistance = (relativeDistance - 1D) / 0.35D; - double ridge = Math.max(0D, 1D - rimDistance * rimDistance); - rim = Math.max(rim, (0.18D + (1D - depth) * 0.12D) * ridge * ridge); - } - } - } - - return 0.5D + bowl + rim; - } - - private static long mix(long value) { - value = (value ^ (value >>> 30)) * 0xBF58476D1CE4E5B9L; - value = (value ^ (value >>> 27)) * 0x94D049BB133111EBL; - return value ^ (value >>> 31); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/CubicNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/CubicNoise.java deleted file mode 100644 index eef6afae9..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/CubicNoise.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.noise; - -import art.arcane.volmlib.util.math.RNG; - -public class CubicNoise implements NoiseGenerator { - private final FastNoiseDouble n; - - public CubicNoise(long seed) { - this.n = new FastNoiseDouble(new RNG(seed).lmax()); - } - - private double f(double n) { - return (n / 2D) + 0.5D; - } - - @Override - public double noise(double x) { - return f(n.GetCubic(x, 0)); - } - - @Override - public double noise(double x, double z) { - return f(n.GetCubic(x, z)); - } - - @Override - public double noise(double x, double y, double z) { - return f(n.GetCubic(x, y, z)); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/DuneNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/DuneNoise.java deleted file mode 100644 index 2472da3c4..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/DuneNoise.java +++ /dev/null @@ -1,61 +0,0 @@ -package art.arcane.iris.util.project.noise; - -public final class DuneNoise extends PatternNoise { - private static final double TAU = Math.PI * 2D; - - private final long seed; - private final double cosine; - private final double sine; - private final double phase; - - public DuneNoise(long seed) { - this.seed = seed; - phase = unit(mix(seed)) * TAU; - cosine = Math.cos(phase); - sine = Math.sin(phase); - } - - @Override - protected double sample(double x, double y, double z) { - double wind = x * cosine + z * sine + y * 0.17D; - double across = z * cosine - x * sine + 0.12D * Math.sin(y * 0.7D + phase); - long cellWind = (long) Math.floor(wind); - long cellAcross = (long) Math.floor(across); - double dune = 0D; - for (int offsetWind = -1; offsetWind <= 1; offsetWind++) { - long gridWind = cellWind + offsetWind; - for (int offsetAcross = -1; offsetAcross <= 1; offsetAcross++) { - long gridAcross = cellAcross + offsetAcross; - long hash = mix(seed ^ gridWind * 0x9E3779B97F4A7C15L ^ gridAcross * 0xD1B54A32D192ED03L); - double centerWind = gridWind + 0.2D + (hash & 65535L) * (0.6D / 65535D); - double centerAcross = gridAcross + 0.2D + ((hash >>> 16) & 65535L) * (0.6D / 65535D); - double width = 0.32D + ((hash >>> 32) & 255L) * (0.16D / 255D); - double transverse = (across - centerAcross) / width; - double transverseSquared = transverse * transverse; - if (transverseSquared >= 1D) { - continue; - } - double crest = centerWind + 0.43D * transverseSquared; - double offset = wind - crest; - double windward = 0.52D + ((hash >>> 40) & 255L) * (0.14D / 255D); - double leeward = 0.1D + ((hash >>> 48) & 255L) * (0.035D / 255D); - double slope = Math.max(0D, 1D - Math.abs(offset) / (offset < 0D ? windward : leeward)); - double horns = 1D - transverseSquared * transverseSquared; - double height = 0.62D + (hash >>> 56) * (0.38D / 255D); - dune = Math.max(dune, height * horns * horns * slope * slope * (3D - 2D * slope)); - } - } - double ripples = 0.04D + 0.035D * Math.cos(wind * TAU * 2D + 0.5D * Math.sin(across * 1.7D + phase)); - return ripples + (1D - ripples) * dune; - } - - private static long mix(long value) { - value = (value ^ (value >>> 30)) * 0xBF58476D1CE4E5B9L; - value = (value ^ (value >>> 27)) * 0x94D049BB133111EBL; - return value ^ (value >>> 31); - } - - private static double unit(long value) { - return (value >>> 11) * 0x1.0p-53D; - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/FastNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/FastNoise.java deleted file mode 100644 index bd21d37c4..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/FastNoise.java +++ /dev/null @@ -1,2197 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.noise; - -import art.arcane.volmlib.util.math.Vector2f; -import art.arcane.volmlib.util.math.Vector3f; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class FastNoise { - private static final Float2[] GRAD_2D = {new Float2(-1, -1), new Float2(1, -1), new Float2(-1, 1), new Float2(1, 1), new Float2(0, -1), new Float2(-1, 0), new Float2(0, 1), new Float2(1, 0), - }; - private static final Float3[] GRAD_3D = {new Float3(1, 1, 0), new Float3(-1, 1, 0), new Float3(1, -1, 0), new Float3(-1, -1, 0), new Float3(1, 0, 1), new Float3(-1, 0, 1), new Float3(1, 0, -1), new Float3(-1, 0, -1), new Float3(0, 1, 1), new Float3(0, -1, 1), new Float3(0, 1, -1), new Float3(0, -1, -1), new Float3(1, 1, 0), new Float3(0, -1, 1), new Float3(-1, 1, 0), new Float3(0, -1, -1), - }; - private static final Float2[] CELL_2D = {new Float2(-0.4313539279f, 0.1281943404f), new Float2(-0.1733316799f, 0.415278375f), new Float2(-0.2821957395f, -0.3505218461f), new Float2(-0.2806473808f, 0.3517627718f), new Float2(0.3125508975f, -0.3237467165f), new Float2(0.3383018443f, -0.2967353402f), new Float2(-0.4393982022f, -0.09710417025f), new Float2(-0.4460443703f, -0.05953502905f), new Float2(-0.302223039f, 0.3334085102f), new Float2(-0.212681052f, -0.3965687458f), new Float2(-0.2991156529f, 0.3361990872f), new Float2(0.2293323691f, 0.3871778202f), new Float2(0.4475439151f, -0.04695150755f), new Float2(0.1777518f, 0.41340573f), new Float2(0.1688522499f, -0.4171197882f), new Float2(-0.0976597166f, 0.4392750616f), new Float2(0.08450188373f, 0.4419948321f), new Float2(-0.4098760448f, -0.1857461384f), new Float2(0.3476585782f, -0.2857157906f), new Float2(-0.3350670039f, -0.30038326f), new Float2(0.2298190031f, -0.3868891648f), new Float2(-0.01069924099f, 0.449872789f), new Float2(-0.4460141246f, -0.05976119672f), new Float2(0.3650293864f, 0.2631606867f), new Float2(-0.349479423f, 0.2834856838f), new Float2(-0.4122720642f, 0.1803655873f), new Float2(-0.267327811f, 0.3619887311f), new Float2(0.322124041f, -0.3142230135f), new Float2(0.2880445931f, -0.3457315612f), new Float2(0.3892170926f, -0.2258540565f), new Float2(0.4492085018f, -0.02667811596f), new Float2(-0.4497724772f, 0.01430799601f), new Float2(0.1278175387f, -0.4314657307f), new Float2(-0.03572100503f, 0.4485799926f), new Float2(-0.4297407068f, -0.1335025276f), new Float2(-0.3217817723f, 0.3145735065f), new Float2(-0.3057158873f, 0.3302087162f), new Float2(-0.414503978f, 0.1751754899f), new Float2(-0.3738139881f, 0.2505256519f), new Float2(0.2236891408f, -0.3904653228f), new Float2(0.002967775577f, -0.4499902136f), new Float2(0.1747128327f, -0.4146991995f), new Float2(-0.4423772489f, -0.08247647938f), new Float2(-0.2763960987f, -0.355112935f), new Float2(-0.4019385906f, -0.2023496216f), new Float2(0.3871414161f, -0.2293938184f), new Float2(-0.430008727f, 0.1326367019f), new Float2(-0.03037574274f, -0.4489736231f), new Float2(-0.3486181573f, 0.2845441624f), new Float2(0.04553517144f, -0.4476902368f), new Float2(-0.0375802926f, 0.4484280562f), new Float2(0.3266408905f, 0.3095250049f), new Float2(0.06540017593f, -0.4452222108f), new Float2(0.03409025829f, 0.448706869f), new Float2(-0.4449193635f, 0.06742966669f), new Float2(-0.4255936157f, -0.1461850686f), new Float2(0.449917292f, 0.008627302568f), new Float2(0.05242606404f, 0.4469356864f), new Float2(-0.4495305179f, -0.02055026661f), new Float2(-0.1204775703f, 0.4335725488f), new Float2(-0.341986385f, -0.2924813028f), new Float2(0.3865320182f, 0.2304191809f), new Float2(0.04506097811f, -0.447738214f), new Float2(-0.06283465979f, 0.4455915232f), new Float2(0.3932600341f, -0.2187385324f), new Float2(0.4472261803f, -0.04988730975f), new Float2(0.3753571011f, -0.2482076684f), new Float2(-0.273662295f, 0.357223947f), new Float2(0.1700461538f, 0.4166344988f), new Float2(0.4102692229f, 0.1848760794f), new Float2(0.323227187f, -0.3130881435f), new Float2(-0.2882310238f, -0.3455761521f), new Float2(0.2050972664f, 0.4005435199f), new Float2(0.4414085979f, -0.08751256895f), new Float2(-0.1684700334f, 0.4172743077f), new Float2(-0.003978032396f, 0.4499824166f), new Float2(-0.2055133639f, 0.4003301853f), new Float2(-0.006095674897f, -0.4499587123f), new Float2(-0.1196228124f, -0.4338091548f), new Float2(0.3901528491f, -0.2242337048f), new Float2(0.01723531752f, 0.4496698165f), new Float2(-0.3015070339f, 0.3340561458f), new Float2(-0.01514262423f, -0.4497451511f), new Float2(-0.4142574071f, -0.1757577897f), new Float2(-0.1916377265f, -0.4071547394f), new Float2(0.3749248747f, 0.2488600778f), new Float2(-0.2237774255f, 0.3904147331f), new Float2(-0.4166343106f, -0.1700466149f), new Float2(0.3619171625f, 0.267424695f), new Float2(0.1891126846f, -0.4083336779f), new Float2(-0.3127425077f, 0.323561623f), new Float2(-0.3281807787f, 0.307891826f), new Float2(-0.2294806661f, 0.3870899429f), new Float2(-0.3445266136f, 0.2894847362f), new Float2(-0.4167095422f, -0.1698621719f), new Float2(-0.257890321f, -0.3687717212f), new Float2(-0.3612037825f, 0.2683874578f), new Float2(0.2267996491f, 0.3886668486f), new Float2(0.207157062f, 0.3994821043f), new Float2(0.08355176718f, -0.4421754202f), new Float2(-0.4312233307f, 0.1286329626f), new Float2(0.3257055497f, 0.3105090899f), new Float2(0.177701095f, -0.4134275279f), new Float2(-0.445182522f, 0.06566979625f), new Float2(0.3955143435f, 0.2146355146f), new Float2(-0.4264613988f, 0.1436338239f), new Float2(-0.3793799665f, -0.2420141339f), new Float2(0.04617599081f, -0.4476245948f), new Float2(-0.371405428f, -0.2540826796f), new Float2(0.2563570295f, -0.3698392535f), new Float2(0.03476646309f, 0.4486549822f), new Float2(-0.3065454405f, 0.3294387544f), new Float2(-0.2256979823f, 0.3893076172f), new Float2(0.4116448463f, -0.1817925206f), new Float2(-0.2907745828f, -0.3434387019f), new Float2(0.2842278468f, -0.348876097f), new Float2(0.3114589359f, -0.3247973695f), new Float2(0.4464155859f, -0.0566844308f), new Float2(-0.3037334033f, -0.3320331606f), new Float2(0.4079607166f, 0.1899159123f), new Float2(-0.3486948919f, -0.2844501228f), new Float2(0.3264821436f, 0.3096924441f), new Float2(0.3211142406f, 0.3152548881f), new Float2(0.01183382662f, 0.4498443737f), new Float2(0.4333844092f, 0.1211526057f), new Float2(0.3118668416f, 0.324405723f), new Float2(-0.272753471f, 0.3579183483f), new Float2(-0.422228622f, -0.1556373694f), new Float2(-0.1009700099f, -0.4385260051f), new Float2(-0.2741171231f, -0.3568750521f), new Float2(-0.1465125133f, 0.4254810025f), new Float2(0.2302279044f, -0.3866459777f), new Float2(-0.3699435608f, 0.2562064828f), new Float2(0.105700352f, -0.4374099171f), new Float2(-0.2646713633f, 0.3639355292f), new Float2(0.3521828122f, 0.2801200935f), new Float2(-0.1864187807f, -0.4095705534f), new Float2(0.1994492955f, -0.4033856449f), new Float2(0.3937065066f, 0.2179339044f), new Float2(-0.3226158377f, 0.3137180602f), new Float2(0.3796235338f, 0.2416318948f), new Float2(0.1482921929f, 0.4248640083f), new Float2(-0.407400394f, 0.1911149365f), new Float2(0.4212853031f, 0.1581729856f), new Float2(-0.2621297173f, 0.3657704353f), new Float2(-0.2536986953f, -0.3716678248f), new Float2(-0.2100236383f, 0.3979825013f), new Float2(0.3624152444f, 0.2667493029f), new Float2(-0.3645038479f, -0.2638881295f), new Float2(0.2318486784f, 0.3856762766f), new Float2(-0.3260457004f, 0.3101519002f), new Float2(-0.2130045332f, -0.3963950918f), new Float2(0.3814998766f, -0.2386584257f), new Float2(-0.342977305f, 0.2913186713f), new Float2(-0.4355865605f, 0.1129794154f), new Float2(-0.2104679605f, 0.3977477059f), new Float2(0.3348364681f, -0.3006402163f), new Float2(0.3430468811f, 0.2912367377f), new Float2(-0.2291836801f, -0.3872658529f), new Float2(0.2547707298f, -0.3709337882f), new Float2(0.4236174945f, -0.151816397f), new Float2(-0.15387742f, 0.4228731957f), new Float2(-0.4407449312f, 0.09079595574f), new Float2(-0.06805276192f, -0.444824484f), new Float2(0.4453517192f, -0.06451237284f), new Float2(0.2562464609f, -0.3699158705f), new Float2(0.3278198355f, -0.3082761026f), new Float2(-0.4122774207f, -0.1803533432f), new Float2(0.3354090914f, -0.3000012356f), new Float2(0.446632869f, -0.05494615882f), new Float2(-0.1608953296f, 0.4202531296f), new Float2(-0.09463954939f, 0.4399356268f), new Float2(-0.02637688324f, -0.4492262904f), new Float2(0.447102804f, -0.05098119915f), new Float2(-0.4365670908f, 0.1091291678f), new Float2(-0.3959858651f, 0.2137643437f), new Float2(-0.4240048207f, -0.1507312575f), new Float2(-0.3882794568f, 0.2274622243f), new Float2(-0.4283652566f, -0.1378521198f), new Float2(0.3303888091f, 0.305521251f), new Float2(0.3321434919f, -0.3036127481f), new Float2(-0.413021046f, -0.1786438231f), new Float2(0.08403060337f, -0.4420846725f), new Float2(-0.3822882919f, 0.2373934748f), new Float2(-0.3712395594f, -0.2543249683f), new Float2(0.4472363971f, -0.04979563372f), new Float2(-0.4466591209f, 0.05473234629f), new Float2(0.0486272539f, -0.4473649407f), new Float2(-0.4203101295f, -0.1607463688f), new Float2(0.2205360833f, 0.39225481f), new Float2(-0.3624900666f, 0.2666476169f), new Float2(-0.4036086833f, -0.1989975647f), new Float2(0.2152727807f, 0.3951678503f), new Float2(-0.4359392962f, -0.1116106179f), new Float2(0.4178354266f, 0.1670735057f), new Float2(0.2007630161f, 0.4027334247f), new Float2(-0.07278067175f, -0.4440754146f), new Float2(0.3644748615f, -0.2639281632f), new Float2(-0.4317451775f, 0.126870413f), new Float2(-0.297436456f, 0.3376855855f), new Float2(-0.2998672222f, 0.3355289094f), new Float2(-0.2673674124f, 0.3619594822f), new Float2(0.2808423357f, 0.3516071423f), new Float2(0.3498946567f, 0.2829730186f), new Float2(-0.2229685561f, 0.390877248f), new Float2(0.3305823267f, 0.3053118493f), new Float2(-0.2436681211f, -0.3783197679f), new Float2(-0.03402776529f, 0.4487116125f), new Float2(-0.319358823f, 0.3170330301f), new Float2(0.4454633477f, -0.06373700535f), new Float2(0.4483504221f, 0.03849544189f), new Float2(-0.4427358436f, -0.08052932871f), new Float2(0.05452298565f, 0.4466847255f), new Float2(-0.2812560807f, 0.3512762688f), new Float2(0.1266696921f, 0.4318041097f), new Float2(-0.3735981243f, 0.2508474468f), new Float2(0.2959708351f, -0.3389708908f), new Float2(-0.3714377181f, 0.254035473f), new Float2(-0.404467102f, -0.1972469604f), new Float2(0.1636165687f, -0.419201167f), new Float2(0.3289185495f, -0.3071035458f), new Float2(-0.2494824991f, -0.3745109914f), new Float2(0.03283133272f, 0.4488007393f), new Float2(-0.166306057f, -0.4181414777f), new Float2(-0.106833179f, 0.4371346153f), new Float2(0.06440260376f, -0.4453676062f), new Float2(-0.4483230967f, 0.03881238203f), new Float2(-0.421377757f, -0.1579265206f), new Float2(0.05097920662f, -0.4471030312f), new Float2(0.2050584153f, -0.4005634111f), new Float2(0.4178098529f, -0.167137449f), new Float2(-0.3565189504f, -0.2745801121f), new Float2(0.4478398129f, 0.04403977727f), new Float2(-0.3399999602f, -0.2947881053f), new Float2(0.3767121994f, 0.2461461331f), new Float2(-0.3138934434f, 0.3224451987f), new Float2(-0.1462001792f, -0.4255884251f), new Float2(0.3970290489f, -0.2118205239f), new Float2(0.4459149305f, -0.06049689889f), new Float2(-0.4104889426f, -0.1843877112f), new Float2(0.1475103971f, -0.4251360756f), new Float2(0.09258030352f, 0.4403735771f), new Float2(-0.1589664637f, -0.4209865359f), new Float2(0.2482445008f, 0.3753327428f), new Float2(0.4383624232f, -0.1016778537f), new Float2(0.06242802956f, 0.4456486745f), new Float2(0.2846591015f, -0.3485243118f), new Float2(-0.344202744f, -0.2898697484f), new Float2(0.1198188883f, -0.4337550392f), new Float2(-0.243590703f, 0.3783696201f), new Float2(0.2958191174f, -0.3391033025f), new Float2(-0.1164007991f, 0.4346847754f), new Float2(0.1274037151f, -0.4315881062f), new Float2(0.368047306f, 0.2589231171f), new Float2(0.2451436949f, 0.3773652989f), new Float2(-0.4314509715f, 0.12786735f), - }; - private static final Float3[] CELL_3D = {new Float3(0.1453787434f, -0.4149781685f, -0.0956981749f), new Float3(-0.01242829687f, -0.1457918398f, -0.4255470325f), new Float3(0.2877979582f, -0.02606483451f, -0.3449535616f), new Float3(-0.07732986802f, 0.2377094325f, 0.3741848704f), new Float3(0.1107205875f, -0.3552302079f, -0.2530858567f), new Float3(0.2755209141f, 0.2640521179f, -0.238463215f), new Float3(0.294168941f, 0.1526064594f, 0.3044271714f), new Float3(0.4000921098f, -0.2034056362f, 0.03244149937f), new Float3(-0.1697304074f, 0.3970864695f, -0.1265461359f), new Float3(-0.1483224484f, -0.3859694688f, 0.1775613147f), new Float3(0.2623596946f, -0.2354852944f, 0.2796677792f), new Float3(-0.2709003183f, 0.3505271138f, -0.07901746678f), new Float3(-0.03516550699f, 0.3885234328f, 0.2243054374f), new Float3(-0.1267712655f, 0.1920044036f, 0.3867342179f), new Float3(0.02952021915f, 0.4409685861f, 0.08470692262f), new Float3(-0.2806854217f, -0.266996757f, 0.2289725438f), new Float3(-0.171159547f, 0.2141185563f, 0.3568720405f), new Float3(0.2113227183f, 0.3902405947f, -0.07453178509f), new Float3(-0.1024352839f, 0.2128044156f, -0.3830421561f), new Float3(-0.3304249877f, -0.1566986703f, 0.2622305365f), new Float3(0.2091111325f, 0.3133278055f, -0.2461670583f), new Float3(0.344678154f, -0.1944240454f, -0.2142341261f), new Float3(0.1984478035f, -0.3214342325f, -0.2445373252f), new Float3(-0.2929008603f, 0.2262915116f, 0.2559320961f), new Float3(-0.1617332831f, 0.006314769776f, -0.4198838754f), new Float3(-0.3582060271f, -0.148303178f, -0.2284613961f), new Float3(-0.1852067326f, -0.3454119342f, -0.2211087107f), new Float3(0.3046301062f, 0.1026310383f, 0.314908508f), new Float3(-0.03816768434f, -0.2551766358f, -0.3686842991f), new Float3(-0.4084952196f, 0.1805950793f, 0.05492788837f), new Float3(-0.02687443361f, -0.2749741471f, 0.3551999201f), new Float3(-0.03801098351f, 0.3277859044f, 0.3059600725f), new Float3(0.2371120802f, 0.2900386767f, -0.2493099024f), new Float3(0.4447660503f, 0.03946930643f, 0.05590469027f), new Float3(0.01985147278f, -0.01503183293f, -0.4493105419f), new Float3(0.4274339143f, 0.03345994256f, -0.1366772882f), new Float3(-0.2072988631f, 0.2871414597f, -0.2776273824f), new Float3(-0.3791240978f, 0.1281177671f, 0.2057929936f), new Float3(-0.2098721267f, -0.1007087278f, -0.3851122467f), new Float3(0.01582798878f, 0.4263894424f, 0.1429738373f), new Float3(-0.1888129464f, -0.3160996813f, -0.2587096108f), new Float3(0.1612988974f, -0.1974805082f, -0.3707885038f), new Float3(-0.08974491322f, 0.229148752f, -0.3767448739f), new Float3(0.07041229526f, 0.4150230285f, -0.1590534329f), new Float3(-0.1082925611f, -0.1586061639f, 0.4069604477f), new Float3(0.2474100658f, -0.3309414609f, 0.1782302128f), new Float3(-0.1068836661f, -0.2701644537f, -0.3436379634f), new Float3(0.2396452163f, 0.06803600538f, -0.3747549496f), new Float3(-0.3063886072f, 0.2597428179f, 0.2028785103f), new Float3(0.1593342891f, -0.3114350249f, -0.2830561951f), new Float3(0.2709690528f, 0.1412648683f, -0.3303331794f), new Float3(-0.1519780427f, 0.3623355133f, 0.2193527988f), new Float3(0.1699773681f, 0.3456012883f, 0.2327390037f), new Float3(-0.1986155616f, 0.3836276443f, -0.1260225743f), new Float3(-0.1887482106f, -0.2050154888f, -0.353330953f), new Float3(0.2659103394f, 0.3015631259f, -0.2021172246f), new Float3(-0.08838976154f, -0.4288819642f, -0.1036702021f), new Float3(-0.04201869311f, 0.3099592485f, 0.3235115047f), new Float3(-0.3230334656f, 0.201549922f, -0.2398478873f), new Float3(0.2612720941f, 0.2759854499f, -0.2409749453f), new Float3(0.385713046f, 0.2193460345f, 0.07491837764f), new Float3(0.07654967953f, 0.3721732183f, 0.241095919f), new Float3(0.4317038818f, -0.02577753072f, 0.1243675091f), new Float3(-0.2890436293f, -0.3418179959f, -0.04598084447f), new Float3(-0.2201947582f, 0.383023377f, -0.08548310451f), new Float3(0.4161322773f, -0.1669634289f, -0.03817251927f), new Float3(0.2204718095f, 0.02654238946f, -0.391391981f), new Float3(-0.1040307469f, 0.3890079625f, -0.2008741118f), new Float3(-0.1432122615f, 0.371614387f, -0.2095065525f), new Float3(0.3978380468f, -0.06206669342f, 0.2009293758f), new Float3(-0.2599274663f, 0.2616724959f, -0.2578084893f), new Float3(0.4032618332f, -0.1124593585f, 0.1650235939f), new Float3(-0.08953470255f, -0.3048244735f, 0.3186935478f), new Float3(0.118937202f, -0.2875221847f, 0.325092195f), new Float3(0.02167047076f, -0.03284630549f, -0.4482761547f), new Float3(-0.3411343612f, 0.2500031105f, 0.1537068389f), new Float3(0.3162964612f, 0.3082064153f, -0.08640228117f), new Float3(0.2355138889f, -0.3439334267f, -0.1695376245f), new Float3(-0.02874541518f, -0.3955933019f, 0.2125550295f), new Float3(-0.2461455173f, 0.02020282325f, -0.3761704803f), new Float3(0.04208029445f, -0.4470439576f, 0.02968078139f), new Float3(0.2727458746f, 0.2288471896f, -0.2752065618f), new Float3(-0.1347522818f, -0.02720848277f, -0.4284874806f), new Float3(0.3829624424f, 0.1231931484f, -0.2016512234f), new Float3(-0.3547613644f, 0.1271702173f, 0.2459107769f), new Float3(0.2305790207f, 0.3063895591f, 0.2354968222f), new Float3(-0.08323845599f, -0.1922245118f, 0.3982726409f), new Float3(0.2993663085f, -0.2619918095f, -0.2103333191f), new Float3(-0.2154865723f, 0.2706747713f, 0.287751117f), new Float3(0.01683355354f, -0.2680655787f, -0.3610505186f), new Float3(0.05240429123f, 0.4335128183f, -0.1087217856f), new Float3(0.00940104872f, -0.4472890582f, 0.04841609928f), new Float3(0.3465688735f, 0.01141914583f, -0.2868093776f), new Float3(-0.3706867948f, -0.2551104378f, 0.003156692623f), new Float3(0.2741169781f, 0.2139972417f, -0.2855959784f), new Float3(0.06413433865f, 0.1708718512f, 0.4113266307f), new Float3(-0.388187972f, -0.03973280434f, -0.2241236325f), new Float3(0.06419469312f, -0.2803682491f, 0.3460819069f), new Float3(-0.1986120739f, -0.3391173584f, 0.2192091725f), new Float3(-0.203203009f, -0.3871641506f, 0.1063600375f), new Float3(-0.1389736354f, -0.2775901578f, -0.3257760473f), new Float3(-0.06555641638f, 0.342253257f, -0.2847192729f), new Float3(-0.2529246486f, -0.2904227915f, 0.2327739768f), new Float3(0.1444476522f, 0.1069184044f, 0.4125570634f), new Float3(-0.3643780054f, -0.2447099973f, -0.09922543227f), new Float3(0.4286142488f, -0.1358496089f, -0.01829506817f), new Float3(0.165872923f, -0.3136808464f, -0.2767498872f), new Float3(0.2219610524f, -0.3658139958f, 0.1393320198f), new Float3(0.04322940318f, -0.3832730794f, 0.2318037215f), new Float3(-0.08481269795f, -0.4404869674f, -0.03574965489f), new Float3(0.1822082075f, -0.3953259299f, 0.1140946023f), new Float3(-0.3269323334f, 0.3036542563f, 0.05838957105f), new Float3(-0.4080485344f, 0.04227858267f, -0.184956522f), new Float3(0.2676025294f, -0.01299671652f, 0.36155217f), new Float3(0.3024892441f, -0.1009990293f, -0.3174892964f), new Float3(0.1448494052f, 0.425921681f, -0.0104580805f), new Float3(0.4198402157f, 0.08062320474f, 0.1404780841f), new Float3(-0.3008872161f, -0.333040905f, -0.03241355801f), new Float3(0.3639310428f, -0.1291284382f, -0.2310412139f), new Float3(0.3295806598f, 0.0184175994f, -0.3058388149f), new Float3(0.2776259487f, -0.2974929052f, -0.1921504723f), new Float3(0.4149000507f, -0.144793182f, -0.09691688386f), new Float3(0.145016715f, -0.0398992945f, 0.4241205002f), new Float3(0.09299023471f, -0.299732164f, -0.3225111565f), new Float3(0.1028907093f, -0.361266869f, 0.247789732f), new Float3(0.2683057049f, -0.07076041213f, -0.3542668666f), new Float3(-0.4227307273f, -0.07933161816f, -0.1323073187f), new Float3(-0.1781224702f, 0.1806857196f, -0.3716517945f), new Float3(0.4390788626f, -0.02841848598f, -0.09435116353f), new Float3(0.2972583585f, 0.2382799621f, -0.2394997452f), new Float3(-0.1707002821f, 0.2215845691f, 0.3525077196f), new Float3(0.3806686614f, 0.1471852559f, -0.1895464869f), new Float3(-0.1751445661f, -0.274887877f, 0.3102596268f), new Float3(-0.2227237566f, -0.2316778837f, 0.3149912482f), new Float3(0.1369633021f, 0.1341343041f, -0.4071228836f), new Float3(-0.3529503428f, -0.2472893463f, -0.129514612f), new Float3(-0.2590744185f, -0.2985577559f, -0.2150435121f), new Float3(-0.3784019401f, 0.2199816631f, -0.1044989934f), new Float3(-0.05635805671f, 0.1485737441f, 0.4210102279f), new Float3(0.3251428613f, 0.09666046873f, -0.2957006485f), new Float3(-0.4190995804f, 0.1406751354f, -0.08405978803f), new Float3(-0.3253150961f, -0.3080335042f, -0.04225456877f), new Float3(0.2857945863f, -0.05796152095f, 0.3427271751f), new Float3(-0.2733604046f, 0.1973770973f, -0.2980207554f), new Float3(0.219003657f, 0.2410037886f, -0.3105713639f), new Float3(0.3182767252f, -0.271342949f, 0.1660509868f), new Float3(-0.03222023115f, -0.3331161506f, -0.300824678f), new Float3(-0.3087780231f, 0.1992794134f, -0.2596995338f), new Float3(-0.06487611647f, -0.4311322747f, 0.1114273361f), new Float3(0.3921171432f, -0.06294284106f, -0.2116183942f), new Float3(-0.1606404506f, -0.358928121f, -0.2187812825f), new Float3(-0.03767771199f, -0.2290351443f, 0.3855169162f), new Float3(0.1394866832f, -0.3602213994f, 0.2308332918f), new Float3(-0.4345093872f, 0.005751117145f, 0.1169124335f), new Float3(-0.1044637494f, 0.4168128432f, -0.1336202785f), new Float3(0.2658727501f, 0.2551943237f, 0.2582393035f), new Float3(0.2051461999f, 0.1975390727f, 0.3484154868f), new Float3(-0.266085566f, 0.23483312f, 0.2766800993f), new Float3(0.07849405464f, -0.3300346342f, -0.2956616708f), new Float3(-0.2160686338f, 0.05376451292f, -0.3910546287f), new Float3(-0.185779186f, 0.2148499206f, 0.3490352499f), new Float3(0.02492421743f, -0.3229954284f, -0.3123343347f), new Float3(-0.120167831f, 0.4017266681f, 0.1633259825f), new Float3(-0.02160084693f, -0.06885389554f, 0.4441762538f), new Float3(0.2597670064f, 0.3096300784f, 0.1978643903f), new Float3(-0.1611553854f, -0.09823036005f, 0.4085091653f), new Float3(-0.3278896792f, 0.1461670309f, 0.2713366126f), new Float3(0.2822734956f, 0.03754421121f, -0.3484423997f), new Float3(0.03169341113f, 0.347405252f, -0.2842624114f), new Float3(0.2202613604f, -0.3460788041f, -0.1849713341f), new Float3(0.2933396046f, 0.3031973659f, 0.1565989581f), new Float3(-0.3194922995f, 0.2453752201f, -0.200538455f), new Float3(-0.3441586045f, -0.1698856132f, -0.2349334659f), new Float3(0.2703645948f, -0.3574277231f, 0.04060059933f), new Float3(0.2298568861f, 0.3744156221f, 0.0973588921f), new Float3(0.09326603877f, -0.3170108894f, 0.3054595587f), new Float3(-0.1116165319f, -0.2985018719f, 0.3177080142f), new Float3(0.2172907365f, -0.3460005203f, -0.1885958001f), new Float3(0.1991339479f, 0.3820341668f, -0.1299829458f), new Float3(-0.0541918155f, -0.2103145071f, 0.39412061f), new Float3(0.08871336998f, 0.2012117383f, 0.3926114802f), new Float3(0.2787673278f, 0.3505404674f, 0.04370535101f), new Float3(-0.322166438f, 0.3067213525f, 0.06804996813f), new Float3(-0.4277366384f, 0.132066775f, 0.04582286686f), new Float3(0.240131882f, -0.1612516055f, 0.344723946f), new Float3(0.1448607981f, -0.2387819045f, 0.3528435224f), new Float3(-0.3837065682f, -0.2206398454f, 0.08116235683f), new Float3(-0.4382627882f, -0.09082753406f, -0.04664855374f), new Float3(-0.37728353f, 0.05445141085f, 0.2391488697f), new Float3(0.1259579313f, 0.348394558f, 0.2554522098f), new Float3(-0.1406285511f, -0.270877371f, -0.3306796947f), new Float3(-0.1580694418f, 0.4162931958f, -0.06491553533f), new Float3(0.2477612106f, -0.2927867412f, -0.2353514536f), new Float3(0.2916132853f, 0.3312535401f, 0.08793624968f), new Float3(0.07365265219f, -0.1666159848f, 0.411478311f), new Float3(-0.26126526f, -0.2422237692f, 0.2748965434f), new Float3(-0.3721862032f, 0.252790166f, 0.008634938242f), new Float3(-0.3691191571f, -0.255281188f, 0.03290232422f), new Float3(0.2278441737f, -0.3358364886f, 0.1944244981f), new Float3(0.363398169f, -0.2310190248f, 0.1306597909f), new Float3(-0.304231482f, -0.2698452035f, 0.1926830856f), new Float3(-0.3199312232f, 0.316332536f, -0.008816977938f), new Float3(0.2874852279f, 0.1642275508f, -0.304764754f), new Float3(-0.1451096801f, 0.3277541114f, -0.2720669462f), new Float3(0.3220090754f, 0.0511344108f, 0.3101538769f), new Float3(-0.1247400865f, -0.04333605335f, -0.4301882115f), new Float3(-0.2829555867f, -0.3056190617f, -0.1703910946f), new Float3(0.1069384374f, 0.3491024667f, -0.2630430352f), new Float3(-0.1420661144f, -0.3055376754f, -0.2982682484f), new Float3(-0.250548338f, 0.3156466809f, -0.2002316239f), new Float3(0.3265787872f, 0.1871229129f, 0.2466400438f), new Float3(0.07646097258f, -0.3026690852f, 0.324106687f), new Float3(0.3451771584f, 0.2757120714f, -0.0856480183f), new Float3(0.298137964f, 0.2852657134f, 0.179547284f), new Float3(0.2812250376f, 0.3466716415f, 0.05684409612f), new Float3(0.4390345476f, -0.09790429955f, -0.01278335452f), new Float3(0.2148373234f, 0.1850172527f, 0.3494474791f), new Float3(0.2595421179f, -0.07946825393f, 0.3589187731f), new Float3(0.3182823114f, -0.307355516f, -0.08203022006f), new Float3(-0.4089859285f, -0.04647718411f, 0.1818526372f), new Float3(-0.2826749061f, 0.07417482322f, 0.3421885344f), new Float3(0.3483864637f, 0.225442246f, -0.1740766085f), new Float3(-0.3226415069f, -0.1420585388f, -0.2796816575f), new Float3(0.4330734858f, -0.118868561f, -0.02859407492f), new Float3(-0.08717822568f, -0.3909896417f, -0.2050050172f), new Float3(-0.2149678299f, 0.3939973956f, -0.03247898316f), new Float3(-0.2687330705f, 0.322686276f, -0.1617284888f), new Float3(0.2105665099f, -0.1961317136f, -0.3459683451f), new Float3(0.4361845915f, -0.1105517485f, 0.004616608544f), new Float3(0.05333333359f, -0.313639498f, -0.3182543336f), new Float3(-0.05986216652f, 0.1361029153f, -0.4247264031f), new Float3(0.3664988455f, 0.2550543014f, -0.05590974511f), new Float3(-0.2341015558f, -0.182405731f, 0.3382670703f), new Float3(-0.04730947785f, -0.4222150243f, -0.1483114513f), new Float3(-0.2391566239f, -0.2577696514f, -0.2808182972f), new Float3(-0.1242081035f, 0.4256953395f, -0.07652336246f), new Float3(0.2614832715f, -0.3650179274f, 0.02980623099f), new Float3(-0.2728794681f, -0.3499628774f, 0.07458404908f), new Float3(0.007892900508f, -0.1672771315f, 0.4176793787f), new Float3(-0.01730330376f, 0.2978486637f, -0.3368779738f), new Float3(0.2054835762f, -0.3252600376f, -0.2334146693f), new Float3(-0.3231994983f, 0.1564282844f, -0.2712420987f), new Float3(-0.2669545963f, 0.2599343665f, -0.2523278991f), new Float3(-0.05554372779f, 0.3170813944f, -0.3144428146f), new Float3(-0.2083935713f, -0.310922837f, -0.2497981362f), new Float3(0.06989323478f, -0.3156141536f, 0.3130537363f), new Float3(0.3847566193f, -0.1605309138f, -0.1693876312f), new Float3(-0.3026215288f, -0.3001537679f, -0.1443188342f), new Float3(0.3450735512f, 0.08611519592f, 0.2756962409f), new Float3(0.1814473292f, -0.2788782453f, -0.3029914042f), new Float3(-0.03855010448f, 0.09795110726f, 0.4375151083f), new Float3(0.3533670318f, 0.2665752752f, 0.08105160988f), new Float3(-0.007945601311f, 0.140359426f, -0.4274764309f), new Float3(0.4063099273f, -0.1491768253f, -0.1231199324f), new Float3(-0.2016773589f, 0.008816271194f, -0.4021797064f), new Float3(-0.07527055435f, -0.425643481f, -0.1251477955f), - }; - // Hashing - private final static int X_PRIME = 1619; - private final static int Y_PRIME = 31337; - private final static int Z_PRIME = 6971; - private final static int W_PRIME = 1013; - private final static float F3 = (float) (1.0 / 3.0); - private final static float G3 = (float) (1.0 / 6.0); - private final static float G33 = G3 * 3 - 1; - private final static float SQRT3 = (float) 1.7320508075688772935274463415059; - private final static float F2 = 0.5f * (SQRT3 - 1.0f); - private final static float G2 = (3.0f - SQRT3) / 6.0f; - private static final byte[] SIMPLEX_4D = {0, 1, 2, 3, 0, 1, 3, 2, 0, 0, 0, 0, 0, 2, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 2, 1, 3, 0, 0, 0, 0, 0, 3, 1, 2, 0, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 3, 0, 0, 0, 0, 1, 3, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 0, 1, 2, 3, 1, 0, 1, 0, 2, 3, 1, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 1, 0, 0, 0, 0, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 2, 3, 0, 2, 1, 0, 0, 0, 0, 3, 1, 2, 0, 2, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0, 2, 0, 0, 0, 0, 3, 2, 0, 1, 3, 2, 1, 0 - }; - private final static float F4 = (float) ((2.23606797 - 1.0) / 4.0); - private final static float G4 = (float) ((5.0 - 2.23606797) / 20.0); - private final static float CUBIC_3D_BOUNDING = 1 / (float) (1.5 * 1.5 * 1.5); - private final static float CUBIC_2D_BOUNDING = 1 / (float) (1.5 * 1.5); - private int m_seed = 1337; - private float m_frequency = (float) 0.01; - private Interp m_interp = Interp.Quintic; - private NoiseType m_noiseType = NoiseType.Simplex; - private int m_octaves = 3; - private float m_lacunarity = (float) 2.0; - private float m_gain = (float) 0.5; - private FractalType m_fractalType = FractalType.FBM; - private float m_fractalBounding; - private CellularDistanceFunction m_cellularDistanceFunction = CellularDistanceFunction.Euclidean; - private CellularReturnType m_cellularReturnType = CellularReturnType.CellValue; - private FastNoise m_cellularNoiseLookup = null; - private float m_gradientPerturbAmp = (float) (1.0 / 0.45); - - public FastNoise() { - this(1337); - } - - public FastNoise(int seed) { - m_seed = seed; - CalculateFractalBounding(); - } - - // Returns a 0 float/double - public static float GetDecimalType() { - return 0; - } - - private static int FastFloor(float f) { - return (int) Math.floor(f); - } - - private static int FastRound(float f) { - return (f >= 0) ? (int) (f + (float) 0.5) : (int) (f - (float) 0.5); - } - - private static float Lerp(float a, float b, float t) { - return a + t * (b - a); - } - - private static float InterpHermiteFunc(float t) { - return t * t * (3 - 2 * t); - } - - private static float InterpQuinticFunc(float t) { - return t * t * t * (t * (t * 6 - 15) + 10); - } - - private static float CubicLerp(float a, float b, float c, float d, float t) { - float p = (d - c) - (a - b); - return t * t * t * p + t * t * ((a - b) - p) + t * (c - a) + b; - } - - private static int Hash2D(int seed, int x, int y) { - int hash = seed; - hash ^= X_PRIME * x; - hash ^= Y_PRIME * y; - - hash = hash * hash * hash * 60493; - hash = (hash >> 13) ^ hash; - - return hash; - } - - private static int Hash3D(int seed, int x, int y, int z) { - int hash = seed; - hash ^= X_PRIME * x; - hash ^= Y_PRIME * y; - hash ^= Z_PRIME * z; - - hash = hash * hash * hash * 60493; - hash = (hash >> 13) ^ hash; - - return hash; - } - - public static int Hash4D(int seed, int x, int y, int z, int w) { - int hash = seed; - hash ^= X_PRIME * x; - hash ^= Y_PRIME * y; - hash ^= Z_PRIME * z; - hash ^= W_PRIME * w; - - hash = hash * hash * hash * 60493; - hash = (hash >> 13) ^ hash; - - return hash; - } - - private static float ValCoord2D(int seed, int x, int y) { - int n = seed; - n ^= X_PRIME * x; - n ^= Y_PRIME * y; - - return (n * n * n * 60493) / (float) 2147483648.0; - } - - private static float ValCoord3D(int seed, int x, int y, int z) { - int n = seed; - n ^= X_PRIME * x; - n ^= Y_PRIME * y; - n ^= Z_PRIME * z; - - return (n * n * n * 60493) / (float) 2147483648.0; - } - - private static float ValCoord4D(int seed, int x, int y, int z, int w) { - int n = seed; - n ^= X_PRIME * x; - n ^= Y_PRIME * y; - n ^= Z_PRIME * z; - n ^= W_PRIME * w; - - return (n * n * n * 60493) / (float) 2147483648.0; - } - - private static float GradCoord2D(int seed, int x, int y, float xd, float yd) { - int hash = seed; - hash ^= X_PRIME * x; - hash ^= Y_PRIME * y; - - hash = hash * hash * hash * 60493; - hash = (hash >> 13) ^ hash; - - Float2 g = GRAD_2D[hash & 7]; - - return xd * g.x + yd * g.y; - } - - private static float GradCoord3D(int seed, int x, int y, int z, float xd, float yd, float zd) { - int hash = seed; - hash ^= X_PRIME * x; - hash ^= Y_PRIME * y; - hash ^= Z_PRIME * z; - - hash = hash * hash * hash * 60493; - hash = (hash >> 13) ^ hash; - - Float3 g = GRAD_3D[hash & 15]; - - return xd * g.x + yd * g.y + zd * g.z; - } - - private static float GradCoord4D(int seed, int x, int y, int z, int w, float xd, float yd, float zd, float wd) { - int hash = seed; - hash ^= X_PRIME * x; - hash ^= Y_PRIME * y; - hash ^= Z_PRIME * z; - hash ^= W_PRIME * w; - - hash = hash * hash * hash * 60493; - hash = (hash >> 13) ^ hash; - - hash &= 31; - float a = yd, b = zd, c = wd; // X,Y,Z - switch (hash >> 3) { // OR, DEPENDING ON HIGH ORDER 2 BITS: - case 1: - a = wd; - b = xd; - c = yd; - break; // W,X,Y - case 2: - a = zd; - b = wd; - c = xd; - break; // Z,W,X - case 3: - a = yd; - b = zd; - c = wd; - break; // Y,Z,W - } - return ((hash & 4) == 0 ? -a : a) + ((hash & 2) == 0 ? -b : b) + ((hash & 1) == 0 ? -c : c); - } - - // Returns the seed used by this object - public int GetSeed() { - return m_seed; - } - - // Sets seed used for all noise types - // Default: 1337 - public void SetSeed(int seed) { - m_seed = seed; - } - - // Sets frequency for all noise types - // Default: 0.01 - public void SetFrequency(float frequency) { - m_frequency = frequency; - } - - // Changes the interpolation method used to smooth between noise values - // Possible interpolation methods (lowest to highest quality) : - // - Linear - // - Hermite - // - Quintic - // Used in Value, Gradient Noise and Position Perturbing - // Default: Quintic - public void SetInterp(Interp interp) { - m_interp = interp; - } - - // Sets noise return type of GetNoise(...) - // Default: Simplex - public void SetNoiseType(NoiseType noiseType) { - m_noiseType = noiseType; - } - - // Sets octave count for all fractal noise types - // Default: 3 - public void SetFractalOctaves(int octaves) { - m_octaves = Math.max(1, Math.min(16, octaves)); - CalculateFractalBounding(); - } - - // Sets octave lacunarity for all fractal noise types - // Default: 2.0 - public void SetFractalLacunarity(float lacunarity) { - m_lacunarity = lacunarity; - } - - // Sets octave gain for all fractal noise types - // Default: 0.5 - public void SetFractalGain(float gain) { - m_gain = gain; - CalculateFractalBounding(); - } - - // Sets method for combining octaves in all fractal noise types - // Default: FBM - public void SetFractalType(FractalType fractalType) { - m_fractalType = fractalType; - } - - // Sets return type from cellular noise calculations - // Note: NoiseLookup requires another FastNoise object be set with - // SetCellularNoiseLookup() to function - // Default: CellValue - public void SetCellularDistanceFunction(CellularDistanceFunction cellularDistanceFunction) { - m_cellularDistanceFunction = cellularDistanceFunction; - } - - // Sets distance function used in cellular noise calculations - // Default: Euclidean - public void SetCellularReturnType(CellularReturnType cellularReturnType) { - m_cellularReturnType = cellularReturnType; - } - - // Noise used to calculate a cell value if cellular return type is NoiseLookup - // The lookup value is acquired through GetNoise() so ensure you SetNoiseType() - // on the noise lookup, value, gradient or simplex is recommended - public void SetCellularNoiseLookup(FastNoise noise) { - m_cellularNoiseLookup = noise; - } - - // White Noise - - // Sets the maximum perturb distance from original location when using - // GradientPerturb{Fractal}(...) - // Default: 1.0 - public void SetGradientPerturbAmp(float gradientPerturbAmp) { - m_gradientPerturbAmp = gradientPerturbAmp / (float) 0.45; - } - - private void CalculateFractalBounding() { - float amp = m_gain; - float ampFractal = 1; - for (int i = 1; i < m_octaves; i++) { - ampFractal += amp; - amp *= m_gain; - } - m_fractalBounding = 1 / ampFractal; - } - - public float GetNoise(float x, float y, float z) { - x *= m_frequency; - y *= m_frequency; - z *= m_frequency; - - switch (m_noiseType) { - case Value: - return SingleValue(m_seed, x, y, z); - case ValueFractal: - switch (m_fractalType) { - case FBM: - return SingleValueFractalFBM(x, y, z); - case Billow: - return SingleValueFractalBillow(x, y, z); - case RigidMulti: - return SingleValueFractalRigidMulti(x, y, z); - default: - return 0; - } - case Perlin: - return SinglePerlin(m_seed, x, y, z); - case PerlinFractal: - switch (m_fractalType) { - case FBM: - return SinglePerlinFractalFBM(x, y, z); - case Billow: - return SinglePerlinFractalBillow(x, y, z); - case RigidMulti: - return SinglePerlinFractalRigidMulti(x, y, z); - default: - return 0; - } - case Simplex: - return SingleSimplex(m_seed, x, y, z); - case SimplexFractal: - switch (m_fractalType) { - case FBM: - return SingleSimplexFractalFBM(x, y, z); - case Billow: - return SingleSimplexFractalBillow(x, y, z); - case RigidMulti: - return SingleSimplexFractalRigidMulti(x, y, z); - default: - return 0; - } - case Cellular: - switch (m_cellularReturnType) { - case CellValue: - case NoiseLookup: - case Distance: - return SingleCellular(x, y, z); - default: - return SingleCellular2Edge(x, y, z); - } - case WhiteNoise: - return GetWhiteNoise(x, y, z); - case Cubic: - return SingleCubic(m_seed, x, y, z); - case CubicFractal: - switch (m_fractalType) { - case FBM: - return SingleCubicFractalFBM(x, y, z); - case Billow: - return SingleCubicFractalBillow(x, y, z); - case RigidMulti: - return SingleCubicFractalRigidMulti(x, y, z); - default: - return 0; - } - default: - return 0; - } - } - - public float GetNoise(float x, float y) { - x *= m_frequency; - y *= m_frequency; - - switch (m_noiseType) { - case Value: - return SingleValue(m_seed, x, y); - case ValueFractal: - switch (m_fractalType) { - case FBM: - return SingleValueFractalFBM(x, y); - case Billow: - return SingleValueFractalBillow(x, y); - case RigidMulti: - return SingleValueFractalRigidMulti(x, y); - default: - return 0; - } - case Perlin: - return SinglePerlin(m_seed, x, y); - case PerlinFractal: - switch (m_fractalType) { - case FBM: - return SinglePerlinFractalFBM(x, y); - case Billow: - return SinglePerlinFractalBillow(x, y); - case RigidMulti: - return SinglePerlinFractalRigidMulti(x, y); - default: - return 0; - } - case Simplex: - return SingleSimplex(m_seed, x, y); - case SimplexFractal: - switch (m_fractalType) { - case FBM: - return SingleSimplexFractalFBM(x, y); - case Billow: - return SingleSimplexFractalBillow(x, y); - case RigidMulti: - return SingleSimplexFractalRigidMulti(x, y); - default: - return 0; - } - case Cellular: - switch (m_cellularReturnType) { - case CellValue: - case NoiseLookup: - case Distance: - return SingleCellular(x, y); - default: - return SingleCellular2Edge(x, y); - } - case WhiteNoise: - return GetWhiteNoise(x, y); - case Cubic: - return SingleCubic(m_seed, x, y); - case CubicFractal: - switch (m_fractalType) { - case FBM: - return SingleCubicFractalFBM(x, y); - case Billow: - return SingleCubicFractalBillow(x, y); - case RigidMulti: - return SingleCubicFractalRigidMulti(x, y); - default: - return 0; - } - default: - return 0; - } - } - - private int FloatCast2Int(float f) { - int i = Float.floatToRawIntBits(f); - - return i ^ (i >> 16); - } - - public float GetWhiteNoise(float x, float y, float z, float w) { - int xi = FloatCast2Int(x); - int yi = FloatCast2Int(y); - int zi = FloatCast2Int(z); - int wi = FloatCast2Int(w); - - return ValCoord4D(m_seed, xi, yi, zi, wi); - } - - public float GetWhiteNoise(double x, double y, double z) { - int xi = FloatCast2Int((float) x); - int yi = FloatCast2Int((float) y); - int zi = FloatCast2Int((float) z); - - return ValCoord3D(m_seed, xi, yi, zi); - } - - public float GetWhiteNoise(double x, double y) { - int xi = FloatCast2Int((float) x); - int yi = FloatCast2Int((float) y); - - return ValCoord2D(m_seed, xi, yi); - } - - public float GetWhiteNoiseInt(int x, int y, int z, int w) { - return ValCoord4D(m_seed, x, y, z, w); - } - - public float GetWhiteNoiseInt(int x, int y, int z) { - return ValCoord3D(m_seed, x, y, z); - } - - public float GetWhiteNoiseInt(int x, int y) { - return ValCoord2D(m_seed, x, y); - } - - // Value Noise - public float GetValueFractal(float x, float y, float z) { - x *= m_frequency; - y *= m_frequency; - z *= m_frequency; - - switch (m_fractalType) { - case FBM: - return SingleValueFractalFBM(x, y, z); - case Billow: - return SingleValueFractalBillow(x, y, z); - case RigidMulti: - return SingleValueFractalRigidMulti(x, y, z); - default: - return 0; - } - } - - private float SingleValueFractalFBM(float x, float y, float z) { - int seed = m_seed; - float sum = SingleValue(seed, x, y, z); - float amp = 1; - - for (int i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - z *= m_lacunarity; - - amp *= m_gain; - sum += SingleValue(++seed, x, y, z) * amp; - } - - return sum * m_fractalBounding; - } - - private float SingleValueFractalBillow(float x, float y, float z) { - int seed = m_seed; - float sum = Math.abs(SingleValue(seed, x, y, z)) * 2 - 1; - float amp = 1; - - for (int i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - z *= m_lacunarity; - - amp *= m_gain; - sum += (Math.abs(SingleValue(++seed, x, y, z)) * 2 - 1) * amp; - } - - return sum * m_fractalBounding; - } - - private float SingleValueFractalRigidMulti(float x, float y, float z) { - int seed = m_seed; - float sum = 1 - Math.abs(SingleValue(seed, x, y, z)); - float amp = 1; - - for (int i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - z *= m_lacunarity; - - amp *= m_gain; - sum -= (1 - Math.abs(SingleValue(++seed, x, y, z))) * amp; - } - - return sum; - } - - public float GetValue(float x, float y, float z) { - return SingleValue(m_seed, x * m_frequency, y * m_frequency, z * m_frequency); - } - - private float SingleValue(int seed, float x, float y, float z) { - int x0 = FastFloor(x); - int y0 = FastFloor(y); - int z0 = FastFloor(z); - int x1 = x0 + 1; - int y1 = y0 + 1; - int z1 = z0 + 1; - - float xs, ys, zs; - switch (m_interp) { - default: - case Linear: - xs = x - x0; - ys = y - y0; - zs = z - z0; - break; - case Hermite: - xs = InterpHermiteFunc(x - x0); - ys = InterpHermiteFunc(y - y0); - zs = InterpHermiteFunc(z - z0); - break; - case Quintic: - xs = InterpQuinticFunc(x - x0); - ys = InterpQuinticFunc(y - y0); - zs = InterpQuinticFunc(z - z0); - break; - } - - float xf00 = Lerp(ValCoord3D(seed, x0, y0, z0), ValCoord3D(seed, x1, y0, z0), xs); - float xf10 = Lerp(ValCoord3D(seed, x0, y1, z0), ValCoord3D(seed, x1, y1, z0), xs); - float xf01 = Lerp(ValCoord3D(seed, x0, y0, z1), ValCoord3D(seed, x1, y0, z1), xs); - float xf11 = Lerp(ValCoord3D(seed, x0, y1, z1), ValCoord3D(seed, x1, y1, z1), xs); - - float yf0 = Lerp(xf00, xf10, ys); - float yf1 = Lerp(xf01, xf11, ys); - - return Lerp(yf0, yf1, zs); - } - - public float GetValueFractal(float x, float y) { - x *= m_frequency; - y *= m_frequency; - - switch (m_fractalType) { - case FBM: - return SingleValueFractalFBM(x, y); - case Billow: - return SingleValueFractalBillow(x, y); - case RigidMulti: - return SingleValueFractalRigidMulti(x, y); - default: - return 0; - } - } - - private float SingleValueFractalFBM(float x, float y) { - int seed = m_seed; - float sum = SingleValue(seed, x, y); - float amp = 1; - - for (int i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - - amp *= m_gain; - sum += SingleValue(++seed, x, y) * amp; - } - - return sum * m_fractalBounding; - } - - private float SingleValueFractalBillow(float x, float y) { - int seed = m_seed; - float sum = Math.abs(SingleValue(seed, x, y)) * 2 - 1; - float amp = 1; - - for (int i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - amp *= m_gain; - sum += (Math.abs(SingleValue(++seed, x, y)) * 2 - 1) * amp; - } - - return sum * m_fractalBounding; - } - - private float SingleValueFractalRigidMulti(float x, float y) { - int seed = m_seed; - float sum = 1 - Math.abs(SingleValue(seed, x, y)); - float amp = 1; - - for (int i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - - amp *= m_gain; - sum -= (1 - Math.abs(SingleValue(++seed, x, y))) * amp; - } - - return sum; - } - - public float GetValue(float x, float y) { - return SingleValue(m_seed, x * m_frequency, y * m_frequency); - } - - private float SingleValue(int seed, float x, float y) { - int x0 = FastFloor(x); - int y0 = FastFloor(y); - int x1 = x0 + 1; - int y1 = y0 + 1; - - float xs, ys; - switch (m_interp) { - default: - case Linear: - xs = x - x0; - ys = y - y0; - break; - case Hermite: - xs = InterpHermiteFunc(x - x0); - ys = InterpHermiteFunc(y - y0); - break; - case Quintic: - xs = InterpQuinticFunc(x - x0); - ys = InterpQuinticFunc(y - y0); - break; - } - - float xf0 = Lerp(ValCoord2D(seed, x0, y0), ValCoord2D(seed, x1, y0), xs); - float xf1 = Lerp(ValCoord2D(seed, x0, y1), ValCoord2D(seed, x1, y1), xs); - - return Lerp(xf0, xf1, ys); - } - - // Gradient Noise - public float GetPerlinFractal(float x, float y, float z) { - x *= m_frequency; - y *= m_frequency; - z *= m_frequency; - - switch (m_fractalType) { - case FBM: - return SinglePerlinFractalFBM(x, y, z); - case Billow: - return SinglePerlinFractalBillow(x, y, z); - case RigidMulti: - return SinglePerlinFractalRigidMulti(x, y, z); - default: - return 0; - } - } - - private float SinglePerlinFractalFBM(float x, float y, float z) { - int seed = m_seed; - float sum = SinglePerlin(seed, x, y, z); - float amp = 1; - - for (int i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - z *= m_lacunarity; - - amp *= m_gain; - sum += SinglePerlin(++seed, x, y, z) * amp; - } - - return sum * m_fractalBounding; - } - - private float SinglePerlinFractalBillow(float x, float y, float z) { - int seed = m_seed; - float sum = Math.abs(SinglePerlin(seed, x, y, z)) * 2 - 1; - float amp = 1; - - for (int i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - z *= m_lacunarity; - - amp *= m_gain; - sum += (Math.abs(SinglePerlin(++seed, x, y, z)) * 2 - 1) * amp; - } - - return sum * m_fractalBounding; - } - - private float SinglePerlinFractalRigidMulti(float x, float y, float z) { - int seed = m_seed; - float sum = 1 - Math.abs(SinglePerlin(seed, x, y, z)); - float amp = 1; - - for (int i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - z *= m_lacunarity; - - amp *= m_gain; - sum -= (1 - Math.abs(SinglePerlin(++seed, x, y, z))) * amp; - } - - return sum; - } - - public float GetPerlin(float x, float y, float z) { - return SinglePerlin(m_seed, x * m_frequency, y * m_frequency, z * m_frequency); - } - - private float SinglePerlin(int seed, float x, float y, float z) { - int x0 = FastFloor(x); - int y0 = FastFloor(y); - int z0 = FastFloor(z); - int x1 = x0 + 1; - int y1 = y0 + 1; - int z1 = z0 + 1; - - float xs, ys, zs; - switch (m_interp) { - default: - case Linear: - xs = x - x0; - ys = y - y0; - zs = z - z0; - break; - case Hermite: - xs = InterpHermiteFunc(x - x0); - ys = InterpHermiteFunc(y - y0); - zs = InterpHermiteFunc(z - z0); - break; - case Quintic: - xs = InterpQuinticFunc(x - x0); - ys = InterpQuinticFunc(y - y0); - zs = InterpQuinticFunc(z - z0); - break; - } - - float xd0 = x - x0; - float yd0 = y - y0; - float zd0 = z - z0; - float xd1 = xd0 - 1; - float yd1 = yd0 - 1; - float zd1 = zd0 - 1; - - float xf00 = Lerp(GradCoord3D(seed, x0, y0, z0, xd0, yd0, zd0), GradCoord3D(seed, x1, y0, z0, xd1, yd0, zd0), xs); - float xf10 = Lerp(GradCoord3D(seed, x0, y1, z0, xd0, yd1, zd0), GradCoord3D(seed, x1, y1, z0, xd1, yd1, zd0), xs); - float xf01 = Lerp(GradCoord3D(seed, x0, y0, z1, xd0, yd0, zd1), GradCoord3D(seed, x1, y0, z1, xd1, yd0, zd1), xs); - float xf11 = Lerp(GradCoord3D(seed, x0, y1, z1, xd0, yd1, zd1), GradCoord3D(seed, x1, y1, z1, xd1, yd1, zd1), xs); - - float yf0 = Lerp(xf00, xf10, ys); - float yf1 = Lerp(xf01, xf11, ys); - - return Lerp(yf0, yf1, zs); - } - - public float GetPerlinFractal(float x, float y) { - x *= m_frequency; - y *= m_frequency; - - switch (m_fractalType) { - case FBM: - return SinglePerlinFractalFBM(x, y); - case Billow: - return SinglePerlinFractalBillow(x, y); - case RigidMulti: - return SinglePerlinFractalRigidMulti(x, y); - default: - return 0; - } - } - - private float SinglePerlinFractalFBM(float x, float y) { - int seed = m_seed; - float sum = SinglePerlin(seed, x, y); - float amp = 1; - - for (int i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - - amp *= m_gain; - sum += SinglePerlin(++seed, x, y) * amp; - } - - return sum * m_fractalBounding; - } - - private float SinglePerlinFractalBillow(float x, float y) { - int seed = m_seed; - float sum = Math.abs(SinglePerlin(seed, x, y)) * 2 - 1; - float amp = 1; - - for (int i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - - amp *= m_gain; - sum += (Math.abs(SinglePerlin(++seed, x, y)) * 2 - 1) * amp; - } - - return sum * m_fractalBounding; - } - - private float SinglePerlinFractalRigidMulti(float x, float y) { - int seed = m_seed; - float sum = 1 - Math.abs(SinglePerlin(seed, x, y)); - float amp = 1; - - for (int i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - - amp *= m_gain; - sum -= (1 - Math.abs(SinglePerlin(++seed, x, y))) * amp; - } - - return sum; - } - - public float GetPerlin(float x, float y) { - return SinglePerlin(m_seed, x * m_frequency, y * m_frequency); - } - - private float SinglePerlin(int seed, float x, float y) { - int x0 = FastFloor(x); - int y0 = FastFloor(y); - int x1 = x0 + 1; - int y1 = y0 + 1; - - float xs, ys; - switch (m_interp) { - default: - case Linear: - xs = x - x0; - ys = y - y0; - break; - case Hermite: - xs = InterpHermiteFunc(x - x0); - ys = InterpHermiteFunc(y - y0); - break; - case Quintic: - xs = InterpQuinticFunc(x - x0); - ys = InterpQuinticFunc(y - y0); - break; - } - - float xd0 = x - x0; - float yd0 = y - y0; - float xd1 = xd0 - 1; - float yd1 = yd0 - 1; - - float xf0 = Lerp(GradCoord2D(seed, x0, y0, xd0, yd0), GradCoord2D(seed, x1, y0, xd1, yd0), xs); - float xf1 = Lerp(GradCoord2D(seed, x0, y1, xd0, yd1), GradCoord2D(seed, x1, y1, xd1, yd1), xs); - - return Lerp(xf0, xf1, ys); - } - - // Simplex Noise - public float GetSimplexFractal(float x, float y, float z) { - x *= m_frequency; - y *= m_frequency; - z *= m_frequency; - - switch (m_fractalType) { - case FBM: - return SingleSimplexFractalFBM(x, y, z); - case Billow: - return SingleSimplexFractalBillow(x, y, z); - case RigidMulti: - return SingleSimplexFractalRigidMulti(x, y, z); - default: - return 0; - } - } - - private float SingleSimplexFractalFBM(float x, float y, float z) { - int seed = m_seed; - float sum = SingleSimplex(seed, x, y, z); - float amp = 1; - - for (int i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - z *= m_lacunarity; - - amp *= m_gain; - sum += SingleSimplex(++seed, x, y, z) * amp; - } - - return sum * m_fractalBounding; - } - - private float SingleSimplexFractalBillow(float x, float y, float z) { - int seed = m_seed; - float sum = Math.abs(SingleSimplex(seed, x, y, z)) * 2 - 1; - float amp = 1; - - for (int i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - z *= m_lacunarity; - - amp *= m_gain; - sum += (Math.abs(SingleSimplex(++seed, x, y, z)) * 2 - 1) * amp; - } - - return sum * m_fractalBounding; - } - - private float SingleSimplexFractalRigidMulti(float x, float y, float z) { - int seed = m_seed; - float sum = 1 - Math.abs(SingleSimplex(seed, x, y, z)); - float amp = 1; - - for (int i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - z *= m_lacunarity; - - amp *= m_gain; - sum -= (1 - Math.abs(SingleSimplex(++seed, x, y, z))) * amp; - } - - return sum; - } - - public float GetSimplex(float x, float y, float z) { - return SingleSimplex(m_seed, x * m_frequency, y * m_frequency, z * m_frequency); - } - - private float SingleSimplex(int seed, float x, float y, float z) { - float t = (x + y + z) * F3; - int i = FastFloor(x + t); - int j = FastFloor(y + t); - int k = FastFloor(z + t); - - t = (i + j + k) * G3; - float x0 = x - (i - t); - float y0 = y - (j - t); - float z0 = z - (k - t); - - int i1, j1, k1; - int i2, j2, k2; - - if (x0 >= y0) { - if (y0 >= z0) { - i1 = 1; - j1 = 0; - k1 = 0; - i2 = 1; - j2 = 1; - k2 = 0; - } else if (x0 >= z0) { - i1 = 1; - j1 = 0; - k1 = 0; - i2 = 1; - j2 = 0; - k2 = 1; - } else // x0 < z0 - { - i1 = 0; - j1 = 0; - k1 = 1; - i2 = 1; - j2 = 0; - k2 = 1; - } - } else // x0 < y0 - { - if (y0 < z0) { - i1 = 0; - j1 = 0; - k1 = 1; - i2 = 0; - j2 = 1; - k2 = 1; - } else if (x0 < z0) { - i1 = 0; - j1 = 1; - k1 = 0; - i2 = 0; - j2 = 1; - k2 = 1; - } else // x0 >= z0 - { - i1 = 0; - j1 = 1; - k1 = 0; - i2 = 1; - j2 = 1; - k2 = 0; - } - } - - float x1 = x0 - i1 + G3; - float y1 = y0 - j1 + G3; - float z1 = z0 - k1 + G3; - float x2 = x0 - i2 + F3; - float y2 = y0 - j2 + F3; - float z2 = z0 - k2 + F3; - float x3 = x0 + G33; - float y3 = y0 + G33; - float z3 = z0 + G33; - - float n0, n1, n2, n3; - - t = (float) 0.6 - x0 * x0 - y0 * y0 - z0 * z0; - if (t < 0) - n0 = 0; - else { - t *= t; - n0 = t * t * GradCoord3D(seed, i, j, k, x0, y0, z0); - } - - t = (float) 0.6 - x1 * x1 - y1 * y1 - z1 * z1; - if (t < 0) - n1 = 0; - else { - t *= t; - n1 = t * t * GradCoord3D(seed, i + i1, j + j1, k + k1, x1, y1, z1); - } - - t = (float) 0.6 - x2 * x2 - y2 * y2 - z2 * z2; - if (t < 0) - n2 = 0; - else { - t *= t; - n2 = t * t * GradCoord3D(seed, i + i2, j + j2, k + k2, x2, y2, z2); - } - - t = (float) 0.6 - x3 * x3 - y3 * y3 - z3 * z3; - if (t < 0) - n3 = 0; - else { - t *= t; - n3 = t * t * GradCoord3D(seed, i + 1, j + 1, k + 1, x3, y3, z3); - } - - return 32 * (n0 + n1 + n2 + n3); - } - - public float GetSimplexFractal(float x, float y) { - x *= m_frequency; - y *= m_frequency; - - switch (m_fractalType) { - case FBM: - return SingleSimplexFractalFBM(x, y); - case Billow: - return SingleSimplexFractalBillow(x, y); - case RigidMulti: - return SingleSimplexFractalRigidMulti(x, y); - default: - return 0; - } - } - - private float SingleSimplexFractalFBM(float x, float y) { - int seed = m_seed; - float sum = SingleSimplex(seed, x, y); - float amp = 1; - - for (int i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - - amp *= m_gain; - sum += SingleSimplex(++seed, x, y) * amp; - } - - return sum * m_fractalBounding; - } - - private float SingleSimplexFractalBillow(float x, float y) { - int seed = m_seed; - float sum = Math.abs(SingleSimplex(seed, x, y)) * 2 - 1; - float amp = 1; - - for (int i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - - amp *= m_gain; - sum += (Math.abs(SingleSimplex(++seed, x, y)) * 2 - 1) * amp; - } - - return sum * m_fractalBounding; - } - - private float SingleSimplexFractalRigidMulti(float x, float y) { - int seed = m_seed; - float sum = 1 - Math.abs(SingleSimplex(seed, x, y)); - float amp = 1; - - for (int i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - - amp *= m_gain; - sum -= (1 - Math.abs(SingleSimplex(++seed, x, y))) * amp; - } - - return sum; - } - - public float GetSimplex(float x, float y) { - return SingleSimplex(m_seed, x * m_frequency, y * m_frequency); - } - - private float SingleSimplex(int seed, float x, float y) { - float t = (x + y) * F2; - int i = FastFloor(x + t); - int j = FastFloor(y + t); - - t = (i + j) * G2; - float X0 = i - t; - float Y0 = j - t; - - float x0 = x - X0; - float y0 = y - Y0; - - int i1, j1; - if (x0 > y0) { - i1 = 1; - j1 = 0; - } else { - i1 = 0; - j1 = 1; - } - - float x1 = x0 - i1 + G2; - float y1 = y0 - j1 + G2; - float x2 = x0 - 1 + 2 * G2; - float y2 = y0 - 1 + 2 * G2; - - float n0, n1, n2; - - t = (float) 0.5 - x0 * x0 - y0 * y0; - if (t < 0) - n0 = 0; - else { - t *= t; - n0 = t * t * GradCoord2D(seed, i, j, x0, y0); - } - - t = (float) 0.5 - x1 * x1 - y1 * y1; - if (t < 0) - n1 = 0; - else { - t *= t; - n1 = t * t * GradCoord2D(seed, i + i1, j + j1, x1, y1); - } - - t = (float) 0.5 - x2 * x2 - y2 * y2; - if (t < 0) - n2 = 0; - else { - t *= t; - n2 = t * t * GradCoord2D(seed, i + 1, j + 1, x2, y2); - } - - return 50 * (n0 + n1 + n2); - } - - public float GetSimplex(float x, float y, float z, float w) { - return SingleSimplex(m_seed, x * m_frequency, y * m_frequency, z * m_frequency, w * m_frequency); - } - - private float SingleSimplex(int seed, float x, float y, float z, float w) { - float n0, n1, n2, n3, n4; - float t = (x + y + z + w) * F4; - int i = FastFloor(x + t); - int j = FastFloor(y + t); - int k = FastFloor(z + t); - int l = FastFloor(w + t); - t = (i + j + k + l) * G4; - float X0 = i - t; - float Y0 = j - t; - float Z0 = k - t; - float W0 = l - t; - float x0 = x - X0; - float y0 = y - Y0; - float z0 = z - Z0; - float w0 = w - W0; - - int c = (x0 > y0) ? 32 : 0; - c += (x0 > z0) ? 16 : 0; - c += (y0 > z0) ? 8 : 0; - c += (x0 > w0) ? 4 : 0; - c += (y0 > w0) ? 2 : 0; - c += (z0 > w0) ? 1 : 0; - c <<= 2; - - int i1 = SIMPLEX_4D[c] >= 3 ? 1 : 0; - int i2 = SIMPLEX_4D[c] >= 2 ? 1 : 0; - int i3 = SIMPLEX_4D[c++] >= 1 ? 1 : 0; - int j1 = SIMPLEX_4D[c] >= 3 ? 1 : 0; - int j2 = SIMPLEX_4D[c] >= 2 ? 1 : 0; - int j3 = SIMPLEX_4D[c++] >= 1 ? 1 : 0; - int k1 = SIMPLEX_4D[c] >= 3 ? 1 : 0; - int k2 = SIMPLEX_4D[c] >= 2 ? 1 : 0; - int k3 = SIMPLEX_4D[c++] >= 1 ? 1 : 0; - int l1 = SIMPLEX_4D[c] >= 3 ? 1 : 0; - int l2 = SIMPLEX_4D[c] >= 2 ? 1 : 0; - int l3 = SIMPLEX_4D[c] >= 1 ? 1 : 0; - - float x1 = x0 - i1 + G4; - float y1 = y0 - j1 + G4; - float z1 = z0 - k1 + G4; - float w1 = w0 - l1 + G4; - float x2 = x0 - i2 + 2 * G4; - float y2 = y0 - j2 + 2 * G4; - float z2 = z0 - k2 + 2 * G4; - float w2 = w0 - l2 + 2 * G4; - float x3 = x0 - i3 + 3 * G4; - float y3 = y0 - j3 + 3 * G4; - float z3 = z0 - k3 + 3 * G4; - float w3 = w0 - l3 + 3 * G4; - float x4 = x0 - 1 + 4 * G4; - float y4 = y0 - 1 + 4 * G4; - float z4 = z0 - 1 + 4 * G4; - float w4 = w0 - 1 + 4 * G4; - - t = (float) 0.6 - x0 * x0 - y0 * y0 - z0 * z0 - w0 * w0; - if (t < 0) - n0 = 0; - else { - t *= t; - n0 = t * t * GradCoord4D(seed, i, j, k, l, x0, y0, z0, w0); - } - t = (float) 0.6 - x1 * x1 - y1 * y1 - z1 * z1 - w1 * w1; - if (t < 0) - n1 = 0; - else { - t *= t; - n1 = t * t * GradCoord4D(seed, i + i1, j + j1, k + k1, l + l1, x1, y1, z1, w1); - } - t = (float) 0.6 - x2 * x2 - y2 * y2 - z2 * z2 - w2 * w2; - if (t < 0) - n2 = 0; - else { - t *= t; - n2 = t * t * GradCoord4D(seed, i + i2, j + j2, k + k2, l + l2, x2, y2, z2, w2); - } - t = (float) 0.6 - x3 * x3 - y3 * y3 - z3 * z3 - w3 * w3; - if (t < 0) - n3 = 0; - else { - t *= t; - n3 = t * t * GradCoord4D(seed, i + i3, j + j3, k + k3, l + l3, x3, y3, z3, w3); - } - t = (float) 0.6 - x4 * x4 - y4 * y4 - z4 * z4 - w4 * w4; - if (t < 0) - n4 = 0; - else { - t *= t; - n4 = t * t * GradCoord4D(seed, i + 1, j + 1, k + 1, l + 1, x4, y4, z4, w4); - } - - return 27 * (n0 + n1 + n2 + n3 + n4); - } - - // Cubic Noise - public float GetCubicFractal(float x, float y, float z) { - x *= m_frequency; - y *= m_frequency; - z *= m_frequency; - - switch (m_fractalType) { - case FBM: - return SingleCubicFractalFBM(x, y, z); - case Billow: - return SingleCubicFractalBillow(x, y, z); - case RigidMulti: - return SingleCubicFractalRigidMulti(x, y, z); - default: - return 0; - } - } - - private float SingleCubicFractalFBM(float x, float y, float z) { - int seed = m_seed; - float sum = SingleCubic(seed, x, y, z); - float amp = 1; - int i = 0; - - while (++i < m_octaves) { - x *= m_lacunarity; - y *= m_lacunarity; - z *= m_lacunarity; - - amp *= m_gain; - sum += SingleCubic(++seed, x, y, z) * amp; - } - - return sum * m_fractalBounding; - } - - private float SingleCubicFractalBillow(float x, float y, float z) { - int seed = m_seed; - float sum = Math.abs(SingleCubic(seed, x, y, z)) * 2 - 1; - float amp = 1; - int i = 0; - - while (++i < m_octaves) { - x *= m_lacunarity; - y *= m_lacunarity; - z *= m_lacunarity; - - amp *= m_gain; - sum += (Math.abs(SingleCubic(++seed, x, y, z)) * 2 - 1) * amp; - } - - return sum * m_fractalBounding; - } - - private float SingleCubicFractalRigidMulti(float x, float y, float z) { - int seed = m_seed; - float sum = 1 - Math.abs(SingleCubic(seed, x, y, z)); - float amp = 1; - int i = 0; - - while (++i < m_octaves) { - x *= m_lacunarity; - y *= m_lacunarity; - z *= m_lacunarity; - - amp *= m_gain; - sum -= (1 - Math.abs(SingleCubic(++seed, x, y, z))) * amp; - } - - return sum; - } - - public float GetCubic(float x, float y, float z) { - return SingleCubic(m_seed, x * m_frequency, y * m_frequency, z * m_frequency); - } - - private float SingleCubic(int seed, float x, float y, float z) { - int x1 = FastFloor(x); - int y1 = FastFloor(y); - int z1 = FastFloor(z); - - int x0 = x1 - 1; - int y0 = y1 - 1; - int z0 = z1 - 1; - int x2 = x1 + 1; - int y2 = y1 + 1; - int z2 = z1 + 1; - int x3 = x1 + 2; - int y3 = y1 + 2; - int z3 = z1 + 2; - - float xs = x - (float) x1; - float ys = y - (float) y1; - float zs = z - (float) z1; - - return CubicLerp(CubicLerp(CubicLerp(ValCoord3D(seed, x0, y0, z0), ValCoord3D(seed, x1, y0, z0), ValCoord3D(seed, x2, y0, z0), ValCoord3D(seed, x3, y0, z0), xs), CubicLerp(ValCoord3D(seed, x0, y1, z0), ValCoord3D(seed, x1, y1, z0), ValCoord3D(seed, x2, y1, z0), ValCoord3D(seed, x3, y1, z0), xs), CubicLerp(ValCoord3D(seed, x0, y2, z0), ValCoord3D(seed, x1, y2, z0), ValCoord3D(seed, x2, y2, z0), ValCoord3D(seed, x3, y2, z0), xs), CubicLerp(ValCoord3D(seed, x0, y3, z0), ValCoord3D(seed, x1, y3, z0), ValCoord3D(seed, x2, y3, z0), ValCoord3D(seed, x3, y3, z0), xs), ys), CubicLerp(CubicLerp(ValCoord3D(seed, x0, y0, z1), ValCoord3D(seed, x1, y0, z1), ValCoord3D(seed, x2, y0, z1), ValCoord3D(seed, x3, y0, z1), xs), CubicLerp(ValCoord3D(seed, x0, y1, z1), ValCoord3D(seed, x1, y1, z1), ValCoord3D(seed, x2, y1, z1), ValCoord3D(seed, x3, y1, z1), xs), CubicLerp(ValCoord3D(seed, x0, y2, z1), ValCoord3D(seed, x1, y2, z1), ValCoord3D(seed, x2, y2, z1), ValCoord3D(seed, x3, y2, z1), xs), CubicLerp(ValCoord3D(seed, x0, y3, z1), ValCoord3D(seed, x1, y3, z1), ValCoord3D(seed, x2, y3, z1), ValCoord3D(seed, x3, y3, z1), xs), ys), CubicLerp(CubicLerp(ValCoord3D(seed, x0, y0, z2), ValCoord3D(seed, x1, y0, z2), ValCoord3D(seed, x2, y0, z2), ValCoord3D(seed, x3, y0, z2), xs), CubicLerp(ValCoord3D(seed, x0, y1, z2), ValCoord3D(seed, x1, y1, z2), ValCoord3D(seed, x2, y1, z2), ValCoord3D(seed, x3, y1, z2), xs), CubicLerp(ValCoord3D(seed, x0, y2, z2), ValCoord3D(seed, x1, y2, z2), ValCoord3D(seed, x2, y2, z2), ValCoord3D(seed, x3, y2, z2), xs), CubicLerp(ValCoord3D(seed, x0, y3, z2), ValCoord3D(seed, x1, y3, z2), ValCoord3D(seed, x2, y3, z2), ValCoord3D(seed, x3, y3, z2), xs), ys), CubicLerp(CubicLerp(ValCoord3D(seed, x0, y0, z3), ValCoord3D(seed, x1, y0, z3), ValCoord3D(seed, x2, y0, z3), ValCoord3D(seed, x3, y0, z3), xs), CubicLerp(ValCoord3D(seed, x0, y1, z3), ValCoord3D(seed, x1, y1, z3), ValCoord3D(seed, x2, y1, z3), ValCoord3D(seed, x3, y1, z3), xs), CubicLerp(ValCoord3D(seed, x0, y2, z3), ValCoord3D(seed, x1, y2, z3), ValCoord3D(seed, x2, y2, z3), ValCoord3D(seed, x3, y2, z3), xs), CubicLerp(ValCoord3D(seed, x0, y3, z3), ValCoord3D(seed, x1, y3, z3), ValCoord3D(seed, x2, y3, z3), ValCoord3D(seed, x3, y3, z3), xs), ys), zs) * CUBIC_3D_BOUNDING; - } - - public float GetCubicFractal(float x, float y) { - x *= m_frequency; - y *= m_frequency; - - switch (m_fractalType) { - case FBM: - return SingleCubicFractalFBM(x, y); - case Billow: - return SingleCubicFractalBillow(x, y); - case RigidMulti: - return SingleCubicFractalRigidMulti(x, y); - default: - return 0; - } - } - - private float SingleCubicFractalFBM(float x, float y) { - int seed = m_seed; - float sum = SingleCubic(seed, x, y); - float amp = 1; - int i = 0; - - while (++i < m_octaves) { - x *= m_lacunarity; - y *= m_lacunarity; - - amp *= m_gain; - sum += SingleCubic(++seed, x, y) * amp; - } - - return sum * m_fractalBounding; - } - - private float SingleCubicFractalBillow(float x, float y) { - int seed = m_seed; - float sum = Math.abs(SingleCubic(seed, x, y)) * 2 - 1; - float amp = 1; - int i = 0; - - while (++i < m_octaves) { - x *= m_lacunarity; - y *= m_lacunarity; - - amp *= m_gain; - sum += (Math.abs(SingleCubic(++seed, x, y)) * 2 - 1) * amp; - } - - return sum * m_fractalBounding; - } - - private float SingleCubicFractalRigidMulti(float x, float y) { - int seed = m_seed; - float sum = 1 - Math.abs(SingleCubic(seed, x, y)); - float amp = 1; - int i = 0; - - while (++i < m_octaves) { - x *= m_lacunarity; - y *= m_lacunarity; - - amp *= m_gain; - sum -= (1 - Math.abs(SingleCubic(++seed, x, y))) * amp; - } - - return sum; - } - - public float GetCubic(float x, float y) { - x *= m_frequency; - y *= m_frequency; - - return SingleCubic(m_seed, x, y); - } - - private float SingleCubic(int seed, float x, float y) { - int x1 = FastFloor(x); - int y1 = FastFloor(y); - - int x0 = x1 - 1; - int y0 = y1 - 1; - int x2 = x1 + 1; - int y2 = y1 + 1; - int x3 = x1 + 2; - int y3 = y1 + 2; - - float xs = x - (float) x1; - float ys = y - (float) y1; - - return CubicLerp(CubicLerp(ValCoord2D(seed, x0, y0), ValCoord2D(seed, x1, y0), ValCoord2D(seed, x2, y0), ValCoord2D(seed, x3, y0), xs), CubicLerp(ValCoord2D(seed, x0, y1), ValCoord2D(seed, x1, y1), ValCoord2D(seed, x2, y1), ValCoord2D(seed, x3, y1), xs), CubicLerp(ValCoord2D(seed, x0, y2), ValCoord2D(seed, x1, y2), ValCoord2D(seed, x2, y2), ValCoord2D(seed, x3, y2), xs), CubicLerp(ValCoord2D(seed, x0, y3), ValCoord2D(seed, x1, y3), ValCoord2D(seed, x2, y3), ValCoord2D(seed, x3, y3), xs), ys) * CUBIC_2D_BOUNDING; - } - - // Cellular Noise - public float GetCellular(float x, float y, float z) { - x *= m_frequency; - y *= m_frequency; - z *= m_frequency; - - switch (m_cellularReturnType) { - case CellValue: - case NoiseLookup: - case Distance: - return SingleCellular(x, y, z); - default: - return SingleCellular2Edge(x, y, z); - } - } - - private float SingleCellular(float x, float y, float z) { - int xr = FastRound(x); - int yr = FastRound(y); - int zr = FastRound(z); - - float distance = 999999; - int xc = 0, yc = 0, zc = 0; - - switch (m_cellularDistanceFunction) { - case Euclidean: - for (int xi = xr - 1; xi <= xr + 1; xi++) { - for (int yi = yr - 1; yi <= yr + 1; yi++) { - for (int zi = zr - 1; zi <= zr + 1; zi++) { - Float3 vec = CELL_3D[Hash3D(m_seed, xi, yi, zi) & 255]; - - float vecX = xi - x + vec.x; - float vecY = yi - y + vec.y; - float vecZ = zi - z + vec.z; - - float newDistance = vecX * vecX + vecY * vecY + vecZ * vecZ; - - if (newDistance < distance) { - distance = newDistance; - xc = xi; - yc = yi; - zc = zi; - } - } - } - } - break; - case Manhattan: - for (int xi = xr - 1; xi <= xr + 1; xi++) { - for (int yi = yr - 1; yi <= yr + 1; yi++) { - for (int zi = zr - 1; zi <= zr + 1; zi++) { - Float3 vec = CELL_3D[Hash3D(m_seed, xi, yi, zi) & 255]; - - float vecX = xi - x + vec.x; - float vecY = yi - y + vec.y; - float vecZ = zi - z + vec.z; - - float newDistance = Math.abs(vecX) + Math.abs(vecY) + Math.abs(vecZ); - - if (newDistance < distance) { - distance = newDistance; - xc = xi; - yc = yi; - zc = zi; - } - } - } - } - break; - case Natural: - for (int xi = xr - 1; xi <= xr + 1; xi++) { - for (int yi = yr - 1; yi <= yr + 1; yi++) { - for (int zi = zr - 1; zi <= zr + 1; zi++) { - Float3 vec = CELL_3D[Hash3D(m_seed, xi, yi, zi) & 255]; - - float vecX = xi - x + vec.x; - float vecY = yi - y + vec.y; - float vecZ = zi - z + vec.z; - - float newDistance = (Math.abs(vecX) + Math.abs(vecY) + Math.abs(vecZ)) + (vecX * vecX + vecY * vecY + vecZ * vecZ); - - if (newDistance < distance) { - distance = newDistance; - xc = xi; - yc = yi; - zc = zi; - } - } - } - } - break; - } - - switch (m_cellularReturnType) { - case CellValue: - return ValCoord3D(0, xc, yc, zc); - - case NoiseLookup: - Float3 vec = CELL_3D[Hash3D(m_seed, xc, yc, zc) & 255]; - return m_cellularNoiseLookup.GetNoise(xc + vec.x, yc + vec.y, zc + vec.z); - - case Distance: - return distance - 1; - default: - return 0; - } - } - - private float SingleCellular2Edge(float x, float y, float z) { - int xr = FastRound(x); - int yr = FastRound(y); - int zr = FastRound(z); - - float distance = 999999; - float distance2 = 999999; - - switch (m_cellularDistanceFunction) { - case Euclidean: - for (int xi = xr - 1; xi <= xr + 1; xi++) { - for (int yi = yr - 1; yi <= yr + 1; yi++) { - for (int zi = zr - 1; zi <= zr + 1; zi++) { - Float3 vec = CELL_3D[Hash3D(m_seed, xi, yi, zi) & 255]; - - float vecX = xi - x + vec.x; - float vecY = yi - y + vec.y; - float vecZ = zi - z + vec.z; - - float newDistance = vecX * vecX + vecY * vecY + vecZ * vecZ; - - distance2 = Math.max(Math.min(distance2, newDistance), distance); - distance = Math.min(distance, newDistance); - } - } - } - break; - case Manhattan: - for (int xi = xr - 1; xi <= xr + 1; xi++) { - for (int yi = yr - 1; yi <= yr + 1; yi++) { - for (int zi = zr - 1; zi <= zr + 1; zi++) { - Float3 vec = CELL_3D[Hash3D(m_seed, xi, yi, zi) & 255]; - - float vecX = xi - x + vec.x; - float vecY = yi - y + vec.y; - float vecZ = zi - z + vec.z; - - float newDistance = Math.abs(vecX) + Math.abs(vecY) + Math.abs(vecZ); - - distance2 = Math.max(Math.min(distance2, newDistance), distance); - distance = Math.min(distance, newDistance); - } - } - } - break; - case Natural: - for (int xi = xr - 1; xi <= xr + 1; xi++) { - for (int yi = yr - 1; yi <= yr + 1; yi++) { - for (int zi = zr - 1; zi <= zr + 1; zi++) { - Float3 vec = CELL_3D[Hash3D(m_seed, xi, yi, zi) & 255]; - - float vecX = xi - x + vec.x; - float vecY = yi - y + vec.y; - float vecZ = zi - z + vec.z; - - float newDistance = (Math.abs(vecX) + Math.abs(vecY) + Math.abs(vecZ)) + (vecX * vecX + vecY * vecY + vecZ * vecZ); - - distance2 = Math.max(Math.min(distance2, newDistance), distance); - distance = Math.min(distance, newDistance); - } - } - } - break; - default: - break; - } - - switch (m_cellularReturnType) { - case Distance2: - return distance2 - 1; - case Distance2Add: - return distance2 + distance - 1; - case Distance2Sub: - return distance2 - distance - 1; - case Distance2Mul: - return distance2 * distance - 1; - case Distance2Div: - return distance / distance2 - 1; - default: - return 0; - } - } - - public float GetCellular(float x, float y, ProceduralStream sourceNoise, double iscale) { - x *= m_frequency; - y *= m_frequency; - - switch (m_cellularReturnType) { - case CellValue: - case NoiseLookup: - case Distance: - return SingleCellular(x, y, sourceNoise, iscale); - default: - return SingleCellular2Edge(x, y); - } - } - - public float GetCellular(float x, float y) { - x *= m_frequency; - y *= m_frequency; - - switch (m_cellularReturnType) { - case CellValue: - case NoiseLookup: - case Distance: - return SingleCellular(x, y); - default: - return SingleCellular2Edge(x, y); - } - } - - private float SingleCellular(float x, float y) { - int xr = FastRound(x); - int yr = FastRound(y); - - float distance = 999999; - int xc = 0, yc = 0; - - switch (m_cellularDistanceFunction) { - default: - case Euclidean: - for (int xi = xr - 1; xi <= xr + 1; xi++) { - for (int yi = yr - 1; yi <= yr + 1; yi++) { - Float2 vec = CELL_2D[Hash2D(m_seed, xi, yi) & 255]; - - float vecX = xi - x + vec.x; - float vecY = yi - y + vec.y; - - float newDistance = vecX * vecX + vecY * vecY; - - if (newDistance < distance) { - distance = newDistance; - xc = xi; - yc = yi; - } - } - } - break; - case Manhattan: - for (int xi = xr - 1; xi <= xr + 1; xi++) { - for (int yi = yr - 1; yi <= yr + 1; yi++) { - Float2 vec = CELL_2D[Hash2D(m_seed, xi, yi) & 255]; - - float vecX = xi - x + vec.x; - float vecY = yi - y + vec.y; - - float newDistance = (Math.abs(vecX) + Math.abs(vecY)); - - if (newDistance < distance) { - distance = newDistance; - xc = xi; - yc = yi; - } - } - } - break; - case Natural: - for (int xi = xr - 1; xi <= xr + 1; xi++) { - for (int yi = yr - 1; yi <= yr + 1; yi++) { - Float2 vec = CELL_2D[Hash2D(m_seed, xi, yi) & 255]; - - float vecX = xi - x + vec.x; - float vecY = yi - y + vec.y; - - float newDistance = (Math.abs(vecX) + Math.abs(vecY)) + (vecX * vecX + vecY * vecY); - - if (newDistance < distance) { - distance = newDistance; - xc = xi; - yc = yi; - } - } - } - break; - } - - switch (m_cellularReturnType) { - case CellValue: - return ValCoord2D(0, xc, yc); - - case NoiseLookup: - Float2 vec = CELL_2D[Hash2D(m_seed, xc, yc) & 255]; - return m_cellularNoiseLookup.GetNoise(xc + vec.x, yc + vec.y); - - case Distance: - return distance - 1; - default: - return 0; - } - } - - private float SingleCellular(float x, float y, ProceduralStream sourceNoise, double iscale) { - int xr = FastRound(x); - int yr = FastRound(y); - - float distance = 999999; - int xc = 0, yc = 0; - - switch (m_cellularDistanceFunction) { - default: - case Euclidean: - for (int xi = xr - 1; xi <= xr + 1; xi++) { - for (int yi = yr - 1; yi <= yr + 1; yi++) { - Float2 vec = CELL_2D[Hash2D(m_seed, xi, yi) & 255]; - - float vecX = xi - x + vec.x; - float vecY = yi - y + vec.y; - - float newDistance = vecX * vecX + vecY * vecY; - - if (newDistance < distance) { - distance = newDistance; - xc = xi; - yc = yi; - } - } - } - break; - case Manhattan: - for (int xi = xr - 1; xi <= xr + 1; xi++) { - for (int yi = yr - 1; yi <= yr + 1; yi++) { - Float2 vec = CELL_2D[Hash2D(m_seed, xi, yi) & 255]; - - float vecX = xi - x + vec.x; - float vecY = yi - y + vec.y; - - float newDistance = (Math.abs(vecX) + Math.abs(vecY)); - - if (newDistance < distance) { - distance = newDistance; - xc = xi; - yc = yi; - } - } - } - break; - case Natural: - for (int xi = xr - 1; xi <= xr + 1; xi++) { - for (int yi = yr - 1; yi <= yr + 1; yi++) { - Float2 vec = CELL_2D[Hash2D(m_seed, xi, yi) & 255]; - - float vecX = xi - x + vec.x; - float vecY = yi - y + vec.y; - - float newDistance = (Math.abs(vecX) + Math.abs(vecY)) + (vecX * vecX + vecY * vecY); - - if (newDistance < distance) { - distance = newDistance; - xc = xi; - yc = yi; - } - } - } - break; - } - - switch (m_cellularReturnType) { - case CellValue: - return sourceNoise.get(xc * iscale, yc * iscale).floatValue(); - - case NoiseLookup: - Float2 vec = CELL_2D[Hash2D(m_seed, xc, yc) & 255]; - return m_cellularNoiseLookup.GetNoise(xc + vec.x, yc + vec.y); - - case Distance: - return distance - 1; - default: - return 0; - } - } - - private float SingleCellular2Edge(float x, float y) { - int xr = FastRound(x); - int yr = FastRound(y); - - float distance = 999999; - float distance2 = 999999; - - switch (m_cellularDistanceFunction) { - default: - case Euclidean: - for (int xi = xr - 1; xi <= xr + 1; xi++) { - for (int yi = yr - 1; yi <= yr + 1; yi++) { - Float2 vec = CELL_2D[Hash2D(m_seed, xi, yi) & 255]; - - float vecX = xi - x + vec.x; - float vecY = yi - y + vec.y; - - float newDistance = vecX * vecX + vecY * vecY; - - distance2 = Math.max(Math.min(distance2, newDistance), distance); - distance = Math.min(distance, newDistance); - } - } - break; - case Manhattan: - for (int xi = xr - 1; xi <= xr + 1; xi++) { - for (int yi = yr - 1; yi <= yr + 1; yi++) { - Float2 vec = CELL_2D[Hash2D(m_seed, xi, yi) & 255]; - - float vecX = xi - x + vec.x; - float vecY = yi - y + vec.y; - - float newDistance = Math.abs(vecX) + Math.abs(vecY); - - distance2 = Math.max(Math.min(distance2, newDistance), distance); - distance = Math.min(distance, newDistance); - } - } - break; - case Natural: - for (int xi = xr - 1; xi <= xr + 1; xi++) { - for (int yi = yr - 1; yi <= yr + 1; yi++) { - Float2 vec = CELL_2D[Hash2D(m_seed, xi, yi) & 255]; - - float vecX = xi - x + vec.x; - float vecY = yi - y + vec.y; - - float newDistance = (Math.abs(vecX) + Math.abs(vecY)) + (vecX * vecX + vecY * vecY); - - distance2 = Math.max(Math.min(distance2, newDistance), distance); - distance = Math.min(distance, newDistance); - } - } - break; - } - - switch (m_cellularReturnType) { - case Distance2: - return distance2 - 1; - case Distance2Add: - return distance2 + distance - 1; - case Distance2Sub: - return distance2 - distance - 1; - case Distance2Mul: - return distance2 * distance - 1; - case Distance2Div: - return distance / distance2 - 1; - default: - return 0; - } - } - - public void GradientPerturb(Vector3f v3) { - SingleGradientPerturb(m_seed, m_gradientPerturbAmp, m_frequency, v3); - } - - public void GradientPerturbFractal(Vector3f v3) { - int seed = m_seed; - float amp = m_gradientPerturbAmp * m_fractalBounding; - float freq = m_frequency; - - SingleGradientPerturb(seed, amp, m_frequency, v3); - - for (int i = 1; i < m_octaves; i++) { - freq *= m_lacunarity; - amp *= m_gain; - SingleGradientPerturb(++seed, amp, freq, v3); - } - } - - private void SingleGradientPerturb(int seed, float perturbAmp, float frequency, Vector3f v3) { - float xf = v3.x * frequency; - float yf = v3.y * frequency; - float zf = v3.z * frequency; - - int x0 = FastFloor(xf); - int y0 = FastFloor(yf); - int z0 = FastFloor(zf); - int x1 = x0 + 1; - int y1 = y0 + 1; - int z1 = z0 + 1; - - float xs, ys, zs; - switch (m_interp) { - default: - case Linear: - xs = xf - x0; - ys = yf - y0; - zs = zf - z0; - break; - case Hermite: - xs = InterpHermiteFunc(xf - x0); - ys = InterpHermiteFunc(yf - y0); - zs = InterpHermiteFunc(zf - z0); - break; - case Quintic: - xs = InterpQuinticFunc(xf - x0); - ys = InterpQuinticFunc(yf - y0); - zs = InterpQuinticFunc(zf - z0); - break; - } - - Float3 vec0 = CELL_3D[Hash3D(seed, x0, y0, z0) & 255]; - Float3 vec1 = CELL_3D[Hash3D(seed, x1, y0, z0) & 255]; - - float lx0x = Lerp(vec0.x, vec1.x, xs); - float ly0x = Lerp(vec0.y, vec1.y, xs); - float lz0x = Lerp(vec0.z, vec1.z, xs); - - vec0 = CELL_3D[Hash3D(seed, x0, y1, z0) & 255]; - vec1 = CELL_3D[Hash3D(seed, x1, y1, z0) & 255]; - - float lx1x = Lerp(vec0.x, vec1.x, xs); - float ly1x = Lerp(vec0.y, vec1.y, xs); - float lz1x = Lerp(vec0.z, vec1.z, xs); - - float lx0y = Lerp(lx0x, lx1x, ys); - float ly0y = Lerp(ly0x, ly1x, ys); - float lz0y = Lerp(lz0x, lz1x, ys); - - vec0 = CELL_3D[Hash3D(seed, x0, y0, z1) & 255]; - vec1 = CELL_3D[Hash3D(seed, x1, y0, z1) & 255]; - - lx0x = Lerp(vec0.x, vec1.x, xs); - ly0x = Lerp(vec0.y, vec1.y, xs); - lz0x = Lerp(vec0.z, vec1.z, xs); - - vec0 = CELL_3D[Hash3D(seed, x0, y1, z1) & 255]; - vec1 = CELL_3D[Hash3D(seed, x1, y1, z1) & 255]; - - lx1x = Lerp(vec0.x, vec1.x, xs); - ly1x = Lerp(vec0.y, vec1.y, xs); - lz1x = Lerp(vec0.z, vec1.z, xs); - - v3.x += Lerp(lx0y, Lerp(lx0x, lx1x, ys), zs) * perturbAmp; - v3.y += Lerp(ly0y, Lerp(ly0x, ly1x, ys), zs) * perturbAmp; - v3.z += Lerp(lz0y, Lerp(lz0x, lz1x, ys), zs) * perturbAmp; - } - - public void GradientPerturb(Vector2f v2) { - SingleGradientPerturb(m_seed, m_gradientPerturbAmp, m_frequency, v2); - } - - public void GradientPerturbFractal(Vector2f v2) { - int seed = m_seed; - float amp = m_gradientPerturbAmp * m_fractalBounding; - float freq = m_frequency; - - SingleGradientPerturb(seed, amp, m_frequency, v2); - - for (int i = 1; i < m_octaves; i++) { - freq *= m_lacunarity; - amp *= m_gain; - SingleGradientPerturb(++seed, amp, freq, v2); - } - } - - private void SingleGradientPerturb(int seed, float perturbAmp, float frequency, Vector2f v2) { - float xf = v2.x * frequency; - float yf = v2.y * frequency; - - int x0 = FastFloor(xf); - int y0 = FastFloor(yf); - int x1 = x0 + 1; - int y1 = y0 + 1; - - float xs, ys; - switch (m_interp) { - default: - case Linear: - xs = xf - x0; - ys = yf - y0; - break; - case Hermite: - xs = InterpHermiteFunc(xf - x0); - ys = InterpHermiteFunc(yf - y0); - break; - case Quintic: - xs = InterpQuinticFunc(xf - x0); - ys = InterpQuinticFunc(yf - y0); - break; - } - - Float2 vec0 = CELL_2D[Hash2D(seed, x0, y0) & 255]; - Float2 vec1 = CELL_2D[Hash2D(seed, x1, y0) & 255]; - - float lx0x = Lerp(vec0.x, vec1.x, xs); - float ly0x = Lerp(vec0.y, vec1.y, xs); - - vec0 = CELL_2D[Hash2D(seed, x0, y1) & 255]; - vec1 = CELL_2D[Hash2D(seed, x1, y1) & 255]; - - float lx1x = Lerp(vec0.x, vec1.x, xs); - float ly1x = Lerp(vec0.y, vec1.y, xs); - - v2.x += Lerp(lx0x, lx1x, ys) * perturbAmp; - v2.y += Lerp(ly0x, ly1x, ys) * perturbAmp; - } - - public enum NoiseType { - Value, - ValueFractal, - Perlin, - PerlinFractal, - Simplex, - SimplexFractal, - Cellular, - WhiteNoise, - Cubic, - CubicFractal - } - - public enum Interp { - Linear, - Hermite, - Quintic - } - - public enum FractalType { - FBM, - Billow, - RigidMulti - } - - public enum CellularDistanceFunction { - Euclidean, - Manhattan, - Natural - } - - public enum CellularReturnType { - CellValue, - NoiseLookup, - Distance, - Distance2, - Distance2Add, - Distance2Sub, - Distance2Mul, - Distance2Div - } - - private static class Float2 { - public final float x, y; - - public Float2(float x, float y) { - this.x = x; - this.y = y; - } - } - - private static class Float3 { - public final float x, y, z; - - public Float3(float x, float y, float z) { - this.x = x; - this.y = y; - this.z = z; - } - } - -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/FastNoiseDouble.java b/core/src/main/java/art/arcane/iris/util/project/noise/FastNoiseDouble.java deleted file mode 100644 index 5b0362d41..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/FastNoiseDouble.java +++ /dev/null @@ -1,2161 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package art.arcane.iris.util.project.noise; - -import art.arcane.volmlib.util.math.Vector2f; -import art.arcane.volmlib.util.math.Vector3f; - -public class FastNoiseDouble { - private static final double[] GRAD_2D = {-1D, -1D, 1D, -1D, -1D, 1D, 1D, 1D, 0D, -1D, -1D, 0D, 0D, 1D, 1D, 0D}; - private static final double[] GRAD_3D = { - 1D, 1D, 0D, -1D, 1D, 0D, 1D, -1D, 0D, -1D, -1D, 0D, - 1D, 0D, 1D, -1D, 0D, 1D, 1D, 0D, -1D, -1D, 0D, -1D, - 0D, 1D, 1D, 0D, -1D, 1D, 0D, 1D, -1D, 0D, -1D, -1D, - 1D, 1D, 0D, 0D, -1D, 1D, -1D, 1D, 0D, 0D, -1D, -1D - }; - private static final Double2[] CELL_2D = {new Double2(-0.4313539279f, 0.1281943404f), new Double2(-0.1733316799f, 0.415278375f), new Double2(-0.2821957395f, -0.3505218461f), new Double2(-0.2806473808f, 0.3517627718f), new Double2(0.3125508975f, -0.3237467165f), new Double2(0.3383018443f, -0.2967353402f), new Double2(-0.4393982022f, -0.09710417025f), new Double2(-0.4460443703f, -0.05953502905f), new Double2(-0.302223039f, 0.3334085102f), new Double2(-0.212681052f, -0.3965687458f), new Double2(-0.2991156529f, 0.3361990872f), new Double2(0.2293323691f, 0.3871778202f), new Double2(0.4475439151f, -0.04695150755f), new Double2(0.1777518f, 0.41340573f), new Double2(0.1688522499f, -0.4171197882f), new Double2(-0.0976597166f, 0.4392750616f), new Double2(0.08450188373f, 0.4419948321f), new Double2(-0.4098760448f, -0.1857461384f), new Double2(0.3476585782f, -0.2857157906f), new Double2(-0.3350670039f, -0.30038326f), new Double2(0.2298190031f, -0.3868891648f), new Double2(-0.01069924099f, 0.449872789f), new Double2(-0.4460141246f, -0.05976119672f), new Double2(0.3650293864f, 0.2631606867f), new Double2(-0.349479423f, 0.2834856838f), new Double2(-0.4122720642f, 0.1803655873f), new Double2(-0.267327811f, 0.3619887311f), new Double2(0.322124041f, -0.3142230135f), new Double2(0.2880445931f, -0.3457315612f), new Double2(0.3892170926f, -0.2258540565f), new Double2(0.4492085018f, -0.02667811596f), new Double2(-0.4497724772f, 0.01430799601f), new Double2(0.1278175387f, -0.4314657307f), new Double2(-0.03572100503f, 0.4485799926f), new Double2(-0.4297407068f, -0.1335025276f), new Double2(-0.3217817723f, 0.3145735065f), new Double2(-0.3057158873f, 0.3302087162f), new Double2(-0.414503978f, 0.1751754899f), new Double2(-0.3738139881f, 0.2505256519f), new Double2(0.2236891408f, -0.3904653228f), new Double2(0.002967775577f, -0.4499902136f), new Double2(0.1747128327f, -0.4146991995f), new Double2(-0.4423772489f, -0.08247647938f), new Double2(-0.2763960987f, -0.355112935f), new Double2(-0.4019385906f, -0.2023496216f), new Double2(0.3871414161f, -0.2293938184f), new Double2(-0.430008727f, 0.1326367019f), new Double2(-0.03037574274f, -0.4489736231f), new Double2(-0.3486181573f, 0.2845441624f), new Double2(0.04553517144f, -0.4476902368f), new Double2(-0.0375802926f, 0.4484280562f), new Double2(0.3266408905f, 0.3095250049f), new Double2(0.06540017593f, -0.4452222108f), new Double2(0.03409025829f, 0.448706869f), new Double2(-0.4449193635f, 0.06742966669f), new Double2(-0.4255936157f, -0.1461850686f), new Double2(0.449917292f, 0.008627302568f), new Double2(0.05242606404f, 0.4469356864f), new Double2(-0.4495305179f, -0.02055026661f), new Double2(-0.1204775703f, 0.4335725488f), new Double2(-0.341986385f, -0.2924813028f), new Double2(0.3865320182f, 0.2304191809f), new Double2(0.04506097811f, -0.447738214f), new Double2(-0.06283465979f, 0.4455915232f), new Double2(0.3932600341f, -0.2187385324f), new Double2(0.4472261803f, -0.04988730975f), new Double2(0.3753571011f, -0.2482076684f), new Double2(-0.273662295f, 0.357223947f), new Double2(0.1700461538f, 0.4166344988f), new Double2(0.4102692229f, 0.1848760794f), new Double2(0.323227187f, -0.3130881435f), new Double2(-0.2882310238f, -0.3455761521f), new Double2(0.2050972664f, 0.4005435199f), new Double2(0.4414085979f, -0.08751256895f), new Double2(-0.1684700334f, 0.4172743077f), new Double2(-0.003978032396f, 0.4499824166f), new Double2(-0.2055133639f, 0.4003301853f), new Double2(-0.006095674897f, -0.4499587123f), new Double2(-0.1196228124f, -0.4338091548f), new Double2(0.3901528491f, -0.2242337048f), new Double2(0.01723531752f, 0.4496698165f), new Double2(-0.3015070339f, 0.3340561458f), new Double2(-0.01514262423f, -0.4497451511f), new Double2(-0.4142574071f, -0.1757577897f), new Double2(-0.1916377265f, -0.4071547394f), new Double2(0.3749248747f, 0.2488600778f), new Double2(-0.2237774255f, 0.3904147331f), new Double2(-0.4166343106f, -0.1700466149f), new Double2(0.3619171625f, 0.267424695f), new Double2(0.1891126846f, -0.4083336779f), new Double2(-0.3127425077f, 0.323561623f), new Double2(-0.3281807787f, 0.307891826f), new Double2(-0.2294806661f, 0.3870899429f), new Double2(-0.3445266136f, 0.2894847362f), new Double2(-0.4167095422f, -0.1698621719f), new Double2(-0.257890321f, -0.3687717212f), new Double2(-0.3612037825f, 0.2683874578f), new Double2(0.2267996491f, 0.3886668486f), new Double2(0.207157062f, 0.3994821043f), new Double2(0.08355176718f, -0.4421754202f), new Double2(-0.4312233307f, 0.1286329626f), new Double2(0.3257055497f, 0.3105090899f), new Double2(0.177701095f, -0.4134275279f), new Double2(-0.445182522f, 0.06566979625f), new Double2(0.3955143435f, 0.2146355146f), new Double2(-0.4264613988f, 0.1436338239f), new Double2(-0.3793799665f, -0.2420141339f), new Double2(0.04617599081f, -0.4476245948f), new Double2(-0.371405428f, -0.2540826796f), new Double2(0.2563570295f, -0.3698392535f), new Double2(0.03476646309f, 0.4486549822f), new Double2(-0.3065454405f, 0.3294387544f), new Double2(-0.2256979823f, 0.3893076172f), new Double2(0.4116448463f, -0.1817925206f), new Double2(-0.2907745828f, -0.3434387019f), new Double2(0.2842278468f, -0.348876097f), new Double2(0.3114589359f, -0.3247973695f), new Double2(0.4464155859f, -0.0566844308f), new Double2(-0.3037334033f, -0.3320331606f), new Double2(0.4079607166f, 0.1899159123f), new Double2(-0.3486948919f, -0.2844501228f), new Double2(0.3264821436f, 0.3096924441f), new Double2(0.3211142406f, 0.3152548881f), new Double2(0.01183382662f, 0.4498443737f), new Double2(0.4333844092f, 0.1211526057f), new Double2(0.3118668416f, 0.324405723f), new Double2(-0.272753471f, 0.3579183483f), new Double2(-0.422228622f, -0.1556373694f), new Double2(-0.1009700099f, -0.4385260051f), new Double2(-0.2741171231f, -0.3568750521f), new Double2(-0.1465125133f, 0.4254810025f), new Double2(0.2302279044f, -0.3866459777f), new Double2(-0.3699435608f, 0.2562064828f), new Double2(0.105700352f, -0.4374099171f), new Double2(-0.2646713633f, 0.3639355292f), new Double2(0.3521828122f, 0.2801200935f), new Double2(-0.1864187807f, -0.4095705534f), new Double2(0.1994492955f, -0.4033856449f), new Double2(0.3937065066f, 0.2179339044f), new Double2(-0.3226158377f, 0.3137180602f), new Double2(0.3796235338f, 0.2416318948f), new Double2(0.1482921929f, 0.4248640083f), new Double2(-0.407400394f, 0.1911149365f), new Double2(0.4212853031f, 0.1581729856f), new Double2(-0.2621297173f, 0.3657704353f), new Double2(-0.2536986953f, -0.3716678248f), new Double2(-0.2100236383f, 0.3979825013f), new Double2(0.3624152444f, 0.2667493029f), new Double2(-0.3645038479f, -0.2638881295f), new Double2(0.2318486784f, 0.3856762766f), new Double2(-0.3260457004f, 0.3101519002f), new Double2(-0.2130045332f, -0.3963950918f), new Double2(0.3814998766f, -0.2386584257f), new Double2(-0.342977305f, 0.2913186713f), new Double2(-0.4355865605f, 0.1129794154f), new Double2(-0.2104679605f, 0.3977477059f), new Double2(0.3348364681f, -0.3006402163f), new Double2(0.3430468811f, 0.2912367377f), new Double2(-0.2291836801f, -0.3872658529f), new Double2(0.2547707298f, -0.3709337882f), new Double2(0.4236174945f, -0.151816397f), new Double2(-0.15387742f, 0.4228731957f), new Double2(-0.4407449312f, 0.09079595574f), new Double2(-0.06805276192f, -0.444824484f), new Double2(0.4453517192f, -0.06451237284f), new Double2(0.2562464609f, -0.3699158705f), new Double2(0.3278198355f, -0.3082761026f), new Double2(-0.4122774207f, -0.1803533432f), new Double2(0.3354090914f, -0.3000012356f), new Double2(0.446632869f, -0.05494615882f), new Double2(-0.1608953296f, 0.4202531296f), new Double2(-0.09463954939f, 0.4399356268f), new Double2(-0.02637688324f, -0.4492262904f), new Double2(0.447102804f, -0.05098119915f), new Double2(-0.4365670908f, 0.1091291678f), new Double2(-0.3959858651f, 0.2137643437f), new Double2(-0.4240048207f, -0.1507312575f), new Double2(-0.3882794568f, 0.2274622243f), new Double2(-0.4283652566f, -0.1378521198f), new Double2(0.3303888091f, 0.305521251f), new Double2(0.3321434919f, -0.3036127481f), new Double2(-0.413021046f, -0.1786438231f), new Double2(0.08403060337f, -0.4420846725f), new Double2(-0.3822882919f, 0.2373934748f), new Double2(-0.3712395594f, -0.2543249683f), new Double2(0.4472363971f, -0.04979563372f), new Double2(-0.4466591209f, 0.05473234629f), new Double2(0.0486272539f, -0.4473649407f), new Double2(-0.4203101295f, -0.1607463688f), new Double2(0.2205360833f, 0.39225481f), new Double2(-0.3624900666f, 0.2666476169f), new Double2(-0.4036086833f, -0.1989975647f), new Double2(0.2152727807f, 0.3951678503f), new Double2(-0.4359392962f, -0.1116106179f), new Double2(0.4178354266f, 0.1670735057f), new Double2(0.2007630161f, 0.4027334247f), new Double2(-0.07278067175f, -0.4440754146f), new Double2(0.3644748615f, -0.2639281632f), new Double2(-0.4317451775f, 0.126870413f), new Double2(-0.297436456f, 0.3376855855f), new Double2(-0.2998672222f, 0.3355289094f), new Double2(-0.2673674124f, 0.3619594822f), new Double2(0.2808423357f, 0.3516071423f), new Double2(0.3498946567f, 0.2829730186f), new Double2(-0.2229685561f, 0.390877248f), new Double2(0.3305823267f, 0.3053118493f), new Double2(-0.2436681211f, -0.3783197679f), new Double2(-0.03402776529f, 0.4487116125f), new Double2(-0.319358823f, 0.3170330301f), new Double2(0.4454633477f, -0.06373700535f), new Double2(0.4483504221f, 0.03849544189f), new Double2(-0.4427358436f, -0.08052932871f), new Double2(0.05452298565f, 0.4466847255f), new Double2(-0.2812560807f, 0.3512762688f), new Double2(0.1266696921f, 0.4318041097f), new Double2(-0.3735981243f, 0.2508474468f), new Double2(0.2959708351f, -0.3389708908f), new Double2(-0.3714377181f, 0.254035473f), new Double2(-0.404467102f, -0.1972469604f), new Double2(0.1636165687f, -0.419201167f), new Double2(0.3289185495f, -0.3071035458f), new Double2(-0.2494824991f, -0.3745109914f), new Double2(0.03283133272f, 0.4488007393f), new Double2(-0.166306057f, -0.4181414777f), new Double2(-0.106833179f, 0.4371346153f), new Double2(0.06440260376f, -0.4453676062f), new Double2(-0.4483230967f, 0.03881238203f), new Double2(-0.421377757f, -0.1579265206f), new Double2(0.05097920662f, -0.4471030312f), new Double2(0.2050584153f, -0.4005634111f), new Double2(0.4178098529f, -0.167137449f), new Double2(-0.3565189504f, -0.2745801121f), new Double2(0.4478398129f, 0.04403977727f), new Double2(-0.3399999602f, -0.2947881053f), new Double2(0.3767121994f, 0.2461461331f), new Double2(-0.3138934434f, 0.3224451987f), new Double2(-0.1462001792f, -0.4255884251f), new Double2(0.3970290489f, -0.2118205239f), new Double2(0.4459149305f, -0.06049689889f), new Double2(-0.4104889426f, -0.1843877112f), new Double2(0.1475103971f, -0.4251360756f), new Double2(0.09258030352f, 0.4403735771f), new Double2(-0.1589664637f, -0.4209865359f), new Double2(0.2482445008f, 0.3753327428f), new Double2(0.4383624232f, -0.1016778537f), new Double2(0.06242802956f, 0.4456486745f), new Double2(0.2846591015f, -0.3485243118f), new Double2(-0.344202744f, -0.2898697484f), new Double2(0.1198188883f, -0.4337550392f), new Double2(-0.243590703f, 0.3783696201f), new Double2(0.2958191174f, -0.3391033025f), new Double2(-0.1164007991f, 0.4346847754f), new Double2(0.1274037151f, -0.4315881062f), new Double2(0.368047306f, 0.2589231171f), new Double2(0.2451436949f, 0.3773652989f), new Double2(-0.4314509715f, 0.12786735f), - }; - private static final Double3[] CELL_3D = {new Double3(0.1453787434f, -0.4149781685f, -0.0956981749f), new Double3(-0.01242829687f, -0.1457918398f, -0.4255470325f), new Double3(0.2877979582f, -0.02606483451f, -0.3449535616f), new Double3(-0.07732986802f, 0.2377094325f, 0.3741848704f), new Double3(0.1107205875f, -0.3552302079f, -0.2530858567f), new Double3(0.2755209141f, 0.2640521179f, -0.238463215f), new Double3(0.294168941f, 0.1526064594f, 0.3044271714f), new Double3(0.4000921098f, -0.2034056362f, 0.03244149937f), new Double3(-0.1697304074f, 0.3970864695f, -0.1265461359f), new Double3(-0.1483224484f, -0.3859694688f, 0.1775613147f), new Double3(0.2623596946f, -0.2354852944f, 0.2796677792f), new Double3(-0.2709003183f, 0.3505271138f, -0.07901746678f), new Double3(-0.03516550699f, 0.3885234328f, 0.2243054374f), new Double3(-0.1267712655f, 0.1920044036f, 0.3867342179f), new Double3(0.02952021915f, 0.4409685861f, 0.08470692262f), new Double3(-0.2806854217f, -0.266996757f, 0.2289725438f), new Double3(-0.171159547f, 0.2141185563f, 0.3568720405f), new Double3(0.2113227183f, 0.3902405947f, -0.07453178509f), new Double3(-0.1024352839f, 0.2128044156f, -0.3830421561f), new Double3(-0.3304249877f, -0.1566986703f, 0.2622305365f), new Double3(0.2091111325f, 0.3133278055f, -0.2461670583f), new Double3(0.344678154f, -0.1944240454f, -0.2142341261f), new Double3(0.1984478035f, -0.3214342325f, -0.2445373252f), new Double3(-0.2929008603f, 0.2262915116f, 0.2559320961f), new Double3(-0.1617332831f, 0.006314769776f, -0.4198838754f), new Double3(-0.3582060271f, -0.148303178f, -0.2284613961f), new Double3(-0.1852067326f, -0.3454119342f, -0.2211087107f), new Double3(0.3046301062f, 0.1026310383f, 0.314908508f), new Double3(-0.03816768434f, -0.2551766358f, -0.3686842991f), new Double3(-0.4084952196f, 0.1805950793f, 0.05492788837f), new Double3(-0.02687443361f, -0.2749741471f, 0.3551999201f), new Double3(-0.03801098351f, 0.3277859044f, 0.3059600725f), new Double3(0.2371120802f, 0.2900386767f, -0.2493099024f), new Double3(0.4447660503f, 0.03946930643f, 0.05590469027f), new Double3(0.01985147278f, -0.01503183293f, -0.4493105419f), new Double3(0.4274339143f, 0.03345994256f, -0.1366772882f), new Double3(-0.2072988631f, 0.2871414597f, -0.2776273824f), new Double3(-0.3791240978f, 0.1281177671f, 0.2057929936f), new Double3(-0.2098721267f, -0.1007087278f, -0.3851122467f), new Double3(0.01582798878f, 0.4263894424f, 0.1429738373f), new Double3(-0.1888129464f, -0.3160996813f, -0.2587096108f), new Double3(0.1612988974f, -0.1974805082f, -0.3707885038f), new Double3(-0.08974491322f, 0.229148752f, -0.3767448739f), new Double3(0.07041229526f, 0.4150230285f, -0.1590534329f), new Double3(-0.1082925611f, -0.1586061639f, 0.4069604477f), new Double3(0.2474100658f, -0.3309414609f, 0.1782302128f), new Double3(-0.1068836661f, -0.2701644537f, -0.3436379634f), new Double3(0.2396452163f, 0.06803600538f, -0.3747549496f), new Double3(-0.3063886072f, 0.2597428179f, 0.2028785103f), new Double3(0.1593342891f, -0.3114350249f, -0.2830561951f), new Double3(0.2709690528f, 0.1412648683f, -0.3303331794f), new Double3(-0.1519780427f, 0.3623355133f, 0.2193527988f), new Double3(0.1699773681f, 0.3456012883f, 0.2327390037f), new Double3(-0.1986155616f, 0.3836276443f, -0.1260225743f), new Double3(-0.1887482106f, -0.2050154888f, -0.353330953f), new Double3(0.2659103394f, 0.3015631259f, -0.2021172246f), new Double3(-0.08838976154f, -0.4288819642f, -0.1036702021f), new Double3(-0.04201869311f, 0.3099592485f, 0.3235115047f), new Double3(-0.3230334656f, 0.201549922f, -0.2398478873f), new Double3(0.2612720941f, 0.2759854499f, -0.2409749453f), new Double3(0.385713046f, 0.2193460345f, 0.07491837764f), new Double3(0.07654967953f, 0.3721732183f, 0.241095919f), new Double3(0.4317038818f, -0.02577753072f, 0.1243675091f), new Double3(-0.2890436293f, -0.3418179959f, -0.04598084447f), new Double3(-0.2201947582f, 0.383023377f, -0.08548310451f), new Double3(0.4161322773f, -0.1669634289f, -0.03817251927f), new Double3(0.2204718095f, 0.02654238946f, -0.391391981f), new Double3(-0.1040307469f, 0.3890079625f, -0.2008741118f), new Double3(-0.1432122615f, 0.371614387f, -0.2095065525f), new Double3(0.3978380468f, -0.06206669342f, 0.2009293758f), new Double3(-0.2599274663f, 0.2616724959f, -0.2578084893f), new Double3(0.4032618332f, -0.1124593585f, 0.1650235939f), new Double3(-0.08953470255f, -0.3048244735f, 0.3186935478f), new Double3(0.118937202f, -0.2875221847f, 0.325092195f), new Double3(0.02167047076f, -0.03284630549f, -0.4482761547f), new Double3(-0.3411343612f, 0.2500031105f, 0.1537068389f), new Double3(0.3162964612f, 0.3082064153f, -0.08640228117f), new Double3(0.2355138889f, -0.3439334267f, -0.1695376245f), new Double3(-0.02874541518f, -0.3955933019f, 0.2125550295f), new Double3(-0.2461455173f, 0.02020282325f, -0.3761704803f), new Double3(0.04208029445f, -0.4470439576f, 0.02968078139f), new Double3(0.2727458746f, 0.2288471896f, -0.2752065618f), new Double3(-0.1347522818f, -0.02720848277f, -0.4284874806f), new Double3(0.3829624424f, 0.1231931484f, -0.2016512234f), new Double3(-0.3547613644f, 0.1271702173f, 0.2459107769f), new Double3(0.2305790207f, 0.3063895591f, 0.2354968222f), new Double3(-0.08323845599f, -0.1922245118f, 0.3982726409f), new Double3(0.2993663085f, -0.2619918095f, -0.2103333191f), new Double3(-0.2154865723f, 0.2706747713f, 0.287751117f), new Double3(0.01683355354f, -0.2680655787f, -0.3610505186f), new Double3(0.05240429123f, 0.4335128183f, -0.1087217856f), new Double3(0.00940104872f, -0.4472890582f, 0.04841609928f), new Double3(0.3465688735f, 0.01141914583f, -0.2868093776f), new Double3(-0.3706867948f, -0.2551104378f, 0.003156692623f), new Double3(0.2741169781f, 0.2139972417f, -0.2855959784f), new Double3(0.06413433865f, 0.1708718512f, 0.4113266307f), new Double3(-0.388187972f, -0.03973280434f, -0.2241236325f), new Double3(0.06419469312f, -0.2803682491f, 0.3460819069f), new Double3(-0.1986120739f, -0.3391173584f, 0.2192091725f), new Double3(-0.203203009f, -0.3871641506f, 0.1063600375f), new Double3(-0.1389736354f, -0.2775901578f, -0.3257760473f), new Double3(-0.06555641638f, 0.342253257f, -0.2847192729f), new Double3(-0.2529246486f, -0.2904227915f, 0.2327739768f), new Double3(0.1444476522f, 0.1069184044f, 0.4125570634f), new Double3(-0.3643780054f, -0.2447099973f, -0.09922543227f), new Double3(0.4286142488f, -0.1358496089f, -0.01829506817f), new Double3(0.165872923f, -0.3136808464f, -0.2767498872f), new Double3(0.2219610524f, -0.3658139958f, 0.1393320198f), new Double3(0.04322940318f, -0.3832730794f, 0.2318037215f), new Double3(-0.08481269795f, -0.4404869674f, -0.03574965489f), new Double3(0.1822082075f, -0.3953259299f, 0.1140946023f), new Double3(-0.3269323334f, 0.3036542563f, 0.05838957105f), new Double3(-0.4080485344f, 0.04227858267f, -0.184956522f), new Double3(0.2676025294f, -0.01299671652f, 0.36155217f), new Double3(0.3024892441f, -0.1009990293f, -0.3174892964f), new Double3(0.1448494052f, 0.425921681f, -0.0104580805f), new Double3(0.4198402157f, 0.08062320474f, 0.1404780841f), new Double3(-0.3008872161f, -0.333040905f, -0.03241355801f), new Double3(0.3639310428f, -0.1291284382f, -0.2310412139f), new Double3(0.3295806598f, 0.0184175994f, -0.3058388149f), new Double3(0.2776259487f, -0.2974929052f, -0.1921504723f), new Double3(0.4149000507f, -0.144793182f, -0.09691688386f), new Double3(0.145016715f, -0.0398992945f, 0.4241205002f), new Double3(0.09299023471f, -0.299732164f, -0.3225111565f), new Double3(0.1028907093f, -0.361266869f, 0.247789732f), new Double3(0.2683057049f, -0.07076041213f, -0.3542668666f), new Double3(-0.4227307273f, -0.07933161816f, -0.1323073187f), new Double3(-0.1781224702f, 0.1806857196f, -0.3716517945f), new Double3(0.4390788626f, -0.02841848598f, -0.09435116353f), new Double3(0.2972583585f, 0.2382799621f, -0.2394997452f), new Double3(-0.1707002821f, 0.2215845691f, 0.3525077196f), new Double3(0.3806686614f, 0.1471852559f, -0.1895464869f), new Double3(-0.1751445661f, -0.274887877f, 0.3102596268f), new Double3(-0.2227237566f, -0.2316778837f, 0.3149912482f), new Double3(0.1369633021f, 0.1341343041f, -0.4071228836f), new Double3(-0.3529503428f, -0.2472893463f, -0.129514612f), new Double3(-0.2590744185f, -0.2985577559f, -0.2150435121f), new Double3(-0.3784019401f, 0.2199816631f, -0.1044989934f), new Double3(-0.05635805671f, 0.1485737441f, 0.4210102279f), new Double3(0.3251428613f, 0.09666046873f, -0.2957006485f), new Double3(-0.4190995804f, 0.1406751354f, -0.08405978803f), new Double3(-0.3253150961f, -0.3080335042f, -0.04225456877f), new Double3(0.2857945863f, -0.05796152095f, 0.3427271751f), new Double3(-0.2733604046f, 0.1973770973f, -0.2980207554f), new Double3(0.219003657f, 0.2410037886f, -0.3105713639f), new Double3(0.3182767252f, -0.271342949f, 0.1660509868f), new Double3(-0.03222023115f, -0.3331161506f, -0.300824678f), new Double3(-0.3087780231f, 0.1992794134f, -0.2596995338f), new Double3(-0.06487611647f, -0.4311322747f, 0.1114273361f), new Double3(0.3921171432f, -0.06294284106f, -0.2116183942f), new Double3(-0.1606404506f, -0.358928121f, -0.2187812825f), new Double3(-0.03767771199f, -0.2290351443f, 0.3855169162f), new Double3(0.1394866832f, -0.3602213994f, 0.2308332918f), new Double3(-0.4345093872f, 0.005751117145f, 0.1169124335f), new Double3(-0.1044637494f, 0.4168128432f, -0.1336202785f), new Double3(0.2658727501f, 0.2551943237f, 0.2582393035f), new Double3(0.2051461999f, 0.1975390727f, 0.3484154868f), new Double3(-0.266085566f, 0.23483312f, 0.2766800993f), new Double3(0.07849405464f, -0.3300346342f, -0.2956616708f), new Double3(-0.2160686338f, 0.05376451292f, -0.3910546287f), new Double3(-0.185779186f, 0.2148499206f, 0.3490352499f), new Double3(0.02492421743f, -0.3229954284f, -0.3123343347f), new Double3(-0.120167831f, 0.4017266681f, 0.1633259825f), new Double3(-0.02160084693f, -0.06885389554f, 0.4441762538f), new Double3(0.2597670064f, 0.3096300784f, 0.1978643903f), new Double3(-0.1611553854f, -0.09823036005f, 0.4085091653f), new Double3(-0.3278896792f, 0.1461670309f, 0.2713366126f), new Double3(0.2822734956f, 0.03754421121f, -0.3484423997f), new Double3(0.03169341113f, 0.347405252f, -0.2842624114f), new Double3(0.2202613604f, -0.3460788041f, -0.1849713341f), new Double3(0.2933396046f, 0.3031973659f, 0.1565989581f), new Double3(-0.3194922995f, 0.2453752201f, -0.200538455f), new Double3(-0.3441586045f, -0.1698856132f, -0.2349334659f), new Double3(0.2703645948f, -0.3574277231f, 0.04060059933f), new Double3(0.2298568861f, 0.3744156221f, 0.0973588921f), new Double3(0.09326603877f, -0.3170108894f, 0.3054595587f), new Double3(-0.1116165319f, -0.2985018719f, 0.3177080142f), new Double3(0.2172907365f, -0.3460005203f, -0.1885958001f), new Double3(0.1991339479f, 0.3820341668f, -0.1299829458f), new Double3(-0.0541918155f, -0.2103145071f, 0.39412061f), new Double3(0.08871336998f, 0.2012117383f, 0.3926114802f), new Double3(0.2787673278f, 0.3505404674f, 0.04370535101f), new Double3(-0.322166438f, 0.3067213525f, 0.06804996813f), new Double3(-0.4277366384f, 0.132066775f, 0.04582286686f), new Double3(0.240131882f, -0.1612516055f, 0.344723946f), new Double3(0.1448607981f, -0.2387819045f, 0.3528435224f), new Double3(-0.3837065682f, -0.2206398454f, 0.08116235683f), new Double3(-0.4382627882f, -0.09082753406f, -0.04664855374f), new Double3(-0.37728353f, 0.05445141085f, 0.2391488697f), new Double3(0.1259579313f, 0.348394558f, 0.2554522098f), new Double3(-0.1406285511f, -0.270877371f, -0.3306796947f), new Double3(-0.1580694418f, 0.4162931958f, -0.06491553533f), new Double3(0.2477612106f, -0.2927867412f, -0.2353514536f), new Double3(0.2916132853f, 0.3312535401f, 0.08793624968f), new Double3(0.07365265219f, -0.1666159848f, 0.411478311f), new Double3(-0.26126526f, -0.2422237692f, 0.2748965434f), new Double3(-0.3721862032f, 0.252790166f, 0.008634938242f), new Double3(-0.3691191571f, -0.255281188f, 0.03290232422f), new Double3(0.2278441737f, -0.3358364886f, 0.1944244981f), new Double3(0.363398169f, -0.2310190248f, 0.1306597909f), new Double3(-0.304231482f, -0.2698452035f, 0.1926830856f), new Double3(-0.3199312232f, 0.316332536f, -0.008816977938f), new Double3(0.2874852279f, 0.1642275508f, -0.304764754f), new Double3(-0.1451096801f, 0.3277541114f, -0.2720669462f), new Double3(0.3220090754f, 0.0511344108f, 0.3101538769f), new Double3(-0.1247400865f, -0.04333605335f, -0.4301882115f), new Double3(-0.2829555867f, -0.3056190617f, -0.1703910946f), new Double3(0.1069384374f, 0.3491024667f, -0.2630430352f), new Double3(-0.1420661144f, -0.3055376754f, -0.2982682484f), new Double3(-0.250548338f, 0.3156466809f, -0.2002316239f), new Double3(0.3265787872f, 0.1871229129f, 0.2466400438f), new Double3(0.07646097258f, -0.3026690852f, 0.324106687f), new Double3(0.3451771584f, 0.2757120714f, -0.0856480183f), new Double3(0.298137964f, 0.2852657134f, 0.179547284f), new Double3(0.2812250376f, 0.3466716415f, 0.05684409612f), new Double3(0.4390345476f, -0.09790429955f, -0.01278335452f), new Double3(0.2148373234f, 0.1850172527f, 0.3494474791f), new Double3(0.2595421179f, -0.07946825393f, 0.3589187731f), new Double3(0.3182823114f, -0.307355516f, -0.08203022006f), new Double3(-0.4089859285f, -0.04647718411f, 0.1818526372f), new Double3(-0.2826749061f, 0.07417482322f, 0.3421885344f), new Double3(0.3483864637f, 0.225442246f, -0.1740766085f), new Double3(-0.3226415069f, -0.1420585388f, -0.2796816575f), new Double3(0.4330734858f, -0.118868561f, -0.02859407492f), new Double3(-0.08717822568f, -0.3909896417f, -0.2050050172f), new Double3(-0.2149678299f, 0.3939973956f, -0.03247898316f), new Double3(-0.2687330705f, 0.322686276f, -0.1617284888f), new Double3(0.2105665099f, -0.1961317136f, -0.3459683451f), new Double3(0.4361845915f, -0.1105517485f, 0.004616608544f), new Double3(0.05333333359f, -0.313639498f, -0.3182543336f), new Double3(-0.05986216652f, 0.1361029153f, -0.4247264031f), new Double3(0.3664988455f, 0.2550543014f, -0.05590974511f), new Double3(-0.2341015558f, -0.182405731f, 0.3382670703f), new Double3(-0.04730947785f, -0.4222150243f, -0.1483114513f), new Double3(-0.2391566239f, -0.2577696514f, -0.2808182972f), new Double3(-0.1242081035f, 0.4256953395f, -0.07652336246f), new Double3(0.2614832715f, -0.3650179274f, 0.02980623099f), new Double3(-0.2728794681f, -0.3499628774f, 0.07458404908f), new Double3(0.007892900508f, -0.1672771315f, 0.4176793787f), new Double3(-0.01730330376f, 0.2978486637f, -0.3368779738f), new Double3(0.2054835762f, -0.3252600376f, -0.2334146693f), new Double3(-0.3231994983f, 0.1564282844f, -0.2712420987f), new Double3(-0.2669545963f, 0.2599343665f, -0.2523278991f), new Double3(-0.05554372779f, 0.3170813944f, -0.3144428146f), new Double3(-0.2083935713f, -0.310922837f, -0.2497981362f), new Double3(0.06989323478f, -0.3156141536f, 0.3130537363f), new Double3(0.3847566193f, -0.1605309138f, -0.1693876312f), new Double3(-0.3026215288f, -0.3001537679f, -0.1443188342f), new Double3(0.3450735512f, 0.08611519592f, 0.2756962409f), new Double3(0.1814473292f, -0.2788782453f, -0.3029914042f), new Double3(-0.03855010448f, 0.09795110726f, 0.4375151083f), new Double3(0.3533670318f, 0.2665752752f, 0.08105160988f), new Double3(-0.007945601311f, 0.140359426f, -0.4274764309f), new Double3(0.4063099273f, -0.1491768253f, -0.1231199324f), new Double3(-0.2016773589f, 0.008816271194f, -0.4021797064f), new Double3(-0.07527055435f, -0.425643481f, -0.1251477955f), - }; - private static final double[] CELL_2D_X = extractCell2DComponent(true); - private static final double[] CELL_2D_Y = extractCell2DComponent(false); - private static final double[] CELL_3D_X = extractCell3DComponent(0); - private static final double[] CELL_3D_Y = extractCell3DComponent(1); - private static final double[] CELL_3D_Z = extractCell3DComponent(2); - // Hashing - private final static long X_PRIME = 1619; - private final static long Y_PRIME = 31337; - private final static long Z_PRIME = 6971; - private final static long W_PRIME = 1013; - private final static double F3 = 1.0 / 3.0; - private final static double G3 = 1.0 / 6.0; - private final static double G33 = G3 * 3 - 1; - private final static double F2 = 0.5 * (Math.sqrt(3.0) - 1.0); - private final static double G2 = (3.0 - Math.sqrt(3.0)) / 6.0; - private static final byte[] SIMPLEX_4D = {0, 1, 2, 3, 0, 1, 3, 2, 0, 0, 0, 0, 0, 2, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 2, 1, 3, 0, 0, 0, 0, 0, 3, 1, 2, 0, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 3, 0, 0, 0, 0, 1, 3, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 0, 1, 2, 3, 1, 0, 1, 0, 2, 3, 1, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 1, 0, 0, 0, 0, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 2, 3, 0, 2, 1, 0, 0, 0, 0, 3, 1, 2, 0, 2, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0, 2, 0, 0, 0, 0, 3, 2, 0, 1, 3, 2, 1, 0 - }; - private final static double F4 = (2.23606797 - 1.0) / 4.0; - private final static double G4 = (5.0 - 2.23606797) / 20.0; - private final static double CUBIC_3D_BOUNDING = 1 / (1.5 * 1.5 * 1.5); - private final static double CUBIC_2D_BOUNDING = 1 / (1.5 * 1.5); - public Longerp m_longerp = Longerp.Linear; - private long m_seed = 1337; - private double m_frequency = 0.01; - private NoiseType m_noiseType = NoiseType.Simplex; - private long m_octaves = 3; - private double m_lacunarity = 2.0; - private double m_gain = 0.5; - private FractalType m_fractalType = FractalType.FBM; - private double m_fractalBounding; - private CellularDistanceFunction m_cellularDistanceFunction = CellularDistanceFunction.Euclidean; - private CellularReturnType m_cellularReturnType = CellularReturnType.CellValue; - private FastNoiseDouble m_cellularNoiseLookup = null; - private double m_gradientPerturbAmp = 1.0 / 0.45; - - public FastNoiseDouble() { - this(1337); - } - - public FastNoiseDouble(long seed) { - m_seed = seed; - calculateFractalBounding(); - } - - // Returns a 0 double/double - public static double getDecimalType() { - return 0; - } - - private static long fastFloor(double f) { - return (long) Math.floor(f); - } - - private static long fastRound(double f) { - return (f >= 0) ? (long) (f + 0.5) : (long) (f - 0.5); - } - - private static double lerp(double a, double b, double t) { - return a + t * (b - a); - } - - private static double longerpHermiteFunc(double t) { - return t * t * (3 - 2 * t); - } - - private static double longerpQulongicFunc(double t) { - return t * t * t * (t * (t * 6 - 15) + 10); - } - - private static double cubicLerp(double a, double b, double c, double d, double t) { - double p = (d - c) - (a - b); - return t * t * t * p + t * t * ((a - b) - p) + t * (c - a) + b; - } - - private static double[] extractCell2DComponent(boolean xComponent) { - double[] components = new double[CELL_2D.length]; - for (int i = 0; i < CELL_2D.length; i++) { - Double2 value = CELL_2D[i]; - components[i] = xComponent ? value.x : value.y; - } - return components; - } - - private static double[] extractCell3DComponent(int axis) { - double[] components = new double[CELL_3D.length]; - for (int i = 0; i < CELL_3D.length; i++) { - Double3 value = CELL_3D[i]; - components[i] = axis == 0 ? value.x : axis == 1 ? value.y : value.z; - } - return components; - } - - private static long hash2D(long seed, long x, long y) { - long hash = seed; - hash ^= X_PRIME * x; - hash ^= Y_PRIME * y; - - hash = hash * hash * hash * 60493; - hash = (hash >> 13) ^ hash; - - return hash; - } - - private static long hash3D(long seed, long x, long y, long z) { - long hash = seed; - hash ^= X_PRIME * x; - hash ^= Y_PRIME * y; - hash ^= Z_PRIME * z; - - hash = hash * hash * hash * 60493; - hash = (hash >> 13) ^ hash; - - return hash; - } - - public static long hash4D(long seed, long x, long y, long z, long w) { - long hash = seed; - hash ^= X_PRIME * x; - hash ^= Y_PRIME * y; - hash ^= Z_PRIME * z; - hash ^= W_PRIME * w; - - hash = hash * hash * hash * 60493; - hash = (hash >> 13) ^ hash; - - return hash; - } - - private static double valCoord2D(long seed, long x, long y) { - long n = seed; - n ^= X_PRIME * x; - n ^= Y_PRIME * y; - - return ((n * n * n * 60493L) / (double) Long.MAX_VALUE); - } - - private static double valCoord3D(long seed, long x, long y, long z) { - long n = seed; - n ^= X_PRIME * x; - n ^= Y_PRIME * y; - n ^= Z_PRIME * z; - - return ((n * n * n * 60493L) / (double) Long.MAX_VALUE); - } - - private static double valCoord4D(long seed, long x, long y, long z, long w) { - long n = seed; - n ^= X_PRIME * x; - n ^= Y_PRIME * y; - n ^= Z_PRIME * z; - n ^= W_PRIME * w; - - return ((n * n * n * 60493L) / (double) Long.MAX_VALUE); - } - - private static double GradCoord2D(long seed, long x, long y, double xd, double yd) { - long hash = seed; - hash ^= X_PRIME * x; - hash ^= Y_PRIME * y; - - hash = hash * hash * hash * 60493; - hash = (hash >> 13) ^ hash; - - int gradientIndex = ((int) hash & 7) << 1; - return (xd * GRAD_2D[gradientIndex]) + (yd * GRAD_2D[gradientIndex + 1]); - } - - private static double GradCoord3D(long seed, long x, long y, long z, double xd, double yd, double zd) { - long hash = seed; - hash ^= X_PRIME * x; - hash ^= Y_PRIME * y; - hash ^= Z_PRIME * z; - - hash = hash * hash * hash * 60493; - hash = (hash >> 13) ^ hash; - - int gradientIndex = ((int) (hash & 15)) * 3; - return (xd * GRAD_3D[gradientIndex]) + (yd * GRAD_3D[gradientIndex + 1]) + (zd * GRAD_3D[gradientIndex + 2]); - } - - private static double GradCoord4D(long seed, long x, long y, long z, long w, double xd, double yd, double zd, double wd) { - long hash = seed; - hash ^= X_PRIME * x; - hash ^= Y_PRIME * y; - hash ^= Z_PRIME * z; - hash ^= W_PRIME * w; - - hash = hash * hash * hash * 60493; - hash = (hash >> 13) ^ hash; - - hash &= 31; - double a = yd, b = zd, c = wd; // X,Y,Z - switch ((int) hash >> 3) { // OR, DEPENDING ON HIGH ORDER 2 BITS: - case 1 -> { - a = wd; - b = xd; - c = yd; - } // W,X,Y - case 2 -> { - a = zd; - b = wd; - c = xd; - } // Z,W,X - case 3 -> { - a = yd; - b = zd; - c = wd; - } // Y,Z,W - } - return ((hash & 4) == 0 ? -a : a) + ((hash & 2) == 0 ? -b : b) + ((hash & 1) == 0 ? -c : c); - } - - // Returns the seed used by this object - public long getSeed() { - return m_seed; - } - - // Sets seed used for all noise types - // Default: 1337 - public void setSeed(long seed) { - m_seed = seed; - } - - public double getFrequency() { - return m_frequency; - } - - public double getFractalBounding() { - return m_fractalBounding; - } - - // Sets frequency for all noise types - // Default: 0.01 - public void setFrequency(double frequency) { - m_frequency = frequency; - } - - // Changes the longerpolation method used to smooth between noise values - // Possible longerpolation methods (lowest to highest quality) : - // - Linear - // - Hermite - // - Qulongic - // Used in Value, Gradient Noise and Position Perturbing - // Default: Qulongic - public void setLongerp(Longerp longerp) { - m_longerp = longerp; - } - - // Sets noise return type of GetNoise(...) - // Default: Simplex - public void setNoiseType(NoiseType noiseType) { - m_noiseType = noiseType; - } - - // Sets octave count for all fractal noise types - // Default: 3 - public void setFractalOctaves(long octaves) { - m_octaves = Math.max(1, Math.min(16, octaves)); - calculateFractalBounding(); - } - - // Sets octave lacunarity for all fractal noise types - // Default: 2.0 - public void setFractalLacunarity(double lacunarity) { - m_lacunarity = lacunarity; - } - - // Sets octave gain for all fractal noise types - // Default: 0.5 - public void setFractalGain(double gain) { - m_gain = gain; - calculateFractalBounding(); - } - - // Sets method for combining octaves in all fractal noise types - // Default: FBM - public void setFractalType(FractalType fractalType) { - m_fractalType = fractalType; - } - - // Sets return type from cellular noise calculations - // Note: NoiseLookup requires another FastNoise object be set with - // SetCellularNoiseLookup() to function - // Default: CellValue - public void setCellularDistanceFunction(CellularDistanceFunction cellularDistanceFunction) { - m_cellularDistanceFunction = cellularDistanceFunction; - } - - // Sets distance function used in cellular noise calculations - // Default: Euclidean - public void setCellularReturnType(CellularReturnType cellularReturnType) { - m_cellularReturnType = cellularReturnType; - } - - // Noise used to calculate a cell value if cellular return type is NoiseLookup - // The lookup value is acquired through GetNoise() so ensure you SetNoiseType() - // on the noise lookup, value, gradient or simplex is recommended - public void setCellularNoiseLookup(FastNoiseDouble noise) { - m_cellularNoiseLookup = noise; - } - - // Sets the maximum perturb distance from original location when using - // GradientPerturb{Fractal}(...) - // Default: 1.0 - public void setGradientPerturbAmp(double gradientPerturbAmp) { - m_gradientPerturbAmp = gradientPerturbAmp / 0.45; - } - - // White Noise - - private void calculateFractalBounding() { - double amp = m_gain; - double ampFractal = 1; - for (long i = 1; i < m_octaves; i++) { - ampFractal += amp; - amp *= m_gain; - } - m_fractalBounding = 1 / ampFractal; - } - - public double GetNoise(double x, double y, double z) { - x *= m_frequency; - y *= m_frequency; - z *= m_frequency; - - switch (m_noiseType) { - case Value: - return SingleValue(m_seed, x, y, z); - case ValueFractal: - return switch (m_fractalType) { - case FBM -> SingleValueFractalFBM(x, y, z); - case Billow -> SingleValueFractalBillow(x, y, z); - case RigidMulti -> SingleValueFractalRigidMulti(x, y, z); - }; - case Perlin: - return SinglePerlin(m_seed, x, y, z); - case PerlinFractal: - return switch (m_fractalType) { - case FBM -> SinglePerlinFractalFBM(x, y, z); - case Billow -> SinglePerlinFractalBillow(x, y, z); - case RigidMulti -> SinglePerlinFractalRigidMulti(x, y, z); - }; - case Simplex: - return SingleSimplex(m_seed, x, y, z); - case SimplexFractal: - return switch (m_fractalType) { - case FBM -> SingleSimplexFractalFBM(x, y, z); - case Billow -> SingleSimplexFractalBillow(x, y, z); - case RigidMulti -> SingleSimplexFractalRigidMulti(x, y, z); - }; - case Cellular: - return switch (m_cellularReturnType) { - case CellValue, NoiseLookup, Distance -> SingleCellular(x, y, z); - default -> SingleCellular2Edge(x, y, z); - }; - case WhiteNoise: - return GetWhiteNoise(x, y, z); - case Cubic: - return SingleCubic(m_seed, x, y, z); - case CubicFractal: - return switch (m_fractalType) { - case FBM -> SingleCubicFractalFBM(x, y, z); - case Billow -> SingleCubicFractalBillow(x, y, z); - case RigidMulti -> SingleCubicFractalRigidMulti(x, y, z); - }; - default: - return 0; - } - } - - public double GetNoise(double x, double y) { - x *= m_frequency; - y *= m_frequency; - - switch (m_noiseType) { - case Value: - return SingleValue(m_seed, x, y); - case ValueFractal: - return switch (m_fractalType) { - case FBM -> SingleValueFractalFBM(x, y); - case Billow -> SingleValueFractalBillow(x, y); - case RigidMulti -> SingleValueFractalRigidMulti(x, y); - }; - case Perlin: - return SinglePerlin(m_seed, x, y); - case PerlinFractal: - return switch (m_fractalType) { - case FBM -> SinglePerlinFractalFBM(x, y); - case Billow -> SinglePerlinFractalBillow(x, y); - case RigidMulti -> SinglePerlinFractalRigidMulti(x, y); - }; - case Simplex: - return SingleSimplex(m_seed, x, y); - case SimplexFractal: - return switch (m_fractalType) { - case FBM -> SingleSimplexFractalFBM(x, y); - case Billow -> SingleSimplexFractalBillow(x, y); - case RigidMulti -> SingleSimplexFractalRigidMulti(x, y); - }; - case Cellular: - return switch (m_cellularReturnType) { - case CellValue, NoiseLookup, Distance -> SingleCellular(x, y); - default -> SingleCellular2Edge(x, y); - }; - case WhiteNoise: - return GetWhiteNoise(x, y); - case Cubic: - return SingleCubic(m_seed, x, y); - case CubicFractal: - return switch (m_fractalType) { - case FBM -> SingleCubicFractalFBM(x, y); - case Billow -> SingleCubicFractalBillow(x, y); - case RigidMulti -> SingleCubicFractalRigidMulti(x, y); - }; - default: - return 0; - } - } - - private long DoubleCast2Long(double f) { - long i = Double.doubleToRawLongBits(f); - - return i ^ (i >> 16); - } - - public double GetWhiteNoise(double x, double y, double z, double w) { - long xi = DoubleCast2Long(x); - long yi = DoubleCast2Long(y); - long zi = DoubleCast2Long(z); - long wi = DoubleCast2Long(w); - - return valCoord4D(m_seed, xi, yi, zi, wi); - } - - public double GetWhiteNoise(double x, double y, double z) { - long xi = DoubleCast2Long(x); - long yi = DoubleCast2Long(y); - long zi = DoubleCast2Long(z); - - return valCoord3D(m_seed, xi, yi, zi); - } - - public double GetWhiteNoise(double x, double y) { - long xi = DoubleCast2Long(x); - long yi = DoubleCast2Long(y); - - return valCoord2D(m_seed, xi, yi); - } - - public double GetWhiteNoiseLong(long x, long y, long z, long w) { - return valCoord4D(m_seed, x, y, z, w); - } - - public double GetWhiteNoiseLong(long x, long y, long z) { - return valCoord3D(m_seed, x, y, z); - } - - public double GetWhiteNoiseLong(long x, long y) { - return valCoord2D(m_seed, x, y); - } - - // Value Noise - public double GetValueFractal(double x, double y, double z) { - x *= m_frequency; - y *= m_frequency; - z *= m_frequency; - - return switch (m_fractalType) { - case FBM -> SingleValueFractalFBM(x, y, z); - case Billow -> SingleValueFractalBillow(x, y, z); - case RigidMulti -> SingleValueFractalRigidMulti(x, y, z); - }; - } - - private double SingleValueFractalFBM(double x, double y, double z) { - long seed = m_seed; - double sum = SingleValue(seed, x, y, z); - double amp = 1; - - for (long i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - z *= m_lacunarity; - - amp *= m_gain; - sum += SingleValue(++seed, x, y, z) * amp; - } - - return sum * m_fractalBounding; - } - - private double SingleValueFractalBillow(double x, double y, double z) { - long seed = m_seed; - double sum = Math.abs(SingleValue(seed, x, y, z)) * 2 - 1; - double amp = 1; - - for (long i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - z *= m_lacunarity; - - amp *= m_gain; - sum += (Math.abs(SingleValue(++seed, x, y, z)) * 2 - 1) * amp; - } - - return sum * m_fractalBounding; - } - - private double SingleValueFractalRigidMulti(double x, double y, double z) { - long seed = m_seed; - double sum = 1 - Math.abs(SingleValue(seed, x, y, z)); - double amp = 1; - - for (long i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - z *= m_lacunarity; - - amp *= m_gain; - sum -= (1 - Math.abs(SingleValue(++seed, x, y, z))) * amp; - } - - return sum; - } - - public double GetValue(double x, double y, double z) { - return SingleValue(m_seed, x * m_frequency, y * m_frequency, z * m_frequency); - } - - private double SingleValue(long seed, double x, double y, double z) { - long x0 = fastFloor(x); - long y0 = fastFloor(y); - long z0 = fastFloor(z); - long x1 = x0 + 1; - long y1 = y0 + 1; - long z1 = z0 + 1; - - double xs = 0, ys = 0, zs = 0; - switch (m_longerp) { - case Linear -> { - xs = x - x0; - ys = y - y0; - zs = z - z0; - } - case Hermite -> { - xs = longerpHermiteFunc(x - x0); - ys = longerpHermiteFunc(y - y0); - zs = longerpHermiteFunc(z - z0); - } - case Qulongic -> { - xs = longerpQulongicFunc(x - x0); - ys = longerpQulongicFunc(y - y0); - zs = longerpQulongicFunc(z - z0); - } - } - - double xf00 = lerp(valCoord3D(seed, x0, y0, z0), valCoord3D(seed, x1, y0, z0), xs); - double xf10 = lerp(valCoord3D(seed, x0, y1, z0), valCoord3D(seed, x1, y1, z0), xs); - double xf01 = lerp(valCoord3D(seed, x0, y0, z1), valCoord3D(seed, x1, y0, z1), xs); - double xf11 = lerp(valCoord3D(seed, x0, y1, z1), valCoord3D(seed, x1, y1, z1), xs); - - double yf0 = lerp(xf00, xf10, ys); - double yf1 = lerp(xf01, xf11, ys); - - return lerp(yf0, yf1, zs); - } - - public double GetValueFractal(double x, double y) { - x *= m_frequency; - y *= m_frequency; - - return switch (m_fractalType) { - case FBM -> SingleValueFractalFBM(x, y); - case Billow -> SingleValueFractalBillow(x, y); - case RigidMulti -> SingleValueFractalRigidMulti(x, y); - }; - } - - private double SingleValueFractalFBM(double x, double y) { - long seed = m_seed; - double sum = SingleValue(seed, x, y); - double amp = 1; - - for (long i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - - amp *= m_gain; - sum += SingleValue(++seed, x, y) * amp; - } - - return sum * m_fractalBounding; - } - - private double SingleValueFractalBillow(double x, double y) { - long seed = m_seed; - double sum = Math.abs(SingleValue(seed, x, y)) * 2 - 1; - double amp = 1; - - for (long i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - amp *= m_gain; - sum += (Math.abs(SingleValue(++seed, x, y)) * 2 - 1) * amp; - } - - return sum * m_fractalBounding; - } - - private double SingleValueFractalRigidMulti(double x, double y) { - long seed = m_seed; - double sum = 1 - Math.abs(SingleValue(seed, x, y)); - double amp = 1; - - for (long i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - - amp *= m_gain; - sum -= (1 - Math.abs(SingleValue(++seed, x, y))) * amp; - } - - return sum; - } - - public double GetValue(double x, double y) { - return SingleValue(m_seed, x * m_frequency, y * m_frequency); - } - - private double SingleValue(long seed, double x, double y) { - long x0 = fastFloor(x); - long y0 = fastFloor(y); - long x1 = x0 + 1; - long y1 = y0 + 1; - - double xs = 0, ys = 0; - switch (m_longerp) { - case Linear -> { - xs = x - x0; - ys = y - y0; - } - case Hermite -> { - xs = longerpHermiteFunc(x - x0); - ys = longerpHermiteFunc(y - y0); - } - case Qulongic -> { - xs = longerpQulongicFunc(x - x0); - ys = longerpQulongicFunc(y - y0); - } - } - - double xf0 = lerp(valCoord2D(seed, x0, y0), valCoord2D(seed, x1, y0), xs); - double xf1 = lerp(valCoord2D(seed, x0, y1), valCoord2D(seed, x1, y1), xs); - - return lerp(xf0, xf1, ys); - } - - // Gradient Noise - public double GetPerlinFractal(double x, double y, double z) { - x *= m_frequency; - y *= m_frequency; - z *= m_frequency; - - return switch (m_fractalType) { - case FBM -> SinglePerlinFractalFBM(x, y, z); - case Billow -> SinglePerlinFractalBillow(x, y, z); - case RigidMulti -> SinglePerlinFractalRigidMulti(x, y, z); - }; - } - - private double SinglePerlinFractalFBM(double x, double y, double z) { - long seed = m_seed; - double sum = SinglePerlin(seed, x, y, z); - double amp = 1; - - for (long i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - z *= m_lacunarity; - - amp *= m_gain; - sum += SinglePerlin(++seed, x, y, z) * amp; - } - - return sum * m_fractalBounding; - } - - private double SinglePerlinFractalBillow(double x, double y, double z) { - long seed = m_seed; - double sum = Math.abs(SinglePerlin(seed, x, y, z)) * 2 - 1; - double amp = 1; - - for (long i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - z *= m_lacunarity; - - amp *= m_gain; - sum += (Math.abs(SinglePerlin(++seed, x, y, z)) * 2 - 1) * amp; - } - - return sum * m_fractalBounding; - } - - private double SinglePerlinFractalRigidMulti(double x, double y, double z) { - long seed = m_seed; - double sum = 1 - Math.abs(SinglePerlin(seed, x, y, z)); - double amp = 1; - - for (long i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - z *= m_lacunarity; - - amp *= m_gain; - sum -= (1 - Math.abs(SinglePerlin(++seed, x, y, z))) * amp; - } - - return sum; - } - - public double GetPerlin(double x, double y, double z) { - return SinglePerlin(m_seed, x * m_frequency, y * m_frequency, z * m_frequency); - } - - private double SinglePerlin(long seed, double x, double y, double z) { - long x0 = fastFloor(x); - long y0 = fastFloor(y); - long z0 = fastFloor(z); - long x1 = x0 + 1; - long y1 = y0 + 1; - long z1 = z0 + 1; - - double xs = 0, ys = 0, zs = 0; - switch (m_longerp) { - case Linear -> { - xs = x - x0; - ys = y - y0; - zs = z - z0; - } - case Hermite -> { - xs = longerpHermiteFunc(x - x0); - ys = longerpHermiteFunc(y - y0); - zs = longerpHermiteFunc(z - z0); - } - case Qulongic -> { - xs = longerpQulongicFunc(x - x0); - ys = longerpQulongicFunc(y - y0); - zs = longerpQulongicFunc(z - z0); - } - } - - double xd0 = x - x0; - double yd0 = y - y0; - double zd0 = z - z0; - double xd1 = xd0 - 1; - double yd1 = yd0 - 1; - double zd1 = zd0 - 1; - - double xf00 = lerp(GradCoord3D(seed, x0, y0, z0, xd0, yd0, zd0), GradCoord3D(seed, x1, y0, z0, xd1, yd0, zd0), xs); - double xf10 = lerp(GradCoord3D(seed, x0, y1, z0, xd0, yd1, zd0), GradCoord3D(seed, x1, y1, z0, xd1, yd1, zd0), xs); - double xf01 = lerp(GradCoord3D(seed, x0, y0, z1, xd0, yd0, zd1), GradCoord3D(seed, x1, y0, z1, xd1, yd0, zd1), xs); - double xf11 = lerp(GradCoord3D(seed, x0, y1, z1, xd0, yd1, zd1), GradCoord3D(seed, x1, y1, z1, xd1, yd1, zd1), xs); - - double yf0 = lerp(xf00, xf10, ys); - double yf1 = lerp(xf01, xf11, ys); - - return lerp(yf0, yf1, zs); - } - - public double GetPerlinFractal(double x, double y) { - x *= m_frequency; - y *= m_frequency; - - return switch (m_fractalType) { - case FBM -> SinglePerlinFractalFBM(x, y); - case Billow -> SinglePerlinFractalBillow(x, y); - case RigidMulti -> SinglePerlinFractalRigidMulti(x, y); - }; - } - - private double SinglePerlinFractalFBM(double x, double y) { - long seed = m_seed; - double sum = SinglePerlin(seed, x, y); - double amp = 1; - - for (long i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - - amp *= m_gain; - sum += SinglePerlin(++seed, x, y) * amp; - } - - return sum * m_fractalBounding; - } - - private double SinglePerlinFractalBillow(double x, double y) { - long seed = m_seed; - double sum = Math.abs(SinglePerlin(seed, x, y)) * 2 - 1; - double amp = 1; - - for (long i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - - amp *= m_gain; - sum += (Math.abs(SinglePerlin(++seed, x, y)) * 2 - 1) * amp; - } - - return sum * m_fractalBounding; - } - - private double SinglePerlinFractalRigidMulti(double x, double y) { - long seed = m_seed; - double sum = 1 - Math.abs(SinglePerlin(seed, x, y)); - double amp = 1; - - for (long i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - - amp *= m_gain; - sum -= (1 - Math.abs(SinglePerlin(++seed, x, y))) * amp; - } - - return sum; - } - - public double GetPerlin(double x, double y) { - return SinglePerlin(m_seed, x * m_frequency, y * m_frequency); - } - - private double SinglePerlin(long seed, double x, double y) { - long x0 = fastFloor(x); - long y0 = fastFloor(y); - long x1 = x0 + 1; - long y1 = y0 + 1; - - double xs = 0, ys = 0; - switch (m_longerp) { - case Linear -> { - xs = x - x0; - ys = y - y0; - } - case Hermite -> { - xs = longerpHermiteFunc(x - x0); - ys = longerpHermiteFunc(y - y0); - } - case Qulongic -> { - xs = longerpQulongicFunc(x - x0); - ys = longerpQulongicFunc(y - y0); - } - } - - double xd0 = x - x0; - double yd0 = y - y0; - double xd1 = xd0 - 1; - double yd1 = yd0 - 1; - - double xf0 = lerp(GradCoord2D(seed, x0, y0, xd0, yd0), GradCoord2D(seed, x1, y0, xd1, yd0), xs); - double xf1 = lerp(GradCoord2D(seed, x0, y1, xd0, yd1), GradCoord2D(seed, x1, y1, xd1, yd1), xs); - - return lerp(xf0, xf1, ys); - } - - // Simplex Noise - public double GetSimplexFractal(double x, double y, double z) { - x *= m_frequency; - y *= m_frequency; - z *= m_frequency; - - return switch (m_fractalType) { - case FBM -> SingleSimplexFractalFBM(x, y, z); - case Billow -> SingleSimplexFractalBillow(x, y, z); - case RigidMulti -> SingleSimplexFractalRigidMulti(x, y, z); - }; - } - - private double SingleSimplexFractalFBM(double x, double y, double z) { - long seed = m_seed; - double sum = SingleSimplex(seed, x, y, z); - double amp = 1; - - for (long i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - z *= m_lacunarity; - - amp *= m_gain; - sum += SingleSimplex(++seed, x, y, z) * amp; - } - - return sum * m_fractalBounding; - } - - private double SingleSimplexFractalBillow(double x, double y, double z) { - long seed = m_seed; - double sum = Math.abs(SingleSimplex(seed, x, y, z)) * 2 - 1; - double amp = 1; - - for (long i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - z *= m_lacunarity; - - amp *= m_gain; - sum += (Math.abs(SingleSimplex(++seed, x, y, z)) * 2 - 1) * amp; - } - - return sum * m_fractalBounding; - } - - private double SingleSimplexFractalRigidMulti(double x, double y, double z) { - long seed = m_seed; - double sum = 1 - Math.abs(SingleSimplex(seed, x, y, z)); - double amp = 1; - - for (long i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - z *= m_lacunarity; - - amp *= m_gain; - sum -= (1 - Math.abs(SingleSimplex(++seed, x, y, z))) * amp; - } - - return sum; - } - - public double GetSimplex(double x, double y, double z) { - return SingleSimplex(m_seed, x * m_frequency, y * m_frequency, z * m_frequency); - } - - private double SingleSimplex(long seed, double x, double y, double z) { - double t = (x + y + z) * F3; - long i = fastFloor(x + t); - long j = fastFloor(y + t); - long k = fastFloor(z + t); - - t = (i + j + k) * G3; - double x0 = x - (i - t); - double y0 = y - (j - t); - double z0 = z - (k - t); - - long i1, j1, k1; - long i2, j2, k2; - - if (x0 >= y0) { - if (y0 >= z0) { - i1 = 1; - j1 = 0; - k1 = 0; - i2 = 1; - j2 = 1; - k2 = 0; - } else if (x0 >= z0) { - i1 = 1; - j1 = 0; - k1 = 0; - i2 = 1; - j2 = 0; - k2 = 1; - } else // x0 < z0 - { - i1 = 0; - j1 = 0; - k1 = 1; - i2 = 1; - j2 = 0; - k2 = 1; - } - } else // x0 < y0 - { - if (y0 < z0) { - i1 = 0; - j1 = 0; - k1 = 1; - i2 = 0; - j2 = 1; - k2 = 1; - } else if (x0 < z0) { - i1 = 0; - j1 = 1; - k1 = 0; - i2 = 0; - j2 = 1; - k2 = 1; - } else // x0 >= z0 - { - i1 = 0; - j1 = 1; - k1 = 0; - i2 = 1; - j2 = 1; - k2 = 0; - } - } - - double x1 = x0 - i1 + G3; - double y1 = y0 - j1 + G3; - double z1 = z0 - k1 + G3; - double x2 = x0 - i2 + F3; - double y2 = y0 - j2 + F3; - double z2 = z0 - k2 + F3; - double x3 = x0 + G33; - double y3 = y0 + G33; - double z3 = z0 + G33; - - double n0, n1, n2, n3; - - t = 0.6 - x0 * x0 - y0 * y0 - z0 * z0; - if (t < 0) - n0 = 0; - else { - t *= t; - n0 = t * t * GradCoord3D(seed, i, j, k, x0, y0, z0); - } - - t = 0.6 - x1 * x1 - y1 * y1 - z1 * z1; - if (t < 0) - n1 = 0; - else { - t *= t; - n1 = t * t * GradCoord3D(seed, i + i1, j + j1, k + k1, x1, y1, z1); - } - - t = 0.6 - x2 * x2 - y2 * y2 - z2 * z2; - if (t < 0) - n2 = 0; - else { - t *= t; - n2 = t * t * GradCoord3D(seed, i + i2, j + j2, k + k2, x2, y2, z2); - } - - t = 0.6 - x3 * x3 - y3 * y3 - z3 * z3; - if (t < 0) - n3 = 0; - else { - t *= t; - n3 = t * t * GradCoord3D(seed, i + 1, j + 1, k + 1, x3, y3, z3); - } - - return 32 * (n0 + n1 + n2 + n3); - } - - public double GetSimplexFractal(double x, double y) { - x *= m_frequency; - y *= m_frequency; - - return switch (m_fractalType) { - case FBM -> SingleSimplexFractalFBM(x, y); - case Billow -> SingleSimplexFractalBillow(x, y); - case RigidMulti -> SingleSimplexFractalRigidMulti(x, y); - }; - } - - private double SingleSimplexFractalFBM(double x, double y) { - long seed = m_seed; - double sum = SingleSimplex(seed, x, y); - double amp = 1; - - for (long i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - - amp *= m_gain; - sum += SingleSimplex(++seed, x, y) * amp; - } - - return sum * m_fractalBounding; - } - - private double SingleSimplexFractalBillow(double x, double y) { - long seed = m_seed; - double sum = Math.abs(SingleSimplex(seed, x, y)) * 2 - 1; - double amp = 1; - - for (long i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - - amp *= m_gain; - sum += (Math.abs(SingleSimplex(++seed, x, y)) * 2 - 1) * amp; - } - - return sum * m_fractalBounding; - } - - private double SingleSimplexFractalRigidMulti(double x, double y) { - long seed = m_seed; - double sum = 1 - Math.abs(SingleSimplex(seed, x, y)); - double amp = 1; - - for (long i = 1; i < m_octaves; i++) { - x *= m_lacunarity; - y *= m_lacunarity; - - amp *= m_gain; - sum -= (1 - Math.abs(SingleSimplex(++seed, x, y))) * amp; - } - - return sum; - } - - public double GetSimplex(double x, double y) { - return SingleSimplex(m_seed, x * m_frequency, y * m_frequency); - } - - private double SingleSimplex(long seed, double x, double y) { - double t = (x + y) * F2; - long i = fastFloor(x + t); - long j = fastFloor(y + t); - - t = (i + j) * G2; - double X0 = i - t; - double Y0 = j - t; - - double x0 = x - X0; - double y0 = y - Y0; - - long i1, j1; - if (x0 > y0) { - i1 = 1; - j1 = 0; - } else { - i1 = 0; - j1 = 1; - } - - double x1 = x0 - i1 + G2; - double y1 = y0 - j1 + G2; - double x2 = x0 - 1 + (2 * G2); - double y2 = y0 - 1 + (2 * G2); - - double n0, n1, n2; - - t = 0.5 - x0 * x0 - y0 * y0; - if (t < 0) - n0 = 0; - else { - t *= t; - n0 = t * t * GradCoord2D(seed, i, j, x0, y0); - } - - t = 0.5 - x1 * x1 - y1 * y1; - if (t < 0) - n1 = 0; - else { - t *= t; - n1 = t * t * GradCoord2D(seed, i + i1, j + j1, x1, y1); - } - - t = 0.5 - x2 * x2 - y2 * y2; - if (t < 0) - n2 = 0; - else { - t *= t; - n2 = t * t * GradCoord2D(seed, i + 1, j + 1, x2, y2); - } - - return 50 * (n0 + n1 + n2); - } - - public double GetSimplex(double x, double y, double z, double w) { - return SingleSimplex(m_seed, x * m_frequency, y * m_frequency, z * m_frequency, w * m_frequency); - } - - private double SingleSimplex(long seed, double x, double y, double z, double w) { - double n0, n1, n2, n3, n4; - double t = (x + y + z + w) * F4; - long i = fastFloor(x + t); - long j = fastFloor(y + t); - long k = fastFloor(z + t); - long l = fastFloor(w + t); - t = (i + j + k + l) * G4; - double X0 = i - t; - double Y0 = j - t; - double Z0 = k - t; - double W0 = l - t; - double x0 = x - X0; - double y0 = y - Y0; - double z0 = z - Z0; - double w0 = w - W0; - - int c = (x0 > y0) ? 32 : 0; - c += (x0 > z0) ? 16 : 0; - c += (y0 > z0) ? 8 : 0; - c += (x0 > w0) ? 4 : 0; - c += (y0 > w0) ? 2 : 0; - c += (z0 > w0) ? 1 : 0; - c <<= 2; - - long i1 = SIMPLEX_4D[c] >= 3 ? 1 : 0; - long i2 = SIMPLEX_4D[c] >= 2 ? 1 : 0; - long i3 = SIMPLEX_4D[c++] >= 1 ? 1 : 0; - long j1 = SIMPLEX_4D[c] >= 3 ? 1 : 0; - long j2 = SIMPLEX_4D[c] >= 2 ? 1 : 0; - long j3 = SIMPLEX_4D[c++] >= 1 ? 1 : 0; - long k1 = SIMPLEX_4D[c] >= 3 ? 1 : 0; - long k2 = SIMPLEX_4D[c] >= 2 ? 1 : 0; - long k3 = SIMPLEX_4D[c++] >= 1 ? 1 : 0; - long l1 = SIMPLEX_4D[c] >= 3 ? 1 : 0; - long l2 = SIMPLEX_4D[c] >= 2 ? 1 : 0; - long l3 = SIMPLEX_4D[c] >= 1 ? 1 : 0; - - double x1 = x0 - i1 + G4; - double y1 = y0 - j1 + G4; - double z1 = z0 - k1 + G4; - double w1 = w0 - l1 + G4; - double x2 = x0 - i2 + 2 * G4; - double y2 = y0 - j2 + 2 * G4; - double z2 = z0 - k2 + 2 * G4; - double w2 = w0 - l2 + 2 * G4; - double x3 = x0 - i3 + 3 * G4; - double y3 = y0 - j3 + 3 * G4; - double z3 = z0 - k3 + 3 * G4; - double w3 = w0 - l3 + 3 * G4; - double x4 = x0 - 1 + 4 * G4; - double y4 = y0 - 1 + 4 * G4; - double z4 = z0 - 1 + 4 * G4; - double w4 = w0 - 1 + 4 * G4; - - t = 0.6 - x0 * x0 - y0 * y0 - z0 * z0 - w0 * w0; - if (t < 0) - n0 = 0; - else { - t *= t; - n0 = t * t * GradCoord4D(seed, i, j, k, l, x0, y0, z0, w0); - } - t = 0.6 - x1 * x1 - y1 * y1 - z1 * z1 - w1 * w1; - if (t < 0) - n1 = 0; - else { - t *= t; - n1 = t * t * GradCoord4D(seed, i + i1, j + j1, k + k1, l + l1, x1, y1, z1, w1); - } - t = 0.6 - x2 * x2 - y2 * y2 - z2 * z2 - w2 * w2; - if (t < 0) - n2 = 0; - else { - t *= t; - n2 = t * t * GradCoord4D(seed, i + i2, j + j2, k + k2, l + l2, x2, y2, z2, w2); - } - t = 0.6 - x3 * x3 - y3 * y3 - z3 * z3 - w3 * w3; - if (t < 0) - n3 = 0; - else { - t *= t; - n3 = t * t * GradCoord4D(seed, i + i3, j + j3, k + k3, l + l3, x3, y3, z3, w3); - } - t = 0.6 - x4 * x4 - y4 * y4 - z4 * z4 - w4 * w4; - if (t < 0) - n4 = 0; - else { - t *= t; - n4 = t * t * GradCoord4D(seed, i + 1, j + 1, k + 1, l + 1, x4, y4, z4, w4); - } - - return 27 * (n0 + n1 + n2 + n3 + n4); - } - - // Cubic Noise - public double GetCubicFractal(double x, double y, double z) { - x *= m_frequency; - y *= m_frequency; - z *= m_frequency; - - return switch (m_fractalType) { - case FBM -> SingleCubicFractalFBM(x, y, z); - case Billow -> SingleCubicFractalBillow(x, y, z); - case RigidMulti -> SingleCubicFractalRigidMulti(x, y, z); - }; - } - - private double SingleCubicFractalFBM(double x, double y, double z) { - long seed = m_seed; - double sum = SingleCubic(seed, x, y, z); - double amp = 1; - long i = 0; - - while (++i < m_octaves) { - x *= m_lacunarity; - y *= m_lacunarity; - z *= m_lacunarity; - - amp *= m_gain; - sum += SingleCubic(++seed, x, y, z) * amp; - } - - return sum * m_fractalBounding; - } - - private double SingleCubicFractalBillow(double x, double y, double z) { - long seed = m_seed; - double sum = Math.abs(SingleCubic(seed, x, y, z)) * 2 - 1; - double amp = 1; - long i = 0; - - while (++i < m_octaves) { - x *= m_lacunarity; - y *= m_lacunarity; - z *= m_lacunarity; - - amp *= m_gain; - sum += (Math.abs(SingleCubic(++seed, x, y, z)) * 2 - 1) * amp; - } - - return sum * m_fractalBounding; - } - - private double SingleCubicFractalRigidMulti(double x, double y, double z) { - long seed = m_seed; - double sum = 1 - Math.abs(SingleCubic(seed, x, y, z)); - double amp = 1; - long i = 0; - - while (++i < m_octaves) { - x *= m_lacunarity; - y *= m_lacunarity; - z *= m_lacunarity; - - amp *= m_gain; - sum -= (1 - Math.abs(SingleCubic(++seed, x, y, z))) * amp; - } - - return sum; - } - - public double GetCubic(double x, double y, double z) { - return SingleCubic(m_seed, x * m_frequency, y * m_frequency, z * m_frequency); - } - - private double SingleCubic(long seed, double x, double y, double z) { - long x1 = fastFloor(x); - long y1 = fastFloor(y); - long z1 = fastFloor(z); - - long x0 = x1 - 1; - long y0 = y1 - 1; - long z0 = z1 - 1; - long x2 = x1 + 1; - long y2 = y1 + 1; - long z2 = z1 + 1; - long x3 = x1 + 2; - long y3 = y1 + 2; - long z3 = z1 + 2; - - double xs = x - (double) x1; - double ys = y - (double) y1; - double zs = z - (double) z1; - - return cubicLerp(cubicLerp(cubicLerp(valCoord3D(seed, x0, y0, z0), valCoord3D(seed, x1, y0, z0), valCoord3D(seed, x2, y0, z0), valCoord3D(seed, x3, y0, z0), xs), cubicLerp(valCoord3D(seed, x0, y1, z0), valCoord3D(seed, x1, y1, z0), valCoord3D(seed, x2, y1, z0), valCoord3D(seed, x3, y1, z0), xs), cubicLerp(valCoord3D(seed, x0, y2, z0), valCoord3D(seed, x1, y2, z0), valCoord3D(seed, x2, y2, z0), valCoord3D(seed, x3, y2, z0), xs), cubicLerp(valCoord3D(seed, x0, y3, z0), valCoord3D(seed, x1, y3, z0), valCoord3D(seed, x2, y3, z0), valCoord3D(seed, x3, y3, z0), xs), ys), cubicLerp(cubicLerp(valCoord3D(seed, x0, y0, z1), valCoord3D(seed, x1, y0, z1), valCoord3D(seed, x2, y0, z1), valCoord3D(seed, x3, y0, z1), xs), cubicLerp(valCoord3D(seed, x0, y1, z1), valCoord3D(seed, x1, y1, z1), valCoord3D(seed, x2, y1, z1), valCoord3D(seed, x3, y1, z1), xs), cubicLerp(valCoord3D(seed, x0, y2, z1), valCoord3D(seed, x1, y2, z1), valCoord3D(seed, x2, y2, z1), valCoord3D(seed, x3, y2, z1), xs), cubicLerp(valCoord3D(seed, x0, y3, z1), valCoord3D(seed, x1, y3, z1), valCoord3D(seed, x2, y3, z1), valCoord3D(seed, x3, y3, z1), xs), ys), cubicLerp(cubicLerp(valCoord3D(seed, x0, y0, z2), valCoord3D(seed, x1, y0, z2), valCoord3D(seed, x2, y0, z2), valCoord3D(seed, x3, y0, z2), xs), cubicLerp(valCoord3D(seed, x0, y1, z2), valCoord3D(seed, x1, y1, z2), valCoord3D(seed, x2, y1, z2), valCoord3D(seed, x3, y1, z2), xs), cubicLerp(valCoord3D(seed, x0, y2, z2), valCoord3D(seed, x1, y2, z2), valCoord3D(seed, x2, y2, z2), valCoord3D(seed, x3, y2, z2), xs), cubicLerp(valCoord3D(seed, x0, y3, z2), valCoord3D(seed, x1, y3, z2), valCoord3D(seed, x2, y3, z2), valCoord3D(seed, x3, y3, z2), xs), ys), cubicLerp(cubicLerp(valCoord3D(seed, x0, y0, z3), valCoord3D(seed, x1, y0, z3), valCoord3D(seed, x2, y0, z3), valCoord3D(seed, x3, y0, z3), xs), cubicLerp(valCoord3D(seed, x0, y1, z3), valCoord3D(seed, x1, y1, z3), valCoord3D(seed, x2, y1, z3), valCoord3D(seed, x3, y1, z3), xs), cubicLerp(valCoord3D(seed, x0, y2, z3), valCoord3D(seed, x1, y2, z3), valCoord3D(seed, x2, y2, z3), valCoord3D(seed, x3, y2, z3), xs), cubicLerp(valCoord3D(seed, x0, y3, z3), valCoord3D(seed, x1, y3, z3), valCoord3D(seed, x2, y3, z3), valCoord3D(seed, x3, y3, z3), xs), ys), zs) * CUBIC_3D_BOUNDING; - } - - public double GetCubicFractal(double x, double y) { - x *= m_frequency; - y *= m_frequency; - - return switch (m_fractalType) { - case FBM -> SingleCubicFractalFBM(x, y); - case Billow -> SingleCubicFractalBillow(x, y); - case RigidMulti -> SingleCubicFractalRigidMulti(x, y); - }; - } - - private double SingleCubicFractalFBM(double x, double y) { - long seed = m_seed; - double sum = SingleCubic(seed, x, y); - double amp = 1; - long i = 0; - - while (++i < m_octaves) { - x *= m_lacunarity; - y *= m_lacunarity; - - amp *= m_gain; - sum += SingleCubic(++seed, x, y) * amp; - } - - return sum * m_fractalBounding; - } - - private double SingleCubicFractalBillow(double x, double y) { - long seed = m_seed; - double sum = Math.abs(SingleCubic(seed, x, y)) * 2 - 1; - double amp = 1; - long i = 0; - - while (++i < m_octaves) { - x *= m_lacunarity; - y *= m_lacunarity; - - amp *= m_gain; - sum += (Math.abs(SingleCubic(++seed, x, y)) * 2 - 1) * amp; - } - - return sum * m_fractalBounding; - } - - private double SingleCubicFractalRigidMulti(double x, double y) { - long seed = m_seed; - double sum = 1 - Math.abs(SingleCubic(seed, x, y)); - double amp = 1; - long i = 0; - - while (++i < m_octaves) { - x *= m_lacunarity; - y *= m_lacunarity; - - amp *= m_gain; - sum -= (1 - Math.abs(SingleCubic(++seed, x, y))) * amp; - } - - return sum; - } - - public double GetCubic(double x, double y) { - x *= m_frequency; - y *= m_frequency; - - return SingleCubic(m_seed, x, y); - } - - private double SingleCubic(long seed, double x, double y) { - long x1 = fastFloor(x); - long y1 = fastFloor(y); - - long x0 = x1 - 1; - long y0 = y1 - 1; - long x2 = x1 + 1; - long y2 = y1 + 1; - long x3 = x1 + 2; - long y3 = y1 + 2; - - double xs = x - (double) x1; - double ys = y - (double) y1; - - return cubicLerp(cubicLerp(valCoord2D(seed, x0, y0), valCoord2D(seed, x1, y0), valCoord2D(seed, x2, y0), valCoord2D(seed, x3, y0), xs), cubicLerp(valCoord2D(seed, x0, y1), valCoord2D(seed, x1, y1), valCoord2D(seed, x2, y1), valCoord2D(seed, x3, y1), xs), cubicLerp(valCoord2D(seed, x0, y2), valCoord2D(seed, x1, y2), valCoord2D(seed, x2, y2), valCoord2D(seed, x3, y2), xs), cubicLerp(valCoord2D(seed, x0, y3), valCoord2D(seed, x1, y3), valCoord2D(seed, x2, y3), valCoord2D(seed, x3, y3), xs), ys) * CUBIC_2D_BOUNDING; - } - - // Cellular Noise - public double GetCellular(double x, double y, double z) { - x *= m_frequency; - y *= m_frequency; - z *= m_frequency; - - return switch (m_cellularReturnType) { - case CellValue, NoiseLookup, Distance -> SingleCellular(x, y, z); - default -> SingleCellular2Edge(x, y, z); - }; - } - - private double SingleCellular(double x, double y, double z) { - long xr = fastRound(x); - long yr = fastRound(y); - long zr = fastRound(z); - long seed = m_seed; - double[] cell3dX = CELL_3D_X; - double[] cell3dY = CELL_3D_Y; - double[] cell3dZ = CELL_3D_Z; - - double distance = 999999; - long xc = 0, yc = 0, zc = 0; - - switch (m_cellularDistanceFunction) { - case Euclidean: - for (long xi = xr - 1; xi <= xr + 1; xi++) { - double baseVecX = xi - x; - for (long yi = yr - 1; yi <= yr + 1; yi++) { - double baseVecY = yi - y; - for (long zi = zr - 1; zi <= zr + 1; zi++) { - double baseVecZ = zi - z; - int cellIndex3D = (int) hash3D(seed, xi, yi, zi) & 255; - double vecX = baseVecX + cell3dX[cellIndex3D]; - double vecY = baseVecY + cell3dY[cellIndex3D]; - double vecZ = baseVecZ + cell3dZ[cellIndex3D]; - - double newDistance = vecX * vecX + vecY * vecY + vecZ * vecZ; - - if (newDistance < distance) { - distance = newDistance; - xc = xi; - yc = yi; - zc = zi; - } - } - } - } - break; - case Manhattan: - for (long xi = xr - 1; xi <= xr + 1; xi++) { - double baseVecX = xi - x; - for (long yi = yr - 1; yi <= yr + 1; yi++) { - double baseVecY = yi - y; - for (long zi = zr - 1; zi <= zr + 1; zi++) { - double baseVecZ = zi - z; - int cellIndex3D = (int) hash3D(seed, xi, yi, zi) & 255; - double vecX = baseVecX + cell3dX[cellIndex3D]; - double vecY = baseVecY + cell3dY[cellIndex3D]; - double vecZ = baseVecZ + cell3dZ[cellIndex3D]; - - double newDistance = Math.abs(vecX) + Math.abs(vecY) + Math.abs(vecZ); - - if (newDistance < distance) { - distance = newDistance; - xc = xi; - yc = yi; - zc = zi; - } - } - } - } - break; - case Natural: - for (long xi = xr - 1; xi <= xr + 1; xi++) { - double baseVecX = xi - x; - for (long yi = yr - 1; yi <= yr + 1; yi++) { - double baseVecY = yi - y; - for (long zi = zr - 1; zi <= zr + 1; zi++) { - double baseVecZ = zi - z; - int cellIndex3D = (int) hash3D(seed, xi, yi, zi) & 255; - double vecX = baseVecX + cell3dX[cellIndex3D]; - double vecY = baseVecY + cell3dY[cellIndex3D]; - double vecZ = baseVecZ + cell3dZ[cellIndex3D]; - - double newDistance = (Math.abs(vecX) + Math.abs(vecY) + Math.abs(vecZ)) + (vecX * vecX + vecY * vecY + vecZ * vecZ); - - if (newDistance < distance) { - distance = newDistance; - xc = xi; - yc = yi; - zc = zi; - } - } - } - } - break; - } - - switch (m_cellularReturnType) { - case CellValue: - return valCoord3D(0, xc, yc, zc); - - case NoiseLookup: - int lookupIndex3D = (int) hash3D(m_seed, xc, yc, zc) & 255; - return m_cellularNoiseLookup.GetNoise(xc + CELL_3D_X[lookupIndex3D], yc + CELL_3D_Y[lookupIndex3D], zc + CELL_3D_Z[lookupIndex3D]); - - case Distance: - return distance - 1; - default: - return 0; - } - } - - private double SingleCellular2Edge(double x, double y, double z) { - long xr = fastRound(x); - long yr = fastRound(y); - long zr = fastRound(z); - long seed = m_seed; - double[] cell3dX = CELL_3D_X; - double[] cell3dY = CELL_3D_Y; - double[] cell3dZ = CELL_3D_Z; - - double distance = 999999; - double distance2 = 999999; - - switch (m_cellularDistanceFunction) { - case Euclidean: - for (long xi = xr - 1; xi <= xr + 1; xi++) { - double baseVecX = xi - x; - for (long yi = yr - 1; yi <= yr + 1; yi++) { - double baseVecY = yi - y; - for (long zi = zr - 1; zi <= zr + 1; zi++) { - double baseVecZ = zi - z; - int cellIndex3D = (int) hash3D(seed, xi, yi, zi) & 255; - double vecX = baseVecX + cell3dX[cellIndex3D]; - double vecY = baseVecY + cell3dY[cellIndex3D]; - double vecZ = baseVecZ + cell3dZ[cellIndex3D]; - - double newDistance = vecX * vecX + vecY * vecY + vecZ * vecZ; - - if (newDistance < distance) { - distance2 = distance; - distance = newDistance; - } else if (newDistance < distance2) { - distance2 = newDistance; - } - } - } - } - break; - case Manhattan: - for (long xi = xr - 1; xi <= xr + 1; xi++) { - double baseVecX = xi - x; - for (long yi = yr - 1; yi <= yr + 1; yi++) { - double baseVecY = yi - y; - for (long zi = zr - 1; zi <= zr + 1; zi++) { - double baseVecZ = zi - z; - int cellIndex3D = (int) hash3D(seed, xi, yi, zi) & 255; - double vecX = baseVecX + cell3dX[cellIndex3D]; - double vecY = baseVecY + cell3dY[cellIndex3D]; - double vecZ = baseVecZ + cell3dZ[cellIndex3D]; - - double newDistance = Math.abs(vecX) + Math.abs(vecY) + Math.abs(vecZ); - - if (newDistance < distance) { - distance2 = distance; - distance = newDistance; - } else if (newDistance < distance2) { - distance2 = newDistance; - } - } - } - } - break; - case Natural: - for (long xi = xr - 1; xi <= xr + 1; xi++) { - double baseVecX = xi - x; - for (long yi = yr - 1; yi <= yr + 1; yi++) { - double baseVecY = yi - y; - for (long zi = zr - 1; zi <= zr + 1; zi++) { - double baseVecZ = zi - z; - int cellIndex3D = (int) hash3D(seed, xi, yi, zi) & 255; - double vecX = baseVecX + cell3dX[cellIndex3D]; - double vecY = baseVecY + cell3dY[cellIndex3D]; - double vecZ = baseVecZ + cell3dZ[cellIndex3D]; - - double newDistance = (Math.abs(vecX) + Math.abs(vecY) + Math.abs(vecZ)) + (vecX * vecX + vecY * vecY + vecZ * vecZ); - - if (newDistance < distance) { - distance2 = distance; - distance = newDistance; - } else if (newDistance < distance2) { - distance2 = newDistance; - } - } - } - } - break; - default: - break; - } - - double boundary = 1.55D - Math.max(Math.abs(x - xr), Math.max(Math.abs(y - yr), Math.abs(z - zr))); - if (cellularDistance(boundary, 0D, 0D) < distance2) { - return refineCellular2Edge(x, y, z, xr, yr, zr, distance, distance2); - } - return cellular2EdgeResult(distance, distance2); - } - - public double GetCellular(double x, double y) { - x *= m_frequency; - y *= m_frequency; - - return switch (m_cellularReturnType) { - case CellValue, NoiseLookup, Distance -> SingleCellular(x, y); - default -> SingleCellular2Edge(x, y); - }; - } - - private double SingleCellular(double x, double y) { - long xr = fastRound(x); - long yr = fastRound(y); - long seed = m_seed; - double[] cell2dX = CELL_2D_X; - double[] cell2dY = CELL_2D_Y; - - double distance = 999999; - long xc = 0, yc = 0; - - switch (m_cellularDistanceFunction) { - default: - case Euclidean: - for (long xi = xr - 1; xi <= xr + 1; xi++) { - double baseVecX = xi - x; - for (long yi = yr - 1; yi <= yr + 1; yi++) { - double baseVecY = yi - y; - int cellIndex2D = (int) hash2D(seed, xi, yi) & 255; - double vecX = baseVecX + cell2dX[cellIndex2D]; - double vecY = baseVecY + cell2dY[cellIndex2D]; - - double newDistance = vecX * vecX + vecY * vecY; - - if (newDistance < distance) { - distance = newDistance; - xc = xi; - yc = yi; - } - } - } - break; - case Manhattan: - for (long xi = xr - 1; xi <= xr + 1; xi++) { - double baseVecX = xi - x; - for (long yi = yr - 1; yi <= yr + 1; yi++) { - double baseVecY = yi - y; - int cellIndex2D = (int) hash2D(seed, xi, yi) & 255; - double vecX = baseVecX + cell2dX[cellIndex2D]; - double vecY = baseVecY + cell2dY[cellIndex2D]; - - double newDistance = (Math.abs(vecX) + Math.abs(vecY)); - - if (newDistance < distance) { - distance = newDistance; - xc = xi; - yc = yi; - } - } - } - break; - case Natural: - for (long xi = xr - 1; xi <= xr + 1; xi++) { - double baseVecX = xi - x; - for (long yi = yr - 1; yi <= yr + 1; yi++) { - double baseVecY = yi - y; - int cellIndex2D = (int) hash2D(seed, xi, yi) & 255; - double vecX = baseVecX + cell2dX[cellIndex2D]; - double vecY = baseVecY + cell2dY[cellIndex2D]; - - double newDistance = (Math.abs(vecX) + Math.abs(vecY)) + (vecX * vecX + vecY * vecY); - - if (newDistance < distance) { - distance = newDistance; - xc = xi; - yc = yi; - } - } - } - break; - } - - switch (m_cellularReturnType) { - case CellValue: - return valCoord2D(0, xc, yc); - - case NoiseLookup: - int lookupIndex2D = (int) hash2D(m_seed, xc, yc) & 255; - return m_cellularNoiseLookup.GetNoise(xc + CELL_2D_X[lookupIndex2D], yc + CELL_2D_Y[lookupIndex2D]); - - case Distance: - return distance - 1; - default: - return 0; - } - } - - private double SingleCellular2Edge(double x, double y) { - long xr = fastRound(x); - long yr = fastRound(y); - long seed = m_seed; - double[] cell2dX = CELL_2D_X; - double[] cell2dY = CELL_2D_Y; - - double distance = 999999; - double distance2 = 999999; - - switch (m_cellularDistanceFunction) { - default: - case Euclidean: - for (long xi = xr - 1; xi <= xr + 1; xi++) { - double baseVecX = xi - x; - for (long yi = yr - 1; yi <= yr + 1; yi++) { - double baseVecY = yi - y; - int cellIndex2D = (int) hash2D(seed, xi, yi) & 255; - double vecX = baseVecX + cell2dX[cellIndex2D]; - double vecY = baseVecY + cell2dY[cellIndex2D]; - - double newDistance = vecX * vecX + vecY * vecY; - - if (newDistance < distance) { - distance2 = distance; - distance = newDistance; - } else if (newDistance < distance2) { - distance2 = newDistance; - } - } - } - break; - case Manhattan: - for (long xi = xr - 1; xi <= xr + 1; xi++) { - double baseVecX = xi - x; - for (long yi = yr - 1; yi <= yr + 1; yi++) { - double baseVecY = yi - y; - int cellIndex2D = (int) hash2D(seed, xi, yi) & 255; - double vecX = baseVecX + cell2dX[cellIndex2D]; - double vecY = baseVecY + cell2dY[cellIndex2D]; - - double newDistance = Math.abs(vecX) + Math.abs(vecY); - - if (newDistance < distance) { - distance2 = distance; - distance = newDistance; - } else if (newDistance < distance2) { - distance2 = newDistance; - } - } - } - break; - case Natural: - for (long xi = xr - 1; xi <= xr + 1; xi++) { - double baseVecX = xi - x; - for (long yi = yr - 1; yi <= yr + 1; yi++) { - double baseVecY = yi - y; - int cellIndex2D = (int) hash2D(seed, xi, yi) & 255; - double vecX = baseVecX + cell2dX[cellIndex2D]; - double vecY = baseVecY + cell2dY[cellIndex2D]; - - double newDistance = (Math.abs(vecX) + Math.abs(vecY)) + (vecX * vecX + vecY * vecY); - - if (newDistance < distance) { - distance2 = distance; - distance = newDistance; - } else if (newDistance < distance2) { - distance2 = newDistance; - } - } - } - break; - } - - double boundary = 1.55D - Math.max(Math.abs(x - xr), Math.abs(y - yr)); - if (cellularDistance(boundary, 0D, 0D) < distance2) { - return refineCellular2Edge(x, y, xr, yr, distance, distance2); - } - return cellular2EdgeResult(distance, distance2); - } - - private double refineCellular2Edge(double x, double y, long xr, long yr, double distance, double distance2) { - for (int dx = -2; dx <= 2; dx++) { - long xi = xr + dx; - double baseX = xi - x; - double boundX = Math.max(0D, Math.abs(baseX) - 0.45D); - if (cellularDistance(boundX, 0D, 0D) >= distance2) { - continue; - } - for (int dy = -2; dy <= 2; dy++) { - if (Math.abs(dx) < 2 && Math.abs(dy) < 2) { - continue; - } - long yi = yr + dy; - double baseY = yi - y; - double boundY = Math.max(0D, Math.abs(baseY) - 0.45D); - if (cellularDistance(boundX, boundY, 0D) >= distance2) { - continue; - } - int index = (int) hash2D(m_seed, xi, yi) & 255; - double candidate = cellularDistance(baseX + CELL_2D_X[index], baseY + CELL_2D_Y[index], 0D); - if (candidate < distance) { - distance2 = distance; - distance = candidate; - } else if (candidate < distance2) { - distance2 = candidate; - } - } - } - return cellular2EdgeResult(distance, distance2); - } - - private double refineCellular2Edge(double x, double y, double z, long xr, long yr, long zr, double distance, double distance2) { - int radius = m_cellularDistanceFunction == CellularDistanceFunction.Manhattan ? 3 : 2; - for (int dx = -radius; dx <= radius; dx++) { - long xi = xr + dx; - double baseX = xi - x; - double boundX = Math.max(0D, Math.abs(baseX) - 0.45D); - if (cellularDistance(boundX, 0D, 0D) >= distance2) { - continue; - } - for (int dy = -radius; dy <= radius; dy++) { - long yi = yr + dy; - double baseY = yi - y; - double boundY = Math.max(0D, Math.abs(baseY) - 0.45D); - if (cellularDistance(boundX, boundY, 0D) >= distance2) { - continue; - } - for (int dz = -radius; dz <= radius; dz++) { - if (Math.abs(dx) < 2 && Math.abs(dy) < 2 && Math.abs(dz) < 2) { - continue; - } - long zi = zr + dz; - double baseZ = zi - z; - double boundZ = Math.max(0D, Math.abs(baseZ) - 0.45D); - if (cellularDistance(boundX, boundY, boundZ) >= distance2) { - continue; - } - int index = (int) hash3D(m_seed, xi, yi, zi) & 255; - double candidate = cellularDistance(baseX + CELL_3D_X[index], baseY + CELL_3D_Y[index], baseZ + CELL_3D_Z[index]); - if (candidate < distance) { - distance2 = distance; - distance = candidate; - } else if (candidate < distance2) { - distance2 = candidate; - } - } - } - } - return cellular2EdgeResult(distance, distance2); - } - - private double cellularDistance(double x, double y, double z) { - return switch (m_cellularDistanceFunction) { - case Euclidean -> x * x + y * y + z * z; - case Manhattan -> Math.abs(x) + Math.abs(y) + Math.abs(z); - case Natural -> (Math.abs(x) + Math.abs(y) + Math.abs(z)) + (x * x + y * y + z * z); - }; - } - - private double cellular2EdgeResult(double distance, double distance2) { - return switch (m_cellularReturnType) { - case Distance2 -> distance2 - 1; - case Distance2Add -> distance2 + distance - 1; - case Distance2Sub -> distance2 - distance - 1; - case Distance2Mul -> distance2 * distance - 1; - case Distance2Div -> distance / distance2 - 1; - default -> 0; - }; - } - - public void GradientPerturb(Vector3f v3) { - SingleGradientPerturb(m_seed, m_gradientPerturbAmp, m_frequency, v3); - } - - public void GradientPerturbFractal(Vector3f v3) { - long seed = m_seed; - double amp = m_gradientPerturbAmp * m_fractalBounding; - double freq = m_frequency; - - SingleGradientPerturb(seed, amp, m_frequency, v3); - - for (long i = 1; i < m_octaves; i++) { - freq *= m_lacunarity; - amp *= m_gain; - SingleGradientPerturb(++seed, amp, freq, v3); - } - } - - private void SingleGradientPerturb(long seed, double perturbAmp, double frequency, Vector3f v3) { - double xf = v3.x * frequency; - double yf = v3.y * frequency; - double zf = v3.z * frequency; - - long x0 = fastFloor(xf); - long y0 = fastFloor(yf); - long z0 = fastFloor(zf); - long x1 = x0 + 1; - long y1 = y0 + 1; - long z1 = z0 + 1; - - double xs = 0, ys = 0, zs = 0; - switch (m_longerp) { - case Linear -> { - xs = xf - x0; - ys = yf - y0; - zs = zf - z0; - } - case Hermite -> { - xs = longerpHermiteFunc(xf - x0); - ys = longerpHermiteFunc(yf - y0); - zs = longerpHermiteFunc(zf - z0); - } - case Qulongic -> { - xs = longerpQulongicFunc(xf - x0); - ys = longerpQulongicFunc(yf - y0); - zs = longerpQulongicFunc(zf - z0); - } - } - - int vecIndex000 = (int) hash3D(seed, x0, y0, z0) & 255; - int vecIndex100 = (int) hash3D(seed, x1, y0, z0) & 255; - - double lx0x = lerp(CELL_3D_X[vecIndex000], CELL_3D_X[vecIndex100], xs); - double ly0x = lerp(CELL_3D_Y[vecIndex000], CELL_3D_Y[vecIndex100], xs); - double lz0x = lerp(CELL_3D_Z[vecIndex000], CELL_3D_Z[vecIndex100], xs); - - int vecIndex010 = (int) hash3D(seed, x0, y1, z0) & 255; - int vecIndex110 = (int) hash3D(seed, x1, y1, z0) & 255; - - double lx1x = lerp(CELL_3D_X[vecIndex010], CELL_3D_X[vecIndex110], xs); - double ly1x = lerp(CELL_3D_Y[vecIndex010], CELL_3D_Y[vecIndex110], xs); - double lz1x = lerp(CELL_3D_Z[vecIndex010], CELL_3D_Z[vecIndex110], xs); - - double lx0y = lerp(lx0x, lx1x, ys); - double ly0y = lerp(ly0x, ly1x, ys); - double lz0y = lerp(lz0x, lz1x, ys); - - int vecIndex001 = (int) hash3D(seed, x0, y0, z1) & 255; - int vecIndex101 = (int) hash3D(seed, x1, y0, z1) & 255; - - lx0x = lerp(CELL_3D_X[vecIndex001], CELL_3D_X[vecIndex101], xs); - ly0x = lerp(CELL_3D_Y[vecIndex001], CELL_3D_Y[vecIndex101], xs); - lz0x = lerp(CELL_3D_Z[vecIndex001], CELL_3D_Z[vecIndex101], xs); - - int vecIndex011 = (int) hash3D(seed, x0, y1, z1) & 255; - int vecIndex111 = (int) hash3D(seed, x1, y1, z1) & 255; - - lx1x = lerp(CELL_3D_X[vecIndex011], CELL_3D_X[vecIndex111], xs); - ly1x = lerp(CELL_3D_Y[vecIndex011], CELL_3D_Y[vecIndex111], xs); - lz1x = lerp(CELL_3D_Z[vecIndex011], CELL_3D_Z[vecIndex111], xs); - - v3.x += lerp(lx0y, lerp(lx0x, lx1x, ys), zs) * perturbAmp; - v3.y += lerp(ly0y, lerp(ly0x, ly1x, ys), zs) * perturbAmp; - v3.z += lerp(lz0y, lerp(lz0x, lz1x, ys), zs) * perturbAmp; - } - - public void GradientPerturb(Vector2f v2) { - SingleGradientPerturb(m_seed, m_gradientPerturbAmp, m_frequency, v2); - } - - public void GradientPerturbFractal(Vector2f v2) { - long seed = m_seed; - double amp = m_gradientPerturbAmp * m_fractalBounding; - double freq = m_frequency; - - SingleGradientPerturb(seed, amp, m_frequency, v2); - - for (long i = 1; i < m_octaves; i++) { - freq *= m_lacunarity; - amp *= m_gain; - SingleGradientPerturb(++seed, amp, freq, v2); - } - } - - private void SingleGradientPerturb(long seed, double perturbAmp, double frequency, Vector2f v2) { - double xf = v2.x * frequency; - double yf = v2.y * frequency; - - long x0 = fastFloor(xf); - long y0 = fastFloor(yf); - long x1 = x0 + 1; - long y1 = y0 + 1; - - double xs = 0, ys = 0; - switch (m_longerp) { - case Linear -> { - xs = xf - x0; - ys = yf - y0; - } - case Hermite -> { - xs = longerpHermiteFunc(xf - x0); - ys = longerpHermiteFunc(yf - y0); - } - case Qulongic -> { - xs = longerpQulongicFunc(xf - x0); - ys = longerpQulongicFunc(yf - y0); - } - } - - int vecIndex00 = (int) hash2D(seed, x0, y0) & 255; - int vecIndex10 = (int) hash2D(seed, x1, y0) & 255; - - double lx0x = lerp(CELL_2D_X[vecIndex00], CELL_2D_X[vecIndex10], xs); - double ly0x = lerp(CELL_2D_Y[vecIndex00], CELL_2D_Y[vecIndex10], xs); - - int vecIndex01 = (int) hash2D(seed, x0, y1) & 255; - int vecIndex11 = (int) hash2D(seed, x1, y1) & 255; - - double lx1x = lerp(CELL_2D_X[vecIndex01], CELL_2D_X[vecIndex11], xs); - double ly1x = lerp(CELL_2D_Y[vecIndex01], CELL_2D_Y[vecIndex11], xs); - - v2.x += lerp(lx0x, lx1x, ys) * perturbAmp; - v2.y += lerp(ly0x, ly1x, ys) * perturbAmp; - } - - public enum NoiseType { - Value, - ValueFractal, - Perlin, - PerlinFractal, - Simplex, - SimplexFractal, - Cellular, - WhiteNoise, - Cubic, - CubicFractal - } - - public enum Longerp { - Linear, - Hermite, - Qulongic - } - - public enum FractalType { - FBM, - Billow, - RigidMulti - } - - public enum CellularDistanceFunction { - Euclidean, - Manhattan, - Natural - } - - public enum CellularReturnType { - CellValue, - NoiseLookup, - Distance, - Distance2, - Distance2Add, - Distance2Sub, - Distance2Mul, - Distance2Div - } - - @SuppressWarnings("ClassCanBeRecord") - private static class Double2 { - public final double x, y; - - public Double2(double x, double y) { - this.x = x; - this.y = y; - } - } - - @SuppressWarnings("ClassCanBeRecord") - private static class Double3 { - public final double x, y, z; - - public Double3(double x, double y, double z) { - this.x = x; - this.y = y; - this.z = z; - } - } - -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/FlatNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/FlatNoise.java deleted file mode 100644 index 611192808..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/FlatNoise.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.noise; - -public class FlatNoise implements NoiseGenerator { - public FlatNoise(long seed) { - - } - - @Override - public double noise(double x) { - return 1D; - } - - @Override - public double noise(double x, double z) { - return 1D; - } - - @Override - public double noise(double x, double y, double z) { - return 1D; - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/FractalBillowPerlinNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/FractalBillowPerlinNoise.java deleted file mode 100644 index d6980b599..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/FractalBillowPerlinNoise.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.noise; - -import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.project.noise.FastNoiseDouble.FractalType; -public class FractalBillowPerlinNoise implements NoiseGenerator, OctaveNoise { - private final FastNoiseDouble n; - - public FractalBillowPerlinNoise(long seed) { - this.n = new FastNoiseDouble(new RNG(seed).lmax()); - n.setLongerp(FastNoiseDouble.Longerp.Qulongic); - n.setFractalOctaves(1); - n.setFractalType(FractalType.Billow); - } - - public double f(double v) { - return (v / 2D) + 0.5D; - } - - @Override - public double noise(double x) { - return f(n.GetPerlinFractal(x, 0f)); - } - - @Override - public double noise(double x, double z) { - return f(n.GetPerlinFractal(x, z)); - } - - @Override - public double noise(double x, double y, double z) { - return f(n.GetPerlinFractal(x, y, z)); - } - - @Override - public void setOctaves(int o) { - n.setFractalOctaves(o); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/FractalBillowSimplexNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/FractalBillowSimplexNoise.java deleted file mode 100644 index aa05c56df..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/FractalBillowSimplexNoise.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.noise; - -import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.project.noise.FastNoiseDouble.FractalType; -public class FractalBillowSimplexNoise implements NoiseGenerator, OctaveNoise { - private final FastNoiseDouble n; - - public FractalBillowSimplexNoise(long seed) { - this.n = new FastNoiseDouble(new RNG(seed).lmax()); - n.setFractalOctaves(1); - n.setFractalType(FractalType.Billow); - } - - public double f(double v) { - return (v / 2D) + 0.5D; - } - - @Override - public double noise(double x) { - return f(n.GetSimplexFractal(x, 0d)); - } - - @Override - public double noise(double x, double z) { - return f(n.GetSimplexFractal(x, z)); - } - - @Override - public double noise(double x, double y, double z) { - return f(n.GetSimplexFractal(x, y, z)); - } - - @Override - public void setOctaves(int o) { - n.setFractalOctaves(o); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/FractalCubicNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/FractalCubicNoise.java deleted file mode 100644 index bb8d9b846..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/FractalCubicNoise.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.noise; - -import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.project.noise.FastNoiseDouble.FractalType; -public class FractalCubicNoise implements NoiseGenerator, OctaveNoise { - private final FastNoiseDouble n; - - public FractalCubicNoise(long seed) { - this.n = new FastNoiseDouble(new RNG(seed).lmax()); - n.setFractalOctaves(1); - n.setFractalType(FractalType.Billow); - } - - private double f(double n) { - return (n / 2D) + 0.5D; - } - - @Override - public double noise(double x) { - return f(n.GetCubicFractal(x, 0)); - } - - @Override - public double noise(double x, double z) { - return f(n.GetCubicFractal(x, z)); - } - - @Override - public double noise(double x, double y, double z) { - return f(n.GetCubicFractal(x, y, z)); - } - - @Override - public void setOctaves(int octaves) { - n.setFractalOctaves(octaves); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/FractalFBMSimplexNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/FractalFBMSimplexNoise.java deleted file mode 100644 index 961e2612b..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/FractalFBMSimplexNoise.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.noise; - -import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.project.noise.FastNoiseDouble.FractalType; -public class FractalFBMSimplexNoise implements NoiseGenerator, OctaveNoise { - private final FastNoiseDouble n; - - public FractalFBMSimplexNoise(long seed) { - this.n = new FastNoiseDouble(new RNG(seed).lmax()); - n.setFractalOctaves(1); - n.setFractalType(FractalType.FBM); - } - - public double f(double v) { - return (v / 2D) + 0.5D; - } - - @Override - public double noise(double x) { - return f(n.GetSimplexFractal(x, 0d)); - } - - @Override - public double noiseSigned(double x) { - return n.GetSimplexFractal(x, 0D); - } - - @Override - public double noise(double x, double z) { - return f(n.GetSimplexFractal(x, z)); - } - - @Override - public double noiseSigned(double x, double z) { - return n.GetSimplexFractal(x, z); - } - - @Override - public double noise(double x, double y, double z) { - return f(n.GetSimplexFractal(x, y, z)); - } - - @Override - public double noiseSigned(double x, double y, double z) { - return n.GetSimplexFractal(x, y, z); - } - - @Override - public void setOctaves(int o) { - n.setFractalOctaves(o); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/FractalRigidMultiSimplexNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/FractalRigidMultiSimplexNoise.java deleted file mode 100644 index d823d9da8..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/FractalRigidMultiSimplexNoise.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.noise; - -import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.project.noise.FastNoiseDouble.FractalType; -public class FractalRigidMultiSimplexNoise implements NoiseGenerator, OctaveNoise { - private final FastNoiseDouble n; - - public FractalRigidMultiSimplexNoise(long seed) { - this.n = new FastNoiseDouble(new RNG(seed).lmax()); - n.setFractalOctaves(1); - n.setFractalType(FractalType.RigidMulti); - } - - public double f(double v) { - return 1D + (v - 1D) * n.getFractalBounding(); - } - - @Override - public double noise(double x) { - return f(n.GetSimplexFractal(x, 0d)); - } - - @Override - public double noise(double x, double z) { - return f(n.GetSimplexFractal(x, z)); - } - - @Override - public double noise(double x, double y, double z) { - return f(n.GetSimplexFractal(x, y, z)); - } - - @Override - public void setOctaves(int o) { - n.setFractalOctaves(o); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/GaborNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/GaborNoise.java deleted file mode 100644 index 2fd5e7bc9..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/GaborNoise.java +++ /dev/null @@ -1,72 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import java.util.SplittableRandom; - -public final class GaborNoise extends PatternNoise { - private static final double TAU = Math.PI * 2D; - private static final double RADIUS_SQUARED = 0.95D * 0.95D; - private static final double SPREAD = 0.6D / 65535D; - - private final long seed; - private final double directionX; - private final double directionY; - private final double directionZ; - - public GaborNoise(long seed) { - this.seed = seed; - SplittableRandom random = new SplittableRandom(seed); - double angle = random.nextDouble(TAU); - double elevation = random.nextDouble(-0.55D, 0.55D); - double horizontal = Math.sqrt(1D - elevation * elevation); - directionX = Math.cos(angle) * horizontal; - directionY = elevation; - directionZ = Math.sin(angle) * horizontal; - } - - @Override - protected double sample(double x, double y, double z) { - long cellX = (long) Math.floor(x); - long cellY = (long) Math.floor(y); - long cellZ = (long) Math.floor(z); - double sum = 0D; - double weights = 0.12D; - for (int offsetY = -1; offsetY <= 1; offsetY++) { - long pointY = cellY + offsetY; - long hashY = pointY * 0xC2B2AE3D27D4EB4FL; - for (int offsetZ = -1; offsetZ <= 1; offsetZ++) { - long pointZ = cellZ + offsetZ; - long hashYZ = hashY ^ pointZ * 0x165667B19E3779F9L; - for (int offsetX = -1; offsetX <= 1; offsetX++) { - long pointX = cellX + offsetX; - long hash = mix(seed ^ pointX * 0x9E3779B97F4A7C15L ^ hashYZ); - if ((hash & 3L) == 0L) { - continue; - } - double dx = x - (pointX + 0.2D + (hash & 65535L) * SPREAD); - double dy = y - (pointY + 0.2D + ((hash >>> 16) & 65535L) * SPREAD); - double dz = z - (pointZ + 0.2D + ((hash >>> 32) & 65535L) * SPREAD); - double distanceSquared = dx * dx + dy * dy + dz * dz; - if (distanceSquared >= RADIUS_SQUARED) { - continue; - } - double envelope = 1D - distanceSquared / RADIUS_SQUARED; - double weight = envelope * envelope * envelope; - long wave = mix(hash); - double waveX = directionX + ((wave & 1023L) / 1023D - 0.5D) * 0.35D; - double waveY = directionY + (((wave >>> 10) & 1023L) / 1023D - 0.5D) * 0.35D; - double waveZ = directionZ + (((wave >>> 20) & 1023L) / 1023D - 0.5D) * 0.35D; - double phase = (wave >>> 32) * (TAU / 4294967296D); - sum += weight * Math.cos(TAU * 3D * (waveX * dx + waveY * dy + waveZ * dz) + phase); - weights += weight; - } - } - } - return 0.5D + 0.5D * sum / weights; - } - - private static long mix(long value) { - value = (value ^ (value >>> 30)) * 0xBF58476D1CE4E5B9L; - value = (value ^ (value >>> 27)) * 0x94D049BB133111EBL; - return value ^ (value >>> 31); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/GlobNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/GlobNoise.java deleted file mode 100644 index aedcfbb1a..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/GlobNoise.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.noise; - -import art.arcane.volmlib.util.math.RNG; - -public class GlobNoise implements NoiseGenerator { - private final FastNoiseDouble n; - - public GlobNoise(long seed) { - this.n = new FastNoiseDouble(new RNG(seed).lmax()); - n.setNoiseType(FastNoiseDouble.NoiseType.Cellular); - n.setCellularReturnType(FastNoiseDouble.CellularReturnType.Distance2Div); - n.setCellularDistanceFunction(FastNoiseDouble.CellularDistanceFunction.Natural); - } - - private double f(double n) { - return n + 1D; - } - - @Override - public double noise(double x) { - return f(n.GetCellular(x, 0)); - } - - @Override - public double noise(double x, double z) { - return f(n.GetCellular(x, z)); - } - - @Override - public double noise(double x, double y, double z) { - return f(n.GetCellular(x, y, z)); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/GyroidNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/GyroidNoise.java deleted file mode 100644 index 5f7682e8e..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/GyroidNoise.java +++ /dev/null @@ -1,44 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import java.util.SplittableRandom; - -public final class GyroidNoise extends PatternNoise { - private static final double TAU = Math.PI * 2D; - - private final double horizontalCosine; - private final double horizontalSine; - private final double tiltCosine; - private final double tiltSine; - private final double phaseX; - private final double phaseY; - private final double phaseZ; - - public GyroidNoise(long seed) { - SplittableRandom random = new SplittableRandom(seed); - double horizontalAngle = random.nextDouble(TAU); - double tiltAngle = random.nextDouble(0.35D, 1.2D); - horizontalCosine = Math.cos(horizontalAngle); - horizontalSine = Math.sin(horizontalAngle); - tiltCosine = Math.cos(tiltAngle); - tiltSine = Math.sin(tiltAngle); - phaseX = random.nextDouble(TAU); - phaseY = random.nextDouble(TAU); - phaseZ = random.nextDouble(TAU); - } - - @Override - protected double sample(double x, double y, double z) { - double horizontal = x * horizontalCosine + z * horizontalSine; - double transverse = z * horizontalCosine - x * horizontalSine; - double u = TAU * (horizontal * tiltCosine + y * tiltSine) + phaseX; - double v = TAU * (y * tiltCosine - horizontal * tiltSine) + phaseY; - double w = TAU * transverse + phaseZ; - double a = u + 0.7D * Math.sin(0.37D * v + 0.29D * w + phaseZ); - double b = v + 0.7D * Math.sin(0.31D * w - 0.23D * u + phaseX); - double c = w + 0.7D * Math.sin(0.41D * u + 0.19D * v + phaseY); - double field = Math.sin(a) * Math.cos(b) + Math.sin(b) * Math.cos(c) + Math.sin(c) * Math.cos(a); - double width = 0.62D + 0.22D * Math.sin(0.29D * u + 0.23D * v - 0.19D * w); - double sheet = Math.max(0D, 1D - Math.abs(field) / width); - return sheet * sheet * (3D - 2D * sheet); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/HexJamesNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/HexJamesNoise.java deleted file mode 100644 index 76571385e..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/HexJamesNoise.java +++ /dev/null @@ -1,90 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import art.arcane.volmlib.util.math.RNG; - -public class HexJamesNoise extends HexagonalNoise implements OctaveNoise { - private static final int MAX_DEPTH = 7; - private static final double HEAT_SCALE = 18D; - private static final double LARGE_CONTINUE = 0.26D; - private static final double SMALL_CONTINUE = 0.79D; - private static final double CENTER_CONTINUE = 0.58D; - private final long seed; - private final SimplexNoise heat; - - public HexJamesNoise(long seed) { - RNG rng = new RNG(seed); - this.seed = rng.lmax(); - this.heat = new SimplexNoise(rng.nextParallelRNG(877L).lmax()); - } - - @Override - public void setOctaves(int octaves) { - heat.setOctaves(octaves); - } - - @Override - protected double sample(double x, double y, double z) { - double qWorld = (SQRT_3_OVER_3 * x) - (z / 3D); - double rWorld = TWO_OVER_THREE * z; - long rootQ = roundQ(qWorld, rWorld); - long rootR = roundR(qWorld, rWorld); - double centerQ = rootQ; - double centerR = rootR; - double radius = 1D; - double localQ = qWorld - centerQ; - double localR = rWorld - centerR; - long nodeHash = mix(seed ^ (rootQ * CONST_X) ^ (rootR * CONST_Z)); - int level = 0; - - while (level < MAX_DEPTH) { - int childIndex = pickChildIndex(localQ, localR); - if (childIndex < 0) { - break; - } - - double childQ = CHILD_Q[childIndex]; - double childR = CHILD_R[childIndex]; - centerQ += childQ * radius; - centerR += childR * radius; - radius *= ONE_THIRD; - localQ = (localQ - childQ) * 3D; - localR = (localR - childR) * 3D; - nodeHash = mix(nodeHash ^ (CONST_X * (childIndex + 11L)) ^ (CONST_Z * (level + 1L))); - level++; - - if (!shouldContinue(childIndex, nodeHash, level - 1)) { - break; - } - } - - double centerX = SQRT_3 * (centerQ + (centerR * 0.5D)); - double centerZ = 1.5D * centerR; - double simplexValue = heat.noise(centerX * HEAT_SCALE, y * HEAT_SCALE, centerZ * HEAT_SCALE); - return (simplexValue * 0.82D) + (random01(nodeHash, 31 + level) * 0.18D); - } - - private boolean shouldContinue(int childIndex, long nodeHash, int level) { - if (level >= MAX_DEPTH - 1) { - return false; - } - - double gate = CENTER_CONTINUE; - if (childIndex != 0) { - int rotation = (int) (random01(nodeHash, 3) * 6D); - int parity = random01(nodeHash, 5) >= 0.5D ? 1 : 0; - int direction = childIndex - 1 - rotation; - if (direction < 0) { - direction += 6; - } - gate = (direction % 2) == parity ? LARGE_CONTINUE : SMALL_CONTINUE; - } - - return random01(nodeHash, 97 + level) <= gate; - } - - private double random01(long nodeHash, int salt) { - long mixed = nodeHash ^ (CONST_X * (salt + 1L)) ^ (CONST_Z * (salt + 7L)); - return (mix(mixed) >>> 11) * 0x1.0p-53; - } - -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/HexRandomSizeNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/HexRandomSizeNoise.java deleted file mode 100644 index abd5a646a..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/HexRandomSizeNoise.java +++ /dev/null @@ -1,78 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import art.arcane.volmlib.util.math.RNG; - -public class HexRandomSizeNoise extends HexagonalNoise implements OctaveNoise { - private static final int MAX_DEPTH = 8; - private static final double HEAT_SCALE = 18D; - private static final double STRUCTURE_SCALE = 36D; - private static final double SUBDIVIDE_BASE_THRESHOLD = 0.22D; - private static final double SUBDIVIDE_LEVEL_STEP = 0.11D; - private final long seed; - private final SimplexNoise heat; - private final SimplexNoise structure; - - public HexRandomSizeNoise(long seed) { - RNG rng = new RNG(seed); - this.seed = rng.lmax(); - this.heat = new SimplexNoise(rng.nextParallelRNG(221L).lmax()); - this.structure = new SimplexNoise(rng.nextParallelRNG(442L).lmax()); - } - - @Override - public void setOctaves(int octaves) { - heat.setOctaves(octaves); - structure.setOctaves(octaves); - } - - @Override - protected double sample(double x, double y, double z) { - double qWorld = (SQRT_3_OVER_3 * x) - (z / 3D); - double rWorld = TWO_OVER_THREE * z; - long rootQ = roundQ(qWorld, rWorld); - long rootR = roundR(qWorld, rWorld); - double centerQ = rootQ; - double centerR = rootR; - double radius = 1D; - double localQ = qWorld - centerQ; - double localR = rWorld - centerR; - long nodeHash = mix(seed ^ (rootQ * CONST_X) ^ (rootR * CONST_Z)); - int level = 0; - - while (level < MAX_DEPTH - 1 && shouldSubdivide(centerQ, centerR, nodeHash, level)) { - int childIndex = pickChildIndex(localQ, localR); - if (childIndex < 0) { - break; - } - - double childQ = CHILD_Q[childIndex]; - double childR = CHILD_R[childIndex]; - centerQ += childQ * radius; - centerR += childR * radius; - radius *= ONE_THIRD; - localQ = (localQ - childQ) * 3D; - localR = (localR - childR) * 3D; - nodeHash = mix(nodeHash ^ (CONST_Z * (childIndex + 1L)) ^ (CONST_X * (level + 1L))); - level++; - } - - double centerX = SQRT_3 * (centerQ + (centerR * 0.5D)); - double centerZ = 1.5D * centerR; - double simplexValue = heat.noise(centerX * HEAT_SCALE, y * HEAT_SCALE, centerZ * HEAT_SCALE); - return (simplexValue * 0.74D) + (random01(nodeHash, 11 + level) * 0.26D); - } - - private boolean shouldSubdivide(double centerQ, double centerR, long nodeHash, int level) { - double centerX = SQRT_3 * (centerQ + (centerR * 0.5D)); - double centerZ = 1.5D * centerR; - double simplexValue = structure.noise(centerX * STRUCTURE_SCALE, centerZ * STRUCTURE_SCALE); - double score = (simplexValue * 0.68D) + (random01(nodeHash, 71 + level) * 0.32D); - return score > SUBDIVIDE_BASE_THRESHOLD + (level * SUBDIVIDE_LEVEL_STEP); - } - - private double random01(long nodeHash, int salt) { - long mixed = nodeHash ^ (CONST_X * (salt + 1L)) ^ (CONST_Z * (salt + 31L)); - return (mix(mixed) >>> 11) * 0x1.0p-53; - } - -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/HexSimplexNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/HexSimplexNoise.java deleted file mode 100644 index b7a9a113f..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/HexSimplexNoise.java +++ /dev/null @@ -1,28 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import art.arcane.volmlib.util.math.RNG; - -public class HexSimplexNoise extends HexagonalNoise implements OctaveNoise { - private static final double HEAT_SCALE = 18D; - private final SimplexNoise heat; - - public HexSimplexNoise(long seed) { - this.heat = new SimplexNoise(new RNG(seed).nextParallelRNG(811L).lmax()); - } - - @Override - public void setOctaves(int octaves) { - heat.setOctaves(octaves); - } - - @Override - protected double sample(double x, double y, double z) { - double q = (SQRT_3_OVER_3 * x) - (z / 3D); - double r = TWO_OVER_THREE * z; - long centerQ = roundQ(q, r); - long centerR = roundR(q, r); - double centerX = SQRT_3 * (centerQ + (centerR * 0.5D)); - double centerZ = 1.5D * centerR; - return heat.noise(centerX * HEAT_SCALE, y * HEAT_SCALE, centerZ * HEAT_SCALE); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/HexagonNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/HexagonNoise.java deleted file mode 100644 index 547a2a8fb..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/HexagonNoise.java +++ /dev/null @@ -1,28 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import art.arcane.volmlib.util.math.RNG; - -public class HexagonNoise extends HexagonalNoise implements OctaveNoise { - private static final double HEAT_SCALE = 18D; - private final SimplexNoise heat; - - public HexagonNoise(long seed) { - this.heat = new SimplexNoise(new RNG(seed).lmax()); - } - - @Override - public void setOctaves(int octaves) { - heat.setOctaves(octaves); - } - - @Override - protected double sample(double x, double y, double z) { - double q = (SQRT_3_OVER_3 * x) - (z / 3D); - double r = TWO_OVER_THREE * z; - long centerQ = roundQ(q, r); - long centerR = roundR(q, r); - double centerX = SQRT_3 * (centerQ + (centerR * 0.5D)); - double centerZ = 1.5D * centerR; - return heat.noise(centerX * HEAT_SCALE, y * HEAT_SCALE, centerZ * HEAT_SCALE); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/HexagonalNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/HexagonalNoise.java deleted file mode 100644 index d27dde76f..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/HexagonalNoise.java +++ /dev/null @@ -1,71 +0,0 @@ -package art.arcane.iris.util.project.noise; - -abstract class HexagonalNoise implements NoiseGenerator { - protected static final double SQRT_3 = Math.sqrt(3D); - protected static final double SQRT_3_OVER_3 = SQRT_3 / 3D; - protected static final double TWO_OVER_THREE = 2D / 3D; - protected static final double ONE_THIRD = 1D / 3D; - protected static final double[] CHILD_Q = {0D, 4D / 9D, 2D / 9D, -2D / 9D, -4D / 9D, -2D / 9D, 2D / 9D}; - protected static final double[] CHILD_R = {0D, -2D / 9D, 2D / 9D, 4D / 9D, 2D / 9D, -2D / 9D, -4D / 9D}; - protected static final long CONST_X = 0x9E3779B97F4A7C15L; - protected static final long CONST_Z = 0xC2B2AE3D27D4EB4FL; - - @Override - public double noise(double x) { - return sample(x, 0D, 0D); - } - - @Override - public double noise(double x, double z) { - return sample(x, 0D, z); - } - - @Override - public double noise(double x, double y, double z) { - return sample(x, y, z); - } - - protected abstract double sample(double x, double y, double z); - - protected static long roundQ(double q, double r) { - double cubeY = -q - r; - long roundedQ = Math.round(q); - long roundedR = Math.round(r); - long roundedY = Math.round(cubeY); - double qDiff = Math.abs(roundedQ - q); - double rDiff = Math.abs(roundedR - r); - double yDiff = Math.abs(roundedY - cubeY); - return qDiff > yDiff && qDiff > rDiff ? -roundedY - roundedR : roundedQ; - } - - protected static long roundR(double q, double r) { - double cubeY = -q - r; - long roundedQ = Math.round(q); - long roundedR = Math.round(r); - long roundedY = Math.round(cubeY); - double qDiff = Math.abs(roundedQ - q); - double rDiff = Math.abs(roundedR - r); - double yDiff = Math.abs(roundedY - cubeY); - return !(qDiff > yDiff && qDiff > rDiff) && yDiff <= rDiff ? -roundedQ - roundedY : roundedR; - } - - protected static long mix(long input) { - input = (input ^ (input >>> 33)) * 0xff51afd7ed558ccdL; - input = (input ^ (input >>> 33)) * 0xc4ceb9fe1a85ec53L; - return input ^ (input >>> 33); - } - - protected static int pickChildIndex(double localQ, double localR) { - for (int index = 0; index < CHILD_Q.length; index++) { - double deltaQ = localQ - CHILD_Q[index]; - double deltaR = localR - CHILD_R[index]; - double distance = Math.max(Math.abs((2D * deltaQ) + deltaR), - Math.max(Math.abs(deltaQ + (2D * deltaR)), Math.abs(deltaQ - deltaR))); - if (distance <= ONE_THIRD) { - return index; - } - } - - return -1; - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/InterpolatedNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/InterpolatedNoise.java deleted file mode 100644 index 40ef42a23..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/InterpolatedNoise.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.noise; - -import art.arcane.volmlib.util.function.NoiseProvider; -import art.arcane.iris.util.project.interpolation.InterpolationMethod; -import art.arcane.iris.util.project.interpolation.IrisInterpolation; -public class InterpolatedNoise implements NoiseGenerator, OctaveNoise { - private final InterpolationMethod method; - private final NoiseGenerator generator; - private final NoiseProvider p; - - public InterpolatedNoise(long seed, NoiseType type, InterpolationMethod method) { - this.method = method; - generator = type.create(seed); - double coordinateScale = type.getCoordinateScale(); - p = (x, z) -> generator.noise(x * coordinateScale, z * coordinateScale); - } - - @Override - public double noise(double x) { - return noise(x, 0); - } - - @Override - public double noise(double x, double z) { - return Math.max(0D, Math.min(1D, IrisInterpolation.getNoise(method, x, z, 32, p))); - } - - @Override - public double noise(double x, double y, double z) { - return noise(x, z); - } - - @Override - public void setOctaves(int octaves) { - if (generator instanceof OctaveNoise octaveNoise) { - octaveNoise.setOctaves(octaves); - } - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/KaleidoscopeNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/KaleidoscopeNoise.java deleted file mode 100644 index 3bde2b2ad..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/KaleidoscopeNoise.java +++ /dev/null @@ -1,43 +0,0 @@ -package art.arcane.iris.util.project.noise; - -public final class KaleidoscopeNoise extends PatternNoise { - private static final double TAU = Math.PI * 2D; - - private final long seed; - - public KaleidoscopeNoise(long seed) { - this.seed = seed; - } - - @Override - protected double sample(double x, double y, double z) { - z += 0.5D; - long cellX = (long) Math.floor(x); - long cellZ = (long) Math.floor(z); - double dx = x - cellX - 0.5D; - double dz = z - cellZ - 0.5D; - double radiusSquared = dx * dx + dz * dz; - if (radiusSquared >= 0.25D) { - return 0D; - } - - long hash = mix(seed ^ cellX * 0x9E3779B97F4A7C15L ^ cellZ * 0xD1B54A32D192ED03L); - int wedges = 4 + (int) (hash & 3L); - double phase = (hash >>> 11) * 0x1.0p-53D * TAU; - double sector = TAU / wedges; - double angle = Math.atan2(dz, dx) + phase + y * 0.35D; - angle = Math.abs(angle - Math.floor(angle / sector + 0.5D) * sector); - double radius = Math.sqrt(radiusSquared); - double u = radius * Math.cos(angle); - double v = radius * Math.sin(angle); - double motif = 0.5D + 0.5D * Math.cos(16D * u + 2.5D * Math.cos(18D * v + phase + y)); - double envelope = 1D - radiusSquared * 4D; - return motif * envelope * envelope; - } - - private static long mix(long value) { - value = (value ^ (value >>> 30)) * 0xBF58476D1CE4E5B9L; - value = (value ^ (value >>> 27)) * 0x94D049BB133111EBL; - return value ^ (value >>> 31); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/MarbleNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/MarbleNoise.java deleted file mode 100644 index 7d58edd2c..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/MarbleNoise.java +++ /dev/null @@ -1,36 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import java.util.SplittableRandom; - -public final class MarbleNoise extends PatternNoise { - private static final double TAU = Math.PI * 2D; - - private final FastNoiseDouble distortion; - private final double directionX; - private final double directionY; - private final double directionZ; - private final double phase; - - public MarbleNoise(long seed) { - SplittableRandom random = new SplittableRandom(seed); - distortion = new FastNoiseDouble(random.nextLong()); - distortion.setFrequency(1D); - double angle = random.nextDouble(TAU); - directionX = Math.cos(angle); - directionY = random.nextDouble(0.25D, 0.65D); - directionZ = Math.sin(angle); - phase = random.nextDouble(TAU); - } - - @Override - protected double sample(double x, double y, double z) { - double broad = distortion.GetSimplex(x * 0.45D, y * 0.45D, z * 0.45D); - double detail = distortion.GetSimplex(x * 1.3D + 17.3D, y * 1.3D - 11.7D, z * 1.3D + 5.9D); - double warp = broad * 1.1D + detail * 0.2D; - double position = x * directionX + y * directionY + z * directionZ; - double ridge = Math.sin(TAU * (position + warp) + phase); - double vein = 1D / (1D + 90D * ridge * ridge); - double stone = 0.85D + 0.15D * broad; - return Math.clamp(0.1D + 0.84D * stone * (1D - vein), 0D, 1D); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/MengerSpongeNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/MengerSpongeNoise.java deleted file mode 100644 index 4505dc21a..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/MengerSpongeNoise.java +++ /dev/null @@ -1,48 +0,0 @@ -package art.arcane.iris.util.project.noise; - -public final class MengerSpongeNoise extends PatternNoise { - private static final int DEPTH = 3; - - private final double phaseX; - private final double phaseY; - private final double phaseZ; - - public MengerSpongeNoise(long seed) { - long hash = mix(seed); - phaseX = (hash & 0x1FFFFFL) * 0x1.0p-21D; - phaseY = ((hash >>> 21) & 0x1FFFFFL) * (0x1.0p-21D / 3D); - phaseZ = (hash >>> 42) * 0x1.0p-22D; - } - - @Override - protected double sample(double x, double y, double z) { - x += phaseX; - y += phaseY; - z += phaseZ; - x -= Math.floor(x); - y -= Math.floor(y); - z -= Math.floor(z); - for (int level = 0; level < DEPTH; level++) { - x *= 3D; - y *= 3D; - z *= 3D; - int cellX = (int) x; - int cellY = (int) y; - int cellZ = (int) z; - int middleAxes = (cellX == 1 ? 1 : 0) + (cellY == 1 ? 1 : 0) + (cellZ == 1 ? 1 : 0); - if (middleAxes >= 2) { - return 0D; - } - x -= cellX; - y -= cellY; - z -= cellZ; - } - return 1D; - } - - private static long mix(long value) { - value = (value ^ (value >>> 30)) * 0xBF58476D1CE4E5B9L; - value = (value ^ (value >>> 27)) * 0x94D049BB133111EBL; - return value ^ (value >>> 31); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/NoiseFactory.java b/core/src/main/java/art/arcane/iris/util/project/noise/NoiseFactory.java deleted file mode 100644 index 222669cf8..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/NoiseFactory.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.noise; - -@FunctionalInterface -public interface NoiseFactory { - NoiseGenerator create(long seed); -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/NoiseGenerator.java b/core/src/main/java/art/arcane/iris/util/project/noise/NoiseGenerator.java deleted file mode 100644 index cf01f4e7a..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/NoiseGenerator.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.noise; - -import art.arcane.iris.util.project.stream.ProceduralStream; -import art.arcane.iris.util.project.stream.interpolation.Interpolated; -public interface NoiseGenerator { - double noise(double x); - - double noise(double x, double z); - - double noise(double x, double y, double z); - - default double noiseSigned(double x) { - return (noise(x) * 2D) - 1D; - } - - default double noiseSigned(double x, double z) { - return (noise(x, z) * 2D) - 1D; - } - - default double noiseSigned(double x, double y, double z) { - return (noise(x, y, z) * 2D) - 1D; - } - - default boolean isStatic() { - return false; - } - - default boolean isNoScale() { - return false; - } - - default ProceduralStream stream() { - return ProceduralStream.of(this::noise, this::noise, Interpolated.DOUBLE); - } - - default OffsetNoiseGenerator offset(long seed) { - return new OffsetNoiseGenerator(this, seed); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/NoiseType.java b/core/src/main/java/art/arcane/iris/util/project/noise/NoiseType.java deleted file mode 100644 index 7c3867bdd..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/NoiseType.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.noise; - -import art.arcane.iris.util.project.interpolation.InterpolationMethod; -public enum NoiseType { - WHITE(WhiteNoise::new, 1D), - WHITE_BILINEAR((s) -> new InterpolatedNoise(s, WHITE, InterpolationMethod.BILINEAR), 1D), - WHITE_BICUBIC((s) -> new InterpolatedNoise(s, WHITE, InterpolationMethod.BICUBIC), 1D), - WHITE_HERMITE((s) -> new InterpolatedNoise(s, WHITE, InterpolationMethod.HERMITE), 1D), - SIMPLEX(SimplexNoise::new), - PERLIN(PerlinNoise::new), - FRACTAL_BILLOW_SIMPLEX(FractalBillowSimplexNoise::new), - FRACTAL_BILLOW_PERLIN(FractalBillowPerlinNoise::new), - FRACTAL_FBM_SIMPLEX(FractalFBMSimplexNoise::new), - FRACTAL_RIGID_MULTI_SIMPLEX(FractalRigidMultiSimplexNoise::new), - FLAT(FlatNoise::new, 1D), - CELLULAR(CellularNoise::new), - CELLULAR_BILINEAR((s) -> new InterpolatedNoise(s, CELLULAR, InterpolationMethod.BILINEAR), 1D), - CELLULAR_BILINEAR_STARCAST_3((s) -> new InterpolatedNoise(s, CELLULAR, InterpolationMethod.BILINEAR_STARCAST_3), 1D), - CELLULAR_BILINEAR_STARCAST_6((s) -> new InterpolatedNoise(s, CELLULAR, InterpolationMethod.BILINEAR_STARCAST_6), 1D), - CELLULAR_BILINEAR_STARCAST_9((s) -> new InterpolatedNoise(s, CELLULAR, InterpolationMethod.BILINEAR_STARCAST_9), 1D), - CELLULAR_BILINEAR_STARCAST_12((s) -> new InterpolatedNoise(s, CELLULAR, InterpolationMethod.BILINEAR_STARCAST_12), 1D), - CELLULAR_BICUBIC((s) -> new InterpolatedNoise(s, CELLULAR, InterpolationMethod.BICUBIC), 1D), - CELLULAR_HERMITE((s) -> new InterpolatedNoise(s, CELLULAR, InterpolationMethod.HERMITE), 1D), - CELLULAR_STARCAST_3((s) -> new InterpolatedNoise(s, CELLULAR, InterpolationMethod.STARCAST_3), 1D), - CELLULAR_STARCAST_6((s) -> new InterpolatedNoise(s, CELLULAR, InterpolationMethod.STARCAST_6), 1D), - CELLULAR_STARCAST_9((s) -> new InterpolatedNoise(s, CELLULAR, InterpolationMethod.STARCAST_9), 1D), - CELLULAR_STARCAST_12((s) -> new InterpolatedNoise(s, CELLULAR, InterpolationMethod.STARCAST_12), 1D), - CELLULAR_HERMITE_STARCAST_3((s) -> new InterpolatedNoise(s, CELLULAR, InterpolationMethod.HERMITE_STARCAST_3), 1D), - CELLULAR_HERMITE_STARCAST_6((s) -> new InterpolatedNoise(s, CELLULAR, InterpolationMethod.HERMITE_STARCAST_6), 1D), - CELLULAR_HERMITE_STARCAST_9((s) -> new InterpolatedNoise(s, CELLULAR, InterpolationMethod.HERMITE_STARCAST_9), 1D), - CELLULAR_HERMITE_STARCAST_12((s) -> new InterpolatedNoise(s, CELLULAR, InterpolationMethod.HERMITE_STARCAST_12), 1D), - GLOB(GlobNoise::new), - CUBIC(CubicNoise::new), - FRACTAL_CUBIC(FractalCubicNoise::new), - CELLULAR_HEIGHT(CellHeightNoise::new), - CLOVER(CloverNoise::new, 1D / 64D), - CLOVER_BILINEAR((s) -> new InterpolatedNoise(s, CLOVER, InterpolationMethod.BILINEAR), 1D), - CLOVER_BILINEAR_STARCAST_3((s) -> new InterpolatedNoise(s, CLOVER, InterpolationMethod.BILINEAR_STARCAST_3), 1D), - CLOVER_BILINEAR_STARCAST_6((s) -> new InterpolatedNoise(s, CLOVER, InterpolationMethod.BILINEAR_STARCAST_6), 1D), - CLOVER_BILINEAR_STARCAST_9((s) -> new InterpolatedNoise(s, CLOVER, InterpolationMethod.BILINEAR_STARCAST_9), 1D), - CLOVER_BILINEAR_STARCAST_12((s) -> new InterpolatedNoise(s, CLOVER, InterpolationMethod.BILINEAR_STARCAST_12), 1D), - CLOVER_BICUBIC((s) -> new InterpolatedNoise(s, CLOVER, InterpolationMethod.BICUBIC), 1D), - CLOVER_HERMITE((s) -> new InterpolatedNoise(s, CLOVER, InterpolationMethod.HERMITE), 1D), - CLOVER_STARCAST_3((s) -> new InterpolatedNoise(s, CLOVER, InterpolationMethod.STARCAST_3), 1D), - CLOVER_STARCAST_6((s) -> new InterpolatedNoise(s, CLOVER, InterpolationMethod.STARCAST_6), 1D), - CLOVER_STARCAST_9((s) -> new InterpolatedNoise(s, CLOVER, InterpolationMethod.STARCAST_9), 1D), - CLOVER_STARCAST_12((s) -> new InterpolatedNoise(s, CLOVER, InterpolationMethod.STARCAST_12), 1D), - CLOVER_HERMITE_STARCAST_3((s) -> new InterpolatedNoise(s, CLOVER, InterpolationMethod.HERMITE_STARCAST_3), 1D), - CLOVER_HERMITE_STARCAST_6((s) -> new InterpolatedNoise(s, CLOVER, InterpolationMethod.HERMITE_STARCAST_6), 1D), - CLOVER_HERMITE_STARCAST_9((s) -> new InterpolatedNoise(s, CLOVER, InterpolationMethod.HERMITE_STARCAST_9), 1D), - CLOVER_HERMITE_STARCAST_12((s) -> new InterpolatedNoise(s, CLOVER, InterpolationMethod.HERMITE_STARCAST_12), 1D), - HEXAGON(HexagonNoise::new, 2D / 64D), - HEXAGON_BILINEAR((s) -> new InterpolatedNoise(s, HEXAGON, InterpolationMethod.BILINEAR), 1D), - HEXAGON_BICUBIC((s) -> new InterpolatedNoise(s, HEXAGON, InterpolationMethod.BICUBIC), 1D), - HEXAGON_HERMITE((s) -> new InterpolatedNoise(s, HEXAGON, InterpolationMethod.HERMITE), 1D), - HEX_JAMES(HexJamesNoise::new, 2D / 64D), - HEX_JAMES_BILINEAR((s) -> new InterpolatedNoise(s, HEX_JAMES, InterpolationMethod.BILINEAR), 1D), - HEX_JAMES_BICUBIC((s) -> new InterpolatedNoise(s, HEX_JAMES, InterpolationMethod.BICUBIC), 1D), - HEX_JAMES_HERMITE((s) -> new InterpolatedNoise(s, HEX_JAMES, InterpolationMethod.HERMITE), 1D), - HEX_SIMPLEX(HexSimplexNoise::new, 2D / 64D), - HEX_SIMPLEX_BILINEAR((s) -> new InterpolatedNoise(s, HEX_SIMPLEX, InterpolationMethod.BILINEAR), 1D), - HEX_SIMPLEX_BICUBIC((s) -> new InterpolatedNoise(s, HEX_SIMPLEX, InterpolationMethod.BICUBIC), 1D), - HEX_SIMPLEX_HERMITE((s) -> new InterpolatedNoise(s, HEX_SIMPLEX, InterpolationMethod.HERMITE), 1D), - HEX_RANDOM_SIZE(HexRandomSizeNoise::new, 2D / 64D), - HEX_RANDOM_SIZE_BILINEAR((s) -> new InterpolatedNoise(s, HEX_RANDOM_SIZE, InterpolationMethod.BILINEAR), 1D), - HEX_RANDOM_SIZE_BICUBIC((s) -> new InterpolatedNoise(s, HEX_RANDOM_SIZE, InterpolationMethod.BICUBIC), 1D), - HEX_RANDOM_SIZE_HERMITE((s) -> new InterpolatedNoise(s, HEX_RANDOM_SIZE, InterpolationMethod.HERMITE), 1D), - SIERPINSKI_TRIANGLE(SierpinskiTriangleNoise::new, 8D / 64D), - SIERPINSKI_TRIANGLE_BILINEAR((s) -> new InterpolatedNoise(s, SIERPINSKI_TRIANGLE, InterpolationMethod.BILINEAR), 1D), - SIERPINSKI_TRIANGLE_BICUBIC((s) -> new InterpolatedNoise(s, SIERPINSKI_TRIANGLE, InterpolationMethod.BICUBIC), 1D), - SIERPINSKI_TRIANGLE_HERMITE((s) -> new InterpolatedNoise(s, SIERPINSKI_TRIANGLE, InterpolationMethod.HERMITE), 1D), - VASCULAR(VascularNoise::new), - GYROID(GyroidNoise::new, 1D / 64D), - QUASICRYSTAL(QuasicrystalNoise::new, 1D / 64D), - TRUCHET(TruchetNoise::new, 1D / 64D), - CRATER(CraterNoise::new, 1D / 64D), - VORTEX(VortexNoise::new, 1D / 64D), - DUNE(DuneNoise::new, 1D / 64D), - STRATA(StrataNoise::new, 1D / 64D), - WOOD(WoodNoise::new, 1D / 64D), - GABOR(GaborNoise::new, 1D / 64D), - MARBLE(MarbleNoise::new, 1D / 64D), - SCALES(ScalesNoise::new, 1D / 64D), - CHLADNI(ChladniNoise::new, 1D / 64D), - KALEIDOSCOPE(KaleidoscopeNoise::new, 1D / 64D), - MENGER_SPONGE(MengerSpongeNoise::new, 1D / 64D), - CIRCUIT(CircuitNoise::new, 1D / 64D); - - private final NoiseFactory f; - private final double coordinateScale; - - NoiseType(NoiseFactory f) { - this(f, 100D / 64D); - } - - NoiseType(NoiseFactory f, double coordinateScale) { - this.f = f; - this.coordinateScale = coordinateScale; - } - - public double getCoordinateScale() { - return coordinateScale; - } - - public NoiseGenerator create(long seed) { - return f.create(seed).offset(seed); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/OctaveNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/OctaveNoise.java deleted file mode 100644 index 6f3ebd8bd..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/OctaveNoise.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.noise; - -public interface OctaveNoise { - void setOctaves(int o); -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/OffsetNoiseGenerator.java b/core/src/main/java/art/arcane/iris/util/project/noise/OffsetNoiseGenerator.java deleted file mode 100644 index 52914e213..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/OffsetNoiseGenerator.java +++ /dev/null @@ -1,126 +0,0 @@ -package art.arcane.iris.util.project.noise; - - -import art.arcane.volmlib.util.math.RNG; -import org.jetbrains.annotations.NotNull; - - -public class OffsetNoiseGenerator implements NoiseGenerator, OctaveNoise { - private static final int GENERIC = 0; - private static final int SIMPLEX = 1; - private static final int PERLIN = 2; - private static final int FRACTAL_FBM_SIMPLEX = 3; - private static final int VASCULAR = 4; - private final NoiseGenerator base; - private final SimplexNoise simplexBase; - private final PerlinNoise perlinBase; - private final FractalFBMSimplexNoise fractalFbmSimplexBase; - private final VascularNoise vascularBase; - private final int dispatchKind; - private final double ox; - private final double oz; - - public OffsetNoiseGenerator(NoiseGenerator base, long seed) { - this.base = base; - this.simplexBase = base instanceof SimplexNoise simplex ? simplex : null; - this.perlinBase = base instanceof PerlinNoise perlin ? perlin : null; - this.fractalFbmSimplexBase = base instanceof FractalFBMSimplexNoise fractal ? fractal : null; - this.vascularBase = base instanceof VascularNoise vascular ? vascular : null; - this.dispatchKind = simplexBase != null ? SIMPLEX - : perlinBase != null ? PERLIN - : fractalFbmSimplexBase != null ? FRACTAL_FBM_SIMPLEX - : vascularBase != null ? VASCULAR - : GENERIC; - RNG rng = new RNG(seed); - ox = rng.nextInt(Short.MIN_VALUE, Short.MAX_VALUE); - oz = rng.nextInt(Short.MIN_VALUE, Short.MAX_VALUE); - } - - @Override - public double noise(double x) { - return switch (dispatchKind) { - case SIMPLEX -> simplexBase.noise(x + ox); - case PERLIN -> perlinBase.noise(x + ox); - case FRACTAL_FBM_SIMPLEX -> fractalFbmSimplexBase.noise(x + ox); - case VASCULAR -> vascularBase.noise(x + ox); - default -> base.noise(x + ox); - }; - } - - @Override - public double noiseSigned(double x) { - return switch (dispatchKind) { - case SIMPLEX -> simplexBase.noiseSigned(x + ox); - case PERLIN -> perlinBase.noiseSigned(x + ox); - case FRACTAL_FBM_SIMPLEX -> fractalFbmSimplexBase.noiseSigned(x + ox); - case VASCULAR -> vascularBase.noiseSigned(x + ox); - default -> base.noiseSigned(x + ox); - }; - } - - @Override - public double noise(double x, double z) { - return switch (dispatchKind) { - case SIMPLEX -> simplexBase.noise(x + ox, z + oz); - case PERLIN -> perlinBase.noise(x + ox, z + oz); - case FRACTAL_FBM_SIMPLEX -> fractalFbmSimplexBase.noise(x + ox, z + oz); - case VASCULAR -> vascularBase.noise(x + ox, z + oz); - default -> base.noise(x + ox, z + oz); - }; - } - - @Override - public double noiseSigned(double x, double z) { - return switch (dispatchKind) { - case SIMPLEX -> simplexBase.noiseSigned(x + ox, z + oz); - case PERLIN -> perlinBase.noiseSigned(x + ox, z + oz); - case FRACTAL_FBM_SIMPLEX -> fractalFbmSimplexBase.noiseSigned(x + ox, z + oz); - case VASCULAR -> vascularBase.noiseSigned(x + ox, z + oz); - default -> base.noiseSigned(x + ox, z + oz); - }; - } - - @Override - public double noise(double x, double y, double z) { - return switch (dispatchKind) { - case SIMPLEX -> simplexBase.noise(x + ox, y, z + oz); - case PERLIN -> perlinBase.noise(x + ox, y, z + oz); - case FRACTAL_FBM_SIMPLEX -> fractalFbmSimplexBase.noise(x + ox, y, z + oz); - case VASCULAR -> vascularBase.noise(x + ox, y, z + oz); - default -> base.noise(x + ox, y, z + oz); - }; - } - - @Override - public double noiseSigned(double x, double y, double z) { - return switch (dispatchKind) { - case SIMPLEX -> simplexBase.noiseSigned(x + ox, y, z + oz); - case PERLIN -> perlinBase.noiseSigned(x + ox, y, z + oz); - case FRACTAL_FBM_SIMPLEX -> fractalFbmSimplexBase.noiseSigned(x + ox, y, z + oz); - case VASCULAR -> vascularBase.noiseSigned(x + ox, y, z + oz); - default -> base.noiseSigned(x + ox, y, z + oz); - }; - } - - @Override - public void setOctaves(int octaves) { - if (base instanceof OctaveNoise octaveNoise) { - octaveNoise.setOctaves(octaves); - } - } - - @Override - public boolean isNoScale() { - return base.isNoScale(); - } - - @Override - public boolean isStatic() { - return base.isStatic(); - } - - @NotNull - public NoiseGenerator getBase() { - return base; - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/PatternNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/PatternNoise.java deleted file mode 100644 index 90921892a..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/PatternNoise.java +++ /dev/null @@ -1,40 +0,0 @@ -package art.arcane.iris.util.project.noise; - -abstract class PatternNoise implements NoiseGenerator, OctaveNoise { - private int octaves = 1; - private double bounding = 1D; - - @Override - public final double noise(double x) { - return noise(x, 0D); - } - - @Override - public final double noise(double x, double z) { - return noise(x, 0D, z); - } - - @Override - public final double noise(double x, double y, double z) { - if (octaves == 1) { - return sample(x, y, z); - } - double sum = 0D; - double frequency = 1D; - double amplitude = 1D; - for (int octave = 0; octave < octaves; octave++) { - sum += sample(x * frequency, y * frequency, z * frequency) * amplitude; - frequency *= 2D; - amplitude *= 0.5D; - } - return sum * bounding; - } - - @Override - public final void setOctaves(int octaves) { - this.octaves = Math.clamp(octaves, 1, 16); - bounding = 1D / (2D - Math.scalb(1D, 1 - this.octaves)); - } - - protected abstract double sample(double x, double y, double z); -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/PerlinNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/PerlinNoise.java deleted file mode 100644 index 2718e901c..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/PerlinNoise.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.noise; - -import art.arcane.volmlib.util.math.RNG; - -public class PerlinNoise implements NoiseGenerator, OctaveNoise { - private final FastNoiseDouble n; - private int octaves; - private double octaveBounding = 1D; - - public PerlinNoise(long seed) { - this.n = new FastNoiseDouble(new RNG(seed).lmax()); - n.setLongerp(FastNoiseDouble.Longerp.Qulongic); - octaves = 1; - } - - public double f(double v) { - return (v / 2D) + 0.5D; - } - - @Override - public double noise(double x) { - return f(noiseSigned(x)); - } - - @Override - public double noiseSigned(double x) { - if (octaves == 1) { - return n.GetPerlin(x, 0D); - } - - double frequency = 1D; - double amplitude = 1D; - double value = 0D; - for (int i = 0; i < octaves; i++) { - value += n.GetPerlin(x * frequency, 0D) * amplitude; - frequency *= 2D; - amplitude *= 0.5D; - } - return value * octaveBounding; - } - - @Override - public double noise(double x, double z) { - return f(noiseSigned(x, z)); - } - - @Override - public double noiseSigned(double x, double z) { - if (octaves == 1) { - return n.GetPerlin(x, z); - } - - double frequency = 1D; - double amplitude = 1D; - double value = 0D; - for (int i = 0; i < octaves; i++) { - value += n.GetPerlin(x * frequency, z * frequency) * amplitude; - frequency *= 2D; - amplitude *= 0.5D; - } - return value * octaveBounding; - } - - @Override - public double noise(double x, double y, double z) { - return f(noiseSigned(x, y, z)); - } - - @Override - public double noiseSigned(double x, double y, double z) { - if (octaves == 1) { - return n.GetPerlin(x, y, z); - } - - double frequency = 1D; - double amplitude = 1D; - double value = 0D; - for (int i = 0; i < octaves; i++) { - value += n.GetPerlin(x * frequency, y * frequency, z * frequency) * amplitude; - frequency *= 2D; - amplitude *= 0.5D; - } - return value * octaveBounding; - } - - @Override - public void setOctaves(int octaves) { - this.octaves = Math.max(1, Math.min(16, octaves)); - octaveBounding = 1D / (2D - Math.scalb(1D, 1 - this.octaves)); - } - - public NoiseGenerator hermite() { - n.m_longerp = FastNoiseDouble.Longerp.Hermite; - return this; - } - - public NoiseGenerator quad() { - n.m_longerp = FastNoiseDouble.Longerp.Qulongic; - return this; - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/QuasicrystalNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/QuasicrystalNoise.java deleted file mode 100644 index 1c78abd96..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/QuasicrystalNoise.java +++ /dev/null @@ -1,37 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import java.util.SplittableRandom; - -public final class QuasicrystalNoise extends PatternNoise { - private static final int WAVES = 5; - private static final double TAU = Math.PI * 2D; - - private final double[] waveX = new double[WAVES]; - private final double[] waveZ = new double[WAVES]; - private final double phase; - private final double verticalFrequency; - private final double contourPhase; - - public QuasicrystalNoise(long seed) { - SplittableRandom random = new SplittableRandom(seed); - double rotation = random.nextDouble(TAU); - for (int i = 0; i < WAVES; i++) { - double angle = rotation + i * TAU / WAVES; - waveX[i] = Math.cos(angle) * TAU; - waveZ[i] = Math.sin(angle) * TAU; - } - phase = random.nextDouble(TAU); - verticalFrequency = random.nextDouble(0.3D, 0.7D) * TAU; - contourPhase = random.nextDouble(TAU); - } - - @Override - protected double sample(double x, double y, double z) { - double layerPhase = phase + y * verticalFrequency; - double sum = 0D; - for (int i = 0; i < WAVES; i++) { - sum += Math.cos(x * waveX[i] + z * waveZ[i] + layerPhase); - } - return 0.5D + 0.5D * Math.sin(sum * 1.4D + contourPhase); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/ScalesNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/ScalesNoise.java deleted file mode 100644 index 053a6cfc2..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/ScalesNoise.java +++ /dev/null @@ -1,61 +0,0 @@ -package art.arcane.iris.util.project.noise; - -public final class ScalesNoise extends PatternNoise { - private static final double TAU = Math.PI * 2D; - private static final double RADIUS = 0.5D; - private static final double ROW_HEIGHT = 0.5D; - private static final double GROOVE_WIDTH = 0.055D; - - private final long seed; - private final double phaseX; - private final double phaseZ; - - public ScalesNoise(long seed) { - this.seed = seed; - phaseX = (mix(seed) >>> 11) * 0x1.0p-53D; - phaseZ = (mix(seed + 0x9E3779B97F4A7C15L) >>> 11) * 0x1.0p-53D; - } - - @Override - protected double sample(double x, double y, double z) { - x += phaseX + Math.sin(y * TAU * 0.5D) * 0.22D + y * 0.15D; - z += phaseZ + Math.sin(y * TAU * 0.25D) * 0.12D + y * 0.2D; - long row = (long) Math.floor(z / ROW_HEIGHT); - double groove = 0D; - double shade = 0D; - for (int offsetZ = -1; offsetZ <= 1; offsetZ++) { - long pointZ = row + offsetZ; - double shift = (pointZ & 1L) * 0.5D; - long column = (long) Math.floor(x - shift); - double dz = z - pointZ * ROW_HEIGHT; - for (int offsetX = -1; offsetX <= 1; offsetX++) { - long pointX = column + offsetX; - double dx = x - (pointX + shift); - double radiusSquared = dx * dx + dz * dz; - double distance; - if (dz >= 0D) { - distance = Math.abs(Math.sqrt(radiusSquared) - RADIUS); - } else { - double endpoint = Math.abs(dx) - RADIUS; - distance = Math.sqrt(endpoint * endpoint + dz * dz); - } - double rim = Math.max(0D, 1D - distance / GROOVE_WIDTH); - if (rim > 0D || radiusSquared < RADIUS * RADIUS && dz > 0D) { - long hash = mix(seed ^ pointX * 0x9E3779B97F4A7C15L ^ pointZ * 0xC2B2AE3D27D4EB4FL); - double variation = 0.75D + (hash >>> 11) * 0x1.0p-53D * 0.25D; - groove = Math.max(groove, rim * rim * (3D - 2D * rim) * variation); - double inside = Math.max(0D, 1D - radiusSquared / (RADIUS * RADIUS)); - double rise = Math.clamp(dz / 0.12D, 0D, 1D); - shade = Math.max(shade, inside * rise * rise * (3D - 2D * rise) * variation); - } - } - } - return 0.72D + 0.22D * shade - 0.65D * groove; - } - - private static long mix(long value) { - value = (value ^ (value >>> 30)) * 0xBF58476D1CE4E5B9L; - value = (value ^ (value >>> 27)) * 0x94D049BB133111EBL; - return value ^ (value >>> 31); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/SierpinskiTriangleNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/SierpinskiTriangleNoise.java deleted file mode 100644 index 9eb7eb1ad..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/SierpinskiTriangleNoise.java +++ /dev/null @@ -1,69 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import art.arcane.volmlib.util.math.RNG; - -public class SierpinskiTriangleNoise implements NoiseGenerator, OctaveNoise { - private static final double TRIANGLE_SIDE = 8D; - private static final double INVERSE_HEIGHT = 2D / (Math.sqrt(3D) * TRIANGLE_SIDE); - private static final double HEAT_SCALE = 6D; - private static final int DEPTH = 4; - private final SimplexNoise heat; - - public SierpinskiTriangleNoise(long seed) { - this.heat = new SimplexNoise(new RNG(seed).nextParallelRNG(177L).lmax()); - } - - @Override - public double noise(double x) { - return sample(x, 0D, 0D); - } - - @Override - public double noise(double x, double z) { - return sample(x, 0D, z); - } - - @Override - public double noise(double x, double y, double z) { - return sample(x, y, z); - } - - @Override - public void setOctaves(int octaves) { - heat.setOctaves(octaves); - } - - private boolean contains(double x, double z) { - double v = z * INVERSE_HEIGHT; - double u = (x / TRIANGLE_SIDE) - (v * 0.5D); - u -= Math.floor(u); - v -= Math.floor(v); - - if (u + v > 1D) { - u = 1D - u; - v = 1D - v; - } - - for (int depth = 0; depth < DEPTH; depth++) { - if (u >= 0.5D) { - u = (u * 2D) - 1D; - v *= 2D; - } else if (v >= 0.5D) { - u *= 2D; - v = (v * 2D) - 1D; - } else if (u + v <= 0.5D) { - u *= 2D; - v *= 2D; - } else { - return false; - } - } - - return true; - } - - private double sample(double x, double y, double z) { - double value = heat.noise(x * HEAT_SCALE, y * HEAT_SCALE, z * HEAT_SCALE); - return contains(x, z) ? (value * 0.65D) + 0.35D : value * 0.12D; - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/SimplexNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/SimplexNoise.java deleted file mode 100644 index 22e7379a5..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/SimplexNoise.java +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.noise; - -import art.arcane.volmlib.util.math.RNG; - -public class SimplexNoise implements NoiseGenerator, OctaveNoise { - private final FastNoiseDouble n; - private int octaves; - private double octaveBounding = 1D; - - public SimplexNoise(long seed) { - this.n = new FastNoiseDouble(new RNG(seed).lmax()); - octaves = 1; - } - - public double f(double v) { - return (v / 2D) + 0.5D; - } - - @Override - public double noise(double x) { - return f(noiseSigned(x)); - } - - @Override - public double noiseSigned(double x) { - if (octaves == 1) { - return n.GetSimplex(x, 0D); - } - - double frequency = 1D; - double amplitude = 1D; - double value = 0D; - for (int i = 0; i < octaves; i++) { - value += n.GetSimplex(x * frequency, 0D) * amplitude; - frequency *= 2D; - amplitude *= 0.5D; - } - return value * octaveBounding; - } - - @Override - public double noise(double x, double z) { - return f(noiseSigned(x, z)); - } - - @Override - public double noiseSigned(double x, double z) { - if (octaves == 1) { - return n.GetSimplex(x, z); - } - - double frequency = 1D; - double amplitude = 1D; - double value = 0D; - for (int i = 0; i < octaves; i++) { - value += n.GetSimplex(x * frequency, z * frequency) * amplitude; - frequency *= 2D; - amplitude *= 0.5D; - } - return value * octaveBounding; - } - - @Override - public double noise(double x, double y, double z) { - return f(noiseSigned(x, y, z)); - } - - @Override - public double noiseSigned(double x, double y, double z) { - if (octaves == 1) { - return n.GetSimplex(x, y, z); - } - - double frequency = 1D; - double amplitude = 1D; - double value = 0D; - for (int i = 0; i < octaves; i++) { - value += n.GetSimplex(x * frequency, y * frequency, z * frequency) * amplitude; - frequency *= 2D; - amplitude *= 0.5D; - } - return value * octaveBounding; - } - - @Override - public void setOctaves(int octaves) { - this.octaves = Math.max(1, Math.min(16, octaves)); - octaveBounding = 1D / (2D - Math.scalb(1D, 1 - this.octaves)); - } - -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/StrataNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/StrataNoise.java deleted file mode 100644 index b5ccec2ae..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/StrataNoise.java +++ /dev/null @@ -1,37 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import java.util.SplittableRandom; - -public final class StrataNoise extends PatternNoise { - private static final double TAU = Math.PI * 2D; - - private final double cosine; - private final double sine; - private final double phaseA; - private final double phaseB; - private final double phaseC; - - public StrataNoise(long seed) { - SplittableRandom random = new SplittableRandom(seed); - double angle = random.nextDouble(TAU); - cosine = Math.cos(angle); - sine = Math.sin(angle); - phaseA = random.nextDouble(TAU); - phaseB = random.nextDouble(TAU); - phaseC = random.nextDouble(TAU); - } - - @Override - protected double sample(double x, double y, double z) { - double along = x * cosine + z * sine; - double across = z * cosine - x * sine; - double fold = 1.1D * Math.sin(along * 1.1D + phaseA) - + 0.35D * Math.sin(along * 2.7D + across * 0.8D + phaseB + y * 0.4D) - + 0.2D * Math.sin(across * 1.7D + y * 0.9D + phaseC); - double layer = TAU * (across + y * 0.75D + fold); - double thickness = layer + 0.55D * Math.sin(layer * 0.25D + phaseB); - double broadBand = 0.5D + 0.5D * Math.sin(thickness); - double lamina = 0.5D + 0.5D * Math.sin(thickness * 3D + phaseC); - return 0.82D * broadBand + 0.18D * lamina; - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/TruchetNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/TruchetNoise.java deleted file mode 100644 index 2c4fb2913..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/TruchetNoise.java +++ /dev/null @@ -1,49 +0,0 @@ -package art.arcane.iris.util.project.noise; - -public final class TruchetNoise extends PatternNoise { - private static final double RIBBON_WIDTH = 0.075D; - private static final double HEIGHT_FREQUENCY = Math.PI * 0.25D; - - private final long seed; - private final double phaseX; - private final double phaseZ; - - public TruchetNoise(long seed) { - this.seed = seed; - phaseX = 0.17D + (mix(seed) >>> 11) * 0x1.0p-53D * 0.61D; - phaseZ = 0.13D + (mix(seed + 0x9E3779B97F4A7C15L) >>> 11) * 0x1.0p-53D * 0.73D; - } - - @Override - protected double sample(double x, double y, double z) { - x += phaseX; - z += phaseZ; - if (y != 0D) { - double angle = y * HEIGHT_FREQUENCY; - x += Math.sin(angle) * 0.3D + y * 0.125D; - z += (Math.cos(angle) - 1D) * 0.3D; - } - - long cellX = (long) Math.floor(x); - long cellZ = (long) Math.floor(z); - double localX = x - cellX; - double localZ = z - cellZ; - long orientation = mix(seed ^ cellX * 0x9E3779B97F4A7C15L ^ cellZ * 0xC2B2AE3D27D4EB4FL); - if ((orientation & 1L) != 0L) { - localX = 1D - localX; - } - - double oppositeX = 1D - localX; - double oppositeZ = 1D - localZ; - double first = Math.abs(Math.sqrt(localX * localX + localZ * localZ) - 0.5D); - double second = Math.abs(Math.sqrt(oppositeX * oppositeX + oppositeZ * oppositeZ) - 0.5D); - double ribbon = Math.max(0D, 1D - Math.min(first, second) / RIBBON_WIDTH); - return ribbon * ribbon * (3D - 2D * ribbon); - } - - private static long mix(long value) { - value = (value ^ (value >>> 30)) * 0xBF58476D1CE4E5B9L; - value = (value ^ (value >>> 27)) * 0x94D049BB133111EBL; - return value ^ (value >>> 31); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/VascularNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/VascularNoise.java deleted file mode 100644 index 8b18d3c88..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/VascularNoise.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.noise; - -import art.arcane.volmlib.util.math.RNG; - -public class VascularNoise implements NoiseGenerator { - private final FastNoiseDouble n; - - public VascularNoise(long seed) { - this.n = new FastNoiseDouble(new RNG(seed).lmax()); - n.setNoiseType(FastNoiseDouble.NoiseType.Cellular); - n.setCellularReturnType(FastNoiseDouble.CellularReturnType.Distance2Sub); - n.setCellularDistanceFunction(FastNoiseDouble.CellularDistanceFunction.Natural); - } - - private double filter(double noise) { - double normalized = 0.5D - noise * 0.5D; - if (normalized < 0D) { - return 0D; - } - - return normalized > 1D ? 1D : normalized; - } - - private double filterSigned(double noise) { - noise = -noise; - if (noise < -1D) { - return -1D; - } - - return noise > 1D ? 1D : noise; - } - - @Override - public double noise(double x) { - return filter(n.GetCellular(x, 0)); - } - - @Override - public double noiseSigned(double x) { - return filterSigned(n.GetCellular(x, 0D)); - } - - @Override - public double noise(double x, double z) { - return filter(n.GetCellular(x, z)); - } - - @Override - public double noiseSigned(double x, double z) { - return filterSigned(n.GetCellular(x, z)); - } - - @Override - public double noise(double x, double y, double z) { - return filter(n.GetCellular(x, y, z)); - } - - @Override - public double noiseSigned(double x, double y, double z) { - return filterSigned(n.GetCellular(x, y, z)); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/VortexNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/VortexNoise.java deleted file mode 100644 index c3e21ace3..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/VortexNoise.java +++ /dev/null @@ -1,63 +0,0 @@ -package art.arcane.iris.util.project.noise; - -public final class VortexNoise extends PatternNoise { - private static final double RADIUS = 0.9D; - private static final double RADIUS_SQUARED = RADIUS * RADIUS; - private static final double TAU = Math.PI * 2D; - - private final long seed; - - public VortexNoise(long seed) { - this.seed = seed; - } - - @Override - protected double sample(double x, double y, double z) { - long cellX = (long) Math.floor(x); - long cellZ = (long) Math.floor(z); - double sum = 0D; - double weightSum = 0.07D; - for (int offsetX = -1; offsetX <= 1; offsetX++) { - long gridX = cellX + offsetX; - for (int offsetZ = -1; offsetZ <= 1; offsetZ++) { - long gridZ = cellZ + offsetZ; - long hash = hash(gridX, gridZ); - double dx = x - (gridX + 0.2D + unit(hash) * 0.6D); - hash = mix(hash); - double dz = z - (gridZ + 0.2D + unit(hash) * 0.6D); - double radiusSquared = dx * dx + dz * dz; - if (radiusSquared >= RADIUS_SQUARED) { - continue; - } - double radius = Math.sqrt(radiusSquared); - double envelope = 1D - radiusSquared / RADIUS_SQUARED; - double weight = envelope * envelope; - hash = mix(hash); - int arms = 2 + (int) (hash & 1L); - int direction = (hash & 2L) == 0L ? -1 : 1; - double phase = TAU * unit(hash); - hash = mix(hash); - double winding = 12D + unit(hash) * 4D; - double wave = Math.sin(direction * arms * Math.atan2(dz, dx) - - winding * radius + phase + y * TAU * 0.5D); - sum += weight * radius / (radius + 0.06D) * wave; - weightSum += weight; - } - } - return 0.5D + 0.5D * sum / weightSum; - } - - private long hash(long x, long z) { - return mix(seed ^ x * 0x9E3779B97F4A7C15L ^ z * 0xD1B54A32D192ED03L); - } - - private static long mix(long value) { - value = (value ^ (value >>> 30)) * 0xBF58476D1CE4E5B9L; - value = (value ^ (value >>> 27)) * 0x94D049BB133111EBL; - return value ^ (value >>> 31); - } - - private static double unit(long value) { - return (value >>> 11) * 0x1.0p-53; - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/WhiteNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/WhiteNoise.java deleted file mode 100644 index 717262401..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/WhiteNoise.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.noise; - -public class WhiteNoise implements NoiseGenerator { - private final FastNoiseDouble n; - - public WhiteNoise(long seed) { - n = new FastNoiseDouble(seed); - } - - public boolean isStatic() { - return true; - } - - public boolean isNoScale() { - return true; - } - - @Override - public double noise(double x) { - return (n.GetWhiteNoise(x, 0d) / 2D) + 0.5D; - } - - @Override - public double noise(double x, double z) { - return (n.GetWhiteNoise(x, z) / 2D) + 0.5D; - } - - @Override - public double noise(double x, double y, double z) { - return (n.GetWhiteNoise(x, y, z) / 2D) + 0.5D; - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/WoodNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/WoodNoise.java deleted file mode 100644 index 4791f0822..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/noise/WoodNoise.java +++ /dev/null @@ -1,56 +0,0 @@ -package art.arcane.iris.util.project.noise; - -public final class WoodNoise extends PatternNoise { - private static final double TAU = Math.PI * 2D; - - private final long seed; - private final double cosine; - private final double sine; - private final double phase; - - public WoodNoise(long seed) { - this.seed = seed; - phase = (mix(seed) >>> 11) * 0x1.0p-53D * TAU; - cosine = Math.cos(phase); - sine = Math.sin(phase); - } - - @Override - protected double sample(double x, double y, double z) { - double along = (z * cosine - x * sine) * 0.45D + y * 0.17D; - double across = x * cosine + z * sine + y * 0.07D + 0.11D * Math.sin(along * 0.85D + phase); - double grainPhase = across * TAU * 3D + 0.18D * Math.sin(along * 2.1D + phase); - double value = 0.12D * (0.5D + 0.5D * Math.sin(grainPhase)); - double weightSum = 0.12D; - long cellAcross = (long) Math.floor(across); - long cellAlong = (long) Math.floor(along); - for (int offsetAcross = -1; offsetAcross <= 1; offsetAcross++) { - long gridAcross = cellAcross + offsetAcross; - for (int offsetAlong = -1; offsetAlong <= 1; offsetAlong++) { - long gridAlong = cellAlong + offsetAlong; - long hash = mix(seed ^ gridAcross * 0x9E3779B97F4A7C15L ^ gridAlong * 0xD1B54A32D192ED03L); - double deltaAcross = across - (gridAcross + 0.3D + (hash & 65535L) * (0.4D / 65535D)); - double deltaAlong = along - (gridAlong + 0.3D + ((hash >>> 16) & 65535L) * (0.4D / 65535D)); - double radius = 0.5D + ((hash >>> 32) & 255L) * (0.12D / 255D); - double distanceSquared = deltaAcross * deltaAcross + deltaAlong * deltaAlong; - double envelope = 1D - distanceSquared / (radius * radius); - if (envelope <= 0D) { - continue; - } - double rings = Math.sqrt(distanceSquared + 0.0004D) * TAU * 5D; - double ringPhase = ((hash >>> 40) & 65535L) * (TAU / 65535D); - double knot = 0.5D + 0.5D * Math.sin(rings + ringPhase); - double weight = 3D * envelope * envelope; - value += knot * weight; - weightSum += weight; - } - } - return value / weightSum; - } - - private static long mix(long value) { - value = (value ^ (value >>> 30)) * 0xBF58476D1CE4E5B9L; - value = (value ^ (value >>> 27)) * 0x94D049BB133111EBL; - return value ^ (value >>> 31); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/BasicStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/BasicStream.java deleted file mode 100644 index bbb47757a..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/BasicStream.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream; - -import art.arcane.volmlib.util.stream.BasicLayer; -public abstract class BasicStream extends BasicLayer implements ProceduralStream { - private final ProceduralStream source; - - public BasicStream(ProceduralStream source) { - super(); - this.source = source; - } - - public BasicStream() { - this(null); - } - - - @Override - public ProceduralStream getTypedSource() { - return source; - } - - @Override - public ProceduralStream getSource() { - return getTypedSource(); - } - - @Override - public abstract T get(double x, double z); - - @Override - public abstract T get(double x, double y, double z); - - @Override - public abstract double toDouble(T t); - - @Override - public abstract T fromDouble(double d); -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/ProceduralStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/ProceduralStream.java deleted file mode 100644 index d0c9567f5..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/ProceduralStream.java +++ /dev/null @@ -1,601 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream; - -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.data.cache.Cache; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IRare; -import art.arcane.iris.engine.object.IrisStyledRange; -import art.arcane.iris.spi.IrisLogging; -import art.arcane.volmlib.util.collection.KList; -import art.arcane.volmlib.util.stream.ProceduralLayer; -import art.arcane.volmlib.util.stream.Significance; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.volmlib.util.function.Function2; -import art.arcane.volmlib.util.function.Function3; -import art.arcane.volmlib.util.function.Function4; -import art.arcane.iris.util.project.hunk.Hunk; -import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.common.parallel.BurstExecutor; -import art.arcane.iris.util.common.parallel.MultiBurst; -import art.arcane.iris.util.project.stream.arithmetic.AddingStream; -import art.arcane.iris.util.project.stream.arithmetic.ClampedStream; -import art.arcane.iris.util.project.stream.arithmetic.CoordinateBitShiftLeftStream; -import art.arcane.iris.util.project.stream.arithmetic.CoordinateBitShiftRightStream; -import art.arcane.iris.util.project.stream.arithmetic.DividingStream; -import art.arcane.iris.util.project.stream.arithmetic.FittedStream; -import art.arcane.iris.util.project.stream.arithmetic.MaxingStream; -import art.arcane.iris.util.project.stream.arithmetic.MinningStream; -import art.arcane.iris.util.project.stream.arithmetic.ModuloStream; -import art.arcane.iris.util.project.stream.arithmetic.MultiplyingStream; -import art.arcane.iris.util.project.stream.arithmetic.OffsetStream; -import art.arcane.iris.util.project.stream.arithmetic.RadialStream; -import art.arcane.iris.util.project.stream.arithmetic.RoundingDoubleStream; -import art.arcane.iris.util.project.stream.arithmetic.SlopeStream; -import art.arcane.iris.util.project.stream.arithmetic.SubtractingStream; -import art.arcane.iris.util.project.stream.arithmetic.ZoomStream; -import art.arcane.iris.util.project.stream.convert.AwareConversionStream2D; -import art.arcane.iris.util.project.stream.convert.AwareConversionStream3D; -import art.arcane.iris.util.project.stream.convert.CachedConversionStream; -import art.arcane.iris.util.project.stream.convert.ConversionStream; -import art.arcane.iris.util.project.stream.convert.ForceDoubleStream; -import art.arcane.iris.util.project.stream.convert.RoundingStream; -import art.arcane.iris.util.project.stream.convert.SelectionStream; -import art.arcane.iris.util.project.stream.convert.SignificanceStream; -import art.arcane.iris.util.project.stream.convert.To3DStream; -import art.arcane.iris.util.project.stream.interpolation.Interpolated; -import art.arcane.iris.util.project.stream.sources.FunctionStream; -import art.arcane.iris.util.project.stream.utility.CachedDoubleStream2D; -import art.arcane.iris.util.project.stream.utility.CachedStream2D; -import art.arcane.iris.util.project.stream.utility.CachedStream3D; -import art.arcane.iris.util.project.stream.utility.ContextInjectingStream; -import art.arcane.iris.util.project.stream.utility.NullSafeStream; -import art.arcane.iris.util.project.stream.utility.SynchronizedStream; - -import java.util.ArrayList; -import java.util.List; -import java.util.function.Function; - -@SuppressWarnings("ALL") -public interface ProceduralStream extends ProceduralLayer, Interpolated { - static ProceduralStream ofDouble(Function2 f) { - try { - return of(f, Interpolated.DOUBLE); - } catch (IncompatibleClassChangeError e) { - IrisLogging.warn(f.toString()); - IrisLogging.reportError(e); - return null; - } - } - - static ProceduralStream ofDouble(Function3 f) { - return of(f, Interpolated.DOUBLE); - } - - static ProceduralStream of(Function2 f, Interpolated helper) { - return of(f, (x, y, z) -> f.apply(x, z), helper); - } - - static ProceduralStream of(Function3 f, Interpolated helper) { - return of((x, z) -> f.apply(x, 0D, z), f, helper); - } - - static ProceduralStream of(Function2 f, Function3 f2, Interpolated helper) { - return new FunctionStream<>(f, f2, helper); - } - - default ProceduralStream chance(double chance) { - return of((x, z) -> getDouble(x, z) < chance, Interpolated.BOOLEAN); - } - - default ProceduralStream seededChance(RNG brng, long rootSeed, double chance) { - RNG rng = brng.nextParallelRNG(rootSeed - 3995L); - return of((x, z) -> { - double ch = getDouble(x, z); - rng.setSeed((long) (ch * Long.MAX_VALUE)); - return rng.chance(chance); - }, Interpolated.BOOLEAN); - } - - default ProceduralStream onNull(T v) { - return new NullSafeStream<>(this, v); - } - - default ProceduralStream add(Function3 a) { - return new AddingStream<>(this, a); - } - - default ProceduralStream add(Function2 a) { - return new AddingStream<>(this, a); - } - - default ProceduralStream contextInjecting(Function3 contextAccessor) { - //return this; - return new ContextInjectingStream<>(this, contextAccessor); - } - - default ProceduralStream contextInjecting(Engine engine, Function3 contextAccessor) { - return new ContextInjectingStream<>(this, engine, contextAccessor); - } - - default ProceduralStream add(ProceduralStream a) { - return add2D((x, z) -> a.get(x, z)); - } - - default ProceduralStream subtract(ProceduralStream a) { - return subtract2D((x, z) -> a.get(x, z)); - } - - default ProceduralStream add2D(Function2 a) { - return new AddingStream<>(this, a); - } - - default ProceduralStream subtract2D(Function2 a) { - return new SubtractingStream(this, a); - } - - default ProceduralStream add(double a) { - return new AddingStream<>(this, a); - } - - default ProceduralStream blockToChunkCoords() { - return bitShiftCoordsRight(4); - } - - default ProceduralStream chunkToRegionCoords() { - return bitShiftCoordsRight(5); - } - - default ProceduralStream blockToRegionCoords() { - return blockToChunkCoords().chunkToRegionCoords(); - } - - default ProceduralStream regionToBlockCoords() { - return regionToChunkCoords().chunkToBlockCoords(); - } - - default ProceduralStream regionToChunkCoords() { - return bitShiftCoordsLeft(5); - } - - default ProceduralStream chunkToBlockCoords() { - return bitShiftCoordsLeft(4); - } - - default ProceduralStream bitShiftCoordsRight(int a) { - return new CoordinateBitShiftRightStream<>(this, a); - } - - default ProceduralStream synchronize() { - return new SynchronizedStream<>(this); - } - - default ProceduralStream bitShiftCoordsLeft(int a) { - return new CoordinateBitShiftLeftStream<>(this, a); - } - - default ProceduralStream max(Function3 a) { - return new MaxingStream<>(this, a); - } - - default ProceduralStream max(Function2 a) { - return new MaxingStream<>(this, a); - } - - default ProceduralStream slope() { - return slope(1); - } - - default ProceduralStream slope(int range) { - return new SlopeStream<>(this, range); - } - - default ProceduralStream max(double a) { - return new MaxingStream<>(this, a); - } - - default ProceduralStream min(Function3 a) { - return new MinningStream<>(this, a); - } - - default ProceduralStream min(Function2 a) { - return new MinningStream<>(this, a); - } - - default ProceduralStream min(double a) { - return new MinningStream<>(this, a); - } - - default ProceduralStream subtract(Function3 a) { - return new SubtractingStream<>(this, a); - } - - default ProceduralStream subtract(Function2 a) { - return new SubtractingStream<>(this, a); - } - - default ProceduralStream subtract(double a) { - return new SubtractingStream<>(this, a); - } - - default ProceduralStream multiply(Function3 a) { - return new MultiplyingStream<>(this, a); - } - - default ProceduralStream multiply(Function2 a) { - return new MultiplyingStream<>(this, a); - } - - default ProceduralStream multiply(double a) { - return new MultiplyingStream<>(this, a); - } - - default ProceduralStream divide(Function3 a) { - return new DividingStream<>(this, a); - } - - default ProceduralStream divide(Function2 a) { - return new DividingStream<>(this, a); - } - - default ProceduralStream divide(double a) { - return new DividingStream<>(this, a); - } - - default ProceduralStream modulo(Function3 a) { - return new ModuloStream<>(this, a); - } - - default ProceduralStream modulo(Function2 a) { - return new ModuloStream<>(this, a); - } - - default ProceduralStream modulo(double a) { - return new ModuloStream<>(this, a); - } - - default ProceduralStream round() { - return new RoundingStream(this); - } - - default ProceduralStream roundDouble() { - return new RoundingDoubleStream(this); - } - - default ProceduralStream forceDouble() { - return new ForceDoubleStream(this); - } - - default ProceduralStream> significance(double radius, int checks) { - return new SignificanceStream, T>(this, radius, checks); - } - - default ProceduralStream to3D() { - return new To3DStream(this); - } - - default CachedStream2D cache2D(String name, Engine engine, int size) { - return new CachedStream2D(name, engine, this, size); - } - - @SuppressWarnings("unchecked") - default ProceduralStream cache2DDouble(String name, Engine engine, int size) { - return new CachedDoubleStream2D(name, engine, (ProceduralStream) this, size); - } - - default ProceduralStream cache3D(String name, Engine engine, int maxSize) { - return new CachedStream3D(name, engine, this, maxSize); - } - - default ProceduralStream convert(Function converter) { - return new ConversionStream(this, converter); - } - - default ProceduralStream convertAware2D(Function3 converter) { - return new AwareConversionStream2D(this, converter); - } - - default ProceduralStream convertAware3D(Function4 converter) { - return new AwareConversionStream3D(this, converter); - } - - default ProceduralStream convertCached(Function converter) { - return new CachedConversionStream(this, converter); - } - - default ProceduralStream offset(double x, double y, double z) { - return new OffsetStream(this, x, y, z); - } - - default ProceduralStream offset(double x, double z) { - return new OffsetStream(this, x, 0, z); - } - - default ProceduralStream zoom(double x, double y, double z) { - return new ZoomStream(this, x, y, z); - } - - default ProceduralStream zoom(double x, double z) { - return new ZoomStream(this, x, 1, z); - } - - default ProceduralStream zoom(double all) { - return new ZoomStream(this, all, all, all); - } - - default ProceduralStream radial(double scale) { - return new RadialStream<>(this, scale); - } - - default ProceduralStream radial() { - return radial(1D); - } - - default ProceduralStream select(V... types) { - return new SelectionStream(this, types); - } - - default ProceduralStream select(List types) { - return new SelectionStream(this, types); - } - - @SuppressWarnings("unchecked") - default ProceduralStream selectRarity(V... types) { - KList rarityTypes = new KList<>(); - int totalRarity = 0; - for (V i : types) { - totalRarity += IRare.get(i); - } - - for (V i : types) { - rarityTypes.addMultiple(i, totalRarity / IRare.get(i)); - } - - return new SelectionStream(this, rarityTypes); - } - - default ProceduralStream selectRarity(List types) { - return IRare.stream(this.forceDouble(), types); - } - - default ProceduralStream selectRarity(List types, Function loader) { - List r = new ArrayList<>(); - for (V f : types) { - r.add(loader.apply(f)); - } - return selectRarity(r); - } - - default int countPossibilities(List types, Function loader) { - KList rarityTypes = new KList<>(); - int totalRarity = 0; - for (V i : types) { - totalRarity += IRare.get(loader.apply(i)); - } - - for (V i : types) { - rarityTypes.addMultiple(i, totalRarity / IRare.get(loader.apply(i))); - } - - return rarityTypes.size(); - } - - default ProceduralStream clamp(double min, double max) { - return new ClampedStream(this, min, max); - } - - default ProceduralStream fit(double min, double max) { - return new FittedStream(this, min, max); - } - - default ProceduralStream style(RNG rng, IrisStyledRange range, IrisData data) { - return ProceduralStream.of((x, z) -> { - double d = getDouble(x, z); - return range.get(rng, d, -d, data); - }, Interpolated.DOUBLE); - } - - default Hunk fastFill2DParallel(int x, int z) { - Hunk hunk = Hunk.newAtomicHunk(16, 16, 1); - BurstExecutor e = MultiBurst.burst.burst(256); - int i, j; - - for (i = 0; i < 16; i++) { - for (j = 0; j < 16; j++) { - int fi = i; - int fj = j; - e.queue(() -> hunk.setRaw(fi, fj, 0, get(x + fi, z + fj))); - } - } - - e.complete(); - return hunk; - } - - default void fastFill2DParallel(Hunk hunk, BurstExecutor e, int x, int z) { - int i, j; - - for (i = 0; i < 16; i++) { - for (j = 0; j < 16; j++) { - int fi = i; - int fj = j; - e.queue(() -> hunk.setRaw(fi, fj, 0, get(x + fi, z + fj))); - } - } - } - - default Hunk fastFill2D(int x, int z) { - Hunk hunk = Hunk.newArrayHunk(16, 16, 1); - int i, j; - - for (i = 0; i < 16; i++) { - for (j = 0; j < 16; j++) { - hunk.setRaw(i, j, 0, get(x + i, z + j)); - } - } - - return hunk; - } - - default ProceduralStream fit(double inMin, double inMax, double min, double max) { - return new FittedStream(this, inMin, inMax, min, max); - } - - default void fill(Hunk h, double x, double y, double z, int parallelism) { - h.compute3D(parallelism, (xx, yy, zz, hh) -> hh.iterate((xv, yv, zv) -> hh.set(xv, yv, zv, get(xx + xv + x, yy + yv + y, zz + zv + z)))); - } - - default void fill2D(Hunk h, double x, double z, V v, int parallelism) { - h.compute2D(parallelism, (xx, __, zz, hh) -> - { - for (int i = 0; i < hh.getWidth(); i++) { - for (int k = 0; k < hh.getDepth(); k++) { - double n = getDouble(i + x + xx, k + z + zz); - - for (int j = 0; j < Math.min(h.getHeight(), n); j++) { - hh.set(i, j, k, v); - } - } - } - }); - } - - default void fill2D(Hunk h, double x, double z, ProceduralStream v, int parallelism) { - h.compute2D(parallelism, (xx, yy, zz, hh) -> - { - for (int i = 0; i < hh.getWidth(); i++) { - for (int k = 0; k < hh.getDepth(); k++) { - double n = getDouble(i + x + xx, k + z + zz); - - for (int j = 0; j < Math.min(h.getHeight(), n); j++) { - hh.set(i, j, k, v.get(i + x + xx, j + yy, k + z + zz)); - } - } - } - }); - } - - default void fill2DYLocked(Hunk h, double x, double z, V v, int parallelism) { - h.compute2D(parallelism, (xx, yy, zz, hh) -> - { - for (int i = 0; i < hh.getWidth(); i++) { - for (int k = 0; k < hh.getDepth(); k++) { - double n = getDouble(i + x + xx, k + z + zz); - - for (int j = 0; j < Math.min(h.getHeight(), n); j++) { - hh.set(i, j, k, v); - } - } - } - }); - } - - default void fill2DYLocked(Hunk h, double x, double z, ProceduralStream v, int parallelism) { - h.compute2D(parallelism, (xx, yy, zz, hh) -> - { - for (int i = 0; i < hh.getWidth(); i++) { - for (int k = 0; k < hh.getDepth(); k++) { - double n = getDouble(i + x + xx, k + z + zz); - - for (int j = 0; j < Math.min(h.getHeight(), n); j++) { - hh.set(i, j, k, v.get(i + x + xx, k + z + zz)); - } - } - } - }); - } - - default void fill3D(Hunk h, double x, int y, double z, V v, int parallelism) { - h.compute3D(parallelism, (xx, yy, zz, hh) -> hh.iterate((xv, yv, zv) -> - { - if (getDouble(xx + xv + x, yy + yv + y, zz + zv + z) > 0.5) { - hh.set(xv, yv, zv, v); - } - })); - } - - default void fill3D(Hunk h, double x, int y, double z, ProceduralStream v, int parallelism) { - h.compute3D(parallelism, (xx, yy, zz, hh) -> hh.iterate((xv, yv, zv) -> - { - if (getDouble(xx + xv + x, yy + yv + y, zz + zv + z) > 0.5) { - hh.set(xv, yv, zv, v.get(xx + xv + x, yy + yv + y, zz + zv + z)); - } - })); - } - - default void fill(Hunk h, double x, double y, double z) { - fill(h, x, y, z, 4); - } - - default void fill2D(Hunk h, double x, double z, V v) { - fill2D(h, x, z, v, 4); - } - - default void fill2D(Hunk h, double x, double z, ProceduralStream v) { - fill2D(h, x, z, v, 4); - } - - default void fill2DYLocked(Hunk h, double x, double z, V v) { - fill2DYLocked(h, x, z, v, 4); - } - - default void fill2DYLocked(Hunk h, double x, double z, ProceduralStream v) { - fill2DYLocked(h, x, z, v, 4); - } - - default void fill3D(Hunk h, double x, int y, double z, V v) { - fill3D(h, x, y, z, v, 4); - } - - default void fill3D(Hunk h, double x, int y, double z, ProceduralStream v) { - fill3D(h, x, y, z, v, 4); - } - - default double getDouble(double x, double z) { - return toDouble(get(x, z)); - } - - default double getDouble(double x, double y, double z) { - return toDouble(get(x, y, z)); - } - - ProceduralStream getTypedSource(); - - ProceduralStream getSource(); - - default void fillChunk(int x, int z, T[] c) { - if (c.length != 256) { - throw new RuntimeException("Not 256 Length for chunk get"); - } - - int xs = x << 4; - int zs = z << 4; - - for (int i = 0; i < 16; i++) { - for (int j = 0; j < 16; j++) { - c[Cache.to1D(i, j, 0, 16, 16)] = get(i + xs, j + zs); - } - } - } - - T get(double x, double z); - - T get(double x, double y, double z); -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/AddingStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/AddingStream.java deleted file mode 100644 index d54560698..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/AddingStream.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.arithmetic; - -import art.arcane.volmlib.util.function.Function2; -import art.arcane.volmlib.util.function.Function3; -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class AddingStream extends BasicStream { - private final Function3 add; - - public AddingStream(ProceduralStream stream, Function3 add) { - super(stream); - this.add = add; - } - - public AddingStream(ProceduralStream stream, Function2 add) { - this(stream, (x, y, z) -> add.apply(x, z)); - } - - public AddingStream(ProceduralStream stream, double add) { - this(stream, (x, y, z) -> add); - } - - @Override - public double toDouble(T t) { - return getTypedSource().toDouble(t); - } - - @Override - public T fromDouble(double d) { - return getTypedSource().fromDouble(d); - } - - @Override - public T get(double x, double z) { - return fromDouble(add.apply(x, 0D, z) + getTypedSource().getDouble(x, z)); - } - - @Override - public T get(double x, double y, double z) { - return fromDouble(add.apply(x, y, z) + getTypedSource().getDouble(x, y, z)); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ClampedStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ClampedStream.java deleted file mode 100644 index 2e8f2f5fd..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ClampedStream.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.arithmetic; - -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class ClampedStream extends BasicStream implements ProceduralStream { - private final double min; - private final double max; - - public ClampedStream(ProceduralStream stream, double min, double max) { - super(stream); - this.min = min; - this.max = max; - } - - @Override - public double toDouble(T t) { - return getTypedSource().toDouble(t); - } - - @Override - public T fromDouble(double d) { - return getTypedSource().fromDouble(d); - } - - private double clamp(double v) { - return Math.max(Math.min(v, max), min); - } - - @Override - public T get(double x, double z) { - return fromDouble(clamp(getTypedSource().getDouble(x, z))); - } - - @Override - public T get(double x, double y, double z) { - return fromDouble(clamp(getTypedSource().getDouble(x, y, z))); - } - -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/CoordinateBitShiftLeftStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/CoordinateBitShiftLeftStream.java deleted file mode 100644 index 2ea25f89f..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/CoordinateBitShiftLeftStream.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.arithmetic; - -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class CoordinateBitShiftLeftStream extends BasicStream implements ProceduralStream { - private final int amount; - - public CoordinateBitShiftLeftStream(ProceduralStream stream, int amount) { - super(stream); - this.amount = amount; - } - - @Override - public double toDouble(T t) { - return getTypedSource().toDouble(t); - } - - @Override - public T fromDouble(double d) { - return getTypedSource().fromDouble(d); - } - - @Override - public T get(double x, double z) { - return getTypedSource().get((int) x << amount, (int) z << amount); - } - - @Override - public T get(double x, double y, double z) { - return getTypedSource().get((int) x << amount, (int) y << amount, (int) z << amount); - } - -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/CoordinateBitShiftRightStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/CoordinateBitShiftRightStream.java deleted file mode 100644 index b5a68edc0..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/CoordinateBitShiftRightStream.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.arithmetic; - -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class CoordinateBitShiftRightStream extends BasicStream implements ProceduralStream { - private final int amount; - - public CoordinateBitShiftRightStream(ProceduralStream stream, int amount) { - super(stream); - this.amount = amount; - } - - @Override - public double toDouble(T t) { - return getTypedSource().toDouble(t); - } - - @Override - public T fromDouble(double d) { - return getTypedSource().fromDouble(d); - } - - @Override - public T get(double x, double z) { - return getTypedSource().get((int) x >> amount, (int) z >> amount); - } - - @Override - public T get(double x, double y, double z) { - return getTypedSource().get((int) x >> amount, (int) y >> amount, (int) z >> amount); - } - -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/DividingStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/DividingStream.java deleted file mode 100644 index 3c897710e..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/DividingStream.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.arithmetic; - -import art.arcane.volmlib.util.function.Function2; -import art.arcane.volmlib.util.function.Function3; -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class DividingStream extends BasicStream implements ProceduralStream { - private final Function3 add; - - public DividingStream(ProceduralStream stream, Function3 add) { - super(stream); - this.add = add; - } - - public DividingStream(ProceduralStream stream, Function2 add) { - this(stream, (x, y, z) -> add.apply(x, z)); - } - - public DividingStream(ProceduralStream stream, double add) { - this(stream, (x, y, z) -> add); - } - - @Override - public double toDouble(T t) { - return getTypedSource().toDouble(t); - } - - @Override - public T fromDouble(double d) { - return getTypedSource().fromDouble(d); - } - - @Override - public T get(double x, double z) { - return fromDouble(getTypedSource().getDouble(x, z) / add.apply(x, 0D, z)); - } - - @Override - public T get(double x, double y, double z) { - return fromDouble(getTypedSource().getDouble(x, y, z) / add.apply(x, y, z)); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/FittedStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/FittedStream.java deleted file mode 100644 index 7028a91e4..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/FittedStream.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.arithmetic; - -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class FittedStream extends BasicStream implements ProceduralStream { - private final double min; - private final double max; - private final double inMin; - private final double inMax; - - public FittedStream(ProceduralStream stream, double inMin, double inMax, double min, double max) { - super(stream); - this.inMin = inMin; - this.inMax = inMax; - this.min = min; - this.max = max; - } - - public FittedStream(ProceduralStream stream, double min, double max) { - this(stream, 0, 1, min, max); - } - - @Override - public double toDouble(T t) { - return getTypedSource().toDouble(t); - } - - @Override - public T fromDouble(double d) { - return getTypedSource().fromDouble(d); - } - - private double dlerp(double v) { - return min + ((max - min) * ((v - inMin) / (inMax - inMin))); - } - - @Override - public T get(double x, double z) { - return fromDouble(dlerp(getTypedSource().getDouble(x, z))); - } - - @Override - public T get(double x, double y, double z) { - return fromDouble(dlerp(getTypedSource().getDouble(x, y, z))); - } - -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MaxingStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MaxingStream.java deleted file mode 100644 index f18e4950b..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MaxingStream.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.arithmetic; - -import art.arcane.volmlib.util.function.Function2; -import art.arcane.volmlib.util.function.Function3; -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class MaxingStream extends BasicStream { - private final Function3 add; - - public MaxingStream(ProceduralStream stream, Function3 add) { - super(stream); - this.add = add; - } - - public MaxingStream(ProceduralStream stream, Function2 add) { - this(stream, (x, y, z) -> add.apply(x, z)); - } - - public MaxingStream(ProceduralStream stream, double add) { - this(stream, (x, y, z) -> add); - } - - @Override - public double toDouble(T t) { - return getTypedSource().toDouble(t); - } - - @Override - public T fromDouble(double d) { - return getTypedSource().fromDouble(d); - } - - @Override - public T get(double x, double z) { - return fromDouble(Math.max(add.apply(x, 0D, z), getTypedSource().getDouble(x, z))); - } - - @Override - public T get(double x, double y, double z) { - return fromDouble(Math.max(add.apply(x, y, z), getTypedSource().getDouble(x, y, z))); - } - -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MinningStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MinningStream.java deleted file mode 100644 index 6d704fc50..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MinningStream.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.arithmetic; - -import art.arcane.volmlib.util.function.Function2; -import art.arcane.volmlib.util.function.Function3; -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class MinningStream extends BasicStream { - private final Function3 add; - - public MinningStream(ProceduralStream stream, Function3 add) { - super(stream); - this.add = add; - } - - public MinningStream(ProceduralStream stream, Function2 add) { - this(stream, (x, y, z) -> add.apply(x, z)); - } - - public MinningStream(ProceduralStream stream, double add) { - this(stream, (x, y, z) -> add); - } - - @Override - public double toDouble(T t) { - return getTypedSource().toDouble(t); - } - - @Override - public T fromDouble(double d) { - return getTypedSource().fromDouble(d); - } - - @Override - public T get(double x, double z) { - return fromDouble(Math.min(add.apply(x, 0D, z), getTypedSource().getDouble(x, z))); - } - - @Override - public T get(double x, double y, double z) { - return fromDouble(Math.min(add.apply(x, y, z), getTypedSource().getDouble(x, y, z))); - } - -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ModuloStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ModuloStream.java deleted file mode 100644 index 98d0c19e6..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ModuloStream.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.arithmetic; - -import art.arcane.volmlib.util.function.Function2; -import art.arcane.volmlib.util.function.Function3; -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class ModuloStream extends BasicStream { - private final Function3 add; - - public ModuloStream(ProceduralStream stream, Function3 add) { - super(stream); - this.add = add; - } - - public ModuloStream(ProceduralStream stream, Function2 add) { - this(stream, (x, y, z) -> add.apply(x, z)); - } - - public ModuloStream(ProceduralStream stream, double add) { - this(stream, (x, y, z) -> add); - } - - @Override - public double toDouble(T t) { - return getTypedSource().toDouble(t); - } - - @Override - public T fromDouble(double d) { - return getTypedSource().fromDouble(d); - } - - @Override - public T get(double x, double z) { - return fromDouble(getTypedSource().getDouble(x, z) % add.apply(x, 0D, z)); - } - - @Override - public T get(double x, double y, double z) { - return fromDouble(getTypedSource().getDouble(x, y, z) % add.apply(x, y, z)); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MultiplyingStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MultiplyingStream.java deleted file mode 100644 index 0fa4b56b1..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MultiplyingStream.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.arithmetic; - -import art.arcane.volmlib.util.function.Function2; -import art.arcane.volmlib.util.function.Function3; -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class MultiplyingStream extends BasicStream { - private final Function3 add; - - public MultiplyingStream(ProceduralStream stream, Function3 add) { - super(stream); - this.add = add; - } - - public MultiplyingStream(ProceduralStream stream, Function2 add) { - this(stream, (x, y, z) -> add.apply(x, z)); - } - - public MultiplyingStream(ProceduralStream stream, double add) { - this(stream, (x, y, z) -> add); - } - - @Override - public double toDouble(T t) { - return getTypedSource().toDouble(t); - } - - @Override - public T fromDouble(double d) { - return getTypedSource().fromDouble(d); - } - - @Override - public T get(double x, double z) { - return fromDouble(getTypedSource().getDouble(x, z) * add.apply(x, 0D, z)); - } - - @Override - public T get(double x, double y, double z) { - return fromDouble(getTypedSource().getDouble(x, y, z) * add.apply(x, y, z)); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/OffsetStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/OffsetStream.java deleted file mode 100644 index 6ddb74011..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/OffsetStream.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.arithmetic; - -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class OffsetStream extends BasicStream implements ProceduralStream { - private final double ox; - private final double oy; - private final double oz; - - public OffsetStream(ProceduralStream stream, double x, double y, double z) { - super(stream); - this.ox = x; - this.oy = y; - this.oz = z; - } - - @Override - public double toDouble(T t) { - return getTypedSource().toDouble(t); - } - - @Override - public T fromDouble(double d) { - return getTypedSource().fromDouble(d); - } - - @Override - public T get(double x, double z) { - return getTypedSource().get(x + ox, z + oz); - } - - @Override - public T get(double x, double y, double z) { - return getTypedSource().get(x + ox, y + oy, z + oz); - } - -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/RadialStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/RadialStream.java deleted file mode 100644 index 4fe304165..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/RadialStream.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.arithmetic; - -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class RadialStream extends BasicStream implements ProceduralStream { - private final double scale; - - public RadialStream(ProceduralStream stream) { - this(stream, 1D); - } - - public RadialStream(ProceduralStream stream, double scale) { - super(stream); - this.scale = scale; - } - - @Override - public double toDouble(T t) { - return getTypedSource().toDouble(t); - } - - @Override - public T fromDouble(double d) { - return getTypedSource().fromDouble(d); - } - - private double radii(double v) { - return (v / (360D * scale)) % 360D; - } - - @Override - public T get(double x, double z) { - return fromDouble(radii(getTypedSource().getDouble(x, z))); - } - - @Override - public T get(double x, double y, double z) { - return fromDouble(radii(getTypedSource().getDouble(x, y, z))); - } - -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/RoundingDoubleStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/RoundingDoubleStream.java deleted file mode 100644 index 993fe75ac..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/RoundingDoubleStream.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.arithmetic; - -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class RoundingDoubleStream extends BasicStream { - private final ProceduralStream stream; - - public RoundingDoubleStream(ProceduralStream stream) { - super(); - this.stream = stream; - } - - @Override - public double toDouble(Double t) { - return t; - } - - @Override - public Double fromDouble(double d) { - return (double) Math.round(d); - } - - private double round(double v) { - return Math.round(v); - } - - @Override - public Double get(double x, double z) { - return round(stream.getDouble(x, z)); - } - - @Override - public Double get(double x, double y, double z) { - return round(stream.getDouble(x, y, z)); - } - -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/SlopeStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/SlopeStream.java deleted file mode 100644 index 4e8c362e3..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/SlopeStream.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.arithmetic; - -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class SlopeStream extends BasicStream { - private final int range; - - public SlopeStream(ProceduralStream stream, int range) { - super(stream); - this.range = range; - } - - @Override - public double toDouble(T t) { - return getTypedSource().toDouble(t); - } - - @Override - public T fromDouble(double d) { - return getTypedSource().fromDouble(d); - } - - @Override - public T get(double x, double z) { - double height = getTypedSource().getDouble(x, z); - double dx = getTypedSource().getDouble(x + range, z) - height; - double dy = getTypedSource().getDouble(x, z + range) - height; - - return fromDouble(Math.sqrt(dx * dx + dy * dy)); - } - - @Override - public T get(double x, double y, double z) { - double height = getTypedSource().getDouble(x, y, z); - double dx = getTypedSource().getDouble(x + range, y, z) - height; - double dy = getTypedSource().getDouble(x, y + range, z) - height; - double dz = getTypedSource().getDouble(x, y, z + range) - height; - - return fromDouble(Math.cbrt((dx * dx) + (dy * dy) + (dz * dz))); - } - -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/SubtractingStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/SubtractingStream.java deleted file mode 100644 index c48cb1faf..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/SubtractingStream.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.arithmetic; - -import art.arcane.volmlib.util.function.Function2; -import art.arcane.volmlib.util.function.Function3; -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class SubtractingStream extends BasicStream { - private final Function3 add; - - public SubtractingStream(ProceduralStream stream, Function3 add) { - super(stream); - this.add = add; - } - - public SubtractingStream(ProceduralStream stream, Function2 add) { - this(stream, (x, y, z) -> add.apply(x, z)); - } - - public SubtractingStream(ProceduralStream stream, double add) { - this(stream, (x, y, z) -> add); - } - - @Override - public double toDouble(T t) { - return getTypedSource().toDouble(t); - } - - @Override - public T fromDouble(double d) { - return getTypedSource().fromDouble(d); - } - - @Override - public T get(double x, double z) { - return fromDouble(getTypedSource().getDouble(x, z) - add.apply(x, 0D, z)); - } - - @Override - public T get(double x, double y, double z) { - return fromDouble(getTypedSource().getDouble(x, y, z) - add.apply(x, y, z)); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ZoomStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ZoomStream.java deleted file mode 100644 index 4e804a69f..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ZoomStream.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.arithmetic; - -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class ZoomStream extends BasicStream { - private final double ox; - private final double oy; - private final double oz; - - public ZoomStream(ProceduralStream stream, double x, double y, double z) { - super(stream); - this.ox = x; - this.oy = y; - this.oz = z; - } - - @Override - public double toDouble(T t) { - return getTypedSource().toDouble(t); - } - - @Override - public T fromDouble(double d) { - return getTypedSource().fromDouble(d); - } - - @Override - public T get(double x, double z) { - return getTypedSource().get(x / ox, z / oz); - } - - @Override - public T get(double x, double y, double z) { - return getTypedSource().get(x / ox, y / oy, z / oz); - } - -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/convert/AwareConversionStream2D.java b/core/src/main/java/art/arcane/iris/util/project/stream/convert/AwareConversionStream2D.java deleted file mode 100644 index 811b38efb..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/convert/AwareConversionStream2D.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.convert; - -import art.arcane.volmlib.util.function.Function3; -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class AwareConversionStream2D extends BasicStream { - private final ProceduralStream stream; - private final Function3 converter; - - public AwareConversionStream2D(ProceduralStream stream, Function3 converter) { - super(null); - this.stream = stream; - this.converter = converter; - } - - @Override - public double toDouble(V t) { - if (t instanceof Double) { - return (Double) t; - } - - return 0; - } - - @Override - public V fromDouble(double d) { - return null; - } - - @Override - public ProceduralStream getSource() { - return stream; - } - - @Override - public V get(double x, double z) { - return converter.apply(stream.get(x, z), x, z); - } - - @Override - public V get(double x, double y, double z) { - return converter.apply(stream.get(x, y, z), x, z); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/convert/AwareConversionStream3D.java b/core/src/main/java/art/arcane/iris/util/project/stream/convert/AwareConversionStream3D.java deleted file mode 100644 index 4e14c42c3..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/convert/AwareConversionStream3D.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.convert; - -import art.arcane.volmlib.util.function.Function4; -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class AwareConversionStream3D extends BasicStream { - private final ProceduralStream stream; - private final Function4 converter; - - public AwareConversionStream3D(ProceduralStream stream, Function4 converter) { - super(null); - this.stream = stream; - this.converter = converter; - } - - @Override - public double toDouble(V t) { - if (t instanceof Double) { - return (Double) t; - } - - return 0; - } - - @Override - public V fromDouble(double d) { - return null; - - - } - - @Override - public ProceduralStream getSource() { - return stream; - } - - @Override - public V get(double x, double z) { - return converter.apply(stream.get(x, z), x, 0D, z); - } - - @Override - public V get(double x, double y, double z) { - return converter.apply(stream.get(x, y, z), x, y, z); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/convert/CachedConversionStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/convert/CachedConversionStream.java deleted file mode 100644 index f857bca3c..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/convert/CachedConversionStream.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.convert; - -import art.arcane.volmlib.util.collection.KMap; -import art.arcane.volmlib.util.stream.BasicLayer; -import art.arcane.iris.util.project.stream.ProceduralStream; -import java.util.function.Function; - -public class CachedConversionStream extends BasicLayer implements ProceduralStream { - private final ProceduralStream stream; - private final Function converter; - private final KMap cache; - - public CachedConversionStream(ProceduralStream stream, Function converter) { - super(); - this.stream = stream; - this.converter = converter; - cache = new KMap<>(); - } - - @Override - public double toDouble(V t) { - return 0; - } - - @Override - public V fromDouble(double d) { - return null; - } - - @Override - public ProceduralStream getTypedSource() { - return null; - } - - @Override - public ProceduralStream getSource() { - return stream; - } - - @Override - public V get(double x, double z) { - return cache.computeIfAbsent(stream.get(x, z), converter); - } - - @Override - public V get(double x, double y, double z) { - return cache.computeIfAbsent(stream.get(x, y, z), converter); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/convert/ConversionStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/convert/ConversionStream.java deleted file mode 100644 index 0fa13d033..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/convert/ConversionStream.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.convert; - -import art.arcane.volmlib.util.stream.BasicLayer; -import art.arcane.iris.util.project.stream.ProceduralStream; -import java.util.function.Function; - -public class ConversionStream extends BasicLayer implements ProceduralStream { - private final ProceduralStream stream; - private final Function converter; - - public ConversionStream(ProceduralStream stream, Function converter) { - super(); - this.stream = stream; - this.converter = converter; - } - - @Override - public double toDouble(V t) { - if (t instanceof Double) { - return (Double) t; - } - - return 0; - } - - @Override - public V fromDouble(double d) { - return null; - } - - @Override - public ProceduralStream getTypedSource() { - return null; - } - - @Override - public ProceduralStream getSource() { - return null; - } - - @Override - public V get(double x, double z) { - return converter.apply(stream.get(x, z)); - } - - @Override - public V get(double x, double y, double z) { - return converter.apply(stream.get(x, y, z)); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/convert/ForceDoubleStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/convert/ForceDoubleStream.java deleted file mode 100644 index fb6685c30..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/convert/ForceDoubleStream.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.convert; - -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class ForceDoubleStream extends BasicStream { - private final ProceduralStream stream; - - public ForceDoubleStream(ProceduralStream stream) { - super(null); - this.stream = stream; - } - - @Override - public double toDouble(Double t) { - return t; - } - - @Override - public Double fromDouble(double d) { - return d; - } - - @Override - public Double get(double x, double z) { - return stream.getDouble(x, z); - } - - @Override - public Double get(double x, double y, double z) { - return stream.getDouble(x, y, z); - } - -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/convert/RoundingStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/convert/RoundingStream.java deleted file mode 100644 index abc364eee..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/convert/RoundingStream.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.convert; - -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class RoundingStream extends BasicStream { - private final ProceduralStream stream; - - public RoundingStream(ProceduralStream stream) { - super(); - this.stream = stream; - } - - @Override - public double toDouble(Integer t) { - return t.doubleValue(); - } - - @Override - public Integer fromDouble(double d) { - return (int) Math.round(d); - } - - private int round(double v) { - return (int) Math.round(v); - } - - @Override - public Integer get(double x, double z) { - return round(stream.getDouble(x, z)); - } - - @Override - public Integer get(double x, double y, double z) { - return round(stream.getDouble(x, y, z)); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/convert/SelectionStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/convert/SelectionStream.java deleted file mode 100644 index 178974850..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/convert/SelectionStream.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.convert; - -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -import java.util.List; - -public class SelectionStream extends BasicStream { - private final ProceduralStream stream; - private final T[] options; - - public SelectionStream(ProceduralStream stream, T[] options) { - super(); - this.stream = stream.fit(0, options.length - 1).round(); - this.options = options; - } - - @SuppressWarnings("unchecked") - public SelectionStream(ProceduralStream stream, List options) { - this(stream, (T[]) options.toArray()); - } - - @Override - public double toDouble(T t) { - throw new UnsupportedOperationException(); - } - - @Override - public T fromDouble(double d) { - throw new UnsupportedOperationException(); - } - - @Override - public T get(double x, double z) { - if (options.length == 0) { - return null; - } - - return options[stream.get(x, z)]; - } - - @Override - public T get(double x, double y, double z) { - if (options.length == 0) { - return null; - } - - return options[stream.get(x, y, z)]; - } - -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/convert/SignificanceStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/convert/SignificanceStream.java deleted file mode 100644 index 2c89af41d..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/convert/SignificanceStream.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.convert; - -import art.arcane.volmlib.util.collection.KList; -import art.arcane.volmlib.util.stream.ArraySignificance; -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -import art.arcane.volmlib.util.stream.Significance; - -public class SignificanceStream, T> extends BasicStream { - private final ProceduralStream stream; - private final double radius; - private final int checks; - - public SignificanceStream(ProceduralStream stream, double radius, int checks) { - super(); - this.stream = stream; - this.radius = radius; - this.checks = checks; - } - - @Override - public double toDouble(K t) { - return 0; - } - - @Override - public K fromDouble(double d) { - return null; - } - - @SuppressWarnings("unchecked") - @Override - public K get(double x, double z) { - KList ke = new KList<>(8); - KList va = new KList<>(8); - - double m = (360d / checks); - double v = 0; - - for (int i = 0; i < 360; i += m) { - double sin = Math.sin(Math.toRadians(i)); - double cos = Math.cos(Math.toRadians(i)); - double cx = x + ((radius * cos) - (radius * sin)); - double cz = z + ((radius * sin) + (radius * cos)); - T t = stream.get(cx, cz); - - if (ke.addIfMissing(t)) { - va.add(1D); - v++; - } else { - int ind = ke.indexOf(t); - va.set(ind, va.get(ind) + 1D); - } - } - - for (int i = 0; i < va.size(); i++) { - va.set(i, va.get(i) / v); - } - - return (K) new ArraySignificance<>(ke, va); - } - - @Override - public K get(double x, double y, double z) { - return get(x, z); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/convert/To3DStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/convert/To3DStream.java deleted file mode 100644 index 32e94f1e6..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/convert/To3DStream.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.convert; - -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class To3DStream extends BasicStream { - public To3DStream(ProceduralStream stream) { - super(stream); - } - - @Override - public double toDouble(T t) { - return getTypedSource().toDouble(t); - } - - @Override - public T fromDouble(double d) { - return getTypedSource().fromDouble(d); - } - - @Override - public T get(double x, double z) { - return getTypedSource().get(x, z); - } - - @Override - public T get(double x, double y, double z) { - return getTypedSource().fromDouble(getTypedSource().getDouble(x, z) >= y ? 1D : 0D); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BiHermiteStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BiHermiteStream.java deleted file mode 100644 index 54e85a7d7..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BiHermiteStream.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.interpolation; - -import art.arcane.iris.util.project.interpolation.IrisInterpolation; -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class BiHermiteStream extends BasicStream implements Interpolator { - private final int rx; - private final int ry; - private final double tension; - private final double bias; - - public BiHermiteStream(ProceduralStream stream, int rx, int ry, double tension, double bias) { - super(stream); - this.rx = rx; - this.ry = ry; - this.tension = tension; - this.bias = bias; - } - - public BiHermiteStream(ProceduralStream stream, int rx, int ry) { - this(stream, rx, ry, 0.5, 0); - } - - public T interpolate(double x, double y) { - int fx = (int) Math.floor(x / rx); - int fz = (int) Math.floor(y / ry); - int x0 = Math.round((fx - 1) * rx); - int z0 = Math.round((fz - 1) * ry); - int x1 = Math.round(fx * rx); - int z1 = Math.round(fz * ry); - int x2 = Math.round((fx + 1) * rx); - int z2 = Math.round((fz + 1) * ry); - int x3 = Math.round((fx + 2) * rx); - int z3 = Math.round((fz + 2) * ry); - double px = IrisInterpolation.rangeScale(0, 1, x1, x2, x); - double pz = IrisInterpolation.rangeScale(0, 1, z1, z2, y); - - //@builder - return getTypedSource().fromDouble(IrisInterpolation.bihermite( - getTypedSource().getDouble(x0, z0), - getTypedSource().getDouble(x0, z1), - getTypedSource().getDouble(x0, z2), - getTypedSource().getDouble(x0, z3), - getTypedSource().getDouble(x1, z0), - getTypedSource().getDouble(x1, z1), - getTypedSource().getDouble(x1, z2), - getTypedSource().getDouble(x1, z3), - getTypedSource().getDouble(x2, z0), - getTypedSource().getDouble(x2, z1), - getTypedSource().getDouble(x2, z2), - getTypedSource().getDouble(x2, z3), - getTypedSource().getDouble(x3, z0), - getTypedSource().getDouble(x3, z1), - getTypedSource().getDouble(x3, z2), - getTypedSource().getDouble(x3, z3), - px, pz, tension, bias)); - //@done - } - - @Override - public double toDouble(T t) { - return getTypedSource().toDouble(t); - } - - @Override - public T fromDouble(double d) { - return getTypedSource().fromDouble(d); - } - - @Override - public T get(double x, double z) { - return interpolate(x, z); - } - - @Override - public T get(double x, double y, double z) { - return interpolate(x, z); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BiStarcastStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BiStarcastStream.java deleted file mode 100644 index 5c87d21d3..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BiStarcastStream.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.interpolation; - -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class BiStarcastStream extends BasicStream implements Interpolator { - private final int rad; - private final int checks; - - public BiStarcastStream(ProceduralStream stream, int rad, int checks) { - super(stream); - this.rad = rad; - this.checks = checks; - } - - public T interpolate(double x, double y) { - double m = (360D / checks); - double v = 0; - - for (int i = 0; i < 360; i += m) { - double sin = Math.sin(Math.toRadians(i)); - double cos = Math.cos(Math.toRadians(i)); - double cx = x + ((rad * cos) - (rad * sin)); - double cz = y + ((rad * sin) + (rad * cos)); - v += getTypedSource().getDouble(cx, cz); - } - - return getTypedSource().fromDouble(v / checks); - } - - @Override - public double toDouble(T t) { - return getTypedSource().toDouble(t); - } - - @Override - public T fromDouble(double d) { - return getTypedSource().fromDouble(d); - } - - @Override - public T get(double x, double z) { - return interpolate(x, z); - } - - @Override - public T get(double x, double y, double z) { - return interpolate(x, z); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BicubicStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BicubicStream.java deleted file mode 100644 index 998ae6ad6..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BicubicStream.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.interpolation; - -import art.arcane.iris.util.project.interpolation.IrisInterpolation; -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class BicubicStream extends BasicStream implements Interpolator { - private final int rx; - private final int ry; - - public BicubicStream(ProceduralStream stream, int rx, int ry) { - super(stream); - this.rx = rx; - this.ry = ry; - } - - public T interpolate(double x, double y) { - int fx = (int) Math.floor(x / rx); - int fz = (int) Math.floor(y / ry); - int x0 = Math.round((fx - 1) * rx); - int z0 = Math.round((fz - 1) * ry); - int x1 = Math.round(fx * rx); - int z1 = Math.round(fz * ry); - int x2 = Math.round((fx + 1) * rx); - int z2 = Math.round((fz + 1) * ry); - int x3 = Math.round((fx + 2) * rx); - int z3 = Math.round((fz + 2) * ry); - double px = IrisInterpolation.rangeScale(0, 1, x1, x2, x); - double pz = IrisInterpolation.rangeScale(0, 1, z1, z2, y); - - //@builder - return getTypedSource().fromDouble(IrisInterpolation.bicubic( - getTypedSource().getDouble(x0, z0), - getTypedSource().getDouble(x0, z1), - getTypedSource().getDouble(x0, z2), - getTypedSource().getDouble(x0, z3), - getTypedSource().getDouble(x1, z0), - getTypedSource().getDouble(x1, z1), - getTypedSource().getDouble(x1, z2), - getTypedSource().getDouble(x1, z3), - getTypedSource().getDouble(x2, z0), - getTypedSource().getDouble(x2, z1), - getTypedSource().getDouble(x2, z2), - getTypedSource().getDouble(x2, z3), - getTypedSource().getDouble(x3, z0), - getTypedSource().getDouble(x3, z1), - getTypedSource().getDouble(x3, z2), - getTypedSource().getDouble(x3, z3), - px, pz)); - //@done - } - - @Override - public double toDouble(T t) { - return getTypedSource().toDouble(t); - } - - @Override - public T fromDouble(double d) { - return getTypedSource().fromDouble(d); - } - - @Override - public T get(double x, double z) { - return interpolate(x, z); - } - - @Override - public T get(double x, double y, double z) { - return interpolate(x, z); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BilinearStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BilinearStream.java deleted file mode 100644 index 00277addf..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BilinearStream.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.interpolation; - -import art.arcane.iris.util.project.interpolation.IrisInterpolation; -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class BilinearStream extends BasicStream implements Interpolator { - private final int rx; - private final int ry; - - public BilinearStream(ProceduralStream stream, int rx, int ry) { - super(stream); - this.rx = rx; - this.ry = ry; - } - - public T interpolate(double x, double y) { - int fx = (int) Math.floor(x / rx); - int fz = (int) Math.floor(y / ry); - int x1 = Math.round(fx * rx); - int z1 = Math.round(fz * ry); - int x2 = Math.round((fx + 1) * rx); - int z2 = Math.round((fz + 1) * ry); - double px = IrisInterpolation.rangeScale(0, 1, x1, x2, x); - double pz = IrisInterpolation.rangeScale(0, 1, z1, z2, y); - - //@builder - return getTypedSource().fromDouble(IrisInterpolation.blerp( - getTypedSource().getDouble(x1, z1), - getTypedSource().getDouble(x2, z1), - getTypedSource().getDouble(x1, z2), - getTypedSource().getDouble(x2, z2), - px, pz)); - //@done - } - - @Override - public double toDouble(T t) { - return getTypedSource().toDouble(t); - } - - @Override - public T fromDouble(double d) { - return getTypedSource().fromDouble(d); - } - - @Override - public T get(double x, double z) { - return interpolate(x, z); - } - - @Override - public T get(double x, double y, double z) { - return interpolate(x, z); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/Interpolated.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/Interpolated.java deleted file mode 100644 index 0fcd6fd27..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/Interpolated.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.interpolation; - -import art.arcane.iris.engine.object.CaveResult; -import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.volmlib.util.collection.KList; -import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.project.stream.ProceduralStream; - -import java.util.UUID; -import java.util.function.Function; - -public interface Interpolated { - Interpolated BLOCK_DATA = of((t) -> 0D, (t) -> null); - Interpolated> CAVE_RESULTS = of((t) -> 0D, (t) -> null); - Interpolated RNG = of((t) -> 0D, (t) -> null); - Interpolated DOUBLE = of((t) -> t, (t) -> t); - Interpolated DOUBLE_ARRAY = of((t) -> 0D, (t) -> new Double[2]); - Interpolated BOOLEAN = of((t) -> 0D, (t) -> false); - Interpolated INT = of(Double::valueOf, Double::intValue); - Interpolated LONG = of(Double::valueOf, Double::longValue); - Interpolated UUID = of((i) -> Double.longBitsToDouble(i.getMostSignificantBits()), (i) -> new UUID(Double.doubleToLongBits(i), i.longValue())); - - static Interpolated of(Function a, Function b) { - return new Interpolated<>() { - @Override - public double toDouble(T t) { - return a.apply(t); - } - - @Override - public T fromDouble(double d) { - return b.apply(d); - } - }; - } - - double toDouble(T t); - - T fromDouble(double d); - - default InterpolatorFactory interpolate() { - if (this instanceof ProceduralStream) { - return new InterpolatorFactory<>((ProceduralStream) this); - } - - IrisLogging.warn("Cannot interpolate " + this.getClass().getCanonicalName() + "!"); - return null; - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/InterpolatingStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/InterpolatingStream.java deleted file mode 100644 index 5dd0d8a92..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/InterpolatingStream.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.interpolation; - -import art.arcane.volmlib.util.function.NoiseProvider; -import art.arcane.iris.util.project.interpolation.InterpolationMethod; -import art.arcane.iris.util.project.interpolation.IrisInterpolation; -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class InterpolatingStream extends BasicStream implements Interpolator { - private final InterpolationMethod type; - private final NoiseProvider np; - private final int rx; - - public InterpolatingStream(ProceduralStream stream, int rx, InterpolationMethod type) { - super(stream); - this.type = type; - this.rx = rx; - this.np = (xf, zf) -> getTypedSource().getDouble(xf, zf); - } - - public T interpolate(double x, double y) { - return fromDouble(IrisInterpolation.getNoise(type, (int) x, (int) y, rx, np)); - } - - @Override - public double toDouble(T t) { - return getTypedSource().toDouble(t); - } - - @Override - public T fromDouble(double d) { - return getTypedSource().fromDouble(d); - } - - @Override - public T get(double x, double z) { - return interpolate(x, z); - } - - @Override - public T get(double x, double y, double z) { - return interpolate(x, z); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/Interpolator.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/Interpolator.java deleted file mode 100644 index f8f2c55de..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/Interpolator.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.interpolation; - -import art.arcane.iris.util.project.stream.ProceduralStream; -public interface Interpolator { - @SuppressWarnings("unchecked") - default InterpolatorFactory into() { - if (this instanceof ProceduralStream) { - return new InterpolatorFactory<>((ProceduralStream) this); - } - - return null; - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/InterpolatorFactory.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/InterpolatorFactory.java deleted file mode 100644 index ac177d118..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/InterpolatorFactory.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.interpolation; - -import art.arcane.iris.util.project.interpolation.InterpolationMethod; -import art.arcane.iris.util.project.stream.ProceduralStream; -@SuppressWarnings("ClassCanBeRecord") -public class InterpolatorFactory { - private final ProceduralStream stream; - - public InterpolatorFactory(ProceduralStream stream) { - this.stream = stream; - } - - public InterpolatingStream with(InterpolationMethod t, int rx) { - return new InterpolatingStream<>(stream, rx, t); - } - - public TrilinearStream trilinear(int rx, int ry, int rz) { - return new TrilinearStream<>(stream, rx, ry, rz); - } - - public TricubicStream tricubic(int rx, int ry, int rz) { - return new TricubicStream<>(stream, rx, ry, rz); - } - - public BicubicStream bicubic(int rx, int ry) { - return new BicubicStream<>(stream, rx, ry); - } - - public BicubicStream bicubic(int r) { - return bicubic(r, r); - } - - public BilinearStream bilinear(int rx, int ry) { - return new BilinearStream<>(stream, rx, ry); - } - - public BilinearStream bilinear(int r) { - return bilinear(r, r); - } - - public TriStarcastStream tristarcast(int radius, int checks) { - return new TriStarcastStream<>(stream, radius, checks); - } - - public TriStarcastStream tristarcast3(int radius) { - return tristarcast(radius, 3); - } - - public TriStarcastStream tristarcast6(int radius) { - return tristarcast(radius, 6); - } - - public TriStarcastStream tristarcast9(int radius) { - return tristarcast(radius, 9); - } - - public BiStarcastStream bistarcast(int radius, int checks) { - return new BiStarcastStream<>(stream, radius, checks); - } - - public BiStarcastStream bistarcast3(int radius) { - return bistarcast(radius, 3); - } - - public BiStarcastStream bistarcast6(int radius) { - return bistarcast(radius, 6); - } - - public BiStarcastStream bistarcast9(int radius) { - return bistarcast(radius, 9); - } - - public BiHermiteStream bihermite(int rx, int ry, double tension, double bias) { - return new BiHermiteStream<>(stream, rx, ry, tension, bias); - } - - public BiHermiteStream bihermite(int rx, int ry) { - return new BiHermiteStream<>(stream, rx, ry); - } - - public BiHermiteStream bihermite(int r) { - return bihermite(r, r); - } - - public BiHermiteStream bihermite(int r, double tension, double bias) { - return bihermite(r, r, tension, bias); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TriStarcastStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TriStarcastStream.java deleted file mode 100644 index d1bdf9c5c..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TriStarcastStream.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.interpolation; - -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class TriStarcastStream extends BasicStream implements Interpolator { - private final int rad; - private final int checks; - - public TriStarcastStream(ProceduralStream stream, int rad, int checks) { - super(stream); - this.rad = rad; - this.checks = checks; - } - - public T interpolate(double x, double y, double z) { - double m = (360D / checks); - double v = 0; - - for (int i = 0; i < 360; i += m) { - double sin = Math.sin(Math.toRadians(i)); - double cos = Math.cos(Math.toRadians(i)); - double cx = x + ((rad * cos) - (rad * sin)); - double cy = y + ((rad * sin) + (rad * cos)); - double cz = z + ((rad * cos) - (rad * sin)); - v += getTypedSource().getDouble(cx, cy, cz); - } - - return getTypedSource().fromDouble(v / checks); - } - - @Override - public double toDouble(T t) { - return getTypedSource().toDouble(t); - } - - @Override - public T fromDouble(double d) { - return getTypedSource().fromDouble(d); - } - - @Override - public T get(double x, double z) { - return interpolate(x, 0, z); - } - - @Override - public T get(double x, double y, double z) { - return interpolate(x, y, z); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TricubicStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TricubicStream.java deleted file mode 100644 index b994262f9..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TricubicStream.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.interpolation; - -import art.arcane.iris.util.project.interpolation.IrisInterpolation; -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class TricubicStream extends BasicStream implements Interpolator { - private final int rx; - private final int ry; - private final int rz; - - public TricubicStream(ProceduralStream stream, int rx, int ry, int rz) { - super(stream); - this.rx = rx; - this.ry = ry; - this.rz = rz; - } - - public T interpolate(double x, double y, double z) { - int fx = (int) Math.floor(x / rx); - int fy = (int) Math.floor(y / ry); - int fz = (int) Math.floor(z / rz); - int x0 = Math.round((fx - 1) * rx); - int y0 = Math.round((fy - 1) * ry); - int z0 = Math.round((fz - 1) * rz); - int x1 = Math.round(fx * rx); - int y1 = Math.round(fy * ry); - int z1 = Math.round(fz * rz); - int x2 = Math.round((fx + 1) * rx); - int y2 = Math.round((fy + 1) * ry); - int z2 = Math.round((fz + 1) * rz); - int x3 = Math.round((fx + 2) * rx); - int y3 = Math.round((fy + 2) * ry); - int z3 = Math.round((fz + 2) * rz); - double px = IrisInterpolation.rangeScale(0, 1, x1, x2, x); - double py = IrisInterpolation.rangeScale(0, 1, y1, y2, y); - double pz = IrisInterpolation.rangeScale(0, 1, z1, z2, z); - - //@builder - return getTypedSource().fromDouble(IrisInterpolation.tricubic( - getTypedSource().getDouble(x0, y0, z0), - getTypedSource().getDouble(x0, y0, z1), - getTypedSource().getDouble(x0, y0, z2), - getTypedSource().getDouble(x0, y0, z3), - getTypedSource().getDouble(x1, y0, z0), - getTypedSource().getDouble(x1, y0, z1), - getTypedSource().getDouble(x1, y0, z2), - getTypedSource().getDouble(x1, y0, z3), - getTypedSource().getDouble(x2, y0, z0), - getTypedSource().getDouble(x2, y0, z1), - getTypedSource().getDouble(x2, y0, z2), - getTypedSource().getDouble(x2, y0, z3), - getTypedSource().getDouble(x3, y0, z0), - getTypedSource().getDouble(x3, y0, z1), - getTypedSource().getDouble(x3, y0, z2), - getTypedSource().getDouble(x3, y0, z3), - - getTypedSource().getDouble(x0, y1, z0), - getTypedSource().getDouble(x0, y1, z1), - getTypedSource().getDouble(x0, y1, z2), - getTypedSource().getDouble(x0, y1, z3), - getTypedSource().getDouble(x1, y1, z0), - getTypedSource().getDouble(x1, y1, z1), - getTypedSource().getDouble(x1, y1, z2), - getTypedSource().getDouble(x1, y1, z3), - getTypedSource().getDouble(x2, y1, z0), - getTypedSource().getDouble(x2, y1, z1), - getTypedSource().getDouble(x2, y1, z2), - getTypedSource().getDouble(x2, y1, z3), - getTypedSource().getDouble(x3, y1, z0), - getTypedSource().getDouble(x3, y1, z1), - getTypedSource().getDouble(x3, y1, z2), - getTypedSource().getDouble(x3, y1, z3), - - getTypedSource().getDouble(x0, y2, z0), - getTypedSource().getDouble(x0, y2, z1), - getTypedSource().getDouble(x0, y2, z2), - getTypedSource().getDouble(x0, y2, z3), - getTypedSource().getDouble(x1, y2, z0), - getTypedSource().getDouble(x1, y2, z1), - getTypedSource().getDouble(x1, y2, z2), - getTypedSource().getDouble(x1, y2, z3), - getTypedSource().getDouble(x2, y2, z0), - getTypedSource().getDouble(x2, y2, z1), - getTypedSource().getDouble(x2, y2, z2), - getTypedSource().getDouble(x2, y2, z3), - getTypedSource().getDouble(x3, y2, z0), - getTypedSource().getDouble(x3, y2, z1), - getTypedSource().getDouble(x3, y2, z2), - getTypedSource().getDouble(x3, y2, z3), - - getTypedSource().getDouble(x0, y3, z0), - getTypedSource().getDouble(x0, y3, z1), - getTypedSource().getDouble(x0, y3, z2), - getTypedSource().getDouble(x0, y3, z3), - getTypedSource().getDouble(x1, y3, z0), - getTypedSource().getDouble(x1, y3, z1), - getTypedSource().getDouble(x1, y3, z2), - getTypedSource().getDouble(x1, y3, z3), - getTypedSource().getDouble(x2, y3, z0), - getTypedSource().getDouble(x2, y3, z1), - getTypedSource().getDouble(x2, y3, z2), - getTypedSource().getDouble(x2, y3, z3), - getTypedSource().getDouble(x3, y3, z0), - getTypedSource().getDouble(x3, y3, z1), - getTypedSource().getDouble(x3, y3, z2), - getTypedSource().getDouble(x3, y3, z3), - px, pz, py)); - //@done - } - - @Override - public double toDouble(T t) { - return getTypedSource().toDouble(t); - } - - @Override - public T fromDouble(double d) { - return getTypedSource().fromDouble(d); - } - - @Override - public T get(double x, double z) { - return interpolate(x, 0, z); - } - - @Override - public T get(double x, double y, double z) { - return interpolate(x, y, z); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TrilinearStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TrilinearStream.java deleted file mode 100644 index 18a9f1595..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TrilinearStream.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.interpolation; - -import art.arcane.iris.util.project.interpolation.IrisInterpolation; -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class TrilinearStream extends BasicStream implements Interpolator { - private final int rx; - private final int ry; - private final int rz; - - public TrilinearStream(ProceduralStream stream, int rx, int ry, int rz) { - super(stream); - this.rx = rx; - this.ry = ry; - this.rz = rz; - } - - public T interpolate(double x, double y, double z) { - int fx = (int) Math.floor(x / rx); - int fy = (int) Math.floor(y / ry); - int fz = (int) Math.floor(z / rz); - int x1 = Math.round(fx * rx); - int y1 = Math.round(fy * ry); - int z1 = Math.round(fz * rz); - int x2 = Math.round((fx + 1) * rx); - int y2 = Math.round((fy + 1) * ry); - int z2 = Math.round((fz + 1) * rz); - double px = IrisInterpolation.rangeScale(0, 1, x1, x2, x); - double py = IrisInterpolation.rangeScale(0, 1, y1, y2, y); - double pz = IrisInterpolation.rangeScale(0, 1, z1, z2, z); - - //@builder - return getTypedSource().fromDouble(IrisInterpolation.trilerp( - getTypedSource().getDouble(x1, y1, z1), - getTypedSource().getDouble(x2, y1, z1), - getTypedSource().getDouble(x1, y1, z2), - getTypedSource().getDouble(x2, y1, z2), - getTypedSource().getDouble(x1, y2, z1), - getTypedSource().getDouble(x2, y2, z1), - getTypedSource().getDouble(x1, y2, z2), - getTypedSource().getDouble(x2, y2, z2), - px, pz, py)); - //@done - } - - @Override - public double toDouble(T t) { - return getTypedSource().toDouble(t); - } - - @Override - public T fromDouble(double d) { - return getTypedSource().fromDouble(d); - } - - @Override - public T get(double x, double z) { - return interpolate(x, 0, z); - } - - @Override - public T get(double x, double y, double z) { - return interpolate(x, y, z); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/sources/CNGStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/sources/CNGStream.java deleted file mode 100644 index 0227ce003..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/sources/CNGStream.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.sources; - -import art.arcane.iris.util.project.noise.CNG; -import art.arcane.volmlib.util.stream.BasicLayer; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class CNGStream extends BasicLayer implements ProceduralStream { - private final CNG cng; - - public CNGStream(CNG cng) { - this.cng = cng; - } - - public CNGStream(CNG cng, double zoom, double offsetX, double offsetY, double offsetZ) { - super(1337, zoom, offsetX, offsetY, offsetZ); - this.cng = cng; - } - - public CNGStream(CNG cng, double zoom) { - super(1337, zoom); - this.cng = cng; - } - - @Override - public double toDouble(Double t) { - return t; - } - - @Override - public Double fromDouble(double d) { - return d; - } - - @Override - public ProceduralStream getTypedSource() { - return null; - } - - @Override - public ProceduralStream getSource() { - return null; - } - - @Override - public Double get(double x, double z) { - return cng.noise((x + getOffsetX()) / getZoom(), (z + getOffsetZ()) / getZoom()); - } - - @Override - public Double get(double x, double y, double z) { - return cng.noise((x + getOffsetX()) / getZoom(), (y + getOffsetY()) / getZoom(), (z + getOffsetZ()) * getZoom()); - } - -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/sources/FunctionStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/sources/FunctionStream.java deleted file mode 100644 index a5916ac7c..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/sources/FunctionStream.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.sources; - -import art.arcane.volmlib.util.function.Function2; -import art.arcane.volmlib.util.function.Function3; -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.interpolation.Interpolated; -public class FunctionStream extends BasicStream { - private final Function2 f2; - private final Function3 f3; - private final Interpolated helper; - - public FunctionStream(Function2 f2, Function3 f3, Interpolated helper) { - super(); - this.f2 = f2; - this.f3 = f3; - this.helper = helper; - } - - @Override - public double toDouble(T t) { - return helper.toDouble(t); - } - - @Override - public T fromDouble(double d) { - return helper.fromDouble(d); - } - - @Override - public T get(double x, double z) { - return f2.apply(x, z); - } - - @Override - public T get(double x, double y, double z) { - return f3.apply(x, y, z); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/utility/NullSafeStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/utility/NullSafeStream.java deleted file mode 100644 index 69d83b8a8..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/utility/NullSafeStream.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.utility; - -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class NullSafeStream extends BasicStream implements ProceduralStream { - private final ProceduralStream stream; - private final T ifNull; - - public NullSafeStream(ProceduralStream stream, T ifNull) { - super(); - this.stream = stream; - this.ifNull = ifNull; - } - - @Override - public double toDouble(T t) { - return stream.toDouble(t); - } - - @Override - public T fromDouble(double d) { - return stream.fromDouble(d); - } - - @Override - public T get(double x, double z) { - T t = stream.get(x, z); - return t == null ? ifNull : t; - } - - @Override - public T get(double x, double y, double z) { - T t = stream.get(x, y, z); - return t == null ? ifNull : t; - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/utility/SynchronizedStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/utility/SynchronizedStream.java deleted file mode 100644 index 2acbf6ee1..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/stream/utility/SynchronizedStream.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.project.stream.utility; - -import art.arcane.iris.util.project.stream.BasicStream; -import art.arcane.iris.util.project.stream.ProceduralStream; -public class SynchronizedStream extends BasicStream { - public SynchronizedStream(ProceduralStream stream) { - super(stream); - } - - @Override - public double toDouble(T t) { - return getTypedSource().toDouble(t); - } - - @Override - public T fromDouble(double d) { - return getTypedSource().fromDouble(d); - } - - @Override - public T get(double x, double z) { - synchronized (getTypedSource()) { - return getTypedSource().get(x, z); - } - } - - @Override - public T get(double x, double y, double z) { - synchronized (getTypedSource()) { - return getTypedSource().get(x, y, z); - } - } -} diff --git a/core/src/main/java/art/arcane/iris/core/ExactWorldSlotPathPolicy.java b/core/src/main/java/art/arcane/iris/world/ExactWorldSlotPathPolicy.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/ExactWorldSlotPathPolicy.java rename to core/src/main/java/art/arcane/iris/world/ExactWorldSlotPathPolicy.java index bf1c7a374..93f667231 100644 --- a/core/src/main/java/art/arcane/iris/core/ExactWorldSlotPathPolicy.java +++ b/core/src/main/java/art/arcane/iris/world/ExactWorldSlotPathPolicy.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; import java.io.IOException; import java.nio.file.Files; diff --git a/core/src/main/java/art/arcane/iris/core/tools/IrisCreator.java b/core/src/main/java/art/arcane/iris/world/IrisCreator.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/tools/IrisCreator.java rename to core/src/main/java/art/arcane/iris/world/IrisCreator.java index 56dae386b..17d14c5dc 100644 --- a/core/src/main/java/art/arcane/iris/core/tools/IrisCreator.java +++ b/core/src/main/java/art/arcane/iris/world/IrisCreator.java @@ -16,44 +16,40 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.tools; +package art.arcane.iris.world; -import art.arcane.iris.core.runtime.TransientWorldCleanupSupport; -import art.arcane.iris.core.runtime.WorldRuntimeControlService; +import art.arcane.iris.world.runtime.TransientWorldCleanupSupport; +import art.arcane.iris.world.runtime.WorldRuntimeControlService; import com.google.common.util.concurrent.AtomicDouble; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.platform.bukkit.BukkitPlatform; -import art.arcane.iris.core.link.MultiverseCoreLink; -import art.arcane.iris.core.IrisRuntimeSchedulerMode; -import art.arcane.iris.core.DatapackInstallResult; -import art.arcane.iris.core.IrisWorldStorage; -import art.arcane.iris.core.IrisWorlds; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.ServerConfigurator; -import art.arcane.iris.core.WorldCreatorCompat; -import art.arcane.iris.core.lifecycle.BukkitWorldConfiguration; -import art.arcane.iris.core.lifecycle.LifecycleOperationCoordinator; -import art.arcane.iris.core.lifecycle.WorldLifecycleCaller; -import art.arcane.iris.core.lifecycle.WorldLifecycleRequest; -import art.arcane.iris.core.lifecycle.WorldLifecycleService; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.RuntimeProgressMessages; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.core.pregenerator.PregenTask; -import art.arcane.iris.core.pack.AtomicDirectoryPublisher; -import art.arcane.iris.core.pack.PackValidationRegistry; -import art.arcane.iris.core.runtime.WorldDeletionQueue; -import art.arcane.iris.core.service.StudioSVC; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.integration.MultiverseCoreLink; +import art.arcane.iris.pack.datapack.DatapackInstallResult; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.pack.datapack.ServerConfigurator; +import art.arcane.iris.world.lifecycle.BukkitWorldConfiguration; +import art.arcane.iris.world.lifecycle.LifecycleOperationCoordinator; +import art.arcane.iris.world.lifecycle.WorldLifecycleCaller; +import art.arcane.iris.world.lifecycle.WorldLifecycleRequest; +import art.arcane.iris.world.lifecycle.WorldLifecycleService; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.RuntimeProgressMessages; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.world.pregen.PregenTask; +import art.arcane.iris.pack.AtomicDirectoryPublisher; +import art.arcane.iris.pack.PackValidationRegistry; +import art.arcane.iris.world.runtime.WorldDeletionQueue; +import art.arcane.iris.studio.StudioSVC; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; import art.arcane.volmlib.util.exceptions.IrisException; -import art.arcane.iris.util.common.format.C; +import art.arcane.iris.localization.C; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.localization.MessageArgument; import art.arcane.volmlib.util.bukkit.WorldIdentity; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.scheduling.FoliaScheduler; import lombok.Data; import lombok.experimental.Accessors; @@ -83,7 +79,7 @@ import java.util.function.BiConsumer; import java.util.function.Function; import java.util.function.IntSupplier; -import static art.arcane.iris.util.common.misc.ServerProperties.BUKKIT_YML; +import static art.arcane.iris.platform.bootstrap.ServerProperties.BUKKIT_YML; /** * Makes it a lot easier to setup an engine, world, studio or whatever diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisEnvironment.java b/core/src/main/java/art/arcane/iris/world/IrisEnvironment.java similarity index 73% rename from core/src/main/java/art/arcane/iris/engine/object/IrisEnvironment.java rename to core/src/main/java/art/arcane/iris/world/IrisEnvironment.java index bfd30cbca..e1d28fca1 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisEnvironment.java +++ b/core/src/main/java/art/arcane/iris/world/IrisEnvironment.java @@ -16,21 +16,21 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.world; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.documentation.Description; -@Desc("Represents a world environment") +@Description("Represents a world environment") public enum IrisEnvironment { - @Desc("The overworld environment") + @Description("The overworld environment") NORMAL, - @Desc("The nether environment") + @Description("The nether environment") NETHER, - @Desc("The end environment") + @Description("The end environment") THE_END, - @Desc("A custom environment") + @Description("A custom environment") CUSTOM } diff --git a/core/src/main/java/art/arcane/iris/core/IrisPaperLikeBackendMode.java b/core/src/main/java/art/arcane/iris/world/IrisPaperLikeBackendMode.java similarity index 71% rename from core/src/main/java/art/arcane/iris/core/IrisPaperLikeBackendMode.java rename to core/src/main/java/art/arcane/iris/world/IrisPaperLikeBackendMode.java index 9b068a863..b138650ce 100644 --- a/core/src/main/java/art/arcane/iris/core/IrisPaperLikeBackendMode.java +++ b/core/src/main/java/art/arcane/iris/world/IrisPaperLikeBackendMode.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; public enum IrisPaperLikeBackendMode { AUTO, diff --git a/core/src/main/java/art/arcane/iris/core/tools/IrisReflectiveAPI.java b/core/src/main/java/art/arcane/iris/world/IrisReflectiveAPI.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/tools/IrisReflectiveAPI.java rename to core/src/main/java/art/arcane/iris/world/IrisReflectiveAPI.java index b01742a80..b5638356f 100644 --- a/core/src/main/java/art/arcane/iris/core/tools/IrisReflectiveAPI.java +++ b/core/src/main/java/art/arcane/iris/world/IrisReflectiveAPI.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.tools; +package art.arcane.iris.world; import art.arcane.iris.platform.bukkit.BukkitBlockResolution; diff --git a/core/src/main/java/art/arcane/iris/core/IrisRuntimeSchedulerMode.java b/core/src/main/java/art/arcane/iris/world/IrisRuntimeSchedulerMode.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/IrisRuntimeSchedulerMode.java rename to core/src/main/java/art/arcane/iris/world/IrisRuntimeSchedulerMode.java index 21ca8ae7e..94ee261a0 100644 --- a/core/src/main/java/art/arcane/iris/core/IrisRuntimeSchedulerMode.java +++ b/core/src/main/java/art/arcane/iris/world/IrisRuntimeSchedulerMode.java @@ -1,4 +1,6 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; + +import art.arcane.iris.configuration.IrisSettings; import art.arcane.volmlib.util.scheduling.FoliaScheduler; import org.bukkit.Bukkit; diff --git a/core/src/main/java/art/arcane/iris/core/IrisStartupValidation.java b/core/src/main/java/art/arcane/iris/world/IrisStartupValidation.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/IrisStartupValidation.java rename to core/src/main/java/art/arcane/iris/world/IrisStartupValidation.java index f17f04592..5ec6b1f24 100644 --- a/core/src/main/java/art/arcane/iris/core/IrisStartupValidation.java +++ b/core/src/main/java/art/arcane/iris/world/IrisStartupValidation.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; import java.util.List; import java.util.Optional; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisTimeBlock.java b/core/src/main/java/art/arcane/iris/world/IrisTimeBlock.java similarity index 69% rename from core/src/main/java/art/arcane/iris/engine/object/IrisTimeBlock.java rename to core/src/main/java/art/arcane/iris/world/IrisTimeBlock.java index b681ec45d..55df3d58f 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisTimeBlock.java +++ b/core/src/main/java/art/arcane/iris/world/IrisTimeBlock.java @@ -16,21 +16,21 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.world; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.iris.spi.PlatformWorld; import lombok.Data; @Snippet("time-block") @Data -@Desc("Represents a time of day (24h time, not 12h am/pm). Set both to the same number for any time. If they are both set to -1, it will always be not allowed.") +@Description("Represents a time of day (24h time, not 12h am/pm). Set both to the same number for any time. If they are both set to -1, it will always be not allowed.") public class IrisTimeBlock { - @Desc("The beginning hour. Set both to the same number for any time. If they are both set to -1, it will always be not allowed.") + @Description("The beginning hour. Set both to the same number for any time. If they are both set to -1, it will always be not allowed.") private double startHour = 0; - @Desc("The ending hour. Set both to the same number for any time. If they are both set to -1, it will always be not allowed.") + @Description("The ending hour. Set both to the same number for any time. If they are both set to -1, it will always be not allowed.") private double endHour = 0; public boolean isWithin(PlatformWorld world) { diff --git a/core/src/main/java/art/arcane/iris/core/tools/IrisToolbelt.java b/core/src/main/java/art/arcane/iris/world/IrisToolbelt.java similarity index 94% rename from core/src/main/java/art/arcane/iris/core/tools/IrisToolbelt.java rename to core/src/main/java/art/arcane/iris/world/IrisToolbelt.java index 7de4eb6fa..ee2433be6 100644 --- a/core/src/main/java/art/arcane/iris/core/tools/IrisToolbelt.java +++ b/core/src/main/java/art/arcane/iris/world/IrisToolbelt.java @@ -16,39 +16,36 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.tools; +package art.arcane.iris.world; import art.arcane.iris.platform.bukkit.BukkitWorldBinding; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.platform.bukkit.BukkitPlatform; -import art.arcane.iris.core.IrisRuntimeSchedulerMode; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.IrisWorldStorage; -import art.arcane.iris.core.gui.PregeneratorJob; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.core.pregenerator.PregenPerformanceProfile; -import art.arcane.iris.core.pregenerator.PregenTask; -import art.arcane.iris.core.pregenerator.PregeneratorMethod; -import art.arcane.iris.core.pregenerator.cache.PregenCache; -import art.arcane.iris.core.pregenerator.cache.PregenSavedChunkStatus; -import art.arcane.iris.core.pack.PackDirectoryResolver; -import art.arcane.iris.core.pack.PackDownloader; -import art.arcane.iris.core.project.IrisProject; -import art.arcane.iris.core.pregenerator.methods.CachedPregenMethod; -import art.arcane.iris.core.pregenerator.methods.HybridPregenMethod; -import art.arcane.iris.core.service.GlobalCacheSVC; -import art.arcane.iris.core.service.StudioSVC; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineLifecycleTasks; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisWorld; -import art.arcane.iris.engine.platform.BukkitChunkGenerator; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; -import art.arcane.iris.util.common.scheduling.J; -import art.arcane.iris.util.common.plugin.VolmitSender; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.studio.view.PregeneratorJob; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.world.pregen.PregenPerformanceProfile; +import art.arcane.iris.world.pregen.PregenTask; +import art.arcane.iris.world.pregen.PregeneratorMethod; +import art.arcane.iris.world.pregen.PregenCache; +import art.arcane.iris.world.pregen.PregenSavedChunkStatus; +import art.arcane.iris.pack.PackDirectoryResolver; +import art.arcane.iris.pack.PackDownloader; +import art.arcane.iris.studio.workspace.IrisProject; +import art.arcane.iris.world.pregen.CachedPregenMethod; +import art.arcane.iris.world.pregen.HybridPregenMethod; +import art.arcane.iris.generation.runtime.GlobalCacheSVC; +import art.arcane.iris.studio.StudioSVC; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineLifecycleTasks; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.platform.generation.BukkitChunkGenerator; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; +import art.arcane.iris.world.task.J; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; import art.arcane.volmlib.util.bukkit.WorldIdentity; import io.papermc.lib.PaperLib; import org.bukkit.Bukkit; @@ -65,8 +62,8 @@ import java.util.List; import java.util.Map; import java.util.concurrent.CompletableFuture; -import art.arcane.iris.core.localization.BukkitRuntimeMessages; -import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.localization.BukkitRuntimeMessages; +import art.arcane.iris.localization.IrisLanguage; import art.arcane.volmlib.util.localization.MessageArgument; /** * Something you really want to wear if working on Iris. Shit gets pretty hectic down there. diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisWeather.java b/core/src/main/java/art/arcane/iris/world/IrisWeather.java similarity index 78% rename from core/src/main/java/art/arcane/iris/engine/object/IrisWeather.java rename to core/src/main/java/art/arcane/iris/world/IrisWeather.java index 8c4a2a059..428137812 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisWeather.java +++ b/core/src/main/java/art/arcane/iris/world/IrisWeather.java @@ -16,23 +16,23 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.world; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.documentation.Description; import art.arcane.iris.spi.PlatformWorld; -@Desc("Represents a weather type") +@Description("Represents a weather type") public enum IrisWeather { - @Desc("Represents when weather is not causing downfall") + @Description("Represents when weather is not causing downfall") NONE, - @Desc("Represents rain or snow") + @Description("Represents rain or snow") DOWNFALL, - @Desc("Represents rain or snow with thunder") + @Description("Represents rain or snow with thunder") DOWNFALL_WITH_THUNDER, - @Desc("Any weather") + @Description("Any weather") ANY; public boolean is(PlatformWorld world) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisWorld.java b/core/src/main/java/art/arcane/iris/world/IrisWorld.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/object/IrisWorld.java rename to core/src/main/java/art/arcane/iris/world/IrisWorld.java index dd0bcc81a..413139704 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisWorld.java +++ b/core/src/main/java/art/arcane/iris/world/IrisWorld.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.world; import art.arcane.iris.spi.PlatformWorld; import lombok.AccessLevel; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisWorldBoundary.java b/core/src/main/java/art/arcane/iris/world/IrisWorldBoundary.java similarity index 81% rename from core/src/main/java/art/arcane/iris/engine/object/IrisWorldBoundary.java rename to core/src/main/java/art/arcane/iris/world/IrisWorldBoundary.java index 57129644f..0104781e6 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisWorldBoundary.java +++ b/core/src/main/java/art/arcane/iris/world/IrisWorldBoundary.java @@ -1,8 +1,8 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.world; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; @@ -11,7 +11,7 @@ import java.util.Objects; @Accessors(chain = true) @NoArgsConstructor -@Desc("The native Minecraft world border applied to worlds using this dimension") +@Description("The native Minecraft world border applied to worlds using this dimension") @Data public class IrisWorldBoundary { public static final double DEFAULT_DAMAGE_AMOUNT = 0.2D; @@ -19,25 +19,25 @@ public class IrisWorldBoundary { public static final double MAXIMUM_CENTER = 29_999_984D; public static final double MAXIMUM_SIZE = 59_999_968D; - @Desc("The center of the boundary") + @Description("The center of the boundary") private IrisWorldBoundaryCenter center = new IrisWorldBoundaryCenter(); @MinNumber(1) @MaxNumber(59_999_968) - @Desc("The full border diameter in blocks, matching Minecraft world-border terminology") + @Description("The full border diameter in blocks, matching Minecraft world-border terminology") private double size = 16_384D; @MinNumber(0) @MaxNumber(Integer.MAX_VALUE) - @Desc("Distance from the border at which the client warning begins") + @Description("Distance from the border at which the client warning begins") private int warningDistance = 16; @MinNumber(0) - @Desc("Safe distance outside the border before damage begins") + @Description("Safe distance outside the border before damage begins") private double damageBuffer = DEFAULT_DAMAGE_BUFFER; @MinNumber(0) - @Desc("Damage per block beyond damageBuffer") + @Description("Damage per block beyond damageBuffer") private double damageAmount = DEFAULT_DAMAGE_AMOUNT; public static IrisWorldBoundary snapshot(IrisWorldBoundary configured) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisWorldBoundaryCenter.java b/core/src/main/java/art/arcane/iris/world/IrisWorldBoundaryCenter.java similarity index 54% rename from core/src/main/java/art/arcane/iris/engine/object/IrisWorldBoundaryCenter.java rename to core/src/main/java/art/arcane/iris/world/IrisWorldBoundaryCenter.java index a6d7d8d56..ae034e1bc 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisWorldBoundaryCenter.java +++ b/core/src/main/java/art/arcane/iris/world/IrisWorldBoundaryCenter.java @@ -1,25 +1,25 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.world; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor -@Desc("The world-border center in block coordinates") +@Description("The world-border center in block coordinates") @Data public class IrisWorldBoundaryCenter { @MinNumber(-29_999_984) @MaxNumber(29_999_984) - @Desc("The world-border center X coordinate") + @Description("The world-border center X coordinate") private double x = 0D; @MinNumber(-29_999_984) @MaxNumber(29_999_984) - @Desc("The world-border center Z coordinate") + @Description("The world-border center Z coordinate") private double z = 0D; public IrisWorldBoundaryCenter(double x, double z) { diff --git a/core/src/main/java/art/arcane/iris/core/tools/IrisWorldCreator.java b/core/src/main/java/art/arcane/iris/world/IrisWorldCreator.java similarity index 92% rename from core/src/main/java/art/arcane/iris/core/tools/IrisWorldCreator.java rename to core/src/main/java/art/arcane/iris/world/IrisWorldCreator.java index eadf2dd39..0b8b22e71 100644 --- a/core/src/main/java/art/arcane/iris/core/tools/IrisWorldCreator.java +++ b/core/src/main/java/art/arcane/iris/world/IrisWorldCreator.java @@ -16,15 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.tools; +package art.arcane.iris.world; -import art.arcane.iris.core.IrisWorldStorage; -import art.arcane.iris.core.WorldCreatorCompat; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisWorld; -import art.arcane.iris.engine.history.GenerationHistory; -import art.arcane.iris.engine.platform.BukkitChunkGenerator; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.world.history.GenerationHistory; +import art.arcane.iris.platform.generation.BukkitChunkGenerator; import art.arcane.iris.platform.bukkit.BukkitEnvironment; import org.bukkit.NamespacedKey; import org.bukkit.World; diff --git a/core/src/main/java/art/arcane/iris/core/IrisWorldStorage.java b/core/src/main/java/art/arcane/iris/world/IrisWorldStorage.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/IrisWorldStorage.java rename to core/src/main/java/art/arcane/iris/world/IrisWorldStorage.java index 05c383318..82c81a53a 100644 --- a/core/src/main/java/art/arcane/iris/core/IrisWorldStorage.java +++ b/core/src/main/java/art/arcane/iris/world/IrisWorldStorage.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; -import art.arcane.iris.engine.history.GenerationHistory; +import art.arcane.iris.world.history.GenerationHistory; import art.arcane.volmlib.util.bukkit.WorldIdentity; import org.bukkit.Bukkit; import org.bukkit.NamespacedKey; diff --git a/core/src/main/java/art/arcane/iris/core/IrisWorlds.java b/core/src/main/java/art/arcane/iris/world/IrisWorlds.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/IrisWorlds.java rename to core/src/main/java/art/arcane/iris/world/IrisWorlds.java index 268dd6bf9..ecc139e7b 100644 --- a/core/src/main/java/art/arcane/iris/core/IrisWorlds.java +++ b/core/src/main/java/art/arcane/iris/world/IrisWorlds.java @@ -1,14 +1,16 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; -import art.arcane.iris.core.lifecycle.MissingWorldStorageLog; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.pack.PackDownloader; -import art.arcane.iris.core.service.StudioSVC; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.configuration.IrisSettings; + +import art.arcane.iris.world.lifecycle.MissingWorldStorageLog; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.PackDownloader; +import art.arcane.iris.studio.StudioSVC; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.util.common.misc.ServerProperties; +import art.arcane.iris.platform.bootstrap.ServerProperties; import art.arcane.volmlib.util.bukkit.WorldIdentity; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.io.IO; diff --git a/core/src/main/java/art/arcane/iris/core/SnapshotDirectoryTreeDeleter.java b/core/src/main/java/art/arcane/iris/world/SnapshotDirectoryTreeDeleter.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/SnapshotDirectoryTreeDeleter.java rename to core/src/main/java/art/arcane/iris/world/SnapshotDirectoryTreeDeleter.java index 1284a370e..04f8cce40 100644 --- a/core/src/main/java/art/arcane/iris/core/SnapshotDirectoryTreeDeleter.java +++ b/core/src/main/java/art/arcane/iris/world/SnapshotDirectoryTreeDeleter.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; import java.io.IOException; import java.nio.file.DirectoryStream; diff --git a/core/src/main/java/art/arcane/iris/core/tools/WorldCreationProgressReporter.java b/core/src/main/java/art/arcane/iris/world/WorldCreationProgressReporter.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/tools/WorldCreationProgressReporter.java rename to core/src/main/java/art/arcane/iris/world/WorldCreationProgressReporter.java index ebe4ffe09..5c0abf216 100644 --- a/core/src/main/java/art/arcane/iris/core/tools/WorldCreationProgressReporter.java +++ b/core/src/main/java/art/arcane/iris/world/WorldCreationProgressReporter.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.tools; +package art.arcane.iris.world; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.RuntimeProgressMessages; -import art.arcane.iris.util.common.format.C; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.RuntimeProgressMessages; +import art.arcane.iris.localization.C; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.localization.MessageArgument; import art.arcane.volmlib.util.localization.TextKey; diff --git a/core/src/main/java/art/arcane/iris/core/WorldCreatorCompat.java b/core/src/main/java/art/arcane/iris/world/WorldCreatorCompat.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/WorldCreatorCompat.java rename to core/src/main/java/art/arcane/iris/world/WorldCreatorCompat.java index 8cdb5594b..5edc698f5 100644 --- a/core/src/main/java/art/arcane/iris/core/WorldCreatorCompat.java +++ b/core/src/main/java/art/arcane/iris/world/WorldCreatorCompat.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; import art.arcane.iris.spi.IrisLogging; import org.bukkit.Bukkit; diff --git a/core/src/main/java/art/arcane/iris/core/tools/WorldMaintenance.java b/core/src/main/java/art/arcane/iris/world/WorldMaintenance.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/tools/WorldMaintenance.java rename to core/src/main/java/art/arcane/iris/world/WorldMaintenance.java index 1397be1d8..71d73b964 100644 --- a/core/src/main/java/art/arcane/iris/core/tools/WorldMaintenance.java +++ b/core/src/main/java/art/arcane/iris/world/WorldMaintenance.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.tools; +package art.arcane.iris.world; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.engine.mantle.MantleSliceRetention; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.generation.mantle.MantleSliceRetention; import art.arcane.iris.spi.IrisLogging; import java.util.Map; diff --git a/core/src/main/java/art/arcane/iris/core/WorldRemovalPathPolicy.java b/core/src/main/java/art/arcane/iris/world/WorldRemovalPathPolicy.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/WorldRemovalPathPolicy.java rename to core/src/main/java/art/arcane/iris/world/WorldRemovalPathPolicy.java index 570e674f0..dd0b75538 100644 --- a/core/src/main/java/art/arcane/iris/core/WorldRemovalPathPolicy.java +++ b/core/src/main/java/art/arcane/iris/world/WorldRemovalPathPolicy.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; import org.bukkit.NamespacedKey; diff --git a/core/src/main/java/art/arcane/iris/core/WorldSlotKey.java b/core/src/main/java/art/arcane/iris/world/WorldSlotKey.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/WorldSlotKey.java rename to core/src/main/java/art/arcane/iris/world/WorldSlotKey.java index 37f194afb..abd6d7b45 100644 --- a/core/src/main/java/art/arcane/iris/core/WorldSlotKey.java +++ b/core/src/main/java/art/arcane/iris/world/WorldSlotKey.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; import java.util.Objects; import java.util.regex.Pattern; diff --git a/core/src/main/java/art/arcane/iris/core/service/EntityRiseSVC.java b/core/src/main/java/art/arcane/iris/world/entity/EntityRiseSVC.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/service/EntityRiseSVC.java rename to core/src/main/java/art/arcane/iris/world/entity/EntityRiseSVC.java index 79dd598fc..3a78b6d69 100644 --- a/core/src/main/java/art/arcane/iris/core/service/EntityRiseSVC.java +++ b/core/src/main/java/art/arcane/iris/world/entity/EntityRiseSVC.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.service; +package art.arcane.iris.world.entity; -import art.arcane.iris.util.common.plugin.IrisService; +import art.arcane.iris.platform.bukkit.plugin.IrisService; import org.bukkit.NamespacedKey; import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisAttributeModifier.java b/core/src/main/java/art/arcane/iris/world/entity/IrisAttributeModifier.java similarity index 72% rename from core/src/main/java/art/arcane/iris/engine/object/IrisAttributeModifier.java rename to core/src/main/java/art/arcane/iris/world/entity/IrisAttributeModifier.java index 9d9baa007..4259d2dc5 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisAttributeModifier.java +++ b/core/src/main/java/art/arcane/iris/world/entity/IrisAttributeModifier.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.world.entity; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.math.RNG; import lombok.AllArgsConstructor; @@ -47,32 +47,32 @@ import java.util.concurrent.ConcurrentHashMap; @Accessors(chain = true) @AllArgsConstructor @NoArgsConstructor -@Desc("Represents an attribute modifier for an item or an entity. This allows you to create modifications to basic game attributes such as MAX_HEALTH or ARMOR_VALUE.") +@Description("Represents an attribute modifier for an item or an entity. This allows you to create modifications to basic game attributes such as MAX_HEALTH or ARMOR_VALUE.") @Data public class IrisAttributeModifier { private static final Set WARNED_ATTRIBUTES = ConcurrentHashMap.newKeySet(); @Required - @Desc("The Attribute type key such as max_health or minecraft:armor. This type is pulled from the game attributes. Zombie & Horse attributes will not work on non-zombie/horse entities.\nUsing an attribute on an item will have affects when held, or worn. There is no way to specify further granularity as the game picks this depending on the item type.") + @Description("The Attribute type key such as max_health or minecraft:armor. This type is pulled from the game attributes. Zombie & Horse attributes will not work on non-zombie/horse entities.\nUsing an attribute on an item will have affects when held, or worn. There is no way to specify further granularity as the game picks this depending on the item type.") private String attribute = null; @MinNumber(2) @Required - @Desc("The Attribute Name is used internally only for the game. This value should be unique to all other attributes applied to this item/entity. It is not shown in game.") + @Description("The Attribute Name is used internally only for the game. This value should be unique to all other attributes applied to this item/entity. It is not shown in game.") private String name = ""; - @Desc("The application operation: ADD_NUMBER (default), ADD_SCALAR or MULTIPLY_SCALAR_1. Add Number adds to the default value. \nAdd scalar_1 will multiply by 1 for example if the health is 20 and you multiply_scalar_1 by 0.5, the health will result in 30, not 10. Use negative values to achieve that.") + @Description("The application operation: ADD_NUMBER (default), ADD_SCALAR or MULTIPLY_SCALAR_1. Add Number adds to the default value. \nAdd scalar_1 will multiply by 1 for example if the health is 20 and you multiply_scalar_1 by 0.5, the health will result in 30, not 10. Use negative values to achieve that.") private String operation = "ADD_NUMBER"; - @Desc("Minimum amount for this modifier. Iris randomly chooses an amount, this is the minimum it can choose randomly for this attribute.") + @Description("Minimum amount for this modifier. Iris randomly chooses an amount, this is the minimum it can choose randomly for this attribute.") private double minAmount = 1; - @Desc("Maximum amount for this modifier Iris randomly chooses an amount, this is the maximum it can choose randomly for this attribute.") + @Description("Maximum amount for this modifier Iris randomly chooses an amount, this is the maximum it can choose randomly for this attribute.") private double maxAmount = 1; @MinNumber(0) @MaxNumber(1) - @Desc("The chance that this attribute is applied (0 to 1). If the chance is 0.5 (50%), then Iris will only apply this attribute 50% of the time.") + @Description("The chance that this attribute is applied (0 to 1). If the chance is 0.5 (50%), then Iris will only apply this attribute 50% of the time.") private double chance = 1; public void apply(RNG rng, ItemMeta meta) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisEffect.java b/core/src/main/java/art/arcane/iris/world/entity/IrisEffect.java similarity index 82% rename from core/src/main/java/art/arcane/iris/engine/object/IrisEffect.java rename to core/src/main/java/art/arcane/iris/world/entity/IrisEffect.java index 4cb218d8d..1c27d9d02 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisEffect.java +++ b/core/src/main/java/art/arcane/iris/world/entity/IrisEffect.java @@ -16,22 +16,24 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.world.entity; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.annotations.DependsOn; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListPotionEffect; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.command.IrisCommandRegistry; + +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.pack.schema.annotation.DependsOn; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListPotionEffect; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.scheduling.ChronoLatch; -import art.arcane.iris.util.common.data.registry.RegistryUtil; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.platform.bukkit.registry.RegistryUtil; +import art.arcane.iris.world.task.J; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -52,7 +54,7 @@ import org.bukkit.util.Vector; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("An iris effect") +@Description("An iris effect") @Data public class IrisEffect { private final transient AtomicCache pt = new AtomicCache<>(); @@ -60,106 +62,106 @@ public class IrisEffect { private final transient AtomicCache particleEffectResolved = new AtomicCache<>(); private final transient AtomicCache soundResolved = new AtomicCache<>(); @RegistryListPotionEffect - @Desc("The potion effect to apply in this area") + @Description("The potion effect to apply in this area") private String potionEffect = ""; - @Desc("The particle effect to apply in the area") + @Description("The particle effect to apply in the area") private String particleEffect = null; @DependsOn({"particleEffect"}) @MinNumber(-32) @MaxNumber(32) - @Desc("Randomly offset from the surface to this surface+value") + @Description("Randomly offset from the surface to this surface+value") private int particleOffset = 0; @DependsOn({"particleEffect"}) @MinNumber(-8) @MaxNumber(8) - @Desc("The alt x, usually represents motion if the particle count is zero. Otherwise an offset.") + @Description("The alt x, usually represents motion if the particle count is zero. Otherwise an offset.") private double particleAltX = 0; @DependsOn({"particleEffect"}) @MinNumber(-8) @MaxNumber(8) - @Desc("The alt y, usually represents motion if the particle count is zero. Otherwise an offset.") + @Description("The alt y, usually represents motion if the particle count is zero. Otherwise an offset.") private double particleAltY = 0; @DependsOn({"particleEffect"}) @MinNumber(-8) @MaxNumber(8) - @Desc("The alt z, usually represents motion if the particle count is zero. Otherwise an offset.") + @Description("The alt z, usually represents motion if the particle count is zero. Otherwise an offset.") private double particleAltZ = 0; @DependsOn({"particleEffect"}) - @Desc("Randomize the altX by -altX to altX") + @Description("Randomize the altX by -altX to altX") private boolean randomAltX = true; @DependsOn({"particleEffect"}) - @Desc("Randomize the altY by -altY to altY") + @Description("Randomize the altY by -altY to altY") private boolean randomAltY = false; @DependsOn({"particleEffect"}) - @Desc("Randomize the altZ by -altZ to altZ") + @Description("Randomize the altZ by -altZ to altZ") private boolean randomAltZ = true; - @Desc("The sound to play") + @Description("The sound to play") private String sound = null; @DependsOn({"sound"}) @MinNumber(0) @MaxNumber(512) - @Desc("The max distance from the player the sound will play") + @Description("The max distance from the player the sound will play") private int soundDistance = 12; @DependsOn({"sound", "maxPitch"}) @MinNumber(0.01) @MaxNumber(1.99) - @Desc("The minimum sound pitch") + @Description("The minimum sound pitch") private double minPitch = 0.5D; @DependsOn({"sound", "minVolume"}) @MinNumber(0.01) @MaxNumber(1.99) - @Desc("The max sound pitch") + @Description("The max sound pitch") private double maxPitch = 1.5D; @DependsOn({"sound"}) @MinNumber(0.001) @MaxNumber(512) - @Desc("The sound volume.") + @Description("The sound volume.") private double volume = 1.5D; @DependsOn({"particleEffect"}) @MinNumber(0) @MaxNumber(512) - @Desc("The particle count. Try setting to zero for using the alt xyz to a motion value instead of an offset") + @Description("The particle count. Try setting to zero for using the alt xyz to a motion value instead of an offset") private int particleCount = 0; @DependsOn({"particleEffect"}) @MinNumber(0) @MaxNumber(64) - @Desc("How far away from the player particles can play") + @Description("How far away from the player particles can play") private int particleDistance = 20; @DependsOn({"particleEffect"}) @MinNumber(0) @MaxNumber(128) - @Desc("How wide the particles can play (player's view left and right) RADIUS") + @Description("How wide the particles can play (player's view left and right) RADIUS") private int particleDistanceWidth = 24; @DependsOn({"particleEffect"}) - @Desc("An extra value for some particles... Which bukkit doesn't even document.") + @Description("An extra value for some particles... Which bukkit doesn't even document.") private double extra = 0; @DependsOn({"potionEffect"}) @MinNumber(-1) @MaxNumber(1024) - @Desc("The Potion Strength or -1 to disable") + @Description("The Potion Strength or -1 to disable") private int potionStrength = -1; @DependsOn({"potionEffect", "potionTicksMin"}) @MinNumber(1) - @Desc("The max time the potion will last for") + @Description("The max time the potion will last for") private int potionTicksMax = 155; @DependsOn({"potionEffect", "potionTicksMax"}) @MinNumber(1) - @Desc("The min time the potion will last for") + @Description("The min time the potion will last for") private int potionTicksMin = 75; @Required @MinNumber(0) - @Desc("The effect interval in milliseconds") + @Description("The effect interval in milliseconds") private int interval = 150; @DependsOn({"particleEffect"}) @MinNumber(0) @MaxNumber(16) - @Desc("The effect distance start away") + @Description("The effect distance start away") private int particleAway = 5; @Required @MinNumber(1) - @Desc("The chance is 1 in CHANCE per interval") + @Description("The chance is 1 in CHANCE per interval") private int chance = 50; - @Desc("Run commands, with configurable location parameters") + @Description("Run commands, with configurable location parameters") private IrisCommandRegistry commandRegistry = null; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisEnchantment.java b/core/src/main/java/art/arcane/iris/world/entity/IrisEnchantment.java similarity index 81% rename from core/src/main/java/art/arcane/iris/engine/object/IrisEnchantment.java rename to core/src/main/java/art/arcane/iris/world/entity/IrisEnchantment.java index f0eda8d44..eb486c0cc 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisEnchantment.java +++ b/core/src/main/java/art/arcane/iris/world/entity/IrisEnchantment.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.world.entity; -import art.arcane.iris.engine.framework.LootResolver; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListEnchantment; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.structure.placement.LootResolver; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListEnchantment; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.math.RNG; import lombok.AllArgsConstructor; @@ -44,25 +44,25 @@ import java.util.Locale; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Represents an enchantment & level") +@Description("Represents an enchantment & level") @Data public class IrisEnchantment { @Required @RegistryListEnchantment - @Desc("The enchantment") + @Description("The enchantment") private String enchantment; @MinNumber(1) - @Desc("Minimum amount of this loot") + @Description("Minimum amount of this loot") private int minLevel = 1; @MinNumber(1) - @Desc("Maximum amount of this loot") + @Description("Maximum amount of this loot") private int maxLevel = 1; @MinNumber(0) @MaxNumber(1) - @Desc("The chance that this enchantment is applied (0 to 1)") + @Description("The chance that this enchantment is applied (0 to 1)") private double chance = 1; public void apply(RNG rng, ItemMeta meta) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisEngineSpawnerCooldown.java b/core/src/main/java/art/arcane/iris/world/entity/IrisEngineSpawnerCooldown.java similarity index 89% rename from core/src/main/java/art/arcane/iris/engine/object/IrisEngineSpawnerCooldown.java rename to core/src/main/java/art/arcane/iris/world/entity/IrisEngineSpawnerCooldown.java index dbd9aff41..afc405130 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisEngineSpawnerCooldown.java +++ b/core/src/main/java/art/arcane/iris/world/entity/IrisEngineSpawnerCooldown.java @@ -16,9 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.world.entity; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.pack.value.IrisRate; + +import art.arcane.iris.generation.runtime.Engine; import art.arcane.volmlib.util.math.M; import lombok.Data; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisEntity.java b/core/src/main/java/art/arcane/iris/world/entity/IrisEntity.java similarity index 79% rename from core/src/main/java/art/arcane/iris/engine/object/IrisEntity.java rename to core/src/main/java/art/arcane/iris/world/entity/IrisEntity.java index 2ce68ac4c..432c2c6dd 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisEntity.java +++ b/core/src/main/java/art/arcane/iris/world/entity/IrisEntity.java @@ -16,34 +16,40 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.world.entity; + +import art.arcane.iris.command.IrisCommand; +import art.arcane.iris.generation.decoration.IrisSurface; +import art.arcane.iris.world.loot.InventorySlotType; +import art.arcane.iris.world.loot.IrisLoot; +import art.arcane.iris.world.loot.IrisLootReference; +import art.arcane.iris.world.loot.IrisLootTable; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.service.EntityRiseSVC; -import art.arcane.iris.core.service.ExternalDataSVC; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.LootResolver; -import art.arcane.iris.engine.platform.EngineBukkitOps; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.RegistryListEntityType; -import art.arcane.iris.engine.object.annotations.RegistryListSpecialEntity; -import art.arcane.iris.engine.object.annotations.Required; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.integration.Identifier; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.integration.ExternalDataSVC; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.placement.LootResolver; +import art.arcane.iris.platform.generation.EngineBukkitOps; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.RegistryListEntityType; +import art.arcane.iris.pack.schema.annotation.RegistryListSpecialEntity; +import art.arcane.iris.pack.schema.annotation.Required; import art.arcane.iris.platform.bukkit.BukkitPlatform; -import art.arcane.iris.util.common.data.registry.RegistryUtil; +import art.arcane.iris.platform.bukkit.registry.RegistryUtil; import art.arcane.iris.platform.bukkit.BukkitWorld; import art.arcane.iris.spi.PlatformWorld; import art.arcane.volmlib.util.collection.KList; -import art.arcane.iris.util.common.format.C; +import art.arcane.iris.localization.C; import art.arcane.volmlib.util.math.M; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.common.plugin.Chunks; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.platform.bukkit.plugin.Chunks; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import lombok.Data; import lombok.EqualsAndHashCode; @@ -77,116 +83,116 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; -import static art.arcane.iris.util.common.data.registry.Particles.ITEM; +import static art.arcane.iris.platform.bukkit.registry.Particles.ITEM; @SuppressWarnings("ALL") @Accessors(chain = true) @NoArgsConstructor -@Desc("Represents an iris entity.") +@Description("Represents an iris entity.") @Data @EqualsAndHashCode(callSuper = false) public class IrisEntity extends IrisRegistrant { @Required @RegistryListEntityType - @Desc("The namespaced key of the entity type to spawn, such as minecraft:zombie or alexsmobs:grizzly_bear. To spawn a mob from another plugin or provider, set this type to unknown and define the special type.") + @Description("The namespaced key of the entity type to spawn, such as minecraft:zombie or alexsmobs:grizzly_bear. To spawn a mob from another plugin or provider, set this type to unknown and define the special type.") private String type = null; - @Desc("The SpawnReason name to spawn the entity with, such as NATURAL or COMMAND.") + @Description("The SpawnReason name to spawn the entity with, such as NATURAL or COMMAND.") private String reason = null; - @Desc("The custom name of this entity") + @Description("The custom name of this entity") private String customName = ""; - @Desc("Should the name on this entity be visible even if you arent looking at it.") + @Description("Should the name on this entity be visible even if you arent looking at it.") private boolean customNameVisible = false; - @Desc("If this entity type is a mob, should it be aware of it's surroundings & interact with the world.") + @Description("If this entity type is a mob, should it be aware of it's surroundings & interact with the world.") private boolean aware = true; - @Desc("If this entity type is a creature, should it have ai goals.") + @Description("If this entity type is a creature, should it have ai goals.") private boolean ai = true; - @Desc("Should this entity be glowing") + @Description("Should this entity be glowing") private boolean glowing = false; - @Desc("Should gravity apply to this entity") + @Description("Should gravity apply to this entity") private boolean gravity = true; - @Desc("When an entity is invulnerable it can only be damaged by players increative mode.") + @Description("When an entity is invulnerable it can only be damaged by players increative mode.") private boolean invulnerable = false; - @Desc("When an entity is silent it will not produce any sound.") + @Description("When an entity is silent it will not produce any sound.") private boolean silent = false; - @Desc("Should this entity be allowed to pickup items") + @Description("Should this entity be allowed to pickup items") private boolean pickupItems = false; - @Desc("Should this entity be removed when far away") + @Description("Should this entity be removed when far away") private boolean removable = false; - @Desc("Entity helmet equipment") + @Description("Entity helmet equipment") private IrisLoot helmet = null; - @Desc("Entity chestplate equipment") + @Description("Entity chestplate equipment") private IrisLoot chestplate = null; - @Desc("Entity boots equipment") + @Description("Entity boots equipment") private IrisLoot boots = null; - @Desc("Entity leggings equipment") + @Description("Entity leggings equipment") private IrisLoot leggings = null; - @Desc("Entity main hand equipment") + @Description("Entity main hand equipment") private IrisLoot mainHand = null; - @Desc("Entity off hand equipment") + @Description("Entity off hand equipment") private IrisLoot offHand = null; - @Desc("Make other entities ride this entity") + @Description("Make other entities ride this entity") @ArrayType(min = 1, type = IrisEntity.class) private KList passengers = new KList<>(); - @Desc("Attribute modifiers for this entity") + @Description("Attribute modifiers for this entity") @ArrayType(min = 1, type = IrisAttributeModifier.class) private KList attributes = new KList<>(); - @Desc("Loot tables for drops. Only the tables list is honored for entities; mode and multiplier are ignored, and the tables replace vanilla drops entirely.") + @Description("Loot tables for drops. Only the tables list is honored for entities; mode and multiplier are ignored, and the tables replace vanilla drops entirely.") private IrisLootReference loot = new IrisLootReference(); - @Desc("If specified, this entity will be leashed by this entity. I.e. THIS ENTITY Leashed by SPECIFIED. This has no effect on EnderDragons, Withers, Players, or Bats.Non-living entities excluding leashes will not persist as leashholders.") + @Description("If specified, this entity will be leashed by this entity. I.e. THIS ENTITY Leashed by SPECIFIED. This has no effect on EnderDragons, Withers, Players, or Bats.Non-living entities excluding leashes will not persist as leashholders.") private IrisEntity leashHolder = null; - @Desc("If specified, this entity will spawn with an effect") + @Description("If specified, this entity will spawn with an effect") private IrisEffect spawnEffect = null; - @Desc("Simply moves the entity from below the surface slowly out of the ground as a spawn-in effect") + @Description("Simply moves the entity from below the surface slowly out of the ground as a spawn-in effect") private boolean spawnEffectRiseOutOfGround = false; - @Desc("The main gene for a panda if the entity type is a panda. One of NORMAL, LAZY, WORRIED, PLAYFUL, BROWN, WEAK or AGGRESSIVE.") + @Description("The main gene for a panda if the entity type is a panda. One of NORMAL, LAZY, WORRIED, PLAYFUL, BROWN, WEAK or AGGRESSIVE.") private String pandaMainGene = null; - @Desc("The hidden gene for a panda if the entity type is a panda. One of NORMAL, LAZY, WORRIED, PLAYFUL, BROWN, WEAK or AGGRESSIVE.") + @Description("The hidden gene for a panda if the entity type is a panda. One of NORMAL, LAZY, WORRIED, PLAYFUL, BROWN, WEAK or AGGRESSIVE.") private String pandaHiddenGene = null; - @Desc("The this entity is ageable, set it's baby status") + @Description("The this entity is ageable, set it's baby status") private boolean baby = false; - @Desc("If the entity should never be culled.") + @Description("If the entity should never be culled.") private boolean keepEntity = false; - @Desc("The surface type to spawn this mob on") + @Description("The surface type to spawn this mob on") private IrisSurface surface = IrisSurface.LAND; @RegistryListSpecialEntity - @Desc("Create a mob from another plugin, such as Mythic Mobs. Should be in the format of a namespace of PluginName:MobName") + @Description("Create a mob from another plugin, such as Mythic Mobs. Should be in the format of a namespace of PluginName:MobName") private String specialType = ""; - @Desc("Set to true if you want to apply all of the settings here to the mob, even though an external plugin has already done so.") + @Description("Set to true if you want to apply all of the settings here to the mob, even though an external plugin has already done so.") private boolean applySettingsToCustomMobAnyways = false; @ArrayType(min = 1, type = IrisCommand.class) - @Desc("Run raw commands when this entity is spawned. Use {x}, {y}, and {z} for location. /summon pig {x} {y} {z}") + @Description("Run raw commands when this entity is spawned. Use {x}, {y}, and {z} for location. /summon pig {x} {y} {z}") private KList rawCommands = new KList<>(); public EntityType getBukkitType() { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisEntitySpawn.java b/core/src/main/java/art/arcane/iris/world/entity/IrisEntitySpawn.java similarity index 90% rename from core/src/main/java/art/arcane/iris/engine/object/IrisEntitySpawn.java rename to core/src/main/java/art/arcane/iris/world/entity/IrisEntitySpawn.java index 006167250..2785afc69 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisEntitySpawn.java +++ b/core/src/main/java/art/arcane/iris/world/entity/IrisEntitySpawn.java @@ -16,27 +16,32 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.world.entity; -import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.generation.decoration.IrisSurface; +import art.arcane.iris.pack.value.IrisPosition; + +import art.arcane.volmlib.util.math.Rarity; + +import art.arcane.iris.pack.loading.IrisData; import art.arcane.iris.platform.bukkit.BukkitWorldBinding; import art.arcane.iris.platform.bukkit.BukkitPlatform; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.LootResolver; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListResource; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.placement.LootResolver; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.format.C; +import art.arcane.iris.localization.C; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.math.Vector3d; import art.arcane.volmlib.util.matter.MatterMarker; import art.arcane.volmlib.util.matter.slices.MarkerMatter; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -52,23 +57,23 @@ import org.bukkit.entity.Entity; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Represents an entity spawn during initial chunk generation") +@Description("Represents an entity spawn during initial chunk generation") @Data -public class IrisEntitySpawn implements IRare { +public class IrisEntitySpawn implements Rarity { private final transient AtomicCache rng = new AtomicCache<>(); private final transient AtomicCache ent = new AtomicCache<>(); @RegistryListResource(IrisEntity.class) @Required - @Desc("The entity") + @Description("The entity") private String entity = ""; @MinNumber(1) - @Desc("The 1 in RARITY chance for this entity to spawn") + @Description("The 1 in RARITY chance for this entity to spawn") private int rarity = 1; @MinNumber(1) - @Desc("The minumum of this entity to spawn") + @Description("The minumum of this entity to spawn") private int minSpawns = 1; @MinNumber(1) - @Desc("The max of this entity to spawn") + @Description("The max of this entity to spawn") private int maxSpawns = 1; private transient IrisSpawner referenceSpawner; private transient IrisMarker referenceMarker; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisMarker.java b/core/src/main/java/art/arcane/iris/world/entity/IrisMarker.java similarity index 67% rename from core/src/main/java/art/arcane/iris/engine/object/IrisMarker.java rename to core/src/main/java/art/arcane/iris/world/entity/IrisMarker.java index 4446e5194..55f2b324c 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisMarker.java +++ b/core/src/main/java/art/arcane/iris/world/entity/IrisMarker.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.world.entity; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.RegistryListResource; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; import lombok.AllArgsConstructor; @@ -33,22 +33,22 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @AllArgsConstructor @NoArgsConstructor -@Desc("Represents a marker") +@Description("Represents a marker") @Data @EqualsAndHashCode(callSuper = false) public class IrisMarker extends IrisRegistrant { - @Desc("A list of spawners to add to anywhere this marker is.") + @Description("A list of spawners to add to anywhere this marker is.") @RegistryListResource(IrisSpawner.class) @ArrayType(type = String.class, min = 1) private KList spawners = new KList<>(); - @Desc("Remove this marker when the block it's assigned to is changed.") + @Description("Remove this marker when the block it's assigned to is changed.") private boolean removeOnChange = true; - @Desc("If true, markers will only be placed here if there is 2 air blocks above it.") + @Description("If true, markers will only be placed here if there is 2 air blocks above it.") private boolean emptyAbove = true; - @Desc("If this marker is used, what is the chance it removes itself. For example 25% (0.25) would mean that on average 4 uses will remove a specific marker. Set this below 0 (-1) to never exhaust & set this to 1 or higher to always exhaust on first use.") + @Description("If this marker is used, what is the chance it removes itself. For example 25% (0.25) would mean that on average 4 uses will remove a specific marker. Set this below 0 (-1) to never exhaust & set this to 1 or higher to always exhaust on first use.") private double exhaustionChance = 0; public boolean shouldExhaust() { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisPotionEffect.java b/core/src/main/java/art/arcane/iris/world/entity/IrisPotionEffect.java similarity index 79% rename from core/src/main/java/art/arcane/iris/engine/object/IrisPotionEffect.java rename to core/src/main/java/art/arcane/iris/world/entity/IrisPotionEffect.java index f5cc2f3f1..a11878c48 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisPotionEffect.java +++ b/core/src/main/java/art/arcane/iris/world/entity/IrisPotionEffect.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.world.entity; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListPotionEffect; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListPotionEffect; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.iris.spi.IrisLogging; import lombok.AllArgsConstructor; import lombok.Data; @@ -39,26 +39,26 @@ import org.bukkit.potion.PotionEffectType; @AllArgsConstructor @Snippet("potion-effect") -@Desc("An iris potion effect") +@Description("An iris potion effect") @Data public class IrisPotionEffect { private final transient AtomicCache pt = new AtomicCache<>(); @Required @RegistryListPotionEffect - @Desc("The potion effect to apply in this area") + @Description("The potion effect to apply in this area") private String potionEffect = ""; @Required @MinNumber(-1) @MaxNumber(1024) - @Desc("The Potion Strength or -1 to disable") + @Description("The Potion Strength or -1 to disable") private int strength = -1; @Required @MinNumber(1) - @Desc("The time the potion will last for") + @Description("The time the potion will last for") private int ticks = 200; - @Desc("Is the effect ambient") + @Description("Is the effect ambient") private boolean ambient = false; - @Desc("Is the effect showing particles") + @Description("Is the effect showing particles") private boolean particles = true; public PotionEffectType getRealType() { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisSpawnGroup.java b/core/src/main/java/art/arcane/iris/world/entity/IrisSpawnGroup.java similarity index 69% rename from core/src/main/java/art/arcane/iris/engine/object/IrisSpawnGroup.java rename to core/src/main/java/art/arcane/iris/world/entity/IrisSpawnGroup.java index bb8dc4dab..a360b5a46 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisSpawnGroup.java +++ b/core/src/main/java/art/arcane/iris/world/entity/IrisSpawnGroup.java @@ -16,21 +16,21 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.world.entity; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.documentation.Description; -@Desc("Terrain modes are used to decide the generator type currently used") +@Description("Terrain modes are used to decide the generator type currently used") public enum IrisSpawnGroup { - @Desc("Spawns on the terrain surface") + @Description("Spawns on the terrain surface") NORMAL, - @Desc("Spawns in cave-air and low light level areas") + @Description("Spawns in cave-air and low light level areas") CAVE, - @Desc("Spawns underwater") + @Description("Spawns underwater") UNDERWATER, - @Desc("Spawns in beaches") + @Description("Spawns in beaches") BEACH } diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisSpawner.java b/core/src/main/java/art/arcane/iris/world/entity/IrisSpawner.java similarity index 79% rename from core/src/main/java/art/arcane/iris/engine/object/IrisSpawner.java rename to core/src/main/java/art/arcane/iris/world/entity/IrisSpawner.java index 38c9c69eb..c382f4efd 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisSpawner.java +++ b/core/src/main/java/art/arcane/iris/world/entity/IrisSpawner.java @@ -16,16 +16,23 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.world.entity; -import art.arcane.iris.core.compat.CompatFinding; -import art.arcane.iris.core.compat.CompatStatus; -import art.arcane.iris.core.compat.ContentGate; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.pack.validation.CompatPools; +import art.arcane.iris.pack.value.IrisRange; +import art.arcane.iris.pack.value.IrisRate; +import art.arcane.iris.world.IrisTimeBlock; +import art.arcane.iris.world.IrisWeather; + +import art.arcane.iris.pack.validation.CompatFinding; +import art.arcane.iris.pack.validation.CompatStatus; +import art.arcane.iris.pack.validation.ContentGate; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; import art.arcane.iris.spi.PlatformWorld; import art.arcane.volmlib.util.collection.KList; import lombok.AllArgsConstructor; @@ -41,39 +48,39 @@ import java.util.List; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Represents an entity spawn during initial chunk generation") +@Description("Represents an entity spawn during initial chunk generation") @Data public class IrisSpawner extends IrisRegistrant { private transient IrisMarker referenceMarker; @ArrayType(min = 1, type = IrisEntitySpawn.class) - @Desc("The entity spawns to add") + @Description("The entity spawns to add") private KList spawns = new KList<>(); @ArrayType(min = 1, type = IrisEntitySpawn.class) - @Desc("The entity spawns to add initially. EXECUTES PER CHUNK!") + @Description("The entity spawns to add initially. EXECUTES PER CHUNK!") private KList initialSpawns = new KList<>(); - @Desc("This spawner will not spawn in a given chunk if that chunk has more than the defined amount of living entities.") + @Description("This spawner will not spawn in a given chunk if that chunk has more than the defined amount of living entities.") private int maxEntitiesPerChunk = 1; - @Desc("The block of 24 hour time to contain this spawn in.") + @Description("The block of 24 hour time to contain this spawn in.") private IrisTimeBlock timeBlock = new IrisTimeBlock(); - @Desc("The weather condition required for this spawner to fire.") + @Description("The weather condition required for this spawner to fire.") private IrisWeather weather = IrisWeather.ANY; - @Desc("The maximum rate this spawner can fire") + @Description("The maximum rate this spawner can fire") private IrisRate maximumRate = new IrisRate(); - @Desc("The maximum rate this spawner can fire on a specific chunk") + @Description("The maximum rate this spawner can fire on a specific chunk") private IrisRate maximumRatePerChunk = new IrisRate(); - @Desc("The light levels this spawn is allowed to run in (0-15 inclusive)") + @Description("The light levels this spawn is allowed to run in (0-15 inclusive)") private IrisRange allowedLightLevels = new IrisRange(0, 15); - @Desc("Where should these spawns be placed") + @Description("Where should these spawns be placed") private IrisSpawnGroup group = IrisSpawnGroup.NORMAL; public boolean isValid(IrisBiome biome) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisSpawnerCooldowns.java b/core/src/main/java/art/arcane/iris/world/entity/IrisSpawnerCooldowns.java similarity index 91% rename from core/src/main/java/art/arcane/iris/engine/object/IrisSpawnerCooldowns.java rename to core/src/main/java/art/arcane/iris/world/entity/IrisSpawnerCooldowns.java index a784d0889..f14de45c0 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisSpawnerCooldowns.java +++ b/core/src/main/java/art/arcane/iris/world/entity/IrisSpawnerCooldowns.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.world.entity; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.volmlib.util.collection.KMap; import lombok.EqualsAndHashCode; import lombok.NonNull; diff --git a/core/src/main/java/art/arcane/iris/engine/object/PotionEffectTypes.java b/core/src/main/java/art/arcane/iris/world/entity/PotionEffectTypes.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/object/PotionEffectTypes.java rename to core/src/main/java/art/arcane/iris/world/entity/PotionEffectTypes.java index 4d4bb0aee..a51d149b6 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/PotionEffectTypes.java +++ b/core/src/main/java/art/arcane/iris/world/entity/PotionEffectTypes.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.world.entity; -import art.arcane.iris.core.compat.ContentGate; -import art.arcane.iris.util.common.reflect.KeyedType; +import art.arcane.iris.pack.validation.ContentGate; +import art.arcane.iris.platform.reflect.KeyedType; import org.bukkit.NamespacedKey; import org.bukkit.Registry; import org.bukkit.potion.PotionEffectType; diff --git a/core/src/main/java/art/arcane/iris/core/events/IrisEngineEvent.java b/core/src/main/java/art/arcane/iris/world/event/IrisEngineEvent.java similarity index 93% rename from core/src/main/java/art/arcane/iris/core/events/IrisEngineEvent.java rename to core/src/main/java/art/arcane/iris/world/event/IrisEngineEvent.java index 47b6d6500..3100e4dcd 100644 --- a/core/src/main/java/art/arcane/iris/core/events/IrisEngineEvent.java +++ b/core/src/main/java/art/arcane/iris/world/event/IrisEngineEvent.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.events; +package art.arcane.iris.world.event; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.generation.runtime.Engine; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/art/arcane/iris/core/events/IrisEngineHotloadEvent.java b/core/src/main/java/art/arcane/iris/world/event/IrisEngineHotloadEvent.java similarity index 93% rename from core/src/main/java/art/arcane/iris/core/events/IrisEngineHotloadEvent.java rename to core/src/main/java/art/arcane/iris/world/event/IrisEngineHotloadEvent.java index d47d4aebf..7d2c2317c 100644 --- a/core/src/main/java/art/arcane/iris/core/events/IrisEngineHotloadEvent.java +++ b/core/src/main/java/art/arcane/iris/world/event/IrisEngineHotloadEvent.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.events; +package art.arcane.iris.world.event; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.generation.runtime.Engine; import org.bukkit.event.HandlerList; public class IrisEngineHotloadEvent extends IrisEngineEvent { diff --git a/core/src/main/java/art/arcane/iris/core/events/IrisLootEvent.java b/core/src/main/java/art/arcane/iris/world/event/IrisLootEvent.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/events/IrisLootEvent.java rename to core/src/main/java/art/arcane/iris/world/event/IrisLootEvent.java index ece0a171f..e3acddfdf 100644 --- a/core/src/main/java/art/arcane/iris/core/events/IrisLootEvent.java +++ b/core/src/main/java/art/arcane/iris/world/event/IrisLootEvent.java @@ -1,12 +1,12 @@ -package art.arcane.iris.core.events; +package art.arcane.iris.world.event; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.InventorySlotType; -import art.arcane.iris.engine.object.IrisLootTable; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.world.loot.InventorySlotType; +import art.arcane.iris.world.loot.IrisLootTable; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.collection.KList; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import lombok.Getter; import org.bukkit.Bukkit; import org.bukkit.Location; diff --git a/core/src/main/java/art/arcane/iris/engine/history/BoundaryColumnGeometry.java b/core/src/main/java/art/arcane/iris/world/history/BoundaryColumnGeometry.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/history/BoundaryColumnGeometry.java rename to core/src/main/java/art/arcane/iris/world/history/BoundaryColumnGeometry.java index e33d45b7e..ba155e143 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/BoundaryColumnGeometry.java +++ b/core/src/main/java/art/arcane/iris/world/history/BoundaryColumnGeometry.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import java.util.ArrayList; import java.util.Arrays; diff --git a/core/src/main/java/art/arcane/iris/engine/history/BoundaryGeometryInfluence.java b/core/src/main/java/art/arcane/iris/world/history/BoundaryGeometryInfluence.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/history/BoundaryGeometryInfluence.java rename to core/src/main/java/art/arcane/iris/world/history/BoundaryGeometryInfluence.java index 89ea4038f..6cbc66d71 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/BoundaryGeometryInfluence.java +++ b/core/src/main/java/art/arcane/iris/world/history/BoundaryGeometryInfluence.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import java.util.List; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/history/ChunkGenerationOwnership.java b/core/src/main/java/art/arcane/iris/world/history/ChunkGenerationOwnership.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/history/ChunkGenerationOwnership.java rename to core/src/main/java/art/arcane/iris/world/history/ChunkGenerationOwnership.java index e7c3e2ac9..c2e8b340c 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/ChunkGenerationOwnership.java +++ b/core/src/main/java/art/arcane/iris/world/history/ChunkGenerationOwnership.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap; diff --git a/core/src/main/java/art/arcane/iris/engine/history/ChunkGenerationSemantics.java b/core/src/main/java/art/arcane/iris/world/history/ChunkGenerationSemantics.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/history/ChunkGenerationSemantics.java rename to core/src/main/java/art/arcane/iris/world/history/ChunkGenerationSemantics.java index 62ad917b9..0fc1e0f5d 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/ChunkGenerationSemantics.java +++ b/core/src/main/java/art/arcane/iris/world/history/ChunkGenerationSemantics.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; import java.nio.charset.StandardCharsets; import java.util.Collection; diff --git a/core/src/main/java/art/arcane/iris/engine/history/DiskBoundaryCapture.java b/core/src/main/java/art/arcane/iris/world/history/DiskBoundaryCapture.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/history/DiskBoundaryCapture.java rename to core/src/main/java/art/arcane/iris/world/history/DiskBoundaryCapture.java index ea821e09d..30f4d8ed8 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/DiskBoundaryCapture.java +++ b/core/src/main/java/art/arcane/iris/world/history/DiskBoundaryCapture.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import java.io.IOException; import java.nio.file.Path; diff --git a/core/src/main/java/art/arcane/iris/engine/history/FloatingBiomeOverlay.java b/core/src/main/java/art/arcane/iris/world/history/FloatingBiomeOverlay.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/history/FloatingBiomeOverlay.java rename to core/src/main/java/art/arcane/iris/world/history/FloatingBiomeOverlay.java index 7a3504f22..cef54cb4f 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/FloatingBiomeOverlay.java +++ b/core/src/main/java/art/arcane/iris/world/history/FloatingBiomeOverlay.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import java.util.Objects; import java.util.function.IntBinaryOperator; diff --git a/core/src/main/java/art/arcane/iris/engine/history/GenerationActivation.java b/core/src/main/java/art/arcane/iris/world/history/GenerationActivation.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/history/GenerationActivation.java rename to core/src/main/java/art/arcane/iris/world/history/GenerationActivation.java index 6f9bb9ed5..e675065a4 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/GenerationActivation.java +++ b/core/src/main/java/art/arcane/iris/world/history/GenerationActivation.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import com.google.gson.JsonObject; import com.google.gson.JsonNull; diff --git a/core/src/main/java/art/arcane/iris/engine/history/GenerationAdmission.java b/core/src/main/java/art/arcane/iris/world/history/GenerationAdmission.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/history/GenerationAdmission.java rename to core/src/main/java/art/arcane/iris/world/history/GenerationAdmission.java index 50420f3dd..29f67d874 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/GenerationAdmission.java +++ b/core/src/main/java/art/arcane/iris/world/history/GenerationAdmission.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import java.nio.file.Path; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/history/GenerationBlend.java b/core/src/main/java/art/arcane/iris/world/history/GenerationBlend.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/history/GenerationBlend.java rename to core/src/main/java/art/arcane/iris/world/history/GenerationBlend.java index be8ae1cf3..3cd3cd358 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/GenerationBlend.java +++ b/core/src/main/java/art/arcane/iris/world/history/GenerationBlend.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; public final class GenerationBlend { private GenerationBlend() { diff --git a/core/src/main/java/art/arcane/iris/engine/history/GenerationBoundary.java b/core/src/main/java/art/arcane/iris/world/history/GenerationBoundary.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/history/GenerationBoundary.java rename to core/src/main/java/art/arcane/iris/world/history/GenerationBoundary.java index fb10a3b90..5d2323a22 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/GenerationBoundary.java +++ b/core/src/main/java/art/arcane/iris/world/history/GenerationBoundary.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import it.unimi.dsi.fastutil.longs.LongOpenHashSet; diff --git a/core/src/main/java/art/arcane/iris/engine/history/GenerationBoundarySignatureSampler.java b/core/src/main/java/art/arcane/iris/world/history/GenerationBoundarySignatureSampler.java similarity index 80% rename from core/src/main/java/art/arcane/iris/engine/history/GenerationBoundarySignatureSampler.java rename to core/src/main/java/art/arcane/iris/world/history/GenerationBoundarySignatureSampler.java index 587a64264..6e5188752 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/GenerationBoundarySignatureSampler.java +++ b/core/src/main/java/art/arcane/iris/world/history/GenerationBoundarySignatureSampler.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.engine.IrisEngine; +import art.arcane.iris.generation.runtime.IrisEngine; import java.io.IOException; diff --git a/core/src/main/java/art/arcane/iris/engine/history/GenerationBoundaryStore.java b/core/src/main/java/art/arcane/iris/world/history/GenerationBoundaryStore.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/history/GenerationBoundaryStore.java rename to core/src/main/java/art/arcane/iris/world/history/GenerationBoundaryStore.java index 63d0932c5..be3db16cf 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/GenerationBoundaryStore.java +++ b/core/src/main/java/art/arcane/iris/world/history/GenerationBoundaryStore.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; import it.unimi.dsi.fastutil.longs.LongArrays; diff --git a/core/src/main/java/art/arcane/iris/engine/history/GenerationBuildRevision.java b/core/src/main/java/art/arcane/iris/world/history/GenerationBuildRevision.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/history/GenerationBuildRevision.java rename to core/src/main/java/art/arcane/iris/world/history/GenerationBuildRevision.java index 00dfb73e0..1664efaac 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/GenerationBuildRevision.java +++ b/core/src/main/java/art/arcane/iris/world/history/GenerationBuildRevision.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import java.io.IOException; import java.io.InputStream; diff --git a/core/src/main/java/art/arcane/iris/engine/history/GenerationEpoch.java b/core/src/main/java/art/arcane/iris/world/history/GenerationEpoch.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/history/GenerationEpoch.java rename to core/src/main/java/art/arcane/iris/world/history/GenerationEpoch.java index 5d409125c..f43598520 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/GenerationEpoch.java +++ b/core/src/main/java/art/arcane/iris/world/history/GenerationEpoch.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import com.google.gson.JsonObject; diff --git a/core/src/main/java/art/arcane/iris/engine/history/GenerationEpochContractFactory.java b/core/src/main/java/art/arcane/iris/world/history/GenerationEpochContractFactory.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/history/GenerationEpochContractFactory.java rename to core/src/main/java/art/arcane/iris/world/history/GenerationEpochContractFactory.java index 4f24f154a..5e597a3ce 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/GenerationEpochContractFactory.java +++ b/core/src/main/java/art/arcane/iris/world/history/GenerationEpochContractFactory.java @@ -1,13 +1,13 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.nms.datapack.IDataFixer; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisDimensionMode; -import art.arcane.iris.engine.object.IrisDimensionModeType; -import art.arcane.iris.engine.object.IrisDimensionType; -import art.arcane.iris.engine.object.IrisDimensionTypeOptions; -import art.arcane.iris.engine.object.IrisEnvironment; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.platform.bukkit.nms.datapack.IDataFixer; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisDimensionMode; +import art.arcane.iris.generation.terrain.IrisDimensionModeType; +import art.arcane.iris.generation.terrain.IrisDimensionType; +import art.arcane.iris.generation.terrain.IrisDimensionTypeOptions; +import art.arcane.iris.world.IrisEnvironment; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonObject; diff --git a/core/src/main/java/art/arcane/iris/engine/history/GenerationFindCatalog.java b/core/src/main/java/art/arcane/iris/world/history/GenerationFindCatalog.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/history/GenerationFindCatalog.java rename to core/src/main/java/art/arcane/iris/world/history/GenerationFindCatalog.java index 15d868c39..16b80b88f 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/GenerationFindCatalog.java +++ b/core/src/main/java/art/arcane/iris/world/history/GenerationFindCatalog.java @@ -1,10 +1,10 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisRegion; import art.arcane.volmlib.util.collection.KList; import java.io.IOException; diff --git a/core/src/main/java/art/arcane/iris/engine/history/GenerationHistory.java b/core/src/main/java/art/arcane/iris/world/history/GenerationHistory.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/history/GenerationHistory.java rename to core/src/main/java/art/arcane/iris/world/history/GenerationHistory.java index 4335f78dc..3b7f851bf 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/GenerationHistory.java +++ b/core/src/main/java/art/arcane/iris/world/history/GenerationHistory.java @@ -1,7 +1,7 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.core.pack.AtomicDirectoryPublisher; -import art.arcane.iris.util.common.io.Durability; +import art.arcane.iris.pack.AtomicDirectoryPublisher; +import art.arcane.iris.world.storage.Durability; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; import java.io.File; diff --git a/core/src/main/java/art/arcane/iris/engine/history/GenerationHistoryPaths.java b/core/src/main/java/art/arcane/iris/world/history/GenerationHistoryPaths.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/history/GenerationHistoryPaths.java rename to core/src/main/java/art/arcane/iris/world/history/GenerationHistoryPaths.java index 663dae137..da0a54b27 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/GenerationHistoryPaths.java +++ b/core/src/main/java/art/arcane/iris/world/history/GenerationHistoryPaths.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import java.nio.file.Path; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/history/GenerationHistoryRuntimeRouter.java b/core/src/main/java/art/arcane/iris/world/history/GenerationHistoryRuntimeRouter.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/history/GenerationHistoryRuntimeRouter.java rename to core/src/main/java/art/arcane/iris/world/history/GenerationHistoryRuntimeRouter.java index 955d4bd16..481167759 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/GenerationHistoryRuntimeRouter.java +++ b/core/src/main/java/art/arcane/iris/world/history/GenerationHistoryRuntimeRouter.java @@ -1,11 +1,11 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.IrisEngineMantle; -import art.arcane.iris.engine.framework.EngineTarget; -import art.arcane.iris.engine.framework.GenerationTransitionGate; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.runtime.IrisEngineMantle; +import art.arcane.iris.generation.runtime.EngineTarget; +import art.arcane.iris.generation.runtime.GenerationTransitionGate; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.matter.Matter; diff --git a/core/src/main/java/art/arcane/iris/engine/history/GenerationHistoryStore.java b/core/src/main/java/art/arcane/iris/world/history/GenerationHistoryStore.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/history/GenerationHistoryStore.java rename to core/src/main/java/art/arcane/iris/world/history/GenerationHistoryStore.java index 530ac14d5..410fc9d5a 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/GenerationHistoryStore.java +++ b/core/src/main/java/art/arcane/iris/world/history/GenerationHistoryStore.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.util.common.io.Durability; +import art.arcane.iris.world.storage.Durability; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonElement; diff --git a/core/src/main/java/art/arcane/iris/engine/history/GenerationKernelCatalog.java b/core/src/main/java/art/arcane/iris/world/history/GenerationKernelCatalog.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/history/GenerationKernelCatalog.java rename to core/src/main/java/art/arcane/iris/world/history/GenerationKernelCatalog.java index 12bed0b53..3d7b61c61 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/GenerationKernelCatalog.java +++ b/core/src/main/java/art/arcane/iris/world/history/GenerationKernelCatalog.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import java.io.IOException; import java.io.InputStream; diff --git a/core/src/main/java/art/arcane/iris/engine/history/GenerationKernelRegistry.java b/core/src/main/java/art/arcane/iris/world/history/GenerationKernelRegistry.java similarity index 96% rename from core/src/main/java/art/arcane/iris/engine/history/GenerationKernelRegistry.java rename to core/src/main/java/art/arcane/iris/world/history/GenerationKernelRegistry.java index 23c2cff38..eb66e9173 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/GenerationKernelRegistry.java +++ b/core/src/main/java/art/arcane/iris/world/history/GenerationKernelRegistry.java @@ -1,12 +1,12 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.DimensionStackContext; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.UpperDimensionContext; -import art.arcane.iris.engine.framework.EngineMode; -import art.arcane.iris.engine.framework.SeedManager; -import art.arcane.iris.engine.mantle.EngineMantle; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.DimensionStackContext; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.runtime.UpperDimensionContext; +import art.arcane.iris.generation.runtime.EngineMode; +import art.arcane.iris.generation.runtime.SeedManager; +import art.arcane.iris.generation.mantle.EngineMantle; import java.io.IOException; import java.nio.file.Path; diff --git a/core/src/main/java/art/arcane/iris/engine/history/GenerationKernelV1.java b/core/src/main/java/art/arcane/iris/world/history/GenerationKernelV1.java similarity index 85% rename from core/src/main/java/art/arcane/iris/engine/history/GenerationKernelV1.java rename to core/src/main/java/art/arcane/iris/world/history/GenerationKernelV1.java index ffd06633d..5af8ca069 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/GenerationKernelV1.java +++ b/core/src/main/java/art/arcane/iris/world/history/GenerationKernelV1.java @@ -1,19 +1,19 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.DimensionStackContext; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.IrisEngineMantle; -import art.arcane.iris.engine.UpperDimensionContext; -import art.arcane.iris.engine.framework.EngineMode; -import art.arcane.iris.engine.framework.SeedManager; -import art.arcane.iris.engine.actuator.IrisDimensionStackActuator; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.modifier.IrisCustomModifier; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisDimensionMode; -import art.arcane.iris.engine.object.IrisDimensionModeType; -import art.arcane.iris.engine.object.IrisStaticObjectLayer; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.DimensionStackContext; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.runtime.IrisEngineMantle; +import art.arcane.iris.generation.runtime.UpperDimensionContext; +import art.arcane.iris.generation.runtime.EngineMode; +import art.arcane.iris.generation.runtime.SeedManager; +import art.arcane.iris.generation.stage.IrisDimensionStackActuator; +import art.arcane.iris.generation.mantle.EngineMantle; +import art.arcane.iris.generation.stage.IrisCustomModifier; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisDimensionMode; +import art.arcane.iris.generation.terrain.IrisDimensionModeType; +import art.arcane.iris.structure.object.IrisStaticObjectLayer; import art.arcane.iris.spi.IrisLogging; import java.nio.file.Path; diff --git a/core/src/main/java/art/arcane/iris/engine/history/GenerationManifest.java b/core/src/main/java/art/arcane/iris/world/history/GenerationManifest.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/history/GenerationManifest.java rename to core/src/main/java/art/arcane/iris/world/history/GenerationManifest.java index b6be3b48d..5d02242e9 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/GenerationManifest.java +++ b/core/src/main/java/art/arcane/iris/world/history/GenerationManifest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import com.google.gson.JsonArray; import com.google.gson.JsonElement; diff --git a/core/src/main/java/art/arcane/iris/engine/history/GenerationPackFingerprint.java b/core/src/main/java/art/arcane/iris/world/history/GenerationPackFingerprint.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/history/GenerationPackFingerprint.java rename to core/src/main/java/art/arcane/iris/world/history/GenerationPackFingerprint.java index a60444829..459230566 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/GenerationPackFingerprint.java +++ b/core/src/main/java/art/arcane/iris/world/history/GenerationPackFingerprint.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.core.pack.PackDirectoryResolver; +import art.arcane.iris.pack.PackDirectoryResolver; import java.io.File; import java.io.IOException; diff --git a/core/src/main/java/art/arcane/iris/engine/history/GenerationPackRepository.java b/core/src/main/java/art/arcane/iris/world/history/GenerationPackRepository.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/history/GenerationPackRepository.java rename to core/src/main/java/art/arcane/iris/world/history/GenerationPackRepository.java index 28e6f969a..a15a54aa9 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/GenerationPackRepository.java +++ b/core/src/main/java/art/arcane/iris/world/history/GenerationPackRepository.java @@ -1,7 +1,7 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.core.pack.AtomicDirectoryPublisher; -import art.arcane.iris.core.pack.PackDirectoryResolver; +import art.arcane.iris.pack.AtomicDirectoryPublisher; +import art.arcane.iris.pack.PackDirectoryResolver; import java.io.File; import java.io.IOException; diff --git a/core/src/main/java/art/arcane/iris/engine/history/GenerationPublicationLock.java b/core/src/main/java/art/arcane/iris/world/history/GenerationPublicationLock.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/history/GenerationPublicationLock.java rename to core/src/main/java/art/arcane/iris/world/history/GenerationPublicationLock.java index f441475e1..d932c3e5f 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/GenerationPublicationLock.java +++ b/core/src/main/java/art/arcane/iris/world/history/GenerationPublicationLock.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import java.io.IOException; import java.nio.channels.FileChannel; diff --git a/core/src/main/java/art/arcane/iris/engine/history/GenerationRegistryContract.java b/core/src/main/java/art/arcane/iris/world/history/GenerationRegistryContract.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/history/GenerationRegistryContract.java rename to core/src/main/java/art/arcane/iris/world/history/GenerationRegistryContract.java index d6f84c104..542cc332e 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/GenerationRegistryContract.java +++ b/core/src/main/java/art/arcane/iris/world/history/GenerationRegistryContract.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import com.google.gson.JsonArray; import com.google.gson.JsonElement; diff --git a/core/src/main/java/art/arcane/iris/engine/history/GenerationRegistryContractFactory.java b/core/src/main/java/art/arcane/iris/world/history/GenerationRegistryContractFactory.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/history/GenerationRegistryContractFactory.java rename to core/src/main/java/art/arcane/iris/world/history/GenerationRegistryContractFactory.java index 613b6213d..a8c4e7067 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/GenerationRegistryContractFactory.java +++ b/core/src/main/java/art/arcane/iris/world/history/GenerationRegistryContractFactory.java @@ -1,26 +1,26 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.core.compat.ContentGate; -import art.arcane.iris.core.compat.KeyStatus; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.core.nms.datapack.DataVersion; -import art.arcane.iris.core.nms.datapack.IDataFixer; -import art.arcane.iris.core.pack.PackDirectoryResolver; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBiomeCustom; -import art.arcane.iris.engine.object.IrisBiomeCustomCategory; -import art.arcane.iris.engine.object.IrisBiomeCustomParticle; -import art.arcane.iris.engine.object.IrisBiomeCustomPrecipType; -import art.arcane.iris.engine.object.IrisBiomeCustomSpawn; -import art.arcane.iris.engine.object.IrisBiomeCustomSpawnType; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisDimensionType; -import art.arcane.iris.engine.object.IrisDimensionTypeOptions; -import art.arcane.iris.engine.object.IrisNativeStructure; -import art.arcane.iris.engine.object.IrisObjectIO; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisStructurePlacement; +import art.arcane.iris.pack.validation.ContentGate; +import art.arcane.iris.pack.validation.KeyStatus; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.platform.bukkit.nms.datapack.DataVersion; +import art.arcane.iris.platform.bukkit.nms.datapack.IDataFixer; +import art.arcane.iris.pack.PackDirectoryResolver; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiomeCustom; +import art.arcane.iris.generation.biome.IrisBiomeCustomCategory; +import art.arcane.iris.generation.biome.IrisBiomeCustomParticle; +import art.arcane.iris.generation.biome.IrisBiomeCustomPrecipType; +import art.arcane.iris.generation.biome.IrisBiomeCustomSpawn; +import art.arcane.iris.generation.biome.IrisBiomeCustomSpawnType; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisDimensionType; +import art.arcane.iris.generation.terrain.IrisDimensionTypeOptions; +import art.arcane.iris.structure.nativegen.IrisNativeStructure; +import art.arcane.iris.structure.object.IrisObjectIO; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.structure.placement.IrisStructurePlacement; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformGenerationRegistry; import art.arcane.iris.spi.PlatformRegistries; diff --git a/core/src/main/java/art/arcane/iris/engine/history/GenerationSemanticCapture.java b/core/src/main/java/art/arcane/iris/world/history/GenerationSemanticCapture.java similarity index 93% rename from core/src/main/java/art/arcane/iris/engine/history/GenerationSemanticCapture.java rename to core/src/main/java/art/arcane/iris/world/history/GenerationSemanticCapture.java index ce179e1c8..4979d76cd 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/GenerationSemanticCapture.java +++ b/core/src/main/java/art/arcane/iris/world/history/GenerationSemanticCapture.java @@ -1,16 +1,16 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.IrisStructureLocator; -import art.arcane.iris.engine.framework.StructurePlacementMarker; -import art.arcane.iris.engine.framework.StructurePlacementScope; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.HydrologyColumnSample; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisStructurePlacement; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.placement.IrisStructureLocator; +import art.arcane.iris.structure.placement.StructurePlacementMarker; +import art.arcane.iris.structure.placement.StructurePlacementScope; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.HydrologyColumnSample; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.structure.placement.IrisStructurePlacement; import art.arcane.volmlib.util.mantle.flag.ReservedFlag; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.matter.Matter; diff --git a/core/src/main/java/art/arcane/iris/engine/history/GenerationSemanticIndex.java b/core/src/main/java/art/arcane/iris/world/history/GenerationSemanticIndex.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/history/GenerationSemanticIndex.java rename to core/src/main/java/art/arcane/iris/world/history/GenerationSemanticIndex.java index eaa32b8e6..a50584b77 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/GenerationSemanticIndex.java +++ b/core/src/main/java/art/arcane/iris/world/history/GenerationSemanticIndex.java @@ -1,8 +1,8 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.io.Durability; +import art.arcane.iris.world.storage.Durability; import it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; import it.unimi.dsi.fastutil.longs.LongOpenHashSet; diff --git a/core/src/main/java/art/arcane/iris/engine/history/GenerationSemanticQueries.java b/core/src/main/java/art/arcane/iris/world/history/GenerationSemanticQueries.java similarity index 95% rename from core/src/main/java/art/arcane/iris/engine/history/GenerationSemanticQueries.java rename to core/src/main/java/art/arcane/iris/world/history/GenerationSemanticQueries.java index 546d93bd1..4c4584afa 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/GenerationSemanticQueries.java +++ b/core/src/main/java/art/arcane/iris/world/history/GenerationSemanticQueries.java @@ -1,12 +1,12 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.IrisStructureLocator; -import art.arcane.iris.engine.hydrology.HydrologyFeatureQuery; -import art.arcane.iris.engine.hydrology.HydrologyFeatureRef; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.engine.hydrology.runtime.IrisHydrologyRuntime; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.placement.IrisStructureLocator; +import art.arcane.iris.generation.hydrology.HydrologyFeatureQuery; +import art.arcane.iris.generation.hydrology.HydrologyFeatureRef; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.hydrology.runtime.IrisHydrologyRuntime; import java.math.BigInteger; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/engine/history/GenerationTransition.java b/core/src/main/java/art/arcane/iris/world/history/GenerationTransition.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/history/GenerationTransition.java rename to core/src/main/java/art/arcane/iris/world/history/GenerationTransition.java index c287323fd..57743cbc7 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/GenerationTransition.java +++ b/core/src/main/java/art/arcane/iris/world/history/GenerationTransition.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import com.google.gson.JsonNull; import com.google.gson.JsonObject; diff --git a/core/src/main/java/art/arcane/iris/engine/history/IrisBoundarySignatureSampler.java b/core/src/main/java/art/arcane/iris/world/history/IrisBoundarySignatureSampler.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/history/IrisBoundarySignatureSampler.java rename to core/src/main/java/art/arcane/iris/world/history/IrisBoundarySignatureSampler.java index 466e884a3..5f0848385 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/IrisBoundarySignatureSampler.java +++ b/core/src/main/java/art/arcane/iris/world/history/IrisBoundarySignatureSampler.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.engine.IrisEngine; +import art.arcane.iris.generation.runtime.IrisEngine; import java.io.IOException; import java.util.LinkedHashMap; diff --git a/core/src/main/java/art/arcane/iris/engine/history/NativeBiomeSpawnSelection.java b/core/src/main/java/art/arcane/iris/world/history/NativeBiomeSpawnSelection.java similarity index 87% rename from core/src/main/java/art/arcane/iris/engine/history/NativeBiomeSpawnSelection.java rename to core/src/main/java/art/arcane/iris/world/history/NativeBiomeSpawnSelection.java index e8325299b..d85093d71 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/NativeBiomeSpawnSelection.java +++ b/core/src/main/java/art/arcane/iris/world/history/NativeBiomeSpawnSelection.java @@ -1,11 +1,11 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBiomeCustom; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiomeCustom; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.runtime.Engine; import java.util.LinkedHashMap; import java.util.Map; diff --git a/core/src/main/java/art/arcane/iris/engine/history/NativeTerrainReceipt.java b/core/src/main/java/art/arcane/iris/world/history/NativeTerrainReceipt.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/history/NativeTerrainReceipt.java rename to core/src/main/java/art/arcane/iris/world/history/NativeTerrainReceipt.java index d33a9cb78..1231b2b81 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/NativeTerrainReceipt.java +++ b/core/src/main/java/art/arcane/iris/world/history/NativeTerrainReceipt.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import java.io.BufferedOutputStream; import java.io.ByteArrayInputStream; diff --git a/core/src/main/java/art/arcane/iris/engine/history/RegionGenerationOwnership.java b/core/src/main/java/art/arcane/iris/world/history/RegionGenerationOwnership.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/history/RegionGenerationOwnership.java rename to core/src/main/java/art/arcane/iris/world/history/RegionGenerationOwnership.java index 5831ccb41..13ef00e9d 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/RegionGenerationOwnership.java +++ b/core/src/main/java/art/arcane/iris/world/history/RegionGenerationOwnership.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap; import it.unimi.dsi.fastutil.longs.LongOpenHashSet; diff --git a/core/src/main/java/art/arcane/iris/engine/history/SavedBiomeCapture.java b/core/src/main/java/art/arcane/iris/world/history/SavedBiomeCapture.java similarity index 97% rename from core/src/main/java/art/arcane/iris/engine/history/SavedBiomeCapture.java rename to core/src/main/java/art/arcane/iris/world/history/SavedBiomeCapture.java index 10f87c984..4e5b65270 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/SavedBiomeCapture.java +++ b/core/src/main/java/art/arcane/iris/world/history/SavedBiomeCapture.java @@ -1,8 +1,8 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisRegion; import java.io.IOException; import java.util.ArrayList; diff --git a/core/src/main/java/art/arcane/iris/engine/history/SavedBiomeChunk.java b/core/src/main/java/art/arcane/iris/world/history/SavedBiomeChunk.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/history/SavedBiomeChunk.java rename to core/src/main/java/art/arcane/iris/world/history/SavedBiomeChunk.java index 76d62afa6..c5b60a69c 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/SavedBiomeChunk.java +++ b/core/src/main/java/art/arcane/iris/world/history/SavedBiomeChunk.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import java.util.ArrayList; import java.util.Arrays; diff --git a/core/src/main/java/art/arcane/iris/engine/history/SavedBiomeRecovery.java b/core/src/main/java/art/arcane/iris/world/history/SavedBiomeRecovery.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/history/SavedBiomeRecovery.java rename to core/src/main/java/art/arcane/iris/world/history/SavedBiomeRecovery.java index fa3bbb6c4..04902d334 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/SavedBiomeRecovery.java +++ b/core/src/main/java/art/arcane/iris/world/history/SavedBiomeRecovery.java @@ -1,10 +1,10 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisRiverPolicy; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.generation.hydrology.IrisRiverPolicy; import java.io.IOException; import java.util.Collection; diff --git a/core/src/main/java/art/arcane/iris/engine/history/SavedBiomeRuntime.java b/core/src/main/java/art/arcane/iris/world/history/SavedBiomeRuntime.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/history/SavedBiomeRuntime.java rename to core/src/main/java/art/arcane/iris/world/history/SavedBiomeRuntime.java index c76658250..81b0b88c3 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/SavedBiomeRuntime.java +++ b/core/src/main/java/art/arcane/iris/world/history/SavedBiomeRuntime.java @@ -1,11 +1,11 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.framework.BiomeEnvironment; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.runtime.BiomeEnvironment; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; import art.arcane.iris.spi.IrisLogging; import java.io.IOException; diff --git a/core/src/main/java/art/arcane/iris/engine/history/SavedBiomeStore.java b/core/src/main/java/art/arcane/iris/world/history/SavedBiomeStore.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/history/SavedBiomeStore.java rename to core/src/main/java/art/arcane/iris/world/history/SavedBiomeStore.java index d977145c6..12caf8caf 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/SavedBiomeStore.java +++ b/core/src/main/java/art/arcane/iris/world/history/SavedBiomeStore.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/core/src/main/java/art/arcane/iris/engine/history/SavedBiomeUnavailableException.java b/core/src/main/java/art/arcane/iris/world/history/SavedBiomeUnavailableException.java similarity index 92% rename from core/src/main/java/art/arcane/iris/engine/history/SavedBiomeUnavailableException.java rename to core/src/main/java/art/arcane/iris/world/history/SavedBiomeUnavailableException.java index c1540512c..dab1e5afc 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/SavedBiomeUnavailableException.java +++ b/core/src/main/java/art/arcane/iris/world/history/SavedBiomeUnavailableException.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; public final class SavedBiomeUnavailableException extends IllegalStateException { private final boolean loading; diff --git a/core/src/main/java/art/arcane/iris/engine/history/SavedTerrainChunk.java b/core/src/main/java/art/arcane/iris/world/history/SavedTerrainChunk.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/history/SavedTerrainChunk.java rename to core/src/main/java/art/arcane/iris/world/history/SavedTerrainChunk.java index 1387f1e97..46599f837 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/SavedTerrainChunk.java +++ b/core/src/main/java/art/arcane/iris/world/history/SavedTerrainChunk.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import java.io.IOException; import java.nio.file.Path; diff --git a/core/src/main/java/art/arcane/iris/engine/history/SavedTerrainChunkReader.java b/core/src/main/java/art/arcane/iris/world/history/SavedTerrainChunkReader.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/history/SavedTerrainChunkReader.java rename to core/src/main/java/art/arcane/iris/world/history/SavedTerrainChunkReader.java index 97ccab3c8..db0b7b9d6 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/SavedTerrainChunkReader.java +++ b/core/src/main/java/art/arcane/iris/world/history/SavedTerrainChunkReader.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import art.arcane.volmlib.util.nbt.io.NBTUtil; import art.arcane.volmlib.util.nbt.tag.CompoundTag; diff --git a/core/src/main/java/art/arcane/iris/engine/history/TerrainBoundarySignature.java b/core/src/main/java/art/arcane/iris/world/history/TerrainBoundarySignature.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/history/TerrainBoundarySignature.java rename to core/src/main/java/art/arcane/iris/world/history/TerrainBoundarySignature.java index e13085071..81ea10a7d 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/TerrainBoundarySignature.java +++ b/core/src/main/java/art/arcane/iris/world/history/TerrainBoundarySignature.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import java.util.Arrays; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/history/TerrainBoundarySignatureStore.java b/core/src/main/java/art/arcane/iris/world/history/TerrainBoundarySignatureStore.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/history/TerrainBoundarySignatureStore.java rename to core/src/main/java/art/arcane/iris/world/history/TerrainBoundarySignatureStore.java index 8d9223d36..cfcdbe4fe 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/TerrainBoundarySignatureStore.java +++ b/core/src/main/java/art/arcane/iris/world/history/TerrainBoundarySignatureStore.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; import it.unimi.dsi.fastutil.longs.LongArrayList; diff --git a/core/src/main/java/art/arcane/iris/engine/history/TransitionBoundarySampler.java b/core/src/main/java/art/arcane/iris/world/history/TransitionBoundarySampler.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/history/TransitionBoundarySampler.java rename to core/src/main/java/art/arcane/iris/world/history/TransitionBoundarySampler.java index 5247556c2..fbc2999e1 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/TransitionBoundarySampler.java +++ b/core/src/main/java/art/arcane/iris/world/history/TransitionBoundarySampler.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import java.util.ArrayList; import java.util.Arrays; diff --git a/core/src/main/java/art/arcane/iris/engine/history/TransitionFluidContainment.java b/core/src/main/java/art/arcane/iris/world/history/TransitionFluidContainment.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/history/TransitionFluidContainment.java rename to core/src/main/java/art/arcane/iris/world/history/TransitionFluidContainment.java index d0fa7045d..e1445d5e6 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/TransitionFluidContainment.java +++ b/core/src/main/java/art/arcane/iris/world/history/TransitionFluidContainment.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import java.io.IOException; import java.util.ArrayList; diff --git a/core/src/main/java/art/arcane/iris/engine/history/TransitionGenerationPlan.java b/core/src/main/java/art/arcane/iris/world/history/TransitionGenerationPlan.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/history/TransitionGenerationPlan.java rename to core/src/main/java/art/arcane/iris/world/history/TransitionGenerationPlan.java index 32c986579..f210b4f92 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/TransitionGenerationPlan.java +++ b/core/src/main/java/art/arcane/iris/world/history/TransitionGenerationPlan.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import java.util.Objects; import java.util.Optional; diff --git a/core/src/main/java/art/arcane/iris/engine/history/TransitionGeometryBlender.java b/core/src/main/java/art/arcane/iris/world/history/TransitionGeometryBlender.java similarity index 99% rename from core/src/main/java/art/arcane/iris/engine/history/TransitionGeometryBlender.java rename to core/src/main/java/art/arcane/iris/world/history/TransitionGeometryBlender.java index 510837ea1..9f5d87df0 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/TransitionGeometryBlender.java +++ b/core/src/main/java/art/arcane/iris/world/history/TransitionGeometryBlender.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import java.util.ArrayList; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/engine/history/WorldChunkInventory.java b/core/src/main/java/art/arcane/iris/world/history/WorldChunkInventory.java similarity index 98% rename from core/src/main/java/art/arcane/iris/engine/history/WorldChunkInventory.java rename to core/src/main/java/art/arcane/iris/world/history/WorldChunkInventory.java index fa62fd4a1..922913596 100644 --- a/core/src/main/java/art/arcane/iris/engine/history/WorldChunkInventory.java +++ b/core/src/main/java/art/arcane/iris/world/history/WorldChunkInventory.java @@ -1,7 +1,7 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.util.nbt.common.mca.MCAFile; -import art.arcane.iris.util.nbt.common.mca.MCAUtil; +import art.arcane.iris.world.storage.region.MCAFile; +import art.arcane.iris.world.storage.region.MCAUtil; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; import java.io.IOException; diff --git a/core/src/main/java/art/arcane/iris/core/lifecycle/BukkitPublicBackend.java b/core/src/main/java/art/arcane/iris/world/lifecycle/BukkitPublicBackend.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/lifecycle/BukkitPublicBackend.java rename to core/src/main/java/art/arcane/iris/world/lifecycle/BukkitPublicBackend.java index 90b67b930..ce6bb3c31 100644 --- a/core/src/main/java/art/arcane/iris/core/lifecycle/BukkitPublicBackend.java +++ b/core/src/main/java/art/arcane/iris/world/lifecycle/BukkitPublicBackend.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; -import art.arcane.iris.core.nms.INMS; +import art.arcane.iris.platform.bukkit.nms.INMS; import art.arcane.volmlib.util.bukkit.WorldIdentity; import org.bukkit.World; import org.bukkit.WorldCreator; diff --git a/core/src/main/java/art/arcane/iris/core/lifecycle/BukkitStartupPaths.java b/core/src/main/java/art/arcane/iris/world/lifecycle/BukkitStartupPaths.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/lifecycle/BukkitStartupPaths.java rename to core/src/main/java/art/arcane/iris/world/lifecycle/BukkitStartupPaths.java index 462c3d870..56892901a 100644 --- a/core/src/main/java/art/arcane/iris/core/lifecycle/BukkitStartupPaths.java +++ b/core/src/main/java/art/arcane/iris/world/lifecycle/BukkitStartupPaths.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; import java.io.IOException; import java.io.InputStream; diff --git a/core/src/main/java/art/arcane/iris/core/lifecycle/BukkitWorldConfiguration.java b/core/src/main/java/art/arcane/iris/world/lifecycle/BukkitWorldConfiguration.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/lifecycle/BukkitWorldConfiguration.java rename to core/src/main/java/art/arcane/iris/world/lifecycle/BukkitWorldConfiguration.java index 0a90e445a..25196cae8 100644 --- a/core/src/main/java/art/arcane/iris/core/lifecycle/BukkitWorldConfiguration.java +++ b/core/src/main/java/art/arcane/iris/world/lifecycle/BukkitWorldConfiguration.java @@ -1,9 +1,9 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; -import art.arcane.iris.core.IrisWorldStorage; -import art.arcane.iris.core.WorldSlotKey; -import art.arcane.iris.engine.IrisEngineMantle; -import art.arcane.iris.engine.history.GenerationHistoryPaths; +import art.arcane.iris.world.IrisWorldStorage; +import art.arcane.iris.world.WorldSlotKey; +import art.arcane.iris.generation.runtime.IrisEngineMantle; +import art.arcane.iris.world.history.GenerationHistoryPaths; import org.bukkit.NamespacedKey; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.InvalidConfigurationException; diff --git a/core/src/main/java/art/arcane/iris/core/lifecycle/CapabilityResolution.java b/core/src/main/java/art/arcane/iris/world/lifecycle/CapabilityResolution.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/lifecycle/CapabilityResolution.java rename to core/src/main/java/art/arcane/iris/world/lifecycle/CapabilityResolution.java index 909eac039..a04a96a2f 100644 --- a/core/src/main/java/art/arcane/iris/core/lifecycle/CapabilityResolution.java +++ b/core/src/main/java/art/arcane/iris/world/lifecycle/CapabilityResolution.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; import java.lang.reflect.Constructor; import java.lang.reflect.Field; diff --git a/core/src/main/java/art/arcane/iris/core/lifecycle/CapabilitySnapshot.java b/core/src/main/java/art/arcane/iris/world/lifecycle/CapabilitySnapshot.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/lifecycle/CapabilitySnapshot.java rename to core/src/main/java/art/arcane/iris/world/lifecycle/CapabilitySnapshot.java index 27bbab2ad..7e838c2c4 100644 --- a/core/src/main/java/art/arcane/iris/core/lifecycle/CapabilitySnapshot.java +++ b/core/src/main/java/art/arcane/iris/world/lifecycle/CapabilitySnapshot.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; import art.arcane.iris.spi.CapabilityProbe; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.scheduling.FoliaScheduler; import org.bukkit.Bukkit; import org.bukkit.Server; diff --git a/core/src/main/java/art/arcane/iris/core/lifecycle/DirectoryDurability.java b/core/src/main/java/art/arcane/iris/world/lifecycle/DirectoryDurability.java similarity index 94% rename from core/src/main/java/art/arcane/iris/core/lifecycle/DirectoryDurability.java rename to core/src/main/java/art/arcane/iris/world/lifecycle/DirectoryDurability.java index fca7c312d..a85091f46 100644 --- a/core/src/main/java/art/arcane/iris/core/lifecycle/DirectoryDurability.java +++ b/core/src/main/java/art/arcane/iris/world/lifecycle/DirectoryDurability.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.io.Durability; +import art.arcane.iris.world.storage.Durability; import java.io.File; import java.io.IOException; import java.nio.channels.FileChannel; diff --git a/core/src/main/java/art/arcane/iris/core/lifecycle/HuskWorldQuarantine.java b/core/src/main/java/art/arcane/iris/world/lifecycle/HuskWorldQuarantine.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/lifecycle/HuskWorldQuarantine.java rename to core/src/main/java/art/arcane/iris/world/lifecycle/HuskWorldQuarantine.java index cd33e68d5..6fc105721 100644 --- a/core/src/main/java/art/arcane/iris/core/lifecycle/HuskWorldQuarantine.java +++ b/core/src/main/java/art/arcane/iris/world/lifecycle/HuskWorldQuarantine.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; -import art.arcane.iris.core.IrisWorldStorage; -import art.arcane.iris.core.WorldSlotKey; -import art.arcane.iris.engine.IrisEngineMantle; +import art.arcane.iris.world.IrisWorldStorage; +import art.arcane.iris.world.WorldSlotKey; +import art.arcane.iris.generation.runtime.IrisEngineMantle; import java.io.IOException; import java.nio.file.AtomicMoveNotSupportedException; diff --git a/core/src/main/java/art/arcane/iris/core/lifecycle/IrisRuntimeStatics.java b/core/src/main/java/art/arcane/iris/world/lifecycle/IrisRuntimeStatics.java similarity index 60% rename from core/src/main/java/art/arcane/iris/core/lifecycle/IrisRuntimeStatics.java rename to core/src/main/java/art/arcane/iris/world/lifecycle/IrisRuntimeStatics.java index 802650dd5..08b7bb572 100644 --- a/core/src/main/java/art/arcane/iris/core/lifecycle/IrisRuntimeStatics.java +++ b/core/src/main/java/art/arcane/iris/world/lifecycle/IrisRuntimeStatics.java @@ -1,9 +1,9 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; -import art.arcane.iris.core.ServerConfigurator; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.runtime.RuntimeInjection; -import art.arcane.iris.core.runtime.WorldRuntimeControlService; +import art.arcane.iris.pack.datapack.ServerConfigurator; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.world.runtime.RuntimeInjection; +import art.arcane.iris.world.runtime.WorldRuntimeControlService; import art.arcane.iris.spi.IrisServices; public final class IrisRuntimeStatics { diff --git a/core/src/main/java/art/arcane/iris/core/lifecycle/IrisWorldRemovalService.java b/core/src/main/java/art/arcane/iris/world/lifecycle/IrisWorldRemovalService.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/lifecycle/IrisWorldRemovalService.java rename to core/src/main/java/art/arcane/iris/world/lifecycle/IrisWorldRemovalService.java index c45782a9a..81ffb3db5 100644 --- a/core/src/main/java/art/arcane/iris/core/lifecycle/IrisWorldRemovalService.java +++ b/core/src/main/java/art/arcane/iris/world/lifecycle/IrisWorldRemovalService.java @@ -1,19 +1,19 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; -import art.arcane.iris.core.IrisWorldStorage; -import art.arcane.iris.core.IrisWorlds; -import art.arcane.iris.core.ServerConfigurator; -import art.arcane.iris.core.SnapshotDirectoryTreeDeleter; -import art.arcane.iris.core.WorldRemovalPathPolicy; -import art.arcane.iris.core.link.MultiverseCoreLink; -import art.arcane.iris.core.runtime.WorldDeletionQueue; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.world.IrisWorldStorage; +import art.arcane.iris.world.IrisWorlds; +import art.arcane.iris.pack.datapack.ServerConfigurator; +import art.arcane.iris.world.SnapshotDirectoryTreeDeleter; +import art.arcane.iris.world.WorldRemovalPathPolicy; +import art.arcane.iris.integration.MultiverseCoreLink; +import art.arcane.iris.world.runtime.WorldDeletionQueue; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.util.common.misc.ServerProperties; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.platform.bootstrap.ServerProperties; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.bukkit.WorldIdentity; import org.bukkit.Bukkit; import org.bukkit.Location; diff --git a/core/src/main/java/art/arcane/iris/core/lifecycle/LifecycleOperationCoordinator.java b/core/src/main/java/art/arcane/iris/world/lifecycle/LifecycleOperationCoordinator.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/lifecycle/LifecycleOperationCoordinator.java rename to core/src/main/java/art/arcane/iris/world/lifecycle/LifecycleOperationCoordinator.java index 406a45581..ca44de82c 100644 --- a/core/src/main/java/art/arcane/iris/core/lifecycle/LifecycleOperationCoordinator.java +++ b/core/src/main/java/art/arcane/iris/world/lifecycle/LifecycleOperationCoordinator.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; import art.arcane.iris.spi.IrisLogging; diff --git a/core/src/main/java/art/arcane/iris/core/lifecycle/ManagedWorldLoader.java b/core/src/main/java/art/arcane/iris/world/lifecycle/ManagedWorldLoader.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/lifecycle/ManagedWorldLoader.java rename to core/src/main/java/art/arcane/iris/world/lifecycle/ManagedWorldLoader.java index c559ef23e..2da002e52 100644 --- a/core/src/main/java/art/arcane/iris/core/lifecycle/ManagedWorldLoader.java +++ b/core/src/main/java/art/arcane/iris/world/lifecycle/ManagedWorldLoader.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; import java.util.Objects; import java.util.concurrent.CompletableFuture; diff --git a/core/src/main/java/art/arcane/iris/core/lifecycle/MissingWorldStorageLog.java b/core/src/main/java/art/arcane/iris/world/lifecycle/MissingWorldStorageLog.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/lifecycle/MissingWorldStorageLog.java rename to core/src/main/java/art/arcane/iris/world/lifecycle/MissingWorldStorageLog.java index ffe5a4688..36d3557e4 100644 --- a/core/src/main/java/art/arcane/iris/core/lifecycle/MissingWorldStorageLog.java +++ b/core/src/main/java/art/arcane/iris/world/lifecycle/MissingWorldStorageLog.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; diff --git a/core/src/main/java/art/arcane/iris/core/lifecycle/PaperLibBootstrap.java b/core/src/main/java/art/arcane/iris/world/lifecycle/PaperLibBootstrap.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/lifecycle/PaperLibBootstrap.java rename to core/src/main/java/art/arcane/iris/world/lifecycle/PaperLibBootstrap.java index c836774e6..9e9916c8a 100644 --- a/core/src/main/java/art/arcane/iris/core/lifecycle/PaperLibBootstrap.java +++ b/core/src/main/java/art/arcane/iris/world/lifecycle/PaperLibBootstrap.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; import art.arcane.iris.spi.IrisLogging; import io.papermc.lib.PaperLib; diff --git a/core/src/main/java/art/arcane/iris/core/lifecycle/PaperLikeRuntimeBackend.java b/core/src/main/java/art/arcane/iris/world/lifecycle/PaperLikeRuntimeBackend.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/lifecycle/PaperLikeRuntimeBackend.java rename to core/src/main/java/art/arcane/iris/world/lifecycle/PaperLikeRuntimeBackend.java index ffbc61a3d..a850794a3 100644 --- a/core/src/main/java/art/arcane/iris/core/lifecycle/PaperLikeRuntimeBackend.java +++ b/core/src/main/java/art/arcane/iris/world/lifecycle/PaperLikeRuntimeBackend.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.bukkit.WorldIdentity; diff --git a/core/src/main/java/art/arcane/iris/core/lifecycle/ServerFamily.java b/core/src/main/java/art/arcane/iris/world/lifecycle/ServerFamily.java similarity index 89% rename from core/src/main/java/art/arcane/iris/core/lifecycle/ServerFamily.java rename to core/src/main/java/art/arcane/iris/world/lifecycle/ServerFamily.java index 0bfaf801f..3666b7c53 100644 --- a/core/src/main/java/art/arcane/iris/core/lifecycle/ServerFamily.java +++ b/core/src/main/java/art/arcane/iris/world/lifecycle/ServerFamily.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; import java.util.Locale; diff --git a/core/src/main/java/art/arcane/iris/core/lifecycle/VanishedWorldStorage.java b/core/src/main/java/art/arcane/iris/world/lifecycle/VanishedWorldStorage.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/lifecycle/VanishedWorldStorage.java rename to core/src/main/java/art/arcane/iris/world/lifecycle/VanishedWorldStorage.java index 2f048e9fe..f85670c51 100644 --- a/core/src/main/java/art/arcane/iris/core/lifecycle/VanishedWorldStorage.java +++ b/core/src/main/java/art/arcane/iris/world/lifecycle/VanishedWorldStorage.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; import art.arcane.iris.spi.IrisLogging; diff --git a/core/src/main/java/art/arcane/iris/core/lifecycle/WorldLifecycleBackend.java b/core/src/main/java/art/arcane/iris/world/lifecycle/WorldLifecycleBackend.java similarity index 90% rename from core/src/main/java/art/arcane/iris/core/lifecycle/WorldLifecycleBackend.java rename to core/src/main/java/art/arcane/iris/world/lifecycle/WorldLifecycleBackend.java index 9b3d39124..b99218278 100644 --- a/core/src/main/java/art/arcane/iris/core/lifecycle/WorldLifecycleBackend.java +++ b/core/src/main/java/art/arcane/iris/world/lifecycle/WorldLifecycleBackend.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; import org.bukkit.World; diff --git a/core/src/main/java/art/arcane/iris/core/lifecycle/WorldLifecycleCaller.java b/core/src/main/java/art/arcane/iris/world/lifecycle/WorldLifecycleCaller.java similarity index 69% rename from core/src/main/java/art/arcane/iris/core/lifecycle/WorldLifecycleCaller.java rename to core/src/main/java/art/arcane/iris/world/lifecycle/WorldLifecycleCaller.java index 106c830e5..470a6dc29 100644 --- a/core/src/main/java/art/arcane/iris/core/lifecycle/WorldLifecycleCaller.java +++ b/core/src/main/java/art/arcane/iris/world/lifecycle/WorldLifecycleCaller.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; public enum WorldLifecycleCaller { STUDIO, diff --git a/core/src/main/java/art/arcane/iris/core/lifecycle/WorldLifecycleRequest.java b/core/src/main/java/art/arcane/iris/world/lifecycle/WorldLifecycleRequest.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/lifecycle/WorldLifecycleRequest.java rename to core/src/main/java/art/arcane/iris/world/lifecycle/WorldLifecycleRequest.java index d1594d03f..117bad9ee 100644 --- a/core/src/main/java/art/arcane/iris/core/lifecycle/WorldLifecycleRequest.java +++ b/core/src/main/java/art/arcane/iris/world/lifecycle/WorldLifecycleRequest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; -import art.arcane.iris.core.WorldCreatorCompat; +import art.arcane.iris.world.WorldCreatorCompat; import org.bukkit.NamespacedKey; import org.bukkit.World; import org.bukkit.WorldCreator; diff --git a/core/src/main/java/art/arcane/iris/core/lifecycle/WorldLifecycleService.java b/core/src/main/java/art/arcane/iris/world/lifecycle/WorldLifecycleService.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/lifecycle/WorldLifecycleService.java rename to core/src/main/java/art/arcane/iris/world/lifecycle/WorldLifecycleService.java index 8b9d6182b..44f4afa46 100644 --- a/core/src/main/java/art/arcane/iris/core/lifecycle/WorldLifecycleService.java +++ b/core/src/main/java/art/arcane/iris/world/lifecycle/WorldLifecycleService.java @@ -1,10 +1,10 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; -import art.arcane.iris.core.ServerConfigurator; -import art.arcane.iris.core.runtime.RuntimeInjection; +import art.arcane.iris.pack.datapack.ServerConfigurator; +import art.arcane.iris.world.runtime.RuntimeInjection; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.bukkit.WorldIdentity; import org.bukkit.NamespacedKey; import org.bukkit.World; diff --git a/core/src/main/java/art/arcane/iris/core/lifecycle/WorldLifecycleStaging.java b/core/src/main/java/art/arcane/iris/world/lifecycle/WorldLifecycleStaging.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/lifecycle/WorldLifecycleStaging.java rename to core/src/main/java/art/arcane/iris/world/lifecycle/WorldLifecycleStaging.java index 858fdbd2b..8e439b876 100644 --- a/core/src/main/java/art/arcane/iris/core/lifecycle/WorldLifecycleStaging.java +++ b/core/src/main/java/art/arcane/iris/world/lifecycle/WorldLifecycleStaging.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; import org.bukkit.generator.BiomeProvider; import org.bukkit.generator.ChunkGenerator; diff --git a/core/src/main/java/art/arcane/iris/core/lifecycle/WorldLifecycleSupport.java b/core/src/main/java/art/arcane/iris/world/lifecycle/WorldLifecycleSupport.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/lifecycle/WorldLifecycleSupport.java rename to core/src/main/java/art/arcane/iris/world/lifecycle/WorldLifecycleSupport.java index 1060de9e8..57ac0c591 100644 --- a/core/src/main/java/art/arcane/iris/core/lifecycle/WorldLifecycleSupport.java +++ b/core/src/main/java/art/arcane/iris/world/lifecycle/WorldLifecycleSupport.java @@ -1,14 +1,14 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; -import art.arcane.iris.core.IrisWorldStorage; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.core.nms.INMSBinding; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.world.IrisWorldStorage; +import art.arcane.iris.integration.Identifier; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.platform.bukkit.nms.INMSBinding; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.spi.CapabilityProbe; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.bukkit.WorldIdentity; import art.arcane.volmlib.util.scheduling.FoliaScheduler; import org.bukkit.Bukkit; diff --git a/core/src/main/java/art/arcane/iris/core/lifecycle/WorldReplacementBootstrap.java b/core/src/main/java/art/arcane/iris/world/lifecycle/WorldReplacementBootstrap.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/lifecycle/WorldReplacementBootstrap.java rename to core/src/main/java/art/arcane/iris/world/lifecycle/WorldReplacementBootstrap.java index 5b36bcf6e..3f5d8dc8a 100644 --- a/core/src/main/java/art/arcane/iris/core/lifecycle/WorldReplacementBootstrap.java +++ b/core/src/main/java/art/arcane/iris/world/lifecycle/WorldReplacementBootstrap.java @@ -1,11 +1,11 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; -import art.arcane.iris.core.ExactWorldSlotPathPolicy; -import art.arcane.iris.core.WorldSlotKey; -import art.arcane.iris.core.lifecycle.BukkitWorldConfiguration.WorldGeneratorSnapshot; -import art.arcane.iris.core.lifecycle.WorldReplacementFilesystem.ReplacementPaths; -import art.arcane.iris.core.lifecycle.WorldReplacementJournal.Phase; -import art.arcane.iris.core.lifecycle.WorldReplacementJournal.Transaction; +import art.arcane.iris.world.ExactWorldSlotPathPolicy; +import art.arcane.iris.world.WorldSlotKey; +import art.arcane.iris.world.lifecycle.BukkitWorldConfiguration.WorldGeneratorSnapshot; +import art.arcane.iris.world.lifecycle.WorldReplacementFilesystem.ReplacementPaths; +import art.arcane.iris.world.lifecycle.WorldReplacementJournal.Phase; +import art.arcane.iris.world.lifecycle.WorldReplacementJournal.Transaction; import java.io.File; import java.io.IOException; diff --git a/core/src/main/java/art/arcane/iris/core/lifecycle/WorldReplacementBootstrapMarker.java b/core/src/main/java/art/arcane/iris/world/lifecycle/WorldReplacementBootstrapMarker.java similarity index 89% rename from core/src/main/java/art/arcane/iris/core/lifecycle/WorldReplacementBootstrapMarker.java rename to core/src/main/java/art/arcane/iris/world/lifecycle/WorldReplacementBootstrapMarker.java index 543c8e637..ba933244c 100644 --- a/core/src/main/java/art/arcane/iris/core/lifecycle/WorldReplacementBootstrapMarker.java +++ b/core/src/main/java/art/arcane/iris/world/lifecycle/WorldReplacementBootstrapMarker.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; public final class WorldReplacementBootstrapMarker { private static volatile boolean bootstrappedThisProcess; diff --git a/core/src/main/java/art/arcane/iris/core/lifecycle/WorldReplacementEntryGuard.java b/core/src/main/java/art/arcane/iris/world/lifecycle/WorldReplacementEntryGuard.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/lifecycle/WorldReplacementEntryGuard.java rename to core/src/main/java/art/arcane/iris/world/lifecycle/WorldReplacementEntryGuard.java index 95d4dc67e..325188e93 100644 --- a/core/src/main/java/art/arcane/iris/core/lifecycle/WorldReplacementEntryGuard.java +++ b/core/src/main/java/art/arcane/iris/world/lifecycle/WorldReplacementEntryGuard.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; import java.io.ByteArrayOutputStream; import java.io.IOException; diff --git a/core/src/main/java/art/arcane/iris/core/lifecycle/WorldReplacementFilesystem.java b/core/src/main/java/art/arcane/iris/world/lifecycle/WorldReplacementFilesystem.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/lifecycle/WorldReplacementFilesystem.java rename to core/src/main/java/art/arcane/iris/world/lifecycle/WorldReplacementFilesystem.java index ec5d028a9..00d74b7eb 100644 --- a/core/src/main/java/art/arcane/iris/core/lifecycle/WorldReplacementFilesystem.java +++ b/core/src/main/java/art/arcane/iris/world/lifecycle/WorldReplacementFilesystem.java @@ -1,9 +1,9 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; -import art.arcane.iris.core.ExactWorldSlotPathPolicy; -import art.arcane.iris.core.SnapshotDirectoryTreeDeleter; -import art.arcane.iris.engine.history.GenerationHistory; -import art.arcane.iris.core.pack.PackDirectoryResolver; +import art.arcane.iris.world.ExactWorldSlotPathPolicy; +import art.arcane.iris.world.SnapshotDirectoryTreeDeleter; +import art.arcane.iris.world.history.GenerationHistory; +import art.arcane.iris.pack.PackDirectoryResolver; import java.io.IOException; import java.io.InputStream; diff --git a/core/src/main/java/art/arcane/iris/core/lifecycle/WorldReplacementJournal.java b/core/src/main/java/art/arcane/iris/world/lifecycle/WorldReplacementJournal.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/lifecycle/WorldReplacementJournal.java rename to core/src/main/java/art/arcane/iris/world/lifecycle/WorldReplacementJournal.java index 5b649c9a9..40db894f6 100644 --- a/core/src/main/java/art/arcane/iris/core/lifecycle/WorldReplacementJournal.java +++ b/core/src/main/java/art/arcane/iris/world/lifecycle/WorldReplacementJournal.java @@ -1,11 +1,11 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; -import art.arcane.iris.core.ExactWorldSlotPathPolicy; -import art.arcane.iris.core.IrisWorldStorage; -import art.arcane.iris.core.WorldSlotKey; -import art.arcane.iris.core.lifecycle.BukkitWorldConfiguration.WorldGeneratorSnapshot; +import art.arcane.iris.world.ExactWorldSlotPathPolicy; +import art.arcane.iris.world.IrisWorldStorage; +import art.arcane.iris.world.WorldSlotKey; +import art.arcane.iris.world.lifecycle.BukkitWorldConfiguration.WorldGeneratorSnapshot; -import art.arcane.iris.util.common.io.Durability; +import art.arcane.iris.world.storage.Durability; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; diff --git a/core/src/main/java/art/arcane/iris/core/lifecycle/WorldReplacementSeed.java b/core/src/main/java/art/arcane/iris/world/lifecycle/WorldReplacementSeed.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/lifecycle/WorldReplacementSeed.java rename to core/src/main/java/art/arcane/iris/world/lifecycle/WorldReplacementSeed.java index 930508816..cb3e4325f 100644 --- a/core/src/main/java/art/arcane/iris/core/lifecycle/WorldReplacementSeed.java +++ b/core/src/main/java/art/arcane/iris/world/lifecycle/WorldReplacementSeed.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; import art.arcane.volmlib.util.nbt.io.NBTUtil; import art.arcane.volmlib.util.nbt.io.NamedTag; diff --git a/core/src/main/java/art/arcane/iris/core/lifecycle/WorldUnloadBoundaryRegistry.java b/core/src/main/java/art/arcane/iris/world/lifecycle/WorldUnloadBoundaryRegistry.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/lifecycle/WorldUnloadBoundaryRegistry.java rename to core/src/main/java/art/arcane/iris/world/lifecycle/WorldUnloadBoundaryRegistry.java index 546ca92ce..4670c01ec 100644 --- a/core/src/main/java/art/arcane/iris/core/lifecycle/WorldUnloadBoundaryRegistry.java +++ b/core/src/main/java/art/arcane/iris/world/lifecycle/WorldUnloadBoundaryRegistry.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; import java.util.Objects; import java.util.concurrent.CompletableFuture; diff --git a/core/src/main/java/art/arcane/iris/core/lifecycle/WorldsProviderBackend.java b/core/src/main/java/art/arcane/iris/world/lifecycle/WorldsProviderBackend.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/lifecycle/WorldsProviderBackend.java rename to core/src/main/java/art/arcane/iris/world/lifecycle/WorldsProviderBackend.java index f6ee2d31d..418c019d6 100644 --- a/core/src/main/java/art/arcane/iris/core/lifecycle/WorldsProviderBackend.java +++ b/core/src/main/java/art/arcane/iris/world/lifecycle/WorldsProviderBackend.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; -import art.arcane.iris.core.IrisWorldStorage; +import art.arcane.iris.world.IrisWorldStorage; import org.bukkit.World; import org.bukkit.WorldType; diff --git a/core/src/main/java/art/arcane/iris/engine/object/InventorySlotType.java b/core/src/main/java/art/arcane/iris/world/loot/InventorySlotType.java similarity index 60% rename from core/src/main/java/art/arcane/iris/engine/object/InventorySlotType.java rename to core/src/main/java/art/arcane/iris/world/loot/InventorySlotType.java index 0014d1ade..c764b0ea6 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/InventorySlotType.java +++ b/core/src/main/java/art/arcane/iris/world/loot/InventorySlotType.java @@ -16,23 +16,23 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.world.loot; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.documentation.Description; -@Desc("An inventory slot type is used to represent a type of slot for items to fit into in any given inventory.") +@Description("An inventory slot type is used to represent a type of slot for items to fit into in any given inventory.") public enum InventorySlotType { - @Desc("Typically the one you want to go with. Storage represnents most slots in inventories.") + @Description("Typically the one you want to go with. Storage represnents most slots in inventories.") STORAGE, - @Desc("Used for the fuel slot in Furnaces, Blast furnaces, smokers etc.") + @Description("Used for the fuel slot in Furnaces, Blast furnaces, smokers etc.") FUEL, - @Desc("Used for the cook slot in furnaces") + @Description("Used for the cook slot in furnaces") FURNACE, - @Desc("Used for the cook slot in blast furnaces") + @Description("Used for the cook slot in blast furnaces") BLAST_FURNACE, - @Desc("Used for the cook slot in smokers") + @Description("Used for the cook slot in smokers") SMOKER, } diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisBlockDrops.java b/core/src/main/java/art/arcane/iris/world/loot/IrisBlockDrops.java similarity index 69% rename from core/src/main/java/art/arcane/iris/engine/object/IrisBlockDrops.java rename to core/src/main/java/art/arcane/iris/world/loot/IrisBlockDrops.java index 83eb8bd21..df2e12f63 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisBlockDrops.java +++ b/core/src/main/java/art/arcane/iris/world/loot/IrisBlockDrops.java @@ -16,15 +16,17 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.world.loot; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.framework.LootResolver; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.generation.block.IrisBlockData; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.structure.placement.LootResolver; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; import lombok.AllArgsConstructor; @@ -39,22 +41,22 @@ import org.bukkit.inventory.ItemStack; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Represents a block drop list") +@Description("Represents a block drop list") @Data public class IrisBlockDrops { private final transient AtomicCache> data = new AtomicCache<>(); @Required @ArrayType(min = 1, type = IrisBlockData.class) - @Desc("The blocks that drop loot") + @Description("The blocks that drop loot") private KList blocks = new KList<>(); - @Desc("If exact blocks is set to true, minecraft:barrel[axis=x] will only drop for that axis. When exact is false (default) any barrel will drop the defined drops.") + @Description("If exact blocks is set to true, minecraft:barrel[axis=x] will only drop for that axis. When exact is false (default) any barrel will drop the defined drops.") private boolean exactBlocks = false; - @Desc("Add in specific items to drop") + @Description("Add in specific items to drop") @ArrayType(min = 1, type = IrisLoot.class) private KList drops = new KList<>(); - @Desc("If this is in a biome, setting skipParents to true will ignore the drops in the region and dimension for this block type. The default (false) will allow all three nodes to fire and add to a list of drops.") + @Description("If this is in a biome, setting skipParents to true will ignore the drops in the region and dimension for this block type. The default (false) will allow all three nodes to fire and add to a list of drops.") private boolean skipParents = false; - @Desc("Removes the default vanilla block drops and only drops the given items & any parent loot tables specified for this block type.") + @Description("Removes the default vanilla block drops and only drops the given items & any parent loot tables specified for this block type.") private boolean replaceVanillaDrops = false; public boolean shouldDropFor(BlockData data, IrisData rdata) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisLoot.java b/core/src/main/java/art/arcane/iris/world/loot/IrisLoot.java similarity index 82% rename from core/src/main/java/art/arcane/iris/engine/object/IrisLoot.java rename to core/src/main/java/art/arcane/iris/world/loot/IrisLoot.java index 58cb6b433..dc44fb690 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisLoot.java +++ b/core/src/main/java/art/arcane/iris/world/loot/IrisLoot.java @@ -16,27 +16,30 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.world.loot; + +import art.arcane.iris.world.entity.IrisAttributeModifier; +import art.arcane.iris.world.entity.IrisEnchantment; import art.arcane.iris.platform.bukkit.BukkitBlockResolution; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.core.service.ExternalDataSVC; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.framework.LootResolver; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListItemType; -import art.arcane.iris.engine.object.annotations.Required; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.integration.Identifier; +import art.arcane.iris.integration.ExternalDataSVC; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.structure.placement.LootResolver; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListItemType; +import art.arcane.iris.pack.schema.annotation.Required; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; -import art.arcane.iris.util.common.format.C; +import art.arcane.iris.localization.C; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.math.RNG; import lombok.AllArgsConstructor; @@ -63,7 +66,7 @@ import java.util.Optional; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Represents a loot entry") +@Description("Represents a loot entry") @Data @EqualsAndHashCode(doNotUseGetters = true) @ToString(doNotUseGetters = true) @@ -71,55 +74,55 @@ public class IrisLoot { public static final int MAX_AMOUNT = 64; private final transient AtomicCache dyeColorResolved = new AtomicCache<>(); - @Desc("The target inventory slot types to fill this loot with. World generation only ever fills STORAGE; the other values are inert during worldgen.") + @Description("The target inventory slot types to fill this loot with. World generation only ever fills STORAGE; the other values are inert during worldgen.") private InventorySlotType slotTypes = InventorySlotType.STORAGE; @MinNumber(1) - @Desc("The sub rarity of this loot. Calculated after this loot table has been picked.") + @Description("The sub rarity of this loot. Calculated after this loot table has been picked.") private int rarity = 1; @MinNumber(1) @MaxNumber(MAX_AMOUNT) - @Desc("Minimum amount of this loot, from 1 to 64") + @Description("Minimum amount of this loot, from 1 to 64") private int minAmount = 1; @MinNumber(1) @MaxNumber(MAX_AMOUNT) - @Desc("Maximum amount of this loot, from 1 to 64") + @Description("Maximum amount of this loot, from 1 to 64") private int maxAmount = 1; @MinNumber(1) - @Desc("The display name of this item") + @Description("The display name of this item") private String displayName = null; @MinNumber(0) @MaxNumber(1) - @Desc("Minimum durability percent") + @Description("Minimum durability percent") private double minDurability = 0; @MinNumber(0) @MaxNumber(1) - @Desc("Maximum durability percent") + @Description("Maximum durability percent") private double maxDurability = 1; - @Desc("Define a custom model identifier 1.14+ only") + @Description("Define a custom model identifier 1.14+ only") private Integer customModel = null; - @Desc("Set this to true to prevent it from being broken") + @Description("Set this to true to prevent it from being broken") private boolean unbreakable = false; @ArrayType(min = 1, type = String.class) - @Desc("The item flags to add") + @Description("The item flags to add") private KList itemFlags = new KList<>(); - @Desc("Apply enchantments to this item") + @Description("Apply enchantments to this item") @ArrayType(min = 1, type = IrisEnchantment.class) private KList enchantments = new KList<>(); - @Desc("Apply attribute modifiers to this item") + @Description("Apply attribute modifiers to this item") @ArrayType(min = 1, type = IrisAttributeModifier.class) private KList attributes = new KList<>(); @ArrayType(min = 1, type = String.class) - @Desc("Add lore to this item") + @Description("Add lore to this item") private KList lore = new KList<>(); @RegistryListItemType @Required - @Desc("This is the item or block type. Does not accept minecraft:*, only materials such as DIAMOND_SWORD or DIRT. The exception are modded materials, as they require a namespace.") + @Description("This is the item or block type. Does not accept minecraft:*, only materials such as DIAMOND_SWORD or DIRT. The exception are modded materials, as they require a namespace.") private String type = ""; - @Desc("The dye color") + @Description("The dye color") private String dyeColor = null; - @Desc("The leather armor color") + @Description("The leather armor color") private String leatherColor = null; - @Desc("Defines a custom NBT Tag for the item.") + @Description("Defines a custom NBT Tag for the item.") private KMap customNbt; public Material getType() { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisLootMode.java b/core/src/main/java/art/arcane/iris/world/loot/IrisLootMode.java similarity index 52% rename from core/src/main/java/art/arcane/iris/engine/object/IrisLootMode.java rename to core/src/main/java/art/arcane/iris/world/loot/IrisLootMode.java index e63a59e5e..c19130452 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisLootMode.java +++ b/core/src/main/java/art/arcane/iris/world/loot/IrisLootMode.java @@ -16,18 +16,18 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.world.loot; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.documentation.Description; -@Desc("A loot mode is used to describe what to do with the existing loot layers before adding this loot. ADD appends to the building list of tables (dimension tables, then region tables, then biome tables). REPLACE swaps the parent tables for this reference's tables. CLEAR suppresses loot entirely at this point.") +@Description("A loot mode is used to describe what to do with the existing loot layers before adding this loot. ADD appends to the building list of tables (dimension tables, then region tables, then biome tables). REPLACE swaps the parent tables for this reference's tables. CLEAR suppresses loot entirely at this point.") public enum IrisLootMode { - @Desc("Add to the existing parent loot tables") + @Description("Add to the existing parent loot tables") ADD, - @Desc("Clear all parent loot tables and contribute nothing at this level. Any tables listed here are ignored.") + @Description("Clear all parent loot tables and contribute nothing at this level. Any tables listed here are ignored.") CLEAR, - @Desc("Replace all parent loot tables with this reference's tables") + @Description("Replace all parent loot tables with this reference's tables") REPLACE, - @Desc("Only use when there was no loot table defined by an object") + @Description("Only use when there was no loot table defined by an object") FALLBACK } diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisLootReference.java b/core/src/main/java/art/arcane/iris/world/loot/IrisLootReference.java similarity index 69% rename from core/src/main/java/art/arcane/iris/engine/object/IrisLootReference.java rename to core/src/main/java/art/arcane/iris/world/loot/IrisLootReference.java index 457785fac..a6b780a2e 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisLootReference.java +++ b/core/src/main/java/art/arcane/iris/world/loot/IrisLootReference.java @@ -16,18 +16,20 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.world.loot; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListResource; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.pack.validation.CompatPools; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; +import art.arcane.iris.pack.schema.annotation.Snippet; import art.arcane.volmlib.util.collection.KList; -import art.arcane.iris.util.common.data.DataProvider; +import art.arcane.iris.generation.block.DataProvider; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -37,21 +39,21 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Represents a loot entry") +@Description("Represents a loot entry") @Data public class IrisLootReference { public static final double MAX_MULTIPLIER = 16D; private final transient AtomicCache> tt = new AtomicCache<>(); - @Desc("ADD = add on top of parent tables. REPLACE = clear parent tables, then add these. CLEAR = clear parent tables and add nothing, even if tables are listed. FALLBACK = only used when nothing else defined a table.") + @Description("ADD = add on top of parent tables. REPLACE = clear parent tables, then add these. CLEAR = clear parent tables and add nothing, even if tables are listed. FALLBACK = only used when nothing else defined a table.") private IrisLootMode mode = IrisLootMode.ADD; @RegistryListResource(IrisLootTable.class) @ArrayType(min = 1, type = String.class) - @Desc("Add loot table registries here") + @Description("Add loot table registries here") private KList tables = new KList<>(); @MinNumber(0) @MaxNumber(MAX_MULTIPLIER) - @Desc("Scale loot sources in this area from 0 to 16 times their normal count") + @Description("Scale loot sources in this area from 0 to 16 times their normal count") private double multiplier = 1D; public KList getLootTables(DataProvider g) { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisLootTable.java b/core/src/main/java/art/arcane/iris/world/loot/IrisLootTable.java similarity index 76% rename from core/src/main/java/art/arcane/iris/engine/object/IrisLootTable.java rename to core/src/main/java/art/arcane/iris/world/loot/IrisLootTable.java index 4db606ea0..0f009ec7e 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisLootTable.java +++ b/core/src/main/java/art/arcane/iris/world/loot/IrisLootTable.java @@ -16,17 +16,19 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.world.loot; -import art.arcane.iris.core.compat.CompatStatus; -import art.arcane.iris.core.compat.ContentGate; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.engine.framework.LootResolver; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.Required; +import art.arcane.iris.pack.validation.CompatPools; + +import art.arcane.iris.pack.validation.CompatStatus; +import art.arcane.iris.pack.validation.ContentGate; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.structure.placement.LootResolver; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.Required; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; import lombok.AllArgsConstructor; @@ -41,7 +43,7 @@ import org.bukkit.inventory.ItemStack; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor -@Desc("Represents a loot table. Biomes, Regions & Objects can add or replace the virtual table with these loot tables") +@Description("Represents a loot table. Biomes, Regions & Objects can add or replace the virtual table with these loot tables") @Data @EqualsAndHashCode(callSuper = false) public class IrisLootTable extends IrisRegistrant { @@ -49,30 +51,30 @@ public class IrisLootTable extends IrisRegistrant { public static final int MAX_TRIES = 256; @Required - @Desc("The name of this loot table") + @Description("The name of this loot table") @MinNumber(2) private String name = ""; @MinNumber(1) - @Desc("The rarity as in 1 in X chance") + @Description("The rarity as in 1 in X chance") private int rarity = 1; @MinNumber(1) @MaxNumber(MAX_PICKED) - @Desc("The maximum amount of loot that can be picked in this table at a time, from 1 to 64") + @Description("The maximum amount of loot that can be picked in this table at a time, from 1 to 64") private int maxPicked = 5; @MinNumber(0) @MaxNumber(MAX_PICKED) - @Desc("The minimum amount of loot that can be picked in this table at a time, from 0 to 64") + @Description("The minimum amount of loot that can be picked in this table at a time, from 0 to 64") private int minPicked = 1; @MinNumber(1) @MaxNumber(MAX_TRIES) - @Desc("The maximum amount of tries to generate loot, from 1 to 256") + @Description("The maximum amount of tries to generate loot, from 1 to 256") private int maxTries = 10; - @Desc("The loot in this table") + @Description("The loot in this table") @ArrayType(min = 1, type = IrisLoot.class) private KList loot = new KList<>(); diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisVanillaLootTable.java b/core/src/main/java/art/arcane/iris/world/loot/IrisVanillaLootTable.java similarity index 94% rename from core/src/main/java/art/arcane/iris/engine/object/IrisVanillaLootTable.java rename to core/src/main/java/art/arcane/iris/world/loot/IrisVanillaLootTable.java index 1e87a18f5..2139a8f9d 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisVanillaLootTable.java +++ b/core/src/main/java/art/arcane/iris/world/loot/IrisVanillaLootTable.java @@ -1,8 +1,8 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.world.loot; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.framework.LootResolver; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.structure.placement.LootResolver; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/methods/AsyncOrMedievalPregenMethod.java b/core/src/main/java/art/arcane/iris/world/pregen/AsyncOrMedievalPregenMethod.java similarity index 94% rename from core/src/main/java/art/arcane/iris/core/pregenerator/methods/AsyncOrMedievalPregenMethod.java rename to core/src/main/java/art/arcane/iris/world/pregen/AsyncOrMedievalPregenMethod.java index 8b5e1b59c..cc726e177 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/methods/AsyncOrMedievalPregenMethod.java +++ b/core/src/main/java/art/arcane/iris/world/pregen/AsyncOrMedievalPregenMethod.java @@ -16,10 +16,8 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pregenerator.methods; +package art.arcane.iris.world.pregen; -import art.arcane.iris.core.pregenerator.PregenListener; -import art.arcane.iris.core.pregenerator.PregeneratorMethod; import art.arcane.volmlib.util.mantle.runtime.Mantle; import io.papermc.lib.PaperLib; import org.bukkit.World; diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/methods/AsyncPregenMethod.java b/core/src/main/java/art/arcane/iris/world/pregen/AsyncPregenMethod.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/pregenerator/methods/AsyncPregenMethod.java rename to core/src/main/java/art/arcane/iris/world/pregen/AsyncPregenMethod.java index 194b9feaa..5a9190262 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/methods/AsyncPregenMethod.java +++ b/core/src/main/java/art/arcane/iris/world/pregen/AsyncPregenMethod.java @@ -16,27 +16,22 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pregenerator.methods; +package art.arcane.iris.world.pregen; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.core.IrisPaperLikeBackendMode; -import art.arcane.iris.core.IrisRuntimeSchedulerMode; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.pregenerator.PregenAdmissionGate; -import art.arcane.iris.core.pregenerator.PregenDiagnostics; -import art.arcane.iris.core.pregenerator.PregenListener; -import art.arcane.iris.core.pregenerator.PregenMantleBackpressure; -import art.arcane.iris.core.pregenerator.PregeneratorMethod; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.core.nms.INMSBinding; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.world.IrisPaperLikeBackendMode; +import art.arcane.iris.world.IrisRuntimeSchedulerMode; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.platform.bukkit.nms.INMSBinding; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.volmlib.util.collection.KSet; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.math.M; -import art.arcane.iris.util.common.parallel.MultiBurst; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.generation.concurrent.MultiBurst; +import art.arcane.iris.world.task.J; import io.papermc.lib.PaperLib; import org.bukkit.Chunk; import org.bukkit.World; diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/methods/CachedPregenMethod.java b/core/src/main/java/art/arcane/iris/world/pregen/CachedPregenMethod.java similarity index 94% rename from core/src/main/java/art/arcane/iris/core/pregenerator/methods/CachedPregenMethod.java rename to core/src/main/java/art/arcane/iris/world/pregen/CachedPregenMethod.java index a68e73daf..b0f435c27 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/methods/CachedPregenMethod.java +++ b/core/src/main/java/art/arcane/iris/world/pregen/CachedPregenMethod.java @@ -1,10 +1,5 @@ -package art.arcane.iris.core.pregenerator.methods; +package art.arcane.iris.world.pregen; -import art.arcane.iris.core.pregenerator.PregenListener; -import art.arcane.iris.core.pregenerator.PregenTask; -import art.arcane.iris.core.pregenerator.PregeneratorMethod; -import art.arcane.iris.core.pregenerator.cache.PregenCache; -import art.arcane.iris.core.pregenerator.cache.PregenSavedChunkStatus; import art.arcane.volmlib.util.mantle.runtime.Mantle; public class CachedPregenMethod implements PregeneratorMethod { diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/methods/HybridPregenMethod.java b/core/src/main/java/art/arcane/iris/world/pregen/HybridPregenMethod.java similarity index 94% rename from core/src/main/java/art/arcane/iris/core/pregenerator/methods/HybridPregenMethod.java rename to core/src/main/java/art/arcane/iris/world/pregen/HybridPregenMethod.java index 74fcdb7c6..770e56faa 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/methods/HybridPregenMethod.java +++ b/core/src/main/java/art/arcane/iris/world/pregen/HybridPregenMethod.java @@ -16,10 +16,8 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pregenerator.methods; +package art.arcane.iris.world.pregen; -import art.arcane.iris.core.pregenerator.PregenListener; -import art.arcane.iris.core.pregenerator.PregeneratorMethod; import art.arcane.volmlib.util.mantle.runtime.Mantle; import org.bukkit.World; diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/IrisPregenerator.java b/core/src/main/java/art/arcane/iris/world/pregen/IrisPregenerator.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/pregenerator/IrisPregenerator.java rename to core/src/main/java/art/arcane/iris/world/pregen/IrisPregenerator.java index bc5cc8437..121866192 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/IrisPregenerator.java +++ b/core/src/main/java/art/arcane/iris/world/pregen/IrisPregenerator.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pregenerator; +package art.arcane.iris.world.pregen; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.spi.protocol.IrisMessage; -import art.arcane.iris.core.protocol.IrisProtocolServer; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.tools.IrisPackBenchmarking; +import art.arcane.iris.platform.protocol.IrisProtocolServer; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.pack.IrisPackBenchmarking; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KSet; import art.arcane.volmlib.util.format.Form; @@ -31,7 +31,7 @@ import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.math.M; import art.arcane.volmlib.util.math.Position2; import art.arcane.volmlib.util.scheduling.ChronoLatch; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.scheduling.Looper; import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/MantleHeapPressure.java b/core/src/main/java/art/arcane/iris/world/pregen/MantleHeapPressure.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/pregenerator/MantleHeapPressure.java rename to core/src/main/java/art/arcane/iris/world/pregen/MantleHeapPressure.java index 03ea5d2eb..59bb861c8 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/MantleHeapPressure.java +++ b/core/src/main/java/art/arcane/iris/world/pregen/MantleHeapPressure.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pregenerator; +package art.arcane.iris.world.pregen; import art.arcane.iris.spi.IrisLogging; diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/methods/MedievalPregenMethod.java b/core/src/main/java/art/arcane/iris/world/pregen/MedievalPregenMethod.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/pregenerator/methods/MedievalPregenMethod.java rename to core/src/main/java/art/arcane/iris/world/pregen/MedievalPregenMethod.java index 9fb85b254..51cb6c07c 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/methods/MedievalPregenMethod.java +++ b/core/src/main/java/art/arcane/iris/world/pregen/MedievalPregenMethod.java @@ -16,24 +16,21 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pregenerator.methods; +package art.arcane.iris.world.pregen; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.core.nms.INMSBinding; -import art.arcane.iris.core.pregenerator.PregenDiagnostics; -import art.arcane.iris.core.pregenerator.PregenListener; -import art.arcane.iris.core.pregenerator.PregeneratorMethod; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.PreservationRegistry; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.platform.bukkit.nms.INMSBinding; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.PreservationRegistry; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.util.project.context.ChunkContext; +import art.arcane.iris.generation.context.ChunkContext; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.math.M; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import io.papermc.lib.PaperLib; import org.bukkit.Chunk; import org.bukkit.World; diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/PregenAdmissionGate.java b/core/src/main/java/art/arcane/iris/world/pregen/PregenAdmissionGate.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/pregenerator/PregenAdmissionGate.java rename to core/src/main/java/art/arcane/iris/world/pregen/PregenAdmissionGate.java index 60b9566cd..a4533d99d 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/PregenAdmissionGate.java +++ b/core/src/main/java/art/arcane/iris/world/pregen/PregenAdmissionGate.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pregenerator; +package art.arcane.iris.world.pregen; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Condition; diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/PregenApiPhase.java b/core/src/main/java/art/arcane/iris/world/pregen/PregenApiPhase.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/pregenerator/PregenApiPhase.java rename to core/src/main/java/art/arcane/iris/world/pregen/PregenApiPhase.java index a2c1ffa68..60687005d 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/PregenApiPhase.java +++ b/core/src/main/java/art/arcane/iris/world/pregen/PregenApiPhase.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pregenerator; +package art.arcane.iris.world.pregen; public enum PregenApiPhase { STARTED, diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/PregenApiSink.java b/core/src/main/java/art/arcane/iris/world/pregen/PregenApiSink.java similarity index 90% rename from core/src/main/java/art/arcane/iris/core/pregenerator/PregenApiSink.java rename to core/src/main/java/art/arcane/iris/world/pregen/PregenApiSink.java index 8c844553e..ae78d5545 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/PregenApiSink.java +++ b/core/src/main/java/art/arcane/iris/world/pregen/PregenApiSink.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pregenerator; +package art.arcane.iris.world.pregen; -import art.arcane.iris.core.gui.PregeneratorJob; +import art.arcane.iris.studio.view.PregeneratorJob; public interface PregenApiSink { void pregen(PregenApiPhase phase, PregeneratorJob.PregenProgress progress); diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/cache/PregenCache.java b/core/src/main/java/art/arcane/iris/world/pregen/PregenCache.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/pregenerator/cache/PregenCache.java rename to core/src/main/java/art/arcane/iris/world/pregen/PregenCache.java index a9e8df5ac..ea1400214 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/cache/PregenCache.java +++ b/core/src/main/java/art/arcane/iris/world/pregen/PregenCache.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pregenerator.cache; +package art.arcane.iris.world.pregen; import art.arcane.volmlib.util.documentation.ChunkCoordinates; import art.arcane.volmlib.util.documentation.RegionCoordinates; diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/cache/PregenCacheImpl.java b/core/src/main/java/art/arcane/iris/world/pregen/PregenCacheImpl.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/pregenerator/cache/PregenCacheImpl.java rename to core/src/main/java/art/arcane/iris/world/pregen/PregenCacheImpl.java index 920d25006..7ac41d0e6 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/cache/PregenCacheImpl.java +++ b/core/src/main/java/art/arcane/iris/world/pregen/PregenCacheImpl.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.pregenerator.cache; +package art.arcane.iris.world.pregen; -import art.arcane.iris.engine.framework.PreservationRegistry; +import art.arcane.iris.generation.runtime.PreservationRegistry; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; import art.arcane.volmlib.util.data.Varint; diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/PregenDiagnostics.java b/core/src/main/java/art/arcane/iris/world/pregen/PregenDiagnostics.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/pregenerator/PregenDiagnostics.java rename to core/src/main/java/art/arcane/iris/world/pregen/PregenDiagnostics.java index be5fefe6a..8b2178018 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/PregenDiagnostics.java +++ b/core/src/main/java/art/arcane/iris/world/pregen/PregenDiagnostics.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pregenerator; +package art.arcane.iris.world.pregen; import art.arcane.iris.spi.IrisLogging; diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/PregenListener.java b/core/src/main/java/art/arcane/iris/world/pregen/PregenListener.java similarity index 97% rename from core/src/main/java/art/arcane/iris/core/pregenerator/PregenListener.java rename to core/src/main/java/art/arcane/iris/world/pregen/PregenListener.java index d41c34530..cf9932e50 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/PregenListener.java +++ b/core/src/main/java/art/arcane/iris/world/pregen/PregenListener.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pregenerator; +package art.arcane.iris.world.pregen; public interface PregenListener { void onTick(double chunksPerSecond, double chunksPerMinute, double regionsPerMinute, double percent, long generated, long totalChunks, long chunksRemaining, long eta, long elapsed, String method, boolean cached); diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/PregenMantleBackpressure.java b/core/src/main/java/art/arcane/iris/world/pregen/PregenMantleBackpressure.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/pregenerator/PregenMantleBackpressure.java rename to core/src/main/java/art/arcane/iris/world/pregen/PregenMantleBackpressure.java index ca40d3851..1ac851015 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/PregenMantleBackpressure.java +++ b/core/src/main/java/art/arcane/iris/world/pregen/PregenMantleBackpressure.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pregenerator; +package art.arcane.iris.world.pregen; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.mantle.runtime.Mantle; diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/PregenPerformanceProfile.java b/core/src/main/java/art/arcane/iris/world/pregen/PregenPerformanceProfile.java similarity index 89% rename from core/src/main/java/art/arcane/iris/core/pregenerator/PregenPerformanceProfile.java rename to core/src/main/java/art/arcane/iris/world/pregen/PregenPerformanceProfile.java index b59fe46de..baf6d2ee6 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/PregenPerformanceProfile.java +++ b/core/src/main/java/art/arcane/iris/world/pregen/PregenPerformanceProfile.java @@ -16,16 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pregenerator; +package art.arcane.iris.world.pregen; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.parallel.MultiBurst; -import art.arcane.iris.util.project.stream.ProceduralStream; -import art.arcane.iris.util.project.stream.utility.CachedDoubleStream2D; +import art.arcane.iris.generation.concurrent.MultiBurst; +import art.arcane.volmlib.util.stream.ProceduralStream; +import art.arcane.iris.generation.stream.CachedDoubleStream2D; import java.util.Objects; import java.util.concurrent.atomic.AtomicInteger; diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/PregenPhaseTracker.java b/core/src/main/java/art/arcane/iris/world/pregen/PregenPhaseTracker.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/pregenerator/PregenPhaseTracker.java rename to core/src/main/java/art/arcane/iris/world/pregen/PregenPhaseTracker.java index df68dbae7..baca79f98 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/PregenPhaseTracker.java +++ b/core/src/main/java/art/arcane/iris/world/pregen/PregenPhaseTracker.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pregenerator; +package art.arcane.iris.world.pregen; import java.util.List; import java.util.concurrent.atomic.AtomicReference; diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/PregenRateTracker.java b/core/src/main/java/art/arcane/iris/world/pregen/PregenRateTracker.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/pregenerator/PregenRateTracker.java rename to core/src/main/java/art/arcane/iris/world/pregen/PregenRateTracker.java index 25970000e..db2e61134 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/PregenRateTracker.java +++ b/core/src/main/java/art/arcane/iris/world/pregen/PregenRateTracker.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pregenerator; +package art.arcane.iris.world.pregen; final class PregenRateTracker { private static final int CAPACITY = 64; diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/PregenRates.java b/core/src/main/java/art/arcane/iris/world/pregen/PregenRates.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/pregenerator/PregenRates.java rename to core/src/main/java/art/arcane/iris/world/pregen/PregenRates.java index 9be5906b2..3662fb7a5 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/PregenRates.java +++ b/core/src/main/java/art/arcane/iris/world/pregen/PregenRates.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pregenerator; +package art.arcane.iris.world.pregen; public record PregenRates( double overall, diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/cache/PregenSavedChunkStatus.java b/core/src/main/java/art/arcane/iris/world/pregen/PregenSavedChunkStatus.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/pregenerator/cache/PregenSavedChunkStatus.java rename to core/src/main/java/art/arcane/iris/world/pregen/PregenSavedChunkStatus.java index ccd8f66c1..90e73ecc5 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/cache/PregenSavedChunkStatus.java +++ b/core/src/main/java/art/arcane/iris/world/pregen/PregenSavedChunkStatus.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.pregenerator.cache; +package art.arcane.iris.world.pregen; -import art.arcane.iris.engine.history.SavedTerrainChunk; +import art.arcane.iris.world.history.SavedTerrainChunk; import java.io.IOException; import java.io.RandomAccessFile; diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/methods/PregenSerialWorker.java b/core/src/main/java/art/arcane/iris/world/pregen/PregenSerialWorker.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/pregenerator/methods/PregenSerialWorker.java rename to core/src/main/java/art/arcane/iris/world/pregen/PregenSerialWorker.java index cde76f7b4..1bf6c70d3 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/methods/PregenSerialWorker.java +++ b/core/src/main/java/art/arcane/iris/world/pregen/PregenSerialWorker.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pregenerator.methods; +package art.arcane.iris.world.pregen; import art.arcane.iris.spi.IrisLogging; diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/PregenTask.java b/core/src/main/java/art/arcane/iris/world/pregen/PregenTask.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/pregenerator/PregenTask.java rename to core/src/main/java/art/arcane/iris/world/pregen/PregenTask.java index 49babc6aa..27b773b04 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/PregenTask.java +++ b/core/src/main/java/art/arcane/iris/world/pregen/PregenTask.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pregenerator; +package art.arcane.iris.world.pregen; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.PowerOfTwoCoordinates; diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/PregeneratorMethod.java b/core/src/main/java/art/arcane/iris/world/pregen/PregeneratorMethod.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/pregenerator/PregeneratorMethod.java rename to core/src/main/java/art/arcane/iris/world/pregen/PregeneratorMethod.java index af6344527..4d62e8775 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/PregeneratorMethod.java +++ b/core/src/main/java/art/arcane/iris/world/pregen/PregeneratorMethod.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pregenerator; +package art.arcane.iris.world.pregen; import art.arcane.volmlib.util.mantle.runtime.Mantle; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/BukkitPublicRuntimeControlBackend.java b/core/src/main/java/art/arcane/iris/world/runtime/BukkitPublicRuntimeControlBackend.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/runtime/BukkitPublicRuntimeControlBackend.java rename to core/src/main/java/art/arcane/iris/world/runtime/BukkitPublicRuntimeControlBackend.java index 1da53717c..5b9ffbd30 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/BukkitPublicRuntimeControlBackend.java +++ b/core/src/main/java/art/arcane/iris/world/runtime/BukkitPublicRuntimeControlBackend.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.runtime; +package art.arcane.iris.world.runtime; -import art.arcane.iris.core.lifecycle.CapabilitySnapshot; +import art.arcane.iris.world.lifecycle.CapabilitySnapshot; import art.arcane.iris.spi.CapabilityProbe; import io.papermc.lib.PaperLib; import org.bukkit.Chunk; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/ChunkClearer.java b/core/src/main/java/art/arcane/iris/world/runtime/ChunkClearer.java similarity index 93% rename from core/src/main/java/art/arcane/iris/core/runtime/ChunkClearer.java rename to core/src/main/java/art/arcane/iris/world/runtime/ChunkClearer.java index e2e3c15e0..1c92b25f2 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/ChunkClearer.java +++ b/core/src/main/java/art/arcane/iris/world/runtime/ChunkClearer.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.runtime; +package art.arcane.iris.world.runtime; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.RuntimeProgressMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.RuntimeProgressMessages; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.mantle.runtime.Mantle; import org.bukkit.Chunk; import org.bukkit.ChunkSnapshot; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/ChunkJobReporter.java b/core/src/main/java/art/arcane/iris/world/runtime/ChunkJobReporter.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/runtime/ChunkJobReporter.java rename to core/src/main/java/art/arcane/iris/world/runtime/ChunkJobReporter.java index 49884c194..e51454837 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/ChunkJobReporter.java +++ b/core/src/main/java/art/arcane/iris/world/runtime/ChunkJobReporter.java @@ -16,16 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.runtime; +package art.arcane.iris.world.runtime; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.RuntimeProgressMessages; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.RuntimeProgressMessages; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.format.C; -import art.arcane.iris.util.common.math.ChunkSpiral; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.localization.C; +import art.arcane.volmlib.util.math.ChunkSpiral; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.localization.MessageArgument; import org.bukkit.Bukkit; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/InPlaceChunkRegenerator.java b/core/src/main/java/art/arcane/iris/world/runtime/InPlaceChunkRegenerator.java similarity index 90% rename from core/src/main/java/art/arcane/iris/core/runtime/InPlaceChunkRegenerator.java rename to core/src/main/java/art/arcane/iris/world/runtime/InPlaceChunkRegenerator.java index bc0ebabb1..118f403d6 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/InPlaceChunkRegenerator.java +++ b/core/src/main/java/art/arcane/iris/world/runtime/InPlaceChunkRegenerator.java @@ -16,20 +16,22 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.runtime; +package art.arcane.iris.world.runtime; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.RuntimeProgressMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.RuntimeProgressMessages; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.engine.data.chunk.TerrainChunk; -import art.arcane.iris.engine.platform.EngineBukkitOps; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.mantle.EngineMantle; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.generation.chunk.TerrainChunk; +import art.arcane.iris.generation.chunk.ChunkDataHunkView; +import art.arcane.iris.generation.chunk.TerrainChunkBiomeHunkView; +import art.arcane.iris.platform.generation.EngineBukkitOps; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.mantle.EngineMantle; import art.arcane.iris.spi.PlatformBiome; -import art.arcane.iris.util.common.parallel.MultiBurst; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.generation.concurrent.MultiBurst; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.mantle.runtime.Mantle; import org.bukkit.Chunk; import org.bukkit.ChunkSnapshot; @@ -127,7 +129,8 @@ public final class InPlaceChunkRegenerator { }; try { TerrainChunk buffer = TerrainChunk.create(world); - engine.generate(chunkX << 4, chunkZ << 4, buffer, false); + engine.generate(chunkX << 4, chunkZ << 4, new ChunkDataHunkView(buffer.getChunkData()), + new TerrainChunkBiomeHunkView(buffer), false); boolean scheduled = J.runRegion(world, chunkX, chunkZ, () -> { boolean ok = false; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/PaperLikeRuntimeControlBackend.java b/core/src/main/java/art/arcane/iris/world/runtime/PaperLikeRuntimeControlBackend.java similarity index 99% rename from core/src/main/java/art/arcane/iris/core/runtime/PaperLikeRuntimeControlBackend.java rename to core/src/main/java/art/arcane/iris/world/runtime/PaperLikeRuntimeControlBackend.java index abacc23b5..5b346d239 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/PaperLikeRuntimeControlBackend.java +++ b/core/src/main/java/art/arcane/iris/world/runtime/PaperLikeRuntimeControlBackend.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.runtime; +package art.arcane.iris.world.runtime; -import art.arcane.iris.core.lifecycle.CapabilitySnapshot; +import art.arcane.iris.world.lifecycle.CapabilitySnapshot; import art.arcane.iris.spi.CapabilityProbe; import art.arcane.iris.spi.IrisLogging; import io.papermc.lib.PaperLib; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/RuntimeInjection.java b/core/src/main/java/art/arcane/iris/world/runtime/RuntimeInjection.java similarity index 90% rename from core/src/main/java/art/arcane/iris/core/runtime/RuntimeInjection.java rename to core/src/main/java/art/arcane/iris/world/runtime/RuntimeInjection.java index 1cdf7985f..c1928ff6d 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/RuntimeInjection.java +++ b/core/src/main/java/art/arcane/iris/world/runtime/RuntimeInjection.java @@ -1,10 +1,10 @@ -package art.arcane.iris.core.runtime; +package art.arcane.iris.world.runtime; -import art.arcane.iris.core.IrisStartupValidation; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.core.nms.v1X.NMSBinding1X; +import art.arcane.iris.world.IrisStartupValidation; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.platform.bukkit.nms.v1X.NMSBinding1X; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.project.agent.Agent; +import art.arcane.iris.platform.agent.Agent; public final class RuntimeInjection { private static final Object LOCK = new Object(); diff --git a/core/src/main/java/art/arcane/iris/core/runtime/TransientWorldCleanupSupport.java b/core/src/main/java/art/arcane/iris/world/runtime/TransientWorldCleanupSupport.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/runtime/TransientWorldCleanupSupport.java rename to core/src/main/java/art/arcane/iris/world/runtime/TransientWorldCleanupSupport.java index 3ac0d6680..b1a2fd529 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/TransientWorldCleanupSupport.java +++ b/core/src/main/java/art/arcane/iris/world/runtime/TransientWorldCleanupSupport.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.runtime; +package art.arcane.iris.world.runtime; import java.io.File; import java.util.ArrayList; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/WorldDeletionQueue.java b/core/src/main/java/art/arcane/iris/world/runtime/WorldDeletionQueue.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/runtime/WorldDeletionQueue.java rename to core/src/main/java/art/arcane/iris/world/runtime/WorldDeletionQueue.java index 8cd10327a..8d447ad98 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/WorldDeletionQueue.java +++ b/core/src/main/java/art/arcane/iris/world/runtime/WorldDeletionQueue.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.runtime; +package art.arcane.iris.world.runtime; import java.io.IOException; import java.util.Collection; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/WorldRuntimeControlBackend.java b/core/src/main/java/art/arcane/iris/world/runtime/WorldRuntimeControlBackend.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/runtime/WorldRuntimeControlBackend.java rename to core/src/main/java/art/arcane/iris/world/runtime/WorldRuntimeControlBackend.java index 3e662cb68..a20a09d12 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/WorldRuntimeControlBackend.java +++ b/core/src/main/java/art/arcane/iris/world/runtime/WorldRuntimeControlBackend.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.runtime; +package art.arcane.iris.world.runtime; import org.bukkit.Chunk; import org.bukkit.World; diff --git a/core/src/main/java/art/arcane/iris/core/runtime/WorldRuntimeControlService.java b/core/src/main/java/art/arcane/iris/world/runtime/WorldRuntimeControlService.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/runtime/WorldRuntimeControlService.java rename to core/src/main/java/art/arcane/iris/world/runtime/WorldRuntimeControlService.java index 548358613..75fbc8307 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/WorldRuntimeControlService.java +++ b/core/src/main/java/art/arcane/iris/world/runtime/WorldRuntimeControlService.java @@ -1,18 +1,18 @@ -package art.arcane.iris.core.runtime; +package art.arcane.iris.world.runtime; import art.arcane.iris.spi.CapabilityProbe; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.lifecycle.CapabilitySnapshot; -import art.arcane.iris.core.lifecycle.ServerFamily; -import art.arcane.iris.core.lifecycle.WorldLifecycleService; -import art.arcane.iris.core.service.BoardSVC; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.platform.BukkitChunkGenerator; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.world.lifecycle.CapabilitySnapshot; +import art.arcane.iris.world.lifecycle.ServerFamily; +import art.arcane.iris.world.lifecycle.WorldLifecycleService; +import art.arcane.iris.platform.bukkit.BoardSVC; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.platform.generation.BukkitChunkGenerator; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; import art.arcane.iris.platform.bukkit.BukkitPlatform; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import io.papermc.lib.PaperLib; import org.bukkit.Bukkit; import org.bukkit.Chunk; @@ -117,7 +117,7 @@ public final class WorldRuntimeControlService { return false; } - IrisServices.get(art.arcane.iris.core.link.MultiverseCoreLink.class).removeIfPresent(world); + IrisServices.get(art.arcane.iris.integration.MultiverseCoreLink.class).removeIfPresent(world); setIntGameRule(world, 0, "SPAWN_CHUNK_RADIUS", "spawnChunkRadius"); enableStudioEntitySpawning(world); if (!IrisSettings.get().getStudio().isDisableTimeAndWeather()) { @@ -252,12 +252,12 @@ public final class WorldRuntimeControlService { } try { - art.arcane.iris.engine.platform.PlatformChunkGenerator provider = art.arcane.iris.core.tools.IrisToolbelt.access(world); + art.arcane.iris.platform.generation.PlatformChunkGenerator provider = art.arcane.iris.world.IrisToolbelt.access(world); if (provider == null) { return; } - art.arcane.iris.engine.framework.Engine engine = provider.getEngine(); + art.arcane.iris.generation.runtime.Engine engine = provider.getEngine(); if (engine == null) { return; } @@ -278,7 +278,7 @@ public final class WorldRuntimeControlService { return resolveEntryAnchor(world, provider); } - static Location resolveEntryAnchor(World world, PlatformChunkGenerator provider) { + public static Location resolveEntryAnchor(World world, PlatformChunkGenerator provider) { if (world == null) { return null; } diff --git a/core/src/main/java/art/arcane/iris/core/safeguard/task/CheckResult.java b/core/src/main/java/art/arcane/iris/world/safeguard/CheckResult.java similarity index 93% rename from core/src/main/java/art/arcane/iris/core/safeguard/task/CheckResult.java rename to core/src/main/java/art/arcane/iris/world/safeguard/CheckResult.java index 81fcf8fb6..da54dc9a3 100644 --- a/core/src/main/java/art/arcane/iris/core/safeguard/task/CheckResult.java +++ b/core/src/main/java/art/arcane/iris/world/safeguard/CheckResult.java @@ -1,6 +1,5 @@ -package art.arcane.iris.core.safeguard.task; +package art.arcane.iris.world.safeguard; -import art.arcane.iris.core.safeguard.Mode; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/core/safeguard/task/Diagnostic.java b/core/src/main/java/art/arcane/iris/world/safeguard/Diagnostic.java similarity index 96% rename from core/src/main/java/art/arcane/iris/core/safeguard/task/Diagnostic.java rename to core/src/main/java/art/arcane/iris/world/safeguard/Diagnostic.java index 7b69cef02..d86a690aa 100644 --- a/core/src/main/java/art/arcane/iris/core/safeguard/task/Diagnostic.java +++ b/core/src/main/java/art/arcane/iris/world/safeguard/Diagnostic.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.safeguard.task; +package art.arcane.iris.world.safeguard; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.format.C; +import art.arcane.iris.localization.C; import java.io.ByteArrayOutputStream; import java.io.PrintStream; diff --git a/core/src/main/java/art/arcane/iris/core/safeguard/IrisSafeguard.java b/core/src/main/java/art/arcane/iris/world/safeguard/IrisSafeguard.java similarity index 94% rename from core/src/main/java/art/arcane/iris/core/safeguard/IrisSafeguard.java rename to core/src/main/java/art/arcane/iris/world/safeguard/IrisSafeguard.java index 0e785025c..4d3e25268 100644 --- a/core/src/main/java/art/arcane/iris/core/safeguard/IrisSafeguard.java +++ b/core/src/main/java/art/arcane/iris/world/safeguard/IrisSafeguard.java @@ -1,12 +1,8 @@ -package art.arcane.iris.core.safeguard; +package art.arcane.iris.world.safeguard; -import art.arcane.iris.core.IrisStartupValidation; -import art.arcane.iris.core.safeguard.task.CheckResult; -import art.arcane.iris.core.safeguard.task.Diagnostic; -import art.arcane.iris.core.safeguard.task.Task; -import art.arcane.iris.core.safeguard.task.Tasks; +import art.arcane.iris.world.IrisStartupValidation; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.format.C; +import art.arcane.iris.localization.C; import java.util.ArrayList; import java.util.Collections; diff --git a/core/src/main/java/art/arcane/iris/core/safeguard/Mode.java b/core/src/main/java/art/arcane/iris/world/safeguard/Mode.java similarity index 92% rename from core/src/main/java/art/arcane/iris/core/safeguard/Mode.java rename to core/src/main/java/art/arcane/iris/world/safeguard/Mode.java index 5ff90ec79..9070f959d 100644 --- a/core/src/main/java/art/arcane/iris/core/safeguard/Mode.java +++ b/core/src/main/java/art/arcane/iris/world/safeguard/Mode.java @@ -1,11 +1,11 @@ -package art.arcane.iris.core.safeguard; +package art.arcane.iris.world.safeguard; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.splash.IrisSplashComposer; -import art.arcane.iris.core.splash.IrisSplashRenderer; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.diagnostics.splash.IrisSplashComposer; +import art.arcane.iris.diagnostics.splash.IrisSplashRenderer; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.format.C; +import art.arcane.iris.localization.C; import org.bukkit.Bukkit; import java.util.Locale; diff --git a/core/src/main/java/art/arcane/iris/core/safeguard/RuntimeLockNotice.java b/core/src/main/java/art/arcane/iris/world/safeguard/RuntimeLockNotice.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/safeguard/RuntimeLockNotice.java rename to core/src/main/java/art/arcane/iris/world/safeguard/RuntimeLockNotice.java index de78114ab..66ed3f524 100644 --- a/core/src/main/java/art/arcane/iris/core/safeguard/RuntimeLockNotice.java +++ b/core/src/main/java/art/arcane/iris/world/safeguard/RuntimeLockNotice.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.safeguard; +package art.arcane.iris.world.safeguard; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/core/safeguard/task/Task.java b/core/src/main/java/art/arcane/iris/world/safeguard/Task.java similarity index 92% rename from core/src/main/java/art/arcane/iris/core/safeguard/task/Task.java rename to core/src/main/java/art/arcane/iris/world/safeguard/Task.java index 9da4b7543..0ba5feaa8 100644 --- a/core/src/main/java/art/arcane/iris/core/safeguard/task/Task.java +++ b/core/src/main/java/art/arcane/iris/world/safeguard/Task.java @@ -1,6 +1,5 @@ -package art.arcane.iris.core.safeguard.task; +package art.arcane.iris.world.safeguard; -import art.arcane.iris.core.safeguard.Mode; import java.util.function.Supplier; diff --git a/core/src/main/java/art/arcane/iris/core/safeguard/task/Tasks.java b/core/src/main/java/art/arcane/iris/world/safeguard/Tasks.java similarity index 95% rename from core/src/main/java/art/arcane/iris/core/safeguard/task/Tasks.java rename to core/src/main/java/art/arcane/iris/world/safeguard/Tasks.java index 456ae6bf4..151baef48 100644 --- a/core/src/main/java/art/arcane/iris/core/safeguard/task/Tasks.java +++ b/core/src/main/java/art/arcane/iris/world/safeguard/Tasks.java @@ -1,19 +1,18 @@ -package art.arcane.iris.core.safeguard.task; +package art.arcane.iris.world.safeguard; import art.arcane.iris.BuildConstants; import art.arcane.iris.platform.bukkit.BukkitPlatform; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.IrisWorlds; -import art.arcane.iris.core.runtime.RuntimeInjection; -import art.arcane.iris.core.IrisWorldStorage; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.core.nms.v1X.NMSBinding1X; -import art.arcane.iris.core.safeguard.Mode; -import art.arcane.iris.core.splash.IrisSplashComposer; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.world.IrisWorlds; +import art.arcane.iris.world.runtime.RuntimeInjection; +import art.arcane.iris.world.IrisWorldStorage; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.platform.bukkit.nms.v1X.NMSBinding1X; +import art.arcane.iris.diagnostics.splash.IrisSplashComposer; import art.arcane.iris.spi.CapabilityProbe; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.util.common.misc.getHardware; -import art.arcane.iris.util.project.agent.Agent; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.platform.bootstrap.getHardware; +import art.arcane.iris.platform.agent.Agent; import org.bukkit.Bukkit; import org.bukkit.Server; import org.bukkit.plugin.Plugin; diff --git a/core/src/main/java/art/arcane/iris/util/common/io/Durability.java b/core/src/main/java/art/arcane/iris/world/storage/Durability.java similarity index 94% rename from core/src/main/java/art/arcane/iris/util/common/io/Durability.java rename to core/src/main/java/art/arcane/iris/world/storage/Durability.java index a37b6866b..701731106 100644 --- a/core/src/main/java/art/arcane/iris/util/common/io/Durability.java +++ b/core/src/main/java/art/arcane/iris/world/storage/Durability.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.common.io; +package art.arcane.iris.world.storage; import java.io.FileDescriptor; import java.io.IOException; diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/EntityMatter.java b/core/src/main/java/art/arcane/iris/world/storage/matter/EntityMatter.java similarity index 97% rename from core/src/main/java/art/arcane/iris/util/project/matter/slices/EntityMatter.java rename to core/src/main/java/art/arcane/iris/world/storage/matter/EntityMatter.java index 0b58625b9..f11ed6c6f 100644 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/EntityMatter.java +++ b/core/src/main/java/art/arcane/iris/world/storage/matter/EntityMatter.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.project.matter.slices; +package art.arcane.iris.world.storage.matter; import art.arcane.iris.platform.bukkit.BukkitPlatform; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.engine.object.IrisPosition; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.pack.value.IrisPosition; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/HydrologyCaveMatter.java b/core/src/main/java/art/arcane/iris/world/storage/matter/HydrologyCaveMatter.java similarity index 91% rename from core/src/main/java/art/arcane/iris/util/project/matter/slices/HydrologyCaveMatter.java rename to core/src/main/java/art/arcane/iris/world/storage/matter/HydrologyCaveMatter.java index 238c03791..273316f49 100644 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/HydrologyCaveMatter.java +++ b/core/src/main/java/art/arcane/iris/world/storage/matter/HydrologyCaveMatter.java @@ -1,7 +1,7 @@ -package art.arcane.iris.util.project.matter.slices; +package art.arcane.iris.world.storage.matter; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; import art.arcane.volmlib.util.data.palette.Palette; import art.arcane.volmlib.util.matter.Sliced; import art.arcane.volmlib.util.matter.slices.RawMatter; diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/IdentifierMatter.java b/core/src/main/java/art/arcane/iris/world/storage/matter/IdentifierMatter.java similarity index 89% rename from core/src/main/java/art/arcane/iris/util/project/matter/slices/IdentifierMatter.java rename to core/src/main/java/art/arcane/iris/world/storage/matter/IdentifierMatter.java index fbbdb254a..e444b6527 100644 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/IdentifierMatter.java +++ b/core/src/main/java/art/arcane/iris/world/storage/matter/IdentifierMatter.java @@ -1,6 +1,6 @@ -package art.arcane.iris.util.project.matter.slices; +package art.arcane.iris.world.storage.matter; -import art.arcane.iris.core.link.Identifier; +import art.arcane.iris.integration.Identifier; import art.arcane.volmlib.util.data.palette.Palette; import art.arcane.volmlib.util.matter.Sliced; import art.arcane.volmlib.util.matter.slices.RawMatter; diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/IrisMatterContext.java b/core/src/main/java/art/arcane/iris/world/storage/matter/IrisMatterContext.java similarity index 95% rename from core/src/main/java/art/arcane/iris/util/project/matter/IrisMatterContext.java rename to core/src/main/java/art/arcane/iris/world/storage/matter/IrisMatterContext.java index aa16398d8..ec7714a12 100644 --- a/core/src/main/java/art/arcane/iris/util/project/matter/IrisMatterContext.java +++ b/core/src/main/java/art/arcane/iris/world/storage/matter/IrisMatterContext.java @@ -1,6 +1,6 @@ -package art.arcane.iris.util.project.matter; +package art.arcane.iris.world.storage.matter; -import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.pack.loading.IrisData; import java.util.Objects; diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/IrisMatterSupport.java b/core/src/main/java/art/arcane/iris/world/storage/matter/IrisMatterSupport.java similarity index 81% rename from core/src/main/java/art/arcane/iris/util/project/matter/IrisMatterSupport.java rename to core/src/main/java/art/arcane/iris/world/storage/matter/IrisMatterSupport.java index ae6bb0538..de15b2127 100644 --- a/core/src/main/java/art/arcane/iris/util/project/matter/IrisMatterSupport.java +++ b/core/src/main/java/art/arcane/iris/world/storage/matter/IrisMatterSupport.java @@ -16,24 +16,15 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.project.matter; +package art.arcane.iris.world.storage.matter; -import art.arcane.iris.engine.object.IrisObject; +import art.arcane.iris.structure.object.IrisObject; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.project.matter.slices.EntityMatter; -import art.arcane.iris.util.project.matter.slices.IdentifierMatter; -import art.arcane.iris.util.project.matter.slices.NativeStructureOwnershipMatter; -import art.arcane.iris.util.project.matter.slices.PlatformBlockMatter; -import art.arcane.iris.util.project.matter.slices.HydrologyCaveMatter; -import art.arcane.iris.util.project.matter.slices.PreObjectMatter; -import art.arcane.iris.util.project.matter.slices.SpawnerMatter; -import art.arcane.iris.util.project.matter.slices.TileMatter; -import art.arcane.iris.util.project.matter.slices.TreeBlockMaterialMatter; import art.arcane.volmlib.util.matter.IrisMatter; import art.arcane.volmlib.util.matter.Matter; import org.bukkit.block.data.BlockData; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.generation.geometry.IrisBlockVector; import java.io.File; diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/NativeStructureOwnershipMatter.java b/core/src/main/java/art/arcane/iris/world/storage/matter/NativeStructureOwnershipMatter.java similarity index 89% rename from core/src/main/java/art/arcane/iris/util/project/matter/slices/NativeStructureOwnershipMatter.java rename to core/src/main/java/art/arcane/iris/world/storage/matter/NativeStructureOwnershipMatter.java index 7a7f3c830..a884c48f4 100644 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/NativeStructureOwnershipMatter.java +++ b/core/src/main/java/art/arcane/iris/world/storage/matter/NativeStructureOwnershipMatter.java @@ -1,6 +1,6 @@ -package art.arcane.iris.util.project.matter.slices; +package art.arcane.iris.world.storage.matter; -import art.arcane.iris.engine.framework.NativeStructureOwnershipBundle; +import art.arcane.iris.structure.nativegen.NativeStructureOwnershipBundle; import art.arcane.volmlib.util.data.palette.Palette; import art.arcane.volmlib.util.matter.Sliced; import art.arcane.volmlib.util.matter.slices.RawMatter; diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/PlatformBlockMatter.java b/core/src/main/java/art/arcane/iris/world/storage/matter/PlatformBlockMatter.java similarity index 91% rename from core/src/main/java/art/arcane/iris/util/project/matter/slices/PlatformBlockMatter.java rename to core/src/main/java/art/arcane/iris/world/storage/matter/PlatformBlockMatter.java index fc939a5cb..1a11c10bd 100644 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/PlatformBlockMatter.java +++ b/core/src/main/java/art/arcane/iris/world/storage/matter/PlatformBlockMatter.java @@ -1,7 +1,7 @@ -package art.arcane.iris.util.project.matter.slices; +package art.arcane.iris.world.storage.matter; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; +import art.arcane.iris.generation.block.B; import art.arcane.volmlib.util.data.palette.Palette; import art.arcane.volmlib.util.matter.Sliced; import art.arcane.volmlib.util.matter.slices.RawMatter; diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/PreObjectMatter.java b/core/src/main/java/art/arcane/iris/world/storage/matter/PreObjectMatter.java similarity index 83% rename from core/src/main/java/art/arcane/iris/util/project/matter/slices/PreObjectMatter.java rename to core/src/main/java/art/arcane/iris/world/storage/matter/PreObjectMatter.java index f305aa607..b51a2f852 100644 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/PreObjectMatter.java +++ b/core/src/main/java/art/arcane/iris/world/storage/matter/PreObjectMatter.java @@ -1,10 +1,11 @@ -package art.arcane.iris.util.project.matter.slices; +package art.arcane.iris.world.storage.matter; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; -import art.arcane.iris.util.common.data.B; -import art.arcane.iris.util.project.matter.PreObjectMatterCell; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.generation.block.B; import art.arcane.volmlib.util.data.palette.Palette; +import art.arcane.volmlib.util.function.Consumer4; +import art.arcane.volmlib.util.function.Consumer4IO; import art.arcane.volmlib.util.hunk.storage.MappedHunk; import art.arcane.volmlib.util.matter.MatterCavern; import art.arcane.volmlib.util.matter.MatterReader; @@ -37,6 +38,38 @@ public final class PreObjectMatter extends MappedHunk super(width, height, depth); } + @Override + public PreObjectMatterCell get(int x, int y, int z) { + return MatterSlice.super.get(x, y, z); + } + + @Override + public void set(int x, int y, int z, PreObjectMatterCell value) { + MatterSlice.super.set(x, y, z, value); + } + + @Override + public PreObjectMatter iterateSync(Consumer4 consumer) { + super.iterateSync(consumer); + return this; + } + + @Override + public PreObjectMatter iterateSyncIO(Consumer4IO consumer) throws IOException { + super.iterateSyncIO(consumer); + return this; + } + + @Override + public void empty(PreObjectMatterCell value) { + super.empty(value); + } + + @Override + public boolean isEmpty() { + return getEntryCount() == 0; + } + @Override public Class getType() { return PreObjectMatterCell.class; diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/PreObjectMatterCell.java b/core/src/main/java/art/arcane/iris/world/storage/matter/PreObjectMatterCell.java similarity index 97% rename from core/src/main/java/art/arcane/iris/util/project/matter/PreObjectMatterCell.java rename to core/src/main/java/art/arcane/iris/world/storage/matter/PreObjectMatterCell.java index ca7b40b79..903c93d7e 100644 --- a/core/src/main/java/art/arcane/iris/util/project/matter/PreObjectMatterCell.java +++ b/core/src/main/java/art/arcane/iris/world/storage/matter/PreObjectMatterCell.java @@ -1,7 +1,7 @@ -package art.arcane.iris.util.project.matter; +package art.arcane.iris.world.storage.matter; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; import art.arcane.volmlib.util.matter.MatterCavern; public record PreObjectMatterCell( diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/RegistryMatter.java b/core/src/main/java/art/arcane/iris/world/storage/matter/RegistryMatter.java similarity index 87% rename from core/src/main/java/art/arcane/iris/util/project/matter/slices/RegistryMatter.java rename to core/src/main/java/art/arcane/iris/world/storage/matter/RegistryMatter.java index 780e55617..eac00d477 100644 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/RegistryMatter.java +++ b/core/src/main/java/art/arcane/iris/world/storage/matter/RegistryMatter.java @@ -16,12 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.project.matter.slices; +package art.arcane.iris.world.storage.matter; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.util.project.matter.IrisMatterContext; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.pack.loading.ResourceLoader; import art.arcane.volmlib.util.data.palette.Palette; import art.arcane.volmlib.util.matter.slices.RawMatter; diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/SpawnerMatter.java b/core/src/main/java/art/arcane/iris/world/storage/matter/SpawnerMatter.java similarity index 91% rename from core/src/main/java/art/arcane/iris/util/project/matter/slices/SpawnerMatter.java rename to core/src/main/java/art/arcane/iris/world/storage/matter/SpawnerMatter.java index 93bcbe9cb..ac7d6c21f 100644 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/SpawnerMatter.java +++ b/core/src/main/java/art/arcane/iris/world/storage/matter/SpawnerMatter.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.project.matter.slices; +package art.arcane.iris.world.storage.matter; -import art.arcane.iris.engine.object.IrisSpawner; +import art.arcane.iris.world.entity.IrisSpawner; import art.arcane.volmlib.util.matter.Sliced; @Sliced diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/TileMatter.java b/core/src/main/java/art/arcane/iris/world/storage/matter/TileMatter.java similarity index 93% rename from core/src/main/java/art/arcane/iris/util/project/matter/slices/TileMatter.java rename to core/src/main/java/art/arcane/iris/world/storage/matter/TileMatter.java index 7b2d0586c..0bf85915c 100644 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/TileMatter.java +++ b/core/src/main/java/art/arcane/iris/world/storage/matter/TileMatter.java @@ -16,12 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.project.matter.slices; +package art.arcane.iris.world.storage.matter; -import art.arcane.iris.engine.object.TileData; +import art.arcane.iris.generation.block.TileData; import art.arcane.iris.spi.IrisPlatforms; -import art.arcane.iris.util.project.matter.TileWrapper; import art.arcane.volmlib.util.data.palette.Palette; import art.arcane.volmlib.util.matter.Sliced; import art.arcane.volmlib.util.matter.slices.RawMatter; diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/TileWrapper.java b/core/src/main/java/art/arcane/iris/world/storage/matter/TileWrapper.java similarity index 89% rename from core/src/main/java/art/arcane/iris/util/project/matter/TileWrapper.java rename to core/src/main/java/art/arcane/iris/world/storage/matter/TileWrapper.java index dc9082c1d..78a26740a 100644 --- a/core/src/main/java/art/arcane/iris/util/project/matter/TileWrapper.java +++ b/core/src/main/java/art/arcane/iris/world/storage/matter/TileWrapper.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.project.matter; +package art.arcane.iris.world.storage.matter; -import art.arcane.iris.engine.object.TileData; +import art.arcane.iris.generation.block.TileData; import lombok.Data; @Data diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/TreeBlockMaterialMatter.java b/core/src/main/java/art/arcane/iris/world/storage/matter/TreeBlockMaterialMatter.java similarity index 89% rename from core/src/main/java/art/arcane/iris/util/project/matter/slices/TreeBlockMaterialMatter.java rename to core/src/main/java/art/arcane/iris/world/storage/matter/TreeBlockMaterialMatter.java index 889126c73..291419a39 100644 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/TreeBlockMaterialMatter.java +++ b/core/src/main/java/art/arcane/iris/world/storage/matter/TreeBlockMaterialMatter.java @@ -1,6 +1,6 @@ -package art.arcane.iris.util.project.matter.slices; +package art.arcane.iris.world.storage.matter; -import art.arcane.iris.engine.framework.TreeBlockMaterial; +import art.arcane.iris.generation.decoration.tree.TreeBlockMaterial; import art.arcane.volmlib.util.data.palette.Palette; import art.arcane.volmlib.util.matter.Sliced; import art.arcane.volmlib.util.matter.slices.RawMatter; diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/WorldMatter.java b/core/src/main/java/art/arcane/iris/world/storage/matter/WorldMatter.java similarity index 97% rename from core/src/main/java/art/arcane/iris/util/project/matter/WorldMatter.java rename to core/src/main/java/art/arcane/iris/world/storage/matter/WorldMatter.java index f59f8065c..e7c484734 100644 --- a/core/src/main/java/art/arcane/iris/util/project/matter/WorldMatter.java +++ b/core/src/main/java/art/arcane/iris/world/storage/matter/WorldMatter.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.project.matter; +package art.arcane.iris.world.storage.matter; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.data.Cuboid; diff --git a/core/src/main/java/art/arcane/iris/util/common/nbt/mca/Chunk.java b/core/src/main/java/art/arcane/iris/world/storage/region/Chunk.java similarity index 95% rename from core/src/main/java/art/arcane/iris/util/common/nbt/mca/Chunk.java rename to core/src/main/java/art/arcane/iris/world/storage/region/Chunk.java index 4c0f853eb..97d5f848c 100644 --- a/core/src/main/java/art/arcane/iris/util/common/nbt/mca/Chunk.java +++ b/core/src/main/java/art/arcane/iris/world/storage/region/Chunk.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.nbt.common.mca; +package art.arcane.iris.world.storage.region; import art.arcane.volmlib.util.nbt.mca.MCAChunkSupport; import art.arcane.volmlib.util.nbt.tag.CompoundTag; import art.arcane.iris.platform.bukkit.BukkitPlatform; -import art.arcane.iris.core.nms.INMS; +import art.arcane.iris.platform.bukkit.nms.INMS; import static org.bukkit.Bukkit.getServer; diff --git a/core/src/main/java/art/arcane/iris/util/common/nbt/mca/MCAFile.java b/core/src/main/java/art/arcane/iris/world/storage/region/MCAFile.java similarity index 97% rename from core/src/main/java/art/arcane/iris/util/common/nbt/mca/MCAFile.java rename to core/src/main/java/art/arcane/iris/world/storage/region/MCAFile.java index b8970740f..2f6f86ef5 100644 --- a/core/src/main/java/art/arcane/iris/util/common/nbt/mca/MCAFile.java +++ b/core/src/main/java/art/arcane/iris/world/storage/region/MCAFile.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.nbt.common.mca; +package art.arcane.iris.world.storage.region; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.nbt.mca.MCAFileSupport; import art.arcane.volmlib.util.nbt.mca.LoadFlags; import art.arcane.volmlib.util.math.Position2; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import java.io.IOException; import java.io.RandomAccessFile; diff --git a/core/src/main/java/art/arcane/iris/util/common/nbt/mca/MCAUtil.java b/core/src/main/java/art/arcane/iris/world/storage/region/MCAUtil.java similarity index 99% rename from core/src/main/java/art/arcane/iris/util/common/nbt/mca/MCAUtil.java rename to core/src/main/java/art/arcane/iris/world/storage/region/MCAUtil.java index 19ed5119f..56eb9880c 100644 --- a/core/src/main/java/art/arcane/iris/util/common/nbt/mca/MCAUtil.java +++ b/core/src/main/java/art/arcane/iris/world/storage/region/MCAUtil.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.nbt.common.mca; +package art.arcane.iris.world.storage.region; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.nbt.mca.LoadFlags; diff --git a/core/src/main/java/art/arcane/iris/util/common/nbt/mca/NBTWorld.java b/core/src/main/java/art/arcane/iris/world/storage/region/NBTWorld.java similarity index 97% rename from core/src/main/java/art/arcane/iris/util/common/nbt/mca/NBTWorld.java rename to core/src/main/java/art/arcane/iris/world/storage/region/NBTWorld.java index 807c1036c..eefd37da6 100644 --- a/core/src/main/java/art/arcane/iris/util/common/nbt/mca/NBTWorld.java +++ b/core/src/main/java/art/arcane/iris/world/storage/region/NBTWorld.java @@ -16,21 +16,21 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.nbt.common.mca; +package art.arcane.iris.world.storage.region; import art.arcane.iris.platform.bukkit.BukkitBlockResolution; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.engine.data.cache.Cache; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.generation.cache.Cache; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.nbt.mca.MCAWorldStoreSupport; import art.arcane.volmlib.util.nbt.mca.MCAWorldRuntimeSupport; import art.arcane.volmlib.util.nbt.mca.NBTWorldSupport; -import art.arcane.iris.util.common.reflect.KeyedType; +import art.arcane.iris.platform.reflect.KeyedType; import art.arcane.volmlib.util.math.M; import art.arcane.volmlib.util.nbt.tag.CompoundTag; -import art.arcane.iris.util.common.parallel.HyperLock; +import art.arcane.iris.generation.concurrent.HyperLock; import org.bukkit.NamespacedKey; import org.bukkit.Registry; import org.bukkit.block.Biome; diff --git a/core/src/main/java/art/arcane/iris/util/common/nbt/mca/Section.java b/core/src/main/java/art/arcane/iris/world/storage/region/Section.java similarity index 98% rename from core/src/main/java/art/arcane/iris/util/common/nbt/mca/Section.java rename to core/src/main/java/art/arcane/iris/world/storage/region/Section.java index cf20bb3ce..25002b70e 100644 --- a/core/src/main/java/art/arcane/iris/util/common/nbt/mca/Section.java +++ b/core/src/main/java/art/arcane/iris/world/storage/region/Section.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.nbt.common.mca; +package art.arcane.iris.world.storage.region; -import art.arcane.iris.core.nms.INMS; +import art.arcane.iris.platform.bukkit.nms.INMS; import art.arcane.volmlib.util.nbt.mca.LoadFlags; import art.arcane.volmlib.util.nbt.mca.MCASectionLike; import art.arcane.volmlib.util.nbt.mca.MCASectionSupport; diff --git a/core/src/main/java/art/arcane/iris/util/common/scheduling/J.java b/core/src/main/java/art/arcane/iris/world/task/J.java similarity index 99% rename from core/src/main/java/art/arcane/iris/util/common/scheduling/J.java rename to core/src/main/java/art/arcane/iris/world/task/J.java index cccef549a..6285415dd 100644 --- a/core/src/main/java/art/arcane/iris/util/common/scheduling/J.java +++ b/core/src/main/java/art/arcane/iris/world/task/J.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.scheduling; +package art.arcane.iris.world.task; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.platform.bukkit.BukkitPlatform; -import art.arcane.iris.engine.framework.PreservationRegistry; -import art.arcane.iris.util.common.parallel.MultiBurst; +import art.arcane.iris.generation.runtime.PreservationRegistry; +import art.arcane.iris.generation.concurrent.MultiBurst; import art.arcane.volmlib.util.function.NastyFunction; import art.arcane.volmlib.util.function.NastyFuture; import art.arcane.volmlib.util.function.NastyRunnable; diff --git a/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/DownloadJob.java b/core/src/main/java/art/arcane/iris/world/task/jobs/DownloadJob.java similarity index 93% rename from core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/DownloadJob.java rename to core/src/main/java/art/arcane/iris/world/task/jobs/DownloadJob.java index 0dc24a3d4..9148b17f1 100644 --- a/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/DownloadJob.java +++ b/core/src/main/java/art/arcane/iris/world/task/jobs/DownloadJob.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.scheduling.jobs; +package art.arcane.iris.world.task.jobs; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.RuntimeUiMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.RuntimeUiMessages; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.network.DL; import art.arcane.volmlib.util.network.DownloadMonitor; diff --git a/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/Job.java b/core/src/main/java/art/arcane/iris/world/task/jobs/Job.java similarity index 90% rename from core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/Job.java rename to core/src/main/java/art/arcane/iris/world/task/jobs/Job.java index 91618e88a..4fe936de1 100644 --- a/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/Job.java +++ b/core/src/main/java/art/arcane/iris/world/task/jobs/Job.java @@ -16,16 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.scheduling.jobs; +package art.arcane.iris.world.task.jobs; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.RuntimeUiMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.RuntimeUiMessages; import art.arcane.iris.platform.bukkit.BukkitPlatform; -import art.arcane.iris.util.common.format.C; +import art.arcane.iris.localization.C; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.localization.MessageArgument; -import art.arcane.iris.util.common.plugin.VolmitSender; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import java.util.concurrent.CompletableFuture; diff --git a/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/JobCollection.java b/core/src/main/java/art/arcane/iris/world/task/jobs/JobCollection.java similarity index 97% rename from core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/JobCollection.java rename to core/src/main/java/art/arcane/iris/world/task/jobs/JobCollection.java index b24358b37..4eab2a718 100644 --- a/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/JobCollection.java +++ b/core/src/main/java/art/arcane/iris/world/task/jobs/JobCollection.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.scheduling.jobs; +package art.arcane.iris.world.task.jobs; import art.arcane.volmlib.util.collection.KList; diff --git a/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/ParallelQueueJob.java b/core/src/main/java/art/arcane/iris/world/task/jobs/ParallelQueueJob.java similarity index 88% rename from core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/ParallelQueueJob.java rename to core/src/main/java/art/arcane/iris/world/task/jobs/ParallelQueueJob.java index 8999d9d7c..869e15765 100644 --- a/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/ParallelQueueJob.java +++ b/core/src/main/java/art/arcane/iris/world/task/jobs/ParallelQueueJob.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.scheduling.jobs; +package art.arcane.iris.world.task.jobs; import art.arcane.volmlib.util.collection.KList; -import art.arcane.iris.util.common.parallel.BurstExecutor; -import art.arcane.iris.util.common.parallel.MultiBurst; +import art.arcane.iris.generation.concurrent.BurstExecutor; +import art.arcane.iris.generation.concurrent.MultiBurst; public abstract class ParallelQueueJob extends QueueJob { @Override diff --git a/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/QueueJob.java b/core/src/main/java/art/arcane/iris/world/task/jobs/QueueJob.java similarity index 97% rename from core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/QueueJob.java rename to core/src/main/java/art/arcane/iris/world/task/jobs/QueueJob.java index 80db9c682..d57305cd1 100644 --- a/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/QueueJob.java +++ b/core/src/main/java/art/arcane/iris/world/task/jobs/QueueJob.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.scheduling.jobs; +package art.arcane.iris.world.task.jobs; import art.arcane.volmlib.util.collection.KList; diff --git a/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/SingleJob.java b/core/src/main/java/art/arcane/iris/world/task/jobs/SingleJob.java similarity index 96% rename from core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/SingleJob.java rename to core/src/main/java/art/arcane/iris/world/task/jobs/SingleJob.java index 13180feea..87e7d57ac 100644 --- a/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/SingleJob.java +++ b/core/src/main/java/art/arcane/iris/world/task/jobs/SingleJob.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.common.scheduling.jobs; +package art.arcane.iris.world.task.jobs; public class SingleJob implements Job { private final String name; diff --git a/core/src/main/java/art/arcane/iris/core/service/tree/BlockDropRouter.java b/core/src/main/java/art/arcane/iris/world/tree/BlockDropRouter.java similarity index 68% rename from core/src/main/java/art/arcane/iris/core/service/tree/BlockDropRouter.java rename to core/src/main/java/art/arcane/iris/world/tree/BlockDropRouter.java index 5aad1eab0..2911e67af 100644 --- a/core/src/main/java/art/arcane/iris/core/service/tree/BlockDropRouter.java +++ b/core/src/main/java/art/arcane/iris/world/tree/BlockDropRouter.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.service.tree; +package art.arcane.iris.world.tree; @FunctionalInterface public interface BlockDropRouter { diff --git a/core/src/main/java/art/arcane/iris/core/service/tree/TreeDefinitionIndex.java b/core/src/main/java/art/arcane/iris/world/tree/TreeDefinitionIndex.java similarity index 87% rename from core/src/main/java/art/arcane/iris/core/service/tree/TreeDefinitionIndex.java rename to core/src/main/java/art/arcane/iris/world/tree/TreeDefinitionIndex.java index c468c9fe3..f07a82e5e 100644 --- a/core/src/main/java/art/arcane/iris/core/service/tree/TreeDefinitionIndex.java +++ b/core/src/main/java/art/arcane/iris/world/tree/TreeDefinitionIndex.java @@ -1,12 +1,12 @@ -package art.arcane.iris.core.service.tree; +package art.arcane.iris.world.tree; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.StructurePlacementMarker; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisObjectPlacement; -import art.arcane.iris.engine.object.IrisProceduralObjects; -import art.arcane.iris.engine.object.IrisProceduralTree; -import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.placement.StructurePlacementMarker; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.generation.decoration.IrisProceduralObjects; +import art.arcane.iris.generation.decoration.tree.IrisProceduralTree; +import art.arcane.iris.generation.terrain.IrisRegion; import java.util.HashSet; import java.util.Set; diff --git a/core/src/main/java/art/arcane/iris/core/service/tree/TreeMarkerTraversal.java b/core/src/main/java/art/arcane/iris/world/tree/TreeMarkerTraversal.java similarity index 98% rename from core/src/main/java/art/arcane/iris/core/service/tree/TreeMarkerTraversal.java rename to core/src/main/java/art/arcane/iris/world/tree/TreeMarkerTraversal.java index 9a9c96ab1..08877b493 100644 --- a/core/src/main/java/art/arcane/iris/core/service/tree/TreeMarkerTraversal.java +++ b/core/src/main/java/art/arcane/iris/world/tree/TreeMarkerTraversal.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.service.tree; +package art.arcane.iris.world.tree; import java.util.ArrayDeque; import java.util.ArrayList; diff --git a/core/src/main/java/art/arcane/iris/core/service/TreeSVC.java b/core/src/main/java/art/arcane/iris/world/tree/TreeSVC.java similarity index 94% rename from core/src/main/java/art/arcane/iris/core/service/TreeSVC.java rename to core/src/main/java/art/arcane/iris/world/tree/TreeSVC.java index 00caacb9c..139cd0036 100644 --- a/core/src/main/java/art/arcane/iris/core/service/TreeSVC.java +++ b/core/src/main/java/art/arcane/iris/world/tree/TreeSVC.java @@ -16,35 +16,37 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.service; +package art.arcane.iris.world.tree; + +import art.arcane.iris.integration.ExternalDataSVC; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineLifecycleTasks; -import art.arcane.iris.engine.framework.TreeBlockMaterial; -import art.arcane.iris.engine.object.IObjectPlacer; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisObjectPlacement; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisTreeModes; -import art.arcane.iris.engine.object.IrisTreeSize; -import art.arcane.iris.engine.object.TileData; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineLifecycleTasks; +import art.arcane.iris.generation.decoration.tree.TreeBlockMaterial; +import art.arcane.iris.structure.object.IObjectPlacer; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.generation.decoration.tree.IrisTreeModes; +import art.arcane.iris.generation.decoration.tree.IrisTreeSize; +import art.arcane.iris.generation.block.TileData; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; import art.arcane.iris.platform.bukkit.BukkitBlockState; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.data.Cuboid; -import art.arcane.iris.util.common.data.IrisCustomData; +import art.arcane.iris.generation.block.IrisCustomData; import art.arcane.volmlib.util.math.BlockPosition; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.common.plugin.IrisService; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.platform.bukkit.plugin.IrisService; +import art.arcane.iris.world.task.J; import org.bukkit.Bukkit; import org.bukkit.HeightMap; import org.bukkit.Location; diff --git a/core/src/test/java/art/arcane/iris/util/common/director/DirectorAuthoringDataTest.java b/core/src/test/java/art/arcane/iris/command/DirectorAuthoringDataTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/util/common/director/DirectorAuthoringDataTest.java rename to core/src/test/java/art/arcane/iris/command/DirectorAuthoringDataTest.java index 460293953..bf9dcec07 100644 --- a/core/src/test/java/art/arcane/iris/util/common/director/DirectorAuthoringDataTest.java +++ b/core/src/test/java/art/arcane/iris/command/DirectorAuthoringDataTest.java @@ -1,9 +1,9 @@ -package art.arcane.iris.util.common.director; +package art.arcane.iris.command; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.pack.PackDirectoryResolver; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.PackDirectoryResolver; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.testsupport.PlatformLeakGuard; diff --git a/core/src/test/java/art/arcane/iris/util/common/director/handlers/DataVersionHandlerTest.java b/core/src/test/java/art/arcane/iris/command/handlers/DataVersionHandlerTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/util/common/director/handlers/DataVersionHandlerTest.java rename to core/src/test/java/art/arcane/iris/command/handlers/DataVersionHandlerTest.java index 48770c6dc..4c7eac63f 100644 --- a/core/src/test/java/art/arcane/iris/util/common/director/handlers/DataVersionHandlerTest.java +++ b/core/src/test/java/art/arcane/iris/command/handlers/DataVersionHandlerTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.util.common.director.handlers; +package art.arcane.iris.command.handlers; -import art.arcane.iris.core.nms.datapack.DataVersion; +import art.arcane.iris.platform.bukkit.nms.datapack.DataVersion; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.director.exceptions.DirectorParsingException; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/util/common/director/handlers/GeneratorHandlerTest.java b/core/src/test/java/art/arcane/iris/command/handlers/GeneratorHandlerTest.java similarity index 82% rename from core/src/test/java/art/arcane/iris/util/common/director/handlers/GeneratorHandlerTest.java rename to core/src/test/java/art/arcane/iris/command/handlers/GeneratorHandlerTest.java index 876c6a3a9..0471e0038 100644 --- a/core/src/test/java/art/arcane/iris/util/common/director/handlers/GeneratorHandlerTest.java +++ b/core/src/test/java/art/arcane/iris/command/handlers/GeneratorHandlerTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.common.director.handlers; +package art.arcane.iris.command.handlers; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/util/common/director/handlers/PrimitiveHandlerParsingTest.java b/core/src/test/java/art/arcane/iris/command/handlers/PrimitiveHandlerParsingTest.java similarity index 59% rename from core/src/test/java/art/arcane/iris/util/common/director/handlers/PrimitiveHandlerParsingTest.java rename to core/src/test/java/art/arcane/iris/command/handlers/PrimitiveHandlerParsingTest.java index 59ea36282..a70a92504 100644 --- a/core/src/test/java/art/arcane/iris/util/common/director/handlers/PrimitiveHandlerParsingTest.java +++ b/core/src/test/java/art/arcane/iris/command/handlers/PrimitiveHandlerParsingTest.java @@ -1,6 +1,14 @@ -package art.arcane.iris.util.common.director.handlers; +package art.arcane.iris.command.handlers; import art.arcane.volmlib.util.director.exceptions.DirectorParsingException; +import art.arcane.volmlib.util.director.handlers.base.BooleanHandlerBase; +import art.arcane.volmlib.util.director.handlers.base.ByteHandlerBase; +import art.arcane.volmlib.util.director.handlers.base.DoubleHandlerBase; +import art.arcane.volmlib.util.director.handlers.base.FloatHandlerBase; +import art.arcane.volmlib.util.director.handlers.base.IntegerHandlerBase; +import art.arcane.volmlib.util.director.handlers.base.LongHandlerBase; +import art.arcane.volmlib.util.director.handlers.base.ShortHandlerBase; +import art.arcane.volmlib.util.director.handlers.StringHandlerBase; import org.junit.Test; import static org.junit.Assert.assertEquals; @@ -12,7 +20,7 @@ import static org.junit.Assert.assertTrue; public class PrimitiveHandlerParsingTest { @Test public void integerSuffixesScaleTheParsedValue() throws DirectorParsingException { - IntegerHandler handler = new IntegerHandler(); + IntegerHandlerBase handler = new IntegerHandlerBase(); assertEquals(Integer.valueOf(5), handler.parse("5", false)); assertEquals(Integer.valueOf(64), handler.parse("4c", false)); @@ -23,20 +31,20 @@ public class PrimitiveHandlerParsingTest { @Test public void stackedIntegerSuffixesMultiplyTogether() throws DirectorParsingException { - assertEquals(Integer.valueOf(2_000_000), new IntegerHandler().parse("2kk", false)); + assertEquals(Integer.valueOf(2_000_000), new IntegerHandlerBase().parse("2kk", false)); } @Test public void anUnparseableIntegerNamesTheOffendingInput() { DirectorParsingException failure = - assertThrows(DirectorParsingException.class, () -> new IntegerHandler().parse("abc", false)); + assertThrows(DirectorParsingException.class, () -> new IntegerHandlerBase().parse("abc", false)); assertTrue(failure.getMessage(), failure.getMessage().contains("abc")); } @Test public void anUnscaledLongKeepsFullPrecision() throws DirectorParsingException { - LongHandler handler = new LongHandler(); + LongHandlerBase handler = new LongHandlerBase(); assertEquals(Long.valueOf(9_007_199_254_740_993L), handler.parse("9007199254740993", false)); assertEquals(Long.valueOf(1_000L), handler.parse("1k", false)); @@ -44,14 +52,14 @@ public class PrimitiveHandlerParsingTest { @Test public void shortAndFloatingPointHandlersShareTheSuffixTable() throws DirectorParsingException { - assertEquals(Short.valueOf((short) 32), new ShortHandler().parse("2c", false)); - assertEquals(1_500F, new FloatHandler().parse("1.5k", false), 0F); - assertEquals(1_500D, new DoubleHandler().parse("1.5k", false), 0D); + assertEquals(Short.valueOf((short) 32), new ShortHandlerBase().parse("2c", false)); + assertEquals(1_500F, new FloatHandlerBase().parse("1.5k", false), 0F); + assertEquals(1_500D, new DoubleHandlerBase().parse("1.5k", false), 0D); } @Test public void byteParsingHasNoSuffixTable() throws DirectorParsingException { - ByteHandler handler = new ByteHandler(); + ByteHandlerBase handler = new ByteHandlerBase(); assertEquals(Byte.valueOf((byte) 12), handler.parse("12", false)); assertThrows(DirectorParsingException.class, () -> handler.parse("1k", false)); @@ -59,7 +67,7 @@ public class PrimitiveHandlerParsingTest { @Test public void booleanSentinelsAreCaseSensitiveAndEverythingElseFallsBackToFalse() throws DirectorParsingException { - BooleanHandler handler = new BooleanHandler(); + BooleanHandlerBase handler = new BooleanHandlerBase(); assertNull(handler.parse("null", false)); assertNull(handler.parse("other", false)); @@ -71,7 +79,7 @@ public class PrimitiveHandlerParsingTest { @Test public void stringParsingIsVerbatim() throws DirectorParsingException { - StringHandler handler = new StringHandler(); + StringHandlerBase handler = new StringHandlerBase(); assertEquals(" spaced ", handler.parse(" spaced ", false)); assertEquals("", handler.parse("", false)); @@ -79,16 +87,16 @@ public class PrimitiveHandlerParsingTest { @Test public void eachHandlerClaimsOnlyItsOwnParameterType() { - assertTrue(new IntegerHandler().supports(int.class)); - assertTrue(new IntegerHandler().supports(Integer.class)); - assertFalse(new IntegerHandler().supports(Long.class)); - assertTrue(new LongHandler().supports(long.class)); - assertTrue(new ShortHandler().supports(short.class)); - assertTrue(new ByteHandler().supports(byte.class)); - assertTrue(new FloatHandler().supports(float.class)); - assertTrue(new DoubleHandler().supports(double.class)); - assertTrue(new BooleanHandler().supports(boolean.class)); - assertTrue(new StringHandler().supports(String.class)); - assertFalse(new StringHandler().supports(Object.class)); + assertTrue(new IntegerHandlerBase().supports(int.class)); + assertTrue(new IntegerHandlerBase().supports(Integer.class)); + assertFalse(new IntegerHandlerBase().supports(Long.class)); + assertTrue(new LongHandlerBase().supports(long.class)); + assertTrue(new ShortHandlerBase().supports(short.class)); + assertTrue(new ByteHandlerBase().supports(byte.class)); + assertTrue(new FloatHandlerBase().supports(float.class)); + assertTrue(new DoubleHandlerBase().supports(double.class)); + assertTrue(new BooleanHandlerBase().supports(boolean.class)); + assertTrue(new StringHandlerBase().supports(String.class)); + assertFalse(new StringHandlerBase().supports(Object.class)); } } diff --git a/core/src/test/java/art/arcane/iris/util/common/director/handlers/VectorHandlerParsingTest.java b/core/src/test/java/art/arcane/iris/command/handlers/VectorHandlerParsingTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/util/common/director/handlers/VectorHandlerParsingTest.java rename to core/src/test/java/art/arcane/iris/command/handlers/VectorHandlerParsingTest.java index 9e4d81c44..a198bfa55 100644 --- a/core/src/test/java/art/arcane/iris/util/common/director/handlers/VectorHandlerParsingTest.java +++ b/core/src/test/java/art/arcane/iris/command/handlers/VectorHandlerParsingTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.common.director.handlers; +package art.arcane.iris.command.handlers; import art.arcane.volmlib.util.director.exceptions.DirectorParsingException; import org.bukkit.Location; diff --git a/core/src/test/java/art/arcane/iris/util/common/director/handlers/WorldHandlerTest.java b/core/src/test/java/art/arcane/iris/command/handlers/WorldHandlerTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/util/common/director/handlers/WorldHandlerTest.java rename to core/src/test/java/art/arcane/iris/command/handlers/WorldHandlerTest.java index 3237b8141..57457a4c7 100644 --- a/core/src/test/java/art/arcane/iris/util/common/director/handlers/WorldHandlerTest.java +++ b/core/src/test/java/art/arcane/iris/command/handlers/WorldHandlerTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.common.director.handlers; +package art.arcane.iris.command.handlers; import art.arcane.volmlib.util.director.exceptions.DirectorParsingException; import org.bukkit.NamespacedKey; diff --git a/core/src/test/java/art/arcane/iris/util/common/director/specialhandlers/ObjectScaleHandlerTest.java b/core/src/test/java/art/arcane/iris/command/specialhandlers/ObjectScaleHandlerTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/util/common/director/specialhandlers/ObjectScaleHandlerTest.java rename to core/src/test/java/art/arcane/iris/command/specialhandlers/ObjectScaleHandlerTest.java index 19314955e..21a299c31 100644 --- a/core/src/test/java/art/arcane/iris/util/common/director/specialhandlers/ObjectScaleHandlerTest.java +++ b/core/src/test/java/art/arcane/iris/command/specialhandlers/ObjectScaleHandlerTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.common.director.specialhandlers; +package art.arcane.iris.command.specialhandlers; import art.arcane.volmlib.util.director.exceptions.DirectorParsingException; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/util/common/director/specialhandlers/ReachableBiomeHandlerTest.java b/core/src/test/java/art/arcane/iris/command/specialhandlers/ReachableBiomeHandlerTest.java similarity index 90% rename from core/src/test/java/art/arcane/iris/util/common/director/specialhandlers/ReachableBiomeHandlerTest.java rename to core/src/test/java/art/arcane/iris/command/specialhandlers/ReachableBiomeHandlerTest.java index b3447f34f..3a0bf50f8 100644 --- a/core/src/test/java/art/arcane/iris/util/common/director/specialhandlers/ReachableBiomeHandlerTest.java +++ b/core/src/test/java/art/arcane/iris/command/specialhandlers/ReachableBiomeHandlerTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.util.common.director.specialhandlers; +package art.arcane.iris.command.specialhandlers; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.biome.IrisBiome; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.director.exceptions.DirectorParsingException; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/util/common/director/specialhandlers/StructureHandlerTest.java b/core/src/test/java/art/arcane/iris/command/specialhandlers/StructureHandlerTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/util/common/director/specialhandlers/StructureHandlerTest.java rename to core/src/test/java/art/arcane/iris/command/specialhandlers/StructureHandlerTest.java index 17d2b837b..b6c99fe5c 100644 --- a/core/src/test/java/art/arcane/iris/util/common/director/specialhandlers/StructureHandlerTest.java +++ b/core/src/test/java/art/arcane/iris/command/specialhandlers/StructureHandlerTest.java @@ -1,18 +1,18 @@ -package art.arcane.iris.util.common.director.specialhandlers; +package art.arcane.iris.command.specialhandlers; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.IrisStructureLocator; -import art.arcane.iris.engine.framework.StructureReachability; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisImportedStructureControl; -import art.arcane.iris.engine.object.IrisNativeStructure; -import art.arcane.iris.engine.object.IrisNativeStructureDecision; -import art.arcane.iris.engine.object.IrisStructure; -import art.arcane.iris.engine.object.IrisStructurePlacement; -import art.arcane.iris.engine.object.IrisWorld; -import art.arcane.iris.engine.object.NativeStructureGenerationStatus; -import art.arcane.iris.engine.object.StructureDistribution; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.placement.IrisStructureLocator; +import art.arcane.iris.structure.placement.StructureReachability; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.structure.nativegen.IrisImportedStructureControl; +import art.arcane.iris.structure.nativegen.IrisNativeStructure; +import art.arcane.iris.structure.nativegen.IrisNativeStructureDecision; +import art.arcane.iris.structure.placement.IrisStructure; +import art.arcane.iris.structure.placement.IrisStructurePlacement; +import art.arcane.iris.world.IrisWorld; +import art.arcane.iris.structure.nativegen.NativeStructureGenerationStatus; +import art.arcane.iris.structure.placement.StructureDistribution; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformStructureHooks; diff --git a/core/src/test/java/art/arcane/iris/core/IrisSettingsDefaultsTest.java b/core/src/test/java/art/arcane/iris/configuration/IrisSettingsDefaultsTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/IrisSettingsDefaultsTest.java rename to core/src/test/java/art/arcane/iris/configuration/IrisSettingsDefaultsTest.java index 692a93eac..e5b134757 100644 --- a/core/src/test/java/art/arcane/iris/core/IrisSettingsDefaultsTest.java +++ b/core/src/test/java/art/arcane/iris/configuration/IrisSettingsDefaultsTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core; +package art.arcane.iris.configuration; import com.google.gson.Gson; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/IrisSettingsRewriteFailureTest.java b/core/src/test/java/art/arcane/iris/configuration/IrisSettingsRewriteFailureTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/IrisSettingsRewriteFailureTest.java rename to core/src/test/java/art/arcane/iris/configuration/IrisSettingsRewriteFailureTest.java index 5acea5075..9a952e709 100644 --- a/core/src/test/java/art/arcane/iris/core/IrisSettingsRewriteFailureTest.java +++ b/core/src/test/java/art/arcane/iris/configuration/IrisSettingsRewriteFailureTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core; +package art.arcane.iris.configuration; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; diff --git a/core/src/test/java/art/arcane/iris/core/SettingsHotloadWatchTest.java b/core/src/test/java/art/arcane/iris/configuration/SettingsHotloadWatchTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/SettingsHotloadWatchTest.java rename to core/src/test/java/art/arcane/iris/configuration/SettingsHotloadWatchTest.java index 1e26a28f3..80ba0b46e 100644 --- a/core/src/test/java/art/arcane/iris/core/SettingsHotloadWatchTest.java +++ b/core/src/test/java/art/arcane/iris/configuration/SettingsHotloadWatchTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core; +package art.arcane.iris.configuration; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.IrisMessages; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.IrisMessages; import art.arcane.iris.testsupport.Await; import art.arcane.volmlib.util.hotload.ConfigHotloadEngine; import art.arcane.volmlib.util.localization.MessageArgument; diff --git a/core/src/test/java/art/arcane/iris/core/service/LogFilterSVCTest.java b/core/src/test/java/art/arcane/iris/diagnostics/LogFilterSVCTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/service/LogFilterSVCTest.java rename to core/src/test/java/art/arcane/iris/diagnostics/LogFilterSVCTest.java index 0892f7837..a9fe877af 100644 --- a/core/src/test/java/art/arcane/iris/core/service/LogFilterSVCTest.java +++ b/core/src/test/java/art/arcane/iris/diagnostics/LogFilterSVCTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.diagnostics; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.core.Logger; diff --git a/core/src/test/java/art/arcane/iris/core/splash/IrisSplashComposerTest.java b/core/src/test/java/art/arcane/iris/diagnostics/splash/IrisSplashComposerTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/core/splash/IrisSplashComposerTest.java rename to core/src/test/java/art/arcane/iris/diagnostics/splash/IrisSplashComposerTest.java index 2d5dbdb54..2654112d9 100644 --- a/core/src/test/java/art/arcane/iris/core/splash/IrisSplashComposerTest.java +++ b/core/src/test/java/art/arcane/iris/diagnostics/splash/IrisSplashComposerTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.splash; +package art.arcane.iris.diagnostics.splash; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/FloatingIslandBoundarySamplerTest.java b/core/src/test/java/art/arcane/iris/generation/biome/FloatingIslandBoundarySamplerTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/object/FloatingIslandBoundarySamplerTest.java rename to core/src/test/java/art/arcane/iris/generation/biome/FloatingIslandBoundarySamplerTest.java index 201e57dbe..d2869793f 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/FloatingIslandBoundarySamplerTest.java +++ b/core/src/test/java/art/arcane/iris/generation/biome/FloatingIslandBoundarySamplerTest.java @@ -16,11 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.iris.world.IrisWorld; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.volmlib.util.noise.CNG; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/FloatingIslandSampleBottomYTest.java b/core/src/test/java/art/arcane/iris/generation/biome/FloatingIslandSampleBottomYTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/object/FloatingIslandSampleBottomYTest.java rename to core/src/test/java/art/arcane/iris/generation/biome/FloatingIslandSampleBottomYTest.java index aa0ab1d1a..af8c7909e 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/FloatingIslandSampleBottomYTest.java +++ b/core/src/test/java/art/arcane/iris/generation/biome/FloatingIslandSampleBottomYTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; -import art.arcane.iris.util.project.noise.CNG; -import art.arcane.iris.util.project.noise.NoiseGenerator; +import art.arcane.volmlib.util.noise.CNG; +import art.arcane.volmlib.util.noise.NoiseGenerator; import art.arcane.volmlib.util.math.RNG; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisBiomeCeilingLayerTest.java b/core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeCeilingLayerTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/object/IrisBiomeCeilingLayerTest.java rename to core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeCeilingLayerTest.java index cc46a9c82..88673afa0 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisBiomeCeilingLayerTest.java +++ b/core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeCeilingLayerTest.java @@ -1,4 +1,6 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; + +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.volmlib.util.collection.KList; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisBiomeCompatChildrenTest.java b/core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeCompatChildrenTest.java similarity index 83% rename from core/src/test/java/art/arcane/iris/engine/object/IrisBiomeCompatChildrenTest.java rename to core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeCompatChildrenTest.java index 351267eb9..7c36f63fa 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisBiomeCompatChildrenTest.java +++ b/core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeCompatChildrenTest.java @@ -1,17 +1,20 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; -import art.arcane.iris.core.compat.CompatAction; -import art.arcane.iris.core.compat.CompatFinding; -import art.arcane.iris.core.compat.PackCompatReport; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; +import art.arcane.iris.generation.terrain.IrisDimensionCarvingEntry; +import art.arcane.iris.testsupport.PackCompatFixtures; + +import art.arcane.iris.pack.validation.CompatAction; +import art.arcane.iris.pack.validation.CompatFinding; +import art.arcane.iris.pack.validation.PackCompatReport; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; import art.arcane.volmlib.util.collection.KList; import org.junit.Test; -import static art.arcane.iris.engine.object.PackCompatFixtures.MISSING_BLOCK; -import static art.arcane.iris.engine.object.PackCompatFixtures.biome; -import static art.arcane.iris.engine.object.PackCompatFixtures.excludeBlock; -import static art.arcane.iris.engine.object.PackCompatFixtures.find; +import static art.arcane.iris.testsupport.PackCompatFixtures.MISSING_BLOCK; +import static art.arcane.iris.testsupport.PackCompatFixtures.biome; +import static art.arcane.iris.testsupport.PackCompatFixtures.excludeBlock; +import static art.arcane.iris.testsupport.PackCompatFixtures.find; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisBiomeCustomCompatTest.java b/core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeCustomCompatTest.java similarity index 90% rename from core/src/test/java/art/arcane/iris/engine/object/IrisBiomeCustomCompatTest.java rename to core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeCustomCompatTest.java index b48c9c7d6..f9e81c44e 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisBiomeCustomCompatTest.java +++ b/core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeCustomCompatTest.java @@ -1,8 +1,10 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; -import art.arcane.iris.core.compat.ContentGate; -import art.arcane.iris.core.compat.PackCompatReport; -import art.arcane.iris.core.nms.datapack.IDataFixer; +import art.arcane.iris.generation.terrain.IrisDimensionTypeOptions; + +import art.arcane.iris.pack.validation.ContentGate; +import art.arcane.iris.pack.validation.PackCompatReport; +import art.arcane.iris.platform.bukkit.nms.datapack.IDataFixer; import art.arcane.iris.spi.PlatformRegistries; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.json.JSONArray; @@ -22,7 +24,7 @@ import static org.mockito.Mockito.when; public class IrisBiomeCustomCompatTest { private static final IDataFixer PASSTHROUGH = new IDataFixer() { @Override - public JSONObject resolve(IDataFixer.Dimension dimension, art.arcane.iris.engine.object.IrisDimensionTypeOptions options) { + public JSONObject resolve(IDataFixer.Dimension dimension, art.arcane.iris.generation.terrain.IrisDimensionTypeOptions options) { return new JSONObject(); } diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisBiomeCustomSpawnTest.java b/core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeCustomSpawnTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/object/IrisBiomeCustomSpawnTest.java rename to core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeCustomSpawnTest.java index b0bd91d2f..39b59c157 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisBiomeCustomSpawnTest.java +++ b/core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeCustomSpawnTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisBiomeCustomTagInheritanceTest.java b/core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeCustomTagInheritanceTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/object/IrisBiomeCustomTagInheritanceTest.java rename to core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeCustomTagInheritanceTest.java index c4eb6a9b8..ff88b799f 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisBiomeCustomTagInheritanceTest.java +++ b/core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeCustomTagInheritanceTest.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; import art.arcane.volmlib.util.collection.KList; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisBiomeDerivativeCompatTest.java b/core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeDerivativeCompatTest.java similarity index 92% rename from core/src/test/java/art/arcane/iris/engine/object/IrisBiomeDerivativeCompatTest.java rename to core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeDerivativeCompatTest.java index 33d2fcb00..dd27c4a03 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisBiomeDerivativeCompatTest.java +++ b/core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeDerivativeCompatTest.java @@ -1,4 +1,6 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; + +import art.arcane.iris.testsupport.PackCompatFixtures; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisBiomeGeneratorSeedIsolationTest.java b/core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeGeneratorSeedIsolationTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/object/IrisBiomeGeneratorSeedIsolationTest.java rename to core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeGeneratorSeedIsolationTest.java index bee31765e..b289bcae9 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisBiomeGeneratorSeedIsolationTest.java +++ b/core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeGeneratorSeedIsolationTest.java @@ -1,9 +1,9 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.SeedManager; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.SeedManager; +import art.arcane.volmlib.util.noise.CNG; import art.arcane.volmlib.util.math.RNG; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisBiomeInferenceIsolationTest.java b/core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeInferenceIsolationTest.java similarity index 88% rename from core/src/test/java/art/arcane/iris/engine/object/IrisBiomeInferenceIsolationTest.java rename to core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeInferenceIsolationTest.java index 548e1570b..71fbfc0bf 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisBiomeInferenceIsolationTest.java +++ b/core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeInferenceIsolationTest.java @@ -1,6 +1,8 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; -import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.generation.terrain.InferredType; + +import art.arcane.iris.pack.loading.IrisData; import com.google.gson.Gson; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisBiomeLayerSlopeSourceTest.java b/core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeLayerSlopeSourceTest.java similarity index 92% rename from core/src/test/java/art/arcane/iris/engine/object/IrisBiomeLayerSlopeSourceTest.java rename to core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeLayerSlopeSourceTest.java index fee139ecd..f7e4cad31 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisBiomeLayerSlopeSourceTest.java +++ b/core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeLayerSlopeSourceTest.java @@ -1,10 +1,13 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.IrisComplex; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisSlopeClip; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.IrisComplex; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.noise.CNG; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.volmlib.util.noise.CNG; +import art.arcane.volmlib.util.stream.ProceduralStream; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisBiomeLockedLayerTest.java b/core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeLockedLayerTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/object/IrisBiomeLockedLayerTest.java rename to core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeLockedLayerTest.java index e2d0a604c..5345fb509 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisBiomeLockedLayerTest.java +++ b/core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeLockedLayerTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.volmlib.util.collection.KList; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisBiomePaletteLayerGeneratorCacheTest.java b/core/src/test/java/art/arcane/iris/generation/biome/IrisBiomePaletteLayerGeneratorCacheTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/engine/object/IrisBiomePaletteLayerGeneratorCacheTest.java rename to core/src/test/java/art/arcane/iris/generation/biome/IrisBiomePaletteLayerGeneratorCacheTest.java index 1904e2571..4639cdad9 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisBiomePaletteLayerGeneratorCacheTest.java +++ b/core/src/test/java/art/arcane/iris/generation/biome/IrisBiomePaletteLayerGeneratorCacheTest.java @@ -1,8 +1,10 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.iris.generation.noise.IrisGeneratorStyle; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.volmlib.util.noise.CNG; import art.arcane.volmlib.util.math.RNG; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisBiomeStructureDerivativeTest.java b/core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeStructureDerivativeTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/object/IrisBiomeStructureDerivativeTest.java rename to core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeStructureDerivativeTest.java index 9fd2f6ba7..63013e854 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisBiomeStructureDerivativeTest.java +++ b/core/src/test/java/art/arcane/iris/generation/biome/IrisBiomeStructureDerivativeTest.java @@ -1,4 +1,6 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; + +import art.arcane.iris.generation.terrain.InferredType; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisFloatingChildBiomesCarvingResolutionTest.java b/core/src/test/java/art/arcane/iris/generation/biome/IrisFloatingChildBiomesCarvingResolutionTest.java similarity index 90% rename from core/src/test/java/art/arcane/iris/engine/object/IrisFloatingChildBiomesCarvingResolutionTest.java rename to core/src/test/java/art/arcane/iris/generation/biome/IrisFloatingChildBiomesCarvingResolutionTest.java index f0baafb1a..6b3d78443 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisFloatingChildBiomesCarvingResolutionTest.java +++ b/core/src/test/java/art/arcane/iris/generation/biome/IrisFloatingChildBiomesCarvingResolutionTest.java @@ -1,8 +1,11 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisDimensionCarvingEntry; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.iris.testsupport.BukkitTestServer; import art.arcane.volmlib.util.collection.KList; import org.junit.BeforeClass; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisFloatingChildBiomesResolverTest.java b/core/src/test/java/art/arcane/iris/generation/biome/IrisFloatingChildBiomesResolverTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/object/IrisFloatingChildBiomesResolverTest.java rename to core/src/test/java/art/arcane/iris/generation/biome/IrisFloatingChildBiomesResolverTest.java index 84f7da8bb..4f83830ef 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisFloatingChildBiomesResolverTest.java +++ b/core/src/test/java/art/arcane/iris/generation/biome/IrisFloatingChildBiomesResolverTest.java @@ -1,4 +1,7 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; + +import art.arcane.iris.pack.value.OverrideMode; +import art.arcane.iris.structure.object.IrisObjectPlacement; import art.arcane.volmlib.util.collection.KList; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IslandObjectPlacerAnchorFaceTest.java b/core/src/test/java/art/arcane/iris/generation/biome/IslandObjectPlacerAnchorFaceTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/object/IslandObjectPlacerAnchorFaceTest.java rename to core/src/test/java/art/arcane/iris/generation/biome/IslandObjectPlacerAnchorFaceTest.java index 67a6ddf11..fee79b8ba 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IslandObjectPlacerAnchorFaceTest.java +++ b/core/src/test/java/art/arcane/iris/generation/biome/IslandObjectPlacerAnchorFaceTest.java @@ -1,7 +1,9 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.biome; -import art.arcane.iris.engine.mantle.components.IslandObjectPlacer; -import art.arcane.iris.engine.mantle.MantleWriter; +import art.arcane.iris.generation.biome.FloatingIslandSample; + +import art.arcane.iris.generation.mantle.IslandObjectPlacer; +import art.arcane.iris.generation.mantle.MantleWriter; import org.junit.Test; import static org.junit.Assert.assertEquals; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectBlockDataMergeTest.java b/core/src/test/java/art/arcane/iris/generation/block/IrisObjectBlockDataMergeTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/object/IrisObjectBlockDataMergeTest.java rename to core/src/test/java/art/arcane/iris/generation/block/IrisObjectBlockDataMergeTest.java index cdddacdd7..665a22ed8 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectBlockDataMergeTest.java +++ b/core/src/test/java/art/arcane/iris/generation/block/IrisObjectBlockDataMergeTest.java @@ -1,4 +1,6 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.block; + +import art.arcane.iris.generation.block.BlockDataMergeSupport; import org.bukkit.Material; import org.bukkit.block.data.BlockData; diff --git a/core/src/test/java/art/arcane/iris/util/common/data/PlatformStateRebindTest.java b/core/src/test/java/art/arcane/iris/generation/block/PlatformStateRebindTest.java similarity index 85% rename from core/src/test/java/art/arcane/iris/util/common/data/PlatformStateRebindTest.java rename to core/src/test/java/art/arcane/iris/generation/block/PlatformStateRebindTest.java index 79acb8d45..47b9f7d3d 100644 --- a/core/src/test/java/art/arcane/iris/util/common/data/PlatformStateRebindTest.java +++ b/core/src/test/java/art/arcane/iris/generation/block/PlatformStateRebindTest.java @@ -1,12 +1,12 @@ -package art.arcane.iris.util.common.data; +package art.arcane.iris.generation.block; -import art.arcane.iris.engine.mantle.EngineMantle; +import art.arcane.iris.generation.mantle.EngineMantle; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformRegistries; import art.arcane.iris.testsupport.PlatformLeakGuard; -import art.arcane.iris.util.project.hunk.view.ChunkDataHunkHolder; +import art.arcane.iris.generation.chunk.ChunkDataHunkHolder; import org.bukkit.generator.ChunkGenerator; import org.junit.After; import org.junit.ClassRule; @@ -30,14 +30,14 @@ public class PlatformStateRebindTest { public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean(); private static final List CONVERTED = List.of( - "art.arcane.iris.engine.actuator.IrisDimensionStackActuator", - "art.arcane.iris.engine.actuator.IrisTerrainNormalActuator", - "art.arcane.iris.engine.modifier.IrisPerfectionModifier", - "art.arcane.iris.engine.modifier.IrisPostModifier", - "art.arcane.iris.engine.object.IrisBiomeLayerGenerator", - "art.arcane.iris.engine.platform.studio.generators.BiomeBuffetGenerator", - "art.arcane.iris.engine.mantle.EngineMantle", - "art.arcane.iris.util.project.hunk.view.ChunkDataHunkHolder"); + "art.arcane.iris.generation.stage.IrisDimensionStackActuator", + "art.arcane.iris.generation.stage.IrisTerrainNormalActuator", + "art.arcane.iris.generation.stage.IrisPerfectionModifier", + "art.arcane.iris.generation.stage.IrisPostModifier", + "art.arcane.iris.generation.biome.IrisBiomeLayerGenerator", + "art.arcane.iris.studio.generation.BiomeBuffetGenerator", + "art.arcane.iris.generation.mantle.EngineMantle", + "art.arcane.iris.generation.chunk.ChunkDataHunkHolder"); @After public void unbindPlatform() { diff --git a/core/src/test/java/art/arcane/iris/engine/data/cache/AtomicCacheTest.java b/core/src/test/java/art/arcane/iris/generation/cache/AtomicCacheTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/data/cache/AtomicCacheTest.java rename to core/src/test/java/art/arcane/iris/generation/cache/AtomicCacheTest.java index 50aa29006..1b9bc4758 100644 --- a/core/src/test/java/art/arcane/iris/engine/data/cache/AtomicCacheTest.java +++ b/core/src/test/java/art/arcane/iris/generation/cache/AtomicCacheTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.data.cache; +package art.arcane.iris.generation.cache; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/data/cache/LazyBoundedCacheTest.java b/core/src/test/java/art/arcane/iris/generation/cache/LazyBoundedCacheTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/data/cache/LazyBoundedCacheTest.java rename to core/src/test/java/art/arcane/iris/generation/cache/LazyBoundedCacheTest.java index 9bd86afff..1d9df8b36 100644 --- a/core/src/test/java/art/arcane/iris/engine/data/cache/LazyBoundedCacheTest.java +++ b/core/src/test/java/art/arcane/iris/generation/cache/LazyBoundedCacheTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.data.cache; +package art.arcane.iris.generation.cache; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/util/common/parallel/BurstExecutorSupportReentrantTest.java b/core/src/test/java/art/arcane/iris/generation/concurrent/BurstExecutorSupportReentrantTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/util/common/parallel/BurstExecutorSupportReentrantTest.java rename to core/src/test/java/art/arcane/iris/generation/concurrent/BurstExecutorSupportReentrantTest.java index 2f84ae190..46f4f9cb7 100644 --- a/core/src/test/java/art/arcane/iris/util/common/parallel/BurstExecutorSupportReentrantTest.java +++ b/core/src/test/java/art/arcane/iris/generation/concurrent/BurstExecutorSupportReentrantTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.common.parallel; +package art.arcane.iris.generation.concurrent; import art.arcane.volmlib.util.parallel.BurstExecutorSupport; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/util/project/context/ChunkContextPrefillPlanTest.java b/core/src/test/java/art/arcane/iris/generation/context/ChunkContextPrefillPlanTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/util/project/context/ChunkContextPrefillPlanTest.java rename to core/src/test/java/art/arcane/iris/generation/context/ChunkContextPrefillPlanTest.java index 2cb834bc8..8600bebf0 100644 --- a/core/src/test/java/art/arcane/iris/util/project/context/ChunkContextPrefillPlanTest.java +++ b/core/src/test/java/art/arcane/iris/generation/context/ChunkContextPrefillPlanTest.java @@ -1,12 +1,12 @@ -package art.arcane.iris.util.project.context; +package art.arcane.iris.generation.context; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.hydrology.runtime.IrisHydrologyRuntime; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.hydrology.runtime.IrisHydrologyRuntime; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisRegion; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.testsupport.PlatformLeakGuard; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.volmlib.util.stream.ProceduralStream; import org.bukkit.block.data.BlockData; import org.junit.ClassRule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/util/project/context/ChunkedDoubleDataCacheOverrideTest.java b/core/src/test/java/art/arcane/iris/generation/context/ChunkedDoubleDataCacheOverrideTest.java similarity index 89% rename from core/src/test/java/art/arcane/iris/util/project/context/ChunkedDoubleDataCacheOverrideTest.java rename to core/src/test/java/art/arcane/iris/generation/context/ChunkedDoubleDataCacheOverrideTest.java index ec3c3da4c..c3cecf801 100644 --- a/core/src/test/java/art/arcane/iris/util/project/context/ChunkedDoubleDataCacheOverrideTest.java +++ b/core/src/test/java/art/arcane/iris/generation/context/ChunkedDoubleDataCacheOverrideTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.util.project.context; +package art.arcane.iris.generation.context; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.volmlib.util.stream.ProceduralStream; import org.junit.Test; import static org.junit.Assert.assertEquals; diff --git a/core/src/test/java/art/arcane/iris/util/project/context/IrisContextIsolationTest.java b/core/src/test/java/art/arcane/iris/generation/context/IrisContextIsolationTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/util/project/context/IrisContextIsolationTest.java rename to core/src/test/java/art/arcane/iris/generation/context/IrisContextIsolationTest.java index 1eca0833f..02530c7c3 100644 --- a/core/src/test/java/art/arcane/iris/util/project/context/IrisContextIsolationTest.java +++ b/core/src/test/java/art/arcane/iris/generation/context/IrisContextIsolationTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.util.project.context; +package art.arcane.iris.generation.context; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.generation.runtime.Engine; import org.junit.Test; import java.util.concurrent.BrokenBarrierException; diff --git a/core/src/test/java/art/arcane/iris/engine/decorator/DecoratorCoreTest.java b/core/src/test/java/art/arcane/iris/generation/decoration/DecoratorCoreTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/decorator/DecoratorCoreTest.java rename to core/src/test/java/art/arcane/iris/generation/decoration/DecoratorCoreTest.java index b965cb76f..92365080c 100644 --- a/core/src/test/java/art/arcane/iris/engine/decorator/DecoratorCoreTest.java +++ b/core/src/test/java/art/arcane/iris/generation/decoration/DecoratorCoreTest.java @@ -1,15 +1,12 @@ -package art.arcane.iris.engine.decorator; +package art.arcane.iris.generation.decoration; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBlockData; -import art.arcane.iris.engine.object.IrisDecorationPart; -import art.arcane.iris.engine.object.IrisDecorator; -import art.arcane.iris.engine.object.IrisProceduralBlocks; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.block.IrisBlockData; import art.arcane.volmlib.util.collection.KList; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.hunk.Hunk; -import art.arcane.iris.util.common.data.B; +import art.arcane.volmlib.util.hunk.Hunk; +import art.arcane.iris.generation.block.B; import art.arcane.volmlib.util.math.RNG; import org.bukkit.block.BlockFace; import org.bukkit.block.BlockSupport; diff --git a/core/src/test/java/art/arcane/iris/engine/decorator/IrisDecoratorCaveContextTest.java b/core/src/test/java/art/arcane/iris/generation/decoration/IrisDecoratorCaveContextTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/decorator/IrisDecoratorCaveContextTest.java rename to core/src/test/java/art/arcane/iris/generation/decoration/IrisDecoratorCaveContextTest.java index 9e7f36694..d0e138a21 100644 --- a/core/src/test/java/art/arcane/iris/engine/decorator/IrisDecoratorCaveContextTest.java +++ b/core/src/test/java/art/arcane/iris/generation/decoration/IrisDecoratorCaveContextTest.java @@ -1,21 +1,19 @@ -package art.arcane.iris.engine.decorator; +package art.arcane.iris.generation.decoration; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.SeedManager; -import art.arcane.iris.engine.object.InferredType; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDecorationPart; -import art.arcane.iris.engine.object.IrisDecorator; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.mantle.EngineMantle; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.SeedManager; +import art.arcane.iris.generation.terrain.InferredType; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformRegistries; import art.arcane.iris.testsupport.PlatformLeakGuard; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; import org.junit.ClassRule; import org.junit.Test; import org.junit.BeforeClass; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisDecoratorHeightTest.java b/core/src/test/java/art/arcane/iris/generation/decoration/IrisDecoratorHeightTest.java similarity index 86% rename from core/src/test/java/art/arcane/iris/engine/object/IrisDecoratorHeightTest.java rename to core/src/test/java/art/arcane/iris/generation/decoration/IrisDecoratorHeightTest.java index 365949047..7cf0f4b1b 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisDecoratorHeightTest.java +++ b/core/src/test/java/art/arcane/iris/generation/decoration/IrisDecoratorHeightTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.decoration; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.volmlib.util.noise.CNG; import art.arcane.volmlib.util.math.RNG; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisDepositTuningTest.java b/core/src/test/java/art/arcane/iris/generation/decoration/IrisDepositTuningTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/object/IrisDepositTuningTest.java rename to core/src/test/java/art/arcane/iris/generation/decoration/IrisDepositTuningTest.java index 8f5292c6d..f097d5c7e 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisDepositTuningTest.java +++ b/core/src/test/java/art/arcane/iris/generation/decoration/IrisDepositTuningTest.java @@ -1,9 +1,12 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.decoration; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.block.IrisBlockData; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.volmlib.util.documentation.Description; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; +import art.arcane.iris.generation.block.B; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; import com.google.gson.Gson; @@ -31,14 +34,14 @@ public class IrisDepositTuningTest { continue; } - Desc typeDescription = enumType.getAnnotation(Desc.class); + Description typeDescription = enumType.getAnnotation(Description.class); assertNotNull(enumType.getSimpleName(), typeDescription); assertFalse(typeDescription.value().isBlank()); Object[] constants = enumType.getEnumConstants(); for (Object constant : constants) { String constantName = ((Enum) constant).name(); - Desc constantDescription = enumType.getField(constantName).getAnnotation(Desc.class); + Description constantDescription = enumType.getField(constantName).getAnnotation(Description.class); assertNotNull(enumType.getSimpleName() + "." + constantName, constantDescription); assertFalse(constantDescription.value().isBlank()); } diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisOreGeneratorTest.java b/core/src/test/java/art/arcane/iris/generation/decoration/IrisOreGeneratorTest.java similarity index 91% rename from core/src/test/java/art/arcane/iris/engine/object/IrisOreGeneratorTest.java rename to core/src/test/java/art/arcane/iris/generation/decoration/IrisOreGeneratorTest.java index 748f09560..60b781b06 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisOreGeneratorTest.java +++ b/core/src/test/java/art/arcane/iris/generation/decoration/IrisOreGeneratorTest.java @@ -1,7 +1,11 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.decoration; + +import art.arcane.iris.generation.block.IrisBlockData; +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.volmlib.util.noise.CNG; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/decorator/IrisSeaDecoratorBoundsTest.java b/core/src/test/java/art/arcane/iris/generation/decoration/IrisSeaDecoratorBoundsTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/decorator/IrisSeaDecoratorBoundsTest.java rename to core/src/test/java/art/arcane/iris/generation/decoration/IrisSeaDecoratorBoundsTest.java index 064489641..80ef32b5e 100644 --- a/core/src/test/java/art/arcane/iris/engine/decorator/IrisSeaDecoratorBoundsTest.java +++ b/core/src/test/java/art/arcane/iris/generation/decoration/IrisSeaDecoratorBoundsTest.java @@ -1,11 +1,9 @@ -package art.arcane.iris.engine.decorator; +package art.arcane.iris.generation.decoration; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDecorationPart; -import art.arcane.iris.engine.object.IrisDecorator; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.biome.IrisBiome; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; import org.junit.Test; import static org.junit.Assert.assertNull; diff --git a/core/src/test/java/art/arcane/iris/engine/decorator/IrisShoreLineDecoratorTest.java b/core/src/test/java/art/arcane/iris/generation/decoration/IrisShoreLineDecoratorTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/decorator/IrisShoreLineDecoratorTest.java rename to core/src/test/java/art/arcane/iris/generation/decoration/IrisShoreLineDecoratorTest.java index 25f11c301..b3306e382 100644 --- a/core/src/test/java/art/arcane/iris/engine/decorator/IrisShoreLineDecoratorTest.java +++ b/core/src/test/java/art/arcane/iris/generation/decoration/IrisShoreLineDecoratorTest.java @@ -1,22 +1,20 @@ -package art.arcane.iris.engine.decorator; +package art.arcane.iris.generation.decoration; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.SeedManager; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDecorationPart; -import art.arcane.iris.engine.object.IrisDecorator; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisSlopeClip; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.mantle.EngineMantle; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.SeedManager; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisSlopeClip; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformRegistries; import art.arcane.iris.testsupport.PlatformLeakGuard; -import art.arcane.iris.util.project.hunk.Hunk; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.volmlib.util.hunk.Hunk; +import art.arcane.volmlib.util.stream.ProceduralStream; import org.bukkit.block.BlockSupport; import org.bukkit.block.data.BlockData; import org.junit.ClassRule; diff --git a/core/src/test/java/art/arcane/iris/engine/decorator/IrisSugarCanePlacementTest.java b/core/src/test/java/art/arcane/iris/generation/decoration/IrisSugarCanePlacementTest.java similarity index 91% rename from core/src/test/java/art/arcane/iris/engine/decorator/IrisSugarCanePlacementTest.java rename to core/src/test/java/art/arcane/iris/generation/decoration/IrisSugarCanePlacementTest.java index e2cda3fc0..3cac6f569 100644 --- a/core/src/test/java/art/arcane/iris/engine/decorator/IrisSugarCanePlacementTest.java +++ b/core/src/test/java/art/arcane/iris/generation/decoration/IrisSugarCanePlacementTest.java @@ -1,15 +1,14 @@ -package art.arcane.iris.engine.decorator; +package art.arcane.iris.generation.decoration; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.HydrologyColumnSample; -import art.arcane.iris.engine.hydrology.HydrologyFeatureRef; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.object.IrisDecorator; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.HydrologyColumnSample; +import art.arcane.iris.generation.hydrology.HydrologyFeatureRef; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.mantle.EngineMantle; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; import art.arcane.volmlib.util.math.RNG; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/decorator/IrisSugarCaneTest.java b/core/src/test/java/art/arcane/iris/generation/decoration/IrisSugarCaneTest.java similarity index 91% rename from core/src/test/java/art/arcane/iris/engine/decorator/IrisSugarCaneTest.java rename to core/src/test/java/art/arcane/iris/generation/decoration/IrisSugarCaneTest.java index a29b8582a..ffad61cea 100644 --- a/core/src/test/java/art/arcane/iris/engine/decorator/IrisSugarCaneTest.java +++ b/core/src/test/java/art/arcane/iris/generation/decoration/IrisSugarCaneTest.java @@ -1,18 +1,17 @@ -package art.arcane.iris.engine.decorator; +package art.arcane.iris.generation.decoration; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.SeedManager; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.HydrologyColumnSample; -import art.arcane.iris.engine.hydrology.HydrologyFeatureRef; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDecorator; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.SeedManager; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.HydrologyColumnSample; +import art.arcane.iris.generation.hydrology.HydrologyFeatureRef; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.biome.IrisBiome; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.hunk.Hunk; -import art.arcane.iris.util.project.stream.ProceduralStream; -import art.arcane.iris.util.project.stream.interpolation.Interpolated; +import art.arcane.volmlib.util.hunk.Hunk; +import art.arcane.volmlib.util.stream.ProceduralStream; +import art.arcane.volmlib.util.stream.interpolation.Interpolated; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/decorator/IrisSurfaceDecoratorSlopeTest.java b/core/src/test/java/art/arcane/iris/generation/decoration/IrisSurfaceDecoratorSlopeTest.java similarity index 87% rename from core/src/test/java/art/arcane/iris/engine/decorator/IrisSurfaceDecoratorSlopeTest.java rename to core/src/test/java/art/arcane/iris/generation/decoration/IrisSurfaceDecoratorSlopeTest.java index 4e1cb3351..0f2191861 100644 --- a/core/src/test/java/art/arcane/iris/engine/decorator/IrisSurfaceDecoratorSlopeTest.java +++ b/core/src/test/java/art/arcane/iris/generation/decoration/IrisSurfaceDecoratorSlopeTest.java @@ -1,9 +1,8 @@ -package art.arcane.iris.engine.decorator; +package art.arcane.iris.generation.decoration; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.object.IrisDecorator; -import art.arcane.iris.engine.object.IrisSlopeClip; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.terrain.IrisSlopeClip; +import art.arcane.volmlib.util.stream.ProceduralStream; import org.junit.Test; import static org.junit.Assert.assertFalse; diff --git a/core/src/test/java/art/arcane/iris/engine/object/coral/CoralGeneratorTest.java b/core/src/test/java/art/arcane/iris/generation/decoration/coral/CoralGeneratorTest.java similarity index 89% rename from core/src/test/java/art/arcane/iris/engine/object/coral/CoralGeneratorTest.java rename to core/src/test/java/art/arcane/iris/generation/decoration/coral/CoralGeneratorTest.java index 69325e61a..5acb826da 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/coral/CoralGeneratorTest.java +++ b/core/src/test/java/art/arcane/iris/generation/decoration/coral/CoralGeneratorTest.java @@ -1,12 +1,10 @@ -package art.arcane.iris.engine.object.coral; +package art.arcane.iris.generation.decoration.coral; -import art.arcane.iris.engine.object.IrisBlockData; -import art.arcane.iris.engine.object.IrisCoral; -import art.arcane.iris.engine.object.IrisCoralForm; -import art.arcane.iris.engine.object.IrisMaterialPalette; -import art.arcane.iris.engine.object.IrisObject; +import art.arcane.iris.generation.block.IrisBlockData; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; +import art.arcane.iris.structure.object.IrisObject; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.generation.geometry.IrisBlockVector; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/formation/FormationBlockResolverTest.java b/core/src/test/java/art/arcane/iris/generation/decoration/formation/FormationBlockResolverTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/engine/object/formation/FormationBlockResolverTest.java rename to core/src/test/java/art/arcane/iris/generation/decoration/formation/FormationBlockResolverTest.java index d5f535eed..827e0920c 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/formation/FormationBlockResolverTest.java +++ b/core/src/test/java/art/arcane/iris/generation/decoration/formation/FormationBlockResolverTest.java @@ -1,10 +1,9 @@ -package art.arcane.iris.engine.object.formation; +package art.arcane.iris.generation.decoration.formation; -import art.arcane.iris.engine.object.IrisBlockData; -import art.arcane.iris.engine.object.IrisFormation; -import art.arcane.iris.engine.object.IrisMaterialPalette; +import art.arcane.iris.generation.block.IrisBlockData; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.math.Vector3i; +import art.arcane.volmlib.util.math.Vector3i; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/formation/FormationShapeBuilderTest.java b/core/src/test/java/art/arcane/iris/generation/decoration/formation/FormationShapeBuilderTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/object/formation/FormationShapeBuilderTest.java rename to core/src/test/java/art/arcane/iris/generation/decoration/formation/FormationShapeBuilderTest.java index da69c1ac1..66d07718f 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/formation/FormationShapeBuilderTest.java +++ b/core/src/test/java/art/arcane/iris/generation/decoration/formation/FormationShapeBuilderTest.java @@ -1,7 +1,6 @@ -package art.arcane.iris.engine.object.formation; +package art.arcane.iris.generation.decoration.formation; -import art.arcane.iris.engine.object.IrisFormation; -import art.arcane.iris.util.common.math.Vector3i; +import art.arcane.volmlib.util.math.Vector3i; import art.arcane.volmlib.util.math.RNG; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/fungi/FungusStemBuilderTest.java b/core/src/test/java/art/arcane/iris/generation/decoration/fungus/FungusStemBuilderTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/engine/object/fungi/FungusStemBuilderTest.java rename to core/src/test/java/art/arcane/iris/generation/decoration/fungus/FungusStemBuilderTest.java index 5db50cf78..7f2fe77de 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/fungi/FungusStemBuilderTest.java +++ b/core/src/test/java/art/arcane/iris/generation/decoration/fungus/FungusStemBuilderTest.java @@ -1,7 +1,6 @@ -package art.arcane.iris.engine.object.fungi; +package art.arcane.iris.generation.decoration.fungus; -import art.arcane.iris.engine.object.IrisFungus; -import art.arcane.iris.util.common.math.Vector3i; +import art.arcane.volmlib.util.math.Vector3i; import org.junit.Test; import java.util.HashMap; diff --git a/core/src/test/java/art/arcane/iris/engine/object/tree/ProceduralTreeGeneratorTest.java b/core/src/test/java/art/arcane/iris/generation/decoration/tree/ProceduralTreeGeneratorTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/object/tree/ProceduralTreeGeneratorTest.java rename to core/src/test/java/art/arcane/iris/generation/decoration/tree/ProceduralTreeGeneratorTest.java index a19ecfe2b..dac9860ef 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/tree/ProceduralTreeGeneratorTest.java +++ b/core/src/test/java/art/arcane/iris/generation/decoration/tree/ProceduralTreeGeneratorTest.java @@ -1,11 +1,5 @@ -package art.arcane.iris.engine.object.tree; +package art.arcane.iris.generation.decoration.tree; -import art.arcane.iris.engine.object.IrisProceduralTree; -import art.arcane.iris.engine.object.IrisTreeBranchProbability; -import art.arcane.iris.engine.object.IrisTreeBranches; -import art.arcane.iris.engine.object.IrisTreeFunction; -import art.arcane.iris.engine.object.IrisTreeLeafMode; -import art.arcane.iris.engine.object.IrisTreeProfile; import art.arcane.iris.spi.PlatformBlockState; import org.junit.Test; @@ -127,7 +121,7 @@ public class ProceduralTreeGeneratorTest { branches.setProbabilityConstant(1.0); branches.setLengthFunction(IrisTreeFunction.CONSTANT); branches.setLengthConstant(4); - branches.setAzimuthMode(art.arcane.iris.engine.object.IrisTreeAzimuthMode.GOLDEN_ANGLE); + branches.setAzimuthMode(art.arcane.iris.generation.decoration.tree.IrisTreeAzimuthMode.GOLDEN_ANGLE); tree.getCanopy().setBranches(branches); TreeBlockCanvas canvas = new TreeBlockCanvas(); @@ -179,7 +173,7 @@ public class ProceduralTreeGeneratorTest { branches.setLengthFunction(IrisTreeFunction.CONSTANT); branches.setLengthConstant(4); branches.setBranchDepth(depth); - branches.setSubBranches(new art.arcane.iris.engine.object.IrisTreeSubBranches()); + branches.setSubBranches(new art.arcane.iris.generation.decoration.tree.IrisTreeSubBranches()); tree.getCanopy().setBranches(branches); TreeBlockCanvas canvas = new TreeBlockCanvas(); diff --git a/core/src/test/java/art/arcane/iris/engine/framework/TreeBlockMaterialTest.java b/core/src/test/java/art/arcane/iris/generation/decoration/tree/TreeBlockMaterialTest.java similarity index 89% rename from core/src/test/java/art/arcane/iris/engine/framework/TreeBlockMaterialTest.java rename to core/src/test/java/art/arcane/iris/generation/decoration/tree/TreeBlockMaterialTest.java index a494cce94..8a2532768 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/TreeBlockMaterialTest.java +++ b/core/src/test/java/art/arcane/iris/generation/decoration/tree/TreeBlockMaterialTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.decoration.tree; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/tree/TreeBlockResolverTest.java b/core/src/test/java/art/arcane/iris/generation/decoration/tree/TreeBlockResolverTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/engine/object/tree/TreeBlockResolverTest.java rename to core/src/test/java/art/arcane/iris/generation/decoration/tree/TreeBlockResolverTest.java index 5fa5550a2..5602adc36 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/tree/TreeBlockResolverTest.java +++ b/core/src/test/java/art/arcane/iris/generation/decoration/tree/TreeBlockResolverTest.java @@ -1,11 +1,9 @@ -package art.arcane.iris.engine.object.tree; +package art.arcane.iris.generation.decoration.tree; -import art.arcane.iris.engine.object.IrisBlockData; -import art.arcane.iris.engine.object.IrisMaterialPalette; -import art.arcane.iris.engine.object.IrisProceduralTree; -import art.arcane.iris.engine.object.IrisTreeSecondaryLeaf; +import art.arcane.iris.generation.block.IrisBlockData; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; +import art.arcane.iris.generation.block.B; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/tree/TreeDecoratorApplierTest.java b/core/src/test/java/art/arcane/iris/generation/decoration/tree/TreeDecoratorApplierTest.java similarity index 88% rename from core/src/test/java/art/arcane/iris/engine/object/tree/TreeDecoratorApplierTest.java rename to core/src/test/java/art/arcane/iris/generation/decoration/tree/TreeDecoratorApplierTest.java index 6fc05ebae..3c818c29b 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/tree/TreeDecoratorApplierTest.java +++ b/core/src/test/java/art/arcane/iris/generation/decoration/tree/TreeDecoratorApplierTest.java @@ -1,8 +1,5 @@ -package art.arcane.iris.engine.object.tree; +package art.arcane.iris.generation.decoration.tree; -import art.arcane.iris.engine.object.IrisProceduralTree; -import art.arcane.iris.engine.object.IrisTreeDecorator; -import art.arcane.iris.engine.object.IrisTreeDecoratorTarget; import art.arcane.volmlib.util.collection.KList; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyCaveCourseFilterTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyCaveCourseFilterTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyCaveCourseFilterTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyCaveCourseFilterTest.java index e3be36ab9..9b73bd12b 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyCaveCourseFilterTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyCaveCourseFilterTest.java @@ -1,13 +1,13 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.cave.CavePosition; -import art.arcane.iris.engine.hydrology.cave.CaveVoxel; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelPrecondition; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelView; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCandidate; -import art.arcane.iris.engine.hydrology.cave.HydrologyCavePlan; -import art.arcane.iris.engine.hydrology.cave.HydrologyCavePlannerSettings; +import art.arcane.iris.generation.hydrology.cave.CavePosition; +import art.arcane.iris.generation.hydrology.cave.CaveVoxel; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelPrecondition; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelView; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCandidate; +import art.arcane.iris.generation.hydrology.cave.HydrologyCavePlan; +import art.arcane.iris.generation.hydrology.cave.HydrologyCavePlannerSettings; import org.junit.Test; import java.util.ArrayList; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyCaveTerminalAlignmentTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyCaveTerminalAlignmentTest.java similarity index 91% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyCaveTerminalAlignmentTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyCaveTerminalAlignmentTest.java index b259b6eef..de72855b0 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyCaveTerminalAlignmentTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyCaveTerminalAlignmentTest.java @@ -1,18 +1,18 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.cave.CavePosition; -import art.arcane.iris.engine.hydrology.cave.CaveVoxel; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelPrecondition; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelView; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCandidate; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveFluidPolicy; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveGrottoShape; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveMode; -import art.arcane.iris.engine.hydrology.cave.HydrologyCavePlan; -import art.arcane.iris.engine.hydrology.cave.HydrologyCavePlannerSettings; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveRejection; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveSource; +import art.arcane.iris.generation.hydrology.cave.CavePosition; +import art.arcane.iris.generation.hydrology.cave.CaveVoxel; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelPrecondition; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelView; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCandidate; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveFluidPolicy; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveGrottoShape; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveMode; +import art.arcane.iris.generation.hydrology.cave.HydrologyCavePlan; +import art.arcane.iris.generation.hydrology.cave.HydrologyCavePlannerSettings; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveRejection; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveSource; import org.junit.Test; import java.util.ArrayList; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyCoastalDropReservoirTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyCoastalDropReservoirTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyCoastalDropReservoirTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyCoastalDropReservoirTest.java index fa902bbe4..4f415b224 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyCoastalDropReservoirTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyCoastalDropReservoirTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.surface.SurfaceBounds; +import art.arcane.iris.generation.hydrology.surface.SurfaceBounds; import org.junit.Test; import java.util.List; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyColumnSampleAccessorTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyColumnSampleAccessorTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyColumnSampleAccessorTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyColumnSampleAccessorTest.java index bda5d348e..91dc4310c 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyColumnSampleAccessorTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyColumnSampleAccessorTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyCrossTileCaveAdmissionTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyCrossTileCaveAdmissionTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyCrossTileCaveAdmissionTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyCrossTileCaveAdmissionTest.java index 21422bd9c..3f37a1e16 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyCrossTileCaveAdmissionTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyCrossTileCaveAdmissionTest.java @@ -1,13 +1,13 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.cave.CavePosition; -import art.arcane.iris.engine.hydrology.cave.CaveVoxel; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelPrecondition; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveMode; -import art.arcane.iris.engine.hydrology.cave.HydrologyCavePlan; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveRejection; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveSource; +import art.arcane.iris.generation.hydrology.cave.CavePosition; +import art.arcane.iris.generation.hydrology.cave.CaveVoxel; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelPrecondition; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveMode; +import art.arcane.iris.generation.hydrology.cave.HydrologyCavePlan; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveRejection; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveSource; import org.junit.Test; import java.util.ArrayList; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyCrossTileSurfaceAdmissionTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyCrossTileSurfaceAdmissionTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyCrossTileSurfaceAdmissionTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyCrossTileSurfaceAdmissionTest.java index 8235373f0..baf6fd061 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyCrossTileSurfaceAdmissionTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyCrossTileSurfaceAdmissionTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyFootprintCompilerTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyFootprintCompilerTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyFootprintCompilerTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyFootprintCompilerTest.java index 1ef4f42e3..d542ab928 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyFootprintCompilerTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyFootprintCompilerTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyForkJoinTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyForkJoinTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyForkJoinTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyForkJoinTest.java index 43fbf58fa..77a6e3c19 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyForkJoinTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyForkJoinTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyModelTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyModelTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyModelTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyModelTest.java index a285e133a..58ed3deec 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyModelTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyModelTest.java @@ -1,13 +1,13 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.cave.CavePosition; -import art.arcane.iris.engine.hydrology.cave.CaveVoxel; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelPrecondition; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveMode; -import art.arcane.iris.engine.hydrology.cave.HydrologyCavePlan; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveRejection; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveSource; +import art.arcane.iris.generation.hydrology.cave.CavePosition; +import art.arcane.iris.generation.hydrology.cave.CaveVoxel; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelPrecondition; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveMode; +import art.arcane.iris.generation.hydrology.cave.HydrologyCavePlan; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveRejection; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveSource; import org.junit.Test; import java.util.ArrayList; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyMouthDropReservoirTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyMouthDropReservoirTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyMouthDropReservoirTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyMouthDropReservoirTest.java index 35f7f3ef9..94cd7f8a0 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyMouthDropReservoirTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyMouthDropReservoirTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.surface.SurfaceBounds; +import art.arcane.iris.generation.hydrology.surface.SurfaceBounds; import org.junit.Test; import java.util.List; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyOceanBoundaryRefinerTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyOceanBoundaryRefinerTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyOceanBoundaryRefinerTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyOceanBoundaryRefinerTest.java index ca6fd92ea..ef2598819 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyOceanBoundaryRefinerTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyOceanBoundaryRefinerTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyOceanReceiverTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyOceanReceiverTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyOceanReceiverTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyOceanReceiverTest.java index 50ac20380..b85a18e3d 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyOceanReceiverTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyOceanReceiverTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyOutletBoundaryPolicyTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyOutletBoundaryPolicyTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyOutletBoundaryPolicyTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyOutletBoundaryPolicyTest.java index 2de15f19f..0f6cf4aca 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyOutletBoundaryPolicyTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyOutletBoundaryPolicyTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; import org.junit.Test; import java.util.ArrayList; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlanHashTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlanHashTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlanHashTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlanHashTest.java index 8377e5aa1..f77e85e11 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlanHashTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlanHashTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; -import art.arcane.iris.engine.hydrology.cave.HydrologyCavePlan; +import art.arcane.iris.generation.hydrology.cave.HydrologyCavePlan; import org.junit.Test; import java.nio.charset.StandardCharsets; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlannerConfinementTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlannerConfinementTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlannerConfinementTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlannerConfinementTest.java index 612ce19f7..d27b8f9ba 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlannerConfinementTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlannerConfinementTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlannerCrossTileCaveAdmissionIntegrationTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlannerCrossTileCaveAdmissionIntegrationTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlannerCrossTileCaveAdmissionIntegrationTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlannerCrossTileCaveAdmissionIntegrationTest.java index 3fb4db171..e9452f31e 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlannerCrossTileCaveAdmissionIntegrationTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlannerCrossTileCaveAdmissionIntegrationTest.java @@ -1,14 +1,14 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; -import art.arcane.iris.engine.hydrology.cave.CavePosition; -import art.arcane.iris.engine.hydrology.cave.CaveVoxel; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelPrecondition; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelView; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveConflictPolicy; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.engine.hydrology.cave.HydrologyCavePlan; +import art.arcane.iris.generation.hydrology.cave.CavePosition; +import art.arcane.iris.generation.hydrology.cave.CaveVoxel; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelPrecondition; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelView; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveConflictPolicy; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.generation.hydrology.cave.HydrologyCavePlan; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.testsupport.PlatformLeakGuard; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlannerGlobalInvariantTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlannerGlobalInvariantTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlannerGlobalInvariantTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlannerGlobalInvariantTest.java index b375e3ddb..fa6878a31 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlannerGlobalInvariantTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlannerGlobalInvariantTest.java @@ -1,13 +1,13 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; -import art.arcane.iris.engine.hydrology.cave.CavePosition; -import art.arcane.iris.engine.hydrology.cave.CaveVoxel; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelPrecondition; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelView; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.hydrology.cave.HydrologyCavePlan; +import art.arcane.iris.generation.hydrology.cave.CavePosition; +import art.arcane.iris.generation.hydrology.cave.CaveVoxel; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelPrecondition; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelView; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCavePlan; import org.junit.Test; import java.util.ArrayList; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlannerRoutingSamplerTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlannerRoutingSamplerTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlannerRoutingSamplerTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlannerRoutingSamplerTest.java index 0eb41a06b..77ead63bb 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlannerRoutingSamplerTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlannerRoutingSamplerTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlannerSeaCaveTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlannerSeaCaveTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlannerSeaCaveTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlannerSeaCaveTest.java index a69ba20d2..669e55818 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlannerSeaCaveTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlannerSeaCaveTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; -import art.arcane.iris.engine.hydrology.cave.HydrologyCavePlan; +import art.arcane.iris.generation.hydrology.cave.HydrologyCavePlan; import org.junit.Test; import java.util.ArrayList; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlannerSettingsTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlannerSettingsTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlannerSettingsTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlannerSettingsTest.java index 0f6bb32f9..52e5f8777 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlannerSettingsTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlannerSettingsTest.java @@ -1,7 +1,5 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.object.IrisRiverBedProfile; -import art.arcane.iris.engine.object.IrisRiverBlendStyle; import org.junit.Test; import java.util.List; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlannerSurfacePoolTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlannerSurfacePoolTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlannerSurfacePoolTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlannerSurfacePoolTest.java index 1559cf86d..3daac6f40 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlannerSurfacePoolTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlannerSurfacePoolTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlannerTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlannerTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlannerTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlannerTest.java index 3fd4a0565..a990adac5 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlannerTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlannerTest.java @@ -1,12 +1,12 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; -import art.arcane.iris.engine.hydrology.cave.CavePosition; -import art.arcane.iris.engine.hydrology.cave.CaveVoxel; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelView; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.hydrology.cave.HydrologyCavePlan; +import art.arcane.iris.generation.hydrology.cave.CavePosition; +import art.arcane.iris.generation.hydrology.cave.CaveVoxel; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelView; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCavePlan; import com.github.benmanes.caffeine.cache.Cache; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlannerTributaryTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlannerTributaryTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlannerTributaryTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlannerTributaryTest.java index 9f6458cc3..4c8bb8dfc 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlannerTributaryTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlannerTributaryTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlannerUndergroundKnobsTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlannerUndergroundKnobsTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlannerUndergroundKnobsTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlannerUndergroundKnobsTest.java index 6c22db44b..174a97702 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyPlannerUndergroundKnobsTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyPlannerUndergroundKnobsTest.java @@ -1,10 +1,10 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; -import art.arcane.iris.engine.hydrology.cave.CavePosition; -import art.arcane.iris.engine.hydrology.cave.CaveVoxel; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelView; +import art.arcane.iris.generation.hydrology.cave.CavePosition; +import art.arcane.iris.generation.hydrology.cave.CaveVoxel; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelView; import org.junit.Test; import java.util.ArrayList; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalAdaptiveBendsTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalAdaptiveBendsTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalAdaptiveBendsTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalAdaptiveBendsTest.java index 7953129e8..0eecbe4b4 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalAdaptiveBendsTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalAdaptiveBendsTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalBankSupportTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalBankSupportTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalBankSupportTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalBankSupportTest.java index b172df500..b557036d5 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalBankSupportTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalBankSupportTest.java @@ -1,11 +1,11 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.surface.SurfaceCourseBuilder; -import art.arcane.iris.engine.hydrology.surface.SurfaceCourseResult; -import art.arcane.iris.engine.hydrology.surface.SurfaceFootprint; -import art.arcane.iris.engine.hydrology.surface.SurfaceFootprintCompiler; -import art.arcane.iris.engine.hydrology.surface.SurfaceLayerColumn; -import art.arcane.iris.engine.hydrology.surface.SurfaceTerminal; +import art.arcane.iris.generation.hydrology.surface.SurfaceCourseBuilder; +import art.arcane.iris.generation.hydrology.surface.SurfaceCourseResult; +import art.arcane.iris.generation.hydrology.surface.SurfaceFootprint; +import art.arcane.iris.generation.hydrology.surface.SurfaceFootprintCompiler; +import art.arcane.iris.generation.hydrology.surface.SurfaceLayerColumn; +import art.arcane.iris.generation.hydrology.surface.SurfaceTerminal; import org.junit.Test; import java.lang.reflect.Method; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalCacheTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalCacheTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalCacheTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalCacheTest.java index 7262ff191..fa6b4c9ee 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalCacheTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalCacheTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalCandidateSelectionTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalCandidateSelectionTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalCandidateSelectionTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalCandidateSelectionTest.java index a2a395572..288be796f 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalCandidateSelectionTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalCandidateSelectionTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalConnectivityTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalConnectivityTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalConnectivityTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalConnectivityTest.java index 91d1eb574..fa386814c 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalConnectivityTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalConnectivityTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalCourseGraphTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalCourseGraphTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalCourseGraphTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalCourseGraphTest.java index 94e49616c..0c2968ef7 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalCourseGraphTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalCourseGraphTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalFallsTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalFallsTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalFallsTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalFallsTest.java index 04cdf51a7..af3a54907 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalFallsTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalFallsTest.java @@ -1,11 +1,11 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.cave.CavePosition; -import art.arcane.iris.engine.hydrology.cave.CaveVoxel; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelView; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.hydrology.cave.HydrologyCavePlan; -import art.arcane.iris.engine.hydrology.surface.SurfaceBounds; +import art.arcane.iris.generation.hydrology.cave.CavePosition; +import art.arcane.iris.generation.hydrology.cave.CaveVoxel; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelView; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCavePlan; +import art.arcane.iris.generation.hydrology.surface.SurfaceBounds; import org.junit.Test; import java.util.ArrayList; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalFloodedMouthTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalFloodedMouthTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalFloodedMouthTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalFloodedMouthTest.java index d4078405f..f075606bb 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalFloodedMouthTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalFloodedMouthTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; import org.junit.Test; import java.lang.reflect.Method; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalGraphTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalGraphTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalGraphTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalGraphTest.java index 3ab81fe16..d8c4e9dfc 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalGraphTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalGraphTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; import org.junit.Test; import java.util.ArrayList; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalHydraulicsTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalHydraulicsTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalHydraulicsTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalHydraulicsTest.java index b129e6dc4..27be9003a 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalHydraulicsTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalHydraulicsTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; import org.junit.Test; import java.util.List; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalMeanderScaleTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalMeanderScaleTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalMeanderScaleTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalMeanderScaleTest.java index 1284c5d41..56ac6973b 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalMeanderScaleTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalMeanderScaleTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.surface.SurfaceCenterline; +import art.arcane.iris.generation.hydrology.surface.SurfaceCenterline; import org.junit.Test; import java.util.ArrayList; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalMorphologyTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalMorphologyTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalMorphologyTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalMorphologyTest.java index d51d08102..28343d804 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalMorphologyTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalMorphologyTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalMouthRefinementTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalMouthRefinementTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalMouthRefinementTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalMouthRefinementTest.java index 00769bc7d..1fd184505 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalMouthRefinementTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalMouthRefinementTest.java @@ -1,9 +1,9 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; -import art.arcane.iris.engine.hydrology.surface.SurfaceCourseBuilder; -import art.arcane.iris.engine.hydrology.surface.SurfaceCourseResult; -import art.arcane.iris.engine.hydrology.surface.SurfaceTerminal; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.generation.hydrology.surface.SurfaceCourseBuilder; +import art.arcane.iris.generation.hydrology.surface.SurfaceCourseResult; +import art.arcane.iris.generation.hydrology.surface.SurfaceTerminal; import org.junit.Test; import java.util.List; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalPlannerTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalPlannerTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalPlannerTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalPlannerTest.java index fa991da12..ce04254ec 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalPlannerTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalPlannerTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.surface.SurfaceBounds; +import art.arcane.iris.generation.hydrology.surface.SurfaceBounds; import org.junit.Test; import java.util.ArrayList; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalSkippedWaypointTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalSkippedWaypointTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalSkippedWaypointTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalSkippedWaypointTest.java index 58af90cb4..a3ed701d7 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalSkippedWaypointTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalSkippedWaypointTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalSourceTrialsTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalSourceTrialsTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalSourceTrialsTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalSourceTrialsTest.java index 8653e7427..45d62aa2f 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalSourceTrialsTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalSourceTrialsTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalSurfacePolicyTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalSurfacePolicyTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalSurfacePolicyTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalSurfacePolicyTest.java index c52a13159..4a1731cab 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalSurfacePolicyTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalSurfacePolicyTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; import org.junit.Test; import java.util.ArrayList; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalTerrainRefinerTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalTerrainRefinerTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalTerrainRefinerTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalTerrainRefinerTest.java index 29f90c466..c7bc2c0de 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalTerrainRefinerTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalTerrainRefinerTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; -import art.arcane.iris.engine.hydrology.surface.SurfaceCenterline; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.generation.hydrology.surface.SurfaceCenterline; import org.junit.Test; import java.util.List; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalTributariesTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalTributariesTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalTributariesTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalTributariesTest.java index 29c478a29..47e3c17e0 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalTributariesTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalTributariesTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.surface.SurfaceFootprint; +import art.arcane.iris.generation.hydrology.surface.SurfaceFootprint; import org.junit.Test; import java.util.ArrayList; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalWidthAdaptationTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalWidthAdaptationTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalWidthAdaptationTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalWidthAdaptationTest.java index e26095687..7137b65ca 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalWidthAdaptationTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalWidthAdaptationTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.surface.SurfaceCourseBuilder; -import art.arcane.iris.engine.hydrology.surface.SurfaceCourseResult; -import art.arcane.iris.engine.hydrology.surface.SurfaceTerminal; +import art.arcane.iris.generation.hydrology.surface.SurfaceCourseBuilder; +import art.arcane.iris.generation.hydrology.surface.SurfaceCourseResult; +import art.arcane.iris.generation.hydrology.surface.SurfaceTerminal; import org.junit.Test; import java.lang.reflect.Constructor; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalWidthSupportTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalWidthSupportTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalWidthSupportTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalWidthSupportTest.java index 497f53d28..eb0847722 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRegionalWidthSupportTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRegionalWidthSupportTest.java @@ -1,12 +1,12 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.surface.SurfaceBankSupport; -import art.arcane.iris.engine.hydrology.surface.SurfaceCourseBuilder; -import art.arcane.iris.engine.hydrology.surface.SurfaceCourseResult; -import art.arcane.iris.engine.hydrology.surface.SurfaceFootprint; -import art.arcane.iris.engine.hydrology.surface.SurfaceFootprintCompiler; -import art.arcane.iris.engine.hydrology.surface.SurfaceLayerColumn; -import art.arcane.iris.engine.hydrology.surface.SurfaceTerminal; +import art.arcane.iris.generation.hydrology.surface.SurfaceBankSupport; +import art.arcane.iris.generation.hydrology.surface.SurfaceCourseBuilder; +import art.arcane.iris.generation.hydrology.surface.SurfaceCourseResult; +import art.arcane.iris.generation.hydrology.surface.SurfaceFootprint; +import art.arcane.iris.generation.hydrology.surface.SurfaceFootprintCompiler; +import art.arcane.iris.generation.hydrology.surface.SurfaceLayerColumn; +import art.arcane.iris.generation.hydrology.surface.SurfaceTerminal; import org.junit.Test; import java.lang.reflect.Method; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRouteLengthsTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRouteLengthsTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRouteLengthsTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRouteLengthsTest.java index e75ce1cd9..b4cbea2c6 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRouteLengthsTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRouteLengthsTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRouteTurnCacheTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRouteTurnCacheTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRouteTurnCacheTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRouteTurnCacheTest.java index 1babcb80b..0cc3b3667 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyRouteTurnCacheTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyRouteTurnCacheTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyStyledGeometryTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyStyledGeometryTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyStyledGeometryTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyStyledGeometryTest.java index 6d4a5a27d..eda4b016f 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyStyledGeometryTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyStyledGeometryTest.java @@ -1,10 +1,10 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; -import art.arcane.iris.engine.hydrology.cave.CavePosition; -import art.arcane.iris.engine.hydrology.cave.CaveVoxel; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelView; +import art.arcane.iris.generation.hydrology.cave.CavePosition; +import art.arcane.iris.generation.hydrology.cave.CaveVoxel; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelView; import org.junit.Test; import java.util.ArrayList; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologySurfaceDropRasterTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologySurfaceDropRasterTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologySurfaceDropRasterTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologySurfaceDropRasterTest.java index abd3dcd3f..e1a1dfc38 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologySurfaceDropRasterTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologySurfaceDropRasterTest.java @@ -1,18 +1,18 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.cave.CavePosition; -import art.arcane.iris.engine.hydrology.cave.CaveVoxel; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelView; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCandidate; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; -import art.arcane.iris.engine.hydrology.surface.SurfaceBounds; -import art.arcane.iris.engine.hydrology.surface.SurfaceCenterline; -import art.arcane.iris.engine.hydrology.surface.SurfaceExcavationMetrics; -import art.arcane.iris.engine.hydrology.surface.SurfaceFootprint; -import art.arcane.iris.engine.hydrology.surface.SurfaceFootprintCompiler; -import art.arcane.iris.engine.hydrology.surface.SurfaceLayerColumn; -import art.arcane.iris.engine.hydrology.surface.SurfaceRole; +import art.arcane.iris.generation.hydrology.cave.CavePosition; +import art.arcane.iris.generation.hydrology.cave.CaveVoxel; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelView; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCandidate; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.generation.hydrology.surface.SurfaceBounds; +import art.arcane.iris.generation.hydrology.surface.SurfaceCenterline; +import art.arcane.iris.generation.hydrology.surface.SurfaceExcavationMetrics; +import art.arcane.iris.generation.hydrology.surface.SurfaceFootprint; +import art.arcane.iris.generation.hydrology.surface.SurfaceFootprintCompiler; +import art.arcane.iris.generation.hydrology.surface.SurfaceLayerColumn; +import art.arcane.iris.generation.hydrology.surface.SurfaceRole; import org.junit.Test; import java.util.ArrayList; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologySurfaceGeometryPolicyTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologySurfaceGeometryPolicyTest.java similarity index 92% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologySurfaceGeometryPolicyTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologySurfaceGeometryPolicyTest.java index 918432eba..7b674677d 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologySurfaceGeometryPolicyTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologySurfaceGeometryPolicyTest.java @@ -1,11 +1,11 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; -import art.arcane.iris.engine.hydrology.surface.ChannelProfile; -import art.arcane.iris.engine.hydrology.surface.SurfaceCenterline; -import art.arcane.iris.engine.hydrology.surface.SurfaceTerminal; -import art.arcane.iris.engine.hydrology.surface.ValleyProfile; -import art.arcane.iris.engine.hydrology.surface.ValleyProfileSolver; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.generation.hydrology.surface.ChannelProfile; +import art.arcane.iris.generation.hydrology.surface.SurfaceCenterline; +import art.arcane.iris.generation.hydrology.surface.SurfaceTerminal; +import art.arcane.iris.generation.hydrology.surface.ValleyProfile; +import art.arcane.iris.generation.hydrology.surface.ValleyProfileSolver; import org.junit.Test; import java.util.Arrays; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologySurfaceProfilesTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologySurfaceProfilesTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologySurfaceProfilesTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologySurfaceProfilesTest.java index 69566a5bc..238f1c312 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologySurfaceProfilesTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologySurfaceProfilesTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; -import art.arcane.iris.engine.hydrology.surface.SurfaceFootprint; -import art.arcane.iris.engine.hydrology.surface.SurfaceLayerColumn; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.generation.hydrology.surface.SurfaceFootprint; +import art.arcane.iris.generation.hydrology.surface.SurfaceLayerColumn; import org.junit.Test; import java.util.ArrayList; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologySurfaceRouteGeometryTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologySurfaceRouteGeometryTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologySurfaceRouteGeometryTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologySurfaceRouteGeometryTest.java index 239b64326..f53fa09cf 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologySurfaceRouteGeometryTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologySurfaceRouteGeometryTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyTerrainCaveVoxelViewTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyTerrainCaveVoxelViewTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyTerrainCaveVoxelViewTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyTerrainCaveVoxelViewTest.java index 537e2423c..46cc03c1e 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyTerrainCaveVoxelViewTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyTerrainCaveVoxelViewTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.cave.CavePosition; -import art.arcane.iris.engine.hydrology.cave.CaveVoxel; +import art.arcane.iris.generation.hydrology.cave.CavePosition; +import art.arcane.iris.generation.hydrology.cave.CaveVoxel; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyTerrainSampleTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyTerrainSampleTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyTerrainSampleTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyTerrainSampleTest.java index 56f3649f7..78a9154e5 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyTerrainSampleTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyTerrainSampleTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyTerrainSamplerTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyTerrainSamplerTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyTerrainSamplerTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyTerrainSamplerTest.java index 12d2e1e54..72ecb8c69 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyTerrainSamplerTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyTerrainSamplerTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyTileCacheTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyTileCacheTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyTileCacheTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyTileCacheTest.java index 0e8920958..42a43a06c 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/HydrologyTileCacheTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/HydrologyTileCacheTest.java @@ -1,9 +1,9 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; import art.arcane.iris.testsupport.Await; -import art.arcane.iris.util.common.parallel.MultiBurst; +import art.arcane.iris.generation.concurrent.MultiBurst; import art.arcane.volmlib.util.cache.CacheKey; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisRiverConfigurationTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/IrisRiverConfigurationTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/object/IrisRiverConfigurationTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/IrisRiverConfigurationTest.java index 1ec402748..a161dbd0c 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisRiverConfigurationTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/IrisRiverConfigurationTest.java @@ -1,4 +1,8 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.hydrology; + +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; import art.arcane.volmlib.util.collection.KList; import com.google.gson.Gson; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/RiverFootprintTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/RiverFootprintTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/hydrology/RiverFootprintTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/RiverFootprintTest.java index 4d1495f8a..d5a0029cd 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/RiverFootprintTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/RiverFootprintTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/StudioHydrologyTileStoreTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/StudioHydrologyTileStoreTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/hydrology/StudioHydrologyTileStoreTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/StudioHydrologyTileStoreTest.java index 271d2a3b1..db56c19f2 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/StudioHydrologyTileStoreTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/StudioHydrologyTileStoreTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology; +package art.arcane.iris.generation.hydrology; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/cave/CavePositionIndexTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/cave/CavePositionIndexTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/hydrology/cave/CavePositionIndexTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/cave/CavePositionIndexTest.java index 7d63e98f5..8e028c8f3 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/cave/CavePositionIndexTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/cave/CavePositionIndexTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveContainmentPlannerTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveContainmentPlannerTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveContainmentPlannerTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveContainmentPlannerTest.java index 9aa090b97..a658e4420 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveContainmentPlannerTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveContainmentPlannerTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; -import art.arcane.iris.engine.hydrology.HydrologyCaveVoxelViewFactory; -import art.arcane.iris.engine.hydrology.HydrologyObservedPlannedSurface; +import art.arcane.iris.generation.hydrology.HydrologyCaveVoxelViewFactory; +import art.arcane.iris.generation.hydrology.HydrologyObservedPlannedSurface; import org.junit.Test; import java.util.ArrayDeque; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveIterationOrderTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveIterationOrderTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveIterationOrderTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveIterationOrderTest.java index e334913e0..3eb6c1f42 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveIterationOrderTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveIterationOrderTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/cave/HydrologyCavePlanTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/cave/HydrologyCavePlanTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/hydrology/cave/HydrologyCavePlanTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/cave/HydrologyCavePlanTest.java index 62cadee19..73e1bbaef 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/cave/HydrologyCavePlanTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/cave/HydrologyCavePlanTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveStorageTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveStorageTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveStorageTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveStorageTest.java index 7bc26050b..21899905e 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/cave/HydrologyCaveStorageTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/cave/HydrologyCaveStorageTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.cave; +package art.arcane.iris.generation.hydrology.cave; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.matter.Matter; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/policy/RiverPolicyResolverTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/policy/RiverPolicyResolverTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/hydrology/policy/RiverPolicyResolverTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/policy/RiverPolicyResolverTest.java index 712cbee59..7d6f9a1a5 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/policy/RiverPolicyResolverTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/policy/RiverPolicyResolverTest.java @@ -1,11 +1,11 @@ -package art.arcane.iris.engine.hydrology.policy; +package art.arcane.iris.generation.hydrology.policy; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisRiverPlacementMode; -import art.arcane.iris.engine.object.IrisRiverPolicy; -import art.arcane.iris.engine.object.IrisRiverRoutingMode; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.generation.hydrology.IrisRiverPlacementMode; +import art.arcane.iris.generation.hydrology.IrisRiverPolicy; +import art.arcane.iris.generation.hydrology.IrisRiverRoutingMode; import art.arcane.volmlib.util.collection.KList; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/runtime/HydrologyFeatureSearchBoundsTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/runtime/HydrologyFeatureSearchBoundsTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/hydrology/runtime/HydrologyFeatureSearchBoundsTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/runtime/HydrologyFeatureSearchBoundsTest.java index 97dca351a..130fc7710 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/runtime/HydrologyFeatureSearchBoundsTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/runtime/HydrologyFeatureSearchBoundsTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.runtime; +package art.arcane.iris.generation.hydrology.runtime; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/runtime/HydrologyFeatureSearchTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/runtime/HydrologyFeatureSearchTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/engine/hydrology/runtime/HydrologyFeatureSearchTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/runtime/HydrologyFeatureSearchTest.java index e21c2329d..26e83f66a 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/runtime/HydrologyFeatureSearchTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/runtime/HydrologyFeatureSearchTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology.runtime; +package art.arcane.iris.generation.hydrology.runtime; -import art.arcane.iris.engine.hydrology.HydrologyTileKey; +import art.arcane.iris.generation.hydrology.HydrologyTileKey; import org.junit.Test; import java.util.HashSet; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyBiomePatchTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyBiomePatchTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyBiomePatchTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyBiomePatchTest.java index 39811e233..ea7efec83 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyBiomePatchTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyBiomePatchTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.runtime; +package art.arcane.iris.generation.hydrology.runtime; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyPhysicalOceanTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyPhysicalOceanTest.java similarity index 83% rename from core/src/test/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyPhysicalOceanTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyPhysicalOceanTest.java index 3108713aa..2f099846e 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyPhysicalOceanTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyPhysicalOceanTest.java @@ -1,28 +1,28 @@ -package art.arcane.iris.engine.hydrology.runtime; +package art.arcane.iris.generation.hydrology.runtime; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.engine.hydrology.HydraulicChannelProfile; -import art.arcane.iris.engine.hydrology.HydraulicSegment; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.engine.hydrology.HydrologyGeometrySampler; -import art.arcane.iris.engine.hydrology.HydrologyPoint; -import art.arcane.iris.engine.hydrology.HydrologyRoutingTerrainSampler; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSample; -import art.arcane.iris.engine.hydrology.RiverCourse; -import art.arcane.iris.engine.hydrology.RiverCourseType; -import art.arcane.iris.engine.hydrology.surface.SurfaceCourseBuilder; -import art.arcane.iris.engine.hydrology.surface.SurfaceCourseResult; -import art.arcane.iris.engine.hydrology.surface.SurfaceFootprint; -import art.arcane.iris.engine.hydrology.surface.SurfaceFootprintCompiler; -import art.arcane.iris.engine.hydrology.surface.SurfaceLayerColumn; -import art.arcane.iris.engine.hydrology.surface.SurfaceTerminal; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisRiverProfile; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.generation.hydrology.HydraulicChannelProfile; +import art.arcane.iris.generation.hydrology.HydraulicSegment; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.hydrology.HydrologyGeometrySampler; +import art.arcane.iris.generation.hydrology.HydrologyPoint; +import art.arcane.iris.generation.hydrology.HydrologyRoutingTerrainSampler; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSample; +import art.arcane.iris.generation.hydrology.RiverCourse; +import art.arcane.iris.generation.hydrology.RiverCourseType; +import art.arcane.iris.generation.hydrology.surface.SurfaceCourseBuilder; +import art.arcane.iris.generation.hydrology.surface.SurfaceCourseResult; +import art.arcane.iris.generation.hydrology.surface.SurfaceFootprint; +import art.arcane.iris.generation.hydrology.surface.SurfaceFootprintCompiler; +import art.arcane.iris.generation.hydrology.surface.SurfaceLayerColumn; +import art.arcane.iris.generation.hydrology.surface.SurfaceTerminal; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.generation.hydrology.IrisRiverProfile; import art.arcane.volmlib.util.collection.KList; import org.junit.AfterClass; import org.junit.BeforeClass; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyPolicyCacheTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyPolicyCacheTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyPolicyCacheTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyPolicyCacheTest.java index 5982b9afe..bc294a684 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyPolicyCacheTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyPolicyCacheTest.java @@ -1,16 +1,16 @@ -package art.arcane.iris.engine.hydrology.runtime; +package art.arcane.iris.generation.hydrology.runtime; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.compat.CompatStatus; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSample; -import art.arcane.iris.engine.hydrology.policy.RiverPolicyResolver; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisRiverPolicy; -import art.arcane.iris.engine.object.IrisRiverProfile; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.pack.validation.CompatStatus; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSample; +import art.arcane.iris.generation.hydrology.policy.RiverPolicyResolver; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.generation.hydrology.IrisRiverPolicy; +import art.arcane.iris.generation.hydrology.IrisRiverProfile; import art.arcane.volmlib.util.collection.KList; import com.github.benmanes.caffeine.cache.Cache; import org.junit.AfterClass; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyRoutingTerrainSamplerTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyRoutingTerrainSamplerTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyRoutingTerrainSamplerTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyRoutingTerrainSamplerTest.java index b0fdeada2..145a1a22d 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyRoutingTerrainSamplerTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyRoutingTerrainSamplerTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.engine.hydrology.runtime; +package art.arcane.iris.generation.hydrology.runtime; -import art.arcane.iris.engine.hydrology.HydrologyRoutingTerrainSampler; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSample; -import art.arcane.iris.util.common.parallel.MultiBurst; +import art.arcane.iris.generation.hydrology.HydrologyRoutingTerrainSampler; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSample; +import art.arcane.iris.generation.concurrent.MultiBurst; import org.junit.Test; import java.util.ArrayList; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyRuntimeDiagnosticsTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyRuntimeDiagnosticsTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyRuntimeDiagnosticsTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyRuntimeDiagnosticsTest.java index e711016a3..332068c77 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologyRuntimeDiagnosticsTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologyRuntimeDiagnosticsTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.runtime; +package art.arcane.iris.generation.hydrology.runtime; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologySettingsCompilerTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologySettingsCompilerTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologySettingsCompilerTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologySettingsCompilerTest.java index 47c1581ba..e338ad9ef 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/runtime/IrisHydrologySettingsCompilerTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/runtime/IrisHydrologySettingsCompilerTest.java @@ -1,21 +1,21 @@ -package art.arcane.iris.engine.hydrology.runtime; +package art.arcane.iris.generation.hydrology.runtime; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.engine.hydrology.HydrologyPlannerSettings; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisCoastalRiverGrottoConfig; -import art.arcane.iris.engine.object.IrisDeepFluidConfig; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisRiverBedProfile; -import art.arcane.iris.engine.object.IrisRiverBlendStyle; -import art.arcane.iris.engine.object.IrisRiverGeometryConfig; -import art.arcane.iris.engine.object.IrisRiverHydrology; -import art.arcane.iris.engine.object.IrisRiverInlandOutlet; -import art.arcane.iris.engine.object.IrisRiverPolicy; -import art.arcane.iris.engine.object.IrisRiverRoutingConfig; -import art.arcane.iris.engine.object.IrisSurfaceRiverShapeConfig; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.generation.hydrology.HydrologyPlannerSettings; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.hydrology.IrisCoastalRiverGrottoConfig; +import art.arcane.iris.generation.hydrology.IrisDeepFluidConfig; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.generation.hydrology.IrisRiverBedProfile; +import art.arcane.iris.generation.hydrology.IrisRiverBlendStyle; +import art.arcane.iris.generation.hydrology.IrisRiverGeometryConfig; +import art.arcane.iris.generation.hydrology.IrisRiverHydrology; +import art.arcane.iris.generation.hydrology.IrisRiverInlandOutlet; +import art.arcane.iris.generation.hydrology.IrisRiverPolicy; +import art.arcane.iris.generation.hydrology.IrisRiverRoutingConfig; +import art.arcane.iris.generation.hydrology.IrisSurfaceRiverShapeConfig; import art.arcane.volmlib.util.collection.KList; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/surface/ChannelProfileBuilderTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/surface/ChannelProfileBuilderTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/hydrology/surface/ChannelProfileBuilderTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/surface/ChannelProfileBuilderTest.java index 6ab722ca4..ab8afcc54 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/surface/ChannelProfileBuilderTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/surface/ChannelProfileBuilderTest.java @@ -1,12 +1,12 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; -import art.arcane.iris.engine.hydrology.HydrologyGeometrySampler; -import art.arcane.iris.engine.hydrology.HydrologyPlannerSettings; -import art.arcane.iris.engine.hydrology.HydrologyPoint; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSample; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSampler; +import art.arcane.iris.generation.hydrology.HydrologyGeometrySampler; +import art.arcane.iris.generation.hydrology.HydrologyPlannerSettings; +import art.arcane.iris.generation.hydrology.HydrologyPoint; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSample; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSampler; import org.junit.Test; import java.util.List; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/surface/ErosionFieldCompilerTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/surface/ErosionFieldCompilerTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/hydrology/surface/ErosionFieldCompilerTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/surface/ErosionFieldCompilerTest.java index 2bd415061..1f973a91e 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/surface/ErosionFieldCompilerTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/surface/ErosionFieldCompilerTest.java @@ -1,16 +1,16 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; -import art.arcane.iris.engine.hydrology.HydrologyGeometrySampler; -import art.arcane.iris.engine.hydrology.HydrologyCandidateRejection; -import art.arcane.iris.engine.hydrology.HydrologyPlannerSettings; -import art.arcane.iris.engine.hydrology.HydrologyPoint; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSample; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSampler; -import art.arcane.iris.engine.hydrology.RiverFootprint; -import art.arcane.iris.engine.object.IrisRiverBedProfile; -import art.arcane.iris.engine.object.IrisRiverBlendStyle; +import art.arcane.iris.generation.hydrology.HydrologyGeometrySampler; +import art.arcane.iris.generation.hydrology.HydrologyCandidateRejection; +import art.arcane.iris.generation.hydrology.HydrologyPlannerSettings; +import art.arcane.iris.generation.hydrology.HydrologyPoint; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSample; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSampler; +import art.arcane.iris.generation.hydrology.RiverFootprint; +import art.arcane.iris.generation.hydrology.IrisRiverBedProfile; +import art.arcane.iris.generation.hydrology.IrisRiverBlendStyle; import org.junit.Test; import java.util.HashSet; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/surface/SurfaceBendProfileTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/surface/SurfaceBendProfileTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/hydrology/surface/SurfaceBendProfileTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/surface/SurfaceBendProfileTest.java index d94d46359..9a1c80e29 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/surface/SurfaceBendProfileTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/surface/SurfaceBendProfileTest.java @@ -1,9 +1,9 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; -import art.arcane.iris.engine.hydrology.HydrologyPlannerSettings; -import art.arcane.iris.engine.hydrology.HydrologyPoint; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSample; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSampler; +import art.arcane.iris.generation.hydrology.HydrologyPlannerSettings; +import art.arcane.iris.generation.hydrology.HydrologyPoint; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSample; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSampler; import org.junit.Test; import java.util.ArrayList; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/surface/SurfaceCellAdmissionTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/surface/SurfaceCellAdmissionTest.java similarity index 89% rename from core/src/test/java/art/arcane/iris/engine/hydrology/surface/SurfaceCellAdmissionTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/surface/SurfaceCellAdmissionTest.java index 3d4c9c08f..d83be0b5e 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/surface/SurfaceCellAdmissionTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/surface/SurfaceCellAdmissionTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSample; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSample; import org.junit.Test; import static org.junit.Assert.assertFalse; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/surface/SurfaceCenterlineTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/surface/SurfaceCenterlineTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/hydrology/surface/SurfaceCenterlineTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/surface/SurfaceCenterlineTest.java index 4e04cdb72..77363ba52 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/surface/SurfaceCenterlineTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/surface/SurfaceCenterlineTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; -import art.arcane.iris.engine.hydrology.HydrologyPoint; +import art.arcane.iris.generation.hydrology.HydrologyPoint; import org.junit.Test; import java.util.HashSet; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/surface/SurfaceCourseBuilderTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/surface/SurfaceCourseBuilderTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/engine/hydrology/surface/SurfaceCourseBuilderTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/surface/SurfaceCourseBuilderTest.java index 6772421a7..afb4507ee 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/surface/SurfaceCourseBuilderTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/surface/SurfaceCourseBuilderTest.java @@ -1,13 +1,13 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; -import art.arcane.iris.engine.hydrology.HydraulicSegment; -import art.arcane.iris.engine.hydrology.HydrologyCandidateRejection; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.engine.hydrology.HydrologyGeometrySampler; -import art.arcane.iris.engine.hydrology.HydrologyPlannerSettings; -import art.arcane.iris.engine.hydrology.HydrologyPoint; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSample; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSampler; +import art.arcane.iris.generation.hydrology.HydraulicSegment; +import art.arcane.iris.generation.hydrology.HydrologyCandidateRejection; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.hydrology.HydrologyGeometrySampler; +import art.arcane.iris.generation.hydrology.HydrologyPlannerSettings; +import art.arcane.iris.generation.hydrology.HydrologyPoint; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSample; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSampler; import org.junit.Test; import java.util.List; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/surface/SurfaceExcavationMetricsTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/surface/SurfaceExcavationMetricsTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/hydrology/surface/SurfaceExcavationMetricsTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/surface/SurfaceExcavationMetricsTest.java index 87c9f977c..c0fea2859 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/surface/SurfaceExcavationMetricsTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/surface/SurfaceExcavationMetricsTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; -import art.arcane.iris.engine.hydrology.HydrologyPoint; +import art.arcane.iris.generation.hydrology.HydrologyPoint; import org.junit.Test; import java.util.Arrays; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/surface/SurfaceFootprintCompilerTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/surface/SurfaceFootprintCompilerTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/hydrology/surface/SurfaceFootprintCompilerTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/surface/SurfaceFootprintCompilerTest.java index e1e9c4155..18310d7c1 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/surface/SurfaceFootprintCompilerTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/surface/SurfaceFootprintCompilerTest.java @@ -1,19 +1,19 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; -import art.arcane.iris.engine.hydrology.HydraulicChannelProfile; -import art.arcane.iris.engine.hydrology.HydraulicSegment; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.HydrologyColumnSample; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.engine.hydrology.HydrologyGeometrySampler; -import art.arcane.iris.engine.hydrology.HydrologyPlannerSettings; -import art.arcane.iris.engine.hydrology.HydrologyPoint; -import art.arcane.iris.engine.hydrology.HydrologySurfaceDropRaster; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSample; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSampler; -import art.arcane.iris.engine.hydrology.RiverCourse; -import art.arcane.iris.engine.hydrology.RiverCourseType; -import art.arcane.iris.engine.hydrology.RiverFootprint; +import art.arcane.iris.generation.hydrology.HydraulicChannelProfile; +import art.arcane.iris.generation.hydrology.HydraulicSegment; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.HydrologyColumnSample; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.hydrology.HydrologyGeometrySampler; +import art.arcane.iris.generation.hydrology.HydrologyPlannerSettings; +import art.arcane.iris.generation.hydrology.HydrologyPoint; +import art.arcane.iris.generation.hydrology.HydrologySurfaceDropRaster; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSample; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSampler; +import art.arcane.iris.generation.hydrology.RiverCourse; +import art.arcane.iris.generation.hydrology.RiverCourseType; +import art.arcane.iris.generation.hydrology.RiverFootprint; import org.junit.Test; import java.util.ArrayList; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/surface/SurfaceNoiseTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/surface/SurfaceNoiseTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/hydrology/surface/SurfaceNoiseTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/surface/SurfaceNoiseTest.java index 7410c6378..14877f37f 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/surface/SurfaceNoiseTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/surface/SurfaceNoiseTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/surface/SurfaceSegmentLabelerTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/surface/SurfaceSegmentLabelerTest.java similarity index 87% rename from core/src/test/java/art/arcane/iris/engine/hydrology/surface/SurfaceSegmentLabelerTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/surface/SurfaceSegmentLabelerTest.java index b70ec9de2..3aa8f1109 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/surface/SurfaceSegmentLabelerTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/surface/SurfaceSegmentLabelerTest.java @@ -1,9 +1,9 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; -import art.arcane.iris.engine.hydrology.HydraulicChannelProfile; -import art.arcane.iris.engine.hydrology.HydraulicSegment; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.engine.hydrology.HydrologyPlannerSettings; +import art.arcane.iris.generation.hydrology.HydraulicChannelProfile; +import art.arcane.iris.generation.hydrology.HydraulicSegment; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.hydrology.HydrologyPlannerSettings; import org.junit.Test; import java.util.List; diff --git a/core/src/test/java/art/arcane/iris/engine/hydrology/surface/ValleyProfileSolverTest.java b/core/src/test/java/art/arcane/iris/generation/hydrology/surface/ValleyProfileSolverTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/hydrology/surface/ValleyProfileSolverTest.java rename to core/src/test/java/art/arcane/iris/generation/hydrology/surface/ValleyProfileSolverTest.java index a51155d3c..d24cdb34c 100644 --- a/core/src/test/java/art/arcane/iris/engine/hydrology/surface/ValleyProfileSolverTest.java +++ b/core/src/test/java/art/arcane/iris/generation/hydrology/surface/ValleyProfileSolverTest.java @@ -1,11 +1,11 @@ -package art.arcane.iris.engine.hydrology.surface; +package art.arcane.iris.generation.hydrology.surface; -import art.arcane.iris.engine.hydrology.HydrologyCandidateRejection; -import art.arcane.iris.engine.hydrology.HydrologyGeometrySampler; -import art.arcane.iris.engine.hydrology.HydrologyPlannerSettings; -import art.arcane.iris.engine.hydrology.HydrologyPoint; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSample; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSampler; +import art.arcane.iris.generation.hydrology.HydrologyCandidateRejection; +import art.arcane.iris.generation.hydrology.HydrologyGeometrySampler; +import art.arcane.iris.generation.hydrology.HydrologyPlannerSettings; +import art.arcane.iris.generation.hydrology.HydrologyPoint; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSample; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSampler; import org.junit.Test; import java.util.List; diff --git a/core/src/test/java/art/arcane/iris/engine/image/IrisImageMapCompilerTest.java b/core/src/test/java/art/arcane/iris/generation/image/IrisImageMapCompilerTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/image/IrisImageMapCompilerTest.java rename to core/src/test/java/art/arcane/iris/generation/image/IrisImageMapCompilerTest.java index 4c00f27c3..c1c4b0bb2 100644 --- a/core/src/test/java/art/arcane/iris/engine/image/IrisImageMapCompilerTest.java +++ b/core/src/test/java/art/arcane/iris/generation/image/IrisImageMapCompilerTest.java @@ -1,14 +1,5 @@ -package art.arcane.iris.engine.image; +package art.arcane.iris.generation.image; -import art.arcane.iris.engine.object.IrisImage; -import art.arcane.iris.engine.object.IrisImageMap; -import art.arcane.iris.engine.object.IrisImageMapAlpha; -import art.arcane.iris.engine.object.IrisImageMapOrigin; -import art.arcane.iris.engine.object.IrisImageMapOutOfBounds; -import art.arcane.iris.engine.object.IrisImageMapRotation; -import art.arcane.iris.engine.object.IrisImageMapSampling; -import art.arcane.iris.engine.object.IrisImageMapType; -import art.arcane.iris.engine.object.IrisImageMapUnknownColor; import art.arcane.volmlib.util.collection.KMap; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/image/IrisImageMapMaskSamplerTest.java b/core/src/test/java/art/arcane/iris/generation/image/IrisImageMapMaskSamplerTest.java similarity index 92% rename from core/src/test/java/art/arcane/iris/engine/image/IrisImageMapMaskSamplerTest.java rename to core/src/test/java/art/arcane/iris/generation/image/IrisImageMapMaskSamplerTest.java index d955edf25..a7adbcdba 100644 --- a/core/src/test/java/art/arcane/iris/engine/image/IrisImageMapMaskSamplerTest.java +++ b/core/src/test/java/art/arcane/iris/generation/image/IrisImageMapMaskSamplerTest.java @@ -1,11 +1,5 @@ -package art.arcane.iris.engine.image; +package art.arcane.iris.generation.image; -import art.arcane.iris.engine.object.IrisImage; -import art.arcane.iris.engine.object.IrisImageMap; -import art.arcane.iris.engine.object.IrisImageMapMask; -import art.arcane.iris.engine.object.IrisImageMapMaskOperation; -import art.arcane.iris.engine.object.IrisImageMapOutOfBounds; -import art.arcane.iris.engine.object.IrisImageMapType; import org.junit.Test; import java.awt.image.BufferedImage; diff --git a/core/src/test/java/art/arcane/iris/engine/image/IrisImageMapRuntimeTest.java b/core/src/test/java/art/arcane/iris/generation/image/IrisImageMapRuntimeTest.java similarity index 91% rename from core/src/test/java/art/arcane/iris/engine/image/IrisImageMapRuntimeTest.java rename to core/src/test/java/art/arcane/iris/generation/image/IrisImageMapRuntimeTest.java index 58c8ea2f5..d2594acac 100644 --- a/core/src/test/java/art/arcane/iris/engine/image/IrisImageMapRuntimeTest.java +++ b/core/src/test/java/art/arcane/iris/generation/image/IrisImageMapRuntimeTest.java @@ -1,14 +1,7 @@ -package art.arcane.iris.engine.image; +package art.arcane.iris.generation.image; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisImageMap; -import art.arcane.iris.engine.object.IrisImageMapApplication; -import art.arcane.iris.engine.object.IrisImageMapBinding; -import art.arcane.iris.engine.object.IrisImageMapMask; -import art.arcane.iris.engine.object.IrisImageMapMaskOperation; -import art.arcane.iris.engine.object.IrisImageMapOutOfBounds; -import art.arcane.iris.engine.object.IrisImageMapType; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.volmlib.util.collection.KList; import com.google.gson.Gson; import org.junit.Rule; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/HintedLocatorTest.java b/core/src/test/java/art/arcane/iris/generation/locator/HintedLocatorTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/framework/HintedLocatorTest.java rename to core/src/test/java/art/arcane/iris/generation/locator/HintedLocatorTest.java index 0f10994c5..653587eaa 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/HintedLocatorTest.java +++ b/core/src/test/java/art/arcane/iris/generation/locator/HintedLocatorTest.java @@ -1,25 +1,28 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.locator; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.engine.DimensionStackContext; -import art.arcane.iris.engine.DimensionTerrainContext; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.history.ChunkGenerationSemantics; -import art.arcane.iris.engine.history.GenerationHistory; -import art.arcane.iris.engine.history.GenerationHistoryRuntimeRouter; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisObjectPlacement; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.hydrology.runtime.IrisHydrologyRuntime; -import art.arcane.iris.engine.history.GenerationSemanticIndex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.GenerationSessionLease; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.generation.runtime.DimensionStackContext; +import art.arcane.iris.generation.runtime.DimensionTerrainContext; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.world.history.ChunkGenerationSemantics; +import art.arcane.iris.world.history.GenerationHistory; +import art.arcane.iris.world.history.GenerationHistoryRuntimeRouter; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.generation.hydrology.runtime.IrisHydrologyRuntime; +import art.arcane.iris.world.history.GenerationSemanticIndex; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.testsupport.PlatformLeakGuard; -import art.arcane.iris.util.project.stream.ProceduralStream; -import art.arcane.iris.util.project.stream.interpolation.Interpolated; +import art.arcane.volmlib.util.stream.ProceduralStream; +import art.arcane.volmlib.util.stream.interpolation.Interpolated; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.Position2; import org.junit.AfterClass; @@ -799,7 +802,7 @@ public class HintedLocatorTest { return found; }); - Locator locator = Locator.object("trees/oak"); + Locator locator = Locator.object("trees/oak"); Position2 result = locator.find(engine, new Position2(0, 0), 60_000, (Integer count) -> { }).get(); diff --git a/core/src/test/java/art/arcane/iris/engine/framework/LocatorCancellerTest.java b/core/src/test/java/art/arcane/iris/generation/locator/LocatorCancellerTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/framework/LocatorCancellerTest.java rename to core/src/test/java/art/arcane/iris/generation/locator/LocatorCancellerTest.java index 3ff66c04f..1686dc460 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/LocatorCancellerTest.java +++ b/core/src/test/java/art/arcane/iris/generation/locator/LocatorCancellerTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.locator; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/LocatorPoiCoordinateTest.java b/core/src/test/java/art/arcane/iris/generation/locator/LocatorPoiCoordinateTest.java similarity index 59% rename from core/src/test/java/art/arcane/iris/engine/framework/LocatorPoiCoordinateTest.java rename to core/src/test/java/art/arcane/iris/generation/locator/LocatorPoiCoordinateTest.java index 5eae2eb15..9854b68c9 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/LocatorPoiCoordinateTest.java +++ b/core/src/test/java/art/arcane/iris/generation/locator/LocatorPoiCoordinateTest.java @@ -1,7 +1,9 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.locator; + +import art.arcane.iris.world.history.ChunkGenerationSemantics; + +import art.arcane.iris.generation.runtime.Engine; -import art.arcane.iris.core.nms.container.BlockPos; -import art.arcane.iris.core.nms.container.Pair; import art.arcane.volmlib.util.math.Position2; import org.junit.Test; @@ -16,8 +18,8 @@ public class LocatorPoiCoordinateTest { @Test public void poiLocatorQueriesCandidateChunkCoordinates() { Engine engine = mock(Engine.class); - BlockPos position = new BlockPos(50, 64, -30); - when(engine.getPOIsAt(3, -2)).thenReturn(Set.of(new Pair<>("buried_treasure", position))); + ChunkGenerationSemantics.BlockPosition position = new ChunkGenerationSemantics.BlockPosition(50, 64, -30); + when(engine.getPOIsAt(3, -2)).thenReturn(Set.of(new ChunkGenerationSemantics.PointOfInterest("buried_treasure", position))); boolean matched = Locator.poi("buried_treasure").matches(engine, new Position2(3, -2)); diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/components/CarveOrphanSweepTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/CarveOrphanSweepTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/mantle/components/CarveOrphanSweepTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/CarveOrphanSweepTest.java index d90d1e8e3..f6cfa2b1e 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/components/CarveOrphanSweepTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/CarveOrphanSweepTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/components/CaveDensityTasksTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/CaveDensityTasksTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/mantle/components/CaveDensityTasksTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/CaveDensityTasksTest.java index 8d57f92f4..8d01d106a 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/components/CaveDensityTasksTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/CaveDensityTasksTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/components/CaveObjectPlacementTransactionTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/CaveObjectPlacementTransactionTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/mantle/components/CaveObjectPlacementTransactionTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/CaveObjectPlacementTransactionTest.java index e85cc81a5..c60b35a4d 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/components/CaveObjectPlacementTransactionTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/CaveObjectPlacementTransactionTest.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IObjectPlacer; -import art.arcane.iris.engine.object.TileData; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.object.IObjectPlacer; +import art.arcane.iris.generation.block.TileData; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; import art.arcane.iris.spi.PlatformBlockState; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/EngineMantleCleanupTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/EngineMantleCleanupTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/mantle/EngineMantleCleanupTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/EngineMantleCleanupTest.java index 7dc0a2125..255ba9a70 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/EngineMantleCleanupTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/EngineMantleCleanupTest.java @@ -1,12 +1,12 @@ -package art.arcane.iris.engine.mantle; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.engine.framework.TreeBlockMaterial; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.integration.Identifier; +import art.arcane.iris.generation.decoration.tree.TreeBlockMaterial; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.testsupport.PlatformBinding; -import art.arcane.iris.util.project.matter.PreObjectMatterCell; -import art.arcane.iris.util.project.matter.TileWrapper; +import art.arcane.iris.world.storage.matter.PreObjectMatterCell; +import art.arcane.iris.world.storage.matter.TileWrapper; import art.arcane.volmlib.util.mantle.flag.MantleFlag; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/EngineMantleCoverageTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/EngineMantleCoverageTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/mantle/EngineMantleCoverageTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/EngineMantleCoverageTest.java index c26058c40..781fbb0ba 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/EngineMantleCoverageTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/EngineMantleCoverageTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.mantle; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.engine.IrisEngineMantle; +import art.arcane.iris.generation.runtime.IrisEngineMantle; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBlockState; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/EngineMantleMarkerTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/EngineMantleMarkerTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/engine/mantle/EngineMantleMarkerTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/EngineMantleMarkerTest.java index 7f9ce00ea..0f2be1d9e 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/EngineMantleMarkerTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/EngineMantleMarkerTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.engine.mantle; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EnginePlatformHooks; -import art.arcane.iris.engine.object.IrisPosition; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EnginePlatformHooks; +import art.arcane.iris.pack.value.IrisPosition; import art.arcane.iris.testsupport.PlatformBinding; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.function.Consumer4; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/components/FloatingObjectPlacementTransactionTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/FloatingObjectPlacementTransactionTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/mantle/components/FloatingObjectPlacementTransactionTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/FloatingObjectPlacementTransactionTest.java index 0a116e0ed..55a3a39e3 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/components/FloatingObjectPlacementTransactionTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/FloatingObjectPlacementTransactionTest.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.TileData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.block.TileData; import art.arcane.iris.spi.PlatformBlockState; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/components/IrisCaveCarver3DNearParityTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/IrisCaveCarver3DNearParityTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/mantle/components/IrisCaveCarver3DNearParityTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/IrisCaveCarver3DNearParityTest.java index 6ce3c5540..1544576e0 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/components/IrisCaveCarver3DNearParityTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/IrisCaveCarver3DNearParityTest.java @@ -1,19 +1,18 @@ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineMetrics; -import art.arcane.iris.engine.framework.SeedManager; -import art.arcane.iris.engine.mantle.MantleWriter; -import art.arcane.iris.engine.object.IrisCaveFieldModule; -import art.arcane.iris.engine.object.IrisCaveProfile; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisGeneratorStyle; -import art.arcane.iris.engine.object.IrisRange; -import art.arcane.iris.engine.object.IrisStyledRange; -import art.arcane.iris.engine.object.IrisWorld; -import art.arcane.iris.engine.object.NoiseStyle; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineMetrics; +import art.arcane.iris.generation.runtime.SeedManager; +import art.arcane.iris.generation.cave.IrisCaveFieldModule; +import art.arcane.iris.generation.cave.IrisCaveProfile; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.pack.value.IrisRange; +import art.arcane.iris.generation.noise.IrisStyledRange; +import art.arcane.iris.world.IrisWorld; +import art.arcane.iris.generation.noise.NoiseStyle; +import art.arcane.volmlib.util.noise.CNG; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/components/IrisStructureComponentMarkerTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/IrisStructureComponentMarkerTest.java similarity index 92% rename from core/src/test/java/art/arcane/iris/engine/mantle/components/IrisStructureComponentMarkerTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/IrisStructureComponentMarkerTest.java index 081d58f29..95c419ad2 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/components/IrisStructureComponentMarkerTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/IrisStructureComponentMarkerTest.java @@ -1,10 +1,10 @@ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.engine.framework.IrisStructureLocator; -import art.arcane.iris.engine.framework.PlacedStructurePiece; -import art.arcane.iris.engine.object.IrisStructure; -import art.arcane.iris.engine.object.IrisStructurePlacement; -import art.arcane.iris.engine.object.NativeStructureSuppression; +import art.arcane.iris.structure.placement.IrisStructureLocator; +import art.arcane.iris.structure.placement.PlacedStructurePiece; +import art.arcane.iris.structure.placement.IrisStructure; +import art.arcane.iris.structure.placement.IrisStructurePlacement; +import art.arcane.iris.structure.nativegen.NativeStructureSuppression; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/components/IrisStructureComponentOverboreTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/IrisStructureComponentOverboreTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/mantle/components/IrisStructureComponentOverboreTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/IrisStructureComponentOverboreTest.java index 78b5b6d61..fcb7213f4 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/components/IrisStructureComponentOverboreTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/IrisStructureComponentOverboreTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/components/IrisStructureFoundationWriteTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/IrisStructureFoundationWriteTest.java similarity index 90% rename from core/src/test/java/art/arcane/iris/engine/mantle/components/IrisStructureFoundationWriteTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/IrisStructureFoundationWriteTest.java index 05aa4dff2..79fe9a19c 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/components/IrisStructureFoundationWriteTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/IrisStructureFoundationWriteTest.java @@ -1,8 +1,7 @@ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.mantle.MantleWriter; -import art.arcane.iris.engine.object.IrisMaterialPalette; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.volmlib.util.matter.MatterCavern; import art.arcane.volmlib.util.math.RNG; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/components/MantleCarvingComponentBoundaryRadiusTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/MantleCarvingComponentBoundaryRadiusTest.java similarity index 90% rename from core/src/test/java/art/arcane/iris/engine/mantle/components/MantleCarvingComponentBoundaryRadiusTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/MantleCarvingComponentBoundaryRadiusTest.java index a62d9338f..20fc171f3 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/components/MantleCarvingComponentBoundaryRadiusTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/MantleCarvingComponentBoundaryRadiusTest.java @@ -1,15 +1,11 @@ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.mantle.MantleComponent; -import art.arcane.iris.engine.mantle.MantlePass; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.mantle.MatterGenerator; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.iris.testsupport.PlatformBinding; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.volmlib.util.stream.ProceduralStream; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.matter.Matter; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/components/MantleCarvingComponentScratchTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/MantleCarvingComponentScratchTest.java similarity index 91% rename from core/src/test/java/art/arcane/iris/engine/mantle/components/MantleCarvingComponentScratchTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/MantleCarvingComponentScratchTest.java index 4ce06a67b..c9e2b890b 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/components/MantleCarvingComponentScratchTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/MantleCarvingComponentScratchTest.java @@ -1,18 +1,16 @@ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineMetrics; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.mantle.MantleWriter; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisCaveProfile; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisWorld; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineMetrics; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.cave.IrisCaveProfile; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.world.IrisWorld; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.volmlib.util.stream.ProceduralStream; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.matter.Matter; import org.junit.Before; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/components/MantleCarvingComponentTop2BlendTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/MantleCarvingComponentTop2BlendTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/mantle/components/MantleCarvingComponentTop2BlendTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/MantleCarvingComponentTop2BlendTest.java index ca11cf63b..b4cb8cf64 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/components/MantleCarvingComponentTop2BlendTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/MantleCarvingComponentTop2BlendTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.engine.object.IrisCaveProfile; +import art.arcane.iris.generation.cave.IrisCaveProfile; import org.junit.BeforeClass; import org.junit.Test; @@ -22,8 +22,8 @@ public class MantleCarvingComponentTop2BlendTest { @BeforeClass public static void setup() throws Exception { - Class weightedProfileClass = Class.forName("art.arcane.iris.engine.mantle.components.MantleCarvingComponent$WeightedProfile"); - weightedProfileConstructor = weightedProfileClass.getDeclaredConstructor(IrisCaveProfile.class, double[].class, double.class, Class.forName("art.arcane.iris.engine.object.IrisRange"), int.class); + Class weightedProfileClass = Class.forName("art.arcane.iris.generation.mantle.MantleCarvingComponent$WeightedProfile"); + weightedProfileConstructor = weightedProfileClass.getDeclaredConstructor(IrisCaveProfile.class, double[].class, double.class, Class.forName("art.arcane.iris.pack.value.IrisRange"), int.class); weightedProfileConstructor.setAccessible(true); limitMethod = MantleCarvingComponent.class.getDeclaredMethod("limitAndMergeBlendedProfiles", List.class, int.class, int.class); limitMethod.setAccessible(true); diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/components/MantleFloatingObjectComponentBoundaryRadiusTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/MantleFloatingObjectComponentBoundaryRadiusTest.java similarity index 85% rename from core/src/test/java/art/arcane/iris/engine/mantle/components/MantleFloatingObjectComponentBoundaryRadiusTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/MantleFloatingObjectComponentBoundaryRadiusTest.java index b6fb22631..8f65ca73a 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/components/MantleFloatingObjectComponentBoundaryRadiusTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/MantleFloatingObjectComponentBoundaryRadiusTest.java @@ -16,18 +16,17 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisFloatingChildBiomes; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisObjectPlacement; -import art.arcane.iris.engine.object.IrisObjectTranslate; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.biome.IrisFloatingChildBiomes; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.structure.object.IrisObjectTranslate; import art.arcane.iris.testsupport.PlatformBinding; import art.arcane.volmlib.util.collection.KList; import org.junit.Rule; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/components/MantleFloatingObjectComponentInvertedPlacementTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/MantleFloatingObjectComponentInvertedPlacementTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/engine/mantle/components/MantleFloatingObjectComponentInvertedPlacementTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/MantleFloatingObjectComponentInvertedPlacementTest.java index 1574d7427..98344260d 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/components/MantleFloatingObjectComponentInvertedPlacementTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/MantleFloatingObjectComponentInvertedPlacementTest.java @@ -1,9 +1,9 @@ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.engine.object.FloatingIslandSample; -import art.arcane.iris.engine.object.FloatingObjectFootprint; -import art.arcane.iris.engine.object.IrisFloatingChildBiomes; -import art.arcane.iris.engine.object.IrisObjectRotation; +import art.arcane.iris.generation.biome.FloatingIslandSample; +import art.arcane.iris.structure.object.FloatingObjectFootprint; +import art.arcane.iris.generation.biome.IrisFloatingChildBiomes; +import art.arcane.iris.structure.object.IrisObjectRotation; import org.junit.Test; import java.lang.reflect.Constructor; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/components/MantleHydrologyCaveVoxelViewTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/MantleHydrologyCaveVoxelViewTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/mantle/components/MantleHydrologyCaveVoxelViewTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/MantleHydrologyCaveVoxelViewTest.java index ea551269a..12cb103c5 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/components/MantleHydrologyCaveVoxelViewTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/MantleHydrologyCaveVoxelViewTest.java @@ -1,17 +1,15 @@ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.hydrology.HydrologyCaveVoxelViewFactory; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.HydrologyColumnSample; -import art.arcane.iris.engine.hydrology.RiverFootprint; -import art.arcane.iris.engine.hydrology.cave.CavePosition; -import art.arcane.iris.engine.hydrology.cave.CaveVoxel; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.mantle.MantleComponent; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.hydrology.HydrologyCaveVoxelViewFactory; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.HydrologyColumnSample; +import art.arcane.iris.generation.hydrology.RiverFootprint; +import art.arcane.iris.generation.hydrology.cave.CavePosition; +import art.arcane.iris.generation.hydrology.cave.CaveVoxel; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.volmlib.util.stream.ProceduralStream; import art.arcane.volmlib.util.mantle.flag.ReservedFlag; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/components/MantleHydrologyComponentTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/MantleHydrologyComponentTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/mantle/components/MantleHydrologyComponentTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/MantleHydrologyComponentTest.java index d8e2119ba..1d1a56643 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/components/MantleHydrologyComponentTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/MantleHydrologyComponentTest.java @@ -1,44 +1,42 @@ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.render.IrisRenderer; -import art.arcane.iris.engine.framework.render.RenderType; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.HydrologyColumnSample; -import art.arcane.iris.engine.hydrology.HydrologyDiagnosticRenderSample; -import art.arcane.iris.engine.hydrology.HydrologyFeatureRef; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.engine.hydrology.HydrologyPoint; -import art.arcane.iris.engine.hydrology.HydraulicSegment; -import art.arcane.iris.engine.hydrology.HydrologyPlanner; -import art.arcane.iris.engine.hydrology.HydrologyPlannerSettings; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSample; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSampler; -import art.arcane.iris.engine.hydrology.HydrologyTile; -import art.arcane.iris.engine.hydrology.HydrologyTileKey; -import art.arcane.iris.engine.hydrology.RiverCourse; -import art.arcane.iris.engine.hydrology.RiverCourseType; -import art.arcane.iris.engine.hydrology.RiverOutlet; -import art.arcane.iris.engine.hydrology.runtime.IrisHydrologyRuntime; -import art.arcane.iris.engine.hydrology.cave.CavePosition; -import art.arcane.iris.engine.hydrology.cave.CaveVoxel; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelPrecondition; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelView; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveMode; -import art.arcane.iris.engine.hydrology.cave.HydrologyCavePlan; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveRejection; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveSource; -import art.arcane.iris.engine.mantle.ComponentFlag; -import art.arcane.iris.engine.mantle.MantleWriter; -import art.arcane.iris.engine.object.IrisDeepFluidConfig; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.studio.render.IrisRenderer; +import art.arcane.iris.studio.render.RenderType; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.HydrologyColumnSample; +import art.arcane.iris.generation.hydrology.HydrologyDiagnosticRenderSample; +import art.arcane.iris.generation.hydrology.HydrologyFeatureRef; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.hydrology.HydrologyPoint; +import art.arcane.iris.generation.hydrology.HydraulicSegment; +import art.arcane.iris.generation.hydrology.HydrologyPlanner; +import art.arcane.iris.generation.hydrology.HydrologyPlannerSettings; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSample; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSampler; +import art.arcane.iris.generation.hydrology.HydrologyTile; +import art.arcane.iris.generation.hydrology.HydrologyTileKey; +import art.arcane.iris.generation.hydrology.RiverCourse; +import art.arcane.iris.generation.hydrology.RiverCourseType; +import art.arcane.iris.generation.hydrology.RiverOutlet; +import art.arcane.iris.generation.hydrology.runtime.IrisHydrologyRuntime; +import art.arcane.iris.generation.hydrology.cave.CavePosition; +import art.arcane.iris.generation.hydrology.cave.CaveVoxel; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelPrecondition; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelView; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveMode; +import art.arcane.iris.generation.hydrology.cave.HydrologyCavePlan; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveRejection; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveSource; +import art.arcane.iris.generation.hydrology.IrisDeepFluidConfig; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.context.ChunkContext; +import art.arcane.iris.generation.context.ChunkContext; import art.arcane.volmlib.util.mantle.flag.ReservedFlag; import art.arcane.volmlib.util.matter.slices.UpdateMatter; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/components/MantleObjectComponentBoundaryRadiusTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/MantleObjectComponentBoundaryRadiusTest.java similarity index 92% rename from core/src/test/java/art/arcane/iris/engine/mantle/components/MantleObjectComponentBoundaryRadiusTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/MantleObjectComponentBoundaryRadiusTest.java index 5b63a6a5f..4e2eb395b 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/components/MantleObjectComponentBoundaryRadiusTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/MantleObjectComponentBoundaryRadiusTest.java @@ -1,36 +1,31 @@ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.engine.UpperDimensionContext; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.mantle.MantleComponent; -import art.arcane.iris.engine.mantle.MantlePass; -import art.arcane.iris.engine.mantle.MantleWriter; -import art.arcane.iris.engine.mantle.MatterGenerator; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisGeneratorStyle; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisObjectPlacement; -import art.arcane.iris.engine.object.IrisObjectRotation; -import art.arcane.iris.engine.object.IrisObjectScale; -import art.arcane.iris.engine.object.IrisObjectTranslate; -import art.arcane.iris.engine.object.IrisProceduralObjects; -import art.arcane.iris.engine.object.IrisProceduralPlacement; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisVacuumSettings; -import art.arcane.iris.engine.object.NoiseStyle; -import art.arcane.iris.engine.object.ObjectPlaceMode; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.generation.runtime.UpperDimensionContext; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.structure.object.IrisObjectRotation; +import art.arcane.iris.structure.object.IrisObjectScale; +import art.arcane.iris.structure.object.IrisObjectTranslate; +import art.arcane.iris.generation.decoration.IrisProceduralObjects; +import art.arcane.iris.generation.decoration.IrisProceduralPlacement; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.generation.decoration.IrisVacuumSettings; +import art.arcane.iris.generation.noise.NoiseStyle; +import art.arcane.iris.structure.object.ObjectPlaceMode; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformRegistries; import art.arcane.iris.testsupport.PlatformLeakGuard; -import art.arcane.iris.util.common.math.IrisBlockVector; -import art.arcane.iris.util.project.context.ChunkContext; +import art.arcane.iris.generation.geometry.IrisBlockVector; +import art.arcane.iris.generation.context.ChunkContext; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/components/MantleObjectComponentCaveAnchorTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/MantleObjectComponentCaveAnchorTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/engine/mantle/components/MantleObjectComponentCaveAnchorTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/MantleObjectComponentCaveAnchorTest.java index 349d5756f..e86adb091 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/components/MantleObjectComponentCaveAnchorTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/MantleObjectComponentCaveAnchorTest.java @@ -1,10 +1,10 @@ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.engine.history.BoundaryColumnGeometry; +import art.arcane.iris.world.history.BoundaryColumnGeometry; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; import art.arcane.volmlib.util.matter.MatterCavern; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/components/MantleObjectComponentCollisionDeterminismTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/MantleObjectComponentCollisionDeterminismTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/mantle/components/MantleObjectComponentCollisionDeterminismTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/MantleObjectComponentCollisionDeterminismTest.java index 3d5968f40..7307d8249 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/components/MantleObjectComponentCollisionDeterminismTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/MantleObjectComponentCollisionDeterminismTest.java @@ -1,6 +1,5 @@ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.engine.mantle.MantleWriter; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.matter.Matter; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/components/MantleObjectComponentProceduralChanceTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/MantleObjectComponentProceduralChanceTest.java similarity index 91% rename from core/src/test/java/art/arcane/iris/engine/mantle/components/MantleObjectComponentProceduralChanceTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/MantleObjectComponentProceduralChanceTest.java index d4bb8c405..430ed8d1d 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/components/MantleObjectComponentProceduralChanceTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/MantleObjectComponentProceduralChanceTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; import art.arcane.volmlib.util.math.RNG; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/MantleWriterNeighborhoodBenchmarkTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/MantleWriterNeighborhoodBenchmarkTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/mantle/MantleWriterNeighborhoodBenchmarkTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/MantleWriterNeighborhoodBenchmarkTest.java index d7e5aea6f..13ee3a937 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/MantleWriterNeighborhoodBenchmarkTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/MantleWriterNeighborhoodBenchmarkTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.mantle; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.engine.object.IrisPosition; +import art.arcane.iris.pack.value.IrisPosition; import org.junit.Assume; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/MantleWriterNeighborhoodTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/MantleWriterNeighborhoodTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/mantle/MantleWriterNeighborhoodTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/MantleWriterNeighborhoodTest.java index c9b18dbfb..feacdca27 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/MantleWriterNeighborhoodTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/MantleWriterNeighborhoodTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.mantle; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.engine.object.IrisPosition; +import art.arcane.iris.pack.value.IrisPosition; import org.junit.Test; import java.util.HashSet; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/MantleWriterOverlayTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/MantleWriterOverlayTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/mantle/MantleWriterOverlayTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/MantleWriterOverlayTest.java index 89ead51ab..a0dfedfec 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/MantleWriterOverlayTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/MantleWriterOverlayTest.java @@ -1,12 +1,12 @@ -package art.arcane.iris.engine.mantle; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.history.TransitionGenerationPlan; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.integration.Identifier; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.world.history.TransitionGenerationPlan; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.testsupport.PlatformBinding; import art.arcane.volmlib.util.mantle.runtime.Mantle; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/MantleWriterParallelismTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/MantleWriterParallelismTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/mantle/MantleWriterParallelismTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/MantleWriterParallelismTest.java index cdcf0aea9..05ac4ac94 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/MantleWriterParallelismTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/MantleWriterParallelismTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.mantle; +package art.arcane.iris.generation.mantle; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/MantleWriterPreObjectJournalTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/MantleWriterPreObjectJournalTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/mantle/MantleWriterPreObjectJournalTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/MantleWriterPreObjectJournalTest.java index 7c17f1157..acf693ae5 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/MantleWriterPreObjectJournalTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/MantleWriterPreObjectJournalTest.java @@ -1,16 +1,16 @@ -package art.arcane.iris.engine.mantle; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; -import art.arcane.iris.engine.IrisComplex; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.generation.runtime.IrisComplex; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformRegistries; import art.arcane.iris.testsupport.BukkitTestServer; import art.arcane.iris.testsupport.PlatformLeakGuard; -import art.arcane.iris.util.project.matter.IrisMatterSupport; -import art.arcane.iris.util.project.matter.PreObjectMatterCell; +import art.arcane.iris.world.storage.matter.IrisMatterSupport; +import art.arcane.iris.world.storage.matter.PreObjectMatterCell; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.matter.IrisMatter; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/MatterGeneratorCarvePassRadiusTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/MatterGeneratorCarvePassRadiusTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/mantle/MatterGeneratorCarvePassRadiusTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/MatterGeneratorCarvePassRadiusTest.java index af3e61287..748e356d0 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/MatterGeneratorCarvePassRadiusTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/MatterGeneratorCarvePassRadiusTest.java @@ -1,10 +1,10 @@ -package art.arcane.iris.engine.mantle; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EnginePlatformHooks; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EnginePlatformHooks; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.iris.testsupport.PlatformBinding; -import art.arcane.iris.util.project.context.ChunkContext; +import art.arcane.iris.generation.context.ChunkContext; import art.arcane.volmlib.util.mantle.flag.MantleFlag; import art.arcane.volmlib.util.mantle.flag.ReservedFlag; import art.arcane.volmlib.util.mantle.runtime.Mantle; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/MatterGeneratorConcurrencyTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/MatterGeneratorConcurrencyTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/mantle/MatterGeneratorConcurrencyTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/MatterGeneratorConcurrencyTest.java index 29b014462..117460431 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/MatterGeneratorConcurrencyTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/MatterGeneratorConcurrencyTest.java @@ -1,12 +1,12 @@ -package art.arcane.iris.engine.mantle; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.iris.testsupport.Await; import art.arcane.iris.testsupport.PlatformBinding; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.project.context.IrisContext; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.iris.generation.context.IrisContext; import art.arcane.volmlib.util.mantle.flag.MantleFlag; import art.arcane.volmlib.util.mantle.flag.ReservedFlag; import art.arcane.volmlib.util.mantle.runtime.Mantle; @@ -16,7 +16,7 @@ import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.ClassRule; import org.junit.Test; -import art.arcane.iris.util.common.parallel.MultiBurst; +import art.arcane.iris.generation.concurrent.MultiBurst; import java.time.Duration; import java.util.ArrayList; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/components/ObjectDestinationTransactionTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/ObjectDestinationTransactionTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/mantle/components/ObjectDestinationTransactionTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/ObjectDestinationTransactionTest.java index 2297e9af7..3b6bface6 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/components/ObjectDestinationTransactionTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/ObjectDestinationTransactionTest.java @@ -1,22 +1,20 @@ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.history.BoundaryColumnGeometry; -import art.arcane.iris.engine.history.TerrainBoundarySignature; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.mantle.MantleWriter; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.terrain.Terrain3DColumnFixtures; +import art.arcane.iris.integration.Identifier; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.world.history.BoundaryColumnGeometry; +import art.arcane.iris.world.history.TerrainBoundarySignature; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.Terrain3DColumnFixtures; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformRegistries; import art.arcane.iris.testsupport.BukkitTestServer; -import art.arcane.iris.util.project.matter.IrisMatterSupport; +import art.arcane.iris.world.storage.matter.IrisMatterSupport; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.matter.IrisMatter; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/components/ObjectSourcePlanCacheTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/ObjectSourcePlanCacheTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/mantle/components/ObjectSourcePlanCacheTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/ObjectSourcePlanCacheTest.java index aaa8c9899..ab70b7375 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/components/ObjectSourcePlanCacheTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/ObjectSourcePlanCacheTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/ResolvedTerrainPlacementTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/ResolvedTerrainPlacementTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/engine/mantle/ResolvedTerrainPlacementTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/ResolvedTerrainPlacementTest.java index c5ecf874e..07858f38f 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/ResolvedTerrainPlacementTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/ResolvedTerrainPlacementTest.java @@ -1,17 +1,17 @@ -package art.arcane.iris.engine.mantle; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.history.BoundaryColumnGeometry; -import art.arcane.iris.engine.history.TerrainBoundarySignature; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.world.history.BoundaryColumnGeometry; +import art.arcane.iris.world.history.TerrainBoundarySignature; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformRegistries; import art.arcane.iris.testsupport.PlatformLeakGuard; -import art.arcane.iris.util.project.matter.IrisMatterSupport; -import art.arcane.iris.util.project.matter.PreObjectMatterCell; -import art.arcane.iris.util.project.matter.slices.PreObjectMatterTest; +import art.arcane.iris.world.storage.matter.IrisMatterSupport; +import art.arcane.iris.world.storage.matter.PreObjectMatterCell; +import art.arcane.iris.world.storage.matter.PreObjectMatterTest; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.matter.IrisMatter; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/components/StructureCarveEnvelopeTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/StructureCarveEnvelopeTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/mantle/components/StructureCarveEnvelopeTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/StructureCarveEnvelopeTest.java index b670f3fbe..77debb38d 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/components/StructureCarveEnvelopeTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/StructureCarveEnvelopeTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.engine.object.IrisStructureCarveShape; -import art.arcane.iris.util.project.noise.CNG; -import art.arcane.iris.util.project.noise.NoiseType; +import art.arcane.iris.structure.placement.IrisStructureCarveShape; +import art.arcane.volmlib.util.noise.CNG; +import art.arcane.volmlib.util.noise.NoiseType; import art.arcane.volmlib.util.math.RNG; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/components/StructureCarvingFootprintTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/StructureCarvingFootprintTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/mantle/components/StructureCarvingFootprintTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/StructureCarvingFootprintTest.java index 5e68215f0..4fb5b5da4 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/components/StructureCarvingFootprintTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/StructureCarvingFootprintTest.java @@ -1,10 +1,10 @@ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.engine.framework.PlacedStructurePiece; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisObjectRotation; +import art.arcane.iris.structure.placement.PlacedStructurePiece; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectRotation; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.generation.geometry.IrisBlockVector; import art.arcane.volmlib.util.collection.KList; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/components/StructureFoundationPlannerTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/StructureFoundationPlannerTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/mantle/components/StructureFoundationPlannerTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/StructureFoundationPlannerTest.java index 363bb8b88..a9922feca 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/components/StructureFoundationPlannerTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/StructureFoundationPlannerTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; import art.arcane.iris.spi.PlatformBlockState; import it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/components/SurfaceFluidBoundaryPlanTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/SurfaceFluidBoundaryPlanTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/mantle/components/SurfaceFluidBoundaryPlanTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/SurfaceFluidBoundaryPlanTest.java index 6f243956d..ff63279fe 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/components/SurfaceFluidBoundaryPlanTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/SurfaceFluidBoundaryPlanTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.mantle.components; +package art.arcane.iris.generation.mantle; import art.arcane.volmlib.util.math.PowerOfTwoCoordinates; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/TerrainComposedCavernTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/TerrainComposedCavernTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/mantle/TerrainComposedCavernTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/TerrainComposedCavernTest.java index 0c731791f..a4f46d781 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/TerrainComposedCavernTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/TerrainComposedCavernTest.java @@ -1,10 +1,10 @@ -package art.arcane.iris.engine.mantle; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; -import art.arcane.iris.util.project.matter.PreObjectMatterCell; -import art.arcane.iris.util.project.matter.slices.HydrologyCaveMatter; -import art.arcane.iris.util.project.matter.slices.PreObjectMatter; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.world.storage.matter.PreObjectMatterCell; +import art.arcane.iris.world.storage.matter.HydrologyCaveMatter; +import art.arcane.iris.world.storage.matter.PreObjectMatter; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.matter.IrisMatter; import art.arcane.volmlib.util.matter.Matter; diff --git a/core/src/test/java/art/arcane/iris/engine/mantle/TerrainMatterViewTest.java b/core/src/test/java/art/arcane/iris/generation/mantle/TerrainMatterViewTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/mantle/TerrainMatterViewTest.java rename to core/src/test/java/art/arcane/iris/generation/mantle/TerrainMatterViewTest.java index f5c986b55..9f6713f35 100644 --- a/core/src/test/java/art/arcane/iris/engine/mantle/TerrainMatterViewTest.java +++ b/core/src/test/java/art/arcane/iris/generation/mantle/TerrainMatterViewTest.java @@ -1,11 +1,11 @@ -package art.arcane.iris.engine.mantle; +package art.arcane.iris.generation.mantle; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.matter.IrisMatterSupport; -import art.arcane.iris.util.project.matter.PreObjectMatterCell; -import art.arcane.iris.util.project.matter.slices.PreObjectMatterTest; +import art.arcane.iris.world.storage.matter.IrisMatterSupport; +import art.arcane.iris.world.storage.matter.PreObjectMatterCell; +import art.arcane.iris.world.storage.matter.PreObjectMatterTest; import art.arcane.volmlib.util.function.Consumer4; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.matter.IrisMatter; diff --git a/core/src/test/java/art/arcane/iris/util/project/noise/ImageNoiseTest.java b/core/src/test/java/art/arcane/iris/generation/noise/ImageNoiseTest.java similarity index 89% rename from core/src/test/java/art/arcane/iris/util/project/noise/ImageNoiseTest.java rename to core/src/test/java/art/arcane/iris/generation/noise/ImageNoiseTest.java index aaf67ff31..8ecae7edb 100644 --- a/core/src/test/java/art/arcane/iris/util/project/noise/ImageNoiseTest.java +++ b/core/src/test/java/art/arcane/iris/generation/noise/ImageNoiseTest.java @@ -1,10 +1,10 @@ -package art.arcane.iris.util.project.noise; +package art.arcane.iris.generation.noise; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.image.IrisImageMapValidationException; -import art.arcane.iris.engine.object.IrisImageMap; -import art.arcane.iris.engine.object.IrisImageMapOutOfBounds; -import art.arcane.iris.engine.object.IrisImageMapType; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.image.IrisImageMapValidationException; +import art.arcane.iris.generation.image.IrisImageMap; +import art.arcane.iris.generation.image.IrisImageMapOutOfBounds; +import art.arcane.iris.generation.image.IrisImageMapType; import com.google.gson.Gson; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisExpressionLoadEngineCacheTest.java b/core/src/test/java/art/arcane/iris/generation/noise/IrisExpressionLoadEngineCacheTest.java similarity index 87% rename from core/src/test/java/art/arcane/iris/engine/object/IrisExpressionLoadEngineCacheTest.java rename to core/src/test/java/art/arcane/iris/generation/noise/IrisExpressionLoadEngineCacheTest.java index feb122e63..95ed01f68 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisExpressionLoadEngineCacheTest.java +++ b/core/src/test/java/art/arcane/iris/generation/noise/IrisExpressionLoadEngineCacheTest.java @@ -1,9 +1,12 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.noise; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.iris.generation.runtime.IrisEngineStreamType; +import art.arcane.iris.generation.runtime.IrisEngineValueType; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.volmlib.util.stream.ProceduralStream; import art.arcane.volmlib.util.math.RNG; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisGeneratorStyleCacheIsolationTest.java b/core/src/test/java/art/arcane/iris/generation/noise/IrisGeneratorStyleCacheIsolationTest.java similarity index 92% rename from core/src/test/java/art/arcane/iris/engine/object/IrisGeneratorStyleCacheIsolationTest.java rename to core/src/test/java/art/arcane/iris/generation/noise/IrisGeneratorStyleCacheIsolationTest.java index eff4af074..c2dcd1bc6 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisGeneratorStyleCacheIsolationTest.java +++ b/core/src/test/java/art/arcane/iris/generation/noise/IrisGeneratorStyleCacheIsolationTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.noise; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.volmlib.util.noise.CNG; import art.arcane.volmlib.util.math.RNG; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisNoiseGeneratorCacheTest.java b/core/src/test/java/art/arcane/iris/generation/noise/IrisNoiseGeneratorCacheTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/object/IrisNoiseGeneratorCacheTest.java rename to core/src/test/java/art/arcane/iris/generation/noise/IrisNoiseGeneratorCacheTest.java index 3527c86d4..bdfd95269 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisNoiseGeneratorCacheTest.java +++ b/core/src/test/java/art/arcane/iris/generation/noise/IrisNoiseGeneratorCacheTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.noise; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.volmlib.util.noise.CNG; import art.arcane.volmlib.util.math.RNG; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisNoiseGeneratorRemapTest.java b/core/src/test/java/art/arcane/iris/generation/noise/IrisNoiseGeneratorRemapTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/engine/object/IrisNoiseGeneratorRemapTest.java rename to core/src/test/java/art/arcane/iris/generation/noise/IrisNoiseGeneratorRemapTest.java index b073da9a6..2f2b6e7f4 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisNoiseGeneratorRemapTest.java +++ b/core/src/test/java/art/arcane/iris/generation/noise/IrisNoiseGeneratorRemapTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.noise; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/NoiseStyleContractTest.java b/core/src/test/java/art/arcane/iris/generation/noise/NoiseStyleContractTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/object/NoiseStyleContractTest.java rename to core/src/test/java/art/arcane/iris/generation/noise/NoiseStyleContractTest.java index 1c59b7f2f..af19275dd 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/NoiseStyleContractTest.java +++ b/core/src/test/java/art/arcane/iris/generation/noise/NoiseStyleContractTest.java @@ -1,9 +1,9 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.noise; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.util.project.noise.CNG; -import art.arcane.iris.util.project.noise.NoiseGenerator; -import art.arcane.iris.util.project.noise.NoiseType; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.volmlib.util.noise.CNG; +import art.arcane.volmlib.util.noise.NoiseGenerator; +import art.arcane.volmlib.util.noise.NoiseType; import art.arcane.volmlib.util.math.RNG; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/generation/noise/PatternNoiseStyleTest.java b/core/src/test/java/art/arcane/iris/generation/noise/PatternNoiseStyleTest.java new file mode 100644 index 000000000..5705e32b4 --- /dev/null +++ b/core/src/test/java/art/arcane/iris/generation/noise/PatternNoiseStyleTest.java @@ -0,0 +1,33 @@ +package art.arcane.iris.generation.noise; + +import art.arcane.volmlib.util.math.RNG; +import art.arcane.volmlib.util.noise.CNG; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +public class PatternNoiseStyleTest { + private static final NoiseStyle[] STYLES = { + NoiseStyle.GYROID, NoiseStyle.QUASICRYSTAL, NoiseStyle.TRUCHET, + NoiseStyle.CRATER, NoiseStyle.VORTEX, + NoiseStyle.DUNE, NoiseStyle.STRATA, NoiseStyle.WOOD, NoiseStyle.GABOR, NoiseStyle.MARBLE, + NoiseStyle.SCALES, NoiseStyle.CHLADNI, NoiseStyle.KALEIDOSCOPE, NoiseStyle.MENGER_SPONGE, NoiseStyle.CIRCUIT + }; + + @Test + public void styleIntegrationUsesTheSameScaleInEveryDimension() { + for (NoiseStyle style : STYLES) { + CNG direct = style.create(new RNG(7331L)); + CNG zoomed = style.style().zoomed(2D).createNoCache(new RNG(7331L), null); + for (int index = 0; index < 128; index++) { + double x = index * 13.713D - 400D; + double y = index * 1.119D - 70D; + double z = index * -17.179D + 300D; + assertEquals(style.name(), direct.noise(x, z), zoomed.noise(x * 2D, z * 2D), 1E-10D); + assertEquals(style.name(), direct.noise(x, y, z), zoomed.noise(x * 2D, y * 2D, z * 2D), 1E-10D); + assertEquals(style.name(), direct.noise(x, z), direct.noise(x, 0D, z), 0D); + } + } + } + +} diff --git a/core/src/test/java/art/arcane/iris/engine/DimensionStackLayoutTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/DimensionStackLayoutTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/DimensionStackLayoutTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/DimensionStackLayoutTest.java index c4919c997..ab0d71b1b 100644 --- a/core/src/test/java/art/arcane/iris/engine/DimensionStackLayoutTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/DimensionStackLayoutTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; import com.github.benmanes.caffeine.cache.Cache; import com.github.benmanes.caffeine.cache.Caffeine; diff --git a/core/src/test/java/art/arcane/iris/engine/DimensionTerrain3DCompositionTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/DimensionTerrain3DCompositionTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/DimensionTerrain3DCompositionTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/DimensionTerrain3DCompositionTest.java index 336bc5e33..8bab798f2 100644 --- a/core/src/test/java/art/arcane/iris/engine/DimensionTerrain3DCompositionTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/DimensionTerrain3DCompositionTest.java @@ -1,26 +1,24 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.actuator.IrisDimensionStackActuator; -import art.arcane.iris.engine.actuator.IrisTerrainNormalActuator; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.SeedManager; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisBiomePaletteLayer; -import art.arcane.iris.engine.object.IrisSlopeClip; -import art.arcane.iris.engine.image.IrisImageMapRuntime; -import art.arcane.iris.engine.terrain.Terrain3DColumn; -import art.arcane.iris.engine.terrain.Terrain3DColumnFixtures; +import art.arcane.iris.generation.stage.IrisDimensionStackActuator; +import art.arcane.iris.generation.stage.IrisTerrainNormalActuator; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.generation.biome.IrisBiomePaletteLayer; +import art.arcane.iris.generation.terrain.IrisSlopeClip; +import art.arcane.iris.generation.image.IrisImageMapRuntime; +import art.arcane.iris.generation.terrain.Terrain3DColumn; +import art.arcane.iris.generation.terrain.Terrain3DColumnFixtures; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformRegistries; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.project.context.ChunkedDataCache; -import art.arcane.iris.util.project.hunk.Hunk; -import art.arcane.iris.util.project.stream.ProceduralStream; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.iris.generation.context.ChunkedDataCache; +import art.arcane.volmlib.util.hunk.Hunk; +import art.arcane.volmlib.util.stream.ProceduralStream; +import art.arcane.volmlib.util.noise.CNG; import art.arcane.volmlib.util.collection.KList; import org.junit.After; import org.junit.Before; diff --git a/core/src/test/java/art/arcane/iris/engine/DimensionTerrainContextFallbackTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/DimensionTerrainContextFallbackTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/DimensionTerrainContextFallbackTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/DimensionTerrainContextFallbackTest.java index 3b5cd3487..cd4ad0a03 100644 --- a/core/src/test/java/art/arcane/iris/engine/DimensionTerrainContextFallbackTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/DimensionTerrainContextFallbackTest.java @@ -1,14 +1,13 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.image.IrisImageMapRuntime; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.generation.image.IrisImageMapRuntime; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.stream.ProceduralStream; -import art.arcane.iris.engine.terrain.Terrain3DColumn; -import art.arcane.iris.engine.terrain.Terrain3DColumnFixtures; +import art.arcane.volmlib.util.stream.ProceduralStream; +import art.arcane.iris.generation.terrain.Terrain3DColumn; +import art.arcane.iris.generation.terrain.Terrain3DColumnFixtures; import art.arcane.volmlib.util.collection.KList; import java.util.List; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/EngineAssignedWorldManagerLifecycleTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/EngineAssignedWorldManagerLifecycleTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/framework/EngineAssignedWorldManagerLifecycleTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/EngineAssignedWorldManagerLifecycleTest.java index 7adec5ffb..0442786cd 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/EngineAssignedWorldManagerLifecycleTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/EngineAssignedWorldManagerLifecycleTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; import org.junit.Test; import org.bukkit.Chunk; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/EngineAssignedWorldManagerTeleportTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/EngineAssignedWorldManagerTeleportTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/framework/EngineAssignedWorldManagerTeleportTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/EngineAssignedWorldManagerTeleportTest.java index 29b0be808..c2153e24e 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/EngineAssignedWorldManagerTeleportTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/EngineAssignedWorldManagerTeleportTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.object.IrisWorld; +import art.arcane.iris.world.IrisWorld; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.platform.bukkit.BukkitWorldBinding; import org.bukkit.Chunk; diff --git a/core/src/test/java/art/arcane/iris/engine/EngineBackgroundTasksAdmissionTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/EngineBackgroundTasksAdmissionTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/EngineBackgroundTasksAdmissionTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/EngineBackgroundTasksAdmissionTest.java index ffe4dc654..0fb2811dd 100644 --- a/core/src/test/java/art/arcane/iris/engine/EngineBackgroundTasksAdmissionTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/EngineBackgroundTasksAdmissionTest.java @@ -1,10 +1,7 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineLifecycleTasks; -import art.arcane.iris.engine.framework.GenerationSessionManager; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import org.junit.Test; import org.mockito.MockedStatic; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/EngineComponentTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/EngineComponentTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/framework/EngineComponentTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/EngineComponentTest.java index bc334d75a..a87335d21 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/EngineComponentTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/EngineComponentTest.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.testsupport.PlatformLeakGuard; diff --git a/core/src/test/java/art/arcane/iris/engine/EngineDiagnosticsFailureTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/EngineDiagnosticsFailureTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/EngineDiagnosticsFailureTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/EngineDiagnosticsFailureTest.java index 78cc2cfe0..66c439f5a 100644 --- a/core/src/test/java/art/arcane/iris/engine/EngineDiagnosticsFailureTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/EngineDiagnosticsFailureTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/EngineHostHeightTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/EngineHostHeightTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/engine/framework/EngineHostHeightTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/EngineHostHeightTest.java index 9eef22d9f..e4d2ece49 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/EngineHostHeightTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/EngineHostHeightTest.java @@ -1,11 +1,8 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.DimensionStackContext; -import art.arcane.iris.engine.DimensionStackLayout; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.generation.mantle.EngineMantle; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisRegion; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBiome; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/EngineLifecycleTasksTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/EngineLifecycleTasksTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/framework/EngineLifecycleTasksTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/EngineLifecycleTasksTest.java index d63bdbb6d..941549455 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/EngineLifecycleTasksTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/EngineLifecycleTasksTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.util.project.context.IrisContext; +import art.arcane.iris.generation.context.IrisContext; import org.junit.Test; import java.util.concurrent.CountDownLatch; diff --git a/core/src/test/java/art/arcane/iris/core/service/EngineMaintenanceTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/EngineMaintenanceTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/service/EngineMaintenanceTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/EngineMaintenanceTest.java index fa37e9b28..12d8fa993 100644 --- a/core/src/test/java/art/arcane/iris/core/service/EngineMaintenanceTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/EngineMaintenanceTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.configuration.IrisSettings; import org.junit.Test; import static org.junit.Assert.assertEquals; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/EngineModeBurstAroundTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/EngineModeBurstAroundTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/framework/EngineModeBurstAroundTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/EngineModeBurstAroundTest.java index c1c04ea85..77d5f9930 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/EngineModeBurstAroundTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/EngineModeBurstAroundTest.java @@ -1,9 +1,9 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; import art.arcane.iris.testsupport.PlatformBinding; -import art.arcane.iris.util.common.parallel.MultiBurst; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.generation.concurrent.MultiBurst; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.iris.configuration.IrisSettings; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.ClassRule; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/EngineModeMaintenanceTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/EngineModeMaintenanceTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/framework/EngineModeMaintenanceTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/EngineModeMaintenanceTest.java index fe1fa49ca..688cb17f7 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/EngineModeMaintenanceTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/EngineModeMaintenanceTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/EngineMulticoreDecisionTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/EngineMulticoreDecisionTest.java similarity index 92% rename from core/src/test/java/art/arcane/iris/engine/framework/EngineMulticoreDecisionTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/EngineMulticoreDecisionTest.java index d0c2c745b..7bdcb8007 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/EngineMulticoreDecisionTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/EngineMulticoreDecisionTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/EnginePanicTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/EnginePanicTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/EnginePanicTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/EnginePanicTest.java index e2038cb87..6f5dfe594 100644 --- a/core/src/test/java/art/arcane/iris/engine/EnginePanicTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/EnginePanicTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/EnginePlayerTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/EnginePlayerTest.java similarity index 87% rename from core/src/test/java/art/arcane/iris/engine/framework/EnginePlayerTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/EnginePlayerTest.java index ee1ba792b..c53c9ea97 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/EnginePlayerTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/EnginePlayerTest.java @@ -1,11 +1,11 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.history.SavedBiomeUnavailableException; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisWorld; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.world.history.SavedBiomeUnavailableException; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.world.IrisWorld; import art.arcane.iris.platform.bukkit.BukkitWorldBinding; import org.bukkit.Location; import org.bukkit.World; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/EnginePreviewColorTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/EnginePreviewColorTest.java similarity index 85% rename from core/src/test/java/art/arcane/iris/engine/framework/EnginePreviewColorTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/EnginePreviewColorTest.java index 6f0ebeb66..466e7a5cd 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/EnginePreviewColorTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/EnginePreviewColorTest.java @@ -1,10 +1,10 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.util.common.data.DataProvider; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.generation.block.DataProvider; import org.junit.Test; import java.awt.Color; diff --git a/core/src/test/java/art/arcane/iris/engine/EngineRuntimeBuilderStudioServiceTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/EngineRuntimeBuilderStudioServiceTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/EngineRuntimeBuilderStudioServiceTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/EngineRuntimeBuilderStudioServiceTest.java index a10d91e0e..31e7d0070 100644 --- a/core/src/test/java/art/arcane/iris/engine/EngineRuntimeBuilderStudioServiceTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/EngineRuntimeBuilderStudioServiceTest.java @@ -1,14 +1,6 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineAssignedWorldManager; -import art.arcane.iris.engine.framework.EngineEffects; -import art.arcane.iris.engine.framework.EngineEffectsProvider; -import art.arcane.iris.engine.framework.EngineTarget; -import art.arcane.iris.engine.framework.EngineWorldManagerProvider; -import art.arcane.iris.engine.framework.GenerationSessionManager; -import art.arcane.iris.engine.framework.GenerationTransitionGate; -import art.arcane.iris.engine.object.IrisWorld; +import art.arcane.iris.world.IrisWorld; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.platform.bukkit.BukkitWorldBinding; import art.arcane.iris.spi.IrisServices; diff --git a/core/src/test/java/art/arcane/iris/engine/EngineShutdownDrainTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/EngineShutdownDrainTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/EngineShutdownDrainTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/EngineShutdownDrainTest.java index 8e1e6706b..175fa7cfa 100644 --- a/core/src/test/java/art/arcane/iris/engine/EngineShutdownDrainTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/EngineShutdownDrainTest.java @@ -1,27 +1,18 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.EngineRuntimeBuilder.RuntimeAssembly; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineAssignedComponent; -import art.arcane.iris.engine.framework.EngineEffects; -import art.arcane.iris.engine.framework.EnginePlatformHooks; -import art.arcane.iris.engine.framework.EngineTarget; -import art.arcane.iris.engine.framework.EngineWorldManager; -import art.arcane.iris.engine.framework.GenerationSessionException; -import art.arcane.iris.engine.framework.GenerationSessionManager; -import art.arcane.iris.engine.framework.NativeStructureOwnershipStore; -import art.arcane.iris.engine.history.GenerationKernelRegistry; -import art.arcane.iris.engine.history.GenerationHistory; -import art.arcane.iris.engine.history.GenerationAdmission; -import art.arcane.iris.engine.history.GenerationHistoryRuntimeRouter; -import art.arcane.iris.engine.history.GenerationEpoch; -import art.arcane.iris.engine.history.GenerationEpochContractFactory; -import art.arcane.iris.engine.history.GenerationPackFingerprint; -import art.arcane.iris.engine.history.GenerationRegistryContract; -import art.arcane.iris.engine.object.IrisWorld; -import art.arcane.iris.engine.framework.EngineMode; -import art.arcane.iris.engine.mantle.EngineMantle; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.EngineRuntimeBuilder.RuntimeAssembly; +import art.arcane.iris.structure.nativegen.NativeStructureOwnershipStore; +import art.arcane.iris.world.history.GenerationKernelRegistry; +import art.arcane.iris.world.history.GenerationHistory; +import art.arcane.iris.world.history.GenerationAdmission; +import art.arcane.iris.world.history.GenerationHistoryRuntimeRouter; +import art.arcane.iris.world.history.GenerationEpoch; +import art.arcane.iris.world.history.GenerationEpochContractFactory; +import art.arcane.iris.world.history.GenerationPackFingerprint; +import art.arcane.iris.world.history.GenerationRegistryContract; +import art.arcane.iris.world.IrisWorld; +import art.arcane.iris.generation.mantle.EngineMantle; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBlockState; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/EngineTelemetrySnapshotTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/EngineTelemetrySnapshotTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/framework/EngineTelemetrySnapshotTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/EngineTelemetrySnapshotTest.java index 16daa4bfc..ec1cb4b00 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/EngineTelemetrySnapshotTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/EngineTelemetrySnapshotTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/GenerationSessionManagerTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/GenerationSessionManagerTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/framework/GenerationSessionManagerTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/GenerationSessionManagerTest.java index 5c4bf2f54..8b4b7b72f 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/GenerationSessionManagerTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/GenerationSessionManagerTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/GenerationTransitionGateTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/GenerationTransitionGateTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/framework/GenerationTransitionGateTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/GenerationTransitionGateTest.java index 4ef67dc18..4d0e2f182 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/GenerationTransitionGateTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/GenerationTransitionGateTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/service/GlobalCacheSVCTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/GlobalCacheSVCTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/core/service/GlobalCacheSVCTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/GlobalCacheSVCTest.java index 49df165f1..df1113676 100644 --- a/core/src/test/java/art/arcane/iris/core/service/GlobalCacheSVCTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/GlobalCacheSVCTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.IrisWorldStorage; +import art.arcane.iris.world.IrisWorldStorage; import org.bukkit.NamespacedKey; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/IrisCarveWallPaletteScopeTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/IrisCarveWallPaletteScopeTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/engine/IrisCarveWallPaletteScopeTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/IrisCarveWallPaletteScopeTest.java index 51f79f2e6..2f5848d5c 100644 --- a/core/src/test/java/art/arcane/iris/engine/IrisCarveWallPaletteScopeTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/IrisCarveWallPaletteScopeTest.java @@ -1,21 +1,19 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.EngineMetrics; -import art.arcane.iris.engine.framework.EngineTarget; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.mantle.TerrainMatterView; -import art.arcane.iris.engine.modifier.IrisCarveModifier; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBiomePaletteLayer; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisDimensionCarvingResolver; -import art.arcane.iris.engine.object.IrisWorld; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.mantle.EngineMantle; +import art.arcane.iris.generation.mantle.TerrainMatterView; +import art.arcane.iris.generation.stage.IrisCarveModifier; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiomePaletteLayer; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisDimensionCarvingResolver; +import art.arcane.iris.world.IrisWorld; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.project.context.IrisContext; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.iris.generation.block.B; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.iris.generation.context.IrisContext; +import art.arcane.volmlib.util.hunk.Hunk; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.function.Consumer4; import art.arcane.volmlib.util.mantle.runtime.Mantle; diff --git a/core/src/test/java/art/arcane/iris/engine/IrisComplexBiomeBuffetTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexBiomeBuffetTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/IrisComplexBiomeBuffetTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexBiomeBuffetTest.java index 8d310c4bc..666fcf50b 100644 --- a/core/src/test/java/art/arcane/iris/engine/IrisComplexBiomeBuffetTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexBiomeBuffetTest.java @@ -1,20 +1,16 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EnginePlatformHooks; -import art.arcane.iris.engine.framework.PreservationRegistry; -import art.arcane.iris.engine.framework.SeedManager; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.StudioMode; -import art.arcane.iris.engine.platform.studio.BiomeBuffetLayout; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.studio.StudioMode; +import art.arcane.iris.studio.generation.BiomeBuffetLayout; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.testsupport.PlatformLeakGuard; -import art.arcane.iris.util.common.data.B; +import art.arcane.iris.generation.block.B; import org.junit.ClassRule; import org.junit.Before; import org.junit.After; diff --git a/core/src/test/java/art/arcane/iris/engine/IrisComplexBoundsBiomeCacheTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexBoundsBiomeCacheTest.java similarity index 91% rename from core/src/test/java/art/arcane/iris/engine/IrisComplexBoundsBiomeCacheTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexBoundsBiomeCacheTest.java index 2e69475c2..0cb24e80a 100644 --- a/core/src/test/java/art/arcane/iris/engine/IrisComplexBoundsBiomeCacheTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexBoundsBiomeCacheTest.java @@ -1,13 +1,12 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisGenerator; -import art.arcane.iris.engine.object.IrisInterpolator; -import art.arcane.iris.util.project.interpolation.NoiseBounds; -import art.arcane.iris.util.project.interpolation.NoiseBoundsProvider; -import art.arcane.iris.util.project.stream.ProceduralStream; -import art.arcane.iris.util.project.stream.interpolation.Interpolated; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.noise.IrisGenerator; +import art.arcane.iris.generation.noise.IrisInterpolator; +import art.arcane.volmlib.util.interpolation.NoiseBounds; +import art.arcane.volmlib.util.interpolation.NoiseBoundsProvider; +import art.arcane.volmlib.util.stream.ProceduralStream; +import art.arcane.volmlib.util.stream.interpolation.Interpolated; import org.junit.Test; import java.lang.reflect.Constructor; @@ -112,7 +111,7 @@ public class IrisComplexBoundsBiomeCacheTest { @Test public void coordinateMemoKeepsExactKeysAndBoundedStorage() throws Exception { - Class type = Class.forName("art.arcane.iris.engine.IrisComplex$CoordinateBiomeCache"); + Class type = Class.forName("art.arcane.iris.generation.runtime.IrisComplex$CoordinateBiomeCache"); Constructor constructor = type.getDeclaredConstructor(int.class); constructor.setAccessible(true); Object cache = constructor.newInstance(4096); @@ -164,14 +163,14 @@ public class IrisComplexBoundsBiomeCacheTest { Field field = IrisComplex.class.getDeclaredField("generatorBounds"); field.setAccessible(true); field.set(complex, bounds); - Class cacheClass = Class.forName("art.arcane.iris.engine.IrisComplex$GridBoundsCache"); + Class cacheClass = Class.forName("art.arcane.iris.generation.runtime.IrisComplex$GridBoundsCache"); Constructor constructor = cacheClass.getDeclaredConstructor(); constructor.setAccessible(true); cache = constructor.newInstance(); sample = IrisComplex.class.getDeclaredMethod("sampleBoundsRaw", cacheClass, Engine.class, IrisInterpolator.class, IrisGenerator[].class, double.class, double.class); sample.setAccessible(true); - boundsConstructor = Class.forName("art.arcane.iris.engine.IrisComplex$GeneratorBounds") + boundsConstructor = Class.forName("art.arcane.iris.generation.runtime.IrisComplex$GeneratorBounds") .getDeclaredConstructor(double.class, double.class); boundsConstructor.setAccessible(true); } diff --git a/core/src/test/java/art/arcane/iris/engine/IrisComplexConstantGeneratorBoundsTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexConstantGeneratorBoundsTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/IrisComplexConstantGeneratorBoundsTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexConstantGeneratorBoundsTest.java index 3fea48f2c..dfd7a10fe 100644 --- a/core/src/test/java/art/arcane/iris/engine/IrisComplexConstantGeneratorBoundsTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexConstantGeneratorBoundsTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.object.IrisGenerator; +import art.arcane.iris.generation.noise.IrisGenerator; import art.arcane.volmlib.util.math.M; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/IrisComplexGeneratorOrderingTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexGeneratorOrderingTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/IrisComplexGeneratorOrderingTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexGeneratorOrderingTest.java index bc16f376f..df02aca76 100644 --- a/core/src/test/java/art/arcane/iris/engine/IrisComplexGeneratorOrderingTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexGeneratorOrderingTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.object.IrisGenerator; -import art.arcane.iris.engine.object.IrisInterpolator; -import art.arcane.iris.util.project.interpolation.InterpolationMethod; +import art.arcane.iris.generation.noise.IrisGenerator; +import art.arcane.iris.generation.noise.IrisInterpolator; +import art.arcane.volmlib.util.interpolation.InterpolationMethod; import org.junit.Test; import java.util.LinkedHashMap; diff --git a/core/src/test/java/art/arcane/iris/engine/IrisComplexGridBoundsCacheTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexGridBoundsCacheTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/IrisComplexGridBoundsCacheTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexGridBoundsCacheTest.java index dcdf5d5af..2417ac2ab 100644 --- a/core/src/test/java/art/arcane/iris/engine/IrisComplexGridBoundsCacheTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexGridBoundsCacheTest.java @@ -1,10 +1,9 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisGenerator; -import art.arcane.iris.engine.object.IrisInterpolator; -import art.arcane.iris.util.project.interpolation.NoiseBounds; -import art.arcane.iris.util.project.interpolation.NoiseBoundsProvider; +import art.arcane.iris.generation.noise.IrisGenerator; +import art.arcane.iris.generation.noise.IrisInterpolator; +import art.arcane.volmlib.util.interpolation.NoiseBounds; +import art.arcane.volmlib.util.interpolation.NoiseBoundsProvider; import org.junit.Test; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; @@ -127,7 +126,7 @@ public class IrisComplexGridBoundsCacheTest { generatorBounds.setAccessible(true); generatorBounds.set(complex, new HashMap<>()); - Class cacheClass = Class.forName("art.arcane.iris.engine.IrisComplex$GridBoundsCache"); + Class cacheClass = Class.forName("art.arcane.iris.generation.runtime.IrisComplex$GridBoundsCache"); Constructor cacheConstructor = cacheClass.getDeclaredConstructor(); cacheConstructor.setAccessible(true); ThreadLocal cache = ThreadLocal.withInitial(() -> newCache(cacheConstructor)); @@ -146,7 +145,7 @@ public class IrisComplexGridBoundsCacheTest { } private static Method cornerBoundsMethod() throws Exception { - Class cacheClass = Class.forName("art.arcane.iris.engine.IrisComplex$GridBoundsCache"); + Class cacheClass = Class.forName("art.arcane.iris.generation.runtime.IrisComplex$GridBoundsCache"); Method method = IrisComplex.class.getDeclaredMethod( "cornerBounds", cacheClass, diff --git a/core/src/test/java/art/arcane/iris/engine/IrisComplexImplodeParityTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexImplodeParityTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/IrisComplexImplodeParityTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexImplodeParityTest.java index 4b7f3828a..96ecae19c 100644 --- a/core/src/test/java/art/arcane/iris/engine/IrisComplexImplodeParityTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexImplodeParityTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.volmlib.util.noise.CNG; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; import org.junit.BeforeClass; @@ -26,7 +26,7 @@ public class IrisComplexImplodeParityTest { @BeforeClass public static void setup() throws Exception { - Class childSelectionClass = Class.forName("art.arcane.iris.engine.IrisComplex$ChildSelectionPlan"); + Class childSelectionClass = Class.forName("art.arcane.iris.generation.runtime.IrisComplex$ChildSelectionPlan"); childSelectionCreateMethod = childSelectionClass.getDeclaredMethod("create", KList.class); childSelectionCreateMethod.setAccessible(true); childSelectionSelectMethod = childSelectionClass.getDeclaredMethod("select", CNG.class, double.class, double.class); diff --git a/core/src/test/java/art/arcane/iris/engine/IrisComplexInferredBiomeStreamCacheTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexInferredBiomeStreamCacheTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/IrisComplexInferredBiomeStreamCacheTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexInferredBiomeStreamCacheTest.java index a8fc613c7..429e12570 100644 --- a/core/src/test/java/art/arcane/iris/engine/IrisComplexInferredBiomeStreamCacheTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexInferredBiomeStreamCacheTest.java @@ -1,10 +1,10 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.object.InferredType; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.util.project.stream.ProceduralStream; -import art.arcane.iris.util.project.stream.interpolation.Interpolated; +import art.arcane.iris.generation.terrain.InferredType; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.volmlib.util.stream.ProceduralStream; +import art.arcane.volmlib.util.stream.interpolation.Interpolated; import org.junit.Test; import java.util.ArrayList; diff --git a/core/src/test/java/art/arcane/iris/engine/IrisComplexNaturalBiomeReuseTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexNaturalBiomeReuseTest.java similarity index 90% rename from core/src/test/java/art/arcane/iris/engine/IrisComplexNaturalBiomeReuseTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexNaturalBiomeReuseTest.java index 2fdba2ec2..b1eebce52 100644 --- a/core/src/test/java/art/arcane/iris/engine/IrisComplexNaturalBiomeReuseTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexNaturalBiomeReuseTest.java @@ -1,16 +1,15 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.image.IrisImageMapRuntime; -import art.arcane.iris.engine.object.InferredType; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisGeneratorStyle; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.project.context.IrisContext; -import art.arcane.iris.util.project.stream.ProceduralStream; -import art.arcane.iris.util.project.stream.interpolation.Interpolated; +import art.arcane.iris.generation.image.IrisImageMapRuntime; +import art.arcane.iris.generation.terrain.InferredType; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.iris.generation.context.IrisContext; +import art.arcane.volmlib.util.stream.ProceduralStream; +import art.arcane.volmlib.util.stream.interpolation.Interpolated; import art.arcane.volmlib.util.collection.KList; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/IrisComplexSelfSelectionTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexSelfSelectionTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/IrisComplexSelfSelectionTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexSelfSelectionTest.java index fa62ee478..4d68fd070 100644 --- a/core/src/test/java/art/arcane/iris/engine/IrisComplexSelfSelectionTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexSelfSelectionTest.java @@ -1,9 +1,9 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.object.InferredType; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisGeneratorStyle; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.iris.generation.terrain.InferredType; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.volmlib.util.noise.CNG; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/IrisComplexStudioCacheTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexStudioCacheTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/IrisComplexStudioCacheTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexStudioCacheTest.java index 46ed155f0..63a923625 100644 --- a/core/src/test/java/art/arcane/iris/engine/IrisComplexStudioCacheTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexStudioCacheTest.java @@ -1,6 +1,5 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.framework.Engine; import org.junit.Test; import static org.junit.Assert.assertEquals; diff --git a/core/src/test/java/art/arcane/iris/engine/IrisComplexSurfaceBiomeTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexSurfaceBiomeTest.java similarity index 90% rename from core/src/test/java/art/arcane/iris/engine/IrisComplexSurfaceBiomeTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexSurfaceBiomeTest.java index ac3a99db5..98ac46d78 100644 --- a/core/src/test/java/art/arcane/iris/engine/IrisComplexSurfaceBiomeTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexSurfaceBiomeTest.java @@ -1,14 +1,14 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.HydrologyColumnSample; -import art.arcane.iris.engine.hydrology.HydrologyFeatureRef; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.engine.object.InferredType; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.util.project.stream.ProceduralStream; -import art.arcane.iris.util.project.stream.interpolation.Interpolated; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.HydrologyColumnSample; +import art.arcane.iris.generation.hydrology.HydrologyFeatureRef; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.terrain.InferredType; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.volmlib.util.stream.ProceduralStream; +import art.arcane.volmlib.util.stream.interpolation.Interpolated; import org.junit.Test; import java.util.List; diff --git a/core/src/test/java/art/arcane/iris/engine/IrisComplexTransitionTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexTransitionTest.java similarity index 91% rename from core/src/test/java/art/arcane/iris/engine/IrisComplexTransitionTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexTransitionTest.java index 5c4a32571..c726c9f73 100644 --- a/core/src/test/java/art/arcane/iris/engine/IrisComplexTransitionTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/IrisComplexTransitionTest.java @@ -1,9 +1,9 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.HydrologyColumnSample; -import art.arcane.iris.engine.hydrology.HydrologyFeatureRef; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.HydrologyColumnSample; +import art.arcane.iris.generation.hydrology.HydrologyFeatureRef; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; import org.junit.Test; import java.util.List; diff --git a/core/src/test/java/art/arcane/iris/engine/IrisEngineDataPersistenceTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/IrisEngineDataPersistenceTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/IrisEngineDataPersistenceTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/IrisEngineDataPersistenceTest.java index 744e6227e..3a70dc3dd 100644 --- a/core/src/test/java/art/arcane/iris/engine/IrisEngineDataPersistenceTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/IrisEngineDataPersistenceTest.java @@ -1,7 +1,6 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.lifecycle.VanishedWorldStorage; -import art.arcane.iris.engine.object.IrisEngineData; +import art.arcane.iris.world.lifecycle.VanishedWorldStorage; import com.google.gson.Gson; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/IrisEngineGenerationRuntimeScopeTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/IrisEngineGenerationRuntimeScopeTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/IrisEngineGenerationRuntimeScopeTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/IrisEngineGenerationRuntimeScopeTest.java index 627396239..5452c2e98 100644 --- a/core/src/test/java/art/arcane/iris/engine/IrisEngineGenerationRuntimeScopeTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/IrisEngineGenerationRuntimeScopeTest.java @@ -1,39 +1,31 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.GenerationRuntime.BiomeMaxes; -import art.arcane.iris.engine.framework.EngineEffects; -import art.arcane.iris.engine.framework.BiomeEnvironment; -import art.arcane.iris.engine.history.SavedBiomeRuntime; -import art.arcane.iris.engine.history.SavedBiomeUnavailableException; -import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.GenerationRuntime.BiomeMaxes; +import art.arcane.iris.world.history.SavedBiomeRuntime; +import art.arcane.iris.world.history.SavedBiomeUnavailableException; +import art.arcane.iris.generation.terrain.IrisRegion; import art.arcane.iris.testsupport.Await; import art.arcane.iris.testsupport.PlatformBinding; import java.util.Optional; import java.util.concurrent.TimeUnit; -import art.arcane.iris.engine.framework.EngineMode; -import art.arcane.iris.engine.framework.EngineStage; -import art.arcane.iris.engine.framework.EngineTarget; -import art.arcane.iris.engine.framework.EngineWorldManager; -import art.arcane.iris.engine.history.GenerationKernelRegistry; -import art.arcane.iris.engine.framework.SeedManager; -import art.arcane.iris.engine.framework.IrisEngineMode; -import art.arcane.iris.engine.framework.NativeStructureVolumeMemo; -import art.arcane.iris.engine.history.GenerationHistoryRuntimeRouter; -import art.arcane.iris.engine.history.GenerationHistory; -import art.arcane.iris.engine.history.GenerationAdmission; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimensionCarvingEntry; -import art.arcane.iris.engine.object.IrisDimensionCarvingResolver; -import art.arcane.iris.engine.object.IrisRange; -import art.arcane.iris.engine.object.IrisWorld; -import art.arcane.iris.util.common.parallel.MultiBurst; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.project.context.IrisContext; -import art.arcane.iris.util.project.noise.CNG; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.iris.world.history.GenerationKernelRegistry; +import art.arcane.iris.structure.nativegen.NativeStructureVolumeMemo; +import art.arcane.iris.world.history.GenerationHistoryRuntimeRouter; +import art.arcane.iris.world.history.GenerationHistory; +import art.arcane.iris.world.history.GenerationAdmission; +import art.arcane.iris.generation.mantle.EngineMantle; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimensionCarvingEntry; +import art.arcane.iris.generation.terrain.IrisDimensionCarvingResolver; +import art.arcane.iris.pack.value.IrisRange; +import art.arcane.iris.world.IrisWorld; +import art.arcane.iris.generation.concurrent.MultiBurst; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.iris.generation.context.IrisContext; +import art.arcane.volmlib.util.noise.CNG; +import art.arcane.volmlib.util.stream.ProceduralStream; import art.arcane.volmlib.util.collection.KList; import org.junit.ClassRule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/IrisEngineLifecycleGateTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/IrisEngineLifecycleGateTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/IrisEngineLifecycleGateTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/IrisEngineLifecycleGateTest.java index ce7a6199d..07aa520f8 100644 --- a/core/src/test/java/art/arcane/iris/engine/IrisEngineLifecycleGateTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/IrisEngineLifecycleGateTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/IrisEngineModeLifecycleTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/IrisEngineModeLifecycleTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/framework/IrisEngineModeLifecycleTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/IrisEngineModeLifecycleTest.java index 81f5f7c4c..0c9ce7c25 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/IrisEngineModeLifecycleTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/IrisEngineModeLifecycleTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.generation.runtime; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/IrisEnginePlatformHookIsolationTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/IrisEnginePlatformHookIsolationTest.java similarity index 74% rename from core/src/test/java/art/arcane/iris/engine/IrisEnginePlatformHookIsolationTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/IrisEnginePlatformHookIsolationTest.java index a92760089..e4ba88da6 100644 --- a/core/src/test/java/art/arcane/iris/engine/IrisEnginePlatformHookIsolationTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/IrisEnginePlatformHookIsolationTest.java @@ -1,9 +1,7 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineMode; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.mode.ModeOverworld; +import art.arcane.iris.generation.mantle.EngineMantle; +import art.arcane.iris.generation.mode.ModeOverworld; import org.junit.Test; import java.io.IOException; @@ -16,32 +14,32 @@ import static org.junit.Assert.assertNotNull; public class IrisEnginePlatformHookIsolationTest { private static final List BUKKIT_ENGINE_CLASSES = List.of( - "art/arcane/iris/core/gui/PregeneratorJob", - "art/arcane/iris/core/ServerConfigurator", - "art/arcane/iris/core/datapack/DatapackIngestService", - "art/arcane/iris/core/events/IrisEngineHotloadEvent", - "art/arcane/iris/core/project/IrisProject", - "art/arcane/iris/core/tools/IrisToolbelt", + "art/arcane/iris/studio/view/PregeneratorJob", + "art/arcane/iris/pack/datapack/ServerConfigurator", + "art/arcane/iris/pack/datapack/DatapackIngestService", + "art/arcane/iris/world/event/IrisEngineHotloadEvent", + "art/arcane/iris/studio/workspace/IrisProject", + "art/arcane/iris/world/IrisToolbelt", "art/arcane/iris/platform/bukkit/", "org/bukkit/" ); private static final List BUKKIT_MODE_CLASSES = List.of( - "art/arcane/iris/core/tools/IrisToolbelt", + "art/arcane/iris/world/IrisToolbelt", "art/arcane/iris/spi/IrisServices", - "art/arcane/iris/util/common/scheduling/J", + "art/arcane/iris/world/task/J", "art/arcane/iris/platform/bukkit/", "org/bukkit/" ); private static final List ENGINE_POLICY_CLASSES = List.of( - "art/arcane/iris/core/gui/PregeneratorJob", - "art/arcane/iris/core/tools/WorldMaintenance", + "art/arcane/iris/studio/view/PregeneratorJob", + "art/arcane/iris/world/WorldMaintenance", "art/arcane/iris/platform/bukkit/", "org/bukkit/" ); private static final List PLATFORM_POLICY_CLASSES = List.of( - "art/arcane/iris/core/gui/PregeneratorJob", - "art/arcane/iris/core/tools/WorldMaintenance", - "art/arcane/iris/util/common/scheduling/J", + "art/arcane/iris/studio/view/PregeneratorJob", + "art/arcane/iris/world/WorldMaintenance", + "art/arcane/iris/world/task/J", "art/arcane/iris/platform/bukkit/", "org/bukkit/" ); diff --git a/core/src/test/java/art/arcane/iris/engine/IrisEnginePreviewTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/IrisEnginePreviewTest.java similarity index 82% rename from core/src/test/java/art/arcane/iris/engine/IrisEnginePreviewTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/IrisEnginePreviewTest.java index ba7eebb57..5bfc8c1df 100644 --- a/core/src/test/java/art/arcane/iris/engine/IrisEnginePreviewTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/IrisEnginePreviewTest.java @@ -1,13 +1,11 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.BiomeEnvironment; -import art.arcane.iris.engine.framework.GenerationSessionLease; -import art.arcane.iris.engine.history.GenerationHistoryRuntimeRouter; -import art.arcane.iris.engine.history.SavedBiomeRuntime; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.world.history.GenerationHistoryRuntimeRouter; +import art.arcane.iris.world.history.SavedBiomeRuntime; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; import org.junit.Test; import java.awt.Color; diff --git a/core/src/test/java/art/arcane/iris/engine/IrisEngineStudioEntryHydrologyTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/IrisEngineStudioEntryHydrologyTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/IrisEngineStudioEntryHydrologyTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/IrisEngineStudioEntryHydrologyTest.java index ba8b8f7cf..8dac36346 100644 --- a/core/src/test/java/art/arcane/iris/engine/IrisEngineStudioEntryHydrologyTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/IrisEngineStudioEntryHydrologyTest.java @@ -1,17 +1,14 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.framework.GenerationSessionLease; -import art.arcane.iris.engine.framework.GenerationSessionManager; -import art.arcane.iris.engine.framework.GenerationSessionException; -import art.arcane.iris.engine.hydrology.HydrologyPlanner; -import art.arcane.iris.engine.hydrology.HydrologyPlannerSettings; -import art.arcane.iris.engine.hydrology.HydrologyTile; -import art.arcane.iris.engine.hydrology.HydrologyTileCache; -import art.arcane.iris.engine.hydrology.HydrologyTileKey; -import art.arcane.iris.engine.hydrology.runtime.IrisHydrologyRuntime; +import art.arcane.iris.generation.hydrology.HydrologyPlanner; +import art.arcane.iris.generation.hydrology.HydrologyPlannerSettings; +import art.arcane.iris.generation.hydrology.HydrologyTile; +import art.arcane.iris.generation.hydrology.HydrologyTileCache; +import art.arcane.iris.generation.hydrology.HydrologyTileKey; +import art.arcane.iris.generation.hydrology.runtime.IrisHydrologyRuntime; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.scheduling.J; -import art.arcane.iris.util.project.context.IrisContext; +import art.arcane.iris.world.task.J; +import art.arcane.iris.generation.context.IrisContext; import org.junit.Test; import org.mockito.MockedStatic; diff --git a/core/src/test/java/art/arcane/iris/engine/IrisEngineWorldSaveTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/IrisEngineWorldSaveTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/IrisEngineWorldSaveTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/IrisEngineWorldSaveTest.java index 895763952..b824cfdec 100644 --- a/core/src/test/java/art/arcane/iris/engine/IrisEngineWorldSaveTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/IrisEngineWorldSaveTest.java @@ -1,12 +1,9 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.framework.EngineLifecycleTasks; -import art.arcane.iris.engine.framework.EngineWorldManager; -import art.arcane.iris.engine.framework.GenerationSessionManager; -import art.arcane.iris.engine.framework.NativeStructureOwnershipStore; -import art.arcane.iris.engine.mantle.EngineMantle; +import art.arcane.iris.structure.nativegen.NativeStructureOwnershipStore; +import art.arcane.iris.generation.mantle.EngineMantle; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import org.junit.Test; import org.mockito.MockedStatic; diff --git a/core/src/test/java/art/arcane/iris/engine/IrisWorldManagerMarkerTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/IrisWorldManagerMarkerTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/IrisWorldManagerMarkerTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/IrisWorldManagerMarkerTest.java index 1172c14db..427dbacaa 100644 --- a/core/src/test/java/art/arcane/iris/engine/IrisWorldManagerMarkerTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/IrisWorldManagerMarkerTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; import org.junit.Test; import org.bukkit.World; diff --git a/core/src/test/java/art/arcane/iris/engine/IrisWorldManagerNativePoiTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/IrisWorldManagerNativePoiTest.java similarity index 92% rename from core/src/test/java/art/arcane/iris/engine/IrisWorldManagerNativePoiTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/IrisWorldManagerNativePoiTest.java index efe614c2e..231bd76b3 100644 --- a/core/src/test/java/art/arcane/iris/engine/IrisWorldManagerNativePoiTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/IrisWorldManagerNativePoiTest.java @@ -1,8 +1,7 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.core.nms.INMSBinding; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.platform.bukkit.nms.INMSBinding; import org.bukkit.Chunk; import org.junit.Test; import org.mockito.MockedStatic; diff --git a/core/src/test/java/art/arcane/iris/engine/IrisWorldManagerShutdownTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/IrisWorldManagerShutdownTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/IrisWorldManagerShutdownTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/IrisWorldManagerShutdownTest.java index fe7854ea3..da26cd54f 100644 --- a/core/src/test/java/art/arcane/iris/engine/IrisWorldManagerShutdownTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/IrisWorldManagerShutdownTest.java @@ -1,8 +1,6 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineTarget; -import art.arcane.iris.engine.object.IrisWorld; +import art.arcane.iris.world.IrisWorld; import art.arcane.volmlib.util.scheduling.Looper; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/NativeStructureBootstrapBarrierTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/NativeStructureBootstrapBarrierTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/NativeStructureBootstrapBarrierTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/NativeStructureBootstrapBarrierTest.java index c9399cbaf..3841e79af 100644 --- a/core/src/test/java/art/arcane/iris/engine/NativeStructureBootstrapBarrierTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/NativeStructureBootstrapBarrierTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/service/PreservationSVCTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/PreservationSVCTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/core/service/PreservationSVCTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/PreservationSVCTest.java index 5fcfdf25a..2fcdfe554 100644 --- a/core/src/test/java/art/arcane/iris/core/service/PreservationSVCTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/PreservationSVCTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.pack.loading.IrisData; import org.junit.Test; import org.mockito.MockedStatic; diff --git a/core/src/test/java/art/arcane/iris/engine/ResolvedTerrainProviderTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/ResolvedTerrainProviderTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/ResolvedTerrainProviderTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/ResolvedTerrainProviderTest.java index 2254fe035..9a3bd66bb 100644 --- a/core/src/test/java/art/arcane/iris/engine/ResolvedTerrainProviderTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/ResolvedTerrainProviderTest.java @@ -1,27 +1,24 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.framework.EngineMode; -import art.arcane.iris.engine.framework.EnginePlatformHooks; -import art.arcane.iris.engine.framework.EngineStage; -import art.arcane.iris.engine.history.GenerationHistoryRuntimeRouter; -import art.arcane.iris.engine.history.FloatingBiomeOverlay; -import art.arcane.iris.engine.history.BoundaryColumnGeometry; -import art.arcane.iris.engine.history.TerrainBoundarySignatureStore; -import art.arcane.iris.engine.history.TransitionGenerationPlan; -import art.arcane.iris.engine.history.SavedTerrainChunk; -import art.arcane.iris.engine.history.TerrainBoundarySignature; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.world.history.GenerationHistoryRuntimeRouter; +import art.arcane.iris.world.history.FloatingBiomeOverlay; +import art.arcane.iris.world.history.BoundaryColumnGeometry; +import art.arcane.iris.world.history.TerrainBoundarySignatureStore; +import art.arcane.iris.world.history.TransitionGenerationPlan; +import art.arcane.iris.world.history.SavedTerrainChunk; +import art.arcane.iris.world.history.TerrainBoundarySignature; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisRegion; import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformRegistries; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.testsupport.PlatformLeakGuard; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.project.context.IrisContext; -import art.arcane.iris.util.project.hunk.Hunk; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.iris.generation.context.IrisContext; +import art.arcane.volmlib.util.hunk.Hunk; +import art.arcane.volmlib.util.stream.ProceduralStream; import art.arcane.volmlib.util.collection.KList; import org.junit.ClassRule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/SharedCornerBoundsTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/SharedCornerBoundsTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/SharedCornerBoundsTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/SharedCornerBoundsTest.java index cd8ae2ad2..1309a133c 100644 --- a/core/src/test/java/art/arcane/iris/engine/SharedCornerBoundsTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/SharedCornerBoundsTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/StudioGenerationUpdateTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/StudioGenerationUpdateTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/StudioGenerationUpdateTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/StudioGenerationUpdateTest.java index 308f54c52..0c8e09442 100644 --- a/core/src/test/java/art/arcane/iris/engine/StudioGenerationUpdateTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/StudioGenerationUpdateTest.java @@ -1,9 +1,9 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.history.GenerationEpoch; -import art.arcane.iris.engine.history.GenerationHistory; -import art.arcane.iris.engine.history.GenerationHistoryPaths; -import art.arcane.iris.engine.history.GenerationPackFingerprint; +import art.arcane.iris.world.history.GenerationEpoch; +import art.arcane.iris.world.history.GenerationHistory; +import art.arcane.iris.world.history.GenerationHistoryPaths; +import art.arcane.iris.world.history.GenerationPackFingerprint; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; diff --git a/core/src/test/java/art/arcane/iris/engine/UpperDimensionImageMapRuntimeTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/UpperDimensionImageMapRuntimeTest.java similarity index 92% rename from core/src/test/java/art/arcane/iris/engine/UpperDimensionImageMapRuntimeTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/UpperDimensionImageMapRuntimeTest.java index cd8cd6536..83fa9708c 100644 --- a/core/src/test/java/art/arcane/iris/engine/UpperDimensionImageMapRuntimeTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/UpperDimensionImageMapRuntimeTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.image.IrisImageMapRuntime; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.generation.image.IrisImageMapRuntime; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisRegion; import art.arcane.iris.spi.PlatformBlockState; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/UpperDimensionTransitionTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/UpperDimensionTransitionTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/UpperDimensionTransitionTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/UpperDimensionTransitionTest.java index 2eedf9e8a..80e836bb9 100644 --- a/core/src/test/java/art/arcane/iris/engine/UpperDimensionTransitionTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/UpperDimensionTransitionTest.java @@ -1,11 +1,10 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.history.TransitionGenerationPlan; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.util.project.stream.ProceduralStream; -import art.arcane.iris.engine.terrain.Terrain3DColumn; -import art.arcane.iris.engine.terrain.Terrain3DColumnFixtures; +import art.arcane.iris.world.history.TransitionGenerationPlan; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.volmlib.util.stream.ProceduralStream; +import art.arcane.iris.generation.terrain.Terrain3DColumn; +import art.arcane.iris.generation.terrain.Terrain3DColumnFixtures; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/WorldBlockDropRouterTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/WorldBlockDropRouterTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/WorldBlockDropRouterTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/WorldBlockDropRouterTest.java index 655189e4f..7d4666cd3 100644 --- a/core/src/test/java/art/arcane/iris/engine/WorldBlockDropRouterTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/WorldBlockDropRouterTest.java @@ -1,17 +1,15 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineTarget; -import art.arcane.iris.engine.history.SavedBiomeUnavailableException; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBlockDrops; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisWorld; -import art.arcane.iris.engine.platform.EngineBukkitOps; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.world.history.SavedBiomeUnavailableException; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.world.loot.IrisBlockDrops; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.world.IrisWorld; +import art.arcane.iris.platform.generation.EngineBukkitOps; import art.arcane.iris.platform.bukkit.BukkitWorldBinding; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.collection.KList; import org.bukkit.Location; import org.bukkit.World; diff --git a/core/src/test/java/art/arcane/iris/engine/WorldChunkMaintenanceRoutingTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/WorldChunkMaintenanceRoutingTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/WorldChunkMaintenanceRoutingTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/WorldChunkMaintenanceRoutingTest.java index 5882becd5..96e2ee1a2 100644 --- a/core/src/test/java/art/arcane/iris/engine/WorldChunkMaintenanceRoutingTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/WorldChunkMaintenanceRoutingTest.java @@ -1,14 +1,14 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.engine.history.GenerationHistoryRuntimeRouter; -import art.arcane.iris.engine.history.GenerationHistoryRuntimeRouter.SavedChunkMantle; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.platform.EngineBukkitOps; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.world.history.GenerationHistoryRuntimeRouter; +import art.arcane.iris.world.history.GenerationHistoryRuntimeRouter.SavedChunkMantle; +import art.arcane.iris.generation.mantle.EngineMantle; +import art.arcane.iris.platform.generation.EngineBukkitOps; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.testsupport.Await; import art.arcane.iris.testsupport.PlatformBinding; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.mantle.flag.MantleFlag; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; diff --git a/core/src/test/java/art/arcane/iris/engine/WorldChunkMaintenanceSavedBiomeTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/WorldChunkMaintenanceSavedBiomeTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/engine/WorldChunkMaintenanceSavedBiomeTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/WorldChunkMaintenanceSavedBiomeTest.java index 5dc5ac6b0..d11565606 100644 --- a/core/src/test/java/art/arcane/iris/engine/WorldChunkMaintenanceSavedBiomeTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/WorldChunkMaintenanceSavedBiomeTest.java @@ -1,9 +1,8 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.history.SavedBiomeUnavailableException; -import art.arcane.iris.engine.platform.EngineBukkitOps; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.world.history.SavedBiomeUnavailableException; +import art.arcane.iris.platform.generation.EngineBukkitOps; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.matter.Matter; import org.bukkit.Chunk; diff --git a/core/src/test/java/art/arcane/iris/engine/WorldEntitySpawnerBiomeTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/WorldEntitySpawnerBiomeTest.java similarity index 88% rename from core/src/test/java/art/arcane/iris/engine/WorldEntitySpawnerBiomeTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/WorldEntitySpawnerBiomeTest.java index 2267cf095..f3c3a090a 100644 --- a/core/src/test/java/art/arcane/iris/engine/WorldEntitySpawnerBiomeTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/WorldEntitySpawnerBiomeTest.java @@ -1,17 +1,15 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.MarkerSpawnScanner.PreparedMarkerSpawn; -import art.arcane.iris.engine.framework.BiomeEnvironment; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.history.SavedBiomeUnavailableException; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisEntitySpawn; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisSpawner; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.MarkerSpawnScanner.PreparedMarkerSpawn; +import art.arcane.iris.world.history.SavedBiomeUnavailableException; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.world.entity.IrisEntitySpawn; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.world.entity.IrisSpawner; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KSet; import art.arcane.volmlib.util.math.RNG; diff --git a/core/src/test/java/art/arcane/iris/engine/WorldEntitySpawnerLifecycleTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/WorldEntitySpawnerLifecycleTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/WorldEntitySpawnerLifecycleTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/WorldEntitySpawnerLifecycleTest.java index 2df8b2ef9..451881317 100644 --- a/core/src/test/java/art/arcane/iris/engine/WorldEntitySpawnerLifecycleTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/WorldEntitySpawnerLifecycleTest.java @@ -1,23 +1,17 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.gui.PregeneratorJob; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineAssignedWorldManager; -import art.arcane.iris.engine.framework.EngineTarget; -import art.arcane.iris.engine.framework.GenerationSessionException; -import art.arcane.iris.engine.framework.GenerationSessionLease; -import art.arcane.iris.engine.framework.GenerationSessionManager; -import art.arcane.iris.engine.object.IrisWorld; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.studio.view.PregeneratorJob; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.world.IrisWorld; import art.arcane.iris.platform.bukkit.BukkitWorldBinding; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.testsupport.Await; import art.arcane.iris.testsupport.PlatformLeakGuard; -import art.arcane.iris.util.common.scheduling.J; -import art.arcane.iris.util.project.context.IrisContext; +import art.arcane.iris.world.task.J; +import art.arcane.iris.generation.context.IrisContext; import art.arcane.volmlib.util.scheduling.ChronoLatch; import org.bukkit.World; import org.bukkit.entity.LivingEntity; diff --git a/core/src/test/java/art/arcane/iris/engine/WorldTeleportWarmupTest.java b/core/src/test/java/art/arcane/iris/generation/runtime/WorldTeleportWarmupTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/WorldTeleportWarmupTest.java rename to core/src/test/java/art/arcane/iris/generation/runtime/WorldTeleportWarmupTest.java index 58b388f2f..8f4f1ee9a 100644 --- a/core/src/test/java/art/arcane/iris/engine/WorldTeleportWarmupTest.java +++ b/core/src/test/java/art/arcane/iris/generation/runtime/WorldTeleportWarmupTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine; +package art.arcane.iris.generation.runtime; import art.arcane.iris.platform.bukkit.BukkitPlatform; import org.bukkit.Location; diff --git a/core/src/test/java/art/arcane/iris/util/simd/SimdKernelsTest.java b/core/src/test/java/art/arcane/iris/generation/simd/SimdKernelsTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/util/simd/SimdKernelsTest.java rename to core/src/test/java/art/arcane/iris/generation/simd/SimdKernelsTest.java index 9c2a4c474..a8e95033d 100644 --- a/core/src/test/java/art/arcane/iris/util/simd/SimdKernelsTest.java +++ b/core/src/test/java/art/arcane/iris/generation/simd/SimdKernelsTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.simd; +package art.arcane.iris.generation.simd; import org.junit.Assume; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/util/simd/SimdSupportStatusTest.java b/core/src/test/java/art/arcane/iris/generation/simd/SimdSupportStatusTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/util/simd/SimdSupportStatusTest.java rename to core/src/test/java/art/arcane/iris/generation/simd/SimdSupportStatusTest.java index a6c3ff6d6..130e07ab9 100644 --- a/core/src/test/java/art/arcane/iris/util/simd/SimdSupportStatusTest.java +++ b/core/src/test/java/art/arcane/iris/generation/simd/SimdSupportStatusTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.util.simd; +package art.arcane.iris.generation.simd; -import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.configuration.IrisSettings; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.LogLevel; diff --git a/core/src/test/java/art/arcane/iris/engine/actuator/IrisBiomeActuatorCoordinateTest.java b/core/src/test/java/art/arcane/iris/generation/stage/IrisBiomeActuatorCoordinateTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/actuator/IrisBiomeActuatorCoordinateTest.java rename to core/src/test/java/art/arcane/iris/generation/stage/IrisBiomeActuatorCoordinateTest.java index 6d97053ec..e4dfc6c1e 100644 --- a/core/src/test/java/art/arcane/iris/engine/actuator/IrisBiomeActuatorCoordinateTest.java +++ b/core/src/test/java/art/arcane/iris/generation/stage/IrisBiomeActuatorCoordinateTest.java @@ -1,12 +1,12 @@ -package art.arcane.iris.engine.actuator; +package art.arcane.iris.generation.stage; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineMetrics; -import art.arcane.iris.engine.framework.SeedManager; -import art.arcane.iris.engine.history.TransitionGenerationPlan; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineMetrics; +import art.arcane.iris.generation.runtime.SeedManager; +import art.arcane.iris.world.history.TransitionGenerationPlan; +import art.arcane.iris.generation.mantle.EngineMantle; +import art.arcane.iris.generation.biome.IrisBiome; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBlockState; @@ -14,9 +14,9 @@ import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBiomeWriter; import art.arcane.iris.spi.PlatformRegistries; import art.arcane.iris.testsupport.PlatformLeakGuard; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.project.context.ChunkedDataCache; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.iris.generation.context.ChunkedDataCache; +import art.arcane.volmlib.util.hunk.Hunk; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.matter.Matter; diff --git a/core/src/test/java/art/arcane/iris/engine/modifier/IrisCarveModifierBiomeBlendTest.java b/core/src/test/java/art/arcane/iris/generation/stage/IrisCarveModifierBiomeBlendTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/modifier/IrisCarveModifierBiomeBlendTest.java rename to core/src/test/java/art/arcane/iris/generation/stage/IrisCarveModifierBiomeBlendTest.java index daccd5200..41d0d703e 100644 --- a/core/src/test/java/art/arcane/iris/engine/modifier/IrisCarveModifierBiomeBlendTest.java +++ b/core/src/test/java/art/arcane/iris/generation/stage/IrisCarveModifierBiomeBlendTest.java @@ -1,9 +1,9 @@ -package art.arcane.iris.engine.modifier; +package art.arcane.iris.generation.stage; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimensionCarvingResolver; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimensionCarvingResolver; import art.arcane.volmlib.util.math.BlockPosition; import art.arcane.volmlib.util.math.RNG; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; diff --git a/core/src/test/java/art/arcane/iris/engine/modifier/IrisCarveModifierBoundarySupportTest.java b/core/src/test/java/art/arcane/iris/generation/stage/IrisCarveModifierBoundarySupportTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/engine/modifier/IrisCarveModifierBoundarySupportTest.java rename to core/src/test/java/art/arcane/iris/generation/stage/IrisCarveModifierBoundarySupportTest.java index 07519662a..38b929841 100644 --- a/core/src/test/java/art/arcane/iris/engine/modifier/IrisCarveModifierBoundarySupportTest.java +++ b/core/src/test/java/art/arcane/iris/generation/stage/IrisCarveModifierBoundarySupportTest.java @@ -1,16 +1,16 @@ -package art.arcane.iris.engine.modifier; +package art.arcane.iris.generation.stage; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimensionCarvingResolver; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimensionCarvingResolver; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.hunk.Hunk; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.volmlib.util.hunk.Hunk; +import art.arcane.volmlib.util.stream.ProceduralStream; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.matter.Matter; import art.arcane.volmlib.util.matter.MatterCavern; diff --git a/core/src/test/java/art/arcane/iris/engine/modifier/IrisCarveModifierFluidIntentTest.java b/core/src/test/java/art/arcane/iris/generation/stage/IrisCarveModifierFluidIntentTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/modifier/IrisCarveModifierFluidIntentTest.java rename to core/src/test/java/art/arcane/iris/generation/stage/IrisCarveModifierFluidIntentTest.java index 87627a082..02dd4132e 100644 --- a/core/src/test/java/art/arcane/iris/engine/modifier/IrisCarveModifierFluidIntentTest.java +++ b/core/src/test/java/art/arcane/iris/generation/stage/IrisCarveModifierFluidIntentTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.modifier; +package art.arcane.iris.generation.stage; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.volmlib.util.matter.MatterCavern; diff --git a/core/src/test/java/art/arcane/iris/engine/modifier/IrisCarveModifierHydrologyMaterialTest.java b/core/src/test/java/art/arcane/iris/generation/stage/IrisCarveModifierHydrologyMaterialTest.java similarity index 89% rename from core/src/test/java/art/arcane/iris/engine/modifier/IrisCarveModifierHydrologyMaterialTest.java rename to core/src/test/java/art/arcane/iris/generation/stage/IrisCarveModifierHydrologyMaterialTest.java index f7f4cfdba..3c5f1bf07 100644 --- a/core/src/test/java/art/arcane/iris/engine/modifier/IrisCarveModifierHydrologyMaterialTest.java +++ b/core/src/test/java/art/arcane/iris/generation/stage/IrisCarveModifierHydrologyMaterialTest.java @@ -1,10 +1,10 @@ -package art.arcane.iris.engine.modifier; +package art.arcane.iris.generation.stage; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; -import art.arcane.iris.engine.object.IrisMaterialPalette; -import art.arcane.iris.engine.object.IrisRiverMaterialConfig; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; +import art.arcane.iris.generation.hydrology.IrisRiverMaterialConfig; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.volmlib.util.math.RNG; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/modifier/IrisCarveModifierHydrologyTest.java b/core/src/test/java/art/arcane/iris/generation/stage/IrisCarveModifierHydrologyTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/modifier/IrisCarveModifierHydrologyTest.java rename to core/src/test/java/art/arcane/iris/generation/stage/IrisCarveModifierHydrologyTest.java index dadc01802..60a804424 100644 --- a/core/src/test/java/art/arcane/iris/engine/modifier/IrisCarveModifierHydrologyTest.java +++ b/core/src/test/java/art/arcane/iris/generation/stage/IrisCarveModifierHydrologyTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.engine.modifier; +package art.arcane.iris.generation.stage; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.volmlib.util.matter.MatterCavern; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/modifier/IrisCarveModifierInferenceIsolationTest.java b/core/src/test/java/art/arcane/iris/generation/stage/IrisCarveModifierInferenceIsolationTest.java similarity index 86% rename from core/src/test/java/art/arcane/iris/engine/modifier/IrisCarveModifierInferenceIsolationTest.java rename to core/src/test/java/art/arcane/iris/generation/stage/IrisCarveModifierInferenceIsolationTest.java index e145f8da2..afb8e59a8 100644 --- a/core/src/test/java/art/arcane/iris/engine/modifier/IrisCarveModifierInferenceIsolationTest.java +++ b/core/src/test/java/art/arcane/iris/generation/stage/IrisCarveModifierInferenceIsolationTest.java @@ -1,17 +1,17 @@ -package art.arcane.iris.engine.modifier; +package art.arcane.iris.generation.stage; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.InferredType; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisDimensionCarvingResolver; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisWorld; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.terrain.InferredType; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisDimensionCarvingResolver; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.world.IrisWorld; import art.arcane.iris.testsupport.PlatformBinding; -import art.arcane.iris.util.project.hunk.Hunk; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.volmlib.util.hunk.Hunk; +import art.arcane.volmlib.util.stream.ProceduralStream; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.matter.MatterCavern; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; diff --git a/core/src/test/java/art/arcane/iris/engine/modifier/IrisCarveModifierZoneParityTest.java b/core/src/test/java/art/arcane/iris/generation/stage/IrisCarveModifierZoneParityTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/modifier/IrisCarveModifierZoneParityTest.java rename to core/src/test/java/art/arcane/iris/generation/stage/IrisCarveModifierZoneParityTest.java index 21d9a83f8..cb10fce0f 100644 --- a/core/src/test/java/art/arcane/iris/engine/modifier/IrisCarveModifierZoneParityTest.java +++ b/core/src/test/java/art/arcane/iris/generation/stage/IrisCarveModifierZoneParityTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.modifier; +package art.arcane.iris.generation.stage; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/modifier/IrisCarveScratchTest.java b/core/src/test/java/art/arcane/iris/generation/stage/IrisCarveScratchTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/modifier/IrisCarveScratchTest.java rename to core/src/test/java/art/arcane/iris/generation/stage/IrisCarveScratchTest.java index d03e4cea1..b979d3f63 100644 --- a/core/src/test/java/art/arcane/iris/engine/modifier/IrisCarveScratchTest.java +++ b/core/src/test/java/art/arcane/iris/generation/stage/IrisCarveScratchTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.modifier; +package art.arcane.iris.generation.stage; import art.arcane.volmlib.util.matter.MatterCavern; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/actuator/IrisDecorantActuatorRiverTest.java b/core/src/test/java/art/arcane/iris/generation/stage/IrisDecorantActuatorRiverTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/actuator/IrisDecorantActuatorRiverTest.java rename to core/src/test/java/art/arcane/iris/generation/stage/IrisDecorantActuatorRiverTest.java index 7e8042b02..eea6dfc72 100644 --- a/core/src/test/java/art/arcane/iris/engine/actuator/IrisDecorantActuatorRiverTest.java +++ b/core/src/test/java/art/arcane/iris/generation/stage/IrisDecorantActuatorRiverTest.java @@ -1,11 +1,11 @@ -package art.arcane.iris.engine.actuator; +package art.arcane.iris.generation.stage; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.HydrologyColumnSample; -import art.arcane.iris.engine.hydrology.HydrologyFeatureRef; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.HydrologyColumnSample; +import art.arcane.iris.generation.hydrology.HydrologyFeatureRef; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; import org.junit.Test; import java.util.List; diff --git a/core/src/test/java/art/arcane/iris/engine/modifier/IrisDepositModifierContainmentTest.java b/core/src/test/java/art/arcane/iris/generation/stage/IrisDepositModifierContainmentTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/modifier/IrisDepositModifierContainmentTest.java rename to core/src/test/java/art/arcane/iris/generation/stage/IrisDepositModifierContainmentTest.java index 6b0bc4dba..a9b783bea 100644 --- a/core/src/test/java/art/arcane/iris/engine/modifier/IrisDepositModifierContainmentTest.java +++ b/core/src/test/java/art/arcane/iris/generation/stage/IrisDepositModifierContainmentTest.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.modifier; +package art.arcane.iris.generation.stage; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDepositGenerator; -import art.arcane.iris.engine.object.IrisDepositHeightDistribution; -import art.arcane.iris.engine.object.IrisDepositPlacementScope; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.decoration.IrisDepositGenerator; +import art.arcane.iris.generation.decoration.IrisDepositHeightDistribution; +import art.arcane.iris.generation.decoration.IrisDepositPlacementScope; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; import art.arcane.volmlib.util.math.RNG; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/modifier/IrisDepositModifierContextTest.java b/core/src/test/java/art/arcane/iris/generation/stage/IrisDepositModifierContextTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/modifier/IrisDepositModifierContextTest.java rename to core/src/test/java/art/arcane/iris/generation/stage/IrisDepositModifierContextTest.java index 72fcd515d..056b5a624 100644 --- a/core/src/test/java/art/arcane/iris/engine/modifier/IrisDepositModifierContextTest.java +++ b/core/src/test/java/art/arcane/iris/generation/stage/IrisDepositModifierContextTest.java @@ -1,18 +1,18 @@ -package art.arcane.iris.engine.modifier; +package art.arcane.iris.generation.stage; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisDepositGenerator; -import art.arcane.iris.engine.object.IrisDepositHeightDistribution; -import art.arcane.iris.engine.object.IrisDepositPlacementScope; -import art.arcane.iris.engine.object.IrisObject; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.decoration.IrisDepositGenerator; +import art.arcane.iris.generation.decoration.IrisDepositHeightDistribution; +import art.arcane.iris.generation.decoration.IrisDepositPlacementScope; +import art.arcane.iris.structure.object.IrisObject; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.testsupport.PlatformBinding; -import art.arcane.iris.util.common.parallel.BurstExecutor; -import art.arcane.iris.util.common.parallel.MultiBurst; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.project.context.IrisContext; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.iris.generation.concurrent.BurstExecutor; +import art.arcane.iris.generation.concurrent.MultiBurst; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.iris.generation.context.IrisContext; +import art.arcane.volmlib.util.hunk.Hunk; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; diff --git a/core/src/test/java/art/arcane/iris/engine/modifier/IrisDepositModifierOrderingTest.java b/core/src/test/java/art/arcane/iris/generation/stage/IrisDepositModifierOrderingTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/modifier/IrisDepositModifierOrderingTest.java rename to core/src/test/java/art/arcane/iris/generation/stage/IrisDepositModifierOrderingTest.java index 0c43ff57a..1bfbd7ee8 100644 --- a/core/src/test/java/art/arcane/iris/engine/modifier/IrisDepositModifierOrderingTest.java +++ b/core/src/test/java/art/arcane/iris/generation/stage/IrisDepositModifierOrderingTest.java @@ -1,21 +1,23 @@ -package art.arcane.iris.engine.modifier; +package art.arcane.iris.generation.stage; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisDepositGenerator; -import art.arcane.iris.engine.object.IrisDepositHeightDistribution; -import art.arcane.iris.engine.object.IrisDepositPlacementScope; -import art.arcane.iris.engine.object.IrisObject; +import art.arcane.iris.testsupport.KeyedBlockState; + +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.decoration.IrisDepositGenerator; +import art.arcane.iris.generation.decoration.IrisDepositHeightDistribution; +import art.arcane.iris.generation.decoration.IrisDepositPlacementScope; +import art.arcane.iris.structure.object.IrisObject; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformRegistries; import art.arcane.iris.testsupport.PlatformLeakGuard; -import art.arcane.iris.util.common.data.B; -import art.arcane.iris.util.common.math.IrisBlockVector; -import art.arcane.iris.util.common.parallel.BurstExecutor; -import art.arcane.iris.util.common.parallel.MultiBurst; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.iris.generation.block.B; +import art.arcane.iris.generation.geometry.IrisBlockVector; +import art.arcane.iris.generation.concurrent.BurstExecutor; +import art.arcane.iris.generation.concurrent.MultiBurst; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.volmlib.util.hunk.Hunk; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.mantle.runtime.Mantle; diff --git a/core/src/test/java/art/arcane/iris/engine/modifier/IrisDepositModifierParityTest.java b/core/src/test/java/art/arcane/iris/generation/stage/IrisDepositModifierParityTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/modifier/IrisDepositModifierParityTest.java rename to core/src/test/java/art/arcane/iris/generation/stage/IrisDepositModifierParityTest.java index 6a6a5c31f..fce67184a 100644 --- a/core/src/test/java/art/arcane/iris/engine/modifier/IrisDepositModifierParityTest.java +++ b/core/src/test/java/art/arcane/iris/generation/stage/IrisDepositModifierParityTest.java @@ -1,23 +1,25 @@ -package art.arcane.iris.engine.modifier; +package art.arcane.iris.generation.stage; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDepositGenerator; -import art.arcane.iris.engine.object.IrisDepositHeightDistribution; -import art.arcane.iris.engine.object.IrisDepositShape; -import art.arcane.iris.engine.object.IrisDepositVariant; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.testsupport.KeyedBlockState; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.decoration.IrisDepositGenerator; +import art.arcane.iris.generation.decoration.IrisDepositHeightDistribution; +import art.arcane.iris.generation.decoration.IrisDepositShape; +import art.arcane.iris.generation.decoration.IrisDepositVariant; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformRegistries; import art.arcane.iris.testsupport.PlatformLeakGuard; -import art.arcane.iris.util.common.data.B; -import art.arcane.iris.util.common.parallel.MultiBurst; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.iris.generation.block.B; +import art.arcane.iris.generation.concurrent.MultiBurst; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.volmlib.util.hunk.Hunk; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; diff --git a/core/src/test/java/art/arcane/iris/engine/modifier/IrisDepositModifierProbabilityTest.java b/core/src/test/java/art/arcane/iris/generation/stage/IrisDepositModifierProbabilityTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/modifier/IrisDepositModifierProbabilityTest.java rename to core/src/test/java/art/arcane/iris/generation/stage/IrisDepositModifierProbabilityTest.java index 2daf21f0c..c45f8ed75 100644 --- a/core/src/test/java/art/arcane/iris/engine/modifier/IrisDepositModifierProbabilityTest.java +++ b/core/src/test/java/art/arcane/iris/generation/stage/IrisDepositModifierProbabilityTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.modifier; +package art.arcane.iris.generation.stage; import art.arcane.volmlib.util.math.RNG; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/actuator/IrisDimensionStackActuatorMetadataTest.java b/core/src/test/java/art/arcane/iris/generation/stage/IrisDimensionStackActuatorMetadataTest.java similarity index 92% rename from core/src/test/java/art/arcane/iris/engine/actuator/IrisDimensionStackActuatorMetadataTest.java rename to core/src/test/java/art/arcane/iris/generation/stage/IrisDimensionStackActuatorMetadataTest.java index e770fabf0..08477df1d 100644 --- a/core/src/test/java/art/arcane/iris/engine/actuator/IrisDimensionStackActuatorMetadataTest.java +++ b/core/src/test/java/art/arcane/iris/generation/stage/IrisDimensionStackActuatorMetadataTest.java @@ -1,15 +1,15 @@ -package art.arcane.iris.engine.actuator; +package art.arcane.iris.generation.stage; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformRegistries; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.mantle.TerrainMatterView; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.mantle.TerrainMatterView; import art.arcane.iris.testsupport.PlatformLeakGuard; -import art.arcane.iris.util.project.matter.IrisMatterSupport; -import art.arcane.iris.util.project.matter.slices.PreObjectMatterTest; +import art.arcane.iris.world.storage.matter.IrisMatterSupport; +import art.arcane.iris.world.storage.matter.PreObjectMatterTest; import art.arcane.volmlib.util.matter.IrisMatter; import art.arcane.volmlib.util.matter.MatterCavern; import java.io.ByteArrayInputStream; diff --git a/core/src/test/java/art/arcane/iris/engine/modifier/IrisFloatingChildBiomeModifierStackTest.java b/core/src/test/java/art/arcane/iris/generation/stage/IrisFloatingChildBiomeModifierStackTest.java similarity index 88% rename from core/src/test/java/art/arcane/iris/engine/modifier/IrisFloatingChildBiomeModifierStackTest.java rename to core/src/test/java/art/arcane/iris/generation/stage/IrisFloatingChildBiomeModifierStackTest.java index 2a60fa76f..6b82a0788 100644 --- a/core/src/test/java/art/arcane/iris/engine/modifier/IrisFloatingChildBiomeModifierStackTest.java +++ b/core/src/test/java/art/arcane/iris/generation/stage/IrisFloatingChildBiomeModifierStackTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.modifier; +package art.arcane.iris.generation.stage; -import art.arcane.iris.engine.DimensionStackLayout; +import art.arcane.iris.generation.runtime.DimensionStackLayout; import org.junit.Test; import static org.junit.Assert.assertFalse; diff --git a/core/src/test/java/art/arcane/iris/engine/modifier/IrisNaturalCaveScanTest.java b/core/src/test/java/art/arcane/iris/generation/stage/IrisNaturalCaveScanTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/modifier/IrisNaturalCaveScanTest.java rename to core/src/test/java/art/arcane/iris/generation/stage/IrisNaturalCaveScanTest.java index d3a493ec1..7b9d01c91 100644 --- a/core/src/test/java/art/arcane/iris/engine/modifier/IrisNaturalCaveScanTest.java +++ b/core/src/test/java/art/arcane/iris/generation/stage/IrisNaturalCaveScanTest.java @@ -1,18 +1,17 @@ -package art.arcane.iris.engine.modifier; +package art.arcane.iris.generation.stage; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.actuator.IrisDecorantActuator; -import art.arcane.iris.engine.decorator.IrisCeilingDecorator; -import art.arcane.iris.engine.decorator.IrisSurfaceDecorator; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.SeedManager; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDecorationPart; -import art.arcane.iris.engine.object.IrisDecorator; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.decoration.IrisCeilingDecorator; +import art.arcane.iris.generation.decoration.IrisSurfaceDecorator; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.SeedManager; +import art.arcane.iris.generation.mantle.EngineMantle; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.decoration.IrisDecorationPart; +import art.arcane.iris.generation.decoration.IrisDecorator; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.hunk.Hunk; -import art.arcane.iris.util.common.data.B; +import art.arcane.volmlib.util.hunk.Hunk; +import art.arcane.iris.generation.block.B; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.matter.Matter; diff --git a/core/src/test/java/art/arcane/iris/engine/modifier/IrisPerfectionModifierSpeleothemTest.java b/core/src/test/java/art/arcane/iris/generation/stage/IrisPerfectionModifierSpeleothemTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/modifier/IrisPerfectionModifierSpeleothemTest.java rename to core/src/test/java/art/arcane/iris/generation/stage/IrisPerfectionModifierSpeleothemTest.java index d89c527c4..4d68f8a65 100644 --- a/core/src/test/java/art/arcane/iris/engine/modifier/IrisPerfectionModifierSpeleothemTest.java +++ b/core/src/test/java/art/arcane/iris/generation/stage/IrisPerfectionModifierSpeleothemTest.java @@ -1,9 +1,9 @@ -package art.arcane.iris.engine.modifier; +package art.arcane.iris.generation.stage; -import art.arcane.iris.engine.decorator.IrisSpeleothems; -import art.arcane.iris.engine.object.IrisProceduralBlocks; +import art.arcane.iris.generation.decoration.IrisSpeleothems; +import art.arcane.iris.generation.decoration.IrisProceduralBlocks; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; import org.bukkit.block.BlockSupport; import org.bukkit.block.data.BlockData; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/modifier/IrisPostModifierHydrologyTest.java b/core/src/test/java/art/arcane/iris/generation/stage/IrisPostModifierHydrologyTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/modifier/IrisPostModifierHydrologyTest.java rename to core/src/test/java/art/arcane/iris/generation/stage/IrisPostModifierHydrologyTest.java index e34a36df9..c41a878d8 100644 --- a/core/src/test/java/art/arcane/iris/engine/modifier/IrisPostModifierHydrologyTest.java +++ b/core/src/test/java/art/arcane/iris/generation/stage/IrisPostModifierHydrologyTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.modifier; +package art.arcane.iris.generation.stage; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/actuator/IrisTerrainNormalActuatorHydrologyTest.java b/core/src/test/java/art/arcane/iris/generation/stage/IrisTerrainNormalActuatorHydrologyTest.java similarity index 92% rename from core/src/test/java/art/arcane/iris/engine/actuator/IrisTerrainNormalActuatorHydrologyTest.java rename to core/src/test/java/art/arcane/iris/generation/stage/IrisTerrainNormalActuatorHydrologyTest.java index 065718fdf..a64538719 100644 --- a/core/src/test/java/art/arcane/iris/engine/actuator/IrisTerrainNormalActuatorHydrologyTest.java +++ b/core/src/test/java/art/arcane/iris/generation/stage/IrisTerrainNormalActuatorHydrologyTest.java @@ -1,29 +1,29 @@ -package art.arcane.iris.engine.actuator; +package art.arcane.iris.generation.stage; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.SeedManager; -import art.arcane.iris.engine.image.IrisImageMapRuntime; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.HydrologyColumnSample; -import art.arcane.iris.engine.hydrology.HydrologyFeatureRef; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.engine.object.IrisDecorationStep; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisHydrology; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisMaterialPalette; -import art.arcane.iris.engine.object.IrisRiverMaterialConfig; -import art.arcane.iris.engine.terrain.Terrain3DColumn; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.SeedManager; +import art.arcane.iris.generation.image.IrisImageMapRuntime; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.HydrologyColumnSample; +import art.arcane.iris.generation.hydrology.HydrologyFeatureRef; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.decoration.IrisDecorationStep; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.hydrology.IrisHydrology; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; +import art.arcane.iris.generation.hydrology.IrisRiverMaterialConfig; +import art.arcane.iris.generation.terrain.Terrain3DColumn; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.testsupport.PlatformBinding; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.project.context.ChunkedDataCache; -import art.arcane.iris.util.project.hunk.Hunk; -import art.arcane.iris.util.project.stream.ProceduralStream; -import art.arcane.iris.util.project.stream.interpolation.Interpolated; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.iris.generation.context.ChunkedDataCache; +import art.arcane.volmlib.util.hunk.Hunk; +import art.arcane.volmlib.util.stream.ProceduralStream; +import art.arcane.volmlib.util.stream.interpolation.Interpolated; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; import org.junit.Rule; diff --git a/core/src/test/java/art/arcane/iris/engine/actuator/IrisTransitionGeometryActuatorTest.java b/core/src/test/java/art/arcane/iris/generation/stage/IrisTransitionGeometryActuatorTest.java similarity index 92% rename from core/src/test/java/art/arcane/iris/engine/actuator/IrisTransitionGeometryActuatorTest.java rename to core/src/test/java/art/arcane/iris/generation/stage/IrisTransitionGeometryActuatorTest.java index 9d588d511..6be5bc8a4 100644 --- a/core/src/test/java/art/arcane/iris/engine/actuator/IrisTransitionGeometryActuatorTest.java +++ b/core/src/test/java/art/arcane/iris/generation/stage/IrisTransitionGeometryActuatorTest.java @@ -1,20 +1,20 @@ -package art.arcane.iris.engine.actuator; +package art.arcane.iris.generation.stage; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.history.BoundaryColumnGeometry; -import art.arcane.iris.engine.history.BoundaryGeometryInfluence; -import art.arcane.iris.engine.history.NativeTerrainReceipt; -import art.arcane.iris.engine.history.SavedTerrainChunk; -import art.arcane.iris.engine.history.TransitionGenerationPlan; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.world.history.BoundaryColumnGeometry; +import art.arcane.iris.world.history.BoundaryGeometryInfluence; +import art.arcane.iris.world.history.NativeTerrainReceipt; +import art.arcane.iris.world.history.SavedTerrainChunk; +import art.arcane.iris.world.history.TransitionGenerationPlan; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformRegistries; import art.arcane.iris.testsupport.PlatformLeakGuard; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.volmlib.util.hunk.Hunk; import org.junit.After; import org.junit.Before; import org.junit.ClassRule; diff --git a/core/src/test/java/art/arcane/iris/util/project/stream/utility/ContextInjectingStreamTest.java b/core/src/test/java/art/arcane/iris/generation/stream/ContextInjectingStreamTest.java similarity index 90% rename from core/src/test/java/art/arcane/iris/util/project/stream/utility/ContextInjectingStreamTest.java rename to core/src/test/java/art/arcane/iris/generation/stream/ContextInjectingStreamTest.java index fbe31ea37..c64a74fe2 100644 --- a/core/src/test/java/art/arcane/iris/util/project/stream/utility/ContextInjectingStreamTest.java +++ b/core/src/test/java/art/arcane/iris/generation/stream/ContextInjectingStreamTest.java @@ -1,9 +1,9 @@ -package art.arcane.iris.util.project.stream.utility; +package art.arcane.iris.generation.stream; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.project.context.IrisContext; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.iris.generation.context.IrisContext; +import art.arcane.volmlib.util.stream.ProceduralStream; import org.junit.Test; import static org.junit.Assert.assertEquals; diff --git a/core/src/test/java/art/arcane/iris/engine/terrain/HydrologyBankTerrainRuntimeTest.java b/core/src/test/java/art/arcane/iris/generation/terrain/HydrologyBankTerrainRuntimeTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/terrain/HydrologyBankTerrainRuntimeTest.java rename to core/src/test/java/art/arcane/iris/generation/terrain/HydrologyBankTerrainRuntimeTest.java index f1e7212e2..8115defc4 100644 --- a/core/src/test/java/art/arcane/iris/engine/terrain/HydrologyBankTerrainRuntimeTest.java +++ b/core/src/test/java/art/arcane/iris/generation/terrain/HydrologyBankTerrainRuntimeTest.java @@ -1,15 +1,15 @@ -package art.arcane.iris.engine.terrain; +package art.arcane.iris.generation.terrain; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.HydrologyColumnSample; -import art.arcane.iris.engine.hydrology.HydrologyColumnSnapshot; -import art.arcane.iris.engine.hydrology.HydrologyFeatureRef; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.engine.object.IrisRiverBank3DConfig; -import art.arcane.iris.engine.object.IrisGeneratorStyle; -import art.arcane.iris.engine.object.NoiseStyle; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.HydrologyColumnSample; +import art.arcane.iris.generation.hydrology.HydrologyColumnSnapshot; +import art.arcane.iris.generation.hydrology.HydrologyFeatureRef; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.hydrology.IrisRiverBank3DConfig; +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.generation.noise.NoiseStyle; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.volmlib.util.noise.CNG; import art.arcane.volmlib.util.math.RNG; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisDimensionBiomeTagTest.java b/core/src/test/java/art/arcane/iris/generation/terrain/IrisDimensionBiomeTagTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/object/IrisDimensionBiomeTagTest.java rename to core/src/test/java/art/arcane/iris/generation/terrain/IrisDimensionBiomeTagTest.java index a4e16ea7b..5975271d2 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisDimensionBiomeTagTest.java +++ b/core/src/test/java/art/arcane/iris/generation/terrain/IrisDimensionBiomeTagTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.terrain; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisDimensionCarvingResolverParityTest.java b/core/src/test/java/art/arcane/iris/generation/terrain/IrisDimensionCarvingResolverParityTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/object/IrisDimensionCarvingResolverParityTest.java rename to core/src/test/java/art/arcane/iris/generation/terrain/IrisDimensionCarvingResolverParityTest.java index 9701c0ae5..c2c3a0d29 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisDimensionCarvingResolverParityTest.java +++ b/core/src/test/java/art/arcane/iris/generation/terrain/IrisDimensionCarvingResolverParityTest.java @@ -1,12 +1,18 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.terrain; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.SeedManager; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.pack.value.IrisRange; +import art.arcane.iris.world.IrisWorld; + +import art.arcane.volmlib.util.math.Rarity; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.SeedManager; import art.arcane.iris.testsupport.Await; import art.arcane.iris.testsupport.BukkitTestServer; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.volmlib.util.noise.CNG; import art.arcane.volmlib.util.collection.KList; import org.junit.BeforeClass; import org.junit.Test; @@ -681,7 +687,7 @@ public class IrisDimensionCarvingResolverParityTest { ) { } - private static final class LegacyCarvingChoice implements IRare { + private static final class LegacyCarvingChoice implements Rarity { private final IrisDimensionCarvingEntry entry; private final int rarity; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisDimensionCompatRegionTest.java b/core/src/test/java/art/arcane/iris/generation/terrain/IrisDimensionCompatRegionTest.java similarity index 81% rename from core/src/test/java/art/arcane/iris/engine/object/IrisDimensionCompatRegionTest.java rename to core/src/test/java/art/arcane/iris/generation/terrain/IrisDimensionCompatRegionTest.java index f9db3b7e1..ffb045b3e 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisDimensionCompatRegionTest.java +++ b/core/src/test/java/art/arcane/iris/generation/terrain/IrisDimensionCompatRegionTest.java @@ -1,21 +1,23 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.terrain; -import art.arcane.iris.core.compat.CompatAction; -import art.arcane.iris.core.compat.CompatFinding; -import art.arcane.iris.core.compat.CompatStatus; -import art.arcane.iris.core.compat.ContentGate; -import art.arcane.iris.core.compat.PackCompatReport; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; +import art.arcane.iris.testsupport.PackCompatFixtures; + +import art.arcane.iris.pack.validation.CompatAction; +import art.arcane.iris.pack.validation.CompatFinding; +import art.arcane.iris.pack.validation.CompatStatus; +import art.arcane.iris.pack.validation.ContentGate; +import art.arcane.iris.pack.validation.PackCompatReport; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; import art.arcane.volmlib.util.collection.KList; import org.junit.Test; import java.util.Map; -import static art.arcane.iris.engine.object.PackCompatFixtures.MISSING_BLOCK; -import static art.arcane.iris.engine.object.PackCompatFixtures.excludeBlock; -import static art.arcane.iris.engine.object.PackCompatFixtures.find; -import static art.arcane.iris.engine.object.PackCompatFixtures.region; +import static art.arcane.iris.testsupport.PackCompatFixtures.MISSING_BLOCK; +import static art.arcane.iris.testsupport.PackCompatFixtures.excludeBlock; +import static art.arcane.iris.testsupport.PackCompatFixtures.find; +import static art.arcane.iris.testsupport.PackCompatFixtures.region; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisDimensionFocusRegionTest.java b/core/src/test/java/art/arcane/iris/generation/terrain/IrisDimensionFocusRegionTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/object/IrisDimensionFocusRegionTest.java rename to core/src/test/java/art/arcane/iris/generation/terrain/IrisDimensionFocusRegionTest.java index e867b282f..5e6cac444 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisDimensionFocusRegionTest.java +++ b/core/src/test/java/art/arcane/iris/generation/terrain/IrisDimensionFocusRegionTest.java @@ -1,7 +1,10 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.terrain; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.hydrology.IrisRiverPolicy; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; import art.arcane.volmlib.util.collection.KList; import org.junit.Before; import org.junit.Rule; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisDimensionReachableBiomesTest.java b/core/src/test/java/art/arcane/iris/generation/terrain/IrisDimensionReachableBiomesTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/object/IrisDimensionReachableBiomesTest.java rename to core/src/test/java/art/arcane/iris/generation/terrain/IrisDimensionReachableBiomesTest.java index 243afedf0..a2bc7bae9 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisDimensionReachableBiomesTest.java +++ b/core/src/test/java/art/arcane/iris/generation/terrain/IrisDimensionReachableBiomesTest.java @@ -1,7 +1,13 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.terrain; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisFloatingChildBiomes; +import art.arcane.iris.generation.hydrology.IrisDeepFluidConfig; +import art.arcane.iris.generation.hydrology.IrisRiverPolicy; +import art.arcane.iris.testsupport.PackCompatFixtures; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; import art.arcane.volmlib.util.collection.KList; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisDimensionRuntimeContractTest.java b/core/src/test/java/art/arcane/iris/generation/terrain/IrisDimensionRuntimeContractTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/object/IrisDimensionRuntimeContractTest.java rename to core/src/test/java/art/arcane/iris/generation/terrain/IrisDimensionRuntimeContractTest.java index 003359779..0578f36a5 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisDimensionRuntimeContractTest.java +++ b/core/src/test/java/art/arcane/iris/generation/terrain/IrisDimensionRuntimeContractTest.java @@ -1,8 +1,11 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.terrain; + +import art.arcane.iris.pack.value.IrisRange; +import art.arcane.iris.world.IrisEnvironment; import org.junit.Test; -import static art.arcane.iris.engine.object.IrisDimensionTypeOptions.TriState.TRUE; +import static art.arcane.iris.generation.terrain.IrisDimensionTypeOptions.TriState.TRUE; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisDimensionTypeKeyTest.java b/core/src/test/java/art/arcane/iris/generation/terrain/IrisDimensionTypeKeyTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/object/IrisDimensionTypeKeyTest.java rename to core/src/test/java/art/arcane/iris/generation/terrain/IrisDimensionTypeKeyTest.java index 4d12c0e3c..7828c782f 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisDimensionTypeKeyTest.java +++ b/core/src/test/java/art/arcane/iris/generation/terrain/IrisDimensionTypeKeyTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.terrain; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisMaterialPaletteGeneratorCacheTest.java b/core/src/test/java/art/arcane/iris/generation/terrain/IrisMaterialPaletteGeneratorCacheTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/engine/object/IrisMaterialPaletteGeneratorCacheTest.java rename to core/src/test/java/art/arcane/iris/generation/terrain/IrisMaterialPaletteGeneratorCacheTest.java index a778b5541..4263289d8 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisMaterialPaletteGeneratorCacheTest.java +++ b/core/src/test/java/art/arcane/iris/generation/terrain/IrisMaterialPaletteGeneratorCacheTest.java @@ -1,8 +1,10 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.terrain; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.iris.generation.noise.IrisGeneratorStyle; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.volmlib.util.noise.CNG; import art.arcane.volmlib.util.math.RNG; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisRegionCompatPoolTest.java b/core/src/test/java/art/arcane/iris/generation/terrain/IrisRegionCompatPoolTest.java similarity index 86% rename from core/src/test/java/art/arcane/iris/engine/object/IrisRegionCompatPoolTest.java rename to core/src/test/java/art/arcane/iris/generation/terrain/IrisRegionCompatPoolTest.java index ab8499081..f79b1d6d7 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisRegionCompatPoolTest.java +++ b/core/src/test/java/art/arcane/iris/generation/terrain/IrisRegionCompatPoolTest.java @@ -1,22 +1,25 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.generation.terrain; -import art.arcane.iris.core.compat.CompatAction; -import art.arcane.iris.core.compat.CompatFinding; -import art.arcane.iris.core.compat.CompatRegistry; -import art.arcane.iris.core.compat.CompatStatus; -import art.arcane.iris.core.compat.ContentGate; -import art.arcane.iris.core.compat.PackCompatReport; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.testsupport.PackCompatFixtures; + +import art.arcane.iris.pack.validation.CompatAction; +import art.arcane.iris.pack.validation.CompatFinding; +import art.arcane.iris.pack.validation.CompatRegistry; +import art.arcane.iris.pack.validation.CompatStatus; +import art.arcane.iris.pack.validation.ContentGate; +import art.arcane.iris.pack.validation.PackCompatReport; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; import art.arcane.volmlib.util.collection.KList; import org.junit.Test; import java.util.Map; -import static art.arcane.iris.engine.object.PackCompatFixtures.MISSING_BLOCK; -import static art.arcane.iris.engine.object.PackCompatFixtures.biome; -import static art.arcane.iris.engine.object.PackCompatFixtures.excludeBlock; -import static art.arcane.iris.engine.object.PackCompatFixtures.find; +import static art.arcane.iris.testsupport.PackCompatFixtures.MISSING_BLOCK; +import static art.arcane.iris.testsupport.PackCompatFixtures.biome; +import static art.arcane.iris.testsupport.PackCompatFixtures.excludeBlock; +import static art.arcane.iris.testsupport.PackCompatFixtures.find; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; diff --git a/core/src/test/java/art/arcane/iris/engine/terrain/Terrain3DColumnFixtures.java b/core/src/test/java/art/arcane/iris/generation/terrain/Terrain3DColumnFixtures.java similarity index 85% rename from core/src/test/java/art/arcane/iris/engine/terrain/Terrain3DColumnFixtures.java rename to core/src/test/java/art/arcane/iris/generation/terrain/Terrain3DColumnFixtures.java index dd9d0259f..c0df5ec93 100644 --- a/core/src/test/java/art/arcane/iris/engine/terrain/Terrain3DColumnFixtures.java +++ b/core/src/test/java/art/arcane/iris/generation/terrain/Terrain3DColumnFixtures.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.terrain; +package art.arcane.iris.generation.terrain; public final class Terrain3DColumnFixtures { private Terrain3DColumnFixtures() { diff --git a/core/src/test/java/art/arcane/iris/engine/terrain/Terrain3DFragmentFilterTest.java b/core/src/test/java/art/arcane/iris/generation/terrain/Terrain3DFragmentFilterTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/terrain/Terrain3DFragmentFilterTest.java rename to core/src/test/java/art/arcane/iris/generation/terrain/Terrain3DFragmentFilterTest.java index 84c8e64f3..218914267 100644 --- a/core/src/test/java/art/arcane/iris/engine/terrain/Terrain3DFragmentFilterTest.java +++ b/core/src/test/java/art/arcane/iris/generation/terrain/Terrain3DFragmentFilterTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.terrain; +package art.arcane.iris.generation.terrain; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/terrain/Terrain3DRuntimeTest.java b/core/src/test/java/art/arcane/iris/generation/terrain/Terrain3DRuntimeTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/terrain/Terrain3DRuntimeTest.java rename to core/src/test/java/art/arcane/iris/generation/terrain/Terrain3DRuntimeTest.java index 3f14221e3..b53150b39 100644 --- a/core/src/test/java/art/arcane/iris/engine/terrain/Terrain3DRuntimeTest.java +++ b/core/src/test/java/art/arcane/iris/generation/terrain/Terrain3DRuntimeTest.java @@ -1,7 +1,6 @@ -package art.arcane.iris.engine.terrain; +package art.arcane.iris.generation.terrain; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisTerrain3D; +import art.arcane.iris.generation.biome.IrisBiome; import org.junit.Test; import java.util.ArrayList; diff --git a/core/src/test/java/art/arcane/iris/engine/terrain/Terrain3DSurfaceSlopeTest.java b/core/src/test/java/art/arcane/iris/generation/terrain/Terrain3DSurfaceSlopeTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/terrain/Terrain3DSurfaceSlopeTest.java rename to core/src/test/java/art/arcane/iris/generation/terrain/Terrain3DSurfaceSlopeTest.java index 07bc7e2d1..5f4b0311a 100644 --- a/core/src/test/java/art/arcane/iris/engine/terrain/Terrain3DSurfaceSlopeTest.java +++ b/core/src/test/java/art/arcane/iris/generation/terrain/Terrain3DSurfaceSlopeTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.engine.terrain; +package art.arcane.iris.generation.terrain; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.volmlib.util.stream.ProceduralStream; import org.junit.Test; import static org.junit.Assert.assertEquals; diff --git a/core/src/test/java/art/arcane/iris/core/runtime/GoldenHashEngineTest.java b/core/src/test/java/art/arcane/iris/generation/validation/GoldenHashEngineTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/runtime/GoldenHashEngineTest.java rename to core/src/test/java/art/arcane/iris/generation/validation/GoldenHashEngineTest.java index 5c5065883..28b478b6d 100644 --- a/core/src/test/java/art/arcane/iris/core/runtime/GoldenHashEngineTest.java +++ b/core/src/test/java/art/arcane/iris/generation/validation/GoldenHashEngineTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.runtime; +package art.arcane.iris.generation.validation; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBlockState; import org.junit.After; diff --git a/core/src/test/java/art/arcane/iris/core/service/ExternalDataSVCBlockRoutingTest.java b/core/src/test/java/art/arcane/iris/integration/ExternalDataSVCBlockRoutingTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/core/service/ExternalDataSVCBlockRoutingTest.java rename to core/src/test/java/art/arcane/iris/integration/ExternalDataSVCBlockRoutingTest.java index 1f886151e..f5070239a 100644 --- a/core/src/test/java/art/arcane/iris/core/service/ExternalDataSVCBlockRoutingTest.java +++ b/core/src/test/java/art/arcane/iris/integration/ExternalDataSVCBlockRoutingTest.java @@ -1,12 +1,10 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.integration; -import art.arcane.iris.core.link.ExternalDataProvider; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.core.link.data.DataType; -import art.arcane.iris.core.nms.container.BlockProperty; -import art.arcane.iris.core.nms.container.Pair; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.util.common.data.IrisCustomData; +import art.arcane.iris.integration.data.DataType; +import art.arcane.iris.platform.bukkit.nms.container.BlockProperty; +import art.arcane.iris.platform.bukkit.nms.container.Pair; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.block.IrisCustomData; import art.arcane.volmlib.util.collection.KMap; import org.bukkit.block.Block; import org.bukkit.block.data.BlockData; diff --git a/core/src/test/java/art/arcane/iris/core/service/ExternalDataSVCContentChangeTest.java b/core/src/test/java/art/arcane/iris/integration/ExternalDataSVCContentChangeTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/core/service/ExternalDataSVCContentChangeTest.java rename to core/src/test/java/art/arcane/iris/integration/ExternalDataSVCContentChangeTest.java index 9d7ba45a9..c8374632b 100644 --- a/core/src/test/java/art/arcane/iris/core/service/ExternalDataSVCContentChangeTest.java +++ b/core/src/test/java/art/arcane/iris/integration/ExternalDataSVCContentChangeTest.java @@ -1,8 +1,6 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.integration; -import art.arcane.iris.core.link.ExternalDataProvider; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.core.link.data.DataType; +import art.arcane.iris.integration.data.DataType; import org.junit.Test; import org.bukkit.Bukkit; import org.bukkit.plugin.Plugin; diff --git a/core/src/test/java/art/arcane/iris/core/service/ExternalDataSVCRegistryTest.java b/core/src/test/java/art/arcane/iris/integration/ExternalDataSVCRegistryTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/core/service/ExternalDataSVCRegistryTest.java rename to core/src/test/java/art/arcane/iris/integration/ExternalDataSVCRegistryTest.java index f6229d600..990f9f594 100644 --- a/core/src/test/java/art/arcane/iris/core/service/ExternalDataSVCRegistryTest.java +++ b/core/src/test/java/art/arcane/iris/integration/ExternalDataSVCRegistryTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.integration; import org.junit.Test; @@ -25,7 +25,7 @@ public class ExternalDataSVCRegistryTest { pluginIdMethod.setAccessible(true); classNameMethod.setAccessible(true); pluginIds.add((String) pluginIdMethod.invoke(definition)); - assertTrue(((String) classNameMethod.invoke(definition)).startsWith("art.arcane.iris.core.link.data.")); + assertTrue(((String) classNameMethod.invoke(definition)).startsWith("art.arcane.iris.integration.data.")); } assertEquals(List.of( diff --git a/core/src/test/java/art/arcane/iris/core/link/IdentifierTest.java b/core/src/test/java/art/arcane/iris/integration/IdentifierTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/link/IdentifierTest.java rename to core/src/test/java/art/arcane/iris/integration/IdentifierTest.java index c3ddcd990..a526d4ead 100644 --- a/core/src/test/java/art/arcane/iris/core/link/IdentifierTest.java +++ b/core/src/test/java/art/arcane/iris/integration/IdentifierTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.link; +package art.arcane.iris.integration; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/link/MultiverseCoreLinkTest.java b/core/src/test/java/art/arcane/iris/integration/MultiverseCoreLinkTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/link/MultiverseCoreLinkTest.java rename to core/src/test/java/art/arcane/iris/integration/MultiverseCoreLinkTest.java index 4fd50e2d7..47d201d20 100644 --- a/core/src/test/java/art/arcane/iris/core/link/MultiverseCoreLinkTest.java +++ b/core/src/test/java/art/arcane/iris/integration/MultiverseCoreLinkTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.link; +package art.arcane.iris.integration; import org.bukkit.Bukkit; import org.bukkit.NamespacedKey; diff --git a/core/src/test/java/art/arcane/iris/core/link/MultiverseGuardListenerTest.java b/core/src/test/java/art/arcane/iris/integration/MultiverseGuardListenerTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/link/MultiverseGuardListenerTest.java rename to core/src/test/java/art/arcane/iris/integration/MultiverseGuardListenerTest.java index aea563b70..516fae8e4 100644 --- a/core/src/test/java/art/arcane/iris/core/link/MultiverseGuardListenerTest.java +++ b/core/src/test/java/art/arcane/iris/integration/MultiverseGuardListenerTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.link; +package art.arcane.iris.integration; -import art.arcane.iris.core.lifecycle.ManagedWorldLoader; -import art.arcane.iris.engine.platform.BukkitChunkGenerator; +import art.arcane.iris.world.lifecycle.ManagedWorldLoader; +import art.arcane.iris.platform.generation.BukkitChunkGenerator; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.testsupport.PlatformLeakGuard; import org.bukkit.Bukkit; diff --git a/core/src/test/java/art/arcane/iris/core/service/MultiverseSVCTest.java b/core/src/test/java/art/arcane/iris/integration/MultiverseSVCTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/core/service/MultiverseSVCTest.java rename to core/src/test/java/art/arcane/iris/integration/MultiverseSVCTest.java index 5f3ae0b6a..56d99d4af 100644 --- a/core/src/test/java/art/arcane/iris/core/service/MultiverseSVCTest.java +++ b/core/src/test/java/art/arcane/iris/integration/MultiverseSVCTest.java @@ -1,11 +1,9 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.integration; -import art.arcane.iris.core.link.MultiverseCoreLink; -import art.arcane.iris.core.link.MultiverseGuardListener; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.testsupport.PlatformLeakGuard; -import art.arcane.iris.util.common.plugin.VolmitPlugin; +import art.arcane.iris.platform.bukkit.plugin.VolmitPlugin; import org.bukkit.Bukkit; import org.bukkit.event.Listener; import org.bukkit.event.server.PluginDisableEvent; diff --git a/core/src/test/java/art/arcane/iris/core/link/WorldEditLinkDetectionTest.java b/core/src/test/java/art/arcane/iris/integration/WorldEditLinkDetectionTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/link/WorldEditLinkDetectionTest.java rename to core/src/test/java/art/arcane/iris/integration/WorldEditLinkDetectionTest.java index de0b613e4..364acd962 100644 --- a/core/src/test/java/art/arcane/iris/core/link/WorldEditLinkDetectionTest.java +++ b/core/src/test/java/art/arcane/iris/integration/WorldEditLinkDetectionTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.link; +package art.arcane.iris.integration; import org.junit.After; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/link/data/DataTypeProbeContractTest.java b/core/src/test/java/art/arcane/iris/integration/data/DataTypeProbeContractTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/link/data/DataTypeProbeContractTest.java rename to core/src/test/java/art/arcane/iris/integration/data/DataTypeProbeContractTest.java index b61bfc101..5098bd4f2 100644 --- a/core/src/test/java/art/arcane/iris/core/link/data/DataTypeProbeContractTest.java +++ b/core/src/test/java/art/arcane/iris/integration/data/DataTypeProbeContractTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.link.data; +package art.arcane.iris.integration.data; -import art.arcane.iris.core.link.ExternalDataProvider; -import art.arcane.iris.core.link.Identifier; +import art.arcane.iris.integration.ExternalDataProvider; +import art.arcane.iris.integration.Identifier; import art.arcane.volmlib.util.collection.KMap; import org.bukkit.block.data.BlockData; import org.bukkit.inventory.ItemStack; diff --git a/core/src/test/java/art/arcane/iris/core/link/data/ExternalDataProviderDefaultsTest.java b/core/src/test/java/art/arcane/iris/integration/data/ExternalDataProviderDefaultsTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/core/link/data/ExternalDataProviderDefaultsTest.java rename to core/src/test/java/art/arcane/iris/integration/data/ExternalDataProviderDefaultsTest.java index a71f0bf87..304bdf362 100644 --- a/core/src/test/java/art/arcane/iris/core/link/data/ExternalDataProviderDefaultsTest.java +++ b/core/src/test/java/art/arcane/iris/integration/data/ExternalDataProviderDefaultsTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.link.data; +package art.arcane.iris.integration.data; -import art.arcane.iris.core.link.ExternalDataProvider; -import art.arcane.iris.core.link.Identifier; +import art.arcane.iris.integration.ExternalDataProvider; +import art.arcane.iris.integration.Identifier; import art.arcane.volmlib.util.collection.KMap; import org.bukkit.Location; import org.bukkit.block.data.BlockData; diff --git a/core/src/test/java/art/arcane/iris/core/link/data/ProviderNamespaceClaimTest.java b/core/src/test/java/art/arcane/iris/integration/data/ProviderNamespaceClaimTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/link/data/ProviderNamespaceClaimTest.java rename to core/src/test/java/art/arcane/iris/integration/data/ProviderNamespaceClaimTest.java index a99c4b957..d61bf517a 100644 --- a/core/src/test/java/art/arcane/iris/core/link/data/ProviderNamespaceClaimTest.java +++ b/core/src/test/java/art/arcane/iris/integration/data/ProviderNamespaceClaimTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.link.data; +package art.arcane.iris.integration.data; -import art.arcane.iris.core.link.Identifier; +import art.arcane.iris.integration.Identifier; import org.junit.Test; import java.util.List; diff --git a/core/src/test/java/art/arcane/iris/core/localization/IrisDownloadValidationTest.java b/core/src/test/java/art/arcane/iris/localization/IrisDownloadValidationTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/localization/IrisDownloadValidationTest.java rename to core/src/test/java/art/arcane/iris/localization/IrisDownloadValidationTest.java index 3084701ea..28c44afe7 100644 --- a/core/src/test/java/art/arcane/iris/core/localization/IrisDownloadValidationTest.java +++ b/core/src/test/java/art/arcane/iris/localization/IrisDownloadValidationTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.localization; +package art.arcane.iris.localization; import art.arcane.iris.testsupport.ProjectPaths; import art.arcane.volmlib.util.localization.LocaleOverlay; diff --git a/core/src/test/java/art/arcane/iris/core/localization/IrisLanguageEditorTest.java b/core/src/test/java/art/arcane/iris/localization/IrisLanguageEditorTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/localization/IrisLanguageEditorTest.java rename to core/src/test/java/art/arcane/iris/localization/IrisLanguageEditorTest.java index 0c9c812b3..7b01ca127 100644 --- a/core/src/test/java/art/arcane/iris/core/localization/IrisLanguageEditorTest.java +++ b/core/src/test/java/art/arcane/iris/localization/IrisLanguageEditorTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.localization; +package art.arcane.iris.localization; import art.arcane.iris.testsupport.ProjectPaths; import art.arcane.volmlib.util.config.TomlCodec; diff --git a/core/src/test/java/art/arcane/iris/core/localization/IrisLanguageGuideTest.java b/core/src/test/java/art/arcane/iris/localization/IrisLanguageGuideTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/localization/IrisLanguageGuideTest.java rename to core/src/test/java/art/arcane/iris/localization/IrisLanguageGuideTest.java index 22c5fc07c..50eb8d626 100644 --- a/core/src/test/java/art/arcane/iris/core/localization/IrisLanguageGuideTest.java +++ b/core/src/test/java/art/arcane/iris/localization/IrisLanguageGuideTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.localization; +package art.arcane.iris.localization; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/localization/IrisLanguageHotloadSnapshotTest.java b/core/src/test/java/art/arcane/iris/localization/IrisLanguageHotloadSnapshotTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/localization/IrisLanguageHotloadSnapshotTest.java rename to core/src/test/java/art/arcane/iris/localization/IrisLanguageHotloadSnapshotTest.java index 37c3c34a8..0f19b14fc 100644 --- a/core/src/test/java/art/arcane/iris/core/localization/IrisLanguageHotloadSnapshotTest.java +++ b/core/src/test/java/art/arcane/iris/localization/IrisLanguageHotloadSnapshotTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.localization; +package art.arcane.iris.localization; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/localization/IrisLanguageTest.java b/core/src/test/java/art/arcane/iris/localization/IrisLanguageTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/localization/IrisLanguageTest.java rename to core/src/test/java/art/arcane/iris/localization/IrisLanguageTest.java index 317bab510..14c981276 100644 --- a/core/src/test/java/art/arcane/iris/core/localization/IrisLanguageTest.java +++ b/core/src/test/java/art/arcane/iris/localization/IrisLanguageTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.localization; +package art.arcane.iris.localization; -import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.configuration.IrisSettings; import art.arcane.iris.testsupport.ProjectPaths; import art.arcane.volmlib.util.localization.MessageArgument; import art.arcane.volmlib.util.localization.LocaleOverlay; diff --git a/core/src/test/java/art/arcane/iris/core/localization/ResetMantleHelpTextTest.java b/core/src/test/java/art/arcane/iris/localization/ResetMantleHelpTextTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/localization/ResetMantleHelpTextTest.java rename to core/src/test/java/art/arcane/iris/localization/ResetMantleHelpTextTest.java index 580244259..c1eca5831 100644 --- a/core/src/test/java/art/arcane/iris/core/localization/ResetMantleHelpTextTest.java +++ b/core/src/test/java/art/arcane/iris/localization/ResetMantleHelpTextTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.localization; +package art.arcane.iris.localization; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pack/AtomicDirectoryPublisherTest.java b/core/src/test/java/art/arcane/iris/pack/AtomicDirectoryPublisherTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/pack/AtomicDirectoryPublisherTest.java rename to core/src/test/java/art/arcane/iris/pack/AtomicDirectoryPublisherTest.java index 2b5bf8fff..5e6be74fe 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/AtomicDirectoryPublisherTest.java +++ b/core/src/test/java/art/arcane/iris/pack/AtomicDirectoryPublisherTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pack/ContentKeyValidatorTest.java b/core/src/test/java/art/arcane/iris/pack/ContentKeyValidatorTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/pack/ContentKeyValidatorTest.java rename to core/src/test/java/art/arcane/iris/pack/ContentKeyValidatorTest.java index 224a16e66..4b5a0498c 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/ContentKeyValidatorTest.java +++ b/core/src/test/java/art/arcane/iris/pack/ContentKeyValidatorTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; -import art.arcane.iris.core.pack.ContentKeyValidator.ContentKeyError; -import art.arcane.iris.core.pack.ContentKeyValidator.ContentRegistry; +import art.arcane.iris.pack.ContentKeyValidator.ContentKeyError; +import art.arcane.iris.pack.ContentKeyValidator.ContentRegistry; import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBlockProperty; import art.arcane.iris.spi.PlatformBlockState; diff --git a/core/src/test/java/art/arcane/iris/core/pack/DefaultPackBootstrapProvisionerTest.java b/core/src/test/java/art/arcane/iris/pack/DefaultPackBootstrapProvisionerTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/pack/DefaultPackBootstrapProvisionerTest.java rename to core/src/test/java/art/arcane/iris/pack/DefaultPackBootstrapProvisionerTest.java index d72c65d91..898e5be3f 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/DefaultPackBootstrapProvisionerTest.java +++ b/core/src/test/java/art/arcane/iris/pack/DefaultPackBootstrapProvisionerTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; -import art.arcane.iris.core.lifecycle.BukkitStartupPaths; -import art.arcane.iris.engine.history.GenerationRegistryContractFactory; -import art.arcane.iris.engine.object.IrisBiomeCustom; +import art.arcane.iris.world.lifecycle.BukkitStartupPaths; +import art.arcane.iris.world.history.GenerationRegistryContractFactory; +import art.arcane.iris.generation.biome.IrisBiomeCustom; import art.arcane.iris.testsupport.DurabilityMode; import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpServer; diff --git a/core/src/test/java/art/arcane/iris/core/pack/PackBiomeLayerValidatorTest.java b/core/src/test/java/art/arcane/iris/pack/PackBiomeLayerValidatorTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/pack/PackBiomeLayerValidatorTest.java rename to core/src/test/java/art/arcane/iris/pack/PackBiomeLayerValidatorTest.java index d2d92ad19..8fbdf396d 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/PackBiomeLayerValidatorTest.java +++ b/core/src/test/java/art/arcane/iris/pack/PackBiomeLayerValidatorTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pack/PackCaveProfileValidatorTest.java b/core/src/test/java/art/arcane/iris/pack/PackCaveProfileValidatorTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/pack/PackCaveProfileValidatorTest.java rename to core/src/test/java/art/arcane/iris/pack/PackCaveProfileValidatorTest.java index a16e7a349..f3ed36a12 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/PackCaveProfileValidatorTest.java +++ b/core/src/test/java/art/arcane/iris/pack/PackCaveProfileValidatorTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pack/PackDirectoryResolverTest.java b/core/src/test/java/art/arcane/iris/pack/PackDirectoryResolverTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/pack/PackDirectoryResolverTest.java rename to core/src/test/java/art/arcane/iris/pack/PackDirectoryResolverTest.java index 7157d82f9..09f3299b1 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/PackDirectoryResolverTest.java +++ b/core/src/test/java/art/arcane/iris/pack/PackDirectoryResolverTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import org.junit.Assume; import org.junit.Rule; diff --git a/core/src/test/java/art/arcane/iris/core/pack/PackDownloadExecutionTest.java b/core/src/test/java/art/arcane/iris/pack/PackDownloadExecutionTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/pack/PackDownloadExecutionTest.java rename to core/src/test/java/art/arcane/iris/pack/PackDownloadExecutionTest.java index 8d321a75b..794925371 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/PackDownloadExecutionTest.java +++ b/core/src/test/java/art/arcane/iris/pack/PackDownloadExecutionTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; -import art.arcane.iris.core.lifecycle.LifecycleOperationCoordinator; +import art.arcane.iris.world.lifecycle.LifecycleOperationCoordinator; import org.junit.Test; import java.util.concurrent.CountDownLatch; diff --git a/core/src/test/java/art/arcane/iris/core/pack/PackDownloaderTest.java b/core/src/test/java/art/arcane/iris/pack/PackDownloaderTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/pack/PackDownloaderTest.java rename to core/src/test/java/art/arcane/iris/pack/PackDownloaderTest.java index 96e04cdce..b6aabcd6e 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/PackDownloaderTest.java +++ b/core/src/test/java/art/arcane/iris/pack/PackDownloaderTest.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.PreservationRegistry; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisEnvironment; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.PreservationRegistry; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.world.IrisEnvironment; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.IrisServices; @@ -724,8 +724,8 @@ public class PackDownloaderTest { // IrisData.get instance; the refusal gate must see this registration through the // engine index. IrisData loaded = IrisData.openRuntime(target); - art.arcane.iris.engine.framework.Engine engine = - org.mockito.Mockito.mock(art.arcane.iris.engine.framework.Engine.class); + art.arcane.iris.generation.runtime.Engine engine = + org.mockito.Mockito.mock(art.arcane.iris.generation.runtime.Engine.class); loaded.registerEngine(engine); try { PackDownloader.PackInstallResult result = PackDownloader.installExtractedPack( diff --git a/core/src/test/java/art/arcane/iris/core/pack/PackExportClosureTest.java b/core/src/test/java/art/arcane/iris/pack/PackExportClosureTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/core/pack/PackExportClosureTest.java rename to core/src/test/java/art/arcane/iris/pack/PackExportClosureTest.java index 19f404a8c..63113ca6a 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/PackExportClosureTest.java +++ b/core/src/test/java/art/arcane/iris/pack/PackExportClosureTest.java @@ -1,12 +1,12 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisDimensionStack; -import art.arcane.iris.engine.object.IrisObjectMarker; -import art.arcane.iris.engine.object.IrisObjectPlacement; -import art.arcane.iris.engine.object.IrisStaticObject; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisDimensionStack; +import art.arcane.iris.structure.object.IrisObjectMarker; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.structure.object.IrisStaticObject; import art.arcane.volmlib.util.collection.KList; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pack/PackGeneratorDuplicateValidatorTest.java b/core/src/test/java/art/arcane/iris/pack/PackGeneratorDuplicateValidatorTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/pack/PackGeneratorDuplicateValidatorTest.java rename to core/src/test/java/art/arcane/iris/pack/PackGeneratorDuplicateValidatorTest.java index 0e24d9e8f..7a0ccdae3 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/PackGeneratorDuplicateValidatorTest.java +++ b/core/src/test/java/art/arcane/iris/pack/PackGeneratorDuplicateValidatorTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pack/PackHydrologyValidatorTest.java b/core/src/test/java/art/arcane/iris/pack/PackHydrologyValidatorTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/pack/PackHydrologyValidatorTest.java rename to core/src/test/java/art/arcane/iris/pack/PackHydrologyValidatorTest.java index 61564561e..1d80d80b1 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/PackHydrologyValidatorTest.java +++ b/core/src/test/java/art/arcane/iris/pack/PackHydrologyValidatorTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pack/PackImageMapValidatorTest.java b/core/src/test/java/art/arcane/iris/pack/PackImageMapValidatorTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/pack/PackImageMapValidatorTest.java rename to core/src/test/java/art/arcane/iris/pack/PackImageMapValidatorTest.java index 7359261e3..d55bda5dc 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/PackImageMapValidatorTest.java +++ b/core/src/test/java/art/arcane/iris/pack/PackImageMapValidatorTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; diff --git a/core/src/test/java/art/arcane/iris/core/pack/PackObjectScaleFactorTest.java b/core/src/test/java/art/arcane/iris/pack/PackObjectScaleFactorTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/pack/PackObjectScaleFactorTest.java rename to core/src/test/java/art/arcane/iris/pack/PackObjectScaleFactorTest.java index 63c14125e..801245925 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/PackObjectScaleFactorTest.java +++ b/core/src/test/java/art/arcane/iris/pack/PackObjectScaleFactorTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import art.arcane.volmlib.util.json.JSONObject; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pack/PackResourceCleanupTest.java b/core/src/test/java/art/arcane/iris/pack/PackResourceCleanupTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/pack/PackResourceCleanupTest.java rename to core/src/test/java/art/arcane/iris/pack/PackResourceCleanupTest.java index c7c5edaaf..7957e8d54 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/PackResourceCleanupTest.java +++ b/core/src/test/java/art/arcane/iris/pack/PackResourceCleanupTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pack/PackRiverBank3DValidatorTest.java b/core/src/test/java/art/arcane/iris/pack/PackRiverBank3DValidatorTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/pack/PackRiverBank3DValidatorTest.java rename to core/src/test/java/art/arcane/iris/pack/PackRiverBank3DValidatorTest.java index bef3b7f17..70e43ddaf 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/PackRiverBank3DValidatorTest.java +++ b/core/src/test/java/art/arcane/iris/pack/PackRiverBank3DValidatorTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import art.arcane.volmlib.util.json.JSONObject; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pack/PackStaticObjectValidatorTest.java b/core/src/test/java/art/arcane/iris/pack/PackStaticObjectValidatorTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/pack/PackStaticObjectValidatorTest.java rename to core/src/test/java/art/arcane/iris/pack/PackStaticObjectValidatorTest.java index 7f7fe3baa..85c8c1220 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/PackStaticObjectValidatorTest.java +++ b/core/src/test/java/art/arcane/iris/pack/PackStaticObjectValidatorTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import art.arcane.volmlib.util.json.JSONObject; import org.junit.Rule; diff --git a/core/src/test/java/art/arcane/iris/core/pack/PackStyledRangeDefaultValidatorTest.java b/core/src/test/java/art/arcane/iris/pack/PackStyledRangeDefaultValidatorTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/pack/PackStyledRangeDefaultValidatorTest.java rename to core/src/test/java/art/arcane/iris/pack/PackStyledRangeDefaultValidatorTest.java index da8643075..ea24b3f85 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/PackStyledRangeDefaultValidatorTest.java +++ b/core/src/test/java/art/arcane/iris/pack/PackStyledRangeDefaultValidatorTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pack/PackTerrain3DValidatorTest.java b/core/src/test/java/art/arcane/iris/pack/PackTerrain3DValidatorTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/pack/PackTerrain3DValidatorTest.java rename to core/src/test/java/art/arcane/iris/pack/PackTerrain3DValidatorTest.java index 1d9cd3790..57f8cc68b 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/PackTerrain3DValidatorTest.java +++ b/core/src/test/java/art/arcane/iris/pack/PackTerrain3DValidatorTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pack/PackValidationCacheTest.java b/core/src/test/java/art/arcane/iris/pack/PackValidationCacheTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/pack/PackValidationCacheTest.java rename to core/src/test/java/art/arcane/iris/pack/PackValidationCacheTest.java index 6f1fde023..1444b998a 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/PackValidationCacheTest.java +++ b/core/src/test/java/art/arcane/iris/pack/PackValidationCacheTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; -import art.arcane.iris.core.compat.CompatAction; -import art.arcane.iris.core.compat.CompatFinding; -import art.arcane.iris.core.compat.CompatRegistry; +import art.arcane.iris.pack.validation.CompatAction; +import art.arcane.iris.pack.validation.CompatFinding; +import art.arcane.iris.pack.validation.CompatRegistry; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformRegistries; diff --git a/core/src/test/java/art/arcane/iris/core/pack/PackValidationRegistryTest.java b/core/src/test/java/art/arcane/iris/pack/PackValidationRegistryTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/pack/PackValidationRegistryTest.java rename to core/src/test/java/art/arcane/iris/pack/PackValidationRegistryTest.java index dfaf40d7d..044307d51 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/PackValidationRegistryTest.java +++ b/core/src/test/java/art/arcane/iris/pack/PackValidationRegistryTest.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import org.junit.After; import org.junit.Assume; diff --git a/core/src/test/java/art/arcane/iris/core/pack/PackValidatorCompatTest.java b/core/src/test/java/art/arcane/iris/pack/PackValidatorCompatTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/core/pack/PackValidatorCompatTest.java rename to core/src/test/java/art/arcane/iris/pack/PackValidatorCompatTest.java index 0ed5151a2..bf1c10c3c 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/PackValidatorCompatTest.java +++ b/core/src/test/java/art/arcane/iris/pack/PackValidatorCompatTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; -import art.arcane.iris.core.compat.CompatAction; -import art.arcane.iris.core.compat.CompatFinding; -import art.arcane.iris.core.compat.CompatRegistry; +import art.arcane.iris.pack.validation.CompatAction; +import art.arcane.iris.pack.validation.CompatFinding; +import art.arcane.iris.pack.validation.CompatRegistry; import org.junit.Test; import java.util.ArrayList; diff --git a/core/src/test/java/art/arcane/iris/core/pack/PackValidatorCustomBiomeSpawnTest.java b/core/src/test/java/art/arcane/iris/pack/PackValidatorCustomBiomeSpawnTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/pack/PackValidatorCustomBiomeSpawnTest.java rename to core/src/test/java/art/arcane/iris/pack/PackValidatorCustomBiomeSpawnTest.java index 1d0198487..bd815c73c 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/PackValidatorCustomBiomeSpawnTest.java +++ b/core/src/test/java/art/arcane/iris/pack/PackValidatorCustomBiomeSpawnTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pack/PackValidatorDimensionHeightTest.java b/core/src/test/java/art/arcane/iris/pack/PackValidatorDimensionHeightTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/core/pack/PackValidatorDimensionHeightTest.java rename to core/src/test/java/art/arcane/iris/pack/PackValidatorDimensionHeightTest.java index e30796b22..99e9e35d2 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/PackValidatorDimensionHeightTest.java +++ b/core/src/test/java/art/arcane/iris/pack/PackValidatorDimensionHeightTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; -import art.arcane.iris.engine.object.IrisDimensionType; -import art.arcane.iris.engine.object.IrisDimensionTypeOptions; -import art.arcane.iris.core.nms.datapack.IDataFixer; +import art.arcane.iris.generation.terrain.IrisDimensionType; +import art.arcane.iris.generation.terrain.IrisDimensionTypeOptions; +import art.arcane.iris.platform.bukkit.nms.datapack.IDataFixer; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; diff --git a/core/src/test/java/art/arcane/iris/core/pack/PackValidatorDimensionStackTest.java b/core/src/test/java/art/arcane/iris/pack/PackValidatorDimensionStackTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/pack/PackValidatorDimensionStackTest.java rename to core/src/test/java/art/arcane/iris/pack/PackValidatorDimensionStackTest.java index 3f35c8bdd..97a25052d 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/PackValidatorDimensionStackTest.java +++ b/core/src/test/java/art/arcane/iris/pack/PackValidatorDimensionStackTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pack/PackValidatorImportedStructurePolicyTest.java b/core/src/test/java/art/arcane/iris/pack/PackValidatorImportedStructurePolicyTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/pack/PackValidatorImportedStructurePolicyTest.java rename to core/src/test/java/art/arcane/iris/pack/PackValidatorImportedStructurePolicyTest.java index 93e0ba020..852c9afd6 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/PackValidatorImportedStructurePolicyTest.java +++ b/core/src/test/java/art/arcane/iris/pack/PackValidatorImportedStructurePolicyTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import art.arcane.volmlib.util.json.JSONArray; import art.arcane.volmlib.util.json.JSONObject; diff --git a/core/src/test/java/art/arcane/iris/core/pack/PackValidatorLootTest.java b/core/src/test/java/art/arcane/iris/pack/PackValidatorLootTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/pack/PackValidatorLootTest.java rename to core/src/test/java/art/arcane/iris/pack/PackValidatorLootTest.java index 4ea1202b0..f310af1fc 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/PackValidatorLootTest.java +++ b/core/src/test/java/art/arcane/iris/pack/PackValidatorLootTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; -import art.arcane.iris.engine.object.IrisLoot; -import art.arcane.iris.engine.object.IrisLootTable; -import art.arcane.iris.engine.object.annotations.MaxNumber; +import art.arcane.iris.world.loot.IrisLoot; +import art.arcane.iris.world.loot.IrisLootTable; +import art.arcane.iris.pack.schema.annotation.MaxNumber; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; diff --git a/core/src/test/java/art/arcane/iris/core/pack/PackValidatorReadOnlyTest.java b/core/src/test/java/art/arcane/iris/pack/PackValidatorReadOnlyTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/pack/PackValidatorReadOnlyTest.java rename to core/src/test/java/art/arcane/iris/pack/PackValidatorReadOnlyTest.java index bf0965f72..96ef39825 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/PackValidatorReadOnlyTest.java +++ b/core/src/test/java/art/arcane/iris/pack/PackValidatorReadOnlyTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pack/PackValidatorRemovedWorldgenFieldTest.java b/core/src/test/java/art/arcane/iris/pack/PackValidatorRemovedWorldgenFieldTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/pack/PackValidatorRemovedWorldgenFieldTest.java rename to core/src/test/java/art/arcane/iris/pack/PackValidatorRemovedWorldgenFieldTest.java index 80705657d..3192a796b 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/PackValidatorRemovedWorldgenFieldTest.java +++ b/core/src/test/java/art/arcane/iris/pack/PackValidatorRemovedWorldgenFieldTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pack/PackValidatorSpawnerEntityTest.java b/core/src/test/java/art/arcane/iris/pack/PackValidatorSpawnerEntityTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/pack/PackValidatorSpawnerEntityTest.java rename to core/src/test/java/art/arcane/iris/pack/PackValidatorSpawnerEntityTest.java index ff7cf0975..5bb9fd18a 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/PackValidatorSpawnerEntityTest.java +++ b/core/src/test/java/art/arcane/iris/pack/PackValidatorSpawnerEntityTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pack/PackValidatorStructureGraphTest.java b/core/src/test/java/art/arcane/iris/pack/PackValidatorStructureGraphTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/pack/PackValidatorStructureGraphTest.java rename to core/src/test/java/art/arcane/iris/pack/PackValidatorStructureGraphTest.java index 6a58898af..7f5b55b03 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/PackValidatorStructureGraphTest.java +++ b/core/src/test/java/art/arcane/iris/pack/PackValidatorStructureGraphTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; diff --git a/core/src/test/java/art/arcane/iris/core/pack/PackValidatorStructureTerrainBackendTest.java b/core/src/test/java/art/arcane/iris/pack/PackValidatorStructureTerrainBackendTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/pack/PackValidatorStructureTerrainBackendTest.java rename to core/src/test/java/art/arcane/iris/pack/PackValidatorStructureTerrainBackendTest.java index 76d127a55..7e77ca744 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/PackValidatorStructureTerrainBackendTest.java +++ b/core/src/test/java/art/arcane/iris/pack/PackValidatorStructureTerrainBackendTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import art.arcane.volmlib.util.json.JSONArray; import art.arcane.volmlib.util.json.JSONObject; diff --git a/core/src/test/java/art/arcane/iris/core/pack/PackValidatorStructureTransformTest.java b/core/src/test/java/art/arcane/iris/pack/PackValidatorStructureTransformTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/pack/PackValidatorStructureTransformTest.java rename to core/src/test/java/art/arcane/iris/pack/PackValidatorStructureTransformTest.java index 17d547bf0..6b1f7c977 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/PackValidatorStructureTransformTest.java +++ b/core/src/test/java/art/arcane/iris/pack/PackValidatorStructureTransformTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pack/PackValidatorSurfaceSupportTest.java b/core/src/test/java/art/arcane/iris/pack/PackValidatorSurfaceSupportTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/pack/PackValidatorSurfaceSupportTest.java rename to core/src/test/java/art/arcane/iris/pack/PackValidatorSurfaceSupportTest.java index e840f9521..e4b23cfa6 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/PackValidatorSurfaceSupportTest.java +++ b/core/src/test/java/art/arcane/iris/pack/PackValidatorSurfaceSupportTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pack/PackValidatorWorldBoundaryTest.java b/core/src/test/java/art/arcane/iris/pack/PackValidatorWorldBoundaryTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/pack/PackValidatorWorldBoundaryTest.java rename to core/src/test/java/art/arcane/iris/pack/PackValidatorWorldBoundaryTest.java index 8c4542292..e28bbfb7b 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/PackValidatorWorldBoundaryTest.java +++ b/core/src/test/java/art/arcane/iris/pack/PackValidatorWorldBoundaryTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import art.arcane.volmlib.util.json.JSONObject; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pack/StructureGraphPackValidatorTest.java b/core/src/test/java/art/arcane/iris/pack/StructureGraphPackValidatorTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/pack/StructureGraphPackValidatorTest.java rename to core/src/test/java/art/arcane/iris/pack/StructureGraphPackValidatorTest.java index b0f1b0659..12ef20cf9 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/StructureGraphPackValidatorTest.java +++ b/core/src/test/java/art/arcane/iris/pack/StructureGraphPackValidatorTest.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pack/StructurePackageClosureLimitsTest.java b/core/src/test/java/art/arcane/iris/pack/StructurePackageClosureLimitsTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/pack/StructurePackageClosureLimitsTest.java rename to core/src/test/java/art/arcane/iris/pack/StructurePackageClosureLimitsTest.java index a1d8def82..8390ab569 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/StructurePackageClosureLimitsTest.java +++ b/core/src/test/java/art/arcane/iris/pack/StructurePackageClosureLimitsTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pack/StructurePackageClosureTest.java b/core/src/test/java/art/arcane/iris/pack/StructurePackageClosureTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/pack/StructurePackageClosureTest.java rename to core/src/test/java/art/arcane/iris/pack/StructurePackageClosureTest.java index 36e730061..6dcab875a 100644 --- a/core/src/test/java/art/arcane/iris/core/pack/StructurePackageClosureTest.java +++ b/core/src/test/java/art/arcane/iris/pack/StructurePackageClosureTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pack; +package art.arcane.iris.pack; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/datapack/DatapackIngestServiceTest.java b/core/src/test/java/art/arcane/iris/pack/datapack/DatapackIngestServiceTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/datapack/DatapackIngestServiceTest.java rename to core/src/test/java/art/arcane/iris/pack/datapack/DatapackIngestServiceTest.java index 135cfbca7..e65d9e01d 100644 --- a/core/src/test/java/art/arcane/iris/core/datapack/DatapackIngestServiceTest.java +++ b/core/src/test/java/art/arcane/iris/pack/datapack/DatapackIngestServiceTest.java @@ -1,15 +1,15 @@ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; -import art.arcane.iris.core.structure.authoring.StructureBackend; -import art.arcane.iris.core.structure.authoring.StructureCapability; -import art.arcane.iris.core.structure.authoring.StructureKey; -import art.arcane.iris.core.structure.authoring.StructureResourceBundle; -import art.arcane.iris.core.structure.authoring.StructureRecoveryResult; -import art.arcane.iris.core.structure.authoring.StructureSource; -import art.arcane.iris.core.structure.authoring.StructureTransactionWriter; -import art.arcane.iris.core.structure.authoring.StructureWriteMode; -import art.arcane.iris.core.structure.authoring.StructureWriteResult; -import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.structure.authoring.StructureBackend; +import art.arcane.iris.structure.authoring.StructureCapability; +import art.arcane.iris.structure.authoring.StructureKey; +import art.arcane.iris.structure.authoring.StructureResourceBundle; +import art.arcane.iris.structure.authoring.StructureRecoveryResult; +import art.arcane.iris.structure.authoring.StructureSource; +import art.arcane.iris.structure.authoring.StructureTransactionWriter; +import art.arcane.iris.structure.authoring.StructureWriteMode; +import art.arcane.iris.structure.authoring.StructureWriteResult; +import art.arcane.iris.pack.loading.IrisData; import art.arcane.iris.testsupport.DurabilityMode; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.io.IO; diff --git a/core/src/test/java/art/arcane/iris/core/DatapackInstallResultTest.java b/core/src/test/java/art/arcane/iris/pack/datapack/DatapackInstallResultTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/DatapackInstallResultTest.java rename to core/src/test/java/art/arcane/iris/pack/datapack/DatapackInstallResultTest.java index c8099974d..f6bebd7fa 100644 --- a/core/src/test/java/art/arcane/iris/core/DatapackInstallResultTest.java +++ b/core/src/test/java/art/arcane/iris/pack/datapack/DatapackInstallResultTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core; +package art.arcane.iris.pack.datapack; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/datapack/DatapackStructureScopeIndexTest.java b/core/src/test/java/art/arcane/iris/pack/datapack/DatapackStructureScopeIndexTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/datapack/DatapackStructureScopeIndexTest.java rename to core/src/test/java/art/arcane/iris/pack/datapack/DatapackStructureScopeIndexTest.java index b4bba0d2f..933539628 100644 --- a/core/src/test/java/art/arcane/iris/core/datapack/DatapackStructureScopeIndexTest.java +++ b/core/src/test/java/art/arcane/iris/pack/datapack/DatapackStructureScopeIndexTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/IrisDatapackCompilerInputFingerprintTest.java b/core/src/test/java/art/arcane/iris/pack/datapack/IrisDatapackCompilerInputFingerprintTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/core/IrisDatapackCompilerInputFingerprintTest.java rename to core/src/test/java/art/arcane/iris/pack/datapack/IrisDatapackCompilerInputFingerprintTest.java index b06f9962d..96fc83c6e 100644 --- a/core/src/test/java/art/arcane/iris/core/IrisDatapackCompilerInputFingerprintTest.java +++ b/core/src/test/java/art/arcane/iris/pack/datapack/IrisDatapackCompilerInputFingerprintTest.java @@ -1,11 +1,13 @@ -package art.arcane.iris.core; +package art.arcane.iris.pack.datapack; -import art.arcane.iris.core.lifecycle.BukkitWorldConfiguration.IrisGeneratorBinding; -import art.arcane.iris.engine.history.GenerationEpoch; -import art.arcane.iris.engine.history.GenerationEpochContractFactory; -import art.arcane.iris.engine.history.GenerationHistory; -import art.arcane.iris.engine.history.GenerationPackFingerprint; -import art.arcane.iris.engine.history.GenerationRegistryContract; +import art.arcane.iris.world.WorldSlotKey; + +import art.arcane.iris.world.lifecycle.BukkitWorldConfiguration.IrisGeneratorBinding; +import art.arcane.iris.world.history.GenerationEpoch; +import art.arcane.iris.world.history.GenerationEpochContractFactory; +import art.arcane.iris.world.history.GenerationHistory; +import art.arcane.iris.world.history.GenerationPackFingerprint; +import art.arcane.iris.world.history.GenerationRegistryContract; import art.arcane.iris.testsupport.DurabilityMode; import org.junit.Assume; import org.junit.ClassRule; diff --git a/core/src/test/java/art/arcane/iris/core/IrisDatapackCompilerTest.java b/core/src/test/java/art/arcane/iris/pack/datapack/IrisDatapackCompilerTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/IrisDatapackCompilerTest.java rename to core/src/test/java/art/arcane/iris/pack/datapack/IrisDatapackCompilerTest.java index fd00e1485..2be0a554e 100644 --- a/core/src/test/java/art/arcane/iris/core/IrisDatapackCompilerTest.java +++ b/core/src/test/java/art/arcane/iris/pack/datapack/IrisDatapackCompilerTest.java @@ -1,18 +1,20 @@ -package art.arcane.iris.core; +package art.arcane.iris.pack.datapack; -import art.arcane.iris.core.lifecycle.BukkitWorldConfiguration.IrisGeneratorBinding; -import art.arcane.iris.core.lifecycle.BukkitStartupPaths; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.nms.datapack.DataVersion; -import art.arcane.iris.core.nms.datapack.v1217.DataFixerV1217; -import art.arcane.iris.core.pack.DefaultPackBootstrapProvisioner; -import art.arcane.iris.engine.history.GenerationEpochContractFactory; -import art.arcane.iris.engine.history.GenerationHistory; -import art.arcane.iris.engine.history.GenerationPackFingerprint; -import art.arcane.iris.engine.history.GenerationRegistryContract; -import art.arcane.iris.engine.history.GenerationRegistryContractFactory; -import art.arcane.iris.engine.object.IrisBiomeCustom; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.world.WorldSlotKey; + +import art.arcane.iris.world.lifecycle.BukkitWorldConfiguration.IrisGeneratorBinding; +import art.arcane.iris.world.lifecycle.BukkitStartupPaths; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.platform.bukkit.nms.datapack.DataVersion; +import art.arcane.iris.platform.bukkit.nms.datapack.v1217.DataFixerV1217; +import art.arcane.iris.pack.DefaultPackBootstrapProvisioner; +import art.arcane.iris.world.history.GenerationEpochContractFactory; +import art.arcane.iris.world.history.GenerationHistory; +import art.arcane.iris.world.history.GenerationPackFingerprint; +import art.arcane.iris.world.history.GenerationRegistryContract; +import art.arcane.iris.world.history.GenerationRegistryContractFactory; +import art.arcane.iris.generation.biome.IrisBiomeCustom; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformGenerationRegistry; diff --git a/core/src/test/java/art/arcane/iris/core/datapack/ModrinthResolverTest.java b/core/src/test/java/art/arcane/iris/pack/datapack/ModrinthResolverTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/datapack/ModrinthResolverTest.java rename to core/src/test/java/art/arcane/iris/pack/datapack/ModrinthResolverTest.java index b49badc17..078b65e7e 100644 --- a/core/src/test/java/art/arcane/iris/core/datapack/ModrinthResolverTest.java +++ b/core/src/test/java/art/arcane/iris/pack/datapack/ModrinthResolverTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.datapack; +package art.arcane.iris.pack.datapack; import com.google.gson.JsonArray; import com.google.gson.JsonObject; diff --git a/core/src/test/java/art/arcane/iris/core/ServerConfiguratorDatapackFingerprintTest.java b/core/src/test/java/art/arcane/iris/pack/datapack/ServerConfiguratorDatapackFingerprintTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/ServerConfiguratorDatapackFingerprintTest.java rename to core/src/test/java/art/arcane/iris/pack/datapack/ServerConfiguratorDatapackFingerprintTest.java index 7a767d932..3cc8a33b3 100644 --- a/core/src/test/java/art/arcane/iris/core/ServerConfiguratorDatapackFingerprintTest.java +++ b/core/src/test/java/art/arcane/iris/pack/datapack/ServerConfiguratorDatapackFingerprintTest.java @@ -1,6 +1,5 @@ -package art.arcane.iris.core; +package art.arcane.iris.pack.datapack; -import art.arcane.iris.core.datapack.DatapackIngestService; import org.junit.Rule; import org.junit.Test; import org.junit.Assume; diff --git a/core/src/test/java/art/arcane/iris/core/ServerConfiguratorRegistryVerificationTest.java b/core/src/test/java/art/arcane/iris/pack/datapack/ServerConfiguratorRegistryVerificationTest.java similarity index 90% rename from core/src/test/java/art/arcane/iris/core/ServerConfiguratorRegistryVerificationTest.java rename to core/src/test/java/art/arcane/iris/pack/datapack/ServerConfiguratorRegistryVerificationTest.java index a62f67f21..cad00cf01 100644 --- a/core/src/test/java/art/arcane/iris/core/ServerConfiguratorRegistryVerificationTest.java +++ b/core/src/test/java/art/arcane/iris/pack/datapack/ServerConfiguratorRegistryVerificationTest.java @@ -1,12 +1,12 @@ -package art.arcane.iris.core; +package art.arcane.iris.pack.datapack; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.core.nms.INMSBinding; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBiomeCustom; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.platform.bukkit.nms.INMSBinding; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiomeCustom; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.collection.KList; import org.bukkit.Bukkit; @@ -34,6 +34,7 @@ public class ServerConfiguratorRegistryVerificationTest { MockedStatic nms = mockStatic(INMS.class)) { nms.when(INMS::get).thenReturn(fixture.binding()); bukkit.when(Bukkit::getOnlinePlayers).thenReturn(List.of()); + logging.clearInvocations(); assertTrue(ServerConfigurator.verifyDataPacksPost(Stream.of(fixture.data()))); @@ -50,6 +51,7 @@ public class ServerConfiguratorRegistryVerificationTest { try (MockedStatic logging = mockStatic(IrisLogging.class); MockedStatic nms = mockStatic(INMS.class)) { nms.when(INMS::get).thenReturn(fixture.binding()); + logging.clearInvocations(); assertFalse(ServerConfigurator.verifyDataPackInstalled(fixture.dimension())); diff --git a/core/src/test/java/art/arcane/iris/core/ServerConfiguratorStartupRestartTest.java b/core/src/test/java/art/arcane/iris/pack/datapack/ServerConfiguratorStartupRestartTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/ServerConfiguratorStartupRestartTest.java rename to core/src/test/java/art/arcane/iris/pack/datapack/ServerConfiguratorStartupRestartTest.java index 2e4b0aefd..2564d53eb 100644 --- a/core/src/test/java/art/arcane/iris/core/ServerConfiguratorStartupRestartTest.java +++ b/core/src/test/java/art/arcane/iris/pack/datapack/ServerConfiguratorStartupRestartTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core; +package art.arcane.iris.pack.datapack; import art.arcane.iris.spi.IrisLogging; import org.bukkit.Bukkit; diff --git a/core/src/test/java/art/arcane/iris/core/loader/ImageResourceLoaderTest.java b/core/src/test/java/art/arcane/iris/pack/loading/ImageResourceLoaderTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/core/loader/ImageResourceLoaderTest.java rename to core/src/test/java/art/arcane/iris/pack/loading/ImageResourceLoaderTest.java index 24ccc8543..746ae29c2 100644 --- a/core/src/test/java/art/arcane/iris/core/loader/ImageResourceLoaderTest.java +++ b/core/src/test/java/art/arcane/iris/pack/loading/ImageResourceLoaderTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.loader; +package art.arcane.iris.pack.loading; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/loader/IrisDataAuthoringCacheTest.java b/core/src/test/java/art/arcane/iris/pack/loading/IrisDataAuthoringCacheTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/core/loader/IrisDataAuthoringCacheTest.java rename to core/src/test/java/art/arcane/iris/pack/loading/IrisDataAuthoringCacheTest.java index 8c0136fdf..1c657e87d 100644 --- a/core/src/test/java/art/arcane/iris/core/loader/IrisDataAuthoringCacheTest.java +++ b/core/src/test/java/art/arcane/iris/pack/loading/IrisDataAuthoringCacheTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.loader; +package art.arcane.iris.pack.loading; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.engine.framework.PreservationRegistry; -import art.arcane.iris.engine.object.IrisGenerator; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.generation.runtime.PreservationRegistry; +import art.arcane.iris.generation.noise.IrisGenerator; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.testsupport.PlatformLeakGuard; import org.junit.After; diff --git a/core/src/test/java/art/arcane/iris/core/loader/IrisDataDatapackCompilerCacheTest.java b/core/src/test/java/art/arcane/iris/pack/loading/IrisDataDatapackCompilerCacheTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/core/loader/IrisDataDatapackCompilerCacheTest.java rename to core/src/test/java/art/arcane/iris/pack/loading/IrisDataDatapackCompilerCacheTest.java index 9cf53a739..383d04907 100644 --- a/core/src/test/java/art/arcane/iris/core/loader/IrisDataDatapackCompilerCacheTest.java +++ b/core/src/test/java/art/arcane/iris/pack/loading/IrisDataDatapackCompilerCacheTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.loader; +package art.arcane.iris.pack.loading; -import art.arcane.iris.engine.framework.MeteredCache; -import art.arcane.iris.engine.framework.PreservationRegistry; +import art.arcane.iris.generation.runtime.MeteredCache; +import art.arcane.iris.generation.runtime.PreservationRegistry; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.testsupport.PlatformLeakGuard; import org.junit.After; diff --git a/core/src/test/java/art/arcane/iris/core/loader/IrisDataEngineRegistryTest.java b/core/src/test/java/art/arcane/iris/pack/loading/IrisDataEngineRegistryTest.java similarity index 92% rename from core/src/test/java/art/arcane/iris/core/loader/IrisDataEngineRegistryTest.java rename to core/src/test/java/art/arcane/iris/pack/loading/IrisDataEngineRegistryTest.java index 420f38a22..4cdf03b93 100644 --- a/core/src/test/java/art/arcane/iris/core/loader/IrisDataEngineRegistryTest.java +++ b/core/src/test/java/art/arcane/iris/pack/loading/IrisDataEngineRegistryTest.java @@ -1,11 +1,11 @@ -package art.arcane.iris.core.loader; +package art.arcane.iris.pack.loading; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.MeteredCache; -import art.arcane.iris.engine.framework.PreservationRegistry; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.MeteredCache; +import art.arcane.iris.generation.runtime.PreservationRegistry; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.testsupport.PlatformLeakGuard; -import art.arcane.iris.util.project.context.IrisContext; +import art.arcane.iris.generation.context.IrisContext; import org.junit.After; import org.junit.Before; import org.junit.ClassRule; diff --git a/core/src/test/java/art/arcane/iris/core/loader/IrisDataRetainedPackTest.java b/core/src/test/java/art/arcane/iris/pack/loading/IrisDataRetainedPackTest.java similarity index 90% rename from core/src/test/java/art/arcane/iris/core/loader/IrisDataRetainedPackTest.java rename to core/src/test/java/art/arcane/iris/pack/loading/IrisDataRetainedPackTest.java index 8a86f3157..c2ec8eafe 100644 --- a/core/src/test/java/art/arcane/iris/core/loader/IrisDataRetainedPackTest.java +++ b/core/src/test/java/art/arcane/iris/pack/loading/IrisDataRetainedPackTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.loader; +package art.arcane.iris.pack.loading; -import art.arcane.iris.engine.framework.PreservationRegistry; -import art.arcane.iris.engine.history.GenerationRegistryContract; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.generation.runtime.PreservationRegistry; +import art.arcane.iris.world.history.GenerationRegistryContract; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.testsupport.PlatformLeakGuard; diff --git a/core/src/test/java/art/arcane/iris/core/loader/ResourceLoaderPrefetchTest.java b/core/src/test/java/art/arcane/iris/pack/loading/ResourceLoaderPrefetchTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/core/loader/ResourceLoaderPrefetchTest.java rename to core/src/test/java/art/arcane/iris/pack/loading/ResourceLoaderPrefetchTest.java index de54f4c0e..dc1a7c5a4 100644 --- a/core/src/test/java/art/arcane/iris/core/loader/ResourceLoaderPrefetchTest.java +++ b/core/src/test/java/art/arcane/iris/pack/loading/ResourceLoaderPrefetchTest.java @@ -1,10 +1,10 @@ -package art.arcane.iris.core.loader; +package art.arcane.iris.pack.loading; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.SeedManager; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisObject; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.SeedManager; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.structure.object.IrisObject; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.testsupport.PlatformLeakGuard; diff --git a/core/src/test/java/art/arcane/iris/core/loader/ResourceLoaderStaticObjectValidationTest.java b/core/src/test/java/art/arcane/iris/pack/loading/ResourceLoaderStaticObjectValidationTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/core/loader/ResourceLoaderStaticObjectValidationTest.java rename to core/src/test/java/art/arcane/iris/pack/loading/ResourceLoaderStaticObjectValidationTest.java index 9265f0cc5..6556f7363 100644 --- a/core/src/test/java/art/arcane/iris/core/loader/ResourceLoaderStaticObjectValidationTest.java +++ b/core/src/test/java/art/arcane/iris/pack/loading/ResourceLoaderStaticObjectValidationTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.loader; +package art.arcane.iris.pack.loading; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisPosition; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.pack.value.IrisPosition; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.testsupport.PlatformLeakGuard; diff --git a/core/src/test/java/art/arcane/iris/core/project/SchemaBuilderIdentityTest.java b/core/src/test/java/art/arcane/iris/pack/schema/SchemaBuilderIdentityTest.java similarity index 91% rename from core/src/test/java/art/arcane/iris/core/project/SchemaBuilderIdentityTest.java rename to core/src/test/java/art/arcane/iris/pack/schema/SchemaBuilderIdentityTest.java index 2c42f1d9e..2a41be4c1 100644 --- a/core/src/test/java/art/arcane/iris/core/project/SchemaBuilderIdentityTest.java +++ b/core/src/test/java/art/arcane/iris/pack/schema/SchemaBuilderIdentityTest.java @@ -16,26 +16,26 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.project; +package art.arcane.iris.pack.schema; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBlockData; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisEntity; -import art.arcane.iris.engine.object.IrisExpression; -import art.arcane.iris.engine.object.IrisGenerator; -import art.arcane.iris.engine.object.IrisHydrology; -import art.arcane.iris.engine.object.IrisImageMap; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisLootTable; -import art.arcane.iris.engine.object.IrisObjectPlacement; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisStructure; -import art.arcane.iris.engine.object.IrisStructurePlacement; -import art.arcane.iris.engine.object.IrisVanillaStructureAdjustment; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.block.IrisBlockData; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.world.entity.IrisEntity; +import art.arcane.iris.generation.noise.IrisExpression; +import art.arcane.iris.generation.noise.IrisGenerator; +import art.arcane.iris.generation.hydrology.IrisHydrology; +import art.arcane.iris.generation.image.IrisImageMap; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.world.loot.IrisLootTable; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.structure.placement.IrisStructure; +import art.arcane.iris.structure.placement.IrisStructurePlacement; +import art.arcane.iris.structure.nativegen.IrisVanillaStructureAdjustment; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.LogLevel; @@ -78,7 +78,7 @@ public class SchemaBuilderIdentityTest { @ClassRule public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean(); - private static final String EXPECTED_SCHEMA_DIGEST = "6dd947428034d7feb5549a37f9b7061c5552601779611587967451e4e54fb984"; + private static final String EXPECTED_SCHEMA_DIGEST = "f9f759367e4712bc5d0ade01b0086d5d5855ede41e8a57d56e067d8c03964d14"; private static final List> SCHEMA_ROOTS = List.of( IrisDimension.class, @@ -120,7 +120,7 @@ public class SchemaBuilderIdentityTest { public void studioSchemaOutputIsByteIdentical() { StringBuilder canonical = new StringBuilder(); for (Class root : SCHEMA_ROOTS) { - canonical.append(root.getName()).append('\n'); + canonical.append(root.getSimpleName()).append('\n'); canonical.append(canonicalize(new SchemaBuilder(root, schemaData()).construct())); canonical.append('\n'); } diff --git a/core/src/test/java/art/arcane/iris/core/project/SchemaBuilderParityTest.java b/core/src/test/java/art/arcane/iris/pack/schema/SchemaBuilderParityTest.java similarity index 91% rename from core/src/test/java/art/arcane/iris/core/project/SchemaBuilderParityTest.java rename to core/src/test/java/art/arcane/iris/pack/schema/SchemaBuilderParityTest.java index 68e7486a1..f5e0b1992 100644 --- a/core/src/test/java/art/arcane/iris/core/project/SchemaBuilderParityTest.java +++ b/core/src/test/java/art/arcane/iris/pack/schema/SchemaBuilderParityTest.java @@ -16,34 +16,34 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.project; +package art.arcane.iris.pack.schema; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.engine.object.IrisBlockData; -import art.arcane.iris.engine.object.IrisExpression; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisObjectPlacement; -import art.arcane.iris.engine.object.IrisStructure; -import art.arcane.iris.engine.object.IrisStructurePlacement; -import art.arcane.iris.engine.object.IrisStructureTerrain; -import art.arcane.iris.engine.object.IrisStructureTerrainMode; -import art.arcane.iris.engine.object.IrisVanillaStructureAdjustment; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListBiome; -import art.arcane.iris.engine.object.annotations.RegistryListEnchantment; -import art.arcane.iris.engine.object.annotations.RegistryListEntityType; -import art.arcane.iris.engine.object.annotations.RegistryListFunction; -import art.arcane.iris.engine.object.annotations.RegistryListItemType; -import art.arcane.iris.engine.object.annotations.RegistryListPotionEffect; -import art.arcane.iris.engine.object.annotations.RegistryListSpecialEntity; -import art.arcane.iris.engine.object.annotations.RegistryListVanillaStructure; -import art.arcane.iris.engine.object.annotations.functions.LootTableKeyFunction; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.generation.block.IrisBlockData; +import art.arcane.iris.generation.noise.IrisExpression; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.structure.placement.IrisStructure; +import art.arcane.iris.structure.placement.IrisStructurePlacement; +import art.arcane.iris.structure.placement.IrisStructureTerrain; +import art.arcane.iris.structure.placement.IrisStructureTerrainMode; +import art.arcane.iris.structure.nativegen.IrisVanillaStructureAdjustment; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListBiome; +import art.arcane.iris.pack.schema.annotation.RegistryListEnchantment; +import art.arcane.iris.pack.schema.annotation.RegistryListEntityType; +import art.arcane.iris.pack.schema.annotation.RegistryListFunction; +import art.arcane.iris.pack.schema.annotation.RegistryListItemType; +import art.arcane.iris.pack.schema.annotation.RegistryListPotionEffect; +import art.arcane.iris.pack.schema.annotation.RegistryListSpecialEntity; +import art.arcane.iris.pack.schema.annotation.RegistryListVanillaStructure; +import art.arcane.iris.pack.schema.annotation.functions.LootTableKeyFunction; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.LogLevel; @@ -380,63 +380,63 @@ public class SchemaBuilderParityTest { return values; } - @Desc("Registry dependent model.") + @Description("Registry dependent model.") public static class RegistryModel { - @Desc("Potion field.") + @Description("Potion field.") @RegistryListPotionEffect private String potion = ""; - @Desc("Enchant field.") + @Description("Enchant field.") @RegistryListEnchantment private String enchant = ""; - @Desc("Item field.") + @Description("Item field.") @RegistryListItemType private String item = ""; - @Desc("Entity field.") + @Description("Entity field.") @RegistryListEntityType private String entity = ""; - @Desc("Biome field.") + @Description("Biome field.") @RegistryListBiome private String biome = ""; - @Desc("Biome scatter field.") + @Description("Biome scatter field.") @ArrayType(type = String.class) @RegistryListBiome private KList biomeScatter = new KList<>(); - @Desc("Special entity field.") + @Description("Special entity field.") @RegistryListSpecialEntity private String specialEntity = ""; } - @Desc("Independent model.") + @Description("Independent model.") public static class IndependentModel { - @Desc("The count.") + @Description("The count.") @MinNumber(2) @MaxNumber(9) private int count = 5; - @Desc("A flag.") + @Description("A flag.") private boolean flag = false; - @Desc("A flavor.") + @Description("A flavor.") private Flavor flavor = Flavor.ALPHA; } - @Desc("Structure array model.") + @Description("Structure array model.") public static class StructureArrayModel { - @Desc("Disabled structures.") + @Description("Disabled structures.") @ArrayType(type = String.class) @RegistryListVanillaStructure private KList disabled = new KList<>(); } - @Desc("Loot table model.") + @Description("Loot table model.") public static class LootTableModel { - @Desc("Loot table.") + @Description("Loot table.") @RegistryListFunction(LootTableKeyFunction.class) private String lootTable = ""; } diff --git a/core/src/test/java/art/arcane/iris/core/compat/CompatFixtures.java b/core/src/test/java/art/arcane/iris/pack/validation/CompatFixtures.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/compat/CompatFixtures.java rename to core/src/test/java/art/arcane/iris/pack/validation/CompatFixtures.java index 36ad97adb..5526300d5 100644 --- a/core/src/test/java/art/arcane/iris/core/compat/CompatFixtures.java +++ b/core/src/test/java/art/arcane/iris/pack/validation/CompatFixtures.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.compat; +package art.arcane.iris.pack.validation; -import art.arcane.iris.engine.framework.MeteredCache; -import art.arcane.iris.engine.framework.PreservationRegistry; +import art.arcane.iris.generation.runtime.MeteredCache; +import art.arcane.iris.generation.runtime.PreservationRegistry; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.IrisServices; diff --git a/core/src/test/java/art/arcane/iris/core/compat/ContentGatePlaceholderTest.java b/core/src/test/java/art/arcane/iris/pack/validation/ContentGatePlaceholderTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/core/compat/ContentGatePlaceholderTest.java rename to core/src/test/java/art/arcane/iris/pack/validation/ContentGatePlaceholderTest.java index 9fa954236..b00081d3c 100644 --- a/core/src/test/java/art/arcane/iris/core/compat/ContentGatePlaceholderTest.java +++ b/core/src/test/java/art/arcane/iris/pack/validation/ContentGatePlaceholderTest.java @@ -1,14 +1,14 @@ -package art.arcane.iris.core.compat; +package art.arcane.iris.pack.validation; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IObjectPlacer; -import art.arcane.iris.engine.object.IrisBlockData; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisObjectPlacement; -import art.arcane.iris.engine.object.IrisObjectReplace; -import art.arcane.iris.engine.object.ObjectPlaceMode; -import art.arcane.iris.engine.object.TileData; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.object.IObjectPlacer; +import art.arcane.iris.generation.block.IrisBlockData; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.structure.object.IrisObjectReplace; +import art.arcane.iris.structure.object.ObjectPlaceMode; +import art.arcane.iris.generation.block.TileData; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; diff --git a/core/src/test/java/art/arcane/iris/core/compat/ContentGateTest.java b/core/src/test/java/art/arcane/iris/pack/validation/ContentGateTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/compat/ContentGateTest.java rename to core/src/test/java/art/arcane/iris/pack/validation/ContentGateTest.java index 0d8d43464..691bdd771 100644 --- a/core/src/test/java/art/arcane/iris/core/compat/ContentGateTest.java +++ b/core/src/test/java/art/arcane/iris/pack/validation/ContentGateTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.compat; +package art.arcane.iris.pack.validation; -import art.arcane.iris.core.compat.ContentGate.BlockResolution; -import art.arcane.iris.core.compat.ContentGate.BlockResolution.Source; +import art.arcane.iris.pack.validation.ContentGate.BlockResolution; +import art.arcane.iris.pack.validation.ContentGate.BlockResolution.Source; import org.junit.Test; import java.util.List; diff --git a/core/src/test/java/art/arcane/iris/core/compat/ContentGateWalkerTest.java b/core/src/test/java/art/arcane/iris/pack/validation/ContentGateWalkerTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/core/compat/ContentGateWalkerTest.java rename to core/src/test/java/art/arcane/iris/pack/validation/ContentGateWalkerTest.java index f5651fc23..7939bdcbb 100644 --- a/core/src/test/java/art/arcane/iris/core/compat/ContentGateWalkerTest.java +++ b/core/src/test/java/art/arcane/iris/pack/validation/ContentGateWalkerTest.java @@ -1,22 +1,22 @@ -package art.arcane.iris.core.compat; +package art.arcane.iris.pack.validation; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBiomeCustom; -import art.arcane.iris.engine.object.IrisBiomeCustomSpawn; -import art.arcane.iris.engine.object.IrisBiomePaletteLayer; -import art.arcane.iris.engine.object.IrisBlockData; -import art.arcane.iris.engine.object.IrisDecorator; -import art.arcane.iris.engine.object.IrisEffect; -import art.arcane.iris.engine.object.IrisEnchantment; -import art.arcane.iris.engine.object.IrisEntity; -import art.arcane.iris.engine.object.IrisLoot; -import art.arcane.iris.engine.object.IrisLootTable; -import art.arcane.iris.engine.object.IrisMaterialPalette; -import art.arcane.iris.engine.object.IrisObjectPlacement; -import art.arcane.iris.engine.object.IrisObjectReplace; -import art.arcane.iris.engine.object.annotations.RegistryListBlockType; -import art.arcane.iris.engine.object.annotations.RegistryListItemType; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiomeCustom; +import art.arcane.iris.generation.biome.IrisBiomeCustomSpawn; +import art.arcane.iris.generation.biome.IrisBiomePaletteLayer; +import art.arcane.iris.generation.block.IrisBlockData; +import art.arcane.iris.generation.decoration.IrisDecorator; +import art.arcane.iris.world.entity.IrisEffect; +import art.arcane.iris.world.entity.IrisEnchantment; +import art.arcane.iris.world.entity.IrisEntity; +import art.arcane.iris.world.loot.IrisLoot; +import art.arcane.iris.world.loot.IrisLootTable; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.structure.object.IrisObjectReplace; +import art.arcane.iris.pack.schema.annotation.RegistryListBlockType; +import art.arcane.iris.pack.schema.annotation.RegistryListItemType; import art.arcane.volmlib.util.collection.KList; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/compat/IrisBlockDataResolutionTest.java b/core/src/test/java/art/arcane/iris/pack/validation/IrisBlockDataResolutionTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/compat/IrisBlockDataResolutionTest.java rename to core/src/test/java/art/arcane/iris/pack/validation/IrisBlockDataResolutionTest.java index 99c9f6b5e..e8cf8ebe2 100644 --- a/core/src/test/java/art/arcane/iris/core/compat/IrisBlockDataResolutionTest.java +++ b/core/src/test/java/art/arcane/iris/pack/validation/IrisBlockDataResolutionTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.compat; +package art.arcane.iris.pack.validation; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisBlockData; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.block.IrisBlockData; import art.arcane.iris.spi.PlatformBlockState; import org.junit.AfterClass; import org.junit.BeforeClass; diff --git a/core/src/test/java/art/arcane/iris/core/compat/PackCompatReportTest.java b/core/src/test/java/art/arcane/iris/pack/validation/PackCompatReportTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/compat/PackCompatReportTest.java rename to core/src/test/java/art/arcane/iris/pack/validation/PackCompatReportTest.java index 4a73e76d1..63f0c8b67 100644 --- a/core/src/test/java/art/arcane/iris/core/compat/PackCompatReportTest.java +++ b/core/src/test/java/art/arcane/iris/pack/validation/PackCompatReportTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.compat; +package art.arcane.iris.pack.validation; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/HydrologyEnumDescriptionsTest.java b/core/src/test/java/art/arcane/iris/pack/value/HydrologyEnumDescriptionsTest.java similarity index 59% rename from core/src/test/java/art/arcane/iris/engine/object/HydrologyEnumDescriptionsTest.java rename to core/src/test/java/art/arcane/iris/pack/value/HydrologyEnumDescriptionsTest.java index e5f105f3d..ca21dcaf5 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/HydrologyEnumDescriptionsTest.java +++ b/core/src/test/java/art/arcane/iris/pack/value/HydrologyEnumDescriptionsTest.java @@ -1,6 +1,12 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.pack.value; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.iris.generation.hydrology.IrisGrottoPoolLevel; +import art.arcane.iris.generation.hydrology.IrisRiverBedProfile; +import art.arcane.iris.generation.hydrology.IrisRiverBlendStyle; +import art.arcane.iris.generation.hydrology.IrisRiverPlacementMode; +import art.arcane.iris.generation.hydrology.IrisRiverRoutingMode; + +import art.arcane.volmlib.util.documentation.Description; import org.junit.Test; import java.lang.reflect.Field; @@ -21,9 +27,9 @@ public class HydrologyEnumDescriptionsTest { @Test public void hydrologyEnumsDescribeThemselvesForTheSchema() { for (Class> type : HYDROLOGY_ENUMS) { - Desc description = type.getAnnotation(Desc.class); - assertNotNull(type.getSimpleName() + " needs a @Desc", description); - assertFalse(type.getSimpleName() + " has a blank @Desc", description.value().isBlank()); + Description description = type.getAnnotation(Description.class); + assertNotNull(type.getSimpleName() + " needs a @Description", description); + assertFalse(type.getSimpleName() + " has a blank @Description", description.value().isBlank()); } } @@ -32,10 +38,10 @@ public class HydrologyEnumDescriptionsTest { for (Class> type : HYDROLOGY_ENUMS) { for (Enum constant : type.getEnumConstants()) { Field field = type.getField(constant.name()); - Desc description = field.getAnnotation(Desc.class); + Description description = field.getAnnotation(Description.class); String label = type.getSimpleName() + "." + constant.name(); - assertNotNull(label + " needs a @Desc", description); - assertFalse(label + " has a blank @Desc", description.value().isBlank()); + assertNotNull(label + " needs a @Description", description); + assertFalse(label + " has a blank @Description", description.value().isBlank()); } } } diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisDurationTest.java b/core/src/test/java/art/arcane/iris/pack/value/IrisDurationTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/object/IrisDurationTest.java rename to core/src/test/java/art/arcane/iris/pack/value/IrisDurationTest.java index 8adf8d96c..e3af07503 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisDurationTest.java +++ b/core/src/test/java/art/arcane/iris/pack/value/IrisDurationTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.pack.value; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisMathNoiseHotPathParityTest.java b/core/src/test/java/art/arcane/iris/pack/value/IrisMathNoiseHotPathParityTest.java similarity index 82% rename from core/src/test/java/art/arcane/iris/engine/object/IrisMathNoiseHotPathParityTest.java rename to core/src/test/java/art/arcane/iris/pack/value/IrisMathNoiseHotPathParityTest.java index e93ec5a6e..26b0b7458 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisMathNoiseHotPathParityTest.java +++ b/core/src/test/java/art/arcane/iris/pack/value/IrisMathNoiseHotPathParityTest.java @@ -1,9 +1,14 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.pack.value; -import art.arcane.iris.util.project.interpolation.InterpolationMethod3D; -import art.arcane.iris.util.project.interpolation.Interpolation3D; -import art.arcane.iris.util.project.noise.HexJamesNoise; -import art.arcane.iris.util.project.noise.HexRandomSizeNoise; +import art.arcane.iris.generation.noise.IrisGenerator; +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.generation.noise.IrisNoiseGenerator; +import art.arcane.iris.generation.noise.NoiseStyle; + +import art.arcane.volmlib.util.interpolation.InterpolationMethod3D; +import art.arcane.volmlib.util.interpolation.Interpolation3D; +import art.arcane.volmlib.util.noise.HexJamesNoise; +import art.arcane.volmlib.util.noise.HexRandomSizeNoise; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.function.NoiseProvider3; import art.arcane.volmlib.util.math.RNG; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisPlatformIsolationTest.java b/core/src/test/java/art/arcane/iris/pack/value/IrisPlatformIsolationTest.java similarity index 92% rename from core/src/test/java/art/arcane/iris/engine/object/IrisPlatformIsolationTest.java rename to core/src/test/java/art/arcane/iris/pack/value/IrisPlatformIsolationTest.java index f9b4627cc..11d6d883e 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisPlatformIsolationTest.java +++ b/core/src/test/java/art/arcane/iris/pack/value/IrisPlatformIsolationTest.java @@ -1,4 +1,8 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.pack.value; + +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.world.IrisEnvironment; +import art.arcane.iris.world.IrisWorld; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisRaritySelectionTest.java b/core/src/test/java/art/arcane/iris/pack/value/IrisRaritySelectionTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/object/IrisRaritySelectionTest.java rename to core/src/test/java/art/arcane/iris/pack/value/IrisRaritySelectionTest.java index a273533c3..9714fc48a 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisRaritySelectionTest.java +++ b/core/src/test/java/art/arcane/iris/pack/value/IrisRaritySelectionTest.java @@ -1,4 +1,8 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.pack.value; + +import art.arcane.iris.generation.biome.IrisBiome; + +import art.arcane.volmlib.util.math.Rarity; import com.google.gson.Gson; import org.junit.Test; @@ -132,7 +136,7 @@ public class IrisRaritySelectionTest { return expanded; } - private record Choice(int id, int rarity) implements IRare { + private record Choice(int id, int rarity) implements Rarity { @Override public int getRarity() { return rarity; diff --git a/core/src/test/java/art/arcane/iris/engine/object/PlatformStateHookContractTest.java b/core/src/test/java/art/arcane/iris/pack/value/PlatformStateHookContractTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/engine/object/PlatformStateHookContractTest.java rename to core/src/test/java/art/arcane/iris/pack/value/PlatformStateHookContractTest.java index b0c0ef2dc..8a24e5fcd 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/PlatformStateHookContractTest.java +++ b/core/src/test/java/art/arcane/iris/pack/value/PlatformStateHookContractTest.java @@ -1,4 +1,8 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.pack.value; + +import art.arcane.iris.generation.block.BlockDataMergeSupport; +import art.arcane.iris.generation.block.TileData; +import art.arcane.iris.structure.object.IrisObjectRotation; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.volmlib.util.collection.KMap; diff --git a/core/src/test/java/art/arcane/iris/engine/object/RemovedDeadFieldsTest.java b/core/src/test/java/art/arcane/iris/pack/value/RemovedDeadFieldsTest.java similarity index 88% rename from core/src/test/java/art/arcane/iris/engine/object/RemovedDeadFieldsTest.java rename to core/src/test/java/art/arcane/iris/pack/value/RemovedDeadFieldsTest.java index 0535448d3..70fc43cff 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/RemovedDeadFieldsTest.java +++ b/core/src/test/java/art/arcane/iris/pack/value/RemovedDeadFieldsTest.java @@ -1,6 +1,12 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.pack.value; -import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.generation.decoration.tree.IrisTree; +import art.arcane.iris.generation.terrain.InferredType; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.structure.object.IrisObjectPlacement; + +import art.arcane.iris.configuration.IrisSettings; import com.google.gson.Gson; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/SchemaMetadataCorrectionsTest.java b/core/src/test/java/art/arcane/iris/pack/value/SchemaMetadataCorrectionsTest.java similarity index 63% rename from core/src/test/java/art/arcane/iris/engine/object/SchemaMetadataCorrectionsTest.java rename to core/src/test/java/art/arcane/iris/pack/value/SchemaMetadataCorrectionsTest.java index 1e6f562ed..65d761776 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/SchemaMetadataCorrectionsTest.java +++ b/core/src/test/java/art/arcane/iris/pack/value/SchemaMetadataCorrectionsTest.java @@ -1,10 +1,17 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.pack.value; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; -import art.arcane.iris.engine.object.annotations.RegistryListResource; +import art.arcane.iris.generation.terrain.IrisSlopeClip; +import art.arcane.iris.pack.mod.IrisMod; +import art.arcane.iris.pack.mod.IrisModNoiseStyleReplacer; +import art.arcane.iris.pack.mod.IrisModObjectReplacer; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectLimit; + +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; import org.junit.Test; import java.lang.reflect.Field; @@ -26,11 +33,11 @@ public class SchemaMetadataCorrectionsTest { @Test public void correctedTypesDescribeTheSchemaTheyExpose() { - assertEquals("Represents a pack modification schema", IrisMod.class.getAnnotation(Desc.class).value()); + assertEquals("Represents a pack modification schema", IrisMod.class.getAnnotation(Description.class).value()); assertEquals("Limits object placement by minimum and maximum world height", - IrisObjectLimit.class.getAnnotation(Desc.class).value()); + IrisObjectLimit.class.getAnnotation(Description.class).value()); assertEquals("Limits placement to a minimum and maximum terrain slope", - IrisSlopeClip.class.getAnnotation(Desc.class).value()); + IrisSlopeClip.class.getAnnotation(Description.class).value()); } @Test diff --git a/core/src/test/java/art/arcane/iris/util/common/misc/WebCacheTest.java b/core/src/test/java/art/arcane/iris/platform/bootstrap/WebCacheTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/util/common/misc/WebCacheTest.java rename to core/src/test/java/art/arcane/iris/platform/bootstrap/WebCacheTest.java index 94b4b2bcb..3d1780bc9 100644 --- a/core/src/test/java/art/arcane/iris/util/common/misc/WebCacheTest.java +++ b/core/src/test/java/art/arcane/iris/platform/bootstrap/WebCacheTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.common.misc; +package art.arcane.iris.platform.bootstrap; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; diff --git a/core/src/test/java/art/arcane/iris/core/service/BoardSVCJigsawContextTest.java b/core/src/test/java/art/arcane/iris/platform/bukkit/BoardSVCJigsawContextTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/core/service/BoardSVCJigsawContextTest.java rename to core/src/test/java/art/arcane/iris/platform/bukkit/BoardSVCJigsawContextTest.java index 120618780..3e30ccebd 100644 --- a/core/src/test/java/art/arcane/iris/core/service/BoardSVCJigsawContextTest.java +++ b/core/src/test/java/art/arcane/iris/platform/bukkit/BoardSVCJigsawContextTest.java @@ -1,6 +1,9 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.platform.bukkit; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioMode; +import art.arcane.iris.studio.jigsaw.JigsawStudioBoardContext; +import art.arcane.iris.studio.jigsaw.JigsawStudioBoardState; + +import art.arcane.iris.studio.jigsaw.JigsawStudioMode; import org.junit.Test; import java.util.List; diff --git a/core/src/test/java/art/arcane/iris/core/service/BoardSVCSavedBiomeTest.java b/core/src/test/java/art/arcane/iris/platform/bukkit/BoardSVCSavedBiomeTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/core/service/BoardSVCSavedBiomeTest.java rename to core/src/test/java/art/arcane/iris/platform/bukkit/BoardSVCSavedBiomeTest.java index 1ad72557f..4edcb2f5b 100644 --- a/core/src/test/java/art/arcane/iris/core/service/BoardSVCSavedBiomeTest.java +++ b/core/src/test/java/art/arcane/iris/platform/bukkit/BoardSVCSavedBiomeTest.java @@ -1,27 +1,30 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.platform.bukkit; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioMode; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.BiomeEnvironment; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.GenerationSessionManager; -import art.arcane.iris.engine.framework.GenerationTransitionGate; -import art.arcane.iris.engine.history.SavedBiomeUnavailableException; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.studio.jigsaw.JigsawStudioBoardContext; +import art.arcane.iris.studio.jigsaw.JigsawStudioBoardState; + +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.studio.jigsaw.JigsawStudioMode; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.BiomeEnvironment; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.GenerationSessionManager; +import art.arcane.iris.generation.runtime.GenerationTransitionGate; +import art.arcane.iris.world.history.SavedBiomeUnavailableException; +import art.arcane.iris.generation.mantle.EngineMantle; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformRegistries; import art.arcane.iris.testsupport.PlatformLeakGuard; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.board.Board; import art.arcane.volmlib.util.board.BoardSettings; import org.bukkit.Location; diff --git a/core/src/test/java/art/arcane/iris/core/service/BoardSVCStudioEligibilityTest.java b/core/src/test/java/art/arcane/iris/platform/bukkit/BoardSVCStudioEligibilityTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/core/service/BoardSVCStudioEligibilityTest.java rename to core/src/test/java/art/arcane/iris/platform/bukkit/BoardSVCStudioEligibilityTest.java index 9b6ce5e2f..f880bfcf0 100644 --- a/core/src/test/java/art/arcane/iris/core/service/BoardSVCStudioEligibilityTest.java +++ b/core/src/test/java/art/arcane/iris/platform/bukkit/BoardSVCStudioEligibilityTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.platform.bukkit; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; import org.junit.Test; import java.util.UUID; diff --git a/core/src/test/java/art/arcane/iris/platform/bukkit/BukkitCustomBlockTransformTest.java b/core/src/test/java/art/arcane/iris/platform/bukkit/BukkitCustomBlockTransformTest.java index bba41279a..2fe1c7c9f 100644 --- a/core/src/test/java/art/arcane/iris/platform/bukkit/BukkitCustomBlockTransformTest.java +++ b/core/src/test/java/art/arcane/iris/platform/bukkit/BukkitCustomBlockTransformTest.java @@ -1,12 +1,12 @@ package art.arcane.iris.platform.bukkit; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.core.service.ExternalDataSVC; -import art.arcane.iris.engine.object.IrisObjectRotation; +import art.arcane.iris.integration.Identifier; +import art.arcane.iris.integration.ExternalDataSVC; +import art.arcane.iris.structure.object.IrisObjectRotation; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.testsupport.BukkitTestServer; -import art.arcane.iris.util.common.data.IrisCustomData; -import art.arcane.iris.util.common.data.registry.RegistryUtil; +import art.arcane.iris.generation.block.IrisCustomData; +import art.arcane.iris.platform.bukkit.registry.RegistryUtil; import org.bukkit.Material; import org.bukkit.block.data.BlockData; import org.junit.BeforeClass; diff --git a/core/src/test/java/art/arcane/iris/platform/bukkit/BukkitSpiConformanceTest.java b/core/src/test/java/art/arcane/iris/platform/bukkit/BukkitSpiConformanceTest.java index 23d3dcf17..598552c53 100644 --- a/core/src/test/java/art/arcane/iris/platform/bukkit/BukkitSpiConformanceTest.java +++ b/core/src/test/java/art/arcane/iris/platform/bukkit/BukkitSpiConformanceTest.java @@ -18,15 +18,15 @@ package art.arcane.iris.platform.bukkit; -import art.arcane.iris.core.link.Identifier; +import art.arcane.iris.integration.Identifier; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBlockProperty; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformRegistries; import art.arcane.iris.testsupport.BukkitTestServer; -import art.arcane.iris.util.common.data.IrisCustomData; -import art.arcane.iris.util.project.matter.slices.PlatformBlockMatter; +import art.arcane.iris.generation.block.IrisCustomData; +import art.arcane.iris.world.storage.matter.PlatformBlockMatter; import io.papermc.paper.registry.RegistryAccess; import org.bukkit.Bukkit; import org.bukkit.World; diff --git a/core/src/test/java/art/arcane/iris/core/nms/MinecraftVersionTest.java b/core/src/test/java/art/arcane/iris/platform/bukkit/nms/MinecraftVersionTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/nms/MinecraftVersionTest.java rename to core/src/test/java/art/arcane/iris/platform/bukkit/nms/MinecraftVersionTest.java index 52061a3ef..49a3748d1 100644 --- a/core/src/test/java/art/arcane/iris/core/nms/MinecraftVersionTest.java +++ b/core/src/test/java/art/arcane/iris/platform/bukkit/nms/MinecraftVersionTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.nms; +package art.arcane.iris.platform.bukkit.nms; import org.bukkit.Server; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/nms/NmsBindingSelectorTest.java b/core/src/test/java/art/arcane/iris/platform/bukkit/nms/NmsBindingSelectorTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/nms/NmsBindingSelectorTest.java rename to core/src/test/java/art/arcane/iris/platform/bukkit/nms/NmsBindingSelectorTest.java index adb059e75..c5fee3945 100644 --- a/core/src/test/java/art/arcane/iris/core/nms/NmsBindingSelectorTest.java +++ b/core/src/test/java/art/arcane/iris/platform/bukkit/nms/NmsBindingSelectorTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.nms; +package art.arcane.iris.platform.bukkit.nms; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/nms/ServerShutdownBoundaryTest.java b/core/src/test/java/art/arcane/iris/platform/bukkit/nms/ServerShutdownBoundaryTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/nms/ServerShutdownBoundaryTest.java rename to core/src/test/java/art/arcane/iris/platform/bukkit/nms/ServerShutdownBoundaryTest.java index 230aaf73b..2cfd4d79b 100644 --- a/core/src/test/java/art/arcane/iris/core/nms/ServerShutdownBoundaryTest.java +++ b/core/src/test/java/art/arcane/iris/platform/bukkit/nms/ServerShutdownBoundaryTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.nms; +package art.arcane.iris.platform.bukkit.nms; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/nms/datapack/DataVersionTest.java b/core/src/test/java/art/arcane/iris/platform/bukkit/nms/datapack/DataVersionTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/core/nms/datapack/DataVersionTest.java rename to core/src/test/java/art/arcane/iris/platform/bukkit/nms/datapack/DataVersionTest.java index a13c8d373..f036c6224 100644 --- a/core/src/test/java/art/arcane/iris/core/nms/datapack/DataVersionTest.java +++ b/core/src/test/java/art/arcane/iris/platform/bukkit/nms/datapack/DataVersionTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.nms.datapack; +package art.arcane.iris.platform.bukkit.nms.datapack; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/nms/datapack/v1217/DataFixerV1217ClockTest.java b/core/src/test/java/art/arcane/iris/platform/bukkit/nms/datapack/v1217/DataFixerV1217ClockTest.java similarity index 90% rename from core/src/test/java/art/arcane/iris/core/nms/datapack/v1217/DataFixerV1217ClockTest.java rename to core/src/test/java/art/arcane/iris/platform/bukkit/nms/datapack/v1217/DataFixerV1217ClockTest.java index 14b05a67d..b8816c49a 100644 --- a/core/src/test/java/art/arcane/iris/core/nms/datapack/v1217/DataFixerV1217ClockTest.java +++ b/core/src/test/java/art/arcane/iris/platform/bukkit/nms/datapack/v1217/DataFixerV1217ClockTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.nms.datapack.v1217; +package art.arcane.iris.platform.bukkit.nms.datapack.v1217; -import art.arcane.iris.core.nms.datapack.IDataFixer.Dimension; +import art.arcane.iris.platform.bukkit.nms.datapack.IDataFixer.Dimension; import art.arcane.volmlib.util.json.JSONObject; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/nms/datapack/v1217/DataFixerV1217CustomBiomeTest.java b/core/src/test/java/art/arcane/iris/platform/bukkit/nms/datapack/v1217/DataFixerV1217CustomBiomeTest.java similarity index 91% rename from core/src/test/java/art/arcane/iris/core/nms/datapack/v1217/DataFixerV1217CustomBiomeTest.java rename to core/src/test/java/art/arcane/iris/platform/bukkit/nms/datapack/v1217/DataFixerV1217CustomBiomeTest.java index 9538f1c83..43a749ed3 100644 --- a/core/src/test/java/art/arcane/iris/core/nms/datapack/v1217/DataFixerV1217CustomBiomeTest.java +++ b/core/src/test/java/art/arcane/iris/platform/bukkit/nms/datapack/v1217/DataFixerV1217CustomBiomeTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.nms.datapack.v1217; +package art.arcane.iris.platform.bukkit.nms.datapack.v1217; -import art.arcane.iris.engine.object.IrisBiomeCustom; -import art.arcane.iris.engine.object.IrisBiomeCustomParticle; +import art.arcane.iris.generation.biome.IrisBiomeCustom; +import art.arcane.iris.generation.biome.IrisBiomeCustomParticle; import art.arcane.volmlib.util.json.JSONArray; import art.arcane.volmlib.util.json.JSONObject; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/nms/datapack/v1217/DataFixerV1217DimensionTypeTest.java b/core/src/test/java/art/arcane/iris/platform/bukkit/nms/datapack/v1217/DataFixerV1217DimensionTypeTest.java similarity index 90% rename from core/src/test/java/art/arcane/iris/core/nms/datapack/v1217/DataFixerV1217DimensionTypeTest.java rename to core/src/test/java/art/arcane/iris/platform/bukkit/nms/datapack/v1217/DataFixerV1217DimensionTypeTest.java index 27b50c21e..696a2e6ff 100644 --- a/core/src/test/java/art/arcane/iris/core/nms/datapack/v1217/DataFixerV1217DimensionTypeTest.java +++ b/core/src/test/java/art/arcane/iris/platform/bukkit/nms/datapack/v1217/DataFixerV1217DimensionTypeTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.nms.datapack.v1217; +package art.arcane.iris.platform.bukkit.nms.datapack.v1217; -import art.arcane.iris.core.nms.datapack.IDataFixer.Dimension; -import art.arcane.iris.engine.object.IrisDimensionTypeOptions; +import art.arcane.iris.platform.bukkit.nms.datapack.IDataFixer.Dimension; +import art.arcane.iris.generation.terrain.IrisDimensionTypeOptions; import art.arcane.volmlib.util.json.JSONObject; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/nms/v1X/NMSBinding1XWorldGenerationTest.java b/core/src/test/java/art/arcane/iris/platform/bukkit/nms/v1X/NMSBinding1XWorldGenerationTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/core/nms/v1X/NMSBinding1XWorldGenerationTest.java rename to core/src/test/java/art/arcane/iris/platform/bukkit/nms/v1X/NMSBinding1XWorldGenerationTest.java index b8538cb8e..60ed7204c 100644 --- a/core/src/test/java/art/arcane/iris/core/nms/v1X/NMSBinding1XWorldGenerationTest.java +++ b/core/src/test/java/art/arcane/iris/platform/bukkit/nms/v1X/NMSBinding1XWorldGenerationTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.nms.v1X; +package art.arcane.iris.platform.bukkit.nms.v1X; -import art.arcane.iris.core.nms.INMSBinding; +import art.arcane.iris.platform.bukkit.nms.INMSBinding; import org.bukkit.World; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/util/common/plugin/VolmitSenderComponentDeliveryTest.java b/core/src/test/java/art/arcane/iris/platform/bukkit/plugin/VolmitSenderComponentDeliveryTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/util/common/plugin/VolmitSenderComponentDeliveryTest.java rename to core/src/test/java/art/arcane/iris/platform/bukkit/plugin/VolmitSenderComponentDeliveryTest.java index 20f1a84fa..04954f3f3 100644 --- a/core/src/test/java/art/arcane/iris/util/common/plugin/VolmitSenderComponentDeliveryTest.java +++ b/core/src/test/java/art/arcane/iris/platform/bukkit/plugin/VolmitSenderComponentDeliveryTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.util.common.plugin; +package art.arcane.iris.platform.bukkit.plugin; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.util.common.format.C; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.localization.C; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer; diff --git a/core/src/test/java/art/arcane/iris/engine/platform/BukkitChunkGeneratorCloseTest.java b/core/src/test/java/art/arcane/iris/platform/generation/BukkitChunkGeneratorCloseTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/platform/BukkitChunkGeneratorCloseTest.java rename to core/src/test/java/art/arcane/iris/platform/generation/BukkitChunkGeneratorCloseTest.java index 1594ca4d8..814cb35e5 100644 --- a/core/src/test/java/art/arcane/iris/engine/platform/BukkitChunkGeneratorCloseTest.java +++ b/core/src/test/java/art/arcane/iris/platform/generation/BukkitChunkGeneratorCloseTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.platform; +package art.arcane.iris.platform.generation; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.io.ReactiveFolder; import art.arcane.volmlib.util.scheduling.Looper; diff --git a/core/src/test/java/art/arcane/iris/engine/platform/BukkitChunkGeneratorGenerationStageGateTest.java b/core/src/test/java/art/arcane/iris/platform/generation/BukkitChunkGeneratorGenerationStageGateTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/platform/BukkitChunkGeneratorGenerationStageGateTest.java rename to core/src/test/java/art/arcane/iris/platform/generation/BukkitChunkGeneratorGenerationStageGateTest.java index 0e7eba2c5..e6ea59622 100644 --- a/core/src/test/java/art/arcane/iris/engine/platform/BukkitChunkGeneratorGenerationStageGateTest.java +++ b/core/src/test/java/art/arcane/iris/platform/generation/BukkitChunkGeneratorGenerationStageGateTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.platform; +package art.arcane.iris.platform.generation; import art.arcane.iris.spi.IrisLogging; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/platform/BukkitChunkGeneratorInitialSpawnTest.java b/core/src/test/java/art/arcane/iris/platform/generation/BukkitChunkGeneratorInitialSpawnTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/platform/BukkitChunkGeneratorInitialSpawnTest.java rename to core/src/test/java/art/arcane/iris/platform/generation/BukkitChunkGeneratorInitialSpawnTest.java index 02dc444ee..3268fea5f 100644 --- a/core/src/test/java/art/arcane/iris/engine/platform/BukkitChunkGeneratorInitialSpawnTest.java +++ b/core/src/test/java/art/arcane/iris/platform/generation/BukkitChunkGeneratorInitialSpawnTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.platform; +package art.arcane.iris.platform.generation; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import org.bukkit.Chunk; import org.bukkit.Location; import org.bukkit.World; diff --git a/core/src/test/java/art/arcane/iris/engine/platform/BukkitChunkGeneratorInitializationModeTest.java b/core/src/test/java/art/arcane/iris/platform/generation/BukkitChunkGeneratorInitializationModeTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/platform/BukkitChunkGeneratorInitializationModeTest.java rename to core/src/test/java/art/arcane/iris/platform/generation/BukkitChunkGeneratorInitializationModeTest.java index 0dcc26237..f1954c449 100644 --- a/core/src/test/java/art/arcane/iris/engine/platform/BukkitChunkGeneratorInitializationModeTest.java +++ b/core/src/test/java/art/arcane/iris/platform/generation/BukkitChunkGeneratorInitializationModeTest.java @@ -1,14 +1,14 @@ -package art.arcane.iris.engine.platform; +package art.arcane.iris.platform.generation; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.hydrology.HydrologyPlannerSettings; -import art.arcane.iris.engine.hydrology.runtime.IrisHydrologyRuntime; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.hydrology.HydrologyPlannerSettings; +import art.arcane.iris.generation.hydrology.runtime.IrisHydrologyRuntime; import org.bukkit.Chunk; import org.bukkit.World; -import art.arcane.iris.engine.object.StudioMode; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.studio.StudioMode; +import art.arcane.iris.generation.terrain.IrisDimension; import org.junit.Test; import java.lang.reflect.Field; diff --git a/core/src/test/java/art/arcane/iris/engine/platform/BukkitChunkGeneratorSpawnHydrologyTest.java b/core/src/test/java/art/arcane/iris/platform/generation/BukkitChunkGeneratorSpawnHydrologyTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/platform/BukkitChunkGeneratorSpawnHydrologyTest.java rename to core/src/test/java/art/arcane/iris/platform/generation/BukkitChunkGeneratorSpawnHydrologyTest.java index f61dcdc66..c993c8bd2 100644 --- a/core/src/test/java/art/arcane/iris/engine/platform/BukkitChunkGeneratorSpawnHydrologyTest.java +++ b/core/src/test/java/art/arcane/iris/platform/generation/BukkitChunkGeneratorSpawnHydrologyTest.java @@ -1,12 +1,12 @@ -package art.arcane.iris.engine.platform; +package art.arcane.iris.platform.generation; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.hydrology.HydrologyPlannerSettings; -import art.arcane.iris.engine.hydrology.runtime.IrisHydrologyRuntime; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.StudioMode; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.hydrology.HydrologyPlannerSettings; +import art.arcane.iris.generation.hydrology.runtime.IrisHydrologyRuntime; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.studio.StudioMode; import org.bukkit.Chunk; import org.bukkit.World; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/platform/BukkitChunkGeneratorStartupContentTest.java b/core/src/test/java/art/arcane/iris/platform/generation/BukkitChunkGeneratorStartupContentTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/platform/BukkitChunkGeneratorStartupContentTest.java rename to core/src/test/java/art/arcane/iris/platform/generation/BukkitChunkGeneratorStartupContentTest.java index d86069b20..1370c8f24 100644 --- a/core/src/test/java/art/arcane/iris/engine/platform/BukkitChunkGeneratorStartupContentTest.java +++ b/core/src/test/java/art/arcane/iris/platform/generation/BukkitChunkGeneratorStartupContentTest.java @@ -1,12 +1,12 @@ -package art.arcane.iris.engine.platform; +package art.arcane.iris.platform.generation; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.EngineTarget; -import art.arcane.iris.engine.object.IrisWorld; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.EngineTarget; +import art.arcane.iris.world.IrisWorld; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.plugin.VolmitPlugin; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.platform.bukkit.plugin.VolmitPlugin; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.bukkit.WorldIdentity; import org.bukkit.Bukkit; import org.bukkit.HeightMap; diff --git a/core/src/test/java/art/arcane/iris/engine/platform/BukkitChunkGeneratorStudioSelectionTest.java b/core/src/test/java/art/arcane/iris/platform/generation/BukkitChunkGeneratorStudioSelectionTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/platform/BukkitChunkGeneratorStudioSelectionTest.java rename to core/src/test/java/art/arcane/iris/platform/generation/BukkitChunkGeneratorStudioSelectionTest.java index 60825f792..5229112a2 100644 --- a/core/src/test/java/art/arcane/iris/engine/platform/BukkitChunkGeneratorStudioSelectionTest.java +++ b/core/src/test/java/art/arcane/iris/platform/generation/BukkitChunkGeneratorStudioSelectionTest.java @@ -1,14 +1,14 @@ -package art.arcane.iris.engine.platform; +package art.arcane.iris.platform.generation; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineTarget; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisDimensionRuntimeContract; -import art.arcane.iris.engine.object.IrisWorld; -import art.arcane.iris.engine.object.StudioMode; -import art.arcane.iris.engine.platform.studio.StudioGenerator; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.cache.AtomicCache; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineTarget; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisDimensionRuntimeContract; +import art.arcane.iris.world.IrisWorld; +import art.arcane.iris.studio.StudioMode; +import art.arcane.iris.studio.generation.StudioGenerator; import art.arcane.volmlib.util.collection.KList; import org.bukkit.World; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/platform/EngineBukkitOpsBiomeTest.java b/core/src/test/java/art/arcane/iris/platform/generation/EngineBukkitOpsBiomeTest.java similarity index 83% rename from core/src/test/java/art/arcane/iris/engine/platform/EngineBukkitOpsBiomeTest.java rename to core/src/test/java/art/arcane/iris/platform/generation/EngineBukkitOpsBiomeTest.java index b4040b7a0..67ffd7d76 100644 --- a/core/src/test/java/art/arcane/iris/engine/platform/EngineBukkitOpsBiomeTest.java +++ b/core/src/test/java/art/arcane/iris/platform/generation/EngineBukkitOpsBiomeTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.engine.platform; +package art.arcane.iris.platform.generation; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisWorld; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.world.IrisWorld; import org.bukkit.Location; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/platform/EngineBukkitOpsDeferredMaterializationTest.java b/core/src/test/java/art/arcane/iris/platform/generation/EngineBukkitOpsDeferredMaterializationTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/platform/EngineBukkitOpsDeferredMaterializationTest.java rename to core/src/test/java/art/arcane/iris/platform/generation/EngineBukkitOpsDeferredMaterializationTest.java index 09f6739f6..f14ab1aca 100644 --- a/core/src/test/java/art/arcane/iris/engine/platform/EngineBukkitOpsDeferredMaterializationTest.java +++ b/core/src/test/java/art/arcane/iris/platform/generation/EngineBukkitOpsDeferredMaterializationTest.java @@ -1,22 +1,22 @@ -package art.arcane.iris.engine.platform; +package art.arcane.iris.platform.generation; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.service.ExternalDataSVC; -import art.arcane.iris.engine.IrisEngineMantle; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineMetrics; -import art.arcane.iris.engine.history.SavedBiomeUnavailableException; -import art.arcane.iris.engine.object.IrisWorld; +import art.arcane.iris.integration.Identifier; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.integration.ExternalDataSVC; +import art.arcane.iris.generation.runtime.IrisEngineMantle; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineMetrics; +import art.arcane.iris.world.history.SavedBiomeUnavailableException; +import art.arcane.iris.world.IrisWorld; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformRegistries; import art.arcane.iris.testsupport.PlatformLeakGuard; -import art.arcane.iris.util.common.scheduling.J; -import art.arcane.iris.util.project.matter.TileWrapper; -import art.arcane.iris.util.project.matter.slices.PreObjectMatterTest; +import art.arcane.iris.world.task.J; +import art.arcane.iris.world.storage.matter.TileWrapper; +import art.arcane.iris.world.storage.matter.PreObjectMatterTest; import art.arcane.volmlib.util.function.Consumer4; import art.arcane.volmlib.util.mantle.flag.MantleFlag; import art.arcane.volmlib.util.mantle.runtime.Mantle; diff --git a/core/src/test/java/art/arcane/iris/engine/platform/EngineBukkitOpsLootTest.java b/core/src/test/java/art/arcane/iris/platform/generation/EngineBukkitOpsLootTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/platform/EngineBukkitOpsLootTest.java rename to core/src/test/java/art/arcane/iris/platform/generation/EngineBukkitOpsLootTest.java index ef9042f1e..b3c331a63 100644 --- a/core/src/test/java/art/arcane/iris/engine/platform/EngineBukkitOpsLootTest.java +++ b/core/src/test/java/art/arcane/iris/platform/generation/EngineBukkitOpsLootTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.platform; +package art.arcane.iris.platform.generation; import org.bukkit.World; import org.bukkit.block.Block; diff --git a/core/src/test/java/art/arcane/iris/core/protocol/IrisCursorRequestServiceTest.java b/core/src/test/java/art/arcane/iris/platform/protocol/IrisCursorRequestServiceTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/protocol/IrisCursorRequestServiceTest.java rename to core/src/test/java/art/arcane/iris/platform/protocol/IrisCursorRequestServiceTest.java index 390f7c5bf..ee1988608 100644 --- a/core/src/test/java/art/arcane/iris/core/protocol/IrisCursorRequestServiceTest.java +++ b/core/src/test/java/art/arcane/iris/platform/protocol/IrisCursorRequestServiceTest.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.protocol; +package art.arcane.iris.platform.protocol; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.iris.spi.protocol.IrisProtocol; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/protocol/IrisCursorResolverTest.java b/core/src/test/java/art/arcane/iris/platform/protocol/IrisCursorResolverTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/core/protocol/IrisCursorResolverTest.java rename to core/src/test/java/art/arcane/iris/platform/protocol/IrisCursorResolverTest.java index a7f430c67..c26bd9aaf 100644 --- a/core/src/test/java/art/arcane/iris/core/protocol/IrisCursorResolverTest.java +++ b/core/src/test/java/art/arcane/iris/platform/protocol/IrisCursorResolverTest.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.protocol; +package art.arcane.iris.platform.protocol; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; import art.arcane.iris.spi.protocol.IrisMessage; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/protocol/IrisMessageCodecTest.java b/core/src/test/java/art/arcane/iris/platform/protocol/IrisMessageCodecTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/protocol/IrisMessageCodecTest.java rename to core/src/test/java/art/arcane/iris/platform/protocol/IrisMessageCodecTest.java index 24765d9de..5fce20872 100644 --- a/core/src/test/java/art/arcane/iris/core/protocol/IrisMessageCodecTest.java +++ b/core/src/test/java/art/arcane/iris/platform/protocol/IrisMessageCodecTest.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.protocol; +package art.arcane.iris.platform.protocol; import art.arcane.iris.spi.protocol.IrisMessage; import art.arcane.iris.spi.protocol.IrisMessageCodec; diff --git a/core/src/test/java/art/arcane/iris/core/protocol/IrisProtocolMessageCoverageTest.java b/core/src/test/java/art/arcane/iris/platform/protocol/IrisProtocolMessageCoverageTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/protocol/IrisProtocolMessageCoverageTest.java rename to core/src/test/java/art/arcane/iris/platform/protocol/IrisProtocolMessageCoverageTest.java index 7e1516402..a9d2605de 100644 --- a/core/src/test/java/art/arcane/iris/core/protocol/IrisProtocolMessageCoverageTest.java +++ b/core/src/test/java/art/arcane/iris/platform/protocol/IrisProtocolMessageCoverageTest.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.protocol; +package art.arcane.iris.platform.protocol; import art.arcane.iris.spi.protocol.IrisMessage; import art.arcane.iris.spi.protocol.IrisMessageCodec; diff --git a/core/src/test/java/art/arcane/iris/core/protocol/IrisProtocolServerTest.java b/core/src/test/java/art/arcane/iris/platform/protocol/IrisProtocolServerTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/protocol/IrisProtocolServerTest.java rename to core/src/test/java/art/arcane/iris/platform/protocol/IrisProtocolServerTest.java index 3fe2ce7c1..bdbc7faec 100644 --- a/core/src/test/java/art/arcane/iris/core/protocol/IrisProtocolServerTest.java +++ b/core/src/test/java/art/arcane/iris/platform/protocol/IrisProtocolServerTest.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.protocol; +package art.arcane.iris.platform.protocol; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; import art.arcane.iris.spi.protocol.IrisMessage; import art.arcane.iris.spi.protocol.IrisMessageCodec; import art.arcane.iris.spi.protocol.IrisProtocol; diff --git a/core/src/test/java/art/arcane/iris/core/protocol/IrisTileEncoderTest.java b/core/src/test/java/art/arcane/iris/platform/protocol/IrisTileEncoderTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/protocol/IrisTileEncoderTest.java rename to core/src/test/java/art/arcane/iris/platform/protocol/IrisTileEncoderTest.java index 398a850d3..cabb1041a 100644 --- a/core/src/test/java/art/arcane/iris/core/protocol/IrisTileEncoderTest.java +++ b/core/src/test/java/art/arcane/iris/platform/protocol/IrisTileEncoderTest.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.protocol; +package art.arcane.iris.platform.protocol; import art.arcane.iris.spi.protocol.IrisMessage; import art.arcane.iris.spi.protocol.IrisMessageCodec; diff --git a/core/src/test/java/art/arcane/iris/core/protocol/IrisVisionRequestServiceTest.java b/core/src/test/java/art/arcane/iris/platform/protocol/IrisVisionRequestServiceTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/protocol/IrisVisionRequestServiceTest.java rename to core/src/test/java/art/arcane/iris/platform/protocol/IrisVisionRequestServiceTest.java index a15216352..e8327959e 100644 --- a/core/src/test/java/art/arcane/iris/core/protocol/IrisVisionRequestServiceTest.java +++ b/core/src/test/java/art/arcane/iris/platform/protocol/IrisVisionRequestServiceTest.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.protocol; +package art.arcane.iris.platform.protocol; import art.arcane.iris.spi.protocol.IrisProtocol; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/purity/CoreProcessStreamPurityGateTest.java b/core/src/test/java/art/arcane/iris/purity/CoreProcessStreamPurityGateTest.java index 10d786243..37ea4a063 100644 --- a/core/src/test/java/art/arcane/iris/purity/CoreProcessStreamPurityGateTest.java +++ b/core/src/test/java/art/arcane/iris/purity/CoreProcessStreamPurityGateTest.java @@ -1,6 +1,6 @@ package art.arcane.iris.purity; -import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.pack.loading.IrisData; import org.junit.Test; import org.objectweb.asm.ClassReader; import org.objectweb.asm.ClassVisitor; diff --git a/core/src/test/java/art/arcane/iris/purity/PackTypeBukkitPurityGateTest.java b/core/src/test/java/art/arcane/iris/purity/PackTypeBukkitPurityGateTest.java index bdcea42cd..8a9beed79 100644 --- a/core/src/test/java/art/arcane/iris/purity/PackTypeBukkitPurityGateTest.java +++ b/core/src/test/java/art/arcane/iris/purity/PackTypeBukkitPurityGateTest.java @@ -1,6 +1,6 @@ package art.arcane.iris.purity; -import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.pack.schema.annotation.Snippet; import org.junit.Test; import org.objectweb.asm.ClassReader; import org.objectweb.asm.ClassVisitor; @@ -71,12 +71,12 @@ import static org.junit.Assert.fail; * boot hazard. Fields and supertypes are, and both are asserted hard below. */ public class PackTypeBukkitPurityGateTest { - private static final String SNIPPET_DESCRIPTOR = "Lart/arcane/iris/engine/object/annotations/Snippet;"; + private static final String SNIPPET_DESCRIPTOR = "Lart/arcane/iris/pack/schema/annotation/Snippet;"; private static final String BUKKIT_INTERNAL_PREFIX = "org/bukkit/"; /** See {@link #theGateStillCatchesAClassThatNeedsBukkit()}. */ - private static final String BUKKIT_DEPENDENT_CANARY = "art.arcane.iris.engine.object.IrisObjectRotation$Faces"; - private static final String OBJECT_PACKAGE = "art/arcane/iris/engine/object"; - private static final String IRIS_DATA = "art.arcane.iris.core.loader.IrisData"; + private static final String BUKKIT_DEPENDENT_CANARY = "art.arcane.iris.structure.object.IrisObjectRotation$Faces"; + private static final String IRIS_PACKAGE = "art/arcane/iris"; + private static final String IRIS_DATA = "art.arcane.iris.pack.loading.IrisData"; /** * Every type handed to {@code registerLoader} in {@code IrisData.hotloaded()} - i.e. every root @@ -84,33 +84,33 @@ public class PackTypeBukkitPurityGateTest { * #registeredRootListMatchesIrisData()} fails if the compiled registrations drift away from it. */ private static final List GSON_REGISTERED_ROOTS = List.of( - "art.arcane.iris.engine.object.IrisLootTable", - "art.arcane.iris.engine.object.IrisSpawner", - "art.arcane.iris.engine.object.IrisEntity", - "art.arcane.iris.engine.object.IrisRegion", - "art.arcane.iris.engine.object.IrisBiome", - "art.arcane.iris.engine.object.IrisMod", - "art.arcane.iris.engine.object.IrisDimension", - "art.arcane.iris.engine.object.IrisGenerator", - "art.arcane.iris.engine.object.IrisMarker", - "art.arcane.iris.engine.object.IrisBlockData", - "art.arcane.iris.engine.object.IrisExpression", - "art.arcane.iris.engine.object.IrisObject", - "art.arcane.iris.engine.object.IrisImage", - "art.arcane.iris.engine.object.IrisImageMap", - "art.arcane.iris.engine.object.matter.IrisMatterObject", - "art.arcane.iris.engine.object.IrisStructure", - "art.arcane.iris.engine.object.IrisJigsawPool", - "art.arcane.iris.engine.object.IrisJigsawPiece"); + "art.arcane.iris.world.loot.IrisLootTable", + "art.arcane.iris.world.entity.IrisSpawner", + "art.arcane.iris.world.entity.IrisEntity", + "art.arcane.iris.generation.terrain.IrisRegion", + "art.arcane.iris.generation.biome.IrisBiome", + "art.arcane.iris.pack.mod.IrisMod", + "art.arcane.iris.generation.terrain.IrisDimension", + "art.arcane.iris.generation.noise.IrisGenerator", + "art.arcane.iris.world.entity.IrisMarker", + "art.arcane.iris.generation.block.IrisBlockData", + "art.arcane.iris.generation.noise.IrisExpression", + "art.arcane.iris.structure.object.IrisObject", + "art.arcane.iris.generation.image.IrisImage", + "art.arcane.iris.generation.image.IrisImageMap", + "art.arcane.iris.structure.object.matter.IrisMatterObject", + "art.arcane.iris.structure.placement.IrisStructure", + "art.arcane.iris.structure.jigsaw.IrisJigsawPool", + "art.arcane.iris.structure.jigsaw.IrisJigsawPiece"); /** * Types reachable from a pack that are not roots and carry no {@code @Snippet}, but are * deserialized/serialized all the same (object tile payloads, vanilla loot table adapters). */ private static final List ADDITIONAL_PACK_TYPES = List.of( - "art.arcane.iris.engine.object.TileData", - "art.arcane.iris.engine.object.LegacyTileData", - "art.arcane.iris.engine.object.IrisVanillaLootTable"); + "art.arcane.iris.generation.block.TileData", + "art.arcane.iris.generation.block.LegacyTileData", + "art.arcane.iris.world.loot.IrisVanillaLootTable"); /** * Bukkit-registry constant holders that a core pack type references, so their class initializer @@ -119,7 +119,7 @@ public class PackTypeBukkitPurityGateTest { * Bukkit adapter, so they stay out of the gate.) */ private static final List BUKKIT_STATIC_HOLDERS = List.of( - "art.arcane.iris.util.common.data.registry.Particles"); + "art.arcane.iris.platform.bukkit.registry.Particles"); @Test public void theGateActuallyHidesBukkit() throws Exception { @@ -134,7 +134,7 @@ public class PackTypeBukkitPurityGateTest { assertThrows(ClassNotFoundException.class, () -> Class.forName("org.bukkit.Bukkit", false, hiding)); - Class selfDefined = Class.forName("art.arcane.iris.engine.object.IrisPosition", false, hiding); + Class selfDefined = Class.forName("art.arcane.iris.pack.value.IrisPosition", false, hiding); assertEquals("iris classes must be defined by the hiding loader, not delegated to the parent", hiding, selfDefined.getClassLoader()); } @@ -354,7 +354,7 @@ public class PackTypeBukkitPurityGateTest { @Test public void theGenericSignatureScanSeesWhatTheDescriptorErased() throws Exception { byte[] bytes = BukkitHidingClassLoader.readClassBytes(getClass().getClassLoader(), - "art.arcane.iris.engine.object.IrisBiome"); + "art.arcane.iris.generation.biome.IrisBiome"); assertNotNull("no class bytes for IrisBiome", bytes); ClassFileFacts.DeclaredField cache = null; @@ -501,7 +501,7 @@ public class PackTypeBukkitPurityGateTest { private static List snippetTypes() throws Exception { ClassLoader app = PackTypeBukkitPurityGateTest.class.getClassLoader(); List snippets = new ArrayList<>(); - for (String candidate : classNamesUnder(OBJECT_PACKAGE)) { + for (String candidate : classNamesUnder(IRIS_PACKAGE)) { if (candidate.indexOf('$') >= 0) { continue; } diff --git a/core/src/test/java/art/arcane/iris/purity/SwallowedFailurePolicyTest.java b/core/src/test/java/art/arcane/iris/purity/SwallowedFailurePolicyTest.java index 674b75b29..90f0ce1d4 100644 --- a/core/src/test/java/art/arcane/iris/purity/SwallowedFailurePolicyTest.java +++ b/core/src/test/java/art/arcane/iris/purity/SwallowedFailurePolicyTest.java @@ -21,19 +21,40 @@ import static org.junit.Assert.assertTrue; */ public class SwallowedFailurePolicyTest { private static final List PROTECTED_ROOTS = List.of( - "src/main/java/art/arcane/iris/core/runtime", - "src/main/java/art/arcane/iris/core/lifecycle", - "src/main/java/art/arcane/iris/core/safeguard", - "src/main/java/art/arcane/iris/core/link", - "src/main/java/art/arcane/iris/core/service", - "src/main/java/art/arcane/iris/core/localization", - "src/main/java/art/arcane/iris/core/structure/authoring", - "src/main/java/art/arcane/iris/core/IrisSettings.java", - "src/main/java/art/arcane/iris/engine/decorator", - "src/main/java/art/arcane/iris/engine/history", + "src/main/java/art/arcane/iris/world/runtime", + "src/main/java/art/arcane/iris/generation/validation", + "src/main/java/art/arcane/iris/studio/object", + "src/main/java/art/arcane/iris/studio/jigsaw", + "src/main/java/art/arcane/iris/world/lifecycle", + "src/main/java/art/arcane/iris/world/safeguard", + "src/main/java/art/arcane/iris/integration", + "src/main/java/art/arcane/iris/world/tree", + "src/main/java/art/arcane/iris/world/entity/EntityRiseSVC.java", + "src/main/java/art/arcane/iris/studio/StudioSVC.java", + "src/main/java/art/arcane/iris/studio/PackDownloadProgressReporter.java", + "src/main/java/art/arcane/iris/generation/runtime/EngineMaintenance.java", + "src/main/java/art/arcane/iris/generation/runtime/GlobalCacheSVC.java", + "src/main/java/art/arcane/iris/generation/runtime/PreservationSVC.java", + "src/main/java/art/arcane/iris/diagnostics/LogFilterSVC.java", + "src/main/java/art/arcane/iris/platform/bukkit/BoardSVC.java", + "src/main/java/art/arcane/iris/localization", + "src/main/java/art/arcane/iris/structure/authoring", + "src/main/java/art/arcane/iris/configuration/IrisSettings.java", + "src/main/java/art/arcane/iris/generation/decoration/DecoratorCore.java", + "src/main/java/art/arcane/iris/generation/decoration/DecoratorPlatformHooks.java", + "src/main/java/art/arcane/iris/generation/decoration/FloatingDecorator.java", + "src/main/java/art/arcane/iris/generation/decoration/IrisCeilingDecorator.java", + "src/main/java/art/arcane/iris/generation/decoration/IrisEngineDecorator.java", + "src/main/java/art/arcane/iris/generation/decoration/IrisSeaFloorDecorator.java", + "src/main/java/art/arcane/iris/generation/decoration/IrisSeaSurfaceDecorator.java", + "src/main/java/art/arcane/iris/generation/decoration/IrisShoreLineDecorator.java", + "src/main/java/art/arcane/iris/generation/decoration/IrisSpeleothems.java", + "src/main/java/art/arcane/iris/generation/decoration/IrisSugarCane.java", + "src/main/java/art/arcane/iris/generation/decoration/IrisSurfaceDecorator.java", + "src/main/java/art/arcane/iris/world/history", "../spi/src/main/java", "../adapters/bukkit/plugin/src/main/java/art/arcane/iris/Iris.java", - "../adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/PendingWorldReplacementManager.java" + "../adapters/bukkit/plugin/src/main/java/art/arcane/iris/world/PendingWorldReplacementManager.java" ); private static final Pattern IGNORED_CATCH = Pattern.compile("^\\s*}?\\s*catch \\([^)]*\\)\\s*\\{\\s*$"); diff --git a/core/src/test/java/art/arcane/iris/spi/PacksFolderContractTest.java b/core/src/test/java/art/arcane/iris/spi/PacksFolderContractTest.java index 2242d8c31..e253e05ba 100644 --- a/core/src/test/java/art/arcane/iris/spi/PacksFolderContractTest.java +++ b/core/src/test/java/art/arcane/iris/spi/PacksFolderContractTest.java @@ -1,6 +1,6 @@ package art.arcane.iris.spi; -import art.arcane.iris.core.service.StudioSVC; +import art.arcane.iris.studio.StudioSVC; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; diff --git a/core/src/test/java/art/arcane/iris/core/structure/BulkStructureImporterTemplateNameTest.java b/core/src/test/java/art/arcane/iris/structure/BulkStructureImporterTemplateNameTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/structure/BulkStructureImporterTemplateNameTest.java rename to core/src/test/java/art/arcane/iris/structure/BulkStructureImporterTemplateNameTest.java index a6fb0f17c..4288afd1f 100644 --- a/core/src/test/java/art/arcane/iris/core/structure/BulkStructureImporterTemplateNameTest.java +++ b/core/src/test/java/art/arcane/iris/structure/BulkStructureImporterTemplateNameTest.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.structure; +package art.arcane.iris.structure; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/structure/FeatureImporterScratchLifecycleTest.java b/core/src/test/java/art/arcane/iris/structure/FeatureImporterScratchLifecycleTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/structure/FeatureImporterScratchLifecycleTest.java rename to core/src/test/java/art/arcane/iris/structure/FeatureImporterScratchLifecycleTest.java index d6d805717..61f1f3444 100644 --- a/core/src/test/java/art/arcane/iris/core/structure/FeatureImporterScratchLifecycleTest.java +++ b/core/src/test/java/art/arcane/iris/structure/FeatureImporterScratchLifecycleTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.structure; +package art.arcane.iris.structure; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/structure/StructureCaptureImporterFailureTest.java b/core/src/test/java/art/arcane/iris/structure/StructureCaptureImporterFailureTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/structure/StructureCaptureImporterFailureTest.java rename to core/src/test/java/art/arcane/iris/structure/StructureCaptureImporterFailureTest.java index 01eb94ffe..8adabda3d 100644 --- a/core/src/test/java/art/arcane/iris/core/structure/StructureCaptureImporterFailureTest.java +++ b/core/src/test/java/art/arcane/iris/structure/StructureCaptureImporterFailureTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.structure; +package art.arcane.iris.structure; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/structure/StructureCaptureImporterTargetSelectionTest.java b/core/src/test/java/art/arcane/iris/structure/StructureCaptureImporterTargetSelectionTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/structure/StructureCaptureImporterTargetSelectionTest.java rename to core/src/test/java/art/arcane/iris/structure/StructureCaptureImporterTargetSelectionTest.java index fcbc6e90a..3240cfad2 100644 --- a/core/src/test/java/art/arcane/iris/core/structure/StructureCaptureImporterTargetSelectionTest.java +++ b/core/src/test/java/art/arcane/iris/structure/StructureCaptureImporterTargetSelectionTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.structure; +package art.arcane.iris.structure; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/structure/StructureImporterCaptureTest.java b/core/src/test/java/art/arcane/iris/structure/StructureImporterCaptureTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/structure/StructureImporterCaptureTest.java rename to core/src/test/java/art/arcane/iris/structure/StructureImporterCaptureTest.java index 4299e4a02..e78ed3475 100644 --- a/core/src/test/java/art/arcane/iris/core/structure/StructureImporterCaptureTest.java +++ b/core/src/test/java/art/arcane/iris/structure/StructureImporterCaptureTest.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.structure; +package art.arcane.iris.structure; -import art.arcane.iris.core.structure.authoring.StructureCapability; +import art.arcane.iris.structure.authoring.StructureCapability; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.BlockState; diff --git a/core/src/test/java/art/arcane/iris/core/structure/StructureImporterModeTest.java b/core/src/test/java/art/arcane/iris/structure/StructureImporterModeTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/structure/StructureImporterModeTest.java rename to core/src/test/java/art/arcane/iris/structure/StructureImporterModeTest.java index 198b8ce25..c98a79747 100644 --- a/core/src/test/java/art/arcane/iris/core/structure/StructureImporterModeTest.java +++ b/core/src/test/java/art/arcane/iris/structure/StructureImporterModeTest.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.structure; +package art.arcane.iris.structure; import org.bukkit.NamespacedKey; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/structure/StructureIndexServiceTest.java b/core/src/test/java/art/arcane/iris/structure/StructureIndexServiceTest.java similarity index 92% rename from core/src/test/java/art/arcane/iris/core/structure/StructureIndexServiceTest.java rename to core/src/test/java/art/arcane/iris/structure/StructureIndexServiceTest.java index f0c331103..31a8b3b27 100644 --- a/core/src/test/java/art/arcane/iris/core/structure/StructureIndexServiceTest.java +++ b/core/src/test/java/art/arcane/iris/structure/StructureIndexServiceTest.java @@ -1,9 +1,9 @@ -package art.arcane.iris.core.structure; +package art.arcane.iris.structure; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.engine.object.IrisStructure; -import art.arcane.iris.engine.history.GenerationPackFingerprint; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.structure.placement.IrisStructure; +import art.arcane.iris.world.history.GenerationPackFingerprint; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformStructureHooks; @@ -107,7 +107,7 @@ public class StructureIndexServiceTest { bytecode = new String(input.readAllBytes(), StandardCharsets.ISO_8859_1); } - assertFalse(bytecode.contains("art/arcane/iris/util/project/matter/IrisMatterSupport")); + assertFalse(bytecode.contains("art/arcane/iris/world/storage/matter/IrisMatterSupport")); assertFalse(bytecode.contains("org/bukkit/")); } } diff --git a/core/src/test/java/art/arcane/iris/core/structure/StructureSchemaKeysTest.java b/core/src/test/java/art/arcane/iris/structure/StructureSchemaKeysTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/structure/StructureSchemaKeysTest.java rename to core/src/test/java/art/arcane/iris/structure/StructureSchemaKeysTest.java index ebe8f1230..04080039f 100644 --- a/core/src/test/java/art/arcane/iris/core/structure/StructureSchemaKeysTest.java +++ b/core/src/test/java/art/arcane/iris/structure/StructureSchemaKeysTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.structure; +package art.arcane.iris.structure; import art.arcane.volmlib.util.collection.KList; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/structure/VillageImporterBundleTest.java b/core/src/test/java/art/arcane/iris/structure/VillageImporterBundleTest.java similarity index 90% rename from core/src/test/java/art/arcane/iris/core/structure/VillageImporterBundleTest.java rename to core/src/test/java/art/arcane/iris/structure/VillageImporterBundleTest.java index d8a3a7ae5..a99d20d69 100644 --- a/core/src/test/java/art/arcane/iris/core/structure/VillageImporterBundleTest.java +++ b/core/src/test/java/art/arcane/iris/structure/VillageImporterBundleTest.java @@ -16,19 +16,19 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.structure; +package art.arcane.iris.structure; -import art.arcane.iris.core.structure.authoring.StructureBackend; -import art.arcane.iris.core.structure.authoring.StructureCapability; -import art.arcane.iris.core.structure.authoring.StructureKey; -import art.arcane.iris.core.structure.authoring.StructureLoss; -import art.arcane.iris.core.structure.authoring.StructureOwnershipManifest; -import art.arcane.iris.core.structure.authoring.StructureResourceBundle; -import art.arcane.iris.core.structure.authoring.StructureSource; -import art.arcane.iris.core.structure.authoring.StructureTransactionWriter; -import art.arcane.iris.core.structure.authoring.StructureWriteMode; -import art.arcane.iris.core.structure.authoring.StructureWriteResult; -import art.arcane.iris.engine.object.IrisJigsawBranchFailurePolicy; +import art.arcane.iris.structure.authoring.StructureBackend; +import art.arcane.iris.structure.authoring.StructureCapability; +import art.arcane.iris.structure.authoring.StructureKey; +import art.arcane.iris.structure.authoring.StructureLoss; +import art.arcane.iris.structure.authoring.StructureOwnershipManifest; +import art.arcane.iris.structure.authoring.StructureResourceBundle; +import art.arcane.iris.structure.authoring.StructureSource; +import art.arcane.iris.structure.authoring.StructureTransactionWriter; +import art.arcane.iris.structure.authoring.StructureWriteMode; +import art.arcane.iris.structure.authoring.StructureWriteResult; +import art.arcane.iris.structure.jigsaw.IrisJigsawBranchFailurePolicy; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; diff --git a/core/src/test/java/art/arcane/iris/core/structure/VillageImporterConnectorRoundTripTest.java b/core/src/test/java/art/arcane/iris/structure/VillageImporterConnectorRoundTripTest.java similarity index 86% rename from core/src/test/java/art/arcane/iris/core/structure/VillageImporterConnectorRoundTripTest.java rename to core/src/test/java/art/arcane/iris/structure/VillageImporterConnectorRoundTripTest.java index 012852d2a..f7a03a1fe 100644 --- a/core/src/test/java/art/arcane/iris/core/structure/VillageImporterConnectorRoundTripTest.java +++ b/core/src/test/java/art/arcane/iris/structure/VillageImporterConnectorRoundTripTest.java @@ -1,19 +1,19 @@ -package art.arcane.iris.core.structure; +package art.arcane.iris.structure; -import art.arcane.iris.core.structure.export.VanillaJigsawDatapackExporter; -import art.arcane.iris.core.structure.export.VanillaJigsawExportRequest; -import art.arcane.iris.core.structure.export.VanillaJigsawExportResult; -import art.arcane.iris.core.structure.export.VanillaJigsawExportSource; -import art.arcane.iris.engine.framework.structure.StructureGraphResolver; -import art.arcane.iris.engine.object.IrisJigsawBranchFailurePolicy; -import art.arcane.iris.engine.object.IrisJigsawCompatibility; -import art.arcane.iris.engine.object.IrisJigsawConnector; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisJigsawPieceEntry; -import art.arcane.iris.engine.object.IrisJigsawPool; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisStructure; -import art.arcane.iris.engine.object.ObjectPlaceMode; +import art.arcane.iris.structure.export.VanillaJigsawDatapackExporter; +import art.arcane.iris.structure.export.VanillaJigsawExportRequest; +import art.arcane.iris.structure.export.VanillaJigsawExportResult; +import art.arcane.iris.structure.export.VanillaJigsawExportSource; +import art.arcane.iris.structure.graph.StructureGraphResolver; +import art.arcane.iris.structure.jigsaw.IrisJigsawBranchFailurePolicy; +import art.arcane.iris.structure.jigsaw.IrisJigsawCompatibility; +import art.arcane.iris.structure.jigsaw.IrisJigsawConnector; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.jigsaw.IrisJigsawPieceEntry; +import art.arcane.iris.structure.jigsaw.IrisJigsawPool; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.placement.IrisStructure; +import art.arcane.iris.structure.object.ObjectPlaceMode; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.nbt.io.NBTUtil; diff --git a/core/src/test/java/art/arcane/iris/core/structure/VillageImporterFailureLogTest.java b/core/src/test/java/art/arcane/iris/structure/VillageImporterFailureLogTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/structure/VillageImporterFailureLogTest.java rename to core/src/test/java/art/arcane/iris/structure/VillageImporterFailureLogTest.java index 9b6681414..3363c36c1 100644 --- a/core/src/test/java/art/arcane/iris/core/structure/VillageImporterFailureLogTest.java +++ b/core/src/test/java/art/arcane/iris/structure/VillageImporterFailureLogTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.structure; +package art.arcane.iris.structure; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/structure/VillageImporterListPoolElementTest.java b/core/src/test/java/art/arcane/iris/structure/VillageImporterListPoolElementTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/structure/VillageImporterListPoolElementTest.java rename to core/src/test/java/art/arcane/iris/structure/VillageImporterListPoolElementTest.java index 60d9e3d6c..2974adc8b 100644 --- a/core/src/test/java/art/arcane/iris/core/structure/VillageImporterListPoolElementTest.java +++ b/core/src/test/java/art/arcane/iris/structure/VillageImporterListPoolElementTest.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.structure; +package art.arcane.iris.structure; -import art.arcane.iris.core.structure.authoring.StructureCapability; -import art.arcane.iris.core.structure.authoring.StructureLoss; -import art.arcane.iris.engine.object.IrisObject; +import art.arcane.iris.structure.authoring.StructureCapability; +import art.arcane.iris.structure.authoring.StructureLoss; +import art.arcane.iris.structure.object.IrisObject; import org.junit.Test; import java.util.List; diff --git a/core/src/test/java/art/arcane/iris/core/structure/VillageImporterMaxDistanceReadTest.java b/core/src/test/java/art/arcane/iris/structure/VillageImporterMaxDistanceReadTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/structure/VillageImporterMaxDistanceReadTest.java rename to core/src/test/java/art/arcane/iris/structure/VillageImporterMaxDistanceReadTest.java index 62b6d72ea..5d7e245f0 100644 --- a/core/src/test/java/art/arcane/iris/core/structure/VillageImporterMaxDistanceReadTest.java +++ b/core/src/test/java/art/arcane/iris/structure/VillageImporterMaxDistanceReadTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.structure; +package art.arcane.iris.structure; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/structure/authoring/IrisDataStructureRecoveryTest.java b/core/src/test/java/art/arcane/iris/structure/authoring/IrisDataStructureRecoveryTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/core/structure/authoring/IrisDataStructureRecoveryTest.java rename to core/src/test/java/art/arcane/iris/structure/authoring/IrisDataStructureRecoveryTest.java index d99b6e6b3..06160f2d9 100644 --- a/core/src/test/java/art/arcane/iris/core/structure/authoring/IrisDataStructureRecoveryTest.java +++ b/core/src/test/java/art/arcane/iris/structure/authoring/IrisDataStructureRecoveryTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.structure.authoring; +package art.arcane.iris.structure.authoring; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.MeteredCache; -import art.arcane.iris.engine.framework.PreservationRegistry; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.MeteredCache; +import art.arcane.iris.generation.runtime.PreservationRegistry; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.testsupport.PlatformLeakGuard; import org.junit.After; diff --git a/core/src/test/java/art/arcane/iris/core/structure/authoring/StructureKeyTest.java b/core/src/test/java/art/arcane/iris/structure/authoring/StructureKeyTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/structure/authoring/StructureKeyTest.java rename to core/src/test/java/art/arcane/iris/structure/authoring/StructureKeyTest.java index 3e9c5a815..015fb93ca 100644 --- a/core/src/test/java/art/arcane/iris/core/structure/authoring/StructureKeyTest.java +++ b/core/src/test/java/art/arcane/iris/structure/authoring/StructureKeyTest.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.structure.authoring; +package art.arcane.iris.structure.authoring; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/structure/authoring/StructureOwnershipProvenanceTest.java b/core/src/test/java/art/arcane/iris/structure/authoring/StructureOwnershipProvenanceTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/structure/authoring/StructureOwnershipProvenanceTest.java rename to core/src/test/java/art/arcane/iris/structure/authoring/StructureOwnershipProvenanceTest.java index 2b13520ca..8852f6c0c 100644 --- a/core/src/test/java/art/arcane/iris/core/structure/authoring/StructureOwnershipProvenanceTest.java +++ b/core/src/test/java/art/arcane/iris/structure/authoring/StructureOwnershipProvenanceTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.structure.authoring; +package art.arcane.iris.structure.authoring; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/structure/authoring/StructureResourceBundleTest.java b/core/src/test/java/art/arcane/iris/structure/authoring/StructureResourceBundleTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/structure/authoring/StructureResourceBundleTest.java rename to core/src/test/java/art/arcane/iris/structure/authoring/StructureResourceBundleTest.java index 6aae21e9d..3f08d3c76 100644 --- a/core/src/test/java/art/arcane/iris/core/structure/authoring/StructureResourceBundleTest.java +++ b/core/src/test/java/art/arcane/iris/structure/authoring/StructureResourceBundleTest.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.structure.authoring; +package art.arcane.iris.structure.authoring; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/structure/authoring/StructureTransactionClaimTest.java b/core/src/test/java/art/arcane/iris/structure/authoring/StructureTransactionClaimTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/structure/authoring/StructureTransactionClaimTest.java rename to core/src/test/java/art/arcane/iris/structure/authoring/StructureTransactionClaimTest.java index a7709f65e..7a0f53b97 100644 --- a/core/src/test/java/art/arcane/iris/core/structure/authoring/StructureTransactionClaimTest.java +++ b/core/src/test/java/art/arcane/iris/structure/authoring/StructureTransactionClaimTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.structure.authoring; +package art.arcane.iris.structure.authoring; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/structure/authoring/StructureTransactionWriterTest.java b/core/src/test/java/art/arcane/iris/structure/authoring/StructureTransactionWriterTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/structure/authoring/StructureTransactionWriterTest.java rename to core/src/test/java/art/arcane/iris/structure/authoring/StructureTransactionWriterTest.java index 96e98c30f..80e3ae714 100644 --- a/core/src/test/java/art/arcane/iris/core/structure/authoring/StructureTransactionWriterTest.java +++ b/core/src/test/java/art/arcane/iris/structure/authoring/StructureTransactionWriterTest.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.structure.authoring; +package art.arcane.iris.structure.authoring; import art.arcane.iris.testsupport.DurabilityMode; import org.junit.ClassRule; diff --git a/core/src/test/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionServiceTest.java b/core/src/test/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionServiceTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionServiceTest.java rename to core/src/test/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionServiceTest.java index d0345535c..93eed9918 100644 --- a/core/src/test/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionServiceTest.java +++ b/core/src/test/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionServiceTest.java @@ -1,11 +1,11 @@ -package art.arcane.iris.core.structure.conversion; +package art.arcane.iris.structure.conversion; -import art.arcane.iris.core.structure.authoring.StructureBackend; -import art.arcane.iris.core.structure.authoring.StructureCapability; -import art.arcane.iris.core.structure.authoring.StructureHash; -import art.arcane.iris.core.structure.authoring.StructureKey; -import art.arcane.iris.core.structure.authoring.StructureOwnershipManifest; -import art.arcane.iris.core.structure.authoring.StructureSource; +import art.arcane.iris.structure.authoring.StructureBackend; +import art.arcane.iris.structure.authoring.StructureCapability; +import art.arcane.iris.structure.authoring.StructureHash; +import art.arcane.iris.structure.authoring.StructureKey; +import art.arcane.iris.structure.authoring.StructureOwnershipManifest; +import art.arcane.iris.structure.authoring.StructureSource; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import org.junit.Rule; diff --git a/core/src/test/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionValueTest.java b/core/src/test/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionValueTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionValueTest.java rename to core/src/test/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionValueTest.java index 1097812fa..8d019d6c2 100644 --- a/core/src/test/java/art/arcane/iris/core/structure/conversion/IrisStructureAdoptionValueTest.java +++ b/core/src/test/java/art/arcane/iris/structure/conversion/IrisStructureAdoptionValueTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.structure.conversion; +package art.arcane.iris.structure.conversion; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/structure/export/VanillaBlockStateTest.java b/core/src/test/java/art/arcane/iris/structure/export/VanillaBlockStateTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/structure/export/VanillaBlockStateTest.java rename to core/src/test/java/art/arcane/iris/structure/export/VanillaBlockStateTest.java index f5d42318d..0581e43b4 100644 --- a/core/src/test/java/art/arcane/iris/core/structure/export/VanillaBlockStateTest.java +++ b/core/src/test/java/art/arcane/iris/structure/export/VanillaBlockStateTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.structure.export; +package art.arcane.iris.structure.export; import art.arcane.volmlib.util.nbt.tag.CompoundTag; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/structure/export/VanillaJigsawDatapackExporterTest.java b/core/src/test/java/art/arcane/iris/structure/export/VanillaJigsawDatapackExporterTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/core/structure/export/VanillaJigsawDatapackExporterTest.java rename to core/src/test/java/art/arcane/iris/structure/export/VanillaJigsawDatapackExporterTest.java index 57e8b5d79..b1bdd6ef2 100644 --- a/core/src/test/java/art/arcane/iris/core/structure/export/VanillaJigsawDatapackExporterTest.java +++ b/core/src/test/java/art/arcane/iris/structure/export/VanillaJigsawDatapackExporterTest.java @@ -1,21 +1,21 @@ -package art.arcane.iris.core.structure.export; +package art.arcane.iris.structure.export; -import art.arcane.iris.engine.framework.structure.StructureGraphResolver; -import art.arcane.iris.engine.object.IrisDirection; -import art.arcane.iris.engine.object.IrisJigsawBranchFailurePolicy; -import art.arcane.iris.engine.object.IrisJigsawCompatibility; -import art.arcane.iris.engine.object.IrisJigsawConnector; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisJigsawPieceEntry; -import art.arcane.iris.engine.object.IrisJigsawPieceRules; -import art.arcane.iris.engine.object.IrisJigsawPool; -import art.arcane.iris.engine.object.IrisJigsawThemeSet; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisObjectReplace; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.IrisStructure; -import art.arcane.iris.engine.object.ObjectPlaceMode; -import art.arcane.iris.engine.object.TileData; +import art.arcane.iris.structure.graph.StructureGraphResolver; +import art.arcane.iris.pack.value.IrisDirection; +import art.arcane.iris.structure.jigsaw.IrisJigsawBranchFailurePolicy; +import art.arcane.iris.structure.jigsaw.IrisJigsawCompatibility; +import art.arcane.iris.structure.jigsaw.IrisJigsawConnector; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.jigsaw.IrisJigsawPieceEntry; +import art.arcane.iris.structure.jigsaw.IrisJigsawPieceRules; +import art.arcane.iris.structure.jigsaw.IrisJigsawPool; +import art.arcane.iris.structure.jigsaw.IrisJigsawThemeSet; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectReplace; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.structure.placement.IrisStructure; +import art.arcane.iris.structure.object.ObjectPlaceMode; +import art.arcane.iris.generation.block.TileData; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBlockState; diff --git a/core/src/test/java/art/arcane/iris/core/structure/export/VanillaJigsawExportRequestTest.java b/core/src/test/java/art/arcane/iris/structure/export/VanillaJigsawExportRequestTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/core/structure/export/VanillaJigsawExportRequestTest.java rename to core/src/test/java/art/arcane/iris/structure/export/VanillaJigsawExportRequestTest.java index 7ead6f8df..305b4e4d8 100644 --- a/core/src/test/java/art/arcane/iris/core/structure/export/VanillaJigsawExportRequestTest.java +++ b/core/src/test/java/art/arcane/iris/structure/export/VanillaJigsawExportRequestTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.structure.export; +package art.arcane.iris.structure.export; -import art.arcane.iris.engine.framework.structure.StructureGraphResolver; -import art.arcane.iris.engine.object.IrisStructure; +import art.arcane.iris.structure.graph.StructureGraphResolver; +import art.arcane.iris.structure.placement.IrisStructure; import org.junit.Test; import java.nio.file.Path; diff --git a/core/src/test/java/art/arcane/iris/core/structure/export/VanillaResourceIdentifierTest.java b/core/src/test/java/art/arcane/iris/structure/export/VanillaResourceIdentifierTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/structure/export/VanillaResourceIdentifierTest.java rename to core/src/test/java/art/arcane/iris/structure/export/VanillaResourceIdentifierTest.java index c2552746f..eb9aecce1 100644 --- a/core/src/test/java/art/arcane/iris/core/structure/export/VanillaResourceIdentifierTest.java +++ b/core/src/test/java/art/arcane/iris/structure/export/VanillaResourceIdentifierTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.structure.export; +package art.arcane.iris.structure.export; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/structure/export/VanillaStructureTemplateOrientationTest.java b/core/src/test/java/art/arcane/iris/structure/export/VanillaStructureTemplateOrientationTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/core/structure/export/VanillaStructureTemplateOrientationTest.java rename to core/src/test/java/art/arcane/iris/structure/export/VanillaStructureTemplateOrientationTest.java index 89e81f0d6..a08fe0215 100644 --- a/core/src/test/java/art/arcane/iris/core/structure/export/VanillaStructureTemplateOrientationTest.java +++ b/core/src/test/java/art/arcane/iris/structure/export/VanillaStructureTemplateOrientationTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.structure.export; +package art.arcane.iris.structure.export; -import art.arcane.iris.engine.object.IrisDirection; +import art.arcane.iris.pack.value.IrisDirection; import org.junit.Test; import static org.junit.Assert.assertEquals; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/structure/IrisObjectFrameReaderTest.java b/core/src/test/java/art/arcane/iris/structure/graph/IrisObjectFrameReaderTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/framework/structure/IrisObjectFrameReaderTest.java rename to core/src/test/java/art/arcane/iris/structure/graph/IrisObjectFrameReaderTest.java index 6e3e651a5..411b46872 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/structure/IrisObjectFrameReaderTest.java +++ b/core/src/test/java/art/arcane/iris/structure/graph/IrisObjectFrameReaderTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.framework.structure; +package art.arcane.iris.structure.graph; -import art.arcane.iris.engine.object.IrisObject; +import art.arcane.iris.structure.object.IrisObject; import org.junit.Test; import java.io.ByteArrayInputStream; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/structure/JigsawPoolSelectionTest.java b/core/src/test/java/art/arcane/iris/structure/graph/JigsawPoolSelectionTest.java similarity index 85% rename from core/src/test/java/art/arcane/iris/engine/framework/structure/JigsawPoolSelectionTest.java rename to core/src/test/java/art/arcane/iris/structure/graph/JigsawPoolSelectionTest.java index 3ea36379d..7faaa1e1c 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/structure/JigsawPoolSelectionTest.java +++ b/core/src/test/java/art/arcane/iris/structure/graph/JigsawPoolSelectionTest.java @@ -1,10 +1,10 @@ -package art.arcane.iris.engine.framework.structure; +package art.arcane.iris.structure.graph; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisJigsawPieceEntry; -import art.arcane.iris.engine.object.IrisJigsawPieceRules; -import art.arcane.iris.engine.object.IrisJigsawThemeSet; -import art.arcane.iris.engine.object.IrisStructure; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.jigsaw.IrisJigsawPieceEntry; +import art.arcane.iris.structure.jigsaw.IrisJigsawPieceRules; +import art.arcane.iris.structure.jigsaw.IrisJigsawThemeSet; +import art.arcane.iris.structure.placement.IrisStructure; import art.arcane.volmlib.util.math.RNG; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/structure/PlanarJigsawWorkcellResolverTest.java b/core/src/test/java/art/arcane/iris/structure/graph/PlanarJigsawWorkcellResolverTest.java similarity index 83% rename from core/src/test/java/art/arcane/iris/engine/framework/structure/PlanarJigsawWorkcellResolverTest.java rename to core/src/test/java/art/arcane/iris/structure/graph/PlanarJigsawWorkcellResolverTest.java index 75952216b..c0b658479 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/structure/PlanarJigsawWorkcellResolverTest.java +++ b/core/src/test/java/art/arcane/iris/structure/graph/PlanarJigsawWorkcellResolverTest.java @@ -1,13 +1,13 @@ -package art.arcane.iris.engine.framework.structure; +package art.arcane.iris.structure.graph; -import art.arcane.iris.engine.object.IrisDirection; -import art.arcane.iris.engine.object.IrisJigsawConnector; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisJigsawWorkcell; -import art.arcane.iris.engine.object.IrisJigsawWorkcellArchetype; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.IrisStructure; +import art.arcane.iris.pack.value.IrisDirection; +import art.arcane.iris.structure.jigsaw.IrisJigsawConnector; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.jigsaw.IrisJigsawWorkcell; +import art.arcane.iris.structure.jigsaw.IrisJigsawWorkcellArchetype; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.structure.placement.IrisStructure; import org.junit.Test; import java.util.Map; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/structure/StructureAssemblyResultTest.java b/core/src/test/java/art/arcane/iris/structure/graph/StructureAssemblyResultTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/framework/structure/StructureAssemblyResultTest.java rename to core/src/test/java/art/arcane/iris/structure/graph/StructureAssemblyResultTest.java index 603ecb5cf..81c21d329 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/structure/StructureAssemblyResultTest.java +++ b/core/src/test/java/art/arcane/iris/structure/graph/StructureAssemblyResultTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.framework.structure; +package art.arcane.iris.structure.graph; -import art.arcane.iris.engine.framework.PlacedStructurePiece; +import art.arcane.iris.structure.placement.PlacedStructurePiece; import org.junit.Test; import java.util.List; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/structure/StructureGraphCompilerTest.java b/core/src/test/java/art/arcane/iris/structure/graph/StructureGraphCompilerTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/framework/structure/StructureGraphCompilerTest.java rename to core/src/test/java/art/arcane/iris/structure/graph/StructureGraphCompilerTest.java index e72c789f0..a5dd3e4b0 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/structure/StructureGraphCompilerTest.java +++ b/core/src/test/java/art/arcane/iris/structure/graph/StructureGraphCompilerTest.java @@ -1,19 +1,19 @@ -package art.arcane.iris.engine.framework.structure; +package art.arcane.iris.structure.graph; -import art.arcane.iris.engine.object.IrisDirection; -import art.arcane.iris.engine.object.IrisJigsawBranchFailurePolicy; -import art.arcane.iris.engine.object.IrisJigsawCompatibility; -import art.arcane.iris.engine.object.IrisJigsawConnector; -import art.arcane.iris.engine.object.IrisJigsawMode; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisJigsawPieceEntry; -import art.arcane.iris.engine.object.IrisJigsawPieceRules; -import art.arcane.iris.engine.object.IrisJigsawPool; -import art.arcane.iris.engine.object.IrisJigsawThemeSet; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.IrisStructure; -import art.arcane.iris.engine.object.JigsawJoint; +import art.arcane.iris.pack.value.IrisDirection; +import art.arcane.iris.structure.jigsaw.IrisJigsawBranchFailurePolicy; +import art.arcane.iris.structure.jigsaw.IrisJigsawCompatibility; +import art.arcane.iris.structure.jigsaw.IrisJigsawConnector; +import art.arcane.iris.structure.jigsaw.IrisJigsawMode; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.jigsaw.IrisJigsawPieceEntry; +import art.arcane.iris.structure.jigsaw.IrisJigsawPieceRules; +import art.arcane.iris.structure.jigsaw.IrisJigsawPool; +import art.arcane.iris.structure.jigsaw.IrisJigsawThemeSet; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.structure.placement.IrisStructure; +import art.arcane.iris.structure.jigsaw.JigsawJoint; import art.arcane.iris.testsupport.PlatformBinding; import art.arcane.volmlib.util.collection.KList; import org.junit.ClassRule; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/structure/StructureResourceBundleGraphCompilerTest.java b/core/src/test/java/art/arcane/iris/structure/graph/StructureResourceBundleGraphCompilerTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/framework/structure/StructureResourceBundleGraphCompilerTest.java rename to core/src/test/java/art/arcane/iris/structure/graph/StructureResourceBundleGraphCompilerTest.java index 9e0146dab..2130336e1 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/structure/StructureResourceBundleGraphCompilerTest.java +++ b/core/src/test/java/art/arcane/iris/structure/graph/StructureResourceBundleGraphCompilerTest.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework.structure; +package art.arcane.iris.structure.graph; -import art.arcane.iris.core.structure.authoring.StructureBackend; -import art.arcane.iris.core.structure.authoring.StructureKey; -import art.arcane.iris.core.structure.authoring.StructureResourceBundle; -import art.arcane.iris.core.structure.authoring.StructureSource; +import art.arcane.iris.structure.authoring.StructureBackend; +import art.arcane.iris.structure.authoring.StructureKey; +import art.arcane.iris.structure.authoring.StructureResourceBundle; +import art.arcane.iris.structure.authoring.StructureSource; import org.junit.Test; import java.io.ByteArrayOutputStream; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisJigsawCompatTest.java b/core/src/test/java/art/arcane/iris/structure/jigsaw/IrisJigsawCompatTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/object/IrisJigsawCompatTest.java rename to core/src/test/java/art/arcane/iris/structure/jigsaw/IrisJigsawCompatTest.java index e8ef7c161..fb45b4ed6 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisJigsawCompatTest.java +++ b/core/src/test/java/art/arcane/iris/structure/jigsaw/IrisJigsawCompatTest.java @@ -16,11 +16,14 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.jigsaw; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.compat.CompatAction; -import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.testsupport.CompatTestPlatform; +import art.arcane.iris.structure.placement.IrisStructure; + +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.pack.validation.CompatAction; +import art.arcane.iris.pack.loading.IrisData; import org.junit.After; import org.junit.Before; import org.junit.Rule; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisJigsawModelMetadataTest.java b/core/src/test/java/art/arcane/iris/structure/jigsaw/IrisJigsawModelMetadataTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/object/IrisJigsawModelMetadataTest.java rename to core/src/test/java/art/arcane/iris/structure/jigsaw/IrisJigsawModelMetadataTest.java index ed27d4b8a..002960790 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisJigsawModelMetadataTest.java +++ b/core/src/test/java/art/arcane/iris/structure/jigsaw/IrisJigsawModelMetadataTest.java @@ -1,4 +1,7 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.jigsaw; + +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.structure.placement.IrisStructure; import com.google.gson.Gson; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisJigsawRulesModelTest.java b/core/src/test/java/art/arcane/iris/structure/jigsaw/IrisJigsawRulesModelTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/object/IrisJigsawRulesModelTest.java rename to core/src/test/java/art/arcane/iris/structure/jigsaw/IrisJigsawRulesModelTest.java index f39257d1a..7c9e44114 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisJigsawRulesModelTest.java +++ b/core/src/test/java/art/arcane/iris/structure/jigsaw/IrisJigsawRulesModelTest.java @@ -1,8 +1,10 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.jigsaw; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; +import art.arcane.iris.structure.placement.IrisStructure; + +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; import com.google.gson.Gson; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisImportedFeatureControlTest.java b/core/src/test/java/art/arcane/iris/structure/nativegen/IrisImportedFeatureControlTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/object/IrisImportedFeatureControlTest.java rename to core/src/test/java/art/arcane/iris/structure/nativegen/IrisImportedFeatureControlTest.java index 7e0baa13c..5a8eda2d0 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisImportedFeatureControlTest.java +++ b/core/src/test/java/art/arcane/iris/structure/nativegen/IrisImportedFeatureControlTest.java @@ -16,7 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.nativegen; + +import art.arcane.iris.generation.decoration.IrisDecorationStep; import art.arcane.volmlib.util.collection.KList; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisImportedStructureControlTest.java b/core/src/test/java/art/arcane/iris/structure/nativegen/IrisImportedStructureControlTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/object/IrisImportedStructureControlTest.java rename to core/src/test/java/art/arcane/iris/structure/nativegen/IrisImportedStructureControlTest.java index 1e1b734c1..55178c94d 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisImportedStructureControlTest.java +++ b/core/src/test/java/art/arcane/iris/structure/nativegen/IrisImportedStructureControlTest.java @@ -16,7 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.nativegen; + +import art.arcane.iris.structure.placement.IrisStructureSetFrequencyOverride; +import art.arcane.iris.structure.placement.IrisStructureStiltSettings; +import art.arcane.iris.structure.placement.IrisStructureTerrain; +import art.arcane.iris.structure.placement.IrisStructureTerrainMode; +import art.arcane.iris.structure.placement.IrisStructureYBand; import art.arcane.volmlib.util.collection.KList; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/NativeFeatureGenerationPolicyTest.java b/core/src/test/java/art/arcane/iris/structure/nativegen/NativeFeatureGenerationPolicyTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/framework/NativeFeatureGenerationPolicyTest.java rename to core/src/test/java/art/arcane/iris/structure/nativegen/NativeFeatureGenerationPolicyTest.java index 727c35aad..4c9a9a999 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/NativeFeatureGenerationPolicyTest.java +++ b/core/src/test/java/art/arcane/iris/structure/nativegen/NativeFeatureGenerationPolicyTest.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.nativegen; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDecorationStep; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisImportedFeatureControl; -import art.arcane.iris.engine.object.NativeFeatureGenerationStatus; +import art.arcane.iris.generation.runtime.Engine; + +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.decoration.IrisDecorationStep; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.volmlib.util.collection.KList; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/NativeStructureFrequencyScaleTest.java b/core/src/test/java/art/arcane/iris/structure/nativegen/NativeStructureFrequencyScaleTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/framework/NativeStructureFrequencyScaleTest.java rename to core/src/test/java/art/arcane/iris/structure/nativegen/NativeStructureFrequencyScaleTest.java index 5c42687e5..101d3d73a 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/NativeStructureFrequencyScaleTest.java +++ b/core/src/test/java/art/arcane/iris/structure/nativegen/NativeStructureFrequencyScaleTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.nativegen; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/NativeStructureGenerationPolicyTest.java b/core/src/test/java/art/arcane/iris/structure/nativegen/NativeStructureGenerationPolicyTest.java similarity index 89% rename from core/src/test/java/art/arcane/iris/engine/framework/NativeStructureGenerationPolicyTest.java rename to core/src/test/java/art/arcane/iris/structure/nativegen/NativeStructureGenerationPolicyTest.java index 9d7c2d6b1..e9703c609 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/NativeStructureGenerationPolicyTest.java +++ b/core/src/test/java/art/arcane/iris/structure/nativegen/NativeStructureGenerationPolicyTest.java @@ -1,13 +1,11 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.nativegen; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisImportedStructureControl; -import art.arcane.iris.engine.object.IrisNativeStructure; -import art.arcane.iris.engine.object.IrisNativeStructureDecision; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisStructurePlacement; -import art.arcane.iris.engine.object.NativeStructureGenerationStatus; +import art.arcane.iris.generation.runtime.Engine; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.structure.placement.IrisStructurePlacement; import art.arcane.volmlib.util.collection.KList; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/NativeStructureObjectVetoTest.java b/core/src/test/java/art/arcane/iris/structure/nativegen/NativeStructureObjectVetoTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/object/NativeStructureObjectVetoTest.java rename to core/src/test/java/art/arcane/iris/structure/nativegen/NativeStructureObjectVetoTest.java index 9516d6306..46c95bfd5 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/NativeStructureObjectVetoTest.java +++ b/core/src/test/java/art/arcane/iris/structure/nativegen/NativeStructureObjectVetoTest.java @@ -1,13 +1,20 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.nativegen; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.NativeStructureVolume; +import art.arcane.iris.generation.block.TileData; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.structure.object.IObjectPlacer; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.structure.object.IrisObjectRotation; +import art.arcane.iris.structure.object.ObjectPlaceMode; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.testsupport.PlatformBinding; -import art.arcane.iris.util.common.math.Vector3i; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.volmlib.util.math.Vector3i; +import art.arcane.volmlib.util.stream.ProceduralStream; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; import org.junit.Before; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/NativeStructureOwnershipRecordTest.java b/core/src/test/java/art/arcane/iris/structure/nativegen/NativeStructureOwnershipRecordTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/framework/NativeStructureOwnershipRecordTest.java rename to core/src/test/java/art/arcane/iris/structure/nativegen/NativeStructureOwnershipRecordTest.java index 64e5f0037..c090acf45 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/NativeStructureOwnershipRecordTest.java +++ b/core/src/test/java/art/arcane/iris/structure/nativegen/NativeStructureOwnershipRecordTest.java @@ -1,11 +1,9 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.nativegen; -import art.arcane.iris.engine.object.IrisNativeStructureDecision; -import art.arcane.iris.engine.object.IrisStructureCarveShape; -import art.arcane.iris.engine.object.IrisStructureStiltSettings; -import art.arcane.iris.engine.object.IrisStructureTerrain; -import art.arcane.iris.engine.object.IrisStructureTerrainMode; -import art.arcane.iris.engine.object.NativeStructureGenerationStatus; +import art.arcane.iris.structure.placement.IrisStructureCarveShape; +import art.arcane.iris.structure.placement.IrisStructureStiltSettings; +import art.arcane.iris.structure.placement.IrisStructureTerrain; +import art.arcane.iris.structure.placement.IrisStructureTerrainMode; import org.junit.Test; import java.io.ByteArrayInputStream; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/NativeStructureOwnershipStoreTest.java b/core/src/test/java/art/arcane/iris/structure/nativegen/NativeStructureOwnershipStoreTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/framework/NativeStructureOwnershipStoreTest.java rename to core/src/test/java/art/arcane/iris/structure/nativegen/NativeStructureOwnershipStoreTest.java index 5e768f44d..0f11e40ff 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/NativeStructureOwnershipStoreTest.java +++ b/core/src/test/java/art/arcane/iris/structure/nativegen/NativeStructureOwnershipStoreTest.java @@ -1,13 +1,13 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.nativegen; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.history.GenerationHistoryRuntimeRouter; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.object.IrisNativeStructureDecision; -import art.arcane.iris.engine.object.IrisStructureTerrain; -import art.arcane.iris.engine.object.NativeStructureGenerationStatus; +import art.arcane.iris.generation.runtime.Engine; + +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.world.history.GenerationHistoryRuntimeRouter; +import art.arcane.iris.generation.mantle.EngineMantle; +import art.arcane.iris.structure.placement.IrisStructureTerrain; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; +import art.arcane.iris.generation.block.B; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.matter.Matter; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/NativeStructurePlacementPlannerTest.java b/core/src/test/java/art/arcane/iris/structure/nativegen/NativeStructurePlacementPlannerTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/engine/framework/NativeStructurePlacementPlannerTest.java rename to core/src/test/java/art/arcane/iris/structure/nativegen/NativeStructurePlacementPlannerTest.java index 7b9475d20..98586e4a5 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/NativeStructurePlacementPlannerTest.java +++ b/core/src/test/java/art/arcane/iris/structure/nativegen/NativeStructurePlacementPlannerTest.java @@ -1,16 +1,17 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.nativegen; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.object.IrisNativeStructure; -import art.arcane.iris.engine.object.IrisNativeStructureDecision; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisStructureAnchorMode; -import art.arcane.iris.engine.object.IrisStructurePlacement; -import art.arcane.iris.engine.object.IrisStructureTerrain; -import art.arcane.iris.engine.object.IrisStructureTerrainMode; -import art.arcane.iris.engine.object.NativeStructureGenerationStatus; -import art.arcane.iris.engine.object.StructureDistribution; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.SeedManager; +import art.arcane.iris.structure.placement.StructurePlacementGrid; + +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.structure.placement.IrisStructureAnchorMode; +import art.arcane.iris.structure.placement.IrisStructurePlacement; +import art.arcane.iris.structure.placement.IrisStructureTerrain; +import art.arcane.iris.structure.placement.IrisStructureTerrainMode; +import art.arcane.iris.structure.placement.StructureDistribution; +import art.arcane.volmlib.util.stream.ProceduralStream; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/NativeStructureVolumeMemoTest.java b/core/src/test/java/art/arcane/iris/structure/nativegen/NativeStructureVolumeMemoTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/framework/NativeStructureVolumeMemoTest.java rename to core/src/test/java/art/arcane/iris/structure/nativegen/NativeStructureVolumeMemoTest.java index 44dfb243f..76dcfae03 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/NativeStructureVolumeMemoTest.java +++ b/core/src/test/java/art/arcane/iris/structure/nativegen/NativeStructureVolumeMemoTest.java @@ -1,4 +1,7 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.nativegen; + +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EnginePlatformHooks; import art.arcane.volmlib.util.collection.KList; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/NativeStructureVolumeSuppressionTest.java b/core/src/test/java/art/arcane/iris/structure/nativegen/NativeStructureVolumeSuppressionTest.java similarity index 86% rename from core/src/test/java/art/arcane/iris/engine/framework/NativeStructureVolumeSuppressionTest.java rename to core/src/test/java/art/arcane/iris/structure/nativegen/NativeStructureVolumeSuppressionTest.java index 3b94a31bc..a3ade1213 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/NativeStructureVolumeSuppressionTest.java +++ b/core/src/test/java/art/arcane/iris/structure/nativegen/NativeStructureVolumeSuppressionTest.java @@ -1,11 +1,11 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.nativegen; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisImportedStructureControl; -import art.arcane.iris.engine.object.IrisNativeStructure; -import art.arcane.iris.engine.object.IrisStructurePlacement; -import art.arcane.iris.engine.object.StructureDistribution; +import art.arcane.iris.generation.runtime.Engine; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.structure.placement.IrisStructurePlacement; +import art.arcane.iris.structure.placement.StructureDistribution; import art.arcane.volmlib.util.collection.KList; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/NativeStructureVolumeTest.java b/core/src/test/java/art/arcane/iris/structure/nativegen/NativeStructureVolumeTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/framework/NativeStructureVolumeTest.java rename to core/src/test/java/art/arcane/iris/structure/nativegen/NativeStructureVolumeTest.java index 42525e7fa..2bb165238 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/NativeStructureVolumeTest.java +++ b/core/src/test/java/art/arcane/iris/structure/nativegen/NativeStructureVolumeTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.nativegen; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/placer/HeightmapObjectPlacerTest.java b/core/src/test/java/art/arcane/iris/structure/object/HeightmapObjectPlacerTest.java similarity index 82% rename from core/src/test/java/art/arcane/iris/engine/framework/placer/HeightmapObjectPlacerTest.java rename to core/src/test/java/art/arcane/iris/structure/object/HeightmapObjectPlacerTest.java index d17c61c66..7583ca118 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/placer/HeightmapObjectPlacerTest.java +++ b/core/src/test/java/art/arcane/iris/structure/object/HeightmapObjectPlacerTest.java @@ -1,8 +1,6 @@ -package art.arcane.iris.engine.framework.placer; +package art.arcane.iris.structure.object; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IObjectPlacer; -import art.arcane.iris.engine.object.IrisObjectPlacement; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.volmlib.util.math.RNG; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IObjectPlacerFluidHeightTest.java b/core/src/test/java/art/arcane/iris/structure/object/IObjectPlacerFluidHeightTest.java similarity index 91% rename from core/src/test/java/art/arcane/iris/engine/object/IObjectPlacerFluidHeightTest.java rename to core/src/test/java/art/arcane/iris/structure/object/IObjectPlacerFluidHeightTest.java index c7248e4a5..739dd36f9 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IObjectPlacerFluidHeightTest.java +++ b/core/src/test/java/art/arcane/iris/structure/object/IObjectPlacerFluidHeightTest.java @@ -1,8 +1,10 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.iris.generation.terrain.IrisDimension; + +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.volmlib.util.stream.ProceduralStream; import org.junit.Test; import static org.junit.Assert.assertEquals; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisAxisRotationClampPurityTest.java b/core/src/test/java/art/arcane/iris/structure/object/IrisAxisRotationClampPurityTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/object/IrisAxisRotationClampPurityTest.java rename to core/src/test/java/art/arcane/iris/structure/object/IrisAxisRotationClampPurityTest.java index 9cf2edeb6..6d89d9eaa 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisAxisRotationClampPurityTest.java +++ b/core/src/test/java/art/arcane/iris/structure/object/IrisAxisRotationClampPurityTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectCopyTest.java b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectCopyTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/engine/object/IrisObjectCopyTest.java rename to core/src/test/java/art/arcane/iris/structure/object/IrisObjectCopyTest.java index 07cd45d59..acd9cf148 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectCopyTest.java +++ b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectCopyTest.java @@ -1,8 +1,10 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; + +import art.arcane.iris.generation.block.TileData; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.math.IrisBlockVector; -import art.arcane.iris.util.common.math.Vector3i; +import art.arcane.iris.generation.geometry.IrisBlockVector; +import art.arcane.volmlib.util.math.Vector3i; import art.arcane.volmlib.util.collection.KMap; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectDirectPlacementTest.java b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectDirectPlacementTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/engine/object/IrisObjectDirectPlacementTest.java rename to core/src/test/java/art/arcane/iris/structure/object/IrisObjectDirectPlacementTest.java index 775a53018..97c1c7d38 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectDirectPlacementTest.java +++ b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectDirectPlacementTest.java @@ -1,10 +1,10 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.core.service.ExternalDataSVC; +import art.arcane.iris.integration.Identifier; +import art.arcane.iris.integration.ExternalDataSVC; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.IrisCustomData; +import art.arcane.iris.generation.block.IrisCustomData; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.block.Block; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectGlobalScaleTest.java b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectGlobalScaleTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/object/IrisObjectGlobalScaleTest.java rename to core/src/test/java/art/arcane/iris/structure/object/IrisObjectGlobalScaleTest.java index 98acbc6e3..342460776 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectGlobalScaleTest.java +++ b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectGlobalScaleTest.java @@ -1,8 +1,10 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.generation.terrain.IrisDimension; + +import art.arcane.iris.pack.loading.IrisData; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.generation.geometry.IrisBlockVector; import art.arcane.volmlib.util.math.RNG; import com.google.gson.Gson; import com.google.gson.GsonBuilder; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectIoPaletteTest.java b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectIoPaletteTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/object/IrisObjectIoPaletteTest.java rename to core/src/test/java/art/arcane/iris/structure/object/IrisObjectIoPaletteTest.java index f85653b13..bd4c0f2b0 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectIoPaletteTest.java +++ b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectIoPaletteTest.java @@ -1,7 +1,9 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; + +import art.arcane.iris.testsupport.KeyedBlockState; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.generation.geometry.IrisBlockVector; import org.junit.Test; import java.io.ByteArrayInputStream; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectIoWriteLimitsTest.java b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectIoWriteLimitsTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/object/IrisObjectIoWriteLimitsTest.java rename to core/src/test/java/art/arcane/iris/structure/object/IrisObjectIoWriteLimitsTest.java index c28bd8ae7..f630fb9b6 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectIoWriteLimitsTest.java +++ b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectIoWriteLimitsTest.java @@ -1,7 +1,10 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; + +import art.arcane.iris.generation.block.TileData; +import art.arcane.iris.testsupport.KeyedBlockState; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.generation.geometry.IrisBlockVector; import art.arcane.volmlib.util.collection.KMap; import org.junit.BeforeClass; import org.junit.Rule; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectPaletteScanTest.java b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectPaletteScanTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/object/IrisObjectPaletteScanTest.java rename to core/src/test/java/art/arcane/iris/structure/object/IrisObjectPaletteScanTest.java index b4aa49426..51efcffb5 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectPaletteScanTest.java +++ b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectPaletteScanTest.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectPlacementCompatTest.java b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectPlacementCompatTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/object/IrisObjectPlacementCompatTest.java rename to core/src/test/java/art/arcane/iris/structure/object/IrisObjectPlacementCompatTest.java index 651178eb2..99153e811 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectPlacementCompatTest.java +++ b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectPlacementCompatTest.java @@ -16,13 +16,16 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.compat.CompatAction; -import art.arcane.iris.core.compat.CompatFinding; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.util.common.data.DataProvider; +import art.arcane.iris.generation.block.IrisBlockData; +import art.arcane.iris.testsupport.CompatTestPlatform; + +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.pack.validation.CompatAction; +import art.arcane.iris.pack.validation.CompatFinding; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.block.DataProvider; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; import org.junit.After; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectPlacementRunnerRegressionTest.java b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectPlacementRunnerRegressionTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/object/IrisObjectPlacementRunnerRegressionTest.java rename to core/src/test/java/art/arcane/iris/structure/object/IrisObjectPlacementRunnerRegressionTest.java index c4b43a32a..2a4be9e60 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectPlacementRunnerRegressionTest.java +++ b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectPlacementRunnerRegressionTest.java @@ -1,15 +1,20 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.NativeStructureVolume; -import art.arcane.iris.engine.framework.PlacedObject; +import art.arcane.iris.generation.block.TileData; +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.generation.noise.NoiseStyle; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.nativegen.NativeStructureVolume; +import art.arcane.iris.structure.placement.PlacedObject; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformRegistries; import art.arcane.iris.testsupport.PlatformLeakGuard; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.volmlib.util.noise.CNG; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.math.RNG; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectPlacementSurfaceWarpCacheTest.java b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectPlacementSurfaceWarpCacheTest.java similarity index 84% rename from core/src/test/java/art/arcane/iris/engine/object/IrisObjectPlacementSurfaceWarpCacheTest.java rename to core/src/test/java/art/arcane/iris/structure/object/IrisObjectPlacementSurfaceWarpCacheTest.java index 7d2c9e5c0..1d35b0dd4 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectPlacementSurfaceWarpCacheTest.java +++ b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectPlacementSurfaceWarpCacheTest.java @@ -1,9 +1,12 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.SeedManager; -import art.arcane.iris.util.project.noise.CNG; +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.generation.noise.NoiseStyle; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.SeedManager; +import art.arcane.volmlib.util.noise.CNG; import art.arcane.volmlib.util.math.RNG; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectPlacementToPlacementTest.java b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectPlacementToPlacementTest.java similarity index 90% rename from core/src/test/java/art/arcane/iris/engine/object/IrisObjectPlacementToPlacementTest.java rename to core/src/test/java/art/arcane/iris/structure/object/IrisObjectPlacementToPlacementTest.java index d6fdf00b0..ffd063f2b 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectPlacementToPlacementTest.java +++ b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectPlacementToPlacementTest.java @@ -1,4 +1,14 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; + +import art.arcane.iris.generation.cave.CarvingMode; +import art.arcane.iris.generation.cave.IrisCaveAnchorMode; +import art.arcane.iris.generation.decoration.IrisStiltSettings; +import art.arcane.iris.generation.decoration.tree.IrisTree; +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.generation.noise.IrisNoiseGenerator; +import art.arcane.iris.generation.noise.IrisStyledRange; +import art.arcane.iris.generation.noise.NoiseStyle; +import art.arcane.iris.generation.terrain.IrisSlopeClip; import art.arcane.volmlib.util.collection.KList; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectRotationFlipTest.java b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectRotationFlipTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/object/IrisObjectRotationFlipTest.java rename to core/src/test/java/art/arcane/iris/structure/object/IrisObjectRotationFlipTest.java index 12d099032..b23ad729e 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectRotationFlipTest.java +++ b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectRotationFlipTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.generation.geometry.IrisBlockVector; import org.junit.Test; import static org.junit.Assert.assertEquals; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectScaleCacheTest.java b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectScaleCacheTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/object/IrisObjectScaleCacheTest.java rename to core/src/test/java/art/arcane/iris/structure/object/IrisObjectScaleCacheTest.java index ffd1c0f3a..30d244a07 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectScaleCacheTest.java +++ b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectScaleCacheTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.pack.loading.IrisData; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.volmlib.util.math.RNG; import org.junit.After; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectShapingTest.java b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectShapingTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/object/IrisObjectShapingTest.java rename to core/src/test/java/art/arcane/iris/structure/object/IrisObjectShapingTest.java index 456e3fe2a..ec8cb1e21 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectShapingTest.java +++ b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectShapingTest.java @@ -1,11 +1,11 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformRegistries; import art.arcane.iris.testsupport.PlatformLeakGuard; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.generation.geometry.IrisBlockVector; import org.junit.After; import org.junit.Before; import org.junit.ClassRule; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectStructurePieceAirTest.java b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectStructurePieceAirTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/object/IrisObjectStructurePieceAirTest.java rename to core/src/test/java/art/arcane/iris/structure/object/IrisObjectStructurePieceAirTest.java index 0bb7242b4..163b7127c 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectStructurePieceAirTest.java +++ b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectStructurePieceAirTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectSurfaceSupportPlacementTest.java b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectSurfaceSupportPlacementTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/object/IrisObjectSurfaceSupportPlacementTest.java rename to core/src/test/java/art/arcane/iris/structure/object/IrisObjectSurfaceSupportPlacementTest.java index 1b9c5e166..eec7091ea 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectSurfaceSupportPlacementTest.java +++ b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectSurfaceSupportPlacementTest.java @@ -1,11 +1,16 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.generation.block.TileData; +import art.arcane.iris.generation.cave.CarvingMode; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisSlopeClip; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.testsupport.PlatformBinding; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.volmlib.util.stream.ProceduralStream; import art.arcane.volmlib.util.math.RNG; import org.junit.Before; import org.junit.Rule; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectTransformsNearestBlockIndexTest.java b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectTransformsNearestBlockIndexTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/object/IrisObjectTransformsNearestBlockIndexTest.java rename to core/src/test/java/art/arcane/iris/structure/object/IrisObjectTransformsNearestBlockIndexTest.java index 44440a316..978ad2676 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectTransformsNearestBlockIndexTest.java +++ b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectTransformsNearestBlockIndexTest.java @@ -1,9 +1,9 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; -import art.arcane.iris.util.common.data.VectorMap; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.generation.block.B; +import art.arcane.iris.generation.block.VectorMap; +import art.arcane.iris.generation.geometry.IrisBlockVector; import org.junit.Test; import java.util.ArrayList; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectTransformsTileTest.java b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectTransformsTileTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/object/IrisObjectTransformsTileTest.java rename to core/src/test/java/art/arcane/iris/structure/object/IrisObjectTransformsTileTest.java index 140ae7a6f..ddf1b8036 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectTransformsTileTest.java +++ b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectTransformsTileTest.java @@ -1,12 +1,14 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; + +import art.arcane.iris.generation.block.TileData; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformRegistries; import art.arcane.iris.testsupport.PlatformLeakGuard; -import art.arcane.iris.util.common.math.IrisBlockVector; -import art.arcane.iris.util.common.math.Vector3i; +import art.arcane.iris.generation.geometry.IrisBlockVector; +import art.arcane.volmlib.util.math.Vector3i; import art.arcane.volmlib.util.collection.KMap; import org.junit.After; import org.junit.Before; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectTransientBlockTest.java b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectTransientBlockTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/object/IrisObjectTransientBlockTest.java rename to core/src/test/java/art/arcane/iris/structure/object/IrisObjectTransientBlockTest.java index 52addcc06..e14512cf5 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectTransientBlockTest.java +++ b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectTransientBlockTest.java @@ -1,8 +1,11 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; + +import art.arcane.iris.generation.block.TileData; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.testsupport.PlatformBinding; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.generation.geometry.IrisBlockVector; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.math.RNG; import com.google.gson.Gson; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectVacuumTest.java b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectVacuumTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/object/IrisObjectVacuumTest.java rename to core/src/test/java/art/arcane/iris/structure/object/IrisObjectVacuumTest.java index f7c0d7a04..31d1213ea 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisObjectVacuumTest.java +++ b/core/src/test/java/art/arcane/iris/structure/object/IrisObjectVacuumTest.java @@ -16,7 +16,9 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; + +import art.arcane.iris.generation.decoration.IrisVacuumSettings; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisPaintSurfaceProjectionTest.java b/core/src/test/java/art/arcane/iris/structure/object/IrisPaintSurfaceProjectionTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/object/IrisPaintSurfaceProjectionTest.java rename to core/src/test/java/art/arcane/iris/structure/object/IrisPaintSurfaceProjectionTest.java index 113a8f6a1..c397cc927 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisPaintSurfaceProjectionTest.java +++ b/core/src/test/java/art/arcane/iris/structure/object/IrisPaintSurfaceProjectionTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisStaticObjectCompatTest.java b/core/src/test/java/art/arcane/iris/structure/object/IrisStaticObjectCompatTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/object/IrisStaticObjectCompatTest.java rename to core/src/test/java/art/arcane/iris/structure/object/IrisStaticObjectCompatTest.java index 7c25831e4..e51f0f771 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisStaticObjectCompatTest.java +++ b/core/src/test/java/art/arcane/iris/structure/object/IrisStaticObjectCompatTest.java @@ -16,15 +16,20 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.compat.CompatAction; -import art.arcane.iris.core.compat.CompatFinding; -import art.arcane.iris.core.compat.CompatStatus; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.pack.PackValidationResult; -import art.arcane.iris.core.pack.PackValidator; +import art.arcane.iris.generation.block.IrisBlockData; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.testsupport.CompatTestPlatform; +import art.arcane.iris.pack.value.IrisPosition; + +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.pack.validation.CompatAction; +import art.arcane.iris.pack.validation.CompatFinding; +import art.arcane.iris.pack.validation.CompatStatus; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.PackValidationResult; +import art.arcane.iris.pack.PackValidator; import art.arcane.volmlib.util.collection.KList; import org.junit.After; import org.junit.Before; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisStaticObjectLayerTest.java b/core/src/test/java/art/arcane/iris/structure/object/IrisStaticObjectLayerTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/object/IrisStaticObjectLayerTest.java rename to core/src/test/java/art/arcane/iris/structure/object/IrisStaticObjectLayerTest.java index e090b381c..a18e349da 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisStaticObjectLayerTest.java +++ b/core/src/test/java/art/arcane/iris/structure/object/IrisStaticObjectLayerTest.java @@ -1,17 +1,21 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.mantle.EngineMantle; +import art.arcane.iris.generation.block.TileData; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.pack.value.IrisPosition; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.mantle.EngineMantle; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformRegistries; import art.arcane.iris.testsupport.PlatformLeakGuard; -import art.arcane.iris.util.common.math.IrisBlockVector; -import art.arcane.iris.util.project.hunk.Hunk; -import art.arcane.iris.util.project.matter.TileWrapper; +import art.arcane.iris.generation.geometry.IrisBlockVector; +import art.arcane.volmlib.util.hunk.Hunk; +import art.arcane.iris.world.storage.matter.TileWrapper; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.mantle.runtime.Mantle; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisStaticObjectTest.java b/core/src/test/java/art/arcane/iris/structure/object/IrisStaticObjectTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/object/IrisStaticObjectTest.java rename to core/src/test/java/art/arcane/iris/structure/object/IrisStaticObjectTest.java index 0a8d4f932..5b74ac634 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisStaticObjectTest.java +++ b/core/src/test/java/art/arcane/iris/structure/object/IrisStaticObjectTest.java @@ -1,4 +1,7 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; + +import art.arcane.iris.generation.block.IrisBlockData; +import art.arcane.iris.pack.value.IrisPosition; import art.arcane.volmlib.util.collection.KList; import com.google.gson.Gson; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisSurfaceSupportTest.java b/core/src/test/java/art/arcane/iris/structure/object/IrisSurfaceSupportTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/engine/object/IrisSurfaceSupportTest.java rename to core/src/test/java/art/arcane/iris/structure/object/IrisSurfaceSupportTest.java index be8bd89ee..ad333880b 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisSurfaceSupportTest.java +++ b/core/src/test/java/art/arcane/iris/structure/object/IrisSurfaceSupportTest.java @@ -1,9 +1,17 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.object; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.generation.block.TileData; +import art.arcane.iris.generation.decoration.formation.IrisFormation; +import art.arcane.iris.structure.object.IObjectPlacer; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.structure.object.IrisObjectRotation; +import art.arcane.iris.structure.object.IrisObjectTranslate; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.generation.geometry.IrisBlockVector; import org.junit.Test; import java.util.ArrayList; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisStructureAnchorModeTest.java b/core/src/test/java/art/arcane/iris/structure/placement/IrisStructureAnchorModeTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/object/IrisStructureAnchorModeTest.java rename to core/src/test/java/art/arcane/iris/structure/placement/IrisStructureAnchorModeTest.java index 3b6331a10..710a01939 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisStructureAnchorModeTest.java +++ b/core/src/test/java/art/arcane/iris/structure/placement/IrisStructureAnchorModeTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.placement; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/IrisStructureLocatorContractTest.java b/core/src/test/java/art/arcane/iris/structure/placement/IrisStructureLocatorContractTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/framework/IrisStructureLocatorContractTest.java rename to core/src/test/java/art/arcane/iris/structure/placement/IrisStructureLocatorContractTest.java index c68b40654..a16fc2469 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/IrisStructureLocatorContractTest.java +++ b/core/src/test/java/art/arcane/iris/structure/placement/IrisStructureLocatorContractTest.java @@ -16,33 +16,29 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.placement; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.structure.StructureGraphCatalog; -import art.arcane.iris.engine.object.IrisDirection; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisJigsawConnector; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisJigsawPieceEntry; -import art.arcane.iris.engine.object.IrisJigsawPool; -import art.arcane.iris.engine.object.IrisNativeStructure; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisStructure; -import art.arcane.iris.engine.object.IrisStructureAnchorMode; -import art.arcane.iris.engine.object.IrisStructureCarveShape; -import art.arcane.iris.engine.object.IrisStructurePlacement; -import art.arcane.iris.engine.object.IrisStructureTerrain; -import art.arcane.iris.engine.object.IrisStructureTerrainMode; -import art.arcane.iris.engine.object.NativeStructureSuppression; -import art.arcane.iris.engine.object.ObjectPlaceMode; -import art.arcane.iris.engine.object.StructureDistribution; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.SeedManager; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.structure.graph.StructureGraphCatalog; +import art.arcane.iris.pack.value.IrisDirection; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.structure.jigsaw.IrisJigsawConnector; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.jigsaw.IrisJigsawPieceEntry; +import art.arcane.iris.structure.jigsaw.IrisJigsawPool; +import art.arcane.iris.structure.nativegen.IrisNativeStructure; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.structure.nativegen.NativeStructureSuppression; +import art.arcane.iris.structure.object.ObjectPlaceMode; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.volmlib.util.stream.ProceduralStream; import org.junit.Test; import java.util.Set; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisStructureLootPlacementTest.java b/core/src/test/java/art/arcane/iris/structure/placement/IrisStructureLootPlacementTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/engine/object/IrisStructureLootPlacementTest.java rename to core/src/test/java/art/arcane/iris/structure/placement/IrisStructureLootPlacementTest.java index 578b153eb..c288e2572 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisStructureLootPlacementTest.java +++ b/core/src/test/java/art/arcane/iris/structure/placement/IrisStructureLootPlacementTest.java @@ -1,4 +1,6 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.placement; + +import art.arcane.iris.structure.object.IrisObjectPlacement; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisStructurePlacementCarveSettingsTest.java b/core/src/test/java/art/arcane/iris/structure/placement/IrisStructurePlacementCarveSettingsTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/object/IrisStructurePlacementCarveSettingsTest.java rename to core/src/test/java/art/arcane/iris/structure/placement/IrisStructurePlacementCarveSettingsTest.java index e4d298ef2..55a31acf5 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisStructurePlacementCarveSettingsTest.java +++ b/core/src/test/java/art/arcane/iris/structure/placement/IrisStructurePlacementCarveSettingsTest.java @@ -1,7 +1,9 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.placement; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; +import art.arcane.iris.generation.terrain.IrisMaterialPalette; + +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; import org.junit.Test; import java.lang.reflect.Field; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/IrisStructurePlacementRingLocatorTest.java b/core/src/test/java/art/arcane/iris/structure/placement/IrisStructurePlacementRingLocatorTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/framework/IrisStructurePlacementRingLocatorTest.java rename to core/src/test/java/art/arcane/iris/structure/placement/IrisStructurePlacementRingLocatorTest.java index 7b88fa501..830f7f3ce 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/IrisStructurePlacementRingLocatorTest.java +++ b/core/src/test/java/art/arcane/iris/structure/placement/IrisStructurePlacementRingLocatorTest.java @@ -1,10 +1,11 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.placement; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisNativeStructure; -import art.arcane.iris.engine.object.IrisStructurePlacement; -import art.arcane.iris.engine.object.StructureDistribution; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.SeedManager; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.structure.nativegen.IrisNativeStructure; import art.arcane.volmlib.util.collection.KList; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisStructureStiltSettingsTest.java b/core/src/test/java/art/arcane/iris/structure/placement/IrisStructureStiltSettingsTest.java similarity index 91% rename from core/src/test/java/art/arcane/iris/engine/object/IrisStructureStiltSettingsTest.java rename to core/src/test/java/art/arcane/iris/structure/placement/IrisStructureStiltSettingsTest.java index 47ca6d9c7..19cd2ee8f 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisStructureStiltSettingsTest.java +++ b/core/src/test/java/art/arcane/iris/structure/placement/IrisStructureStiltSettingsTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.placement; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; import org.junit.Test; import java.lang.reflect.Field; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisStructureYBandTest.java b/core/src/test/java/art/arcane/iris/structure/placement/IrisStructureYBandTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/engine/object/IrisStructureYBandTest.java rename to core/src/test/java/art/arcane/iris/structure/placement/IrisStructureYBandTest.java index 5ed7ded0f..3bd450da6 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisStructureYBandTest.java +++ b/core/src/test/java/art/arcane/iris/structure/placement/IrisStructureYBandTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.structure.placement; -import art.arcane.iris.engine.object.annotations.MaxNumber; -import art.arcane.iris.engine.object.annotations.MinNumber; +import art.arcane.iris.pack.schema.annotation.MaxNumber; +import art.arcane.iris.pack.schema.annotation.MinNumber; import org.junit.Test; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/LootResolverClearModeTest.java b/core/src/test/java/art/arcane/iris/structure/placement/LootResolverClearModeTest.java similarity index 91% rename from core/src/test/java/art/arcane/iris/engine/framework/LootResolverClearModeTest.java rename to core/src/test/java/art/arcane/iris/structure/placement/LootResolverClearModeTest.java index 8f1a6ff64..0791fff45 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/LootResolverClearModeTest.java +++ b/core/src/test/java/art/arcane/iris/structure/placement/LootResolverClearModeTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.placement; -import art.arcane.iris.engine.object.IrisLootMode; +import art.arcane.iris.world.loot.IrisLootMode; import org.junit.Test; import java.util.ArrayList; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/LootResolverTest.java b/core/src/test/java/art/arcane/iris/structure/placement/LootResolverTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/framework/LootResolverTest.java rename to core/src/test/java/art/arcane/iris/structure/placement/LootResolverTest.java index 7a9859647..19e3db7fe 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/LootResolverTest.java +++ b/core/src/test/java/art/arcane/iris/structure/placement/LootResolverTest.java @@ -1,15 +1,17 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.placement; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.object.InventorySlotType; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisLootMode; -import art.arcane.iris.engine.object.IrisLootReference; -import art.arcane.iris.engine.object.IrisLootTable; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.MaxNumber; +import art.arcane.iris.generation.runtime.Engine; + +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.world.loot.InventorySlotType; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.world.loot.IrisLootMode; +import art.arcane.iris.world.loot.IrisLootReference; +import art.arcane.iris.world.loot.IrisLootTable; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.MaxNumber; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.RNG; import org.junit.Test; @@ -237,7 +239,7 @@ public class LootResolverTest { public void lootMultiplierCapIsPublishedInSchemaMetadata() throws Exception { Field multiplier = IrisLootReference.class.getDeclaredField("multiplier"); MaxNumber maximum = multiplier.getAnnotation(MaxNumber.class); - Desc description = multiplier.getAnnotation(Desc.class); + Description description = multiplier.getAnnotation(Description.class); assertEquals(IrisLootReference.MAX_MULTIPLIER, maximum.value(), 0D); assertTrue(description.value().contains("0 to 16")); diff --git a/core/src/test/java/art/arcane/iris/engine/framework/StructureAssemblerCompatTest.java b/core/src/test/java/art/arcane/iris/structure/placement/StructureAssemblerCompatTest.java similarity index 84% rename from core/src/test/java/art/arcane/iris/engine/framework/StructureAssemblerCompatTest.java rename to core/src/test/java/art/arcane/iris/structure/placement/StructureAssemblerCompatTest.java index 63efc154a..836489779 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/StructureAssemblerCompatTest.java +++ b/core/src/test/java/art/arcane/iris/structure/placement/StructureAssemblerCompatTest.java @@ -16,24 +16,23 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.placement; -import art.arcane.iris.core.compat.CompatAction; -import art.arcane.iris.core.compat.CompatFinding; -import art.arcane.iris.core.compat.CompatRegistry; -import art.arcane.iris.core.compat.CompatStatus; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.structure.StructureAssemblyResult; -import art.arcane.iris.engine.framework.structure.StructureAssemblyStatus; -import art.arcane.iris.engine.object.IrisDirection; -import art.arcane.iris.engine.object.IrisJigsawConnector; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisJigsawPieceEntry; -import art.arcane.iris.engine.object.IrisJigsawPool; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.IrisStructure; -import art.arcane.iris.engine.object.JigsawJoint; +import art.arcane.iris.pack.validation.CompatAction; +import art.arcane.iris.pack.validation.CompatFinding; +import art.arcane.iris.pack.validation.CompatRegistry; +import art.arcane.iris.pack.validation.CompatStatus; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.structure.graph.StructureAssemblyResult; +import art.arcane.iris.structure.graph.StructureAssemblyStatus; +import art.arcane.iris.pack.value.IrisDirection; +import art.arcane.iris.structure.jigsaw.IrisJigsawConnector; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.jigsaw.IrisJigsawPieceEntry; +import art.arcane.iris.structure.jigsaw.IrisJigsawPool; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.structure.jigsaw.JigsawJoint; import art.arcane.iris.testsupport.PlatformBinding; import art.arcane.volmlib.util.math.RNG; import org.junit.ClassRule; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/StructureAssemblerTest.java b/core/src/test/java/art/arcane/iris/structure/placement/StructureAssemblerTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/framework/StructureAssemblerTest.java rename to core/src/test/java/art/arcane/iris/structure/placement/StructureAssemblerTest.java index ca3121b5f..65145fdf3 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/StructureAssemblerTest.java +++ b/core/src/test/java/art/arcane/iris/structure/placement/StructureAssemblerTest.java @@ -16,24 +16,23 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.placement; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.structure.StructureAssemblyResult; -import art.arcane.iris.engine.framework.structure.StructureAssemblyStatus; -import art.arcane.iris.engine.object.IrisDirection; -import art.arcane.iris.engine.object.IrisJigsawBranchFailurePolicy; -import art.arcane.iris.engine.object.IrisJigsawConnector; -import art.arcane.iris.engine.object.IrisJigsawMode; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisJigsawPieceEntry; -import art.arcane.iris.engine.object.IrisJigsawPieceRules; -import art.arcane.iris.engine.object.IrisJigsawPool; -import art.arcane.iris.engine.object.IrisJigsawThemeSet; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.IrisStructure; -import art.arcane.iris.engine.object.JigsawJoint; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.structure.graph.StructureAssemblyResult; +import art.arcane.iris.structure.graph.StructureAssemblyStatus; +import art.arcane.iris.pack.value.IrisDirection; +import art.arcane.iris.structure.jigsaw.IrisJigsawBranchFailurePolicy; +import art.arcane.iris.structure.jigsaw.IrisJigsawConnector; +import art.arcane.iris.structure.jigsaw.IrisJigsawMode; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.jigsaw.IrisJigsawPieceEntry; +import art.arcane.iris.structure.jigsaw.IrisJigsawPieceRules; +import art.arcane.iris.structure.jigsaw.IrisJigsawPool; +import art.arcane.iris.structure.jigsaw.IrisJigsawThemeSet; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.structure.jigsaw.JigsawJoint; import art.arcane.iris.testsupport.PlatformBinding; import art.arcane.volmlib.util.math.RNG; import org.junit.ClassRule; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/StructureCaveAnchorResolverTest.java b/core/src/test/java/art/arcane/iris/structure/placement/StructureCaveAnchorResolverTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/framework/StructureCaveAnchorResolverTest.java rename to core/src/test/java/art/arcane/iris/structure/placement/StructureCaveAnchorResolverTest.java index 267c9720f..d522b1897 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/StructureCaveAnchorResolverTest.java +++ b/core/src/test/java/art/arcane/iris/structure/placement/StructureCaveAnchorResolverTest.java @@ -1,10 +1,10 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.placement; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisStructureAnchorMode; -import art.arcane.iris.engine.object.IrisStructurePlacement; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.generation.runtime.Engine; + +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; import art.arcane.iris.testsupport.PlatformBinding; import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.matter.MatterCavern; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/StructurePlacementGridTest.java b/core/src/test/java/art/arcane/iris/structure/placement/StructurePlacementGridTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/framework/StructurePlacementGridTest.java rename to core/src/test/java/art/arcane/iris/structure/placement/StructurePlacementGridTest.java index e565de2e4..d6bff66b6 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/StructurePlacementGridTest.java +++ b/core/src/test/java/art/arcane/iris/structure/placement/StructurePlacementGridTest.java @@ -16,11 +16,8 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.placement; -import art.arcane.iris.engine.object.IrisStructurePlacement; -import art.arcane.iris.engine.object.IrisStructureAnchorMode; -import art.arcane.iris.engine.object.StructureDistribution; import org.junit.Test; import static org.junit.Assert.assertEquals; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/StructurePlacementMarkerTest.java b/core/src/test/java/art/arcane/iris/structure/placement/StructurePlacementMarkerTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/framework/StructurePlacementMarkerTest.java rename to core/src/test/java/art/arcane/iris/structure/placement/StructurePlacementMarkerTest.java index f25571f1c..445d90361 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/StructurePlacementMarkerTest.java +++ b/core/src/test/java/art/arcane/iris/structure/placement/StructurePlacementMarkerTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.placement; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/StructurePlacementScopeTest.java b/core/src/test/java/art/arcane/iris/structure/placement/StructurePlacementScopeTest.java similarity index 92% rename from core/src/test/java/art/arcane/iris/engine/framework/StructurePlacementScopeTest.java rename to core/src/test/java/art/arcane/iris/structure/placement/StructurePlacementScopeTest.java index 20b9785de..6cfaa9370 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/StructurePlacementScopeTest.java +++ b/core/src/test/java/art/arcane/iris/structure/placement/StructurePlacementScopeTest.java @@ -1,11 +1,11 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.placement; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisStructureAnchorMode; -import art.arcane.iris.engine.object.IrisStructurePlacement; +import art.arcane.iris.generation.runtime.Engine; + +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; import art.arcane.volmlib.util.collection.KList; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/StructureReachabilityContractTest.java b/core/src/test/java/art/arcane/iris/structure/placement/StructureReachabilityContractTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/framework/StructureReachabilityContractTest.java rename to core/src/test/java/art/arcane/iris/structure/placement/StructureReachabilityContractTest.java index 40b3855bb..4b89777d1 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/StructureReachabilityContractTest.java +++ b/core/src/test/java/art/arcane/iris/structure/placement/StructureReachabilityContractTest.java @@ -16,10 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.placement; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisWorld; +import art.arcane.iris.generation.runtime.Engine; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.world.IrisWorld; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformStructureHooks; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/StructureVerticalBoundsTest.java b/core/src/test/java/art/arcane/iris/structure/placement/StructureVerticalBoundsTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/framework/StructureVerticalBoundsTest.java rename to core/src/test/java/art/arcane/iris/structure/placement/StructureVerticalBoundsTest.java index d4fc87950..f9b45184b 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/StructureVerticalBoundsTest.java +++ b/core/src/test/java/art/arcane/iris/structure/placement/StructureVerticalBoundsTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.framework; +package art.arcane.iris.structure.placement; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/service/PackDownloadProgressReporterTest.java b/core/src/test/java/art/arcane/iris/studio/PackDownloadProgressReporterTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/service/PackDownloadProgressReporterTest.java rename to core/src/test/java/art/arcane/iris/studio/PackDownloadProgressReporterTest.java index 22c2404b3..f4bfb794b 100644 --- a/core/src/test/java/art/arcane/iris/core/service/PackDownloadProgressReporterTest.java +++ b/core/src/test/java/art/arcane/iris/studio/PackDownloadProgressReporterTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio; -import art.arcane.iris.core.pack.PackDownloader; -import art.arcane.iris.util.common.format.C; -import art.arcane.iris.util.common.plugin.VolmitSender; +import art.arcane.iris.pack.PackDownloader; +import art.arcane.iris.localization.C; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; import art.arcane.volmlib.util.format.Form; import org.junit.Test; import org.mockito.ArgumentCaptor; diff --git a/core/src/test/java/art/arcane/iris/core/service/StudioSVCJigsawProtectionTest.java b/core/src/test/java/art/arcane/iris/studio/StudioSVCJigsawProtectionTest.java similarity index 88% rename from core/src/test/java/art/arcane/iris/core/service/StudioSVCJigsawProtectionTest.java rename to core/src/test/java/art/arcane/iris/studio/StudioSVCJigsawProtectionTest.java index 6396de9ae..62a71ae1b 100644 --- a/core/src/test/java/art/arcane/iris/core/service/StudioSVCJigsawProtectionTest.java +++ b/core/src/test/java/art/arcane/iris/studio/StudioSVCJigsawProtectionTest.java @@ -1,17 +1,19 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.project.IrisProject; -import art.arcane.iris.core.runtime.StudioOpenCoordinator; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioActivation; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCellDimensions; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCompatibilityTarget; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioLayout; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioMode; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioVariantCatalog; +import art.arcane.iris.studio.jigsaw.JigsawStudioService; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.studio.workspace.IrisProject; +import art.arcane.iris.studio.object.StudioOpenCoordinator; +import art.arcane.iris.studio.jigsaw.JigsawStudioActivation; +import art.arcane.iris.studio.jigsaw.JigsawStudioCellDimensions; +import art.arcane.iris.studio.jigsaw.JigsawStudioCompatibilityTarget; +import art.arcane.iris.studio.jigsaw.JigsawStudioLayout; +import art.arcane.iris.studio.jigsaw.JigsawStudioMode; +import art.arcane.iris.studio.jigsaw.JigsawStudioVariantCatalog; import art.arcane.iris.platform.bukkit.BukkitPlatform; -import art.arcane.iris.util.common.plugin.VolmitPlugin; -import art.arcane.iris.util.common.plugin.VolmitSender; +import art.arcane.iris.platform.bukkit.plugin.VolmitPlugin; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; import org.junit.After; import org.junit.Before; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/service/StudioSVCPackAdmissionTest.java b/core/src/test/java/art/arcane/iris/studio/StudioSVCPackAdmissionTest.java similarity index 91% rename from core/src/test/java/art/arcane/iris/core/service/StudioSVCPackAdmissionTest.java rename to core/src/test/java/art/arcane/iris/studio/StudioSVCPackAdmissionTest.java index fcc385c32..d19975348 100644 --- a/core/src/test/java/art/arcane/iris/core/service/StudioSVCPackAdmissionTest.java +++ b/core/src/test/java/art/arcane/iris/studio/StudioSVCPackAdmissionTest.java @@ -1,10 +1,10 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio; -import art.arcane.iris.core.IrisStartupValidation; -import art.arcane.iris.core.ServerConfigurator; -import art.arcane.iris.core.pack.BrokenPackException; -import art.arcane.iris.core.pack.PackDownloader; -import art.arcane.iris.core.pack.PackValidationResult; +import art.arcane.iris.world.IrisStartupValidation; +import art.arcane.iris.pack.datapack.ServerConfigurator; +import art.arcane.iris.pack.BrokenPackException; +import art.arcane.iris.pack.PackDownloader; +import art.arcane.iris.pack.PackValidationResult; import org.junit.After; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/service/StudioSVCPackDownloadContractTest.java b/core/src/test/java/art/arcane/iris/studio/StudioSVCPackDownloadContractTest.java similarity index 84% rename from core/src/test/java/art/arcane/iris/core/service/StudioSVCPackDownloadContractTest.java rename to core/src/test/java/art/arcane/iris/studio/StudioSVCPackDownloadContractTest.java index 118c51088..7c66677c4 100644 --- a/core/src/test/java/art/arcane/iris/core/service/StudioSVCPackDownloadContractTest.java +++ b/core/src/test/java/art/arcane/iris/studio/StudioSVCPackDownloadContractTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio; -import art.arcane.iris.core.lifecycle.LifecycleOperationCoordinator; -import art.arcane.iris.core.localization.IrisLanguage; -import art.arcane.iris.core.localization.PackDownloadMessages; +import art.arcane.iris.world.lifecycle.LifecycleOperationCoordinator; +import art.arcane.iris.localization.IrisLanguage; +import art.arcane.iris.localization.PackDownloadMessages; import org.junit.Test; import static org.junit.Assert.assertEquals; diff --git a/core/src/test/java/art/arcane/iris/core/service/StudioSVCProjectSafetyTest.java b/core/src/test/java/art/arcane/iris/studio/StudioSVCProjectSafetyTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/core/service/StudioSVCProjectSafetyTest.java rename to core/src/test/java/art/arcane/iris/studio/StudioSVCProjectSafetyTest.java index 5bcf18719..fee866641 100644 --- a/core/src/test/java/art/arcane/iris/core/service/StudioSVCProjectSafetyTest.java +++ b/core/src/test/java/art/arcane/iris/studio/StudioSVCProjectSafetyTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio; -import art.arcane.iris.core.pack.PackValidationResult; -import art.arcane.iris.core.pack.PackValidator; +import art.arcane.iris.pack.PackValidationResult; +import art.arcane.iris.pack.PackValidator; import org.junit.Assume; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/service/StudioSVCWorldPackPublishTest.java b/core/src/test/java/art/arcane/iris/studio/StudioSVCWorldPackPublishTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/service/StudioSVCWorldPackPublishTest.java rename to core/src/test/java/art/arcane/iris/studio/StudioSVCWorldPackPublishTest.java index a8f7d638b..f988b7869 100644 --- a/core/src/test/java/art/arcane/iris/core/service/StudioSVCWorldPackPublishTest.java +++ b/core/src/test/java/art/arcane/iris/studio/StudioSVCWorldPackPublishTest.java @@ -1,12 +1,12 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio; -import art.arcane.iris.core.ServerConfigurator; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.pack.AtomicDirectoryPublisher; -import art.arcane.iris.core.pack.BrokenPackException; -import art.arcane.iris.core.pack.PackValidationRegistry; -import art.arcane.iris.core.pack.PackValidationResult; -import art.arcane.iris.engine.framework.PreservationRegistry; +import art.arcane.iris.pack.datapack.ServerConfigurator; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.AtomicDirectoryPublisher; +import art.arcane.iris.pack.BrokenPackException; +import art.arcane.iris.pack.PackValidationRegistry; +import art.arcane.iris.pack.PackValidationResult; +import art.arcane.iris.generation.runtime.PreservationRegistry; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.testsupport.PlatformLeakGuard; import org.junit.Assume; diff --git a/core/src/test/java/art/arcane/iris/engine/platform/studio/generators/JigsawStudioGeneratorTest.java b/core/src/test/java/art/arcane/iris/studio/generation/JigsawStudioGeneratorTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/platform/studio/generators/JigsawStudioGeneratorTest.java rename to core/src/test/java/art/arcane/iris/studio/generation/JigsawStudioGeneratorTest.java index 177fcec7a..322c2af1d 100644 --- a/core/src/test/java/art/arcane/iris/engine/platform/studio/generators/JigsawStudioGeneratorTest.java +++ b/core/src/test/java/art/arcane/iris/studio/generation/JigsawStudioGeneratorTest.java @@ -1,34 +1,34 @@ -package art.arcane.iris.engine.platform.studio.generators; +package art.arcane.iris.studio.generation; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.core.runtime.jigsaw.JigsawPlanarArchetype; -import art.arcane.iris.core.runtime.jigsaw.JigsawPlanarDirection; -import art.arcane.iris.core.runtime.jigsaw.JigsawPlanarTopology; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioActivation; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBay; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCellDimensions; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCompatibilityTarget; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioControlPosition; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioLayout; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioMode; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioPieceRules; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioSession; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioVariant; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioVariantCatalog; -import art.arcane.iris.engine.data.chunk.TerrainChunk; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisDirection; -import art.arcane.iris.engine.object.IrisJigsawConnector; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisObjectRotation; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.JigsawJoint; -import art.arcane.iris.engine.object.TileData; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.studio.jigsaw.JigsawPlanarArchetype; +import art.arcane.iris.studio.jigsaw.JigsawPlanarDirection; +import art.arcane.iris.studio.jigsaw.JigsawPlanarTopology; +import art.arcane.iris.studio.jigsaw.JigsawStudioActivation; +import art.arcane.iris.studio.jigsaw.JigsawStudioBay; +import art.arcane.iris.studio.jigsaw.JigsawStudioCellDimensions; +import art.arcane.iris.studio.jigsaw.JigsawStudioCompatibilityTarget; +import art.arcane.iris.studio.jigsaw.JigsawStudioControlPosition; +import art.arcane.iris.studio.jigsaw.JigsawStudioLayout; +import art.arcane.iris.studio.jigsaw.JigsawStudioMode; +import art.arcane.iris.studio.jigsaw.JigsawStudioPieceRules; +import art.arcane.iris.studio.jigsaw.JigsawStudioSession; +import art.arcane.iris.studio.jigsaw.JigsawStudioVariant; +import art.arcane.iris.studio.jigsaw.JigsawStudioVariantCatalog; +import art.arcane.iris.generation.chunk.TerrainChunk; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.pack.value.IrisDirection; +import art.arcane.iris.structure.jigsaw.IrisJigsawConnector; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectRotation; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.structure.jigsaw.JigsawJoint; +import art.arcane.iris.generation.block.TileData; import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; +import art.arcane.iris.generation.block.B; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import org.bukkit.block.data.BlockData; diff --git a/core/src/test/java/art/arcane/iris/engine/platform/studio/generators/ObjectStudioGeometryTest.java b/core/src/test/java/art/arcane/iris/studio/generation/ObjectStudioGeometryTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/platform/studio/generators/ObjectStudioGeometryTest.java rename to core/src/test/java/art/arcane/iris/studio/generation/ObjectStudioGeometryTest.java index 8d01f8942..fd1a5cd36 100644 --- a/core/src/test/java/art/arcane/iris/engine/platform/studio/generators/ObjectStudioGeometryTest.java +++ b/core/src/test/java/art/arcane/iris/studio/generation/ObjectStudioGeometryTest.java @@ -1,19 +1,19 @@ -package art.arcane.iris.engine.platform.studio.generators; +package art.arcane.iris.studio.generation; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.core.runtime.ObjectStudioLayout; -import art.arcane.iris.core.service.ObjectStudioSaveService; -import art.arcane.iris.engine.data.chunk.TerrainChunk; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineTarget; -import art.arcane.iris.engine.framework.GenerationSessionLease; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisWorld; -import art.arcane.iris.engine.object.TileData; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.studio.object.ObjectStudioLayout; +import art.arcane.iris.studio.object.ObjectStudioSaveService; +import art.arcane.iris.generation.chunk.TerrainChunk; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineTarget; +import art.arcane.iris.generation.runtime.GenerationSessionLease; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.world.IrisWorld; +import art.arcane.iris.generation.block.TileData; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.math.IrisBlockVector; -import art.arcane.iris.util.project.matter.slices.PreObjectMatterTest; +import art.arcane.iris.generation.geometry.IrisBlockVector; +import art.arcane.iris.world.storage.matter.PreObjectMatterTest; import art.arcane.volmlib.util.collection.KMap; import io.papermc.paper.InternalAPIBridge; import io.papermc.paper.registry.RegistryAccess; diff --git a/core/src/test/java/art/arcane/iris/core/runtime/jigsaw/JigsawPlanarTopologyTest.java b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawPlanarTopologyTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/runtime/jigsaw/JigsawPlanarTopologyTest.java rename to core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawPlanarTopologyTest.java index 9bfa61c4e..1f986114c 100644 --- a/core/src/test/java/art/arcane/iris/core/runtime/jigsaw/JigsawPlanarTopologyTest.java +++ b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawPlanarTopologyTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.engine.object.IrisPosition; +import art.arcane.iris.pack.value.IrisPosition; import org.junit.Test; import java.util.EnumMap; diff --git a/core/src/test/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioActivationTest.java b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioActivationTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioActivationTest.java rename to core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioActivationTest.java index b8e2076ac..a090d7634 100644 --- a/core/src/test/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioActivationTest.java +++ b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioActivationTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.pack.loading.IrisData; import org.junit.After; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioGraphEditorResizeTest.java b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioGraphEditorResizeTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioGraphEditorResizeTest.java rename to core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioGraphEditorResizeTest.java index 55d158904..f376b597f 100644 --- a/core/src/test/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioGraphEditorResizeTest.java +++ b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioGraphEditorResizeTest.java @@ -1,13 +1,13 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.engine.object.IrisDirection; -import art.arcane.iris.engine.object.IrisJigsawConnector; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisPosition; +import art.arcane.iris.pack.value.IrisDirection; +import art.arcane.iris.structure.jigsaw.IrisJigsawConnector; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.pack.value.IrisPosition; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.testsupport.DurabilityMode; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.generation.geometry.IrisBlockVector; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.JsonParser; diff --git a/core/src/test/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioGraphMapperTest.java b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioGraphMapperTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioGraphMapperTest.java rename to core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioGraphMapperTest.java index 23db73647..45be5cc05 100644 --- a/core/src/test/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioGraphMapperTest.java +++ b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioGraphMapperTest.java @@ -1,22 +1,22 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.core.structure.authoring.StructureBackend; -import art.arcane.iris.core.structure.authoring.StructureKey; -import art.arcane.iris.core.structure.authoring.StructureOwnershipManifest; -import art.arcane.iris.core.structure.authoring.StructureSource; -import art.arcane.iris.engine.object.IrisDirection; -import art.arcane.iris.engine.object.IrisJigsawConnector; -import art.arcane.iris.engine.object.IrisJigsawMode; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisJigsawPieceEntry; -import art.arcane.iris.engine.object.IrisJigsawPieceRules; -import art.arcane.iris.engine.object.IrisJigsawPool; -import art.arcane.iris.engine.object.IrisJigsawWorkcell; -import art.arcane.iris.engine.object.IrisJigsawWorkcellArchetype; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisStructure; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.structure.authoring.StructureBackend; +import art.arcane.iris.structure.authoring.StructureKey; +import art.arcane.iris.structure.authoring.StructureOwnershipManifest; +import art.arcane.iris.structure.authoring.StructureSource; +import art.arcane.iris.pack.value.IrisDirection; +import art.arcane.iris.structure.jigsaw.IrisJigsawConnector; +import art.arcane.iris.structure.jigsaw.IrisJigsawMode; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.jigsaw.IrisJigsawPieceEntry; +import art.arcane.iris.structure.jigsaw.IrisJigsawPieceRules; +import art.arcane.iris.structure.jigsaw.IrisJigsawPool; +import art.arcane.iris.structure.jigsaw.IrisJigsawWorkcell; +import art.arcane.iris.structure.jigsaw.IrisJigsawWorkcellArchetype; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.placement.IrisStructure; import art.arcane.volmlib.util.collection.KList; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/service/JigsawStudioHistoryStoreTest.java b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioHistoryStoreTest.java similarity index 89% rename from core/src/test/java/art/arcane/iris/core/service/JigsawStudioHistoryStoreTest.java rename to core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioHistoryStoreTest.java index c5a766535..ff608f920 100644 --- a/core/src/test/java/art/arcane/iris/core/service/JigsawStudioHistoryStoreTest.java +++ b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioHistoryStoreTest.java @@ -1,16 +1,16 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.structure.authoring.StructureBackend; -import art.arcane.iris.core.structure.authoring.StructureCapability; -import art.arcane.iris.core.structure.authoring.StructureHash; -import art.arcane.iris.core.structure.authoring.StructureKey; -import art.arcane.iris.core.structure.authoring.StructureOwnershipManifest; -import art.arcane.iris.core.structure.authoring.StructureResourceBundle; -import art.arcane.iris.core.structure.authoring.StructureSource; -import art.arcane.iris.core.structure.authoring.StructureTransactionWriter; -import art.arcane.iris.core.structure.authoring.StructureWriteOptions; -import art.arcane.iris.core.structure.authoring.StructureWriteResult; -import art.arcane.iris.engine.object.IrisObject; +import art.arcane.iris.structure.authoring.StructureBackend; +import art.arcane.iris.structure.authoring.StructureCapability; +import art.arcane.iris.structure.authoring.StructureHash; +import art.arcane.iris.structure.authoring.StructureKey; +import art.arcane.iris.structure.authoring.StructureOwnershipManifest; +import art.arcane.iris.structure.authoring.StructureResourceBundle; +import art.arcane.iris.structure.authoring.StructureSource; +import art.arcane.iris.structure.authoring.StructureTransactionWriter; +import art.arcane.iris.structure.authoring.StructureWriteOptions; +import art.arcane.iris.structure.authoring.StructureWriteResult; +import art.arcane.iris.structure.object.IrisObject; import art.arcane.iris.testsupport.DurabilityMode; import org.junit.ClassRule; import org.junit.Rule; diff --git a/core/src/test/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioLayoutTest.java b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioLayoutTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioLayoutTest.java rename to core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioLayoutTest.java index fd881b032..04f44f556 100644 --- a/core/src/test/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioLayoutTest.java +++ b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioLayoutTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/service/JigsawStudioLifecycleTest.java b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioLifecycleTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/core/service/JigsawStudioLifecycleTest.java rename to core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioLifecycleTest.java index cd673fa87..ecf12de23 100644 --- a/core/src/test/java/art/arcane/iris/core/service/JigsawStudioLifecycleTest.java +++ b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioLifecycleTest.java @@ -1,19 +1,9 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioActivation; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBay; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCellDimensions; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCompatibilityTarget; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioLayout; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioMode; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioPieceRules; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioSession; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioVariant; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioVariantCatalog; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.platform.studio.generators.JigsawStudioGenerator; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.studio.generation.JigsawStudioGenerator; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.collection.KMap; import org.bukkit.World; import org.bukkit.event.entity.CreatureSpawnEvent; diff --git a/core/src/test/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioManagedAuthoringGuardTest.java b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioManagedAuthoringGuardTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioManagedAuthoringGuardTest.java rename to core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioManagedAuthoringGuardTest.java index 6d4a14a33..08bead798 100644 --- a/core/src/test/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioManagedAuthoringGuardTest.java +++ b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioManagedAuthoringGuardTest.java @@ -1,10 +1,10 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.structure.authoring.StructureHash; -import art.arcane.iris.core.structure.authoring.StructureKey; -import art.arcane.iris.core.structure.authoring.StructureOwnershipManifest; -import art.arcane.iris.core.structure.authoring.StructureTransactionWriter; -import art.arcane.iris.core.structure.authoring.StructureWriteResult; +import art.arcane.iris.structure.authoring.StructureHash; +import art.arcane.iris.structure.authoring.StructureKey; +import art.arcane.iris.structure.authoring.StructureOwnershipManifest; +import art.arcane.iris.structure.authoring.StructureTransactionWriter; +import art.arcane.iris.structure.authoring.StructureWriteResult; import org.junit.BeforeClass; import org.junit.ClassRule; import org.junit.Rule; diff --git a/core/src/test/java/art/arcane/iris/core/service/JigsawStudioMarkerParserTest.java b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioMarkerParserTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/core/service/JigsawStudioMarkerParserTest.java rename to core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioMarkerParserTest.java index 962bf681b..ac1453596 100644 --- a/core/src/test/java/art/arcane/iris/core/service/JigsawStudioMarkerParserTest.java +++ b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioMarkerParserTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.engine.object.IrisDirection; -import art.arcane.iris.engine.object.IrisJigsawConnector; -import art.arcane.iris.engine.object.JigsawJoint; +import art.arcane.iris.pack.value.IrisDirection; +import art.arcane.iris.structure.jigsaw.IrisJigsawConnector; +import art.arcane.iris.structure.jigsaw.JigsawJoint; import org.bukkit.block.Orientation; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/service/JigsawStudioMenuControllerTest.java b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioMenuControllerTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/service/JigsawStudioMenuControllerTest.java rename to core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioMenuControllerTest.java index 3b6c389aa..e4f9b6087 100644 --- a/core/src/test/java/art/arcane/iris/core/service/JigsawStudioMenuControllerTest.java +++ b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioMenuControllerTest.java @@ -1,14 +1,10 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; + +import art.arcane.iris.platform.bukkit.BoardSVC; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCellDimensions; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCompatibilityTarget; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioMode; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioPieceRules; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioToolAction; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioToolPayload; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.testsupport.PlatformLeakGuard; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.Material; diff --git a/core/src/test/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioPersistenceEditorsTest.java b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioPersistenceEditorsTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioPersistenceEditorsTest.java rename to core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioPersistenceEditorsTest.java index d0d0549fc..7774e6b02 100644 --- a/core/src/test/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioPersistenceEditorsTest.java +++ b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioPersistenceEditorsTest.java @@ -1,17 +1,17 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.structure.authoring.StructureBackend; -import art.arcane.iris.core.structure.authoring.StructureKey; -import art.arcane.iris.core.structure.authoring.StructureOwnershipManifest; -import art.arcane.iris.core.structure.authoring.StructureResourceBundle; -import art.arcane.iris.core.structure.authoring.StructureSource; -import art.arcane.iris.core.structure.authoring.StructureTransactionWriter; -import art.arcane.iris.core.structure.authoring.StructureWriteMode; -import art.arcane.iris.core.structure.authoring.StructureWriteResult; -import art.arcane.iris.engine.object.IrisJigsawThemeSet; -import art.arcane.iris.engine.object.IrisObject; +import art.arcane.iris.structure.authoring.StructureBackend; +import art.arcane.iris.structure.authoring.StructureKey; +import art.arcane.iris.structure.authoring.StructureOwnershipManifest; +import art.arcane.iris.structure.authoring.StructureResourceBundle; +import art.arcane.iris.structure.authoring.StructureSource; +import art.arcane.iris.structure.authoring.StructureTransactionWriter; +import art.arcane.iris.structure.authoring.StructureWriteMode; +import art.arcane.iris.structure.authoring.StructureWriteResult; +import art.arcane.iris.structure.jigsaw.IrisJigsawThemeSet; +import art.arcane.iris.structure.object.IrisObject; import art.arcane.iris.testsupport.DurabilityMode; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.generation.geometry.IrisBlockVector; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; diff --git a/core/src/test/java/art/arcane/iris/core/service/JigsawStudioPersistenceIdentityTest.java b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioPersistenceIdentityTest.java similarity index 92% rename from core/src/test/java/art/arcane/iris/core/service/JigsawStudioPersistenceIdentityTest.java rename to core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioPersistenceIdentityTest.java index 3666610c1..81cafa5d5 100644 --- a/core/src/test/java/art/arcane/iris/core/service/JigsawStudioPersistenceIdentityTest.java +++ b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioPersistenceIdentityTest.java @@ -1,16 +1,7 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.runtime.jigsaw.JigsawPlanarArchetype; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCellDimensions; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCompatibilityTarget; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioGraphEditor; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioMode; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioPieceRules; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioPoolEditor; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioProjectCreator; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioStructureEditor; -import art.arcane.iris.core.structure.authoring.StructureHash; -import art.arcane.iris.engine.object.IrisJigsawThemeSet; +import art.arcane.iris.structure.authoring.StructureHash; +import art.arcane.iris.structure.jigsaw.IrisJigsawThemeSet; import art.arcane.iris.testsupport.DurabilityMode; import com.google.gson.JsonElement; import com.google.gson.JsonParser; diff --git a/core/src/test/java/art/arcane/iris/core/service/JigsawStudioPreviewRendererTest.java b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioPreviewRendererTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/core/service/JigsawStudioPreviewRendererTest.java rename to core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioPreviewRendererTest.java index f7933ddc4..d7d0ff656 100644 --- a/core/src/test/java/art/arcane/iris/core/service/JigsawStudioPreviewRendererTest.java +++ b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioPreviewRendererTest.java @@ -1,11 +1,9 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioLayout; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioMode; -import art.arcane.iris.engine.framework.PlacedStructurePiece; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisObjectRotation; +import art.arcane.iris.structure.placement.PlacedStructurePiece; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectRotation; import art.arcane.iris.spi.PlatformBlockState; import org.bukkit.World; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioProjectCreatorTest.java b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioProjectCreatorTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioProjectCreatorTest.java rename to core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioProjectCreatorTest.java index c21360586..370b2460e 100644 --- a/core/src/test/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioProjectCreatorTest.java +++ b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioProjectCreatorTest.java @@ -1,16 +1,16 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.structure.authoring.StructureWriteResult; -import art.arcane.iris.core.structure.authoring.StructureResourceBundle; -import art.arcane.iris.engine.framework.StructureAssembler; -import art.arcane.iris.engine.framework.structure.StructureAssemblyResult; -import art.arcane.iris.engine.framework.structure.StructureAssemblyStatus; -import art.arcane.iris.engine.framework.structure.StructureGraphCompilation; -import art.arcane.iris.engine.framework.structure.StructureResourceBundleGraphCompiler; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisPosition; +import art.arcane.iris.structure.authoring.StructureWriteResult; +import art.arcane.iris.structure.authoring.StructureResourceBundle; +import art.arcane.iris.structure.placement.StructureAssembler; +import art.arcane.iris.structure.graph.StructureAssemblyResult; +import art.arcane.iris.structure.graph.StructureAssemblyStatus; +import art.arcane.iris.structure.graph.StructureGraphCompilation; +import art.arcane.iris.structure.graph.StructureResourceBundleGraphCompiler; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.pack.value.IrisPosition; import art.arcane.iris.testsupport.DurabilityMode; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.generation.geometry.IrisBlockVector; import art.arcane.volmlib.util.math.RNG; import com.google.gson.JsonObject; import com.google.gson.JsonParser; diff --git a/core/src/test/java/art/arcane/iris/core/service/JigsawStudioResourceBundleAssemblerTest.java b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioResourceBundleAssemblerTest.java similarity index 92% rename from core/src/test/java/art/arcane/iris/core/service/JigsawStudioResourceBundleAssemblerTest.java rename to core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioResourceBundleAssemblerTest.java index 7b95615f4..fa549f314 100644 --- a/core/src/test/java/art/arcane/iris/core/service/JigsawStudioResourceBundleAssemblerTest.java +++ b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioResourceBundleAssemblerTest.java @@ -1,22 +1,18 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.pack.StructurePackageClosure; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCellDimensions; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCompatibilityTarget; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioMode; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioProjectCreator; -import art.arcane.iris.core.structure.authoring.StructureKey; -import art.arcane.iris.core.structure.authoring.StructureOwnershipManifest; -import art.arcane.iris.core.structure.authoring.StructureTransactionWriter; -import art.arcane.iris.core.structure.authoring.StructureWriteMode; -import art.arcane.iris.core.structure.authoring.StructureWriteOptions; -import art.arcane.iris.core.structure.authoring.StructureWriteResult; -import art.arcane.iris.engine.object.IrisDirection; -import art.arcane.iris.engine.object.IrisJigsawConnector; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.JigsawJoint; +import art.arcane.iris.pack.StructurePackageClosure; +import art.arcane.iris.structure.authoring.StructureKey; +import art.arcane.iris.structure.authoring.StructureOwnershipManifest; +import art.arcane.iris.structure.authoring.StructureTransactionWriter; +import art.arcane.iris.structure.authoring.StructureWriteMode; +import art.arcane.iris.structure.authoring.StructureWriteOptions; +import art.arcane.iris.structure.authoring.StructureWriteResult; +import art.arcane.iris.pack.value.IrisDirection; +import art.arcane.iris.structure.jigsaw.IrisJigsawConnector; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.structure.jigsaw.JigsawJoint; import art.arcane.iris.testsupport.DurabilityMode; import com.google.gson.Gson; import com.google.gson.GsonBuilder; diff --git a/core/src/test/java/art/arcane/iris/core/service/JigsawStudioServiceCaptureTest.java b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioServiceCaptureTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/service/JigsawStudioServiceCaptureTest.java rename to core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioServiceCaptureTest.java index f39fbc02d..9e73a1423 100644 --- a/core/src/test/java/art/arcane/iris/core/service/JigsawStudioServiceCaptureTest.java +++ b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioServiceCaptureTest.java @@ -1,34 +1,18 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBounds; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioActivation; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBay; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBayKind; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCellDimensions; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCompatibilityTarget; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioLayout; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioMode; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioPieceRules; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioPoolMembership; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioSession; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioVariant; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioVariantCatalog; -import art.arcane.iris.core.runtime.jigsaw.JigsawPlanarTopology; -import art.arcane.iris.core.runtime.jigsaw.JigsawPlanarArchetype; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioWorkcellSpec; -import art.arcane.iris.core.structure.authoring.StructureWriteResult; -import art.arcane.iris.engine.object.IrisDirection; -import art.arcane.iris.engine.object.IrisJigsawConnector; -import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisObjectRotation; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.engine.object.JigsawJoint; -import art.arcane.iris.engine.object.TileData; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.platform.studio.generators.JigsawStudioGenerator; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.structure.authoring.StructureWriteResult; +import art.arcane.iris.pack.value.IrisDirection; +import art.arcane.iris.structure.jigsaw.IrisJigsawConnector; +import art.arcane.iris.structure.jigsaw.IrisJigsawPiece; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisObjectRotation; +import art.arcane.iris.pack.value.IrisPosition; +import art.arcane.iris.structure.jigsaw.JigsawJoint; +import art.arcane.iris.generation.block.TileData; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.studio.generation.JigsawStudioGenerator; import art.arcane.iris.platform.bukkit.BukkitBlockState; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.spi.IrisLogging; @@ -37,10 +21,10 @@ import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformRegistries; import art.arcane.iris.testsupport.PlatformLeakGuard; -import art.arcane.iris.util.common.data.B; -import art.arcane.iris.util.common.math.IrisBlockVector; -import art.arcane.iris.util.common.plugin.VolmitPlugin; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.generation.block.B; +import art.arcane.iris.generation.geometry.IrisBlockVector; +import art.arcane.iris.platform.bukkit.plugin.VolmitPlugin; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import org.bukkit.Chunk; diff --git a/core/src/test/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioSessionTest.java b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioSessionTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioSessionTest.java rename to core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioSessionTest.java index ce5f60058..623793245 100644 --- a/core/src/test/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioSessionTest.java +++ b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioSessionTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/service/JigsawStudioToolCodecTest.java b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioToolCodecTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/service/JigsawStudioToolCodecTest.java rename to core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioToolCodecTest.java index 329dce332..cef8d59a8 100644 --- a/core/src/test/java/art/arcane/iris/core/service/JigsawStudioToolCodecTest.java +++ b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioToolCodecTest.java @@ -1,7 +1,5 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioToolAction; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioToolPayload; import org.bukkit.ChatColor; import org.bukkit.Material; diff --git a/core/src/test/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioTripleSneakTrackerTest.java b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioTripleSneakTrackerTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioTripleSneakTrackerTest.java rename to core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioTripleSneakTrackerTest.java index d7c0d043d..ab3bea504 100644 --- a/core/src/test/java/art/arcane/iris/core/runtime/jigsaw/JigsawStudioTripleSneakTrackerTest.java +++ b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioTripleSneakTrackerTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.runtime.jigsaw; +package art.arcane.iris.studio.jigsaw; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/service/JigsawStudioVisualizationBoundsTest.java b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioVisualizationBoundsTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/core/service/JigsawStudioVisualizationBoundsTest.java rename to core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioVisualizationBoundsTest.java index afd1ce3f2..0975e9c0f 100644 --- a/core/src/test/java/art/arcane/iris/core/service/JigsawStudioVisualizationBoundsTest.java +++ b/core/src/test/java/art/arcane/iris/studio/jigsaw/JigsawStudioVisualizationBoundsTest.java @@ -1,12 +1,9 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.jigsaw; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioActivation; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioBounds; -import art.arcane.iris.core.runtime.jigsaw.JigsawStudioCellDimensions; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.PlacedStructurePiece; -import art.arcane.iris.engine.platform.studio.generators.JigsawStudioGenerator; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.placement.PlacedStructurePiece; +import art.arcane.iris.studio.generation.JigsawStudioGenerator; +import art.arcane.iris.world.task.J; import org.bukkit.Color; import org.bukkit.Location; import org.bukkit.Particle; diff --git a/core/src/test/java/art/arcane/iris/core/service/ObjectSVCUndoCustomBlockTest.java b/core/src/test/java/art/arcane/iris/studio/object/ObjectSVCUndoCustomBlockTest.java similarity index 92% rename from core/src/test/java/art/arcane/iris/core/service/ObjectSVCUndoCustomBlockTest.java rename to core/src/test/java/art/arcane/iris/studio/object/ObjectSVCUndoCustomBlockTest.java index 7ff16f4c6..78b9756c6 100644 --- a/core/src/test/java/art/arcane/iris/core/service/ObjectSVCUndoCustomBlockTest.java +++ b/core/src/test/java/art/arcane/iris/studio/object/ObjectSVCUndoCustomBlockTest.java @@ -1,9 +1,11 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.object; -import art.arcane.iris.core.link.Identifier; +import art.arcane.iris.integration.ExternalDataSVC; + +import art.arcane.iris.integration.Identifier; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.util.common.data.IrisCustomData; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.generation.block.IrisCustomData; +import art.arcane.iris.world.task.J; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.block.Block; diff --git a/core/src/test/java/art/arcane/iris/core/runtime/ObjectStudioLayoutTest.java b/core/src/test/java/art/arcane/iris/studio/object/ObjectStudioLayoutTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/core/runtime/ObjectStudioLayoutTest.java rename to core/src/test/java/art/arcane/iris/studio/object/ObjectStudioLayoutTest.java index 2deb89fd3..f21546808 100644 --- a/core/src/test/java/art/arcane/iris/core/runtime/ObjectStudioLayoutTest.java +++ b/core/src/test/java/art/arcane/iris/studio/object/ObjectStudioLayoutTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.runtime; +package art.arcane.iris.studio.object; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.engine.object.IrisObject; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.structure.object.IrisObject; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; diff --git a/core/src/test/java/art/arcane/iris/core/service/ObjectStudioSaveSourceTest.java b/core/src/test/java/art/arcane/iris/studio/object/ObjectStudioSaveSourceTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/core/service/ObjectStudioSaveSourceTest.java rename to core/src/test/java/art/arcane/iris/studio/object/ObjectStudioSaveSourceTest.java index 855b58635..128008ecf 100644 --- a/core/src/test/java/art/arcane/iris/core/service/ObjectStudioSaveSourceTest.java +++ b/core/src/test/java/art/arcane/iris/studio/object/ObjectStudioSaveSourceTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.object; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.Engine; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; diff --git a/core/src/test/java/art/arcane/iris/core/service/ObjectStudioTileRestorationTest.java b/core/src/test/java/art/arcane/iris/studio/object/ObjectStudioTileRestorationTest.java similarity index 92% rename from core/src/test/java/art/arcane/iris/core/service/ObjectStudioTileRestorationTest.java rename to core/src/test/java/art/arcane/iris/studio/object/ObjectStudioTileRestorationTest.java index 7e531dda9..0c29f4325 100644 --- a/core/src/test/java/art/arcane/iris/core/service/ObjectStudioTileRestorationTest.java +++ b/core/src/test/java/art/arcane/iris/studio/object/ObjectStudioTileRestorationTest.java @@ -1,11 +1,11 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.studio.object; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineTarget; -import art.arcane.iris.engine.object.IrisWorld; -import art.arcane.iris.engine.object.TileData; -import art.arcane.iris.engine.platform.studio.generators.ObjectStudioGenerator.ChunkTiles; -import art.arcane.iris.engine.platform.studio.generators.ObjectStudioGenerator.PlacedTile; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineTarget; +import art.arcane.iris.world.IrisWorld; +import art.arcane.iris.generation.block.TileData; +import art.arcane.iris.studio.generation.ObjectStudioGenerator.ChunkTiles; +import art.arcane.iris.studio.generation.ObjectStudioGenerator.PlacedTile; import art.arcane.iris.platform.bukkit.BukkitWorldBinding; import art.arcane.iris.spi.IrisLogging; import org.bukkit.Chunk; diff --git a/core/src/test/java/art/arcane/iris/core/runtime/StudioEntitySpawningTest.java b/core/src/test/java/art/arcane/iris/studio/object/StudioEntitySpawningTest.java similarity index 83% rename from core/src/test/java/art/arcane/iris/core/runtime/StudioEntitySpawningTest.java rename to core/src/test/java/art/arcane/iris/studio/object/StudioEntitySpawningTest.java index e00e2652e..4a840ac7b 100644 --- a/core/src/test/java/art/arcane/iris/core/runtime/StudioEntitySpawningTest.java +++ b/core/src/test/java/art/arcane/iris/studio/object/StudioEntitySpawningTest.java @@ -1,7 +1,6 @@ -package art.arcane.iris.core.runtime; +package art.arcane.iris.studio.object; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.service.ObjectStudioSaveService; +import art.arcane.iris.configuration.IrisSettings; import org.junit.Test; import java.util.Arrays; diff --git a/core/src/test/java/art/arcane/iris/core/runtime/StudioOpenCoordinatorCloseSequenceTest.java b/core/src/test/java/art/arcane/iris/studio/object/StudioOpenCoordinatorCloseSequenceTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/runtime/StudioOpenCoordinatorCloseSequenceTest.java rename to core/src/test/java/art/arcane/iris/studio/object/StudioOpenCoordinatorCloseSequenceTest.java index 14d3fa2b8..b318e956e 100644 --- a/core/src/test/java/art/arcane/iris/core/runtime/StudioOpenCoordinatorCloseSequenceTest.java +++ b/core/src/test/java/art/arcane/iris/studio/object/StudioOpenCoordinatorCloseSequenceTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.runtime; +package art.arcane.iris.studio.object; -import art.arcane.iris.core.ServerConfigurator; +import art.arcane.iris.pack.datapack.ServerConfigurator; import org.junit.Test; import org.mockito.MockedStatic; diff --git a/core/src/test/java/art/arcane/iris/core/runtime/StudioOpenCoordinatorOpenKindTest.java b/core/src/test/java/art/arcane/iris/studio/object/StudioOpenCoordinatorOpenKindTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/core/runtime/StudioOpenCoordinatorOpenKindTest.java rename to core/src/test/java/art/arcane/iris/studio/object/StudioOpenCoordinatorOpenKindTest.java index d7bfdb834..fec824762 100644 --- a/core/src/test/java/art/arcane/iris/core/runtime/StudioOpenCoordinatorOpenKindTest.java +++ b/core/src/test/java/art/arcane/iris/studio/object/StudioOpenCoordinatorOpenKindTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.runtime; +package art.arcane.iris.studio.object; -import art.arcane.iris.core.project.IrisProject; -import art.arcane.iris.core.tools.IrisCreator; +import art.arcane.iris.studio.workspace.IrisProject; +import art.arcane.iris.world.IrisCreator; import org.junit.Test; import java.io.File; diff --git a/core/src/test/java/art/arcane/iris/core/runtime/StudioOpenCoordinatorSpawnStuckRegressionTest.java b/core/src/test/java/art/arcane/iris/studio/object/StudioOpenCoordinatorSpawnStuckRegressionTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/core/runtime/StudioOpenCoordinatorSpawnStuckRegressionTest.java rename to core/src/test/java/art/arcane/iris/studio/object/StudioOpenCoordinatorSpawnStuckRegressionTest.java index 732de03bd..6c0e17265 100644 --- a/core/src/test/java/art/arcane/iris/core/runtime/StudioOpenCoordinatorSpawnStuckRegressionTest.java +++ b/core/src/test/java/art/arcane/iris/studio/object/StudioOpenCoordinatorSpawnStuckRegressionTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.runtime; +package art.arcane.iris.studio.object; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/render/IrisRendererPerformanceContractTest.java b/core/src/test/java/art/arcane/iris/studio/render/IrisRendererPerformanceContractTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/framework/render/IrisRendererPerformanceContractTest.java rename to core/src/test/java/art/arcane/iris/studio/render/IrisRendererPerformanceContractTest.java index 39a4bac1f..ae3bdba61 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/render/IrisRendererPerformanceContractTest.java +++ b/core/src/test/java/art/arcane/iris/studio/render/IrisRendererPerformanceContractTest.java @@ -1,9 +1,9 @@ -package art.arcane.iris.engine.framework.render; +package art.arcane.iris.studio.render; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.volmlib.util.stream.ProceduralStream; import art.arcane.volmlib.util.collection.KList; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/framework/render/IrisRendererRiverTest.java b/core/src/test/java/art/arcane/iris/studio/render/IrisRendererRiverTest.java similarity index 92% rename from core/src/test/java/art/arcane/iris/engine/framework/render/IrisRendererRiverTest.java rename to core/src/test/java/art/arcane/iris/studio/render/IrisRendererRiverTest.java index 2d931fcd6..75ab912c9 100644 --- a/core/src/test/java/art/arcane/iris/engine/framework/render/IrisRendererRiverTest.java +++ b/core/src/test/java/art/arcane/iris/studio/render/IrisRendererRiverTest.java @@ -1,18 +1,18 @@ -package art.arcane.iris.engine.framework.render; +package art.arcane.iris.studio.render; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.hydrology.HydrologyCandidateKind; -import art.arcane.iris.engine.hydrology.HydrologyCandidateRejection; -import art.arcane.iris.engine.hydrology.HydrologyDiagnosticCandidate; -import art.arcane.iris.engine.hydrology.HydrologyDiagnosticRenderSample; -import art.arcane.iris.engine.hydrology.HydrologyFeatureRef; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.engine.hydrology.HydrologyPoint; -import art.arcane.iris.engine.hydrology.HydrologyRenderSample; -import art.arcane.iris.engine.hydrology.runtime.IrisHydrologyRuntime; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.util.project.stream.ProceduralStream; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.hydrology.HydrologyCandidateKind; +import art.arcane.iris.generation.hydrology.HydrologyCandidateRejection; +import art.arcane.iris.generation.hydrology.HydrologyDiagnosticCandidate; +import art.arcane.iris.generation.hydrology.HydrologyDiagnosticRenderSample; +import art.arcane.iris.generation.hydrology.HydrologyFeatureRef; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.hydrology.HydrologyPoint; +import art.arcane.iris.generation.hydrology.HydrologyRenderSample; +import art.arcane.iris.generation.hydrology.runtime.IrisHydrologyRuntime; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.volmlib.util.stream.ProceduralStream; import org.junit.Test; import java.awt.Color; diff --git a/core/src/test/java/art/arcane/iris/core/tools/TreePlausibilizerTest.java b/core/src/test/java/art/arcane/iris/studio/tree/TreePlausibilizerTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/tools/TreePlausibilizerTest.java rename to core/src/test/java/art/arcane/iris/studio/tree/TreePlausibilizerTest.java index 699c880b4..bd9d366f2 100644 --- a/core/src/test/java/art/arcane/iris/core/tools/TreePlausibilizerTest.java +++ b/core/src/test/java/art/arcane/iris/studio/tree/TreePlausibilizerTest.java @@ -1,9 +1,9 @@ -package art.arcane.iris.core.tools; +package art.arcane.iris.studio.tree; -import art.arcane.iris.engine.object.IrisObject; +import art.arcane.iris.structure.object.IrisObject; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.testsupport.PlatformBinding; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.generation.geometry.IrisBlockVector; import org.junit.ClassRule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/gui/GuiHostServerGuiLaunchTest.java b/core/src/test/java/art/arcane/iris/studio/view/GuiHostServerGuiLaunchTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/core/gui/GuiHostServerGuiLaunchTest.java rename to core/src/test/java/art/arcane/iris/studio/view/GuiHostServerGuiLaunchTest.java index 18975de5d..4c186c335 100644 --- a/core/src/test/java/art/arcane/iris/core/gui/GuiHostServerGuiLaunchTest.java +++ b/core/src/test/java/art/arcane/iris/studio/view/GuiHostServerGuiLaunchTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; -import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.configuration.IrisSettings; import org.junit.After; import org.junit.Before; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/gui/GuiHostTest.java b/core/src/test/java/art/arcane/iris/studio/view/GuiHostTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/gui/GuiHostTest.java rename to core/src/test/java/art/arcane/iris/studio/view/GuiHostTest.java index d18bec83d..338c4e28f 100644 --- a/core/src/test/java/art/arcane/iris/core/gui/GuiHostTest.java +++ b/core/src/test/java/art/arcane/iris/studio/view/GuiHostTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; import org.junit.Assume; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/gui/ImageMapStudioGUITest.java b/core/src/test/java/art/arcane/iris/studio/view/ImageMapStudioGUITest.java similarity index 84% rename from core/src/test/java/art/arcane/iris/core/gui/ImageMapStudioGUITest.java rename to core/src/test/java/art/arcane/iris/studio/view/ImageMapStudioGUITest.java index 8f9e7df04..c36d88a8d 100644 --- a/core/src/test/java/art/arcane/iris/core/gui/ImageMapStudioGUITest.java +++ b/core/src/test/java/art/arcane/iris/studio/view/ImageMapStudioGUITest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.generation.runtime.Engine; import org.junit.Test; import static org.mockito.Mockito.mock; diff --git a/core/src/test/java/art/arcane/iris/core/gui/ImageMapStudioModelTest.java b/core/src/test/java/art/arcane/iris/studio/view/ImageMapStudioModelTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/core/gui/ImageMapStudioModelTest.java rename to core/src/test/java/art/arcane/iris/studio/view/ImageMapStudioModelTest.java index 8afb3fa78..54e52cfda 100644 --- a/core/src/test/java/art/arcane/iris/core/gui/ImageMapStudioModelTest.java +++ b/core/src/test/java/art/arcane/iris/studio/view/ImageMapStudioModelTest.java @@ -1,13 +1,13 @@ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; -import art.arcane.iris.engine.object.IrisImageMap; -import art.arcane.iris.engine.object.IrisImageMapOrigin; -import art.arcane.iris.engine.object.IrisImageMapMask; -import art.arcane.iris.engine.object.IrisImageMapMaskOperation; -import art.arcane.iris.engine.object.IrisImageMapRotation; -import art.arcane.iris.engine.object.IrisImageMapType; -import art.arcane.iris.engine.object.IrisWorldBoundary; -import art.arcane.iris.engine.object.IrisWorldBoundaryCenter; +import art.arcane.iris.generation.image.IrisImageMap; +import art.arcane.iris.generation.image.IrisImageMapOrigin; +import art.arcane.iris.generation.image.IrisImageMapMask; +import art.arcane.iris.generation.image.IrisImageMapMaskOperation; +import art.arcane.iris.generation.image.IrisImageMapRotation; +import art.arcane.iris.generation.image.IrisImageMapType; +import art.arcane.iris.world.IrisWorldBoundary; +import art.arcane.iris.world.IrisWorldBoundaryCenter; import art.arcane.volmlib.util.collection.KMap; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/gui/ImageMapStudioPreviewPanelTest.java b/core/src/test/java/art/arcane/iris/studio/view/ImageMapStudioPreviewPanelTest.java similarity index 89% rename from core/src/test/java/art/arcane/iris/core/gui/ImageMapStudioPreviewPanelTest.java rename to core/src/test/java/art/arcane/iris/studio/view/ImageMapStudioPreviewPanelTest.java index 43337353f..6c8ab78b0 100644 --- a/core/src/test/java/art/arcane/iris/core/gui/ImageMapStudioPreviewPanelTest.java +++ b/core/src/test/java/art/arcane/iris/studio/view/ImageMapStudioPreviewPanelTest.java @@ -1,15 +1,15 @@ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; -import art.arcane.iris.engine.image.CompiledIrisImageMap; -import art.arcane.iris.engine.image.IrisImageMapRuntime; -import art.arcane.iris.engine.image.IrisImageMapMaskSampler; -import art.arcane.iris.engine.object.IrisImage; -import art.arcane.iris.engine.object.IrisImageMap; -import art.arcane.iris.engine.object.IrisImageMapApplication; -import art.arcane.iris.engine.object.IrisImageMapMask; -import art.arcane.iris.engine.object.IrisImageMapMaskOperation; -import art.arcane.iris.engine.object.IrisImageMapOutOfBounds; -import art.arcane.iris.engine.object.IrisImageMapType; +import art.arcane.iris.generation.image.CompiledIrisImageMap; +import art.arcane.iris.generation.image.IrisImageMapRuntime; +import art.arcane.iris.generation.image.IrisImageMapMaskSampler; +import art.arcane.iris.generation.image.IrisImage; +import art.arcane.iris.generation.image.IrisImageMap; +import art.arcane.iris.generation.image.IrisImageMapApplication; +import art.arcane.iris.generation.image.IrisImageMapMask; +import art.arcane.iris.generation.image.IrisImageMapMaskOperation; +import art.arcane.iris.generation.image.IrisImageMapOutOfBounds; +import art.arcane.iris.generation.image.IrisImageMapType; import art.arcane.volmlib.util.collection.KMap; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/gui/NoiseExplorerGUITest.java b/core/src/test/java/art/arcane/iris/studio/view/NoiseExplorerGUITest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/core/gui/NoiseExplorerGUITest.java rename to core/src/test/java/art/arcane/iris/studio/view/NoiseExplorerGUITest.java index 75957cff3..c06845e89 100644 --- a/core/src/test/java/art/arcane/iris/core/gui/NoiseExplorerGUITest.java +++ b/core/src/test/java/art/arcane/iris/studio/view/NoiseExplorerGUITest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; -import art.arcane.iris.engine.framework.MeteredCache; -import art.arcane.iris.engine.framework.PreservationRegistry; +import art.arcane.iris.generation.runtime.MeteredCache; +import art.arcane.iris.generation.runtime.PreservationRegistry; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.testsupport.PlatformLeakGuard; import art.arcane.volmlib.util.function.NoiseProvider; diff --git a/core/src/test/java/art/arcane/iris/core/gui/NoisePaletteTest.java b/core/src/test/java/art/arcane/iris/studio/view/NoisePaletteTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/gui/NoisePaletteTest.java rename to core/src/test/java/art/arcane/iris/studio/view/NoisePaletteTest.java index 90deb06b4..8a6aad502 100644 --- a/core/src/test/java/art/arcane/iris/core/gui/NoisePaletteTest.java +++ b/core/src/test/java/art/arcane/iris/studio/view/NoisePaletteTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/gui/NoiseRenderCoordinatorTest.java b/core/src/test/java/art/arcane/iris/studio/view/NoiseRenderCoordinatorTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/gui/NoiseRenderCoordinatorTest.java rename to core/src/test/java/art/arcane/iris/studio/view/NoiseRenderCoordinatorTest.java index 437e330c1..b030c3bac 100644 --- a/core/src/test/java/art/arcane/iris/core/gui/NoiseRenderCoordinatorTest.java +++ b/core/src/test/java/art/arcane/iris/studio/view/NoiseRenderCoordinatorTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; import art.arcane.volmlib.util.function.NoiseProvider; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/gui/NoiseViewportTest.java b/core/src/test/java/art/arcane/iris/studio/view/NoiseViewportTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/core/gui/NoiseViewportTest.java rename to core/src/test/java/art/arcane/iris/studio/view/NoiseViewportTest.java index 96e86f63b..46e253a5c 100644 --- a/core/src/test/java/art/arcane/iris/core/gui/NoiseViewportTest.java +++ b/core/src/test/java/art/arcane/iris/studio/view/NoiseViewportTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/gui/PregenMapPanelTest.java b/core/src/test/java/art/arcane/iris/studio/view/PregenMapPanelTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/gui/PregenMapPanelTest.java rename to core/src/test/java/art/arcane/iris/studio/view/PregenMapPanelTest.java index 74178c6bf..09595b594 100644 --- a/core/src/test/java/art/arcane/iris/core/gui/PregenMapPanelTest.java +++ b/core/src/test/java/art/arcane/iris/studio/view/PregenMapPanelTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; -import art.arcane.iris.core.pregenerator.PregenTask; +import art.arcane.iris.world.pregen.PregenTask; import art.arcane.volmlib.util.math.Position2; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/gui/PregeneratorJobOwnerDrainTest.java b/core/src/test/java/art/arcane/iris/studio/view/PregeneratorJobOwnerDrainTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/gui/PregeneratorJobOwnerDrainTest.java rename to core/src/test/java/art/arcane/iris/studio/view/PregeneratorJobOwnerDrainTest.java index 68e858f64..4356fedd2 100644 --- a/core/src/test/java/art/arcane/iris/core/gui/PregeneratorJobOwnerDrainTest.java +++ b/core/src/test/java/art/arcane/iris/studio/view/PregeneratorJobOwnerDrainTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; -import art.arcane.iris.core.pregenerator.IrisPregenerator; +import art.arcane.iris.world.pregen.IrisPregenerator; import art.arcane.volmlib.util.format.MemoryMonitor; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/gui/PregeneratorJobPlatformIsolationTest.java b/core/src/test/java/art/arcane/iris/studio/view/PregeneratorJobPlatformIsolationTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/gui/PregeneratorJobPlatformIsolationTest.java rename to core/src/test/java/art/arcane/iris/studio/view/PregeneratorJobPlatformIsolationTest.java index 5ab91acf8..f79c73175 100644 --- a/core/src/test/java/art/arcane/iris/core/gui/PregeneratorJobPlatformIsolationTest.java +++ b/core/src/test/java/art/arcane/iris/studio/view/PregeneratorJobPlatformIsolationTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/gui/PregeneratorJobRenderSnapshotTest.java b/core/src/test/java/art/arcane/iris/studio/view/PregeneratorJobRenderSnapshotTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/core/gui/PregeneratorJobRenderSnapshotTest.java rename to core/src/test/java/art/arcane/iris/studio/view/PregeneratorJobRenderSnapshotTest.java index b883b27c3..3ed8f8293 100644 --- a/core/src/test/java/art/arcane/iris/core/gui/PregeneratorJobRenderSnapshotTest.java +++ b/core/src/test/java/art/arcane/iris/studio/view/PregeneratorJobRenderSnapshotTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; -import art.arcane.iris.core.pregenerator.IrisPregenerator; -import art.arcane.iris.core.pregenerator.PregenPhaseTracker; -import art.arcane.iris.core.pregenerator.PregenRates; +import art.arcane.iris.world.pregen.IrisPregenerator; +import art.arcane.iris.world.pregen.PregenPhaseTracker; +import art.arcane.iris.world.pregen.PregenRates; import art.arcane.volmlib.util.format.MemoryMonitor; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/gui/PregeneratorJobSavedBiomeTest.java b/core/src/test/java/art/arcane/iris/studio/view/PregeneratorJobSavedBiomeTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/core/gui/PregeneratorJobSavedBiomeTest.java rename to core/src/test/java/art/arcane/iris/studio/view/PregeneratorJobSavedBiomeTest.java index 90d76f71c..a308dc875 100644 --- a/core/src/test/java/art/arcane/iris/core/gui/PregeneratorJobSavedBiomeTest.java +++ b/core/src/test/java/art/arcane/iris/studio/view/PregeneratorJobSavedBiomeTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.history.SavedBiomeUnavailableException; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.world.history.SavedBiomeUnavailableException; import art.arcane.iris.spi.IrisLogging; import org.junit.Test; import org.mockito.MockedStatic; diff --git a/core/src/test/java/art/arcane/iris/core/gui/PregeneratorJobShutdownDispatchTest.java b/core/src/test/java/art/arcane/iris/studio/view/PregeneratorJobShutdownDispatchTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/core/gui/PregeneratorJobShutdownDispatchTest.java rename to core/src/test/java/art/arcane/iris/studio/view/PregeneratorJobShutdownDispatchTest.java index b3daed02c..83129b9fa 100644 --- a/core/src/test/java/art/arcane/iris/core/gui/PregeneratorJobShutdownDispatchTest.java +++ b/core/src/test/java/art/arcane/iris/studio/view/PregeneratorJobShutdownDispatchTest.java @@ -1,15 +1,15 @@ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; -import art.arcane.iris.core.pregenerator.IrisPregenerator; -import art.arcane.iris.core.pregenerator.PregenApiPhase; -import art.arcane.iris.core.pregenerator.PregenApiSink; -import art.arcane.iris.core.pregenerator.PregenPhaseTracker; +import art.arcane.iris.world.pregen.IrisPregenerator; +import art.arcane.iris.world.pregen.PregenApiPhase; +import art.arcane.iris.world.pregen.PregenApiSink; +import art.arcane.iris.world.pregen.PregenPhaseTracker; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.testsupport.PlatformLeakGuard; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.format.MemoryMonitor; import art.arcane.volmlib.util.scheduling.FoliaScheduler; import org.bukkit.Bukkit; diff --git a/core/src/test/java/art/arcane/iris/core/gui/PregeneratorJobTerminalProgressTest.java b/core/src/test/java/art/arcane/iris/studio/view/PregeneratorJobTerminalProgressTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/core/gui/PregeneratorJobTerminalProgressTest.java rename to core/src/test/java/art/arcane/iris/studio/view/PregeneratorJobTerminalProgressTest.java index 6183f1707..159e06550 100644 --- a/core/src/test/java/art/arcane/iris/core/gui/PregeneratorJobTerminalProgressTest.java +++ b/core/src/test/java/art/arcane/iris/studio/view/PregeneratorJobTerminalProgressTest.java @@ -1,11 +1,11 @@ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.pregenerator.PregenApiPhase; -import art.arcane.iris.core.pregenerator.PregenApiSink; -import art.arcane.iris.core.pregenerator.PregenListener; -import art.arcane.iris.core.pregenerator.PregenTask; -import art.arcane.iris.core.pregenerator.PregeneratorMethod; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.world.pregen.PregenApiPhase; +import art.arcane.iris.world.pregen.PregenApiSink; +import art.arcane.iris.world.pregen.PregenListener; +import art.arcane.iris.world.pregen.PregenTask; +import art.arcane.iris.world.pregen.PregeneratorMethod; import art.arcane.iris.spi.IrisServices; import art.arcane.volmlib.util.math.Position2; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/gui/VisionRenderControllerTest.java b/core/src/test/java/art/arcane/iris/studio/view/VisionRenderControllerTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/gui/VisionRenderControllerTest.java rename to core/src/test/java/art/arcane/iris/studio/view/VisionRenderControllerTest.java index ef4dbe6c2..f5a6a5487 100644 --- a/core/src/test/java/art/arcane/iris/core/gui/VisionRenderControllerTest.java +++ b/core/src/test/java/art/arcane/iris/studio/view/VisionRenderControllerTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; -import art.arcane.iris.engine.framework.render.IrisRenderer; -import art.arcane.iris.engine.framework.render.RenderType; +import art.arcane.iris.studio.render.IrisRenderer; +import art.arcane.iris.studio.render.RenderType; import art.arcane.iris.testsupport.Await; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/gui/VisionRenderTypeTest.java b/core/src/test/java/art/arcane/iris/studio/view/VisionRenderTypeTest.java similarity index 89% rename from core/src/test/java/art/arcane/iris/core/gui/VisionRenderTypeTest.java rename to core/src/test/java/art/arcane/iris/studio/view/VisionRenderTypeTest.java index 3c6022c8c..838555cf3 100644 --- a/core/src/test/java/art/arcane/iris/core/gui/VisionRenderTypeTest.java +++ b/core/src/test/java/art/arcane/iris/studio/view/VisionRenderTypeTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; -import art.arcane.iris.core.localization.DesktopUiMessages; -import art.arcane.iris.engine.framework.render.RenderType; +import art.arcane.iris.localization.DesktopUiMessages; +import art.arcane.iris.studio.render.RenderType; import art.arcane.volmlib.util.localization.MessageKey; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/gui/VisionViewportTest.java b/core/src/test/java/art/arcane/iris/studio/view/VisionViewportTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/gui/VisionViewportTest.java rename to core/src/test/java/art/arcane/iris/studio/view/VisionViewportTest.java index 29547c91a..d58459fc4 100644 --- a/core/src/test/java/art/arcane/iris/core/gui/VisionViewportTest.java +++ b/core/src/test/java/art/arcane/iris/studio/view/VisionViewportTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.gui; +package art.arcane.iris.studio.view; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/project/ExternalBlockSchemaTest.java b/core/src/test/java/art/arcane/iris/studio/workspace/ExternalBlockSchemaTest.java similarity index 92% rename from core/src/test/java/art/arcane/iris/core/project/ExternalBlockSchemaTest.java rename to core/src/test/java/art/arcane/iris/studio/workspace/ExternalBlockSchemaTest.java index a1fc05c67..5c1683dc1 100644 --- a/core/src/test/java/art/arcane/iris/core/project/ExternalBlockSchemaTest.java +++ b/core/src/test/java/art/arcane/iris/studio/workspace/ExternalBlockSchemaTest.java @@ -1,8 +1,10 @@ -package art.arcane.iris.core.project; +package art.arcane.iris.studio.workspace; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.engine.object.IrisBlockData; +import art.arcane.iris.pack.schema.SchemaBuilder; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.generation.block.IrisBlockData; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBlockProperty; diff --git a/core/src/test/java/art/arcane/iris/core/project/ImageMapStudioExporterTest.java b/core/src/test/java/art/arcane/iris/studio/workspace/ImageMapStudioExporterTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/core/project/ImageMapStudioExporterTest.java rename to core/src/test/java/art/arcane/iris/studio/workspace/ImageMapStudioExporterTest.java index 32166bb60..da889c2e7 100644 --- a/core/src/test/java/art/arcane/iris/core/project/ImageMapStudioExporterTest.java +++ b/core/src/test/java/art/arcane/iris/studio/workspace/ImageMapStudioExporterTest.java @@ -1,12 +1,12 @@ -package art.arcane.iris.core.project; +package art.arcane.iris.studio.workspace; -import art.arcane.iris.engine.image.IrisImageMapValidationException; -import art.arcane.iris.engine.object.IrisImage; -import art.arcane.iris.engine.object.IrisImageMap; -import art.arcane.iris.engine.object.IrisImageMapApplication; -import art.arcane.iris.engine.object.IrisImageMapOutOfBounds; -import art.arcane.iris.engine.object.IrisImageMapSampling; -import art.arcane.iris.engine.object.IrisImageMapType; +import art.arcane.iris.generation.image.IrisImageMapValidationException; +import art.arcane.iris.generation.image.IrisImage; +import art.arcane.iris.generation.image.IrisImageMap; +import art.arcane.iris.generation.image.IrisImageMapApplication; +import art.arcane.iris.generation.image.IrisImageMapOutOfBounds; +import art.arcane.iris.generation.image.IrisImageMapSampling; +import art.arcane.iris.generation.image.IrisImageMapType; import art.arcane.volmlib.util.collection.KMap; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/project/ImportedFeatureControlSchemaTest.java b/core/src/test/java/art/arcane/iris/studio/workspace/ImportedFeatureControlSchemaTest.java similarity index 88% rename from core/src/test/java/art/arcane/iris/core/project/ImportedFeatureControlSchemaTest.java rename to core/src/test/java/art/arcane/iris/studio/workspace/ImportedFeatureControlSchemaTest.java index e815ba87f..342f30405 100644 --- a/core/src/test/java/art/arcane/iris/core/project/ImportedFeatureControlSchemaTest.java +++ b/core/src/test/java/art/arcane/iris/studio/workspace/ImportedFeatureControlSchemaTest.java @@ -16,11 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.project; +package art.arcane.iris.studio.workspace; -import art.arcane.iris.engine.object.IrisDecorationStep; -import art.arcane.iris.engine.object.IrisImportedFeatureControl; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.iris.pack.schema.SchemaBuilder; + +import art.arcane.iris.generation.decoration.IrisDecorationStep; +import art.arcane.iris.structure.nativegen.IrisImportedFeatureControl; +import art.arcane.volmlib.util.documentation.Description; import art.arcane.volmlib.util.json.JSONArray; import art.arcane.volmlib.util.json.JSONObject; import org.junit.Test; @@ -35,10 +37,10 @@ import static org.junit.Assert.assertTrue; public class ImportedFeatureControlSchemaTest { @Test public void everyDecorationStepIsSchemaDescribed() throws NoSuchFieldException { - assertNotNull(IrisDecorationStep.class.getAnnotation(Desc.class)); + assertNotNull(IrisDecorationStep.class.getAnnotation(Description.class)); for (IrisDecorationStep step : IrisDecorationStep.values()) { assertNotNull(step.name(), - IrisDecorationStep.class.getField(step.name()).getAnnotation(Desc.class)); + IrisDecorationStep.class.getField(step.name()).getAnnotation(Description.class)); } } @@ -83,9 +85,9 @@ public class ImportedFeatureControlSchemaTest { || importedFeatures.has("anyOf")); } - @Desc("Schema model for the imported feature control block.") + @Description("Schema model for the imported feature control block.") public static class ControlHolder { - @Desc("Controls native placed feature generation.") + @Description("Controls native placed feature generation.") private IrisImportedFeatureControl importedFeatures = new IrisImportedFeatureControl(); } } diff --git a/core/src/test/java/art/arcane/iris/core/project/IrisCodeWorkspaceTest.java b/core/src/test/java/art/arcane/iris/studio/workspace/IrisCodeWorkspaceTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/core/project/IrisCodeWorkspaceTest.java rename to core/src/test/java/art/arcane/iris/studio/workspace/IrisCodeWorkspaceTest.java index 93279f408..c809bdc90 100644 --- a/core/src/test/java/art/arcane/iris/core/project/IrisCodeWorkspaceTest.java +++ b/core/src/test/java/art/arcane/iris/studio/workspace/IrisCodeWorkspaceTest.java @@ -1,9 +1,9 @@ -package art.arcane.iris.core.project; +package art.arcane.iris.studio.workspace; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.MeteredCache; -import art.arcane.iris.engine.framework.PreservationRegistry; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.MeteredCache; +import art.arcane.iris.generation.runtime.PreservationRegistry; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.IrisServices; diff --git a/core/src/test/java/art/arcane/iris/core/project/IrisDimensionStackSchemaTest.java b/core/src/test/java/art/arcane/iris/studio/workspace/IrisDimensionStackSchemaTest.java similarity index 89% rename from core/src/test/java/art/arcane/iris/core/project/IrisDimensionStackSchemaTest.java rename to core/src/test/java/art/arcane/iris/studio/workspace/IrisDimensionStackSchemaTest.java index a23b21b25..c838ca6ed 100644 --- a/core/src/test/java/art/arcane/iris/core/project/IrisDimensionStackSchemaTest.java +++ b/core/src/test/java/art/arcane/iris/studio/workspace/IrisDimensionStackSchemaTest.java @@ -1,13 +1,15 @@ -package art.arcane.iris.core.project; +package art.arcane.iris.studio.workspace; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisDimensionStack; -import art.arcane.iris.engine.object.IrisDimensionStackBlend; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.RegistryListResource; +import art.arcane.iris.pack.schema.SchemaBuilder; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisDimensionStack; +import art.arcane.iris.generation.terrain.IrisDimensionStackBlend; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.iris.pack.schema.annotation.RegistryListResource; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.json.JSONArray; diff --git a/core/src/test/java/art/arcane/iris/core/project/IrisImageMapSchemaTest.java b/core/src/test/java/art/arcane/iris/studio/workspace/IrisImageMapSchemaTest.java similarity index 85% rename from core/src/test/java/art/arcane/iris/core/project/IrisImageMapSchemaTest.java rename to core/src/test/java/art/arcane/iris/studio/workspace/IrisImageMapSchemaTest.java index 14357f38b..af41cfcfd 100644 --- a/core/src/test/java/art/arcane/iris/core/project/IrisImageMapSchemaTest.java +++ b/core/src/test/java/art/arcane/iris/studio/workspace/IrisImageMapSchemaTest.java @@ -1,13 +1,15 @@ -package art.arcane.iris.core.project; +package art.arcane.iris.studio.workspace; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisGeneratorStyle; -import art.arcane.iris.engine.object.IrisImageMap; -import art.arcane.iris.engine.object.IrisImageMapBinding; -import art.arcane.iris.engine.object.annotations.ArrayType; +import art.arcane.iris.pack.schema.SchemaBuilder; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.generation.image.IrisImageMap; +import art.arcane.iris.generation.image.IrisImageMapBinding; +import art.arcane.iris.pack.schema.annotation.ArrayType; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.json.JSONObject; diff --git a/core/src/test/java/art/arcane/iris/core/project/IrisProjectCopierTest.java b/core/src/test/java/art/arcane/iris/studio/workspace/IrisProjectCopierTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/project/IrisProjectCopierTest.java rename to core/src/test/java/art/arcane/iris/studio/workspace/IrisProjectCopierTest.java index 68f130bf5..b73b08fcc 100644 --- a/core/src/test/java/art/arcane/iris/core/project/IrisProjectCopierTest.java +++ b/core/src/test/java/art/arcane/iris/studio/workspace/IrisProjectCopierTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.project; +package art.arcane.iris.studio.workspace; import art.arcane.volmlib.util.json.JSONObject; import org.junit.Assume; diff --git a/core/src/test/java/art/arcane/iris/core/project/IrisProjectEntityDependencyTest.java b/core/src/test/java/art/arcane/iris/studio/workspace/IrisProjectEntityDependencyTest.java similarity index 88% rename from core/src/test/java/art/arcane/iris/core/project/IrisProjectEntityDependencyTest.java rename to core/src/test/java/art/arcane/iris/studio/workspace/IrisProjectEntityDependencyTest.java index cb42ffd39..520827294 100644 --- a/core/src/test/java/art/arcane/iris/core/project/IrisProjectEntityDependencyTest.java +++ b/core/src/test/java/art/arcane/iris/studio/workspace/IrisProjectEntityDependencyTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.project; +package art.arcane.iris.studio.workspace; -import art.arcane.iris.engine.object.IrisEntitySpawn; -import art.arcane.iris.engine.object.IrisSpawner; +import art.arcane.iris.world.entity.IrisEntitySpawn; +import art.arcane.iris.world.entity.IrisSpawner; import art.arcane.volmlib.util.collection.KSet; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/project/IrisRiverSchemaTest.java b/core/src/test/java/art/arcane/iris/studio/workspace/IrisRiverSchemaTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/project/IrisRiverSchemaTest.java rename to core/src/test/java/art/arcane/iris/studio/workspace/IrisRiverSchemaTest.java index 550e407a3..ffc14d42e 100644 --- a/core/src/test/java/art/arcane/iris/core/project/IrisRiverSchemaTest.java +++ b/core/src/test/java/art/arcane/iris/studio/workspace/IrisRiverSchemaTest.java @@ -1,13 +1,15 @@ -package art.arcane.iris.core.project; +package art.arcane.iris.studio.workspace; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBlockData; -import art.arcane.iris.engine.object.IrisExpression; -import art.arcane.iris.engine.object.IrisHydrology; -import art.arcane.iris.engine.object.IrisRiverPolicy; +import art.arcane.iris.pack.schema.SchemaBuilder; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.block.IrisBlockData; +import art.arcane.iris.generation.noise.IrisExpression; +import art.arcane.iris.generation.hydrology.IrisHydrology; +import art.arcane.iris.generation.hydrology.IrisRiverPolicy; import art.arcane.iris.testsupport.PlatformLeakGuard; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; diff --git a/core/src/test/java/art/arcane/iris/core/project/IrisStaticObjectSchemaTest.java b/core/src/test/java/art/arcane/iris/studio/workspace/IrisStaticObjectSchemaTest.java similarity index 89% rename from core/src/test/java/art/arcane/iris/core/project/IrisStaticObjectSchemaTest.java rename to core/src/test/java/art/arcane/iris/studio/workspace/IrisStaticObjectSchemaTest.java index 97269a088..9cc41bff2 100644 --- a/core/src/test/java/art/arcane/iris/core/project/IrisStaticObjectSchemaTest.java +++ b/core/src/test/java/art/arcane/iris/studio/workspace/IrisStaticObjectSchemaTest.java @@ -1,14 +1,16 @@ -package art.arcane.iris.core.project; +package art.arcane.iris.studio.workspace; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.engine.object.IrisBlockData; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisExpression; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisStaticObject; -import art.arcane.iris.engine.object.annotations.ArrayType; +import art.arcane.iris.pack.schema.SchemaBuilder; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.generation.block.IrisBlockData; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.noise.IrisExpression; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.structure.object.IrisStaticObject; +import art.arcane.iris.pack.schema.annotation.ArrayType; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformRegistries; diff --git a/core/src/test/java/art/arcane/iris/core/project/IrisWorldBoundarySchemaTest.java b/core/src/test/java/art/arcane/iris/studio/workspace/IrisWorldBoundarySchemaTest.java similarity index 87% rename from core/src/test/java/art/arcane/iris/core/project/IrisWorldBoundarySchemaTest.java rename to core/src/test/java/art/arcane/iris/studio/workspace/IrisWorldBoundarySchemaTest.java index e18773e9b..f4d2d0dc1 100644 --- a/core/src/test/java/art/arcane/iris/core/project/IrisWorldBoundarySchemaTest.java +++ b/core/src/test/java/art/arcane/iris/studio/workspace/IrisWorldBoundarySchemaTest.java @@ -1,8 +1,10 @@ -package art.arcane.iris.core.project; +package art.arcane.iris.studio.workspace; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisWorldBoundary; -import art.arcane.iris.engine.object.IrisWorldBoundaryCenter; +import art.arcane.iris.pack.schema.SchemaBuilder; + +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.world.IrisWorldBoundary; +import art.arcane.iris.world.IrisWorldBoundaryCenter; import art.arcane.volmlib.util.json.JSONObject; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/project/NativeStructureSuppressionSchemaTest.java b/core/src/test/java/art/arcane/iris/studio/workspace/NativeStructureSuppressionSchemaTest.java similarity index 77% rename from core/src/test/java/art/arcane/iris/core/project/NativeStructureSuppressionSchemaTest.java rename to core/src/test/java/art/arcane/iris/studio/workspace/NativeStructureSuppressionSchemaTest.java index 1d7c5923c..dfdea97ea 100644 --- a/core/src/test/java/art/arcane/iris/core/project/NativeStructureSuppressionSchemaTest.java +++ b/core/src/test/java/art/arcane/iris/studio/workspace/NativeStructureSuppressionSchemaTest.java @@ -1,7 +1,9 @@ -package art.arcane.iris.core.project; +package art.arcane.iris.studio.workspace; -import art.arcane.iris.engine.object.NativeStructureSuppression; -import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.iris.pack.schema.SchemaBuilder; + +import art.arcane.iris.structure.nativegen.NativeStructureSuppression; +import art.arcane.volmlib.util.documentation.Description; import art.arcane.volmlib.util.json.JSONArray; import art.arcane.volmlib.util.json.JSONObject; import org.junit.Test; @@ -12,9 +14,9 @@ import static org.junit.Assert.assertNotNull; public class NativeStructureSuppressionSchemaTest { @Test public void suppressionTypeAndValuesAreSchemaDescribed() throws NoSuchFieldException { - assertNotNull(NativeStructureSuppression.class.getAnnotation(Desc.class)); - assertNotNull(NativeStructureSuppression.class.getField("NONE").getAnnotation(Desc.class)); - assertNotNull(NativeStructureSuppression.class.getField("REPLACE_SOURCE").getAnnotation(Desc.class)); + assertNotNull(NativeStructureSuppression.class.getAnnotation(Description.class)); + assertNotNull(NativeStructureSuppression.class.getField("NONE").getAnnotation(Description.class)); + assertNotNull(NativeStructureSuppression.class.getField("REPLACE_SOURCE").getAnnotation(Description.class)); JSONObject schema = new SchemaBuilder(SuppressionModel.class, null).construct(); JSONObject suppression = schema.getJSONObject("properties").getJSONObject("suppression"); @@ -31,9 +33,9 @@ public class NativeStructureSuppressionSchemaTest { values.getJSONObject(1).getString("description")); } - @Desc("Schema model for native structure suppression.") + @Description("Schema model for native structure suppression.") public static class SuppressionModel { - @Desc("Native structure suppression behavior.") + @Description("Native structure suppression behavior.") private NativeStructureSuppression suppression = NativeStructureSuppression.NONE; } } diff --git a/core/src/test/java/art/arcane/iris/core/project/VanillaStructurePrefixSchemaTest.java b/core/src/test/java/art/arcane/iris/studio/workspace/VanillaStructurePrefixSchemaTest.java similarity index 81% rename from core/src/test/java/art/arcane/iris/core/project/VanillaStructurePrefixSchemaTest.java rename to core/src/test/java/art/arcane/iris/studio/workspace/VanillaStructurePrefixSchemaTest.java index c1a591713..4ba0f57c9 100644 --- a/core/src/test/java/art/arcane/iris/core/project/VanillaStructurePrefixSchemaTest.java +++ b/core/src/test/java/art/arcane/iris/studio/workspace/VanillaStructurePrefixSchemaTest.java @@ -1,12 +1,14 @@ -package art.arcane.iris.core.project; +package art.arcane.iris.studio.workspace; -import art.arcane.iris.engine.object.IrisImportedStructureControl; -import art.arcane.iris.engine.object.IrisStructureSetFrequencyOverride; -import art.arcane.iris.engine.object.IrisVanillaStructureAdjustment; -import art.arcane.iris.engine.object.annotations.ArrayType; -import art.arcane.iris.engine.object.annotations.Desc; -import art.arcane.iris.engine.object.annotations.RegistryListVanillaStructure; -import art.arcane.iris.engine.object.annotations.RegistryListVanillaStructureSet; +import art.arcane.iris.pack.schema.SchemaBuilder; + +import art.arcane.iris.structure.nativegen.IrisImportedStructureControl; +import art.arcane.iris.structure.placement.IrisStructureSetFrequencyOverride; +import art.arcane.iris.structure.nativegen.IrisVanillaStructureAdjustment; +import art.arcane.iris.pack.schema.annotation.ArrayType; +import art.arcane.volmlib.util.documentation.Description; +import art.arcane.iris.pack.schema.annotation.RegistryListVanillaStructure; +import art.arcane.iris.pack.schema.annotation.RegistryListVanillaStructureSet; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.json.JSONArray; import art.arcane.volmlib.util.json.JSONObject; @@ -64,11 +66,11 @@ public class VanillaStructurePrefixSchemaTest { assertFalse(compiled.matcher("Nova Structures:tavern").matches()); } - @Desc("Schema model for prefix-capable vanilla structure lists.") + @Description("Schema model for prefix-capable vanilla structure lists.") public static class PrefixModel { @RegistryListVanillaStructure(prefixes = true) @ArrayType(type = String.class, min = 1) - @Desc("Prefix-capable deny list.") + @Description("Prefix-capable deny list.") private KList disabled = new KList<>(); } } diff --git a/core/src/test/java/art/arcane/iris/engine/object/CompatTestPlatform.java b/core/src/test/java/art/arcane/iris/testsupport/CompatTestPlatform.java similarity index 93% rename from core/src/test/java/art/arcane/iris/engine/object/CompatTestPlatform.java rename to core/src/test/java/art/arcane/iris/testsupport/CompatTestPlatform.java index b771c8e13..b327a309c 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/CompatTestPlatform.java +++ b/core/src/test/java/art/arcane/iris/testsupport/CompatTestPlatform.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.testsupport; -import art.arcane.iris.engine.framework.MeteredCache; -import art.arcane.iris.engine.framework.PreservationRegistry; +import art.arcane.iris.generation.runtime.MeteredCache; +import art.arcane.iris.generation.runtime.PreservationRegistry; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.IrisServices; @@ -50,14 +50,14 @@ import static org.mockito.Mockito.when; * Binds a platform whose block registry holds exactly the keys a compat test declares, so the gate can be exercised * without a server. Also writes the .iob and JSON fixtures those tests need. */ -final class CompatTestPlatform { +public final class CompatTestPlatform { private final IrisPlatform previous; private CompatTestPlatform(IrisPlatform previous) { this.previous = previous; } - static CompatTestPlatform bind(File dataFolder, List blockKeys) { + public static CompatTestPlatform bind(File dataFolder, List blockKeys) { IrisPlatform previous = IrisPlatforms.isBound() ? IrisPlatforms.get() : null; IrisPlatforms.unbind(); IrisPlatform platform = mock(IrisPlatform.class, Answers.CALLS_REAL_METHODS); @@ -68,7 +68,7 @@ final class CompatTestPlatform { return new CompatTestPlatform(previous); } - void unbind() { + public void unbind() { IrisServices.remove(PreservationRegistry.class); IrisPlatforms.unbind(); if (previous != null) { @@ -77,7 +77,7 @@ final class CompatTestPlatform { } /** A minimal V2 .iob under {@code /objects/.iob} carrying only the given palette. */ - static File writeObject(File pack, String key, String... palette) throws IOException { + public static File writeObject(File pack, String key, String... palette) throws IOException { File file = new File(pack, "objects/" + key + ".iob"); file.getParentFile().mkdirs(); try (DataOutputStream out = new DataOutputStream(new FileOutputStream(file))) { @@ -99,7 +99,7 @@ final class CompatTestPlatform { * A V2 .iob whose palette is {@code palette} and which carries one block per palette entry, entry {@code i} at * {@code (i, 0, 0)} relative to the object origin, so a placer actually has something to stamp. */ - static File writeObjectWithBlocks(File pack, String key, String... palette) throws IOException { + public static File writeObjectWithBlocks(File pack, String key, String... palette) throws IOException { File file = new File(pack, "objects/" + key + ".iob"); file.getParentFile().mkdirs(); try (DataOutputStream out = new DataOutputStream(new FileOutputStream(file))) { @@ -123,7 +123,7 @@ final class CompatTestPlatform { return file; } - static File write(File pack, String path, String content) throws IOException { + public static File write(File pack, String path, String content) throws IOException { File file = new File(pack, path); file.getParentFile().mkdirs(); Files.write(file.toPath(), content.getBytes(StandardCharsets.UTF_8)); diff --git a/core/src/test/java/art/arcane/iris/engine/object/KeyedBlockState.java b/core/src/test/java/art/arcane/iris/testsupport/KeyedBlockState.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/object/KeyedBlockState.java rename to core/src/test/java/art/arcane/iris/testsupport/KeyedBlockState.java index 958eccd9c..2bc18cdcf 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/KeyedBlockState.java +++ b/core/src/test/java/art/arcane/iris/testsupport/KeyedBlockState.java @@ -1,11 +1,11 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.testsupport; import art.arcane.iris.spi.PlatformBlockState; -final class KeyedBlockState implements PlatformBlockState { +public final class KeyedBlockState implements PlatformBlockState { private final String key; - KeyedBlockState(String key) { + public KeyedBlockState(String key) { this.key = key; } diff --git a/core/src/test/java/art/arcane/iris/engine/object/PackCompatFixtures.java b/core/src/test/java/art/arcane/iris/testsupport/PackCompatFixtures.java similarity index 56% rename from core/src/test/java/art/arcane/iris/engine/object/PackCompatFixtures.java rename to core/src/test/java/art/arcane/iris/testsupport/PackCompatFixtures.java index 197a57553..b19a10634 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/PackCompatFixtures.java +++ b/core/src/test/java/art/arcane/iris/testsupport/PackCompatFixtures.java @@ -1,12 +1,17 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.testsupport; -import art.arcane.iris.core.compat.CompatAction; -import art.arcane.iris.core.compat.CompatFinding; -import art.arcane.iris.core.compat.CompatRegistry; -import art.arcane.iris.core.compat.CompatStatus; -import art.arcane.iris.core.compat.PackCompatReport; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.IrisRegistrant; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.world.entity.IrisEntity; +import art.arcane.iris.world.loot.IrisLootTable; + +import art.arcane.iris.pack.validation.CompatAction; +import art.arcane.iris.pack.validation.CompatFinding; +import art.arcane.iris.pack.validation.CompatRegistry; +import art.arcane.iris.pack.validation.CompatStatus; +import art.arcane.iris.pack.validation.PackCompatReport; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.IrisRegistrant; import java.util.List; @@ -17,61 +22,61 @@ import static org.mockito.Mockito.when; * Shared fixtures for the version-content pool cascade tests. The gate walker (lane L1) is not exercised here: the * tests stamp {@code compat} on a registrant directly, which is exactly what the walker stores. */ -final class PackCompatFixtures { - static final String MISSING_BLOCK = "minecraft:sulfur"; - static final String MISSING_ENTITY = "minecraft:camel"; +public final class PackCompatFixtures { + public static final String MISSING_BLOCK = "minecraft:sulfur"; + public static final String MISSING_ENTITY = "minecraft:camel"; private PackCompatFixtures() { } - static IrisData data(PackCompatReport report) { + public static IrisData data(PackCompatReport report) { IrisData data = mock(IrisData.class); when(data.getCompatReport()).thenReturn(report); return data; } /** Marks a registrant excluded the way the gate walker would for a missing composed block. */ - static T excludeBlock(T registrant) { + public static T excludeBlock(T registrant) { return exclude(registrant, CompatRegistry.BLOCK, MISSING_BLOCK); } /** Marks a registrant excluded the way the gate walker would for a missing entity type. */ - static T excludeEntity(T registrant) { + public static T excludeEntity(T registrant) { return exclude(registrant, CompatRegistry.ENTITY, MISSING_ENTITY); } - static T exclude(T registrant, CompatRegistry registry, String key) { + public static T exclude(T registrant, CompatRegistry registry, String key) { registrant.setCompat(CompatStatus.excludedBy(List.of(new CompatFinding(registry, key, CompatAction.EXCLUDED, registrant.getTypeName().toLowerCase(java.util.Locale.ROOT), registrant.getLoadKey(), "composition")))); return registrant; } - static IrisBiome biome(String key) { + public static IrisBiome biome(String key) { IrisBiome biome = new IrisBiome(); biome.setLoadKey(key); return biome; } - static IrisRegion region(String key) { + public static IrisRegion region(String key) { IrisRegion region = new IrisRegion(); region.setLoadKey(key); return region; } - static IrisEntity entity(String key) { + public static IrisEntity entity(String key) { IrisEntity entity = new IrisEntity(); entity.setLoadKey(key); return entity; } - static IrisLootTable lootTable(String key) { + public static IrisLootTable lootTable(String key) { IrisLootTable table = new IrisLootTable(); table.setLoadKey(key); return table; } - static CompatFinding find(PackCompatReport report, CompatAction action, String subjectType, String subjectKey) { + public static CompatFinding find(PackCompatReport report, CompatAction action, String subjectType, String subjectKey) { for (CompatFinding finding : report.findings()) { if (finding.action() == action && finding.subjectType().equals(subjectType) diff --git a/core/src/test/java/art/arcane/iris/util/common/math/ChunkSpiralTest.java b/core/src/test/java/art/arcane/iris/util/common/math/ChunkSpiralTest.java deleted file mode 100644 index 04603f69e..000000000 --- a/core/src/test/java/art/arcane/iris/util/common/math/ChunkSpiralTest.java +++ /dev/null @@ -1,55 +0,0 @@ -package art.arcane.iris.util.common.math; - -import org.junit.Test; - -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; - -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; - -public class ChunkSpiralTest { - @Test - public void centerOutMatchesLegacyOrdering() { - int centerX = 5; - int centerZ = -3; - int radius = 3; - List expected = legacyOrderedTargets(centerX, centerZ, radius); - List actual = ChunkSpiral.centerOut(centerX, centerZ, radius); - assertEquals(expected.size(), actual.size()); - for (int i = 0; i < expected.size(); i++) { - assertArrayEquals(expected.get(i), actual.get(i)); - } - } - - @Test - public void centerOutStartsAtCenterAndCoversSquare() { - List targets = ChunkSpiral.centerOut(10, 20, 2); - assertEquals(25, targets.size()); - assertArrayEquals(new int[]{10, 20}, targets.get(0)); - } - - @Test - public void centerOutRadiusZeroIsSingleChunk() { - List targets = ChunkSpiral.centerOut(-7, 9, 0); - assertEquals(1, targets.size()); - assertArrayEquals(new int[]{-7, 9}, targets.get(0)); - } - - private static List legacyOrderedTargets(int centerChunkX, int centerChunkZ, int radius) { - List targets = new ArrayList<>(); - for (int dx = -radius; dx <= radius; dx++) { - for (int dz = -radius; dz <= radius; dz++) { - targets.add(new int[]{centerChunkX + dx, centerChunkZ + dz}); - } - } - - targets.sort(Comparator.comparingInt((int[] t) -> { - int ox = t[0] - centerChunkX; - int oz = t[1] - centerChunkZ; - return ox * ox + oz * oz; - })); - return targets; - } -} diff --git a/core/src/test/java/art/arcane/iris/util/project/interpolation/IrisInterpolationBoundsTest.java b/core/src/test/java/art/arcane/iris/util/project/interpolation/IrisInterpolationBoundsTest.java deleted file mode 100644 index ae57b3ead..000000000 --- a/core/src/test/java/art/arcane/iris/util/project/interpolation/IrisInterpolationBoundsTest.java +++ /dev/null @@ -1,141 +0,0 @@ -package art.arcane.iris.util.project.interpolation; - -import org.junit.Test; - -import java.util.HashMap; -import java.util.Map; -import java.util.Random; -import java.util.concurrent.atomic.AtomicInteger; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; - -public class IrisInterpolationBoundsTest { - @Test - public void everyMethodPreservesSeparatePassValuesAndSamplesEachCoordinateOnce() { - Random random = new Random(19053); - for (InterpolationMethod method : InterpolationMethod.values()) { - for (double scale : new double[]{1D, 7D, 12D, 23D, 200D, 7.75D, 8192D}) { - for (int index = 0; index < 24; index++) { - int x = random.nextInt(); - int z = random.nextInt(); - Map expectedSamples = new HashMap<>(); - NoiseBounds expected = separatePasses(method, x, z, scale, - IrisInterpolationBoundsTest::asymmetricBounds, expectedSamples); - Map actualSamples = new HashMap<>(); - NoiseBounds actual = IrisInterpolation.getNoiseBounds(method, x, z, scale, (sx, sz) -> { - actualSamples.merge(new Coordinate(sx, sz), 1, Integer::sum); - return asymmetricBounds(sx, sz); - }); - assertBounds(expected, actual); - assertEquals(expectedSamples.keySet(), actualSamples.keySet()); - for (int calls : actualSamples.values()) { - assertEquals(1, calls); - } - } - } - } - } - - @Test - public void fractionalBoundsMatchSeparatePassesAndSampleEachCoordinateOnce() { - for (InterpolationMethod method : InterpolationMethod.values()) { - Map expectedSamples = new HashMap<>(); - NoiseBounds expected = separatePasses(method, -31.75D, 29.25D, 32D, - IrisInterpolationBoundsTest::asymmetricBounds, expectedSamples); - Map actualSamples = new HashMap<>(); - NoiseBounds actual = IrisInterpolation.getNoiseBounds(method, -31.75D, 29.25D, 32D, (x, z) -> { - actualSamples.merge(new Coordinate(x, z), 1, Integer::sum); - return asymmetricBounds(x, z); - }); - - assertBounds(expected, actual); - assertEquals(expectedSamples.keySet(), actualSamples.keySet()); - for (int calls : actualSamples.values()) { - assertEquals(1, calls); - } - } - } - - @Test - public void nestedProvidersKeepTheirOwnSamplingSequences() { - for (InterpolationMethod method : InterpolationMethod.values()) { - NoiseBoundsProvider expectedProvider = (x, z) -> separatePasses( - InterpolationMethod.HERMITE_STARCAST_12, (int) x + 103, (int) z - 79, 13.5D, - IrisInterpolationBoundsTest::asymmetricBounds, new HashMap<>()); - NoiseBoundsProvider actualProvider = (x, z) -> IrisInterpolation.getNoiseBounds( - InterpolationMethod.HERMITE_STARCAST_12, (int) x + 103, (int) z - 79, 13.5D, - IrisInterpolationBoundsTest::asymmetricBounds); - NoiseBounds expected = separatePasses(method, -93, 201, 23D, expectedProvider, new HashMap<>()); - NoiseBounds actual = IrisInterpolation.getNoiseBounds(method, -93, 201, 23D, actualProvider); - assertBounds(expected, actual); - } - } - - @Test - public void nestedScalarProvidersPreserveTheirOriginalCallbackOrder() { - for (InterpolationMethod method : InterpolationMethod.values()) { - AtomicInteger expectedCalls = new AtomicInteger(); - AtomicInteger actualCalls = new AtomicInteger(); - NoiseBoundsProvider expectedProvider = (x, z) -> scalarBounds(x, z, expectedCalls); - NoiseBoundsProvider actualProvider = (x, z) -> scalarBounds(x, z, actualCalls); - NoiseBounds expected = separatePasses(method, -93, 201, 23D, expectedProvider, new HashMap<>()); - NoiseBounds actual = IrisInterpolation.getNoiseBounds(method, -93, 201, 23D, actualProvider); - assertBounds(expected, actual); - assertEquals(expectedCalls.get(), actualCalls.get()); - } - } - - private static NoiseBounds scalarBounds(double x, double z, AtomicInteger calls) { - double value = IrisInterpolation.getNoise(InterpolationMethod.HERMITE_STARCAST_12, - (int) x + 103, (int) z - 79, 13.5D, (sx, sz) -> calls.incrementAndGet()); - return new NoiseBounds(value, value + 17D); - } - - @Test - public void failedProviderDoesNotLeavePartialSamplesForTheNextPass() { - AtomicInteger calls = new AtomicInteger(); - IllegalStateException failure = new IllegalStateException("provider failure"); - try { - IrisInterpolation.getNoiseBounds(InterpolationMethod.HERMITE_STARCAST_12, 71, -209, 7D, - (x, z) -> { - if (calls.incrementAndGet() == 5) { - throw failure; - } - return asymmetricBounds(x, z); - }); - fail("Expected provider failure"); - } catch (IllegalStateException expected) { - assertEquals(failure, expected); - } - NoiseBounds expected = separatePasses(InterpolationMethod.HERMITE_STARCAST_12, 71, -209, 7D, - IrisInterpolationBoundsTest::asymmetricBounds, new HashMap<>()); - NoiseBounds actual = IrisInterpolation.getNoiseBounds(InterpolationMethod.HERMITE_STARCAST_12, - 71, -209, 7D, IrisInterpolationBoundsTest::asymmetricBounds); - assertBounds(expected, actual); - } - - private static NoiseBounds separatePasses(InterpolationMethod method, double x, double z, double scale, - NoiseBoundsProvider provider, Map samples) { - double minimum = IrisInterpolation.getNoise(method, x, z, scale, - (sx, sz) -> samples.computeIfAbsent(new Coordinate(sx, sz), - coordinate -> provider.noise(sx, sz)).min()); - double maximum = IrisInterpolation.getNoise(method, x, z, scale, - (sx, sz) -> samples.computeIfAbsent(new Coordinate(sx, sz), - coordinate -> provider.noise(sx, sz)).max()); - return new NoiseBounds(minimum, maximum); - } - - private static NoiseBounds asymmetricBounds(double x, double z) { - double minimum = StrictMath.sin(x * 0.0031D) * 35D - StrictMath.cos(z * 0.0087D) * 7D; - return new NoiseBounds(minimum, minimum + 17D + StrictMath.cos(x * 0.0123D - z * 0.019D) * 11D); - } - - private static void assertBounds(NoiseBounds expected, NoiseBounds actual) { - assertEquals(Double.doubleToLongBits(expected.min()), Double.doubleToLongBits(actual.min())); - assertEquals(Double.doubleToLongBits(expected.max()), Double.doubleToLongBits(actual.max())); - } - - private record Coordinate(double x, double z) { - } -} diff --git a/core/src/test/java/art/arcane/iris/util/project/interpolation/IrisInterpolationSamplingTest.java b/core/src/test/java/art/arcane/iris/util/project/interpolation/IrisInterpolationSamplingTest.java deleted file mode 100644 index 61fff6693..000000000 --- a/core/src/test/java/art/arcane/iris/util/project/interpolation/IrisInterpolationSamplingTest.java +++ /dev/null @@ -1,168 +0,0 @@ -package art.arcane.iris.util.project.interpolation; - -import art.arcane.volmlib.util.function.NoiseProvider; -import org.junit.Test; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.atomic.AtomicInteger; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertTrue; - -public class IrisInterpolationSamplingTest { - @Test - public void bicubicDispatchUsesSixteenSamplesAndTheCubicKernel() { - NoiseProvider source = (x, z) -> x * x + z * z * z; - AtomicInteger calls = new AtomicInteger(); - NoiseProvider countingSource = (x, z) -> { - calls.incrementAndGet(); - return source.noise(x, z); - }; - double expected = IrisInterpolation.getBicubicNoise(3, 5, 8D, source); - double bilinear = IrisInterpolation.getBilinearNoise(3, 5, 8D, source); - double actual = IrisInterpolation.getNoise(InterpolationMethod.BICUBIC, 3, 5, 8D, countingSource); - - assertEquals(expected, actual, 0D); - assertNotEquals(bilinear, actual, 1.0E-12D); - assertEquals(16, calls.get()); - } - - @Test - public void bilinearSamplingPreservesFractionalAndNegativeCoordinates() { - NoiseProvider source = (x, z) -> x * 0.001D + z * 0.002D; - - for (double x : new double[]{-31.75D, -0.25D, 0D, 0.75D, 31.25D, 29_999_999.25D}) { - for (double z : new double[]{-33.5D, -0.5D, 0.5D, 23.75D}) { - assertEquals(source.noise(x, z), - IrisInterpolation.getNoise(InterpolationMethod.BILINEAR, x, z, 32D, source), 1.0E-11D); - } - } - - assertEquals(-1, IrisInterpolation.getRadiusFactor(-0.25D, 2.5D)); - assertEquals(0, IrisInterpolation.getRadiusFactor(2.25D, 2.5D)); - assertEquals(1, IrisInterpolation.getRadiusFactor(2.75D, 2.5D)); - } - - @Test - public void starcastPreservesFractionalCentersNearTheWorldBorder() { - double x = 30_000_000.25D; - double z = -29_999_999.75D; - List samples = new ArrayList<>(); - IrisInterpolation.getNoise(InterpolationMethod.STARCAST_3, x, z, 8D, (sampleX, sampleZ) -> { - samples.add(new Coordinate(sampleX, sampleZ)); - return 0.5D; - }); - - assertEquals(3, samples.size()); - for (int index = 0; index < samples.size(); index++) { - double angle = index * Math.PI * 2D / 3D; - double dx = 8D * (Math.cos(angle) - Math.sin(angle)); - double dz = 8D * (Math.sin(angle) + Math.cos(angle)); - assertEquals(x + dx, samples.get(index).x, 1.0E-12D); - assertEquals(z + dz, samples.get(index).z, 1.0E-12D); - } - } - - @Test - public void compositeSampleCachesKeepFractionalCentersSeparate() { - NoiseProvider source = (x, z) -> Math.sin(x * 0.013D) + Math.cos(z * 0.021D); - - for (double x : new double[]{-31.75D, -0.25D, 0.25D, 31.75D}) { - double z = x + 7.5D; - Map samples = new HashMap<>(); - double expected = IrisInterpolation.getNoise(InterpolationMethod.STARCAST_12, x, z, 32D, - (sampleX, sampleZ) -> IrisInterpolation.getBilinearNoise(sampleX, sampleZ, 32D, source)); - double actual = IrisInterpolation.getNoise(InterpolationMethod.BILINEAR_STARCAST_12, - x, z, 32D, (sampleX, sampleZ) -> { - samples.merge(new Coordinate(sampleX, sampleZ), 1, Integer::sum); - return source.noise(sampleX, sampleZ); - }); - - assertEquals(expected, actual, 0D); - for (int calls : samples.values()) { - assertEquals(1, calls); - } - } - } - - @Test - public void fractionalGridSpacingDoesNotCollapseOrJumpAtCellBoundaries() { - NoiseProvider source = (x, z) -> Math.sin(x * 0.73D) * 0.4D + Math.cos(z * 0.59D) * 0.2D; - - for (InterpolationMethod method : InterpolationMethod.values()) { - for (double radius : new double[]{0.125D, 0.375D, 2.5D, 7.75D}) { - for (int cell : new int[]{-7, -1, 0, 1, 7}) { - double boundary = cell * radius; - double center = IrisInterpolation.getNoise(method, boundary, 0.37D, radius, source); - double before = IrisInterpolation.getNoise(method, boundary - 1.0E-8D, 0.37D, radius, source); - double after = IrisInterpolation.getNoise(method, boundary + 1.0E-8D, 0.37D, radius, source); - - assertTrue(method.name(), Double.isFinite(center)); - assertEquals(method.name(), center, before, 1.0E-6D); - assertEquals(method.name(), center, after, 1.0E-6D); - } - } - } - } - - @Test - public void gridSamplesKeepTheConfiguredFractionalSpacing() { - List samples = new ArrayList<>(); - IrisInterpolation.getBilinearNoise(-0.25D, 0.125D, 0.375D, (x, z) -> { - samples.add(new Coordinate(x, z)); - return x + z; - }); - - assertEquals(List.of(new Coordinate(-0.375D, 0D), new Coordinate(0D, 0D), - new Coordinate(-0.375D, 0.375D), new Coordinate(0D, 0.375D)), samples); - } - - @Test - public void starcastPreservesDoubleSamplePrecisionAndLinearFields() { - NoiseProvider source = (x, z) -> 0.125D + x * 1.0E-11D - z * 2.0E-11D; - - for (InterpolationMethod method : new InterpolationMethod[]{InterpolationMethod.STARCAST_3, - InterpolationMethod.STARCAST_6, InterpolationMethod.STARCAST_9, InterpolationMethod.STARCAST_12}) { - assertEquals(method.name(), source.noise(0.25D, -0.75D), - IrisInterpolation.getNoise(method, 0.25D, -0.75D, 32.00000001D, source), 1.0E-16D); - assertNotEquals(method.name(), - IrisInterpolation.getNoise(method, 0D, 0D, 32D, source), - IrisInterpolation.getNoise(method, 0.25D, -0.75D, 32D, source), 1.0E-13D); - } - } - - @Test - public void parametricCurvesHaveSymmetricMidpointsAndMonotonicEndpoints() { - for (double alpha : new double[]{1D, 1.5D, 2D, 4D}) { - assertEquals(0D, IrisInterpolation.parametric(0D, alpha), 0D); - assertEquals(0.5D, IrisInterpolation.parametric(0.5D, alpha), 0D); - assertEquals(1D, IrisInterpolation.parametric(1D, alpha), 0D); - double previous = 0D; - for (int sample = 1; sample <= 100; sample++) { - double t = sample / 100D; - double value = IrisInterpolation.parametric(t, alpha); - assertTrue(value >= previous); - assertTrue(value <= 1D); - assertEquals(value, 1D - IrisInterpolation.parametric(1D - t, alpha), 1.0E-15D); - previous = value; - } - } - } - - @Test - public void catmullRomKeepsLinearSlopesAcrossGridBoundaries() { - NoiseProvider source = (x, z) -> x * 0.7D - z * 0.3D; - for (double x : new double[]{-7.75D, -0.25D, 0.25D, 7.75D}) { - assertEquals(source.noise(x, 2.75D), - IrisInterpolation.getNoise(InterpolationMethod.CATMULL_ROM_SPLINE, x, 2.75D, 8D, source), - 1.0E-12D); - } - } - - private record Coordinate(double x, double z) { - } -} diff --git a/core/src/test/java/art/arcane/iris/util/project/noise/CNGDimensionDispatchTest.java b/core/src/test/java/art/arcane/iris/util/project/noise/CNGDimensionDispatchTest.java deleted file mode 100644 index d0c9a5b4e..000000000 --- a/core/src/test/java/art/arcane/iris/util/project/noise/CNGDimensionDispatchTest.java +++ /dev/null @@ -1,260 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import art.arcane.volmlib.util.math.RNG; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertThrows; - -public class CNGDimensionDispatchTest { - private static final double EPSILON = 1.0E-12D; - - @Rule - public TemporaryFolder temporaryFolder = new TemporaryFolder(); - - @Test - public void eachEntrypointUsesItsNativeDimensionWithScalingAndOpacity() { - CoordinateNoise source = new CoordinateNoise(); - CNG noise = new CNG(new RNG(41L), source, 0.6D, 1).scale(0.375D).bake().scale(1.75D); - double scale = 0.375D * 1.75D; - - for (double x : new double[]{-13.25D, 0D, 17.5D}) { - double z = x + 2.75D; - double y = x - 4.125D; - double expected1D = source.noise(x * scale) * 0.6D; - double expected2D = source.noise(x * scale, z * scale) * 0.6D; - double expected3D = source.noise(x * scale, y * scale, z * scale) * 0.6D; - - assertEquals(expected1D, noise.noise(x), EPSILON); - assertEquals(expected1D, noise.noiseFast1D(x), EPSILON); - assertEquals(expected1D, noise.noise(new double[]{x}), EPSILON); - assertEquals(expected2D, noise.noise(x, z), EPSILON); - assertEquals(expected2D, noise.noiseFast2D(x, z), EPSILON); - assertEquals(expected2D, noise.noise(new double[]{x, z}), EPSILON); - assertEquals(expected2D * 2D - 1D, noise.noiseFastSigned2D(x, z), EPSILON); - assertEquals(expected3D, noise.noise(x, y, z), EPSILON); - assertEquals(expected3D, noise.noiseFast3D(x, y, z), EPSILON); - assertEquals(expected3D, noise.noise(new double[]{x, y, z}), EPSILON); - assertEquals(expected3D * 2D - 1D, noise.noiseFastSigned3D(x, y, z), EPSILON); - } - } - - @Test - public void generatorsWithoutCoordinateScalingKeepTheirNativeInputs() { - CoordinateNoise source = new CoordinateNoise() { - @Override - public boolean isNoScale() { - return true; - } - }; - CNG fracture = new CNG(new RNG(2L), new CoordinateNoise(), 1D, 1); - CNG noise = new CNG(new RNG(1L), source, 1D, 1).scale(7D).bake().fractureWith(fracture, 12D); - - assertEquals(source.noise(3D), noise.noiseFast1D(3D), EPSILON); - assertEquals(source.noise(3D, 7D), noise.noiseFast2D(3D, 7D), EPSILON); - assertEquals(source.noiseSigned(3D, 7D), noise.noiseFastSigned2D(3D, 7D), EPSILON); - assertEquals(source.noise(3D, 5D, 7D), noise.noiseFast3D(3D, 5D, 7D), EPSILON); - assertEquals(source.noiseSigned(3D, 5D, 7D), noise.noiseFastSigned3D(3D, 5D, 7D), EPSILON); - } - - @Test - public void fractureSamplesAndDisplacesTheRequestedDimensions() { - CoordinateNoise source = new CoordinateNoise(); - CoordinateNoise fractureSource = new CoordinateNoise(); - CNG fracture = new CNG(new RNG(2L), fractureSource, 1D, 1); - CNG noise = new CNG(new RNG(1L), source, 0.7D, 1).scale(0.35D).fractureWith(fracture, 12D); - double x = -13.25D; - double y = 5.5D; - double z = 37.75D; - double displaced1D = x + (fractureSource.noise(x) - 0.5D) * 12D; - double displacedX2D = x + (fractureSource.noise(x, z) - 0.5D) * 12D; - double displacedZ2D = z + (fractureSource.noise(z, x) - 0.5D) * 12D; - double displacedX3D = x + (fractureSource.noise(x, y, z) - 0.5D) * 12D; - double displacedY3D = y + (fractureSource.noise(y, x) - 0.5D) * 12D; - double displacedZ3D = z + (fractureSource.noise(z, x, y) - 0.5D) * 12D; - double expected1D = source.noise(displaced1D * 0.35D) * 0.7D; - double expected2D = source.noise(displacedX2D * 0.35D, displacedZ2D * 0.35D) * 0.7D; - double expected3D = source.noise(displacedX3D * 0.35D, displacedY3D * 0.35D, displacedZ3D * 0.35D) * 0.7D; - - assertEquals(expected1D, noise.noiseFast1D(x), EPSILON); - assertEquals(expected1D, noise.noise(new double[]{x}), EPSILON); - assertEquals(expected2D, noise.noiseFast2D(x, z), EPSILON); - assertEquals(expected2D, noise.noise(new double[]{x, z}), EPSILON); - assertEquals(expected2D * 2D - 1D, noise.noiseFastSigned2D(x, z), EPSILON); - assertEquals(expected3D, noise.noiseFast3D(x, y, z), EPSILON); - assertEquals(expected3D, noise.noise(new double[]{x, y, z}), EPSILON); - assertEquals(expected3D * 2D - 1D, noise.noiseFastSigned3D(x, y, z), EPSILON); - } - - @Test - public void offsetsPreserveTheNativeCoordinatePlane() { - long seed = 75L; - RNG random = new RNG(seed); - double offsetX = random.nextInt(Short.MIN_VALUE, Short.MAX_VALUE); - double offsetZ = random.nextInt(Short.MIN_VALUE, Short.MAX_VALUE); - CoordinateNoise source = new CoordinateNoise(); - CNG noise = new CNG(new RNG(9L), source.offset(seed), 1D, 1); - - assertEquals(source.noise(3D + offsetX), noise.noise(3D), EPSILON); - assertEquals(source.noise(3D + offsetX, 7D + offsetZ), noise.noise(3D, 7D), EPSILON); - assertEquals(source.noiseSigned(3D + offsetX, 7D + offsetZ), noise.noiseFastSigned2D(3D, 7D), EPSILON); - assertEquals(source.noise(3D + offsetX, 5D, 7D + offsetZ), noise.noise(3D, 5D, 7D), EPSILON); - } - - @Test - public void zoomResizesSharedFracturesAndChildrenOnce() { - CNG shared = new CNG(new RNG(71L), new CoordinateNoise(), 1D, 1).scale(0.7D); - CNG noise = new CNG(new RNG(73L), new CoordinateNoise(), 1D, 1) - .scale(0.8D).fractureWith(shared, 3D).child(shared); - double one = noise.noise(7D); - double two = noise.noise(7D, -11D); - double three = noise.noise(7D, 17D, -11D); - noise.zoom(2D); - assertEquals(one, noise.noise(14D), EPSILON); - assertEquals(two, noise.noise(14D, -22D), EPSILON); - assertEquals(three, noise.noise(14D, 34D, -22D), EPSILON); - assertEquals(two * 2D - 1D, noise.noiseFastSigned2D(14D, -22D), EPSILON); - assertEquals(three * 2D - 1D, noise.noiseFastSigned3D(14D, 34D, -22D), EPSILON); - } - - @Test - public void zoomInvalidatesBakedAndSignedSamples() { - CoordinateNoise source = new CoordinateNoise(); - CNG noise = new CNG(new RNG(31L), source, 1D, 1); - noise.cached(4, "zoom", temporaryFolder.getRoot(), true); - noise.noiseFastSigned2D(2D, 2D); - noise.zoom(2D); - assertEquals(source.noise(1D, 1D), noise.noise(2D, 2D), EPSILON); - assertEquals(source.noiseSigned(1D, 1D), noise.noiseFastSigned2D(2D, 2D), EPSILON); - for (double factor : new double[]{0D, -1D, Double.NaN, Double.POSITIVE_INFINITY, Double.MIN_VALUE}) { - assertThrows(IllegalArgumentException.class, () -> noise.zoom(factor)); - } - } - - @Test - public void cachedIntegerAndUncachedFractionalSamplesUseTheSamePlane() { - CoordinateNoise source = new CoordinateNoise(); - CNG noise = new CNG(new RNG(15L), source, 1D, 1); - noise.noiseFastSigned2D(1D, 2D); - noise.cached(4, "dimensions", temporaryFolder.getRoot(), true); - double cached = (float) source.noise(1D, 2D); - - assertEquals(cached, noise.noise(1D, 2D), 0D); - assertEquals(cached, noise.noiseFast2D(1D, 2D), 0D); - assertEquals(cached, noise.noise(new double[]{1D, 2D}), 0D); - assertEquals(cached * 2D - 1D, noise.noiseFastSigned2D(1D, 2D), 0D); - assertEquals(source.noise(1.25D, 2.5D), noise.noiseFast2D(1.25D, 2.5D), EPSILON); - assertEquals(source.noise(1D), noise.noise(1D), EPSILON); - assertEquals(source.noise(1D, 3D, 2D), noise.noise(1D, 3D, 2D), EPSILON); - - noise.scale(0.5D); - assertEquals(source.noise(0.5D, 1D), noise.noiseFast2D(1D, 2D), EPSILON); - assertEquals(source.noiseSigned(0.5D, 1D), noise.noiseFastSigned2D(1D, 2D), EPSILON); - } - - @Test - public void cachedNoiseDoesNotMirrorOrRepeatOutsideItsBakedArea() { - CNG uncached = new CNG(new RNG(15L), new CoordinateNoise(), 1D, 1); - CNG cached = new CNG(new RNG(15L), new CoordinateNoise(), 1D, 1); - cached.cached(4, "bounded-dimensions", temporaryFolder.getRoot(), true); - double[] coordinates = {-8D, -4D, -1D, -0.25D, 0D, 0.25D, 3D, 3.75D, 4D, 4.25D, 8D, 29_999_999D}; - - for (double x : coordinates) { - assertEquals(uncached.noise(x), cached.noise(x), 0D); - assertEquals(uncached.noiseFast1D(x), cached.noiseFast1D(x), 0D); - assertEquals(uncached.noise(new double[]{x}), cached.noise(new double[]{x}), 0D); - - for (double z : coordinates) { - double expected = uncached.noise(x, z); - if (x >= 0D && x < 4D && z >= 0D && z < 4D && x == (int) x && z == (int) z) { - expected = (float) expected; - } - - assertEquals(expected, cached.noise(x, z), 0D); - assertEquals(expected, cached.noiseFast2D(x, z), 0D); - assertEquals(expected, cached.noise(new double[]{x, z}), 0D); - assertEquals(expected * 2D - 1D, cached.noiseFastSigned2D(x, z), EPSILON); - assertEquals(uncached.noise(x, 5D, z), cached.noise(x, 5D, z), 0D); - assertEquals(uncached.noiseFast3D(x, 5D, z), cached.noiseFast3D(x, 5D, z), 0D); - assertEquals(uncached.noiseFastSigned3D(x, 5D, z), cached.noiseFastSigned3D(x, 5D, z), 0D); - assertEquals(uncached.noise(new double[]{x, 5D, z}), cached.noise(new double[]{x, 5D, z}), 0D); - } - } - } - - @Test - public void octaveChangesReachNestedOffsetsAndInvalidateSignedSamples() { - OctaveCoordinateNoise source = new OctaveCoordinateNoise(); - OffsetNoiseGenerator offset = source.offset(6L).offset(9L); - CNG noise = new CNG(new RNG(77L), offset, 1D, 3); - - assertEquals(3, source.octaves); - double previous2D = noise.noiseFastSigned2D(3D, 7D); - double previous3D = noise.noiseFastSigned3D(3D, 5D, 7D); - noise.oct(5); - - assertEquals(5, source.octaves); - assertEquals(offset.noiseSigned(3D, 7D), noise.noiseFastSigned2D(3D, 7D), EPSILON); - assertEquals(offset.noiseSigned(3D, 5D, 7D), noise.noiseFastSigned3D(3D, 5D, 7D), EPSILON); - assertNotEquals(previous2D, noise.noiseFastSigned2D(3D, 7D), EPSILON); - assertNotEquals(previous3D, noise.noiseFastSigned3D(3D, 5D, 7D), EPSILON); - } - - @Test - public void transformChangesInvalidateSignedSamples() { - CNG noise = new CNG(new RNG(34L), new CoordinateNoise(), 1D, 1); - double previous2D = noise.noiseFastSigned2D(3D, 7D); - double previous3D = noise.noiseFastSigned3D(3D, 5D, 7D); - noise.up(0.125D); - - assertEquals(previous2D + 0.25D, noise.noiseFastSigned2D(3D, 7D), EPSILON); - assertEquals(previous3D + 0.25D, noise.noiseFastSigned3D(3D, 5D, 7D), EPSILON); - } - - @Test - public void invalidDimensionCountsFailExplicitly() { - CNG noise = new CNG(new RNG(9L), new CoordinateNoise(), 1D, 1); - - assertThrows(IllegalArgumentException.class, () -> noise.noise(new double[0])); - assertThrows(IllegalArgumentException.class, () -> noise.noise(new double[]{1D, 2D, 3D, 4D})); - } - - private static class CoordinateNoise implements NoiseGenerator { - @Override - public double noise(double x) { - return 0.125D + x * 0.001D; - } - - @Override - public double noise(double x, double z) { - return 0.25D + x * 0.001D + z * 0.002D; - } - - @Override - public double noise(double x, double y, double z) { - return 0.5D + x * 0.001D + y * 0.002D + z * 0.003D; - } - } - - private static final class OctaveCoordinateNoise extends CoordinateNoise implements OctaveNoise { - private int octaves; - - @Override - public double noise(double x, double z) { - return super.noise(x, z) / octaves; - } - - @Override - public double noise(double x, double y, double z) { - return super.noise(x, y, z) / octaves; - } - - @Override - public void setOctaves(int octaves) { - this.octaves = octaves; - } - } -} diff --git a/core/src/test/java/art/arcane/iris/util/project/noise/CNGFastPathParityTest.java b/core/src/test/java/art/arcane/iris/util/project/noise/CNGFastPathParityTest.java deleted file mode 100644 index 3c80e4a0b..000000000 --- a/core/src/test/java/art/arcane/iris/util/project/noise/CNGFastPathParityTest.java +++ /dev/null @@ -1,148 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import art.arcane.volmlib.util.math.RNG; -import org.junit.Test; - -import java.util.ArrayList; -import java.util.List; - -import static org.junit.Assert.assertEquals; - -public class CNGFastPathParityTest { - @Test - public void identityFastPathMatchesLegacyAcrossSeedAndCoordinateGrid() { - for (long seed = 3L; seed <= 11L; seed++) { - CNG generator = createIdentityGenerator(seed); - assertFastPathParity("identity-seed-" + seed, generator); - } - } - - @Test - public void transformedGeneratorsMatchLegacyAcrossSeedAndCoordinateGrid() { - for (long seed = 21L; seed <= 27L; seed++) { - List generators = createTransformedGenerators(seed); - for (int index = 0; index < generators.size(); index++) { - assertFastPathParity("transformed-seed-" + seed + "-case-" + index, generators.get(index)); - } - } - } - - @Test - public void signedFastPathMatchesLegacyAcrossRepresentativeGenerators() { - for (long seed = 31L; seed <= 35L; seed++) { - List generators = createSignedGenerators(seed); - for (int index = 0; index < generators.size(); index++) { - assertSignedFastPathParity("signed-seed-" + seed + "-case-" + index, generators.get(index)); - } - } - } - - private void assertFastPathParity(String label, CNG generator) { - for (int x = -320; x <= 320; x += 19) { - for (int z = -320; z <= 320; z += 23) { - double expected = generator.noise(x, z); - double actual = generator.noiseFast2D(x, z); - assertEquals(label + " 2D x=" + x + " z=" + z, expected, actual, 1.0E-12D); - } - } - - for (int x = -128; x <= 128; x += 17) { - for (int y = -96; y <= 96; y += 13) { - for (int z = -128; z <= 128; z += 19) { - double expected = generator.noise(x, y, z); - double actual = generator.noiseFast3D(x, y, z); - assertEquals(label + " 3D x=" + x + " y=" + y + " z=" + z, expected, actual, 1.0E-12D); - } - } - } - } - - private void assertSignedFastPathParity(String label, CNG generator) { - for (int x = -320; x <= 320; x += 19) { - for (int z = -320; z <= 320; z += 23) { - double expected = (generator.noiseFast2D(x, z) * 2D) - 1D; - double actual = generator.noiseFastSigned2D(x, z); - assertEquals(label + " signed-2D x=" + x + " z=" + z, expected, actual, 1.0E-12D); - } - } - - for (int x = -128; x <= 128; x += 17) { - for (int y = -96; y <= 96; y += 13) { - for (int z = -128; z <= 128; z += 19) { - double expected = (generator.noiseFast3D(x, y, z) * 2D) - 1D; - double actual = generator.noiseFastSigned3D(x, y, z); - assertEquals(label + " signed-3D x=" + x + " y=" + y + " z=" + z, expected, actual, 1.0E-12D); - } - } - } - } - - private CNG createIdentityGenerator(long seed) { - DeterministicNoiseGenerator generator = new DeterministicNoiseGenerator(0.31D + (seed * 0.01D)); - return new CNG(new RNG(seed), generator, 1D, 1).bake(); - } - - private List createTransformedGenerators(long seed) { - List generators = new ArrayList<>(); - - CNG powerTransformed = createIdentityGenerator(seed).pow(1.27D); - generators.add(powerTransformed); - - CNG offsetTransformed = createIdentityGenerator(seed + 1L).up(0.08D).down(0.03D).patch(0.91D); - generators.add(offsetTransformed); - - CNG fractured = createIdentityGenerator(seed + 2L).fractureWith(createIdentityGenerator(seed + 300L), 12.5D); - generators.add(fractured); - - CNG withChildren = createIdentityGenerator(seed + 3L); - withChildren.child(createIdentityGenerator(seed + 400L)); - withChildren.child(createIdentityGenerator(seed + 401L)); - generators.add(withChildren); - - return generators; - } - - private List createSignedGenerators(long seed) { - List generators = new ArrayList<>(); - - generators.add(new CNG(new RNG(seed), new SimplexNoise(seed + 100L), 1D, 1).bake()); - generators.add(new CNG(new RNG(seed + 1L), new FractalFBMSimplexNoise(seed + 101L), 1D, 1).bake()); - generators.add(new CNG(new RNG(seed + 2L), new VascularNoise(seed + 102L), 1D, 1).bake()); - generators.add(new CNG(new RNG(seed + 3L), new OffsetNoiseGenerator(new SimplexNoise(seed + 103L), seed + 104L), 1D, 1).bake()); - generators.add(new CNG(new RNG(seed + 4L), new OffsetNoiseGenerator(new PerlinNoise(seed + 107L), seed + 108L), 1D, 1).bake()); - generators.add(new CNG(new RNG(seed + 5L), new OffsetNoiseGenerator(new VascularNoise(seed + 109L), seed + 110L), 1D, 1).bake()); - generators.add(new CNG(new RNG(seed + 6L), new OffsetNoiseGenerator(new FractalFBMSimplexNoise(seed + 111L), seed + 112L), 1D, 1).bake()); - - CNG fractured = new CNG(new RNG(seed + 7L), new OffsetNoiseGenerator(new FractalFBMSimplexNoise(seed + 105L), seed + 106L), 1D, 1).bake(); - fractured.fractureWith(createIdentityGenerator(seed + 500L), 9.5D); - generators.add(fractured); - - return generators; - } - - private static class DeterministicNoiseGenerator implements NoiseGenerator { - private final double offset; - - private DeterministicNoiseGenerator(double offset) { - this.offset = offset; - } - - @Override - public double noise(double x) { - double angle = (x * 0.011D) + offset; - return 0.2D + (((Math.sin(angle) + 1D) * 0.5D) * 0.6D); - } - - @Override - public double noise(double x, double z) { - double angle = (x * 0.013D) + (z * 0.017D) + offset; - return 0.2D + (((Math.sin(angle) + 1D) * 0.5D) * 0.6D); - } - - @Override - public double noise(double x, double y, double z) { - double angle = (x * 0.007D) + (y * 0.015D) + (z * 0.019D) + offset; - return 0.2D + (((Math.sin(angle) + 1D) * 0.5D) * 0.6D); - } - } -} diff --git a/core/src/test/java/art/arcane/iris/util/project/noise/CNGInjectorParityTest.java b/core/src/test/java/art/arcane/iris/util/project/noise/CNGInjectorParityTest.java deleted file mode 100644 index c3fb42c2e..000000000 --- a/core/src/test/java/art/arcane/iris/util/project/noise/CNGInjectorParityTest.java +++ /dev/null @@ -1,188 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import art.arcane.iris.testsupport.BukkitTestServer; -import art.arcane.volmlib.util.function.NoiseInjector; -import art.arcane.volmlib.util.math.RNG; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.util.ArrayList; -import java.util.List; - -import static org.junit.Assert.assertEquals; - -public class CNGInjectorParityTest { - @BeforeClass - public static void setupBukkit() { - BukkitTestServer.install(); - } - - @Test - public void builtInInjectorsMatchLegacyCombineFor1D() { - List injectors = builtInInjectors(); - for (NoiseInjector injector : injectors) { - CompositeFixture fixture = createFixture(injector); - for (int x = -300; x <= 300; x += 17) { - double expected = legacyCombined1D(fixture, x); - double actual = fixture.root.noise(x); - assertEquals("injector=" + injector + " x=" + x, expected, actual, 1.0E-12D); - } - } - } - - @Test - public void builtInInjectorsMatchLegacyCombineFor2D() { - List injectors = builtInInjectors(); - for (NoiseInjector injector : injectors) { - CompositeFixture fixture = createFixture(injector); - for (int x = -160; x <= 160; x += 19) { - for (int z = -160; z <= 160; z += 23) { - double expected = legacyCombined2D(fixture, x, z); - double actual = fixture.root.noise(x, z); - assertEquals("injector=" + injector + " x=" + x + " z=" + z, expected, actual, 1.0E-12D); - } - } - } - } - - @Test - public void builtInInjectorsMatchLegacyCombineFor3D() { - List injectors = builtInInjectors(); - for (NoiseInjector injector : injectors) { - CompositeFixture fixture = createFixture(injector); - for (int x = -64; x <= 64; x += 11) { - for (int y = -32; y <= 32; y += 13) { - for (int z = -64; z <= 64; z += 17) { - double expected = legacyCombined3D(fixture, x, y, z); - double actual = fixture.root.noise(x, y, z); - assertEquals("injector=" + injector + " x=" + x + " y=" + y + " z=" + z, expected, actual, 1.0E-12D); - } - } - } - } - } - - private CompositeFixture createFixture(NoiseInjector injector) { - DeterministicNoiseGenerator rootGenerator = new DeterministicNoiseGenerator(0.17D); - DeterministicNoiseGenerator childGeneratorA = new DeterministicNoiseGenerator(0.43D); - DeterministicNoiseGenerator childGeneratorB = new DeterministicNoiseGenerator(0.79D); - - CNG childA = new CNG(new RNG(11L), childGeneratorA, 1.0D, 1).bake(); - CNG childB = new CNG(new RNG(12L), childGeneratorB, 1.0D, 1).bake(); - - CNG root = new CNG(new RNG(9L), rootGenerator, 1.0D, 1).bake(); - root.child(childA); - root.child(childB); - root.injectWith(injector); - - return new CompositeFixture(root, rootGenerator, childA, childB, injector); - } - - private List builtInInjectors() { - List injectors = new ArrayList<>(); - injectors.add(CNG.ADD); - injectors.add(CNG.SRC_SUBTRACT); - injectors.add(CNG.DST_SUBTRACT); - injectors.add(CNG.MULTIPLY); - injectors.add(CNG.MAX); - injectors.add(CNG.MIN); - injectors.add(CNG.SRC_MOD); - injectors.add(CNG.SRC_POW); - injectors.add(CNG.DST_MOD); - injectors.add(CNG.DST_POW); - return injectors; - } - - private double legacyCombined1D(CompositeFixture fixture, double x) { - double n = fixture.rootGenerator.noise(x); - double m = 1D; - - double valueA = fixture.childA.noise(x); - double[] combinedA = fixture.injector.combine(n, valueA); - n = combinedA[0]; - m += combinedA[1]; - - double valueB = fixture.childB.noise(x); - double[] combinedB = fixture.injector.combine(n, valueB); - n = combinedB[0]; - m += combinedB[1]; - - return n / m; - } - - private double legacyCombined2D(CompositeFixture fixture, double x, double z) { - double n = fixture.rootGenerator.noise(x, z); - double m = 1D; - - double valueA = fixture.childA.noise(x, z); - double[] combinedA = fixture.injector.combine(n, valueA); - n = combinedA[0]; - m += combinedA[1]; - - double valueB = fixture.childB.noise(x, z); - double[] combinedB = fixture.injector.combine(n, valueB); - n = combinedB[0]; - m += combinedB[1]; - - return n / m; - } - - private double legacyCombined3D(CompositeFixture fixture, double x, double y, double z) { - double n = fixture.rootGenerator.noise(x, y, z); - double m = 1D; - - double valueA = fixture.childA.noise(x, y, z); - double[] combinedA = fixture.injector.combine(n, valueA); - n = combinedA[0]; - m += combinedA[1]; - - double valueB = fixture.childB.noise(x, y, z); - double[] combinedB = fixture.injector.combine(n, valueB); - n = combinedB[0]; - m += combinedB[1]; - - return n / m; - } - - private static class CompositeFixture { - private final CNG root; - private final DeterministicNoiseGenerator rootGenerator; - private final CNG childA; - private final CNG childB; - private final NoiseInjector injector; - - private CompositeFixture(CNG root, DeterministicNoiseGenerator rootGenerator, CNG childA, CNG childB, NoiseInjector injector) { - this.root = root; - this.rootGenerator = rootGenerator; - this.childA = childA; - this.childB = childB; - this.injector = injector; - } - } - - private static class DeterministicNoiseGenerator implements NoiseGenerator { - private final double offset; - - private DeterministicNoiseGenerator(double offset) { - this.offset = offset; - } - - @Override - public double noise(double x) { - double angle = (x * 0.013D) + offset; - return 0.2D + (((Math.sin(angle) + 1D) * 0.5D) * 0.6D); - } - - @Override - public double noise(double x, double z) { - double angle = (x * 0.011D) + (z * 0.017D) + offset; - return 0.2D + (((Math.sin(angle) + 1D) * 0.5D) * 0.6D); - } - - @Override - public double noise(double x, double y, double z) { - double angle = (x * 0.007D) + (y * 0.013D) + (z * 0.019D) + offset; - return 0.2D + (((Math.sin(angle) + 1D) * 0.5D) * 0.6D); - } - } -} diff --git a/core/src/test/java/art/arcane/iris/util/project/noise/CNGSignedStateMutationTest.java b/core/src/test/java/art/arcane/iris/util/project/noise/CNGSignedStateMutationTest.java deleted file mode 100644 index caccf7772..000000000 --- a/core/src/test/java/art/arcane/iris/util/project/noise/CNGSignedStateMutationTest.java +++ /dev/null @@ -1,176 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import art.arcane.volmlib.util.math.RNG; -import org.junit.Test; - -import java.util.List; -import java.util.function.Consumer; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertThrows; - -public class CNGSignedStateMutationTest { - private static final double EPSILON = 1.0E-12D; - - @Test - public void eachTransformRefreshesPreviouslyCachedCoordinates() { - List> mutations = List.of( - noise -> noise.scale(0.375D), - noise -> noise.scale(0.5D).bake().scale(0.75D), - noise -> noise.zoom(2D), - noise -> noise.oct(3), - noise -> noise.up(0.125D), - noise -> noise.down(0.125D), - noise -> noise.patch(0.75D), - noise -> noise.pow(1.25D), - noise -> noise.fractureWith(simplex(13L), 4D), - noise -> noise.child(simplex(17L)).injectWith(CNG.MULTIPLY)); - for (Consumer mutation : mutations) { - CNG sampled = simplex(11L); - sampled.noiseFastSigned2D(4D, 8D); - sampled.noiseFastSigned3D(4D, 6D, 8D); - mutation.accept(sampled); - CNG expected = simplex(11L); - mutation.accept(expected); - assertEquals((expected.noiseFast2D(4D, 8D) * 2D) - 1D, - sampled.noiseFastSigned2D(4D, 8D), EPSILON); - assertEquals((expected.noiseFast3D(4D, 6D, 8D) * 2D) - 1D, - sampled.noiseFastSigned3D(4D, 6D, 8D), EPSILON); - } - } - - @Test - public void generatorCallbackMutationInvalidatesOnlySubsequentSamples() { - for (boolean threeDimensions : new boolean[]{false, true}) { - RecordingNoise source = new RecordingNoise(); - CNG noise = new CNG(new RNG(11L), source, 1D, 1); - source.onSample = () -> noise.scale(0.5D); - assertEquals(value(threeDimensions, 4D, 6D, 8D), sample(noise, threeDimensions), 0D); - assertEquals(value(threeDimensions, 2D, 3D, 4D), sample(noise, threeDimensions), 0D); - assertEquals(value(threeDimensions, 2D, 3D, 4D), sample(noise, threeDimensions), 0D); - assertEquals(2, source.calls); - } - } - - @Test - public void nestedFractureOverridesRetainParentAndChildMutationBoundaries() { - for (boolean threeDimensions : new boolean[]{false, true}) { - RecordingNoise source = new RecordingNoise(); - CNG parent = new CNG(new RNG(11L), source, 1D, 1); - RecordingNoise fractureSource = new RecordingNoise(); - MutatingFracture fracture = new MutatingFracture(fractureSource); - fracture.beforeSample = () -> { - parent.scale(0.5D); - fracture.scale(0.25D); - }; - parent.fractureWith(fracture, 8D); - double shiftedX = 4D + value(threeDimensions, 1D, 1.5D, 2D) * 4D; - double shiftedY = 6D + value(false, 1.5D, 0D, 1D) * 4D; - double shiftedZ = 8D + (threeDimensions - ? value(true, 2D, 1D, 1.5D) : value(false, 2D, 0D, 1D)) * 4D; - assertEquals(value(threeDimensions, shiftedX, shiftedY, shiftedZ), sample(parent, threeDimensions), 0D); - assertEquals(value(threeDimensions, shiftedX * 0.5D, shiftedY * 0.5D, shiftedZ * 0.5D), - sample(parent, threeDimensions), 0D); - assertEquals(2, source.calls); - } - } - - @Test - public void callbackFailureRetainsItsMutationAndDoesNotPublishASample() { - for (boolean threeDimensions : new boolean[]{false, true}) { - RecordingNoise source = new RecordingNoise(); - CNG noise = new CNG(new RNG(11L), source, 1D, 1); - IllegalStateException failure = new IllegalStateException("sample failed"); - source.onSample = () -> { - noise.scale(0.25D); - throw failure; - }; - assertSame(failure, assertThrows(IllegalStateException.class, () -> sample(noise, threeDimensions))); - assertEquals(value(threeDimensions, 1D, 1.5D, 2D), sample(noise, threeDimensions), 0D); - assertEquals(value(threeDimensions, 1D, 1.5D, 2D), sample(noise, threeDimensions), 0D); - assertEquals(2, source.calls); - } - } - - private static CNG simplex(long seed) { - return new CNG(new RNG(seed), new SimplexNoise(seed), 0.75D, 1); - } - - private static double sample(CNG noise, boolean threeDimensions) { - return threeDimensions ? noise.noiseFastSigned3D(4D, 6D, 8D) : noise.noiseFastSigned2D(4D, 8D); - } - - private static double value(boolean threeDimensions, double x, double y, double z) { - return threeDimensions ? x * 0.01D + y * 0.02D + z * 0.03D : x * 0.01D + z * 0.02D; - } - - private static final class RecordingNoise implements NoiseGenerator { - private Runnable onSample; - private int calls; - - @Override - public double noise(double x) { - return noise(x, 0D); - } - - @Override - public double noise(double x, double z) { - return (noiseSigned(x, z) + 1D) * 0.5D; - } - - @Override - public double noise(double x, double y, double z) { - return (noiseSigned(x, y, z) + 1D) * 0.5D; - } - - @Override - public double noiseSigned(double x, double z) { - sampled(); - return value(false, x, 0D, z); - } - - @Override - public double noiseSigned(double x, double y, double z) { - sampled(); - return value(true, x, y, z); - } - - private void sampled() { - calls++; - Runnable action = onSample; - onSample = null; - if (action != null) { - action.run(); - } - } - } - - private static final class MutatingFracture extends CNG { - private Runnable beforeSample; - - private MutatingFracture(NoiseGenerator source) { - super(new RNG(13L), source, 1D, 1); - } - - @Override - public double noiseFastSigned2D(double x, double z) { - mutate(); - return super.noiseFastSigned2D(x, z); - } - - @Override - public double noiseFastSigned3D(double x, double y, double z) { - mutate(); - return super.noiseFastSigned3D(x, y, z); - } - - private void mutate() { - Runnable action = beforeSample; - beforeSample = null; - if (action != null) { - action.run(); - } - } - } -} diff --git a/core/src/test/java/art/arcane/iris/util/project/noise/CellularNoisePrecisionTest.java b/core/src/test/java/art/arcane/iris/util/project/noise/CellularNoisePrecisionTest.java deleted file mode 100644 index bad6c1c0b..000000000 --- a/core/src/test/java/art/arcane/iris/util/project/noise/CellularNoisePrecisionTest.java +++ /dev/null @@ -1,57 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import org.junit.Test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class CellularNoisePrecisionTest { - @Test - public void distantCellBoundariesRetainSubFloatCoordinatePrecision() { - for (double origin : new double[]{-29_999_000D, 29_998_000D}) { - CellularNoise noise = new CellularNoise(1337L); - for (int dimensions = 1; dimensions <= 3; dimensions++) { - double previousCoordinate = origin; - double previousValue = sample(noise, dimensions, origin); - boolean preciseBoundary = false; - for (int step = 1; step <= 8192; step++) { - double coordinate = origin + step * 0.125D; - double value = sample(noise, dimensions, coordinate); - if (Float.floatToRawIntBits((float) coordinate) - == Float.floatToRawIntBits((float) previousCoordinate) - && value != previousValue) { - preciseBoundary = true; - break; - } - previousCoordinate = coordinate; - previousValue = value; - } - assertTrue("Missing precise cell boundary at " + origin + " in " + dimensions + "D", preciseBoundary); - } - } - } - - @Test - public void distantSamplesAreBoundedAndRepeatableAcrossSeeds() { - for (long seed : new long[]{0L, -1L, Long.MIN_VALUE, Long.MAX_VALUE}) { - CellularNoise first = new CellularNoise(seed); - CellularNoise second = new CellularNoise(seed); - for (int dimensions = 1; dimensions <= 3; dimensions++) { - for (int step = -256; step <= 256; step++) { - double coordinate = Math.copySign(29_999_000D, step) + step * 0.125D; - double value = sample(first, dimensions, coordinate); - assertTrue(Double.isFinite(value) && value >= 0D && value <= 1D); - assertEquals(value, sample(second, dimensions, coordinate), 0D); - } - } - } - } - - private static double sample(CellularNoise noise, int dimensions, double coordinate) { - return switch (dimensions) { - case 1 -> noise.noise(coordinate); - case 2 -> noise.noise(coordinate, -29_998_713.375D); - default -> noise.noise(coordinate, 73.375D, 29_998_713.375D); - }; - } -} diff --git a/core/src/test/java/art/arcane/iris/util/project/noise/ChladniNoiseTest.java b/core/src/test/java/art/arcane/iris/util/project/noise/ChladniNoiseTest.java deleted file mode 100644 index ac45b977f..000000000 --- a/core/src/test/java/art/arcane/iris/util/project/noise/ChladniNoiseTest.java +++ /dev/null @@ -1,69 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import org.junit.Test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class ChladniNoiseTest { - @Test - public void horizontalPlateHasMirroredNodalLinesAndDarkAntinodes() { - for (long seed : new long[]{0L, 1337L, Long.MIN_VALUE}) { - ChladniNoise noise = new ChladniNoise(seed); - double minimum = 1D; - for (int index = 0; index < 256; index++) { - double x = index * 0.031D - 4D; - double z = index * -0.047D + 3D; - assertEquals(1D, noise.noise(x, x), 0D); - assertEquals(noise.noise(x, z), noise.noise(z, x), 1.0E-12D); - minimum = Math.min(minimum, noise.noise(x, z)); - } - assertTrue(minimum < 0.01D); - } - } - - @Test - public void standingModesChangeContinuouslyWithHeight() { - ChladniNoise noise = new ChladniNoise(1337L); - double variation = 0D; - for (int index = 0; index < 512; index++) { - double x = index * 0.019D - 5D; - double z = index * -0.023D + 3D; - assertEquals(noise.noise(x, z), noise.noise(x, 0D, z), 0D); - for (double y : new double[]{-2D, 0D, 1D, 468750D}) { - assertEquals(noise.noise(x, y - 1.0E-8D, z), - noise.noise(x, y + 1.0E-8D, z), 1.0E-5D); - } - variation += Math.abs(noise.noise(x, z) - noise.noise(x, 0.7D, z)); - } - assertTrue(variation > 20D); - } - - @Test - public void upperSeedBitsChangeThePlate() { - ChladniNoise first = new ChladniNoise(1337L); - ChladniNoise second = new ChladniNoise(1337L + (1L << 32)); - double variation = 0D; - for (int index = 0; index < 256; index++) { - variation += Math.abs(first.noise(index * 0.019D) - second.noise(index * 0.019D)); - } - assertTrue(variation > 10D); - } - - @Test - public void octaveSamplesStayBoundedAndRepeatableAtWorldBorders() { - ChladniNoise first = new ChladniNoise(Long.MAX_VALUE); - ChladniNoise second = new ChladniNoise(Long.MAX_VALUE); - for (int octaves : new int[]{1, 3, 16}) { - first.setOctaves(octaves); - second.setOctaves(octaves); - for (int index = 0; index < 128; index++) { - double x = -468750D + index * (937500D / 127D); - double value = first.noise(x, x * 0.37D, x * -0.71D); - assertTrue(Double.isFinite(value)); - assertTrue(value >= 0D && value <= 1D); - assertEquals(value, second.noise(x, x * 0.37D, x * -0.71D), 0D); - } - } - } -} diff --git a/core/src/test/java/art/arcane/iris/util/project/noise/CircuitNoiseTest.java b/core/src/test/java/art/arcane/iris/util/project/noise/CircuitNoiseTest.java deleted file mode 100644 index b7ba068dc..000000000 --- a/core/src/test/java/art/arcane/iris/util/project/noise/CircuitNoiseTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import org.junit.Test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class CircuitNoiseTest { - @Test - public void tracksMeetAtTilePortsWithoutBoundaryJumps() { - CircuitNoise noise = new CircuitNoise(0L); - double maximum = 0D; - for (int boundary = -8; boundary <= 8; boundary++) { - for (int step = 0; step < 256; step++) { - double z = step * 0.019D - 2D; - assertEquals(noise.noise(boundary - 1E-8D, z), noise.noise(boundary + 1E-8D, z), 1E-5D); - maximum = Math.max(maximum, noise.noise(boundary, z)); - } - } - assertTrue(maximum > 0.99D); - } - - @Test - public void circuitHasOpenBoardTracesAndIntermediateEdges() { - CircuitNoise noise = new CircuitNoise(1337L); - int open = 0; - int trace = 0; - int edge = 0; - for (int x = 0; x < 256; x++) { - for (int z = 0; z < 256; z++) { - double value = noise.noise(x / 64D, z / 64D); - if (value == 0D) { - open++; - } else if (value > 0.8D) { - trace++; - } else { - edge++; - } - } - } - assertTrue(open > 32768); - assertTrue(trace > 1500); - assertTrue(edge > 1500); - } -} diff --git a/core/src/test/java/art/arcane/iris/util/project/noise/ClassicNoiseQualityTest.java b/core/src/test/java/art/arcane/iris/util/project/noise/ClassicNoiseQualityTest.java deleted file mode 100644 index f77d90bc6..000000000 --- a/core/src/test/java/art/arcane/iris/util/project/noise/ClassicNoiseQualityTest.java +++ /dev/null @@ -1,178 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import art.arcane.volmlib.util.math.RNG; -import org.junit.Test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertTrue; - -public class ClassicNoiseQualityTest { - private static final long SEED = 972453L; - - @Test - public void directCubicUsesConfiguredSeedInBothPrecisions() { - for (long seed : new long[]{1L, -23L, Long.MAX_VALUE}) { - FastNoiseDouble doubles = new FastNoiseDouble(seed); - doubles.setNoiseType(FastNoiseDouble.NoiseType.Cubic); - FastNoise floats = new FastNoise((int) seed); - floats.SetNoiseType(FastNoise.NoiseType.Cubic); - for (int x = -300; x <= 300; x += 37) { - double sampleX = x + 0.193D; - double sampleZ = x * 0.71D + 43.517D; - assertEquals(doubles.GetNoise(sampleX, sampleZ), doubles.GetCubic(sampleX, sampleZ), 0D); - assertEquals(floats.GetNoise((float) sampleX, (float) sampleZ), - floats.GetCubic((float) sampleX, (float) sampleZ), 0F); - } - } - CubicNoise first = new CubicNoise(SEED); - CubicNoise second = new CubicNoise(SEED + 1); - assertNotEquals(first.noise(37.219D), second.noise(37.219D), 1E-8D); - assertNotEquals(first.noise(37.219D, -91.713D), second.noise(37.219D, -91.713D), 1E-8D); - } - - @Test - public void perlinDefaultsToQuinticSmoothing() { - FastNoiseDouble source = new FastNoiseDouble(new RNG(SEED).lmax()); - source.setLongerp(FastNoiseDouble.Longerp.Qulongic); - source.setFractalType(FastNoiseDouble.FractalType.Billow); - source.setFractalOctaves(1); - PerlinNoise perlin = new PerlinNoise(SEED); - FractalBillowPerlinNoise billow = new FractalBillowPerlinNoise(SEED); - for (int x = -240; x <= 240; x += 17) { - double sampleX = x + 0.37D; - double sampleZ = x * 0.91D - 8.143D; - assertEquals(source.GetPerlin(sampleX, sampleZ), perlin.noiseSigned(sampleX, sampleZ), 0D); - assertEquals(source.GetPerlinFractal(sampleX, sampleZ) / 2D + 0.5D, - billow.noise(sampleX, sampleZ), 0D); - assertEquals(source.GetPerlin(sampleX, 63.21D, sampleZ), - perlin.noiseSigned(sampleX, 63.21D, sampleZ), 0D); - assertEquals(source.GetPerlinFractal(sampleX, 63.21D, sampleZ) / 2D + 0.5D, - billow.noise(sampleX, 63.21D, sampleZ), 0D); - } - } - - @Test - public void perlinSlopesRemainContinuousAcrossLatticeBoundaries() { - PerlinNoise noise = new PerlinNoise(SEED); - double step = 0.001D; - for (int x = -400; x <= 400; x += 100) { - double center = noise.noiseSigned(x, 37.219D, -91.713D); - double leftSlope = (center - noise.noiseSigned(x - step, 37.219D, -91.713D)) / step; - double rightSlope = (noise.noiseSigned(x + step, 37.219D, -91.713D) - center) / step; - assertEquals(leftSlope, rightSlope, 1E-8D); - } - } - - @Test - public void ridgedSimplexNormalizesTheActualOctaveRange() { - FractalRigidMultiSimplexNoise ridge = new FractalRigidMultiSimplexNoise(SEED); - FastNoiseDouble source = new FastNoiseDouble(new RNG(SEED).lmax()); - source.setFractalType(FastNoiseDouble.FractalType.RigidMulti); - for (int octaves : new int[]{1, 2, 4, 8, 16}) { - ridge.setOctaves(octaves); - source.setFractalOctaves(octaves); - double amplitudeSum = 2D - Math.scalb(1D, 1 - octaves); - assertEquals(0D, ridge.f(1D - amplitudeSum), 1E-15D); - assertEquals(1D, ridge.f(1D), 0D); - for (int x = -400; x <= 400; x += 11) { - double sampleX = x + 0.37D; - double sampleZ = x * 0.91D - 8.143D; - double value = ridge.noise(sampleX, sampleZ); - double raw = source.GetSimplexFractal(sampleX, sampleZ); - assertEquals((raw + amplitudeSum - 1D) / amplitudeSum, value, 1E-15D); - assertTrue(value >= 0D && value <= 1D); - assertEquals(value * 2D - 1D, ridge.noiseSigned(sampleX, sampleZ), 0D); - } - } - ridge.setOctaves(1); - assertEquals(1D - Math.abs(source.GetSimplex(37.219D, -91.713D)), - ridge.noise(37.219D, -91.713D), 0D); - } - - @Test - public void classicAndCellularFamiliesRemainBoundedAtWorldEdges() { - NoiseGenerator[] generators = { - new CubicNoise(SEED), new FractalCubicNoise(SEED), new FractalBillowPerlinNoise(SEED), - new FractalBillowSimplexNoise(SEED), new FractalFBMSimplexNoise(SEED), - new FractalRigidMultiSimplexNoise(SEED), new GlobNoise(SEED), new CellHeightNoise(SEED), - new VascularNoise(SEED), new CellularNoise(SEED) - }; - for (NoiseGenerator generator : generators) { - for (int octave : new int[]{1, 4, 16}) { - if (generator instanceof OctaveNoise fractal) { - fractal.setOctaves(octave); - } - for (double origin : new double[]{-30_000_000D, 0D, 30_000_000D}) { - for (int i = 0; i < 64; i++) { - double x = origin + i * 0.317D; - double z = -origin - i * 0.913D; - assertBounded(generator.noise(x)); - assertBounded(generator.noise(x, z)); - assertBounded(generator.noise(x, 71.917D, z)); - } - } - } - } - } - - @Test - public void cellularHeightAndVascularKeepComplementaryProfiles() { - CellHeightNoise height = new CellHeightNoise(SEED); - VascularNoise vascular = new VascularNoise(SEED); - for (int x = -300; x <= 300; x += 13) { - double sampleX = x + 0.91D; - double sampleZ = x * 0.31D - 7.193D; - assertEquals(1D, height.noise(sampleX, sampleZ) + vascular.noise(sampleX, sampleZ), 1E-15D); - assertEquals(1D, height.noise(sampleX, 87.137D, sampleZ) - + vascular.noise(sampleX, 87.137D, sampleZ), 1E-15D); - } - } - - @Test - public void vascularBrightensWhereCellDistancesConverge() { - FastNoiseDouble distance = new FastNoiseDouble(new RNG(SEED).lmax()); - distance.setCellularDistanceFunction(FastNoiseDouble.CellularDistanceFunction.Natural); - distance.setCellularReturnType(FastNoiseDouble.CellularReturnType.Distance2Sub); - CellHeightNoise height = new CellHeightNoise(SEED); - VascularNoise vascular = new VascularNoise(SEED); - int borderSamples = 0; - int interiorSamples = 0; - for (int x = -500; x <= 500; x++) { - double sampleX = x + 0.137D; - double sampleZ = x * 3.17D - 71.913D; - double separation = distance.GetCellular(sampleX, sampleZ) + 1D; - if (separation < 0.02D) { - assertTrue(vascular.noise(sampleX, sampleZ) > 0.99D); - assertTrue(height.noise(sampleX, sampleZ) < 0.01D); - borderSamples++; - } else if (separation > 1D) { - assertTrue(vascular.noise(sampleX, sampleZ) < 0.5D); - assertTrue(height.noise(sampleX, sampleZ) > 0.5D); - interiorSamples++; - } - assertEquals(vascular.noise(sampleX, sampleZ) * 2D - 1D, - vascular.noiseSigned(sampleX, sampleZ), 2E-16D); - } - assertTrue(borderSamples > 0); - assertTrue(interiorSamples > 0); - } - - @Test - public void fractalConstructorsStartAtOneOctave() { - NoiseGenerator[] generators = { - new FractalCubicNoise(SEED), new FractalFBMSimplexNoise(SEED), - new FractalBillowPerlinNoise(SEED), new FractalBillowSimplexNoise(SEED), - new FractalRigidMultiSimplexNoise(SEED) - }; - for (NoiseGenerator generator : generators) { - double initial = generator.noise(37.219D, -91.713D, 17.731D); - ((OctaveNoise) generator).setOctaves(1); - assertEquals(initial, generator.noise(37.219D, -91.713D, 17.731D), 0D); - } - } - - private void assertBounded(double value) { - assertTrue(Double.isFinite(value) && value >= 0D && value <= 1D); - } -} diff --git a/core/src/test/java/art/arcane/iris/util/project/noise/CloverNoiseBoundaryTest.java b/core/src/test/java/art/arcane/iris/util/project/noise/CloverNoiseBoundaryTest.java deleted file mode 100644 index a86e20dc6..000000000 --- a/core/src/test/java/art/arcane/iris/util/project/noise/CloverNoiseBoundaryTest.java +++ /dev/null @@ -1,46 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import org.junit.Test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class CloverNoiseBoundaryTest { - @Test - public void threeDimensionalNoiseRemainsContinuousAcrossZeroZ() { - for (long seed : new long[]{0L, 1337L, Long.MIN_VALUE}) { - CloverNoise noise = new CloverNoise(seed); - for (double x = -3.125D; x < 4D; x += 0.375D) { - double atZero = noise.noise(x, 0.417D, 0D); - assertEquals(atZero, noise.noise(x, 0.417D, -1E-7D), 1E-5D); - assertEquals(atZero, noise.noise(x, 0.417D, 1E-7D), 1E-5D); - } - } - } - - @Test(timeout = 5000) - public void fractalIterationsCannotDivideByZeroOrRunUnbounded() { - CloverNoise.Noise2D twoDimensional = new CloverNoise.Noise2D(1337L); - CloverNoise.Noise3D threeDimensional = new CloverNoise.Noise3D(1337L); - assertEquals(twoDimensional.noise(0.25D, -0.75D), - twoDimensional.fractalNoise(0.25D, -0.75D, 0), 0D); - assertEquals(threeDimensional.noise(0.25D, 0.5D, -0.75D), - threeDimensional.fractalNoise(0.25D, 0.5D, -0.75D, Integer.MIN_VALUE), 0D); - double bounded2D = twoDimensional.fractalNoise(0.25D, -0.75D, 16); - double bounded3D = threeDimensional.fractalNoise(0.25D, 0.5D, -0.75D, 16); - assertEquals(bounded2D, twoDimensional.fractalNoise(0.25D, -0.75D, Integer.MAX_VALUE), 0D); - assertEquals(bounded3D, threeDimensional.fractalNoise(0.25D, 0.5D, -0.75D, Integer.MAX_VALUE), 0D); - assertTrue(Double.isFinite(bounded2D)); - assertTrue(Double.isFinite(bounded3D)); - } - @Test - public void stationaryCurlVectorsNormalizeToZero() { - CloverNoise.Vector2 twoDimensional = new CloverNoise.Vector2().normalize(); - CloverNoise.Vector3 threeDimensional = new CloverNoise.Vector3().normalize(); - assertEquals(0D, twoDimensional.getX(), 0D); - assertEquals(0D, twoDimensional.getY(), 0D); - assertEquals(0D, threeDimensional.getX(), 0D); - assertEquals(0D, threeDimensional.getY(), 0D); - assertEquals(0D, threeDimensional.getZ(), 0D); - } -} diff --git a/core/src/test/java/art/arcane/iris/util/project/noise/CloverNoiseParityTest.java b/core/src/test/java/art/arcane/iris/util/project/noise/CloverNoiseParityTest.java deleted file mode 100644 index a5a9efbe4..000000000 --- a/core/src/test/java/art/arcane/iris/util/project/noise/CloverNoiseParityTest.java +++ /dev/null @@ -1,105 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import org.junit.Test; - -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.Future; -import java.util.concurrent.TimeUnit; - -import static org.junit.Assert.assertEquals; - -public class CloverNoiseParityTest { - private static final long[] SEEDS = {0L, -1L, 1337L, Long.MIN_VALUE, Long.MAX_VALUE}; - private static final double[][] POINTS = { - {0.125D, -0.75D, 1.5D}, - {-1000.25D, 64.5D, 2048.75D}, - {29_999_984D, -64D, -29_999_984D}, - {Math.PI, Math.E, -Math.sqrt(2D)} - }; - private static final long[][] EXPECTED_3D = { - {4606295205971726443L, 4596584066878230492L, 4601072533138395306L, 4595465536009596573L}, - {4594559156169257303L, 4602986449390023959L, 4602157576770610768L, 4604264428473675137L}, - {4594287239476896260L, 4606819753250159891L, 4603131747488558437L, 4605050910998320058L}, - {4594574716919961912L, 4582369728393548057L, 4600712766107896080L, 4594781081233153808L}, - {4603622723932858649L, 4604886251804482757L, 4600180200303866897L, 4597047378643079682L} - }; - private static final long[][] EXPECTED_2D = { - {4600886466954977930L, 4603042301510796801L, 4605282822283219348L, 4603381024907987886L}, - {4604231235993958026L, 4603294413466771076L, 4606358936184576936L, 4605313173145937690L}, - {4602575096448892092L, 4600034591678710230L, 4603842817538381592L, 4604447254328254894L}, - {4602176302263458666L, 4592022086679349802L, 4605779333798454855L, 4603816542564903403L}, - {4603283241394868042L, 4601437833095430179L, 4606037056899058631L, 4604909992999588843L} - }; - - @Test - public void optimizedVectorMathPreservesExactNoiseBits() { - for (int seedIndex = 0; seedIndex < SEEDS.length; seedIndex++) { - CloverNoise noise = new CloverNoise(SEEDS[seedIndex]); - for (int pointIndex = 0; pointIndex < POINTS.length; pointIndex++) { - double[] point = POINTS[pointIndex]; - assertEquals(EXPECTED_3D[seedIndex][pointIndex], Double.doubleToRawLongBits( - noise.noise(point[0], point[1], point[2]))); - assertEquals(EXPECTED_2D[seedIndex][pointIndex], Double.doubleToRawLongBits( - noise.noise(point[0], point[2]))); - } - } - } - - @Test - public void threeDimensionalCoordinateGridPreservesExactNoiseBits() { - long[] expected = {-4534805072329300766L, 938556028071277557L, -6813256383186365522L, - -4452859942568220233L, 5365194784097108235L}; - - for (int index = 0; index < SEEDS.length; index++) { - assertEquals("seed=" + SEEDS[index], expected[index], coordinateDigest(new CloverNoise(SEEDS[index]), 0)); - } - } - - @Test(timeout = 15000) - public void concurrentSamplingKeepsThreadScratchIndependent() throws Exception { - CloverNoise shared = new CloverNoise(1337L); - long[] expected = new long[8]; - for (int index = 0; index < expected.length; index++) { - expected[index] = coordinateDigest(shared, index * 991); - } - - try (ExecutorService executor = Executors.newFixedThreadPool(4)) { - List> results = new ArrayList<>(expected.length); - for (int index = 0; index < expected.length; index++) { - int start = index * 991; - results.add(executor.submit(() -> coordinateDigest(shared, start))); - } - - for (int index = 0; index < expected.length; index++) { - assertEquals(expected[index], results.get(index).get(5, TimeUnit.SECONDS).longValue()); - } - } - } - - @Test - public void samplingKeepsCallerVectorsUnchanged() { - CloverNoise.Noise3D noise = new CloverNoise.Noise3D(1337L); - CloverNoise.Vector3 point = new CloverNoise.Vector3(0.25D, 0.5D, -0.75D); - double expected = noise.noise(point); - noise.noise(71D, -31D, 113D); - - assertEquals(0.25D, point.getX(), 0D); - assertEquals(0.5D, point.getY(), 0D); - assertEquals(-0.75D, point.getZ(), 0D); - assertEquals(expected, noise.noise(point), 0D); - } - - private static long coordinateDigest(CloverNoise noise, int start) { - long digest = 0L; - for (int index = start; index < start + 8192; index++) { - double x = ((index * 1580030173L) % 60000000L - 30000000L) / 64D + 0.371D; - double y = ((index * 91437L) % 384L - 64L) / 64D + 0.231D; - double z = ((index * 59260789L) % 60000000L - 30000000L) / 64D - 0.219D; - digest = Long.rotateLeft(digest, 7) ^ Double.doubleToRawLongBits(noise.noise(x, y, z)); - } - return digest; - } -} diff --git a/core/src/test/java/art/arcane/iris/util/project/noise/CraterNoiseTest.java b/core/src/test/java/art/arcane/iris/util/project/noise/CraterNoiseTest.java deleted file mode 100644 index 80c452e88..000000000 --- a/core/src/test/java/art/arcane/iris/util/project/noise/CraterNoiseTest.java +++ /dev/null @@ -1,82 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import org.junit.Test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class CraterNoiseTest { - @Test - public void craterCentersSitInsideRaisedSphericalRims() { - CraterNoise noise = new CraterNoise(0L); - double center = noise.noise(0.2D, 0.2D, 0.2D); - - assertTrue(center < 0.4D); - assertTrue(noise.noise(0.56D, 0.2D, 0.2D) > center + 0.2D); - assertTrue(noise.noise(0.2D, 0.56D, 0.2D) > center + 0.2D); - assertTrue(noise.noise(0.2D, 0.2D, 0.56D) > center + 0.2D); - } - - @Test - public void neighboringCellSearchDoesNotLeaveTileSeams() { - double epsilon = 1.0E-8D; - for (long seed : new long[]{0L, 713L, Long.MIN_VALUE}) { - CraterNoise noise = new CraterNoise(seed); - for (int boundary = -3; boundary <= 3; boundary++) { - for (int index = 0; index < 64; index++) { - double first = index * 0.071D - 2D; - double second = index * -0.093D + 3D; - assertEquals(noise.noise(boundary - epsilon, first, second), - noise.noise(boundary + epsilon, first, second), 1.0E-5D); - assertEquals(noise.noise(first, boundary - epsilon, second), - noise.noise(first, boundary + epsilon, second), 1.0E-5D); - assertEquals(noise.noise(first, second, boundary - epsilon), - noise.noise(first, second, boundary + epsilon), 1.0E-5D); - } - } - } - } - - @Test - public void horizontalSliceHasDistinctBowlsAndAnnularRims() { - CraterNoise noise = new CraterNoise(713L); - CraterNoise otherSeed = new CraterNoise(714L); - double minimum = 1D; - double maximum = 0D; - double heightVariation = 0D; - double seedVariation = 0D; - - for (int index = 0; index < 1024; index++) { - double x = index * 0.037D - 4D; - double z = index * -0.051D + 7D; - double value = noise.noise(x, z); - assertEquals(value, noise.noise(x, 0D, z), 0D); - minimum = Math.min(minimum, value); - maximum = Math.max(maximum, value); - heightVariation += Math.abs(value - noise.noise(x, 1.25D, z)); - seedVariation += Math.abs(noise.noise(x) - otherSeed.noise(x)); - } - - assertTrue(minimum < 0.3D); - assertTrue(maximum > 0.7D); - assertTrue(heightVariation > 10D); - assertTrue(seedVariation > 10D); - } - - @Test - public void octaveSamplesStayBoundedAndRepeatableAtWorldBorders() { - CraterNoise first = new CraterNoise(Long.MAX_VALUE); - CraterNoise second = new CraterNoise(Long.MAX_VALUE); - - for (int octaves : new int[]{1, 4, 16}) { - first.setOctaves(octaves); - second.setOctaves(octaves); - for (double coordinate : new double[]{-468750D, -1D, -0D, 0.125D, 1D, 468750D}) { - double value = first.noise(coordinate, coordinate * 0.37D, coordinate * -0.71D); - assertTrue(Double.isFinite(value)); - assertTrue(value >= 0D && value <= 1D); - assertEquals(value, second.noise(coordinate, coordinate * 0.37D, coordinate * -0.71D), 0D); - } - } - } -} diff --git a/core/src/test/java/art/arcane/iris/util/project/noise/FastNoiseDoubleCellularParityTest.java b/core/src/test/java/art/arcane/iris/util/project/noise/FastNoiseDoubleCellularParityTest.java deleted file mode 100644 index cbb51de77..000000000 --- a/core/src/test/java/art/arcane/iris/util/project/noise/FastNoiseDoubleCellularParityTest.java +++ /dev/null @@ -1,222 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import org.junit.Test; - -import java.lang.reflect.Field; -import java.lang.reflect.Method; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class FastNoiseDoubleCellularParityTest { - private static final FastNoiseDouble.CellularDistanceFunction[] DISTANCE_FUNCTIONS = new FastNoiseDouble.CellularDistanceFunction[]{ - FastNoiseDouble.CellularDistanceFunction.Euclidean, - FastNoiseDouble.CellularDistanceFunction.Manhattan, - FastNoiseDouble.CellularDistanceFunction.Natural - }; - private static final FastNoiseDouble.CellularReturnType[] TWO_EDGE_RETURN_TYPES = new FastNoiseDouble.CellularReturnType[]{ - FastNoiseDouble.CellularReturnType.Distance2, - FastNoiseDouble.CellularReturnType.Distance2Add, - FastNoiseDouble.CellularReturnType.Distance2Sub, - FastNoiseDouble.CellularReturnType.Distance2Mul, - FastNoiseDouble.CellularReturnType.Distance2Div - }; - private static final Method HASH_2D = getDeclaredMethod("hash2D", long.class, long.class, long.class); - private static final Method HASH_3D = getDeclaredMethod("hash3D", long.class, long.class, long.class, long.class); - private static final double[] CELL_2D_X = getDeclaredDoubleArray("CELL_2D_X"); - private static final double[] CELL_2D_Y = getDeclaredDoubleArray("CELL_2D_Y"); - private static final double[] CELL_3D_X = getDeclaredDoubleArray("CELL_3D_X"); - private static final double[] CELL_3D_Y = getDeclaredDoubleArray("CELL_3D_Y"); - private static final double[] CELL_3D_Z = getDeclaredDoubleArray("CELL_3D_Z"); - - @Test - public void cellular2DTwoEdgeModesMatchExpandedReference() throws Exception { - for (long seed = 11L; seed <= 17L; seed++) { - double frequency = 0.037D + (seed * 0.001D); - for (FastNoiseDouble.CellularDistanceFunction distanceFunction : DISTANCE_FUNCTIONS) { - for (FastNoiseDouble.CellularReturnType returnType : TWO_EDGE_RETURN_TYPES) { - FastNoiseDouble noise = new FastNoiseDouble(seed); - noise.setFrequency(frequency); - noise.setCellularDistanceFunction(distanceFunction); - noise.setCellularReturnType(returnType); - for (int x = -96; x <= 96; x += 11) { - for (int y = -96; y <= 96; y += 13) { - double sampleX = x + 0.37D; - double sampleY = y - 0.41D; - double expected = referenceGetCellular2D(seed, frequency, distanceFunction, returnType, sampleX, sampleY); - double actual = noise.GetCellular(sampleX, sampleY); - assertEquals("2D seed=" + seed + " distance=" + distanceFunction + " return=" + returnType + " x=" + sampleX + " y=" + sampleY, expected, actual, 0D); - } - } - } - } - } - } - - @Test - public void cellular3DTwoEdgeModesMatchExpandedReference() throws Exception { - for (long seed = 31L; seed <= 35L; seed++) { - double frequency = 0.029D + (seed * 0.001D); - for (FastNoiseDouble.CellularDistanceFunction distanceFunction : DISTANCE_FUNCTIONS) { - for (FastNoiseDouble.CellularReturnType returnType : TWO_EDGE_RETURN_TYPES) { - FastNoiseDouble noise = new FastNoiseDouble(seed); - noise.setFrequency(frequency); - noise.setCellularDistanceFunction(distanceFunction); - noise.setCellularReturnType(returnType); - for (int x = -48; x <= 48; x += 9) { - for (int y = -32; y <= 32; y += 7) { - for (int z = -48; z <= 48; z += 11) { - double sampleX = x + 0.19D; - double sampleY = y - 0.27D; - double sampleZ = z + 0.43D; - double expected = referenceGetCellular3D(seed, frequency, distanceFunction, returnType, sampleX, sampleY, sampleZ); - double actual = noise.GetCellular(sampleX, sampleY, sampleZ); - assertEquals("3D seed=" + seed + " distance=" + distanceFunction + " return=" + returnType + " x=" + sampleX + " y=" + sampleY + " z=" + sampleZ, expected, actual, 0D); - } - } - } - } - } - } - } - - @Test - public void secondNearestCellMayLieOutsideImmediateNeighbors() throws Exception { - long seed2D = 2320148477032134941L; - long seed3D = 8394744594210714849L; - for (FastNoiseDouble.CellularDistanceFunction distanceFunction : DISTANCE_FUNCTIONS) { - for (FastNoiseDouble.CellularReturnType returnType : TWO_EDGE_RETURN_TYPES) { - FastNoiseDouble noise = new FastNoiseDouble(seed2D); - noise.setFrequency(1D); - noise.setCellularDistanceFunction(distanceFunction); - noise.setCellularReturnType(returnType); - double x = 783.44443982D; - double y = 1896.50036984D; - assertEquals(referenceGetCellular2D(seed2D, 1D, distanceFunction, returnType, x, y), - noise.GetCellular(x, y), 0D); - noise.setSeed(seed3D); - x = -2741.75935805D; - y = -1049.4161945D; - double z = -1528.00711843D; - assertEquals(referenceGetCellular3D(seed3D, 1D, distanceFunction, returnType, x, y, z), - noise.GetCellular(x, y, z), 0D); - } - } - } - - @Test - public void distanceProfilesStayContinuousWhenSearchCenterChanges() { - FastNoiseDouble noise = new FastNoiseDouble(2320148477032134941L); - noise.setFrequency(1D); - noise.setCellularDistanceFunction(FastNoiseDouble.CellularDistanceFunction.Natural); - for (FastNoiseDouble.CellularReturnType returnType : TWO_EDGE_RETURN_TYPES) { - noise.setCellularReturnType(returnType); - double below = noise.GetCellular(783.44443982D, 1896.5D - 1E-8D); - double above = noise.GetCellular(783.44443982D, 1896.5D + 1E-8D); - assertTrue(Math.abs(above - below) < 1E-6D); - } - } - - private double referenceGetCellular2D(long seed, double frequency, FastNoiseDouble.CellularDistanceFunction distanceFunction, FastNoiseDouble.CellularReturnType returnType, double x, double y) throws Exception { - double scaledX = x * frequency; - double scaledY = y * frequency; - long xr = fastRound(scaledX); - long yr = fastRound(scaledY); - double distance = 999999D; - double distance2 = 999999D; - - for (long xi = xr - 2; xi <= xr + 2; xi++) { - for (long yi = yr - 2; yi <= yr + 2; yi++) { - int cellIndex = (int) hash2D(seed, xi, yi) & 255; - double vecX = xi - scaledX + CELL_2D_X[cellIndex]; - double vecY = yi - scaledY + CELL_2D_Y[cellIndex]; - double newDistance = switch (distanceFunction) { - case Euclidean -> vecX * vecX + vecY * vecY; - case Manhattan -> Math.abs(vecX) + Math.abs(vecY); - case Natural -> (Math.abs(vecX) + Math.abs(vecY)) + (vecX * vecX + vecY * vecY); - }; - distance2 = Math.max(Math.min(distance2, newDistance), distance); - distance = Math.min(distance, newDistance); - } - } - - return applyTwoEdgeReturn(distance, distance2, returnType); - } - - private double referenceGetCellular3D(long seed, double frequency, FastNoiseDouble.CellularDistanceFunction distanceFunction, FastNoiseDouble.CellularReturnType returnType, double x, double y, double z) throws Exception { - double scaledX = x * frequency; - double scaledY = y * frequency; - double scaledZ = z * frequency; - long xr = fastRound(scaledX); - long yr = fastRound(scaledY); - long zr = fastRound(scaledZ); - double distance = 999999D; - double distance2 = 999999D; - int radius = distanceFunction == FastNoiseDouble.CellularDistanceFunction.Manhattan ? 3 : 2; - - for (long xi = xr - radius; xi <= xr + radius; xi++) { - for (long yi = yr - radius; yi <= yr + radius; yi++) { - for (long zi = zr - radius; zi <= zr + radius; zi++) { - int cellIndex = (int) hash3D(seed, xi, yi, zi) & 255; - double vecX = xi - scaledX + CELL_3D_X[cellIndex]; - double vecY = yi - scaledY + CELL_3D_Y[cellIndex]; - double vecZ = zi - scaledZ + CELL_3D_Z[cellIndex]; - double newDistance = switch (distanceFunction) { - case Euclidean -> vecX * vecX + vecY * vecY + vecZ * vecZ; - case Manhattan -> Math.abs(vecX) + Math.abs(vecY) + Math.abs(vecZ); - case Natural -> (Math.abs(vecX) + Math.abs(vecY) + Math.abs(vecZ)) + (vecX * vecX + vecY * vecY + vecZ * vecZ); - }; - distance2 = Math.max(Math.min(distance2, newDistance), distance); - distance = Math.min(distance, newDistance); - } - } - } - - return applyTwoEdgeReturn(distance, distance2, returnType); - } - - private double applyTwoEdgeReturn(double distance, double distance2, FastNoiseDouble.CellularReturnType returnType) { - return switch (returnType) { - case Distance2 -> distance2 - 1D; - case Distance2Add -> distance2 + distance - 1D; - case Distance2Sub -> distance2 - distance - 1D; - case Distance2Mul -> distance2 * distance - 1D; - case Distance2Div -> distance / distance2 - 1D; - default -> 0D; - }; - } - - private static long fastRound(double value) { - return value >= 0D ? (long) (value + 0.5D) : (long) (value - 0.5D); - } - - private static long hash2D(long seed, long x, long y) throws Exception { - Long value = (Long) HASH_2D.invoke(null, seed, x, y); - return value.longValue(); - } - - private static long hash3D(long seed, long x, long y, long z) throws Exception { - Long value = (Long) HASH_3D.invoke(null, seed, x, y, z); - return value.longValue(); - } - - private static Method getDeclaredMethod(String name, Class... parameterTypes) { - try { - Method method = FastNoiseDouble.class.getDeclaredMethod(name, parameterTypes); - method.setAccessible(true); - return method; - } catch (ReflectiveOperationException e) { - throw new IllegalStateException(e); - } - } - - private static double[] getDeclaredDoubleArray(String name) { - try { - Field field = FastNoiseDouble.class.getDeclaredField(name); - field.setAccessible(true); - return (double[]) field.get(null); - } catch (ReflectiveOperationException e) { - throw new IllegalStateException(e); - } - } -} diff --git a/core/src/test/java/art/arcane/iris/util/project/noise/FastNoiseFloorTest.java b/core/src/test/java/art/arcane/iris/util/project/noise/FastNoiseFloorTest.java deleted file mode 100644 index 2edca5a40..000000000 --- a/core/src/test/java/art/arcane/iris/util/project/noise/FastNoiseFloorTest.java +++ /dev/null @@ -1,33 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import org.junit.Test; - -import java.lang.reflect.Method; - -import static org.junit.Assert.assertEquals; - -public class FastNoiseFloorTest { - @Test - public void doubleLatticeFloorHandlesNegativeIntegersAndNeighbors() throws Exception { - Method floor = FastNoiseDouble.class.getDeclaredMethod("fastFloor", double.class); - floor.setAccessible(true); - assertEquals(-1L, ((Long) floor.invoke(null, -1D)).longValue()); - assertEquals(-2L, ((Long) floor.invoke(null, -2D)).longValue()); - assertEquals(-2L, ((Long) floor.invoke(null, Math.nextDown(-1D))).longValue()); - assertEquals(-1L, ((Long) floor.invoke(null, Math.nextUp(-1D))).longValue()); - assertEquals(0L, ((Long) floor.invoke(null, -0D)).longValue()); - assertEquals(Long.MIN_VALUE, ((Long) floor.invoke(null, (double) Long.MIN_VALUE)).longValue()); - } - - @Test - public void floatLatticeFloorHandlesNegativeIntegersAndNeighbors() throws Exception { - Method floor = FastNoise.class.getDeclaredMethod("FastFloor", float.class); - floor.setAccessible(true); - assertEquals(-1, ((Integer) floor.invoke(null, -1F)).intValue()); - assertEquals(-2, ((Integer) floor.invoke(null, -2F)).intValue()); - assertEquals(-2, ((Integer) floor.invoke(null, Math.nextDown(-1F))).intValue()); - assertEquals(-1, ((Integer) floor.invoke(null, Math.nextUp(-1F))).intValue()); - assertEquals(0, ((Integer) floor.invoke(null, -0F)).intValue()); - assertEquals(Integer.MIN_VALUE, ((Integer) floor.invoke(null, (float) Integer.MIN_VALUE)).intValue()); - } -} diff --git a/core/src/test/java/art/arcane/iris/util/project/noise/GaborNoiseTest.java b/core/src/test/java/art/arcane/iris/util/project/noise/GaborNoiseTest.java deleted file mode 100644 index c0d48f2d4..000000000 --- a/core/src/test/java/art/arcane/iris/util/project/noise/GaborNoiseTest.java +++ /dev/null @@ -1,40 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import org.junit.Test; - -import static org.junit.Assert.assertTrue; - -public class GaborNoiseTest { - @Test - public void wavePacketsHaveDirectionalDetailAndQuietGaps() { - GaborNoise noise = new GaborNoise(1337L); - double xx = 0D; - double xz = 0D; - double zz = 0D; - int quiet = 0; - int dark = 0; - int light = 0; - for (int row = 0; row < 128; row++) { - for (int column = 0; column < 128; column++) { - double x = column * 0.0625D - 4D; - double z = row * 0.0625D - 4D; - double value = noise.noise(x, z); - quiet += Math.abs(value - 0.5D) < 0.03D ? 1 : 0; - dark += value < 0.3D ? 1 : 0; - light += value > 0.7D ? 1 : 0; - double dx = noise.noise(x + 0.001D, z) - noise.noise(x - 0.001D, z); - double dz = noise.noise(x, z + 0.001D) - noise.noise(x, z - 0.001D); - xx += dx * dx; - xz += dx * dz; - zz += dz * dz; - } - } - double spread = Math.sqrt((xx - zz) * (xx - zz) + 4D * xz * xz); - double major = xx + zz + spread; - double minor = xx + zz - spread; - assertTrue(major > minor * 3D); - assertTrue(quiet > 1000); - assertTrue(dark > 500); - assertTrue(light > 500); - } -} diff --git a/core/src/test/java/art/arcane/iris/util/project/noise/GeometricNoiseTest.java b/core/src/test/java/art/arcane/iris/util/project/noise/GeometricNoiseTest.java deleted file mode 100644 index 1e76a96ef..000000000 --- a/core/src/test/java/art/arcane/iris/util/project/noise/GeometricNoiseTest.java +++ /dev/null @@ -1,156 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import org.junit.Test; - -import java.util.Random; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class GeometricNoiseTest { - private static final double SQRT_3 = Math.sqrt(3D); - private static final long[] SEEDS = {0L, -1L, 1337L, Long.MIN_VALUE, Long.MAX_VALUE}; - - @Test - public void regularHexagonsMatchNearestLatticeCenters() { - NoiseGenerator[] noises = {new HexagonNoise(177L), new HexSimplexNoise(311L)}; - for (NoiseGenerator noise : noises) { - for (double x = -5.93D; x < 6D; x += 0.137D) { - for (double z = -5.97D; z < 6D; z += 0.173D) { - double bestDistance = Double.POSITIVE_INFINITY; - double centerX = 0D; - double centerZ = 0D; - for (int q = -8; q <= 8; q++) { - for (int r = -8; r <= 8; r++) { - double candidateX = SQRT_3 * (q + (r * 0.5D)); - double candidateZ = 1.5D * r; - double dx = x - candidateX; - double dz = z - candidateZ; - double distance = (dx * dx) + (dz * dz); - if (distance < bestDistance) { - bestDistance = distance; - centerX = candidateX; - centerZ = candidateZ; - } - } - } - assertEquals(noise.noise(centerX, centerZ), noise.noise(x, z), 0D); - assertEquals(noise.noise(centerX, 2.75D, centerZ), noise.noise(x, 2.75D, z), 0D); - } - } - } - } - - @Test - public void hexagonNeighborsFollowCoherentHeat() { - HexagonNoise noise = new HexagonNoise(7331L); - double adjacentDifference = 0D; - double distantDifference = 0D; - for (int q = -32; q <= 32; q++) { - for (int r = -32; r <= 32; r++) { - double x = SQRT_3 * (q + (r * 0.5D)); - double z = 1.5D * r; - double sample = noise.noise(x, z); - adjacentDifference += Math.abs(sample - noise.noise(x + SQRT_3, z)); - distantDifference += Math.abs(sample - noise.noise(x + (SQRT_3 * 19D), z)); - } - } - assertTrue(adjacentDifference < distantDifference * 0.85D); - } - - @Test - public void nestedHexagonsHaveRegularInscribedFootprints() { - for (int child = 0; child < 7; child++) { - double angle = Math.toRadians((child * 60D) - 90D); - double centerX = child == 0 ? 0D : Math.cos(angle) * (2D / 3D); - double centerZ = child == 0 ? 0D : Math.sin(angle) * (2D / 3D); - for (int direction = 0; direction < 60; direction++) { - double sampleAngle = Math.toRadians(direction * 6D); - double x = centerX + (Math.cos(sampleAngle) * 0.27D); - double z = centerZ + (Math.sin(sampleAngle) * 0.27D); - double q = (x / SQRT_3) - (z / 3D); - double r = 2D * z / 3D; - assertEquals(child, HexagonalNoise.pickChildIndex(q, r)); - assertEquals(0L, HexagonalNoise.roundQ(q, r)); - assertEquals(0L, HexagonalNoise.roundR(q, r)); - } - } - } - - @Test - public void sierpinskiCutsTriangleCentroidsAtEveryDepth() { - SierpinskiTriangleNoise noise = new SierpinskiTriangleNoise(91L); - for (int depth = 0; depth < 4; depth++) { - double size = Math.scalb(1D, -depth); - double holeU = size / 3D; - double holeV = size / 3D; - assertTrue(sampleTriangle(noise, holeU, holeV) <= 0.12D); - assertTrue(sampleTriangle(noise, 1D - size + holeU, holeV) <= 0.12D); - assertTrue(sampleTriangle(noise, holeU, 1D - size + holeV) <= 0.12D); - } - assertTrue(sampleTriangle(noise, 1D / 48D, 1D / 48D) >= 0.35D); - assertTrue(sampleTriangle(noise, 46D / 48D, 1D / 48D) >= 0.35D); - assertTrue(sampleTriangle(noise, 1D / 48D, 46D / 48D) >= 0.35D); - } - - @Test - public void sierpinskiTilesAcrossNegativeCoordinatesWithExpectedArea() { - SierpinskiTriangleNoise noise = new SierpinskiTriangleNoise(9123L); - Random random = new Random(8211L); - int filled = 0; - int samples = 65536; - for (int index = 0; index < samples; index++) { - double u = random.nextDouble(); - double v = random.nextDouble(); - double x = 8D * (u + (v * 0.5D)); - double z = 4D * SQRT_3 * v; - boolean inside = noise.noise(x, z) >= 0.35D; - if (inside) { - filled++; - } - assertEquals(inside, noise.noise(x - 8D, z) >= 0.35D); - assertEquals(inside, noise.noise(x - 4D, z - (4D * SQRT_3)) >= 0.35D); - } - assertEquals(Math.pow(0.75D, 4), filled / (double) samples, 0.006D); - } - - @Test - public void dimensionalSlicesAreConsistentAndContinuous() { - for (NoiseGenerator noise : generators(1337L)) { - assertEquals(noise.noise(3.125D), noise.noise(3.125D, 0D), 0D); - assertEquals(noise.noise(3.125D, -1.75D), noise.noise(3.125D, 0D, -1.75D), 0D); - assertEquals(noise.noise(3.125D, 1.75D, 0D), noise.noise(3.125D, 1.75D, 1E-9D), 1E-7D); - assertEquals(noise.noise(3.125D, 0D, -1.75D), noise.noise(3.125D, 1E-9D, -1.75D), 1E-7D); - } - } - - @Test - public void seedsAndWorldBorderCoordinatesRemainDeterministicAndBounded() { - double[][] points = {{0D, 0D, 0D}, {-29_999_984D, -64D, 29_999_984D}, - {3.125D, 17.375D, -9.25D}, {29_999_984D, 319D, -29_999_984D}}; - for (long seed : SEEDS) { - NoiseGenerator[] first = generators(seed); - NoiseGenerator[] second = generators(seed); - for (int index = 0; index < first.length; index++) { - if (first[index] instanceof OctaveNoise octaves) { - octaves.setOctaves(16); - ((OctaveNoise) second[index]).setOctaves(16); - } - for (double[] point : points) { - double value = first[index].noise(point[0], point[1], point[2]); - assertTrue(Double.isFinite(value) && value >= 0D && value <= 1D); - assertEquals(value, second[index].noise(point[0], point[1], point[2]), 0D); - } - } - } - } - - private double sampleTriangle(SierpinskiTriangleNoise noise, double u, double v) { - return noise.noise(8D * (u + (v * 0.5D)), 4D * SQRT_3 * v); - } - - private NoiseGenerator[] generators(long seed) { - return new NoiseGenerator[]{new HexagonNoise(seed), new HexSimplexNoise(seed), - new HexRandomSizeNoise(seed), new HexJamesNoise(seed), new SierpinskiTriangleNoise(seed)}; - } -} diff --git a/core/src/test/java/art/arcane/iris/util/project/noise/InterpolatedNoiseDimensionTest.java b/core/src/test/java/art/arcane/iris/util/project/noise/InterpolatedNoiseDimensionTest.java deleted file mode 100644 index b9653c2c8..000000000 --- a/core/src/test/java/art/arcane/iris/util/project/noise/InterpolatedNoiseDimensionTest.java +++ /dev/null @@ -1,87 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import art.arcane.iris.util.project.interpolation.InterpolationMethod; -import art.arcane.iris.util.project.interpolation.IrisInterpolation; -import org.junit.Test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertTrue; - -public class InterpolatedNoiseDimensionTest { - @Test - public void threeDimensionalSamplesAlwaysUseTheHorizontalPlane() { - InterpolatedNoise noise = new InterpolatedNoise(37L, NoiseType.WHITE, InterpolationMethod.BILINEAR); - - for (double x : new double[]{-13D, 0D, 41D}) { - for (double y : new double[]{-89D, 0D, 173D}) { - for (double z : new double[]{-37D, 0D, 29D}) { - assertEquals(noise.noise(x, z), noise.noise(x, y, z), 0D); - } - } - assertEquals(noise.noise(x, 0D), noise.noise(x), 0D); - } - } - - @Test - public void interpolationSamplesTheNormalizedSourceAndForwardsOctaves() { - long seed = 93L; - NoiseType type = NoiseType.SIMPLEX; - NoiseGenerator source = type.create(seed); - ((OctaveNoise) source).setOctaves(4); - InterpolatedNoise noise = new InterpolatedNoise(seed, type, InterpolationMethod.BILINEAR); - noise.setOctaves(4); - double scale = type.getCoordinateScale(); - - for (int x = -49; x <= 49; x += 7) { - for (int z = -51; z <= 51; z += 11) { - double expected = IrisInterpolation.getNoise(InterpolationMethod.BILINEAR, x, z, 32D, - (sampleX, sampleZ) -> source.noise(sampleX * scale, sampleZ * scale)); - assertEquals(expected, noise.noise(x, z), 1.0E-12D); - } - } - } - - @Test - public void fractionalCoordinatesReachEveryInterpolationKernel() { - long seed = 109L; - NoiseType type = NoiseType.SIMPLEX; - NoiseGenerator source = type.create(seed); - double scale = type.getCoordinateScale(); - - for (InterpolationMethod method : InterpolationMethod.values()) { - InterpolatedNoise noise = new InterpolatedNoise(seed, type, method); - double expected = IrisInterpolation.getNoise(method, -7.75D, 3.25D, 32D, - (x, z) -> source.noise(x * scale, z * scale)); - double actual = noise.noise(-7.75D, 3.25D); - - assertEquals(method.name(), expected, actual, 0D); - assertNotEquals(method.name(), noise.noise(-7D, 3D), actual, 1.0E-9D); - } - } - - @Test - public void noiseWrappersConstrainCubicOvershootWithoutConstrainingTheKernel() { - double overshoot = IrisInterpolation.getNoise(InterpolationMethod.BICUBIC, 16D, 16D, 32D, - (x, z) -> x >= 0D && x <= 32D ? 1D : 0D); - assertEquals(1.25D, overshoot, 0D); - - for (NoiseType type : new NoiseType[]{NoiseType.WHITE, NoiseType.CELLULAR, NoiseType.CLOVER}) { - for (InterpolationMethod method : new InterpolationMethod[]{InterpolationMethod.BICUBIC, - InterpolationMethod.HERMITE}) { - InterpolatedNoise noise = new InterpolatedNoise(173L, type, method); - boolean reachesEndpoint = false; - for (double x = -256D; x <= 256D; x += 7.375D) { - for (double z = -256D; z <= 256D; z += 5.5D) { - double value = noise.noise(x, z); - assertTrue(type.name() + "/" + method.name(), value >= 0D && value <= 1D); - reachesEndpoint |= value == 0D || value == 1D; - } - } - if (type == NoiseType.WHITE) { - assertTrue(method.name(), reachesEndpoint); - } - } - } - } -} diff --git a/core/src/test/java/art/arcane/iris/util/project/noise/KaleidoscopeNoiseTest.java b/core/src/test/java/art/arcane/iris/util/project/noise/KaleidoscopeNoiseTest.java deleted file mode 100644 index 68683c3c1..000000000 --- a/core/src/test/java/art/arcane/iris/util/project/noise/KaleidoscopeNoiseTest.java +++ /dev/null @@ -1,92 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import org.junit.Test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class KaleidoscopeNoiseTest { - @Test - public void wedgesMirrorAndRepeatAroundTheTileCenter() { - KaleidoscopeNoise noise = new KaleidoscopeNoise(0L); - for (int index = 0; index < 128; index++) { - double angle = index * 0.037D; - double radius = 0.05D + index * (0.4D / 128D); - double x = radius * Math.cos(angle); - double z = radius * Math.sin(angle); - double value = noise.noise(0.5D + x, z); - assertEquals(value, noise.noise(0.5D + x, -z), 1.0E-12D); - assertEquals(value, noise.noise(0.5D - z, x), 1.0E-12D); - } - } - - @Test - public void compactMotifsMeetContinuouslyAtTileAndWedgeBoundaries() { - double epsilon = 1.0E-8D; - for (long seed : new long[]{0L, 1337L, Long.MIN_VALUE}) { - KaleidoscopeNoise noise = new KaleidoscopeNoise(seed); - for (int index = 0; index < 256; index++) { - double position = index * 0.027D - 3D; - double height = index * 0.017D - 2D; - assertEquals(noise.noise(-epsilon, height, position), - noise.noise(epsilon, height, position), 1.0E-6D); - assertEquals(noise.noise(position, height, 0.5D - epsilon), - noise.noise(position, height, 0.5D + epsilon), 1.0E-6D); - assertEquals(noise.noise(0.5D - epsilon, height, 0D), - noise.noise(0.5D + epsilon, height, 0D), 1.0E-5D); - } - } - KaleidoscopeNoise noise = new KaleidoscopeNoise(0L); - for (double boundary : new double[]{-Math.PI, -Math.PI * 0.75D, 0D, Math.PI * 0.25D, Math.PI}) { - assertEquals(noise.noise(0.5D + 0.3D * Math.cos(boundary - epsilon), - 0.3D * Math.sin(boundary - epsilon)), - noise.noise(0.5D + 0.3D * Math.cos(boundary + epsilon), - 0.3D * Math.sin(boundary + epsilon)), 1.0E-5D); - } - } - - @Test - public void heightAndUpperSeedBitsChangeTheMotifs() { - KaleidoscopeNoise first = new KaleidoscopeNoise(1337L); - KaleidoscopeNoise second = new KaleidoscopeNoise(1337L + (1L << 32)); - double heightVariation = 0D; - double seedVariation = 0D; - double maximum = 0D; - for (int index = 0; index < 512; index++) { - double x = index * 0.037D - 5D; - double z = index * -0.023D + 3D; - double value = first.noise(x, z); - assertEquals(value, first.noise(x, 0D, z), 0D); - assertEquals(value, first.noise(x, 1.0E-8D, z), 1.0E-5D); - heightVariation += Math.abs(value - first.noise(x, 1.25D, z)); - seedVariation += Math.abs(value - second.noise(x, z)); - maximum = Math.max(maximum, value); - } - assertTrue(heightVariation > 10D); - assertTrue(seedVariation > 10D); - assertTrue(maximum > 0.7D); - double oneDimensionalVariation = 0D; - for (int index = 0; index < 256; index++) { - oneDimensionalVariation += Math.abs(first.noise(index * 0.013D) - - second.noise(index * 0.013D)); - } - assertTrue(oneDimensionalVariation > 10D); - } - - @Test - public void octaveSamplesStayBoundedAndRepeatableAtWorldBorders() { - KaleidoscopeNoise first = new KaleidoscopeNoise(Long.MAX_VALUE); - KaleidoscopeNoise second = new KaleidoscopeNoise(Long.MAX_VALUE); - for (int octaves : new int[]{1, 3, 16}) { - first.setOctaves(octaves); - second.setOctaves(octaves); - for (int index = 0; index < 128; index++) { - double x = -468750D + index * (937500D / 127D); - double value = first.noise(x, x * 0.37D, x * -0.71D); - assertTrue(Double.isFinite(value)); - assertTrue(value >= 0D && value <= 1D); - assertEquals(value, second.noise(x, x * 0.37D, x * -0.71D), 0D); - } - } - } -} diff --git a/core/src/test/java/art/arcane/iris/util/project/noise/MarbleNoiseTest.java b/core/src/test/java/art/arcane/iris/util/project/noise/MarbleNoiseTest.java deleted file mode 100644 index 295592d31..000000000 --- a/core/src/test/java/art/arcane/iris/util/project/noise/MarbleNoiseTest.java +++ /dev/null @@ -1,29 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import org.junit.Test; - -import static org.junit.Assert.assertTrue; - -public class MarbleNoiseTest { - @Test - public void narrowVeinsCrossPredominantlySoftStone() { - MarbleNoise noise = new MarbleNoise(1337L); - int dark = 0; - int soft = 0; - double minimum = 1D; - double maximum = 0D; - for (int row = 0; row < 128; row++) { - for (int column = 0; column < 128; column++) { - double value = noise.noise(column * 0.0625D - 4D, row * 0.0625D - 4D); - dark += value < 0.3D ? 1 : 0; - soft += value > 0.65D ? 1 : 0; - minimum = Math.min(minimum, value); - maximum = Math.max(maximum, value); - } - } - assertTrue(minimum < 0.15D); - assertTrue(maximum > 0.85D); - assertTrue(dark > 250 && dark < 2500); - assertTrue(soft > 10000); - } -} diff --git a/core/src/test/java/art/arcane/iris/util/project/noise/MaterialPatternNoiseTest.java b/core/src/test/java/art/arcane/iris/util/project/noise/MaterialPatternNoiseTest.java deleted file mode 100644 index 046fcb515..000000000 --- a/core/src/test/java/art/arcane/iris/util/project/noise/MaterialPatternNoiseTest.java +++ /dev/null @@ -1,114 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import org.junit.Test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class MaterialPatternNoiseTest { - @Test - public void materialPatternsStayBoundedSeededAndVolumetric() { - for (long seed : new long[]{0L, 813753L, Long.MIN_VALUE, Long.MAX_VALUE}) { - PatternNoise[] patterns = patterns(seed); - PatternNoise[] repeated = patterns(seed); - PatternNoise[] otherSeed = patterns(seed ^ (1L << 47)); - for (int pattern = 0; pattern < patterns.length; pattern++) { - PatternNoise noise = patterns[pattern]; - double seedDifference = 0D; - double heightDifference = 0D; - for (int octaves : new int[]{1, 4, 16}) { - noise.setOctaves(octaves); - repeated[pattern].setOctaves(octaves); - otherSeed[pattern].setOctaves(octaves); - for (double origin : new double[]{-468750D, 0D, 468750D}) { - for (int i = 0; i < 128; i++) { - double x = origin + i * 0.173D; - double y = i * 0.071D - 4D; - double z = -origin + i * 0.319D; - double value = noise.noise(x, y, z); - assertTrue(Double.isFinite(value) && value >= 0D && value <= 1D); - assertEquals(value, repeated[pattern].noise(x, y, z), 0D); - assertEquals(noise.noise(x, z), noise.noise(x, 0D, z), 0D); - seedDifference += Math.abs(value - otherSeed[pattern].noise(x, y, z)); - heightDifference += Math.abs(value - noise.noise(x, y + 0.713D, z)); - } - } - } - assertTrue(noise.getClass().getSimpleName(), seedDifference > 10D); - assertTrue(noise.getClass().getSimpleName(), heightDifference > 10D); - } - } - } - - @Test - public void materialPatternsHaveNoCoordinateBoundaryJumps() { - for (long seed : new long[]{0L, 813753L, Long.MAX_VALUE}) { - for (PatternNoise noise : patterns(seed)) { - for (double boundary : new double[]{-468750D, -2D, 0D, 3D, 468750D}) { - for (int i = 0; i < 128; i++) { - double coordinate = i * 0.073D - 4D; - assertEquals(noise.noise(boundary - 1E-7D, 0.317D, coordinate), - noise.noise(boundary + 1E-7D, 0.317D, coordinate), 1E-4D); - assertEquals(noise.noise(coordinate, 0.317D, boundary - 1E-7D), - noise.noise(coordinate, 0.317D, boundary + 1E-7D), 1E-4D); - } - } - } - } - } - - @Test - public void duneWindwardSlopeIsLongerAndHornsBendDownwind() { - DuneNoise dune = new DuneNoise(0L); - assertTrue(dune.noise(0.02D, 0.2D) > dune.noise(0.38D, 0.2D) + 0.2D); - double across = 0.2D + 0.32D * 0.65D; - double crest = 0.2D + 0.43D * 0.65D * 0.65D; - assertTrue(dune.noise(crest, across) > dune.noise(0.2D, across) + 0.05D); - assertTrue(dune.noise(0.2D, 0.2D) > dune.noise(crest, across)); - } - - @Test - public void woodKnotsCarryClosedGrowthRings() { - WoodNoise wood = new WoodNoise(0L); - double minimum = 1D; - double maximum = 0D; - for (int i = 0; i < 64; i++) { - double angle = i * Math.PI / 32D; - double across = 0.3D + Math.cos(angle) * 0.12D; - double along = 0.3D + Math.sin(angle) * 0.12D; - double x = across - 0.11D * Math.sin(along * 0.85D); - double value = wood.noise(x, along / 0.45D); - minimum = Math.min(minimum, value); - maximum = Math.max(maximum, value); - } - double brightRingX = 0.34D - 0.11D * Math.sin(0.3D * 0.85D); - assertTrue(maximum - minimum < 0.22D); - assertTrue(wood.noise(brightRingX, 0.3D / 0.45D) > maximum + 0.4D); - } - - @Test - public void strataContainsRepeatedHighAndLowBands() { - StrataNoise strata = new StrataNoise(813753L); - int highBands = 0; - int lowBands = 0; - double previous = strata.noise(0D, -8D); - double current = strata.noise(0D, -8D + 0.008D); - for (int i = 2; i < 2048; i++) { - double next = strata.noise(0D, -8D + i * 0.008D); - if (current > previous && current > next && current > 0.75D) { - highBands++; - } - if (current < previous && current < next && current < 0.25D) { - lowBands++; - } - previous = current; - current = next; - } - assertTrue(highBands >= 6); - assertTrue(lowBands >= 6); - } - - private static PatternNoise[] patterns(long seed) { - return new PatternNoise[]{new DuneNoise(seed), new StrataNoise(seed), new WoodNoise(seed)}; - } -} diff --git a/core/src/test/java/art/arcane/iris/util/project/noise/MengerSpongeNoiseTest.java b/core/src/test/java/art/arcane/iris/util/project/noise/MengerSpongeNoiseTest.java deleted file mode 100644 index 86f6a634d..000000000 --- a/core/src/test/java/art/arcane/iris/util/project/noise/MengerSpongeNoiseTest.java +++ /dev/null @@ -1,83 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import org.junit.Test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class MengerSpongeNoiseTest { - @Test - public void threeSubdivisionsRetainExactlyTwentyCubedCells() { - MengerSpongeNoise noise = new MengerSpongeNoise(0L); - int retained = 0; - for (int x = 0; x < 27; x++) { - for (int y = 0; y < 27; y++) { - for (int z = 0; z < 27; z++) { - retained += (int) noise.noise((x + 0.5D) / 27D, - (y + 0.5D) / 27D, (z + 0.5D) / 27D); - } - } - } - assertEquals(8000, retained); - } - - @Test - public void faceSliceContainsThreeLevelsOfSquareHoles() { - MengerSpongeNoise noise = new MengerSpongeNoise(0L); - assertEquals(0D, noise.noise(0.5D, 0D, 0.5D), 0D); - assertEquals(0D, noise.noise(1D / 6D, 0D, 1D / 6D), 0D); - assertEquals(0D, noise.noise(1D / 18D, 0D, 1D / 18D), 0D); - assertEquals(1D, noise.noise(1D / 54D, 0D, 1D / 54D), 0D); - assertEquals(0D, noise.noise(0.5D, 0.5D, 0.05D), 0D); - assertEquals(0D, noise.noise(0.05D, 0.5D, 0.5D), 0D); - int retained = 0; - for (int x = 0; x < 27; x++) { - for (int z = 0; z < 27; z++) { - retained += (int) noise.noise((x + 0.5D) / 27D, (z + 0.5D) / 27D); - } - } - assertEquals(512, retained); - } - - @Test - public void negativeTilesRepeatAndAllAxesAndUpperSeedBitsAffectGeometry() { - MengerSpongeNoise first = new MengerSpongeNoise(1337L); - MengerSpongeNoise second = new MengerSpongeNoise(1337L + (1L << 32)); - double xVariation = 0D; - double yVariation = 0D; - double zVariation = 0D; - double seedVariation = 0D; - for (int index = 0; index < 512; index++) { - double x = index * 0.019D - 4D; - double z = index * -0.031D + 2D; - double value = first.noise(x, z); - assertEquals(value, first.noise(x, 0D, z), 0D); - assertEquals(value, first.noise(x - 2D, 0D, z + 3D), 0D); - xVariation += Math.abs(value - first.noise(x + 0.137D, z)); - yVariation += Math.abs(value - first.noise(x, 0.419D, z)); - zVariation += Math.abs(value - first.noise(x, z + 0.237D)); - seedVariation += Math.abs(value - second.noise(x, z)); - } - assertTrue(xVariation > 20D); - assertTrue(yVariation > 20D); - assertTrue(zVariation > 20D); - assertTrue(seedVariation > 20D); - } - - @Test - public void octaveSamplesStayBoundedAndRepeatableAtWorldBorders() { - MengerSpongeNoise first = new MengerSpongeNoise(Long.MAX_VALUE); - MengerSpongeNoise second = new MengerSpongeNoise(Long.MAX_VALUE); - for (int octaves : new int[]{1, 3, 16}) { - first.setOctaves(octaves); - second.setOctaves(octaves); - for (int index = 0; index < 128; index++) { - double x = -468750D + index * (937500D / 127D); - double value = first.noise(x, x * 0.37D, x * -0.71D); - assertTrue(Double.isFinite(value)); - assertTrue(value >= 0D && value <= 1D); - assertEquals(value, second.noise(x, x * 0.37D, x * -0.71D), 0D); - } - } - } -} diff --git a/core/src/test/java/art/arcane/iris/util/project/noise/NoiseOctaveTest.java b/core/src/test/java/art/arcane/iris/util/project/noise/NoiseOctaveTest.java deleted file mode 100644 index 9aa50cf59..000000000 --- a/core/src/test/java/art/arcane/iris/util/project/noise/NoiseOctaveTest.java +++ /dev/null @@ -1,104 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import art.arcane.volmlib.util.math.RNG; -import org.junit.Test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertTrue; - -public class NoiseOctaveTest { - private static final long SEED = 972453L; - private static final double X = 37.219D; - private static final double Y = -91.713D; - private static final double Z = 152.875D; - - @Test - public void simplexAndPerlinKeepFundamentalAndReduceDetailAmplitude() { - for (boolean simplex : new boolean[]{false, true}) { - NoiseGenerator noise = simplex ? new SimplexNoise(SEED) : new PerlinNoise(SEED); - ((OctaveNoise) noise).setOctaves(3); - FastNoiseDouble source = new FastNoiseDouble(new RNG(SEED).lmax()); - source.setLongerp(FastNoiseDouble.Longerp.Qulongic); - for (int dimensions = 1; dimensions <= 3; dimensions++) { - double expected = 0D; - for (int octave = 0; octave < 3; octave++) { - double frequency = 1 << octave; - double sample; - if (dimensions == 3) { - sample = simplex ? source.GetSimplex(X * frequency, Y * frequency, Z * frequency) - : source.GetPerlin(X * frequency, Y * frequency, Z * frequency); - } else { - double second = dimensions == 1 ? 0D : Z * frequency; - sample = simplex ? source.GetSimplex(X * frequency, second) - : source.GetPerlin(X * frequency, second); - } - expected += sample / frequency; - } - expected /= 1.75D; - double signed = switch (dimensions) { - case 1 -> noise.noiseSigned(X); - case 2 -> noise.noiseSigned(X, Z); - default -> noise.noiseSigned(X, Y, Z); - }; - double unsigned = switch (dimensions) { - case 1 -> noise.noise(X); - case 2 -> noise.noise(X, Z); - default -> noise.noise(X, Y, Z); - }; - assertEquals(expected, signed, 1E-15D); - assertEquals(signed / 2D + 0.5D, unsigned, 0D); - } - assertEquals(noise.noise(X, 0D), noise.noise(X), 0D); - } - } - - @Test(timeout = 5000) - public void octaveWrappersClampInvalidAndExcessiveCounts() { - NoiseGenerator[] generators = { - new SimplexNoise(SEED), new PerlinNoise(SEED), new FractalFBMSimplexNoise(SEED), - new FractalBillowSimplexNoise(SEED), new FractalBillowPerlinNoise(SEED), - new FractalRigidMultiSimplexNoise(SEED), new FractalCubicNoise(SEED) - }; - for (NoiseGenerator noise : generators) { - OctaveNoise octaveNoise = (OctaveNoise) noise; - octaveNoise.setOctaves(1); - double minimum = noise.noise(X, Y, Z); - octaveNoise.setOctaves(Integer.MIN_VALUE); - assertEquals(minimum, noise.noise(X, Y, Z), 0D); - octaveNoise.setOctaves(16); - double maximum = noise.noise(X, Y, Z); - octaveNoise.setOctaves(Integer.MAX_VALUE); - assertEquals(maximum, noise.noise(X, Y, Z), 0D); - assertTrue(Double.isFinite(maximum)); - } - } - - @Test - public void cubicFractalUsesRequestedOctaves() { - FractalCubicNoise noise = new FractalCubicNoise(SEED); - noise.setOctaves(1); - double fundamental = noise.noise(X, Y, Z); - noise.setOctaves(4); - double detailed = noise.noise(X, Y, Z); - assertNotEquals(fundamental, detailed, 1E-8D); - FastNoiseDouble source = new FastNoiseDouble(new RNG(SEED).lmax()); - source.setFractalType(FastNoiseDouble.FractalType.Billow); - source.setFractalOctaves(4); - assertEquals(source.GetCubicFractal(X, Y, Z) / 2D + 0.5D, detailed, 0D); - } - - @Test(timeout = 5000) - public void rawFractalSamplersBoundOctaveWork() { - FastNoiseDouble doubles = new FastNoiseDouble(SEED); - FastNoise floats = new FastNoise((int) SEED); - doubles.setFractalOctaves(16); - floats.SetFractalOctaves(16); - double expectedDouble = doubles.GetSimplexFractal(X, Y, Z); - float expectedFloat = floats.GetSimplexFractal((float) X, (float) Y, (float) Z); - doubles.setFractalOctaves(Long.MAX_VALUE); - floats.SetFractalOctaves(Integer.MAX_VALUE); - assertEquals(expectedDouble, doubles.GetSimplexFractal(X, Y, Z), 0D); - assertEquals(expectedFloat, floats.GetSimplexFractal((float) X, (float) Y, (float) Z), 0D); - } -} diff --git a/core/src/test/java/art/arcane/iris/util/project/noise/PatternNoiseTest.java b/core/src/test/java/art/arcane/iris/util/project/noise/PatternNoiseTest.java deleted file mode 100644 index f6aee8719..000000000 --- a/core/src/test/java/art/arcane/iris/util/project/noise/PatternNoiseTest.java +++ /dev/null @@ -1,114 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import art.arcane.iris.engine.object.NoiseStyle; -import art.arcane.volmlib.util.math.RNG; -import org.junit.Test; - -import java.util.Random; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class PatternNoiseTest { - private static final NoiseStyle[] STYLES = { - NoiseStyle.GYROID, NoiseStyle.QUASICRYSTAL, NoiseStyle.TRUCHET, - NoiseStyle.CRATER, NoiseStyle.VORTEX, - NoiseStyle.DUNE, NoiseStyle.STRATA, NoiseStyle.WOOD, NoiseStyle.GABOR, NoiseStyle.MARBLE, - NoiseStyle.SCALES, NoiseStyle.CHLADNI, NoiseStyle.KALEIDOSCOPE, NoiseStyle.MENGER_SPONGE, NoiseStyle.CIRCUIT - }; - - @Test - public void patternsRemainBoundedAtEveryOctaveCountAndWorldEdge() { - Random random = new Random(1337L); - for (long seed : new long[]{0L, 1337L, Long.MIN_VALUE, Long.MAX_VALUE}) { - for (PatternNoise noise : patterns(seed)) { - for (int octaves : new int[]{1, 2, 5, 16}) { - noise.setOctaves(octaves); - for (int sample = 0; sample < 128; sample++) { - double x = (random.nextDouble() * 2D - 1D) * 30_000_000D / 64D; - double y = (random.nextDouble() * 2D - 1D) * 2048D / 64D; - double z = (random.nextDouble() * 2D - 1D) * 30_000_000D / 64D; - assertUnit(noise, noise.noise(x)); - assertUnit(noise, noise.noise(x, z)); - assertUnit(noise, noise.noise(x, y, z)); - assertEquals(noise.noise(x, z), noise.noise(x, 0D, z), 0D); - assertEquals(noise.noise(x), noise.noise(x, 0D), 0D); - } - } - } - } - } - - @Test - public void allPatternsUseTheFullSeedAndVaryThroughHeight() { - PatternNoise[] lowSeed = patterns(1337L); - PatternNoise[] sameSeed = patterns(1337L); - PatternNoise[] highSeed = patterns(1337L + (1L << 32)); - for (int index = 0; index < lowSeed.length; index++) { - double seedDifference = 0D; - double heightDifference = 0D; - for (int sample = 0; sample < 128; sample++) { - double x = sample * 0.173D - 8D; - double z = sample * -0.193D + 7D; - double value = lowSeed[index].noise(x, 0.371D, z); - assertEquals(value, sameSeed[index].noise(x, 0.371D, z), 0D); - seedDifference += Math.abs(value - highSeed[index].noise(x, 0.371D, z)); - heightDifference += Math.abs(value - lowSeed[index].noise(x, 0.891D, z)); - } - assertTrue(lowSeed[index].getClass().getSimpleName(), seedDifference > 1D); - assertTrue(lowSeed[index].getClass().getSimpleName(), heightDifference > 1D); - } - } - - @Test - public void octavesAddDetailWithoutChangingTheBaseSeed() { - for (PatternNoise noise : patterns(42L)) { - double[] original = new double[128]; - for (int index = 0; index < original.length; index++) { - original[index] = noise.noise(index * 0.073D, 0.419D, index * -0.113D); - } - noise.setOctaves(4); - double difference = 0D; - for (int index = 0; index < original.length; index++) { - difference += Math.abs(original[index] - noise.noise(index * 0.073D, 0.419D, index * -0.113D)); - } - assertTrue(noise.getClass().getSimpleName(), difference > 1D); - noise.setOctaves(0); - for (int index = 0; index < original.length; index++) { - assertEquals(original[index], noise.noise(index * 0.073D, 0.419D, index * -0.113D), 0D); - } - noise.setOctaves(16); - double maximum = noise.noise(0.713D, 0.931D, -0.719D); - noise.setOctaves(Integer.MAX_VALUE); - assertEquals(maximum, noise.noise(0.713D, 0.931D, -0.719D), 0D); - } - } - - @Test - public void styleIntegrationUsesTheSameScaleInEveryDimension() { - for (NoiseStyle style : STYLES) { - CNG direct = style.create(new RNG(7331L)); - CNG zoomed = style.style().zoomed(2D).createNoCache(new RNG(7331L), null); - for (int index = 0; index < 128; index++) { - double x = index * 13.713D - 400D; - double y = index * 1.119D - 70D; - double z = index * -17.179D + 300D; - assertEquals(style.name(), direct.noise(x, z), zoomed.noise(x * 2D, z * 2D), 1E-10D); - assertEquals(style.name(), direct.noise(x, y, z), zoomed.noise(x * 2D, y * 2D, z * 2D), 1E-10D); - assertEquals(style.name(), direct.noise(x, z), direct.noise(x, 0D, z), 0D); - } - } - } - - private static PatternNoise[] patterns(long seed) { - return new PatternNoise[]{new GyroidNoise(seed), new QuasicrystalNoise(seed), - new TruchetNoise(seed), new CraterNoise(seed), new VortexNoise(seed), - new DuneNoise(seed), new StrataNoise(seed), new WoodNoise(seed), new GaborNoise(seed), new MarbleNoise(seed), - new ScalesNoise(seed), new ChladniNoise(seed), new KaleidoscopeNoise(seed), new MengerSpongeNoise(seed), new CircuitNoise(seed)}; - } - - private static void assertUnit(PatternNoise noise, double value) { - assertTrue(noise.getClass().getSimpleName() + ": " + value, - Double.isFinite(value) && value >= 0D && value <= 1D); - } -} diff --git a/core/src/test/java/art/arcane/iris/util/project/noise/ScalesNoiseTest.java b/core/src/test/java/art/arcane/iris/util/project/noise/ScalesNoiseTest.java deleted file mode 100644 index e2c34bac2..000000000 --- a/core/src/test/java/art/arcane/iris/util/project/noise/ScalesNoiseTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import org.junit.Test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class ScalesNoiseTest { - private static final double ZERO_SEED_PHASE_Z = 0.8833108082136426D; - - @Test - public void groovesTraceStaggeredSemicirclesAroundRaisedFaces() { - ScalesNoise noise = new ScalesNoise(0L); - for (int row = -3; row <= 3; row++) { - double x = (row & 1) * 0.5D; - double z = row * 0.5D - ZERO_SEED_PHASE_Z; - assertTrue(noise.noise(x, z + 0.2D) > 0.75D); - for (int point = 1; point < 12; point++) { - double angle = point * Math.PI / 12D; - assertTrue(noise.noise(x + Math.cos(angle) * 0.5D, z + Math.sin(angle) * 0.5D) < 0.24D); - } - } - } - - @Test - public void staggeredRowAndColumnBoundariesRemainContinuous() { - ScalesNoise noise = new ScalesNoise(0L); - for (int row = -4; row <= 4; row++) { - double z = row * 0.5D - ZERO_SEED_PHASE_Z; - for (int point = 0; point < 512; point++) { - double x = point / 128D - 2D; - assertEquals(noise.noise(x, z - 1.0E-8D), noise.noise(x, z + 1.0E-8D), 1.0E-5D); - assertEquals(noise.noise(row * 0.5D - 1.0E-8D, x), - noise.noise(row * 0.5D + 1.0E-8D, x), 1.0E-5D); - } - } - } -} diff --git a/core/src/test/java/art/arcane/iris/util/project/noise/TextureNoiseTest.java b/core/src/test/java/art/arcane/iris/util/project/noise/TextureNoiseTest.java deleted file mode 100644 index 6eeb91365..000000000 --- a/core/src/test/java/art/arcane/iris/util/project/noise/TextureNoiseTest.java +++ /dev/null @@ -1,105 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import org.junit.Test; - -import java.util.SplittableRandom; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class TextureNoiseTest { - @Test - public void texturesKeepUnitRangeAndExactHorizontalSlicesThroughSixteenOctaves() { - SplittableRandom random = new SplittableRandom(715L); - for (long seed : new long[]{0L, 1337L, Long.MIN_VALUE, Long.MAX_VALUE}) { - for (PatternNoise noise : textures(seed)) { - for (int octaves : new int[]{1, 4, 16}) { - noise.setOctaves(octaves); - for (int index = 0; index < 128; index++) { - double x = random.nextDouble(-468750D, 468750D); - double y = random.nextDouble(-32D, 32D); - double z = random.nextDouble(-468750D, 468750D); - double value = noise.noise(x, y, z); - assertTrue(noise.getClass().getSimpleName(), Double.isFinite(value) && value >= 0D && value <= 1D); - assertEquals(noise.noise(x, z), noise.noise(x, 0D, z), 0D); - assertEquals(noise.noise(x), noise.noise(x, 0D, 0D), 0D); - } - } - } - } - } - - @Test - public void texturesUseTheFullSeedAndEveryCoordinate() { - PatternNoise[] first = textures(1337L); - PatternNoise[] same = textures(1337L); - PatternNoise[] highSeed = textures(1337L + (1L << 32)); - for (int style = 0; style < first.length; style++) { - double seedDifference = 0D; - double xDifference = 0D; - double yDifference = 0D; - double zDifference = 0D; - for (int index = 0; index < 256; index++) { - double x = index * 0.073D - 4D; - double y = index * 0.011D - 1D; - double z = index * -0.113D + 3D; - double value = first[style].noise(x, y, z); - assertEquals(value, same[style].noise(x, y, z), 0D); - seedDifference += Math.abs(value - highSeed[style].noise(x, y, z)); - xDifference += Math.abs(value - first[style].noise(x + 0.31D, y, z)); - yDifference += Math.abs(value - first[style].noise(x, y + 0.37D, z)); - zDifference += Math.abs(value - first[style].noise(x, y, z + 0.41D)); - } - assertTrue(first[style].getClass().getSimpleName(), seedDifference > 4D); - assertTrue(first[style].getClass().getSimpleName(), xDifference > 4D); - assertTrue(first[style].getClass().getSimpleName(), yDifference > 4D); - assertTrue(first[style].getClass().getSimpleName(), zDifference > 4D); - } - } - - @Test - public void octaveChangesAddDetailAndRestoreTheOriginalSamples() { - for (PatternNoise noise : textures(701L)) { - double[] original = new double[128]; - for (int index = 0; index < original.length; index++) { - original[index] = noise.noise(index * 0.071D, 0.193D, index * -0.113D); - } - noise.setOctaves(4); - double difference = 0D; - for (int index = 0; index < original.length; index++) { - difference += Math.abs(original[index] - noise.noise(index * 0.071D, 0.193D, index * -0.113D)); - } - assertTrue(noise.getClass().getSimpleName(), difference > 1D); - noise.setOctaves(0); - for (int index = 0; index < original.length; index++) { - assertEquals(original[index], noise.noise(index * 0.071D, 0.193D, index * -0.113D), 0D); - } - noise.setOctaves(16); - double maximum = noise.noise(0.173D, 0.193D, -0.391D); - noise.setOctaves(Integer.MAX_VALUE); - assertEquals(maximum, noise.noise(0.173D, 0.193D, -0.391D), 0D); - } - } - - @Test - public void textureSamplingHasNoIntegerCellSeams() { - for (PatternNoise noise : textures(913L)) { - for (int boundary = -4; boundary <= 4; boundary++) { - for (int index = 0; index < 64; index++) { - double first = index * 0.073D - 2D; - double second = index * -0.113D + 3D; - assertEquals(noise.noise(boundary - 1.0E-8D, first, second), - noise.noise(boundary + 1.0E-8D, first, second), 1.0E-5D); - assertEquals(noise.noise(first, boundary - 1.0E-8D, second), - noise.noise(first, boundary + 1.0E-8D, second), 1.0E-5D); - assertEquals(noise.noise(first, second, boundary - 1.0E-8D), - noise.noise(first, second, boundary + 1.0E-8D), 1.0E-5D); - } - } - } - } - - private static PatternNoise[] textures(long seed) { - return new PatternNoise[]{new GaborNoise(seed), new MarbleNoise(seed), new ScalesNoise(seed)}; - } -} diff --git a/core/src/test/java/art/arcane/iris/util/project/noise/TruchetNoiseTest.java b/core/src/test/java/art/arcane/iris/util/project/noise/TruchetNoiseTest.java deleted file mode 100644 index 9925a17ff..000000000 --- a/core/src/test/java/art/arcane/iris/util/project/noise/TruchetNoiseTest.java +++ /dev/null @@ -1,70 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import org.junit.Test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class TruchetNoiseTest { - @Test - public void quarterCircleRibbonsMeetAcrossTileBoundaries() { - TruchetNoise xBoundaryNoise = new TruchetNoise(0L); - TruchetNoise zBoundaryNoise = new TruchetNoise(-0x9E3779B97F4A7C15L); - double epsilon = 1.0E-8D; - double maximum = 0D; - - for (int cell = -3; cell <= 3; cell++) { - for (int index = 0; index <= 2048; index++) { - double position = index / 512D - 2D; - double x = cell - 0.17D; - double z = cell - 0.13D; - assertEquals(xBoundaryNoise.noise(x - epsilon, position), - xBoundaryNoise.noise(x + epsilon, position), 1.0E-5D); - assertEquals(zBoundaryNoise.noise(position, z - epsilon), - zBoundaryNoise.noise(position, z + epsilon), 1.0E-5D); - maximum = Math.max(maximum, xBoundaryNoise.noise(x, position)); - } - } - - assertTrue(maximum > 0.999D); - } - - @Test - public void helicalContinuationIsContinuousThroughTheHorizontalSlice() { - TruchetNoise noise = new TruchetNoise(713L); - double heightVariation = 0D; - double seedVariation = 0D; - TruchetNoise otherSeed = new TruchetNoise(714L); - - for (int index = 0; index < 256; index++) { - double x = index * 0.037D - 4D; - double z = index * -0.051D + 7D; - double horizontal = noise.noise(x, z); - assertEquals(horizontal, noise.noise(x, 0D, z), 0D); - assertEquals(horizontal, noise.noise(x, -1.0E-8D, z), 1.0E-5D); - assertEquals(horizontal, noise.noise(x, 1.0E-8D, z), 1.0E-5D); - heightVariation += Math.abs(horizontal - noise.noise(x, 1.25D, z)); - seedVariation += Math.abs(noise.noise(x) - otherSeed.noise(x)); - } - - assertTrue(heightVariation > 10D); - assertTrue(seedVariation > 10D); - } - - @Test - public void octavesStayBoundedAndRepeatableAtWorldBorders() { - TruchetNoise first = new TruchetNoise(Long.MIN_VALUE); - TruchetNoise second = new TruchetNoise(Long.MIN_VALUE); - - for (int octaves : new int[]{1, 4, 16}) { - first.setOctaves(octaves); - second.setOctaves(octaves); - for (double coordinate : new double[]{-468750D, -1D, -0D, 0.125D, 1D, 468750D}) { - double value = first.noise(coordinate, coordinate * 0.37D, coordinate * -0.71D); - assertTrue(Double.isFinite(value)); - assertTrue(value >= 0D && value <= 1D); - assertEquals(value, second.noise(coordinate, coordinate * 0.37D, coordinate * -0.71D), 0D); - } - } - } -} diff --git a/core/src/test/java/art/arcane/iris/util/project/noise/VortexNoiseTest.java b/core/src/test/java/art/arcane/iris/util/project/noise/VortexNoiseTest.java deleted file mode 100644 index a5bf94ed8..000000000 --- a/core/src/test/java/art/arcane/iris/util/project/noise/VortexNoiseTest.java +++ /dev/null @@ -1,37 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import org.junit.Test; - -import static org.junit.Assert.assertEquals; - -public class VortexNoiseTest { - @Test - public void spiralsStayContinuousAcrossCellBoundaries() { - for (long seed : new long[]{0L, 42L, Long.MAX_VALUE}) { - VortexNoise noise = new VortexNoise(seed); - for (int cell = -8; cell <= 8; cell++) { - for (int index = 0; index < 64; index++) { - double coordinate = index * 0.0713D - 2D; - assertEquals(noise.noise(cell - 1E-7D, 0.317D, coordinate), - noise.noise(cell + 1E-7D, 0.317D, coordinate), 1E-5D); - assertEquals(noise.noise(coordinate, 0.317D, cell - 1E-7D), - noise.noise(coordinate, 0.317D, cell + 1E-7D), 1E-5D); - } - } - } - } - - @Test - public void spiralCentersAndAngleWrapHaveNoJump() { - VortexNoise noise = new VortexNoise(0L); - double center = noise.noise(0.2D, 0.419D, 0.2D); - for (int index = 0; index < 128; index++) { - double angle = index * Math.PI / 64D; - assertEquals(center, noise.noise(0.2D + Math.cos(angle) * 1E-8D, 0.419D, - 0.2D + Math.sin(angle) * 1E-8D), 1E-6D); - double x = 0.2D - index * 0.007D; - assertEquals(noise.noise(x, 0.419D, 0.2D - 1E-8D), - noise.noise(x, 0.419D, 0.2D + 1E-8D), 1E-6D); - } - } -} diff --git a/core/src/test/java/art/arcane/iris/util/project/noise/WavePatternNoiseTest.java b/core/src/test/java/art/arcane/iris/util/project/noise/WavePatternNoiseTest.java deleted file mode 100644 index 35011d12d..000000000 --- a/core/src/test/java/art/arcane/iris/util/project/noise/WavePatternNoiseTest.java +++ /dev/null @@ -1,85 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import org.junit.Test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertTrue; - -public class WavePatternNoiseTest { - private static final long SEED = 813753L; - - @Test - public void wavePatternsAreSeededBoundedAndContinuousInEveryAxis() { - for (boolean gyroid : new boolean[]{true, false}) { - NoiseGenerator first = gyroid ? new GyroidNoise(SEED) : new QuasicrystalNoise(SEED); - NoiseGenerator repeated = gyroid ? new GyroidNoise(SEED) : new QuasicrystalNoise(SEED); - NoiseGenerator otherSeed = gyroid ? new GyroidNoise(SEED + 1) : new QuasicrystalNoise(SEED + 1); - double seedDifference = 0D; - double horizontalDifference = 0D; - double verticalDifference = 0D; - double depthDifference = 0D; - for (double origin : new double[]{-30_000_000D / 64D, 0D, 30_000_000D / 64D}) { - for (int i = 0; i < 128; i++) { - double x = origin + i * 0.137D; - double y = i * 0.193D - 7D; - double z = -origin + i * 0.317D; - double value = first.noise(x, y, z); - assertTrue(Double.isFinite(value) && value >= 0D && value <= 1D); - assertEquals(value, repeated.noise(x, y, z), 0D); - assertEquals(value, first.noise(x + 1E-6D, y, z), 1E-3D); - assertEquals(value, first.noise(x, y + 1E-6D, z), 1E-3D); - assertEquals(value, first.noise(x, y, z + 1E-6D), 1E-3D); - seedDifference += Math.abs(value - otherSeed.noise(x, y, z)); - horizontalDifference += Math.abs(value - first.noise(x + 0.137D, y, z)); - verticalDifference += Math.abs(value - first.noise(x, y + 0.137D, z)); - depthDifference += Math.abs(value - first.noise(x, y, z + 0.137D)); - } - } - assertTrue(seedDifference > 10D); - assertTrue(horizontalDifference > 10D); - assertTrue(verticalDifference > 10D); - assertTrue(depthDifference > 10D); - } - } - - @Test - public void quasicrystalPreservesFivefoldRotationalSymmetryAcrossLayers() { - QuasicrystalNoise noise = new QuasicrystalNoise(SEED); - double angle = Math.PI * 2D / 5D; - double cosine = Math.cos(angle); - double sine = Math.sin(angle); - for (int i = 0; i < 128; i++) { - double x = i * 0.137D - 8D; - double y = i * 0.031D; - double z = i * 0.219D - 13D; - double rotatedX = x * cosine - z * sine; - double rotatedZ = x * sine + z * cosine; - assertEquals(noise.noise(x, y, z), noise.noise(rotatedX, y, rotatedZ), 1E-12D); - } - assertNotEquals(noise.noise(0.19D, -0.37D), noise.noise(1.19D, -0.37D), 1E-4D); - } - - @Test - public void gyroidContainsBothOpenSpacesAndBrightSheets() { - GyroidNoise noise = new GyroidNoise(SEED); - int open = 0; - int sheet = 0; - int gradient = 0; - for (int x = -64; x < 64; x++) { - for (int z = -64; z < 64; z++) { - double value = noise.noise(x * 0.127D, z * 0.127D); - if (value < 0.05D) { - open++; - } else if (value > 0.8D) { - sheet++; - } else { - gradient++; - } - } - } - assertTrue(open > 1638 && open < 13_107); - assertTrue(sheet > 819); - assertTrue(gradient > 1638); - } -} diff --git a/core/src/test/java/art/arcane/iris/util/project/noise/WhiteNoiseTest.java b/core/src/test/java/art/arcane/iris/util/project/noise/WhiteNoiseTest.java deleted file mode 100644 index d09bc7bc4..000000000 --- a/core/src/test/java/art/arcane/iris/util/project/noise/WhiteNoiseTest.java +++ /dev/null @@ -1,40 +0,0 @@ -package art.arcane.iris.util.project.noise; - -import org.junit.Test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertTrue; - -public class WhiteNoiseTest { - @Test - public void scatterDoesNotRepeatEvery8192Blocks() { - WhiteNoise noise = new WhiteNoise(7153L); - for (double x : new double[]{-29999999.25D, -8192D, 0D, 37.5D, 8192D}) { - assertNotEquals(noise.noise(x, 73D), noise.noise(x + 8192D, 73D), 0D); - assertNotEquals(noise.noise(x, 53D, 73D), noise.noise(x, 53D, 73D + 8192D), 0D); - } - } - - @Test - public void fractionalCoordinatesRemainDistinctNearWorldBorder() { - WhiteNoise noise = new WhiteNoise(15273L); - double x = 29999111.25D; - assertNotEquals(noise.noise(x, -x), noise.noise(x + 0.0001D, -x), 0D); - assertNotEquals(noise.noise(x, 71.5D, -x), noise.noise(x, 71.5001D, -x), 0D); - } - - @Test - public void scatterIsRepeatableAndUsesFullSeed() { - WhiteNoise first = new WhiteNoise(725L); - WhiteNoise same = new WhiteNoise(725L); - WhiteNoise upperBits = new WhiteNoise(725L + (1L << 48)); - for (int index = 0; index < 512; index++) { - double x = index * 1.25D; - double value = first.noise(x, 53D, -x); - assertEquals(value, same.noise(x, 53D, -x), 0D); - assertTrue(value >= 0D && value <= 1D); - assertNotEquals(value, upperBits.noise(x, 53D, -x), 0D); - } - } -} diff --git a/core/src/test/java/art/arcane/iris/core/ExactWorldSlotPathPolicyTest.java b/core/src/test/java/art/arcane/iris/world/ExactWorldSlotPathPolicyTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/ExactWorldSlotPathPolicyTest.java rename to core/src/test/java/art/arcane/iris/world/ExactWorldSlotPathPolicyTest.java index 90630ea7f..c3be7df25 100644 --- a/core/src/test/java/art/arcane/iris/core/ExactWorldSlotPathPolicyTest.java +++ b/core/src/test/java/art/arcane/iris/world/ExactWorldSlotPathPolicyTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/tools/IrisCreatorDatapackPreparationTest.java b/core/src/test/java/art/arcane/iris/world/IrisCreatorDatapackPreparationTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/core/tools/IrisCreatorDatapackPreparationTest.java rename to core/src/test/java/art/arcane/iris/world/IrisCreatorDatapackPreparationTest.java index 53b7569bb..9f0ebd310 100644 --- a/core/src/test/java/art/arcane/iris/core/tools/IrisCreatorDatapackPreparationTest.java +++ b/core/src/test/java/art/arcane/iris/world/IrisCreatorDatapackPreparationTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.tools; +package art.arcane.iris.world; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/tools/IrisCreatorInitialSpawnTest.java b/core/src/test/java/art/arcane/iris/world/IrisCreatorInitialSpawnTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/core/tools/IrisCreatorInitialSpawnTest.java rename to core/src/test/java/art/arcane/iris/world/IrisCreatorInitialSpawnTest.java index 96643b551..ac1c977c0 100644 --- a/core/src/test/java/art/arcane/iris/core/tools/IrisCreatorInitialSpawnTest.java +++ b/core/src/test/java/art/arcane/iris/world/IrisCreatorInitialSpawnTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.tools; +package art.arcane.iris.world; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; import org.junit.Test; import java.util.concurrent.CompletableFuture; diff --git a/core/src/test/java/art/arcane/iris/core/tools/IrisCreatorTeleportTest.java b/core/src/test/java/art/arcane/iris/world/IrisCreatorTeleportTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/tools/IrisCreatorTeleportTest.java rename to core/src/test/java/art/arcane/iris/world/IrisCreatorTeleportTest.java index 34b409460..f32bd3944 100644 --- a/core/src/test/java/art/arcane/iris/core/tools/IrisCreatorTeleportTest.java +++ b/core/src/test/java/art/arcane/iris/world/IrisCreatorTeleportTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.tools; +package art.arcane.iris.world; -import art.arcane.iris.core.ServerConfigurator; -import art.arcane.iris.core.runtime.WorldRuntimeControlService; -import art.arcane.iris.util.common.plugin.VolmitSender; +import art.arcane.iris.pack.datapack.ServerConfigurator; +import art.arcane.iris.world.runtime.WorldRuntimeControlService; +import art.arcane.iris.platform.bukkit.plugin.VolmitSender; import org.bukkit.Chunk; import org.bukkit.Location; import org.bukkit.World; diff --git a/core/src/test/java/art/arcane/iris/core/IrisRuntimeSchedulerModeRoutingTest.java b/core/src/test/java/art/arcane/iris/world/IrisRuntimeSchedulerModeRoutingTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/core/IrisRuntimeSchedulerModeRoutingTest.java rename to core/src/test/java/art/arcane/iris/world/IrisRuntimeSchedulerModeRoutingTest.java index ca7b49e94..3c9bc9b47 100644 --- a/core/src/test/java/art/arcane/iris/core/IrisRuntimeSchedulerModeRoutingTest.java +++ b/core/src/test/java/art/arcane/iris/world/IrisRuntimeSchedulerModeRoutingTest.java @@ -1,4 +1,6 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; + +import art.arcane.iris.configuration.IrisSettings; import art.arcane.iris.testsupport.BukkitTestServer; import org.junit.Rule; diff --git a/core/src/test/java/art/arcane/iris/core/IrisSafeguardLockPolicyTest.java b/core/src/test/java/art/arcane/iris/world/IrisSafeguardLockPolicyTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/core/IrisSafeguardLockPolicyTest.java rename to core/src/test/java/art/arcane/iris/world/IrisSafeguardLockPolicyTest.java index 1f134d69e..bd884bb60 100644 --- a/core/src/test/java/art/arcane/iris/core/IrisSafeguardLockPolicyTest.java +++ b/core/src/test/java/art/arcane/iris/world/IrisSafeguardLockPolicyTest.java @@ -1,11 +1,11 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; -import art.arcane.iris.core.safeguard.IrisSafeguard; -import art.arcane.iris.core.safeguard.Mode; -import art.arcane.iris.core.safeguard.task.CheckResult; -import art.arcane.iris.core.safeguard.task.Diagnostic; -import art.arcane.iris.core.safeguard.task.Task; -import art.arcane.iris.core.safeguard.task.Tasks; +import art.arcane.iris.world.safeguard.IrisSafeguard; +import art.arcane.iris.world.safeguard.Mode; +import art.arcane.iris.world.safeguard.CheckResult; +import art.arcane.iris.world.safeguard.Diagnostic; +import art.arcane.iris.world.safeguard.Task; +import art.arcane.iris.world.safeguard.Tasks; import org.junit.After; import org.junit.Test; import org.mockito.MockedStatic; diff --git a/core/src/test/java/art/arcane/iris/core/IrisSafeguardTest.java b/core/src/test/java/art/arcane/iris/world/IrisSafeguardTest.java similarity index 91% rename from core/src/test/java/art/arcane/iris/core/IrisSafeguardTest.java rename to core/src/test/java/art/arcane/iris/world/IrisSafeguardTest.java index a3e5eb752..5a2b08d9d 100644 --- a/core/src/test/java/art/arcane/iris/core/IrisSafeguardTest.java +++ b/core/src/test/java/art/arcane/iris/world/IrisSafeguardTest.java @@ -1,9 +1,9 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; -import art.arcane.iris.core.safeguard.IrisSafeguard; -import art.arcane.iris.core.safeguard.Mode; -import art.arcane.iris.core.safeguard.task.Task; -import art.arcane.iris.core.safeguard.task.Tasks; +import art.arcane.iris.world.safeguard.IrisSafeguard; +import art.arcane.iris.world.safeguard.Mode; +import art.arcane.iris.world.safeguard.Task; +import art.arcane.iris.world.safeguard.Tasks; import art.arcane.iris.spi.IrisLogging; import org.junit.After; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/IrisStartupValidationTest.java b/core/src/test/java/art/arcane/iris/world/IrisStartupValidationTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/IrisStartupValidationTest.java rename to core/src/test/java/art/arcane/iris/world/IrisStartupValidationTest.java index 873bde608..fd74bc8b8 100644 --- a/core/src/test/java/art/arcane/iris/core/IrisStartupValidationTest.java +++ b/core/src/test/java/art/arcane/iris/world/IrisStartupValidationTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; import org.junit.After; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/tools/IrisToolbeltEvacuationTest.java b/core/src/test/java/art/arcane/iris/world/IrisToolbeltEvacuationTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/tools/IrisToolbeltEvacuationTest.java rename to core/src/test/java/art/arcane/iris/world/IrisToolbeltEvacuationTest.java index 18cca9f30..cc0927b61 100644 --- a/core/src/test/java/art/arcane/iris/core/tools/IrisToolbeltEvacuationTest.java +++ b/core/src/test/java/art/arcane/iris/world/IrisToolbeltEvacuationTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.tools; +package art.arcane.iris.world; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/tools/IrisToolbeltPackReferenceTest.java b/core/src/test/java/art/arcane/iris/world/IrisToolbeltPackReferenceTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/tools/IrisToolbeltPackReferenceTest.java rename to core/src/test/java/art/arcane/iris/world/IrisToolbeltPackReferenceTest.java index 669e58122..06ada9e84 100644 --- a/core/src/test/java/art/arcane/iris/core/tools/IrisToolbeltPackReferenceTest.java +++ b/core/src/test/java/art/arcane/iris/world/IrisToolbeltPackReferenceTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.tools; +package art.arcane.iris.world; -import art.arcane.iris.core.service.StudioSVC; +import art.arcane.iris.studio.StudioSVC; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.testsupport.PlatformLeakGuard; import org.bukkit.World; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisWorldBoundaryTest.java b/core/src/test/java/art/arcane/iris/world/IrisWorldBoundaryTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/object/IrisWorldBoundaryTest.java rename to core/src/test/java/art/arcane/iris/world/IrisWorldBoundaryTest.java index 39abe9b62..76a67beb4 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisWorldBoundaryTest.java +++ b/core/src/test/java/art/arcane/iris/world/IrisWorldBoundaryTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.world; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisWorldIdentityTest.java b/core/src/test/java/art/arcane/iris/world/IrisWorldIdentityTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/object/IrisWorldIdentityTest.java rename to core/src/test/java/art/arcane/iris/world/IrisWorldIdentityTest.java index 991582ceb..dad8497a3 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisWorldIdentityTest.java +++ b/core/src/test/java/art/arcane/iris/world/IrisWorldIdentityTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.world; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/core/src/test/java/art/arcane/iris/core/IrisWorldStorageTest.java b/core/src/test/java/art/arcane/iris/world/IrisWorldStorageTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/IrisWorldStorageTest.java rename to core/src/test/java/art/arcane/iris/world/IrisWorldStorageTest.java index b52f61f26..739ec1694 100644 --- a/core/src/test/java/art/arcane/iris/core/IrisWorldStorageTest.java +++ b/core/src/test/java/art/arcane/iris/world/IrisWorldStorageTest.java @@ -1,10 +1,10 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; -import art.arcane.iris.engine.history.GenerationEpoch; -import art.arcane.iris.engine.history.GenerationEpochContractFactory; -import art.arcane.iris.engine.history.GenerationHistory; -import art.arcane.iris.engine.history.GenerationPackFingerprint; -import art.arcane.iris.engine.history.GenerationRegistryContract; +import art.arcane.iris.world.history.GenerationEpoch; +import art.arcane.iris.world.history.GenerationEpochContractFactory; +import art.arcane.iris.world.history.GenerationHistory; +import art.arcane.iris.world.history.GenerationPackFingerprint; +import art.arcane.iris.world.history.GenerationRegistryContract; import org.bukkit.NamespacedKey; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/IrisWorldsTest.java b/core/src/test/java/art/arcane/iris/world/IrisWorldsTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/IrisWorldsTest.java rename to core/src/test/java/art/arcane/iris/world/IrisWorldsTest.java index 76942122a..8720a9a81 100644 --- a/core/src/test/java/art/arcane/iris/core/IrisWorldsTest.java +++ b/core/src/test/java/art/arcane/iris/world/IrisWorldsTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; -import art.arcane.iris.core.lifecycle.MissingWorldStorageLog; +import art.arcane.iris.world.lifecycle.MissingWorldStorageLog; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; diff --git a/core/src/test/java/art/arcane/iris/core/ProgressBossBarToggleTest.java b/core/src/test/java/art/arcane/iris/world/ProgressBossBarToggleTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/core/ProgressBossBarToggleTest.java rename to core/src/test/java/art/arcane/iris/world/ProgressBossBarToggleTest.java index b137b3d9d..f17269f0d 100644 --- a/core/src/test/java/art/arcane/iris/core/ProgressBossBarToggleTest.java +++ b/core/src/test/java/art/arcane/iris/world/ProgressBossBarToggleTest.java @@ -1,4 +1,6 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; + +import art.arcane.iris.configuration.IrisSettings; import art.arcane.iris.platform.bukkit.BukkitPlatform; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/SnapshotDirectoryTreeDeleterTest.java b/core/src/test/java/art/arcane/iris/world/SnapshotDirectoryTreeDeleterTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/SnapshotDirectoryTreeDeleterTest.java rename to core/src/test/java/art/arcane/iris/world/SnapshotDirectoryTreeDeleterTest.java index 20339f278..139953343 100644 --- a/core/src/test/java/art/arcane/iris/core/SnapshotDirectoryTreeDeleterTest.java +++ b/core/src/test/java/art/arcane/iris/world/SnapshotDirectoryTreeDeleterTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/tools/WorldCreationProgressReporterTest.java b/core/src/test/java/art/arcane/iris/world/WorldCreationProgressReporterTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/core/tools/WorldCreationProgressReporterTest.java rename to core/src/test/java/art/arcane/iris/world/WorldCreationProgressReporterTest.java index d948d7930..1a890873a 100644 --- a/core/src/test/java/art/arcane/iris/core/tools/WorldCreationProgressReporterTest.java +++ b/core/src/test/java/art/arcane/iris/world/WorldCreationProgressReporterTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.tools; +package art.arcane.iris.world; -import art.arcane.iris.core.localization.RuntimeProgressMessages; -import art.arcane.iris.util.common.format.C; +import art.arcane.iris.localization.RuntimeProgressMessages; +import art.arcane.iris.localization.C; import org.junit.Test; import static org.junit.Assert.assertEquals; diff --git a/core/src/test/java/art/arcane/iris/core/WorldCreatorCompatTest.java b/core/src/test/java/art/arcane/iris/world/WorldCreatorCompatTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/WorldCreatorCompatTest.java rename to core/src/test/java/art/arcane/iris/world/WorldCreatorCompatTest.java index 219fbdbd5..9c4dbf0f4 100644 --- a/core/src/test/java/art/arcane/iris/core/WorldCreatorCompatTest.java +++ b/core/src/test/java/art/arcane/iris/world/WorldCreatorCompatTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core; +package art.arcane.iris.world; import org.bukkit.NamespacedKey; import org.bukkit.WorldCreator; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisEffectSurfaceTest.java b/core/src/test/java/art/arcane/iris/world/entity/IrisEffectSurfaceTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/object/IrisEffectSurfaceTest.java rename to core/src/test/java/art/arcane/iris/world/entity/IrisEffectSurfaceTest.java index 37c378444..ed6a7c65f 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisEffectSurfaceTest.java +++ b/core/src/test/java/art/arcane/iris/world/entity/IrisEffectSurfaceTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.world.entity; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import org.bukkit.HeightMap; import org.bukkit.Location; import org.bukkit.Particle; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisEntitySpawnTest.java b/core/src/test/java/art/arcane/iris/world/entity/IrisEntitySpawnTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/object/IrisEntitySpawnTest.java rename to core/src/test/java/art/arcane/iris/world/entity/IrisEntitySpawnTest.java index c05659b0d..dec397689 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisEntitySpawnTest.java +++ b/core/src/test/java/art/arcane/iris/world/entity/IrisEntitySpawnTest.java @@ -1,7 +1,10 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.world.entity; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.SeedManager; +import art.arcane.iris.generation.decoration.IrisSurface; +import art.arcane.iris.pack.value.IrisPosition; + +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.SeedManager; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.platform.bukkit.BukkitWorldBinding; import art.arcane.volmlib.util.collection.KList; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisSpawnerCompatTest.java b/core/src/test/java/art/arcane/iris/world/entity/IrisSpawnerCompatTest.java similarity index 83% rename from core/src/test/java/art/arcane/iris/engine/object/IrisSpawnerCompatTest.java rename to core/src/test/java/art/arcane/iris/world/entity/IrisSpawnerCompatTest.java index d5dc42e95..e530c6dd2 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisSpawnerCompatTest.java +++ b/core/src/test/java/art/arcane/iris/world/entity/IrisSpawnerCompatTest.java @@ -1,23 +1,25 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.world.entity; -import art.arcane.iris.core.compat.CompatAction; -import art.arcane.iris.core.compat.CompatFinding; -import art.arcane.iris.core.compat.CompatRegistry; -import art.arcane.iris.core.compat.CompatStatus; -import art.arcane.iris.core.compat.ContentGate; -import art.arcane.iris.core.compat.PackCompatReport; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.testsupport.PackCompatFixtures; + +import art.arcane.iris.pack.validation.CompatAction; +import art.arcane.iris.pack.validation.CompatFinding; +import art.arcane.iris.pack.validation.CompatRegistry; +import art.arcane.iris.pack.validation.CompatStatus; +import art.arcane.iris.pack.validation.ContentGate; +import art.arcane.iris.pack.validation.PackCompatReport; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.volmlib.util.collection.KList; import org.junit.Test; import java.util.Map; -import static art.arcane.iris.engine.object.PackCompatFixtures.MISSING_ENTITY; -import static art.arcane.iris.engine.object.PackCompatFixtures.entity; -import static art.arcane.iris.engine.object.PackCompatFixtures.excludeEntity; -import static art.arcane.iris.engine.object.PackCompatFixtures.find; +import static art.arcane.iris.testsupport.PackCompatFixtures.MISSING_ENTITY; +import static art.arcane.iris.testsupport.PackCompatFixtures.entity; +import static art.arcane.iris.testsupport.PackCompatFixtures.excludeEntity; +import static art.arcane.iris.testsupport.PackCompatFixtures.find; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; diff --git a/core/src/test/java/art/arcane/iris/engine/history/ArchivedRegistryCompilerTest.java b/core/src/test/java/art/arcane/iris/world/history/ArchivedRegistryCompilerTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/history/ArchivedRegistryCompilerTest.java rename to core/src/test/java/art/arcane/iris/world/history/ArchivedRegistryCompilerTest.java index 1a87ca0c1..365211887 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/ArchivedRegistryCompilerTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/ArchivedRegistryCompilerTest.java @@ -1,10 +1,10 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.core.IrisDatapackCompiler; -import art.arcane.iris.core.pack.AtomicDirectoryPublisher; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.nms.datapack.v1217.DataFixerV1217; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.pack.datapack.IrisDatapackCompiler; +import art.arcane.iris.pack.AtomicDirectoryPublisher; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.platform.bukkit.nms.datapack.v1217.DataFixerV1217; +import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformGenerationRegistry; diff --git a/core/src/test/java/art/arcane/iris/engine/history/ArchivedSemanticQueryTest.java b/core/src/test/java/art/arcane/iris/world/history/ArchivedSemanticQueryTest.java similarity index 92% rename from core/src/test/java/art/arcane/iris/engine/history/ArchivedSemanticQueryTest.java rename to core/src/test/java/art/arcane/iris/world/history/ArchivedSemanticQueryTest.java index 3698d59e5..9da189216 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/ArchivedSemanticQueryTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/ArchivedSemanticQueryTest.java @@ -1,9 +1,7 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.core.nms.container.BlockPos; -import art.arcane.iris.core.nms.container.Pair; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.core.pack.AtomicDirectoryPublisher; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.pack.AtomicDirectoryPublisher; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; @@ -57,7 +55,7 @@ public final class ArchivedSemanticQueryTest { IrisEngine engine = engine(archived); assertEquals(Set.of("iris:removed_object"), engine.getObjectsAt(-2, 3)); - assertEquals(Set.of(new Pair<>("buried_treasure", new BlockPos(-30, 70, 51))), engine.getPOIsAt(-2, 3)); + assertEquals(Set.of(new ChunkGenerationSemantics.PointOfInterest("buried_treasure", new ChunkGenerationSemantics.BlockPosition(-30, 70, 51))), engine.getPOIsAt(-2, 3)); verify(engine, never()).getMantle(); verify(engine, never()).openGenerationHistoryCoordinateScope(anyInt(), anyInt()); } diff --git a/core/src/test/java/art/arcane/iris/engine/history/BoundaryColumnGeometryTest.java b/core/src/test/java/art/arcane/iris/world/history/BoundaryColumnGeometryTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/BoundaryColumnGeometryTest.java rename to core/src/test/java/art/arcane/iris/world/history/BoundaryColumnGeometryTest.java index 11d925230..6075f0aa0 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/BoundaryColumnGeometryTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/BoundaryColumnGeometryTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/history/BoundarySamplingConcurrencyTest.java b/core/src/test/java/art/arcane/iris/world/history/BoundarySamplingConcurrencyTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/BoundarySamplingConcurrencyTest.java rename to core/src/test/java/art/arcane/iris/world/history/BoundarySamplingConcurrencyTest.java index 25a062b1a..7433454b6 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/BoundarySamplingConcurrencyTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/BoundarySamplingConcurrencyTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import art.arcane.iris.testsupport.DurabilityMode; import org.junit.ClassRule; diff --git a/core/src/test/java/art/arcane/iris/engine/history/ChunkGenerationOwnershipTest.java b/core/src/test/java/art/arcane/iris/world/history/ChunkGenerationOwnershipTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/ChunkGenerationOwnershipTest.java rename to core/src/test/java/art/arcane/iris/world/history/ChunkGenerationOwnershipTest.java index d6b7f574c..050e7d516 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/ChunkGenerationOwnershipTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/ChunkGenerationOwnershipTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import art.arcane.iris.testsupport.DurabilityMode; import org.junit.Assume; diff --git a/core/src/test/java/art/arcane/iris/engine/history/ChunkGenerationSemanticsTest.java b/core/src/test/java/art/arcane/iris/world/history/ChunkGenerationSemanticsTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/ChunkGenerationSemanticsTest.java rename to core/src/test/java/art/arcane/iris/world/history/ChunkGenerationSemanticsTest.java index 0f2692f82..2c6c04dcd 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/ChunkGenerationSemanticsTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/ChunkGenerationSemanticsTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/history/DenseTransitionGeometryReference.java b/core/src/test/java/art/arcane/iris/world/history/DenseTransitionGeometryReference.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/DenseTransitionGeometryReference.java rename to core/src/test/java/art/arcane/iris/world/history/DenseTransitionGeometryReference.java index 6b0bd2b00..bbf9fefc0 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/DenseTransitionGeometryReference.java +++ b/core/src/test/java/art/arcane/iris/world/history/DenseTransitionGeometryReference.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import java.util.ArrayList; import java.util.List; diff --git a/core/src/test/java/art/arcane/iris/engine/history/FloatingBiomeOverlayTest.java b/core/src/test/java/art/arcane/iris/world/history/FloatingBiomeOverlayTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/history/FloatingBiomeOverlayTest.java rename to core/src/test/java/art/arcane/iris/world/history/FloatingBiomeOverlayTest.java index 7e72f3657..8fd542216 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/FloatingBiomeOverlayTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/FloatingBiomeOverlayTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationAdmissionTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationAdmissionTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationAdmissionTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationAdmissionTest.java index 08754886e..996a57d89 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationAdmissionTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationAdmissionTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import art.arcane.iris.testsupport.Await; import org.junit.Rule; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationBlendTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationBlendTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationBlendTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationBlendTest.java index a69135466..305c52f96 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationBlendTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationBlendTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationBoundaryStoreTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationBoundaryStoreTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationBoundaryStoreTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationBoundaryStoreTest.java index a1c821a4f..d2a236883 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationBoundaryStoreTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationBoundaryStoreTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import org.junit.Assume; import org.junit.Rule; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationBoundaryTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationBoundaryTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationBoundaryTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationBoundaryTest.java index 81dc412ee..106146a9a 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationBoundaryTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationBoundaryTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationBuildRevisionTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationBuildRevisionTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationBuildRevisionTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationBuildRevisionTest.java index 6703106c0..ce8d1431f 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationBuildRevisionTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationBuildRevisionTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationEpochContractFactoryTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationEpochContractFactoryTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationEpochContractFactoryTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationEpochContractFactoryTest.java index c37b69dff..801d50d2f 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationEpochContractFactoryTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationEpochContractFactoryTest.java @@ -1,15 +1,15 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.core.nms.datapack.IDataFixer; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisDimensionMode; -import art.arcane.iris.engine.object.IrisDimensionModeType; -import art.arcane.iris.engine.object.IrisDimensionType; -import art.arcane.iris.engine.object.IrisDimensionTypeOptions; -import art.arcane.iris.engine.object.IrisEnvironment; -import art.arcane.iris.engine.object.IrisRange; +import art.arcane.iris.platform.bukkit.nms.datapack.IDataFixer; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisDimensionMode; +import art.arcane.iris.generation.terrain.IrisDimensionModeType; +import art.arcane.iris.generation.terrain.IrisDimensionType; +import art.arcane.iris.generation.terrain.IrisDimensionTypeOptions; +import art.arcane.iris.world.IrisEnvironment; +import art.arcane.iris.pack.value.IrisRange; import art.arcane.volmlib.util.json.JSONObject; import org.junit.Test; import org.junit.Rule; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationEpochTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationEpochTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationEpochTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationEpochTest.java index 38014f728..f1a255a9c 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationEpochTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationEpochTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import com.google.gson.JsonObject; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationFindCatalogTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationFindCatalogTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationFindCatalogTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationFindCatalogTest.java index 4e4de0a90..c97dbd572 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationFindCatalogTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationFindCatalogTest.java @@ -1,12 +1,12 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.structure.object.IrisObject; +import art.arcane.iris.generation.terrain.IrisRegion; import art.arcane.volmlib.util.collection.KList; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationHistoryAdmissionTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationHistoryAdmissionTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationHistoryAdmissionTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationHistoryAdmissionTest.java index e3f8d4bd2..6f7e70017 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationHistoryAdmissionTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationHistoryAdmissionTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import art.arcane.iris.testsupport.Await; import org.junit.Rule; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationHistoryLegacyAdoptionTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationHistoryLegacyAdoptionTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationHistoryLegacyAdoptionTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationHistoryLegacyAdoptionTest.java index b354f6088..e4ef09a7e 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationHistoryLegacyAdoptionTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationHistoryLegacyAdoptionTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import java.io.IOException; import java.nio.file.Files; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationHistoryPathsTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationHistoryPathsTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationHistoryPathsTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationHistoryPathsTest.java index b83b2487f..cefee05d3 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationHistoryPathsTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationHistoryPathsTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationHistoryRecoveryTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationHistoryRecoveryTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationHistoryRecoveryTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationHistoryRecoveryTest.java index b38d3bdd0..0afd65ea8 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationHistoryRecoveryTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationHistoryRecoveryTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import java.io.IOException; import java.nio.file.Files; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationHistoryRuntimeRouterLifecycleTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationHistoryRuntimeRouterLifecycleTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationHistoryRuntimeRouterLifecycleTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationHistoryRuntimeRouterLifecycleTest.java index b4431a952..524ce19e6 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationHistoryRuntimeRouterLifecycleTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationHistoryRuntimeRouterLifecycleTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.engine.IrisEngine; +import art.arcane.iris.generation.runtime.IrisEngine; import org.junit.Test; import java.nio.file.Files; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationHistoryRuntimeRouterPromotionTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationHistoryRuntimeRouterPromotionTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationHistoryRuntimeRouterPromotionTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationHistoryRuntimeRouterPromotionTest.java index bd2049db6..02143aec9 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationHistoryRuntimeRouterPromotionTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationHistoryRuntimeRouterPromotionTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.engine.IrisEngine; +import art.arcane.iris.generation.runtime.IrisEngine; import art.arcane.volmlib.util.mantle.runtime.Mantle; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationHistoryRuntimeRouterRoutingTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationHistoryRuntimeRouterRoutingTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationHistoryRuntimeRouterRoutingTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationHistoryRuntimeRouterRoutingTest.java index df4e7fd20..11041f806 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationHistoryRuntimeRouterRoutingTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationHistoryRuntimeRouterRoutingTest.java @@ -1,13 +1,13 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.pack.AtomicDirectoryPublisher; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.IrisEngineMantle; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.mantle.EngineMantle; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.AtomicDirectoryPublisher; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.runtime.IrisEngineMantle; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.generation.mantle.EngineMantle; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.matter.Matter; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationHistoryRuntimeRouterSupport.java b/core/src/test/java/art/arcane/iris/world/history/GenerationHistoryRuntimeRouterSupport.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationHistoryRuntimeRouterSupport.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationHistoryRuntimeRouterSupport.java index ec0488ddd..e28d2f5c5 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationHistoryRuntimeRouterSupport.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationHistoryRuntimeRouterSupport.java @@ -1,10 +1,10 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.GenerationSessionManager; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.util.common.data.B; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.GenerationSessionManager; +import art.arcane.iris.generation.mantle.EngineMantle; +import art.arcane.iris.generation.block.B; import art.arcane.iris.spi.PlatformBlockState; import org.junit.BeforeClass; import org.mockito.MockedStatic; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationHistoryStoreTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationHistoryStoreTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationHistoryStoreTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationHistoryStoreTest.java index 47a5a0673..ae837c47d 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationHistoryStoreTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationHistoryStoreTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import art.arcane.iris.testsupport.DurabilityMode; import com.google.gson.JsonObject; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationHistorySupport.java b/core/src/test/java/art/arcane/iris/world/history/GenerationHistorySupport.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationHistorySupport.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationHistorySupport.java index 164296acf..fd62aa3c7 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationHistorySupport.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationHistorySupport.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import art.arcane.iris.testsupport.DurabilityMode; import org.junit.ClassRule; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationHistoryTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationHistoryTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationHistoryTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationHistoryTest.java index 6e70d4723..860f81e27 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationHistoryTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationHistoryTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import java.io.IOException; import java.nio.file.Files; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationKernelCatalogTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationKernelCatalogTest.java similarity index 92% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationKernelCatalogTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationKernelCatalogTest.java index dd4a4698c..c0c970220 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationKernelCatalogTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationKernelCatalogTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import org.junit.Test; @@ -29,7 +29,7 @@ public class GenerationKernelCatalogTest { public void installedCatalogUsesItsBuildFactoryAndAlgorithms() throws Exception { GenerationKernelRegistry registry = GenerationKernelCatalog.load(); GenerationBuildRevision.Descriptor revision = GenerationBuildRevision.load(1); - assertEquals("art.arcane.iris.engine.history.GenerationKernelV1", revision.factoryClass()); + assertEquals("art.arcane.iris.world.history.GenerationKernelV1", revision.factoryClass()); assertEquals(revision.fingerprint(), registry.select(new GenerationKernelRegistry.Version(1, 1, 1)) .implementationFingerprint()); assertThrows(IOException.class, () -> registry.select(new GenerationKernelRegistry.Version(1, 2, 1))); diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationKernelRegistryTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationKernelRegistryTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationKernelRegistryTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationKernelRegistryTest.java index 84b02e728..a020c9dfd 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationKernelRegistryTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationKernelRegistryTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.framework.SeedManager; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.runtime.SeedManager; import org.junit.Test; import java.io.IOException; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationManifestTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationManifestTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationManifestTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationManifestTest.java index dff25e3ea..db0a45217 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationManifestTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationManifestTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationOrphanRecoveryTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationOrphanRecoveryTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationOrphanRecoveryTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationOrphanRecoveryTest.java index 11599ad41..4f404ca7d 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationOrphanRecoveryTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationOrphanRecoveryTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationPackFingerprintTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationPackFingerprintTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationPackFingerprintTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationPackFingerprintTest.java index 3e8e679ef..962b0590b 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationPackFingerprintTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationPackFingerprintTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import org.junit.Assume; import org.junit.Rule; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationPackRepositoryTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationPackRepositoryTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationPackRepositoryTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationPackRepositoryTest.java index e42e5b942..8df763740 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationPackRepositoryTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationPackRepositoryTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import org.junit.Assume; import org.junit.Rule; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationRegistryContractFactoryTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationRegistryContractFactoryTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationRegistryContractFactoryTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationRegistryContractFactoryTest.java index 0cadc095c..d6b821fbd 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationRegistryContractFactoryTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationRegistryContractFactoryTest.java @@ -1,19 +1,19 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.core.compat.ContentGate; -import art.arcane.iris.core.compat.KeyStatus; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.core.nms.datapack.DataVersion; -import art.arcane.iris.core.nms.datapack.IDataFixer; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBiomeCustom; -import art.arcane.iris.engine.object.IrisBiomeCustomSpawn; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisDimensionType; -import art.arcane.iris.engine.object.IrisDimensionTypeOptions; -import art.arcane.iris.engine.object.IrisNativeStructure; -import art.arcane.iris.engine.object.IrisStructurePlacement; +import art.arcane.iris.pack.validation.ContentGate; +import art.arcane.iris.pack.validation.KeyStatus; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.platform.bukkit.nms.datapack.DataVersion; +import art.arcane.iris.platform.bukkit.nms.datapack.IDataFixer; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiomeCustom; +import art.arcane.iris.generation.biome.IrisBiomeCustomSpawn; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisDimensionType; +import art.arcane.iris.generation.terrain.IrisDimensionTypeOptions; +import art.arcane.iris.structure.nativegen.IrisNativeStructure; +import art.arcane.iris.structure.placement.IrisStructurePlacement; import art.arcane.iris.spi.PlatformGenerationRegistry; import art.arcane.iris.spi.PlatformRegistries; import art.arcane.volmlib.util.collection.KList; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationRegistryContractTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationRegistryContractTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationRegistryContractTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationRegistryContractTest.java index 3debbd347..b0648fcb2 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationRegistryContractTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationRegistryContractTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import com.google.gson.JsonArray; import com.google.gson.JsonElement; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationSemanticBatchWriteTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationSemanticBatchWriteTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationSemanticBatchWriteTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationSemanticBatchWriteTest.java index 443c043d3..6f435686c 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationSemanticBatchWriteTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationSemanticBatchWriteTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationSemanticCaptureTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationSemanticCaptureTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationSemanticCaptureTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationSemanticCaptureTest.java index 44f919139..2368de790 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationSemanticCaptureTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationSemanticCaptureTest.java @@ -1,16 +1,14 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.core.nms.container.BlockPos; -import art.arcane.iris.core.nms.container.Pair; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.StructurePlacementMarker; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.placement.StructurePlacementMarker; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.generation.mantle.EngineMantle; +import art.arcane.iris.generation.biome.IrisBiome; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.common.data.B; +import art.arcane.iris.generation.block.B; import art.arcane.volmlib.util.function.Consumer4; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.matter.Matter; @@ -179,7 +177,7 @@ public final class GenerationSemanticCaptureTest { }).when(mantle).iterateChunk(eq(-2), eq(3), eq(MatterStructurePOI.class), any()); doCallRealMethod().when(engine).getPOIsAt(anyInt(), anyInt()); - assertEquals(Set.of(new Pair<>("buried_treasure", new BlockPos(-30, 70, 51))), engine.getPOIsAt(-2, 3)); + assertEquals(Set.of(new ChunkGenerationSemantics.PointOfInterest("buried_treasure", new ChunkGenerationSemantics.BlockPosition(-30, 70, 51))), engine.getPOIsAt(-2, 3)); } private static final class Fixture { diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationSemanticIndexTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationSemanticIndexTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationSemanticIndexTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationSemanticIndexTest.java index b78e1b66f..f0d9b4de5 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationSemanticIndexTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationSemanticIndexTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; import art.arcane.iris.testsupport.DurabilityMode; import it.unimi.dsi.fastutil.longs.LongOpenHashSet; import org.junit.ClassRule; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationSemanticJournalWriteTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationSemanticJournalWriteTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationSemanticJournalWriteTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationSemanticJournalWriteTest.java index 8da4e1de2..e3743c60a 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationSemanticJournalWriteTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationSemanticJournalWriteTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationSemanticKeyValidationTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationSemanticKeyValidationTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationSemanticKeyValidationTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationSemanticKeyValidationTest.java index 95059f44e..81864cace 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationSemanticKeyValidationTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationSemanticKeyValidationTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationSemanticPointReadTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationSemanticPointReadTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationSemanticPointReadTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationSemanticPointReadTest.java index eb4dc251e..e2ce86e0e 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationSemanticPointReadTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationSemanticPointReadTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationSemanticQueriesTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationSemanticQueriesTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationSemanticQueriesTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationSemanticQueriesTest.java index a38b6c5a5..d4d3926e2 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationSemanticQueriesTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationSemanticQueriesTest.java @@ -1,13 +1,13 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.framework.IrisStructureLocator; -import art.arcane.iris.engine.hydrology.HydrologyFeatureQuery; -import art.arcane.iris.engine.hydrology.HydrologyFeatureRef; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.engine.hydrology.runtime.IrisHydrologyRuntime; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.structure.placement.IrisStructureLocator; +import art.arcane.iris.generation.hydrology.HydrologyFeatureQuery; +import art.arcane.iris.generation.hydrology.HydrologyFeatureRef; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.hydrology.runtime.IrisHydrologyRuntime; +import art.arcane.iris.generation.terrain.IrisDimension; import org.junit.Test; import org.mockito.MockedStatic; diff --git a/core/src/test/java/art/arcane/iris/engine/history/GenerationTransitionTest.java b/core/src/test/java/art/arcane/iris/world/history/GenerationTransitionTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/history/GenerationTransitionTest.java rename to core/src/test/java/art/arcane/iris/world/history/GenerationTransitionTest.java index 4fcb68529..0b620cdb5 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/GenerationTransitionTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/GenerationTransitionTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import com.google.gson.JsonObject; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/history/IrisBoundarySignatureSamplerTest.java b/core/src/test/java/art/arcane/iris/world/history/IrisBoundarySignatureSamplerTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/engine/history/IrisBoundarySignatureSamplerTest.java rename to core/src/test/java/art/arcane/iris/world/history/IrisBoundarySignatureSamplerTest.java index 7143212c1..ca5ba0f33 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/IrisBoundarySignatureSamplerTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/IrisBoundarySignatureSamplerTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.framework.EnginePlatformHooks; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.runtime.EnginePlatformHooks; import org.junit.Test; import java.io.IOException; diff --git a/core/src/test/java/art/arcane/iris/engine/history/NativeBiomeSpawnSelectionTest.java b/core/src/test/java/art/arcane/iris/world/history/NativeBiomeSpawnSelectionTest.java similarity index 92% rename from core/src/test/java/art/arcane/iris/engine/history/NativeBiomeSpawnSelectionTest.java rename to core/src/test/java/art/arcane/iris/world/history/NativeBiomeSpawnSelectionTest.java index 0e304e087..b340f2180 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/NativeBiomeSpawnSelectionTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/NativeBiomeSpawnSelectionTest.java @@ -1,11 +1,11 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBiomeCustom; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.util.common.data.DataProvider; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiomeCustom; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.block.DataProvider; import art.arcane.volmlib.util.collection.KList; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/history/NativeTerrainReceiptTest.java b/core/src/test/java/art/arcane/iris/world/history/NativeTerrainReceiptTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/NativeTerrainReceiptTest.java rename to core/src/test/java/art/arcane/iris/world/history/NativeTerrainReceiptTest.java index 881afb3b1..3d6dbf755 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/NativeTerrainReceiptTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/NativeTerrainReceiptTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/history/RegionGenerationOwnershipTest.java b/core/src/test/java/art/arcane/iris/world/history/RegionGenerationOwnershipTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/RegionGenerationOwnershipTest.java rename to core/src/test/java/art/arcane/iris/world/history/RegionGenerationOwnershipTest.java index 469c6954b..64d6050a6 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/RegionGenerationOwnershipTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/RegionGenerationOwnershipTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/history/SavedBiomeCaptureTest.java b/core/src/test/java/art/arcane/iris/world/history/SavedBiomeCaptureTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/history/SavedBiomeCaptureTest.java rename to core/src/test/java/art/arcane/iris/world/history/SavedBiomeCaptureTest.java index aabd5cc93..eaf64d98f 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/SavedBiomeCaptureTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/SavedBiomeCaptureTest.java @@ -1,9 +1,9 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.InferredType; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.terrain.InferredType; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisRegion; import org.junit.Test; import static org.junit.Assert.assertEquals; diff --git a/core/src/test/java/art/arcane/iris/engine/history/SavedBiomeRecoveryTest.java b/core/src/test/java/art/arcane/iris/world/history/SavedBiomeRecoveryTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/engine/history/SavedBiomeRecoveryTest.java rename to core/src/test/java/art/arcane/iris/world/history/SavedBiomeRecoveryTest.java index 9f9360416..86c446057 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/SavedBiomeRecoveryTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/SavedBiomeRecoveryTest.java @@ -1,13 +1,13 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisDimensionCarvingEntry; -import art.arcane.iris.engine.object.IrisDimensionStack; -import art.arcane.iris.engine.object.IrisFloatingChildBiomes; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisRiverPolicy; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisDimensionCarvingEntry; +import art.arcane.iris.generation.terrain.IrisDimensionStack; +import art.arcane.iris.generation.biome.IrisFloatingChildBiomes; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.generation.hydrology.IrisRiverPolicy; import art.arcane.volmlib.util.collection.KList; import org.junit.Before; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/history/SavedBiomeRuntimeTest.java b/core/src/test/java/art/arcane/iris/world/history/SavedBiomeRuntimeTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/history/SavedBiomeRuntimeTest.java rename to core/src/test/java/art/arcane/iris/world/history/SavedBiomeRuntimeTest.java index 031b4b8c7..77df500eb 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/SavedBiomeRuntimeTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/SavedBiomeRuntimeTest.java @@ -1,13 +1,13 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.framework.BiomeEnvironment; -import art.arcane.iris.engine.framework.PreservationRegistry; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.runtime.BiomeEnvironment; +import art.arcane.iris.generation.runtime.PreservationRegistry; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.testsupport.Await; import art.arcane.iris.testsupport.PlatformLeakGuard; diff --git a/core/src/test/java/art/arcane/iris/engine/history/SavedBiomeStoreBatchTest.java b/core/src/test/java/art/arcane/iris/world/history/SavedBiomeStoreBatchTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/SavedBiomeStoreBatchTest.java rename to core/src/test/java/art/arcane/iris/world/history/SavedBiomeStoreBatchTest.java index b40a2ef7a..0362d08b2 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/SavedBiomeStoreBatchTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/SavedBiomeStoreBatchTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import art.arcane.iris.testsupport.Await; import org.junit.Rule; diff --git a/core/src/test/java/art/arcane/iris/engine/history/SavedBiomeStoreTest.java b/core/src/test/java/art/arcane/iris/world/history/SavedBiomeStoreTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/SavedBiomeStoreTest.java rename to core/src/test/java/art/arcane/iris/world/history/SavedBiomeStoreTest.java index 48bea64b4..aa6bf022c 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/SavedBiomeStoreTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/SavedBiomeStoreTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/history/SavedBiomeStoreWriteTest.java b/core/src/test/java/art/arcane/iris/world/history/SavedBiomeStoreWriteTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/SavedBiomeStoreWriteTest.java rename to core/src/test/java/art/arcane/iris/world/history/SavedBiomeStoreWriteTest.java index 42788c532..1360c4580 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/SavedBiomeStoreWriteTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/SavedBiomeStoreWriteTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/history/SavedTerrainChunkTest.java b/core/src/test/java/art/arcane/iris/world/history/SavedTerrainChunkTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/SavedTerrainChunkTest.java rename to core/src/test/java/art/arcane/iris/world/history/SavedTerrainChunkTest.java index 4210546ae..26e1c397c 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/SavedTerrainChunkTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/SavedTerrainChunkTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import art.arcane.volmlib.util.nbt.io.NBTUtil; import art.arcane.volmlib.util.nbt.tag.CompoundTag; diff --git a/core/src/test/java/art/arcane/iris/engine/history/SavedTerrainTestRegion.java b/core/src/test/java/art/arcane/iris/world/history/SavedTerrainTestRegion.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/history/SavedTerrainTestRegion.java rename to core/src/test/java/art/arcane/iris/world/history/SavedTerrainTestRegion.java index 05f44bb09..2a21af402 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/SavedTerrainTestRegion.java +++ b/core/src/test/java/art/arcane/iris/world/history/SavedTerrainTestRegion.java @@ -1,6 +1,6 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; -import art.arcane.iris.util.nbt.common.mca.MCAFile; +import art.arcane.iris.world.storage.region.MCAFile; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; diff --git a/core/src/test/java/art/arcane/iris/engine/history/TerrainBoundarySignatureStoreTest.java b/core/src/test/java/art/arcane/iris/world/history/TerrainBoundarySignatureStoreTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/TerrainBoundarySignatureStoreTest.java rename to core/src/test/java/art/arcane/iris/world/history/TerrainBoundarySignatureStoreTest.java index 4cd09bac1..ec08808b9 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/TerrainBoundarySignatureStoreTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/TerrainBoundarySignatureStoreTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import org.junit.Assume; import org.junit.Rule; diff --git a/core/src/test/java/art/arcane/iris/engine/history/TerrainBoundarySignatureTest.java b/core/src/test/java/art/arcane/iris/world/history/TerrainBoundarySignatureTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/engine/history/TerrainBoundarySignatureTest.java rename to core/src/test/java/art/arcane/iris/world/history/TerrainBoundarySignatureTest.java index 2d090e3b4..2dbe59ae5 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/TerrainBoundarySignatureTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/TerrainBoundarySignatureTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/history/TransitionFluidContainmentTest.java b/core/src/test/java/art/arcane/iris/world/history/TransitionFluidContainmentTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/TransitionFluidContainmentTest.java rename to core/src/test/java/art/arcane/iris/world/history/TransitionFluidContainmentTest.java index a74152d9b..ea25eda18 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/TransitionFluidContainmentTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/TransitionFluidContainmentTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/history/TransitionGenerationPlanTest.java b/core/src/test/java/art/arcane/iris/world/history/TransitionGenerationPlanTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/TransitionGenerationPlanTest.java rename to core/src/test/java/art/arcane/iris/world/history/TransitionGenerationPlanTest.java index fbb04b251..d951ffb6e 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/TransitionGenerationPlanTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/TransitionGenerationPlanTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import art.arcane.iris.testsupport.DurabilityMode; import org.junit.ClassRule; diff --git a/core/src/test/java/art/arcane/iris/engine/history/TransitionGeometryBlenderTest.java b/core/src/test/java/art/arcane/iris/world/history/TransitionGeometryBlenderTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/TransitionGeometryBlenderTest.java rename to core/src/test/java/art/arcane/iris/world/history/TransitionGeometryBlenderTest.java index 5d384c94f..33cad58f3 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/TransitionGeometryBlenderTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/TransitionGeometryBlenderTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/history/TransitionGeometryCursorTest.java b/core/src/test/java/art/arcane/iris/world/history/TransitionGeometryCursorTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/TransitionGeometryCursorTest.java rename to core/src/test/java/art/arcane/iris/world/history/TransitionGeometryCursorTest.java index 936f2e50c..50ef45ba6 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/TransitionGeometryCursorTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/TransitionGeometryCursorTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/history/WorldChunkInventoryTest.java b/core/src/test/java/art/arcane/iris/world/history/WorldChunkInventoryTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/engine/history/WorldChunkInventoryTest.java rename to core/src/test/java/art/arcane/iris/world/history/WorldChunkInventoryTest.java index 1246cb52d..90e4127ed 100644 --- a/core/src/test/java/art/arcane/iris/engine/history/WorldChunkInventoryTest.java +++ b/core/src/test/java/art/arcane/iris/world/history/WorldChunkInventoryTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.engine.history; +package art.arcane.iris.world.history; import art.arcane.iris.testsupport.DurabilityMode; -import art.arcane.iris.util.nbt.common.mca.MCAFile; +import art.arcane.iris.world.storage.region.MCAFile; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/lifecycle/BukkitPublicBackendTest.java b/core/src/test/java/art/arcane/iris/world/lifecycle/BukkitPublicBackendTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/core/lifecycle/BukkitPublicBackendTest.java rename to core/src/test/java/art/arcane/iris/world/lifecycle/BukkitPublicBackendTest.java index f9a9da581..a2e2417cf 100644 --- a/core/src/test/java/art/arcane/iris/core/lifecycle/BukkitPublicBackendTest.java +++ b/core/src/test/java/art/arcane/iris/world/lifecycle/BukkitPublicBackendTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.core.nms.INMSBinding; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.platform.bukkit.nms.INMSBinding; import art.arcane.volmlib.util.bukkit.WorldIdentity; import org.bukkit.Bukkit; import org.bukkit.NamespacedKey; diff --git a/core/src/test/java/art/arcane/iris/core/lifecycle/BukkitStartupPathsTest.java b/core/src/test/java/art/arcane/iris/world/lifecycle/BukkitStartupPathsTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/lifecycle/BukkitStartupPathsTest.java rename to core/src/test/java/art/arcane/iris/world/lifecycle/BukkitStartupPathsTest.java index 109f3908b..3df50da8d 100644 --- a/core/src/test/java/art/arcane/iris/core/lifecycle/BukkitStartupPathsTest.java +++ b/core/src/test/java/art/arcane/iris/world/lifecycle/BukkitStartupPathsTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/lifecycle/BukkitWorldConfigurationTest.java b/core/src/test/java/art/arcane/iris/world/lifecycle/BukkitWorldConfigurationTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/lifecycle/BukkitWorldConfigurationTest.java rename to core/src/test/java/art/arcane/iris/world/lifecycle/BukkitWorldConfigurationTest.java index c3f93dc68..f28dc9715 100644 --- a/core/src/test/java/art/arcane/iris/core/lifecycle/BukkitWorldConfigurationTest.java +++ b/core/src/test/java/art/arcane/iris/world/lifecycle/BukkitWorldConfigurationTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; -import art.arcane.iris.engine.IrisEngineMantle; -import art.arcane.iris.core.WorldSlotKey; +import art.arcane.iris.generation.runtime.IrisEngineMantle; +import art.arcane.iris.world.WorldSlotKey; import org.bukkit.configuration.file.YamlConfiguration; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/lifecycle/CapabilityResolutionTest.java b/core/src/test/java/art/arcane/iris/world/lifecycle/CapabilityResolutionTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/lifecycle/CapabilityResolutionTest.java rename to core/src/test/java/art/arcane/iris/world/lifecycle/CapabilityResolutionTest.java index 6209c77d3..07eea1726 100644 --- a/core/src/test/java/art/arcane/iris/core/lifecycle/CapabilityResolutionTest.java +++ b/core/src/test/java/art/arcane/iris/world/lifecycle/CapabilityResolutionTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/lifecycle/CapabilitySnapshotFixtures.java b/core/src/test/java/art/arcane/iris/world/lifecycle/CapabilitySnapshotFixtures.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/lifecycle/CapabilitySnapshotFixtures.java rename to core/src/test/java/art/arcane/iris/world/lifecycle/CapabilitySnapshotFixtures.java index 51a4db7ee..1ed98c0d4 100644 --- a/core/src/test/java/art/arcane/iris/core/lifecycle/CapabilitySnapshotFixtures.java +++ b/core/src/test/java/art/arcane/iris/world/lifecycle/CapabilitySnapshotFixtures.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; -import art.arcane.iris.core.lifecycle.CapabilitySnapshot.PaperLikeFlavor; +import art.arcane.iris.world.lifecycle.CapabilitySnapshot.PaperLikeFlavor; import java.lang.reflect.Field; import java.lang.reflect.Method; diff --git a/core/src/test/java/art/arcane/iris/core/lifecycle/HuskWorldQuarantineTest.java b/core/src/test/java/art/arcane/iris/world/lifecycle/HuskWorldQuarantineTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/lifecycle/HuskWorldQuarantineTest.java rename to core/src/test/java/art/arcane/iris/world/lifecycle/HuskWorldQuarantineTest.java index 94d783959..0e5bc035a 100644 --- a/core/src/test/java/art/arcane/iris/core/lifecycle/HuskWorldQuarantineTest.java +++ b/core/src/test/java/art/arcane/iris/world/lifecycle/HuskWorldQuarantineTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; -import art.arcane.iris.engine.IrisEngineMantle; +import art.arcane.iris.generation.runtime.IrisEngineMantle; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; diff --git a/core/src/test/java/art/arcane/iris/core/lifecycle/IrisRuntimeStaticsTest.java b/core/src/test/java/art/arcane/iris/world/lifecycle/IrisRuntimeStaticsTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/core/lifecycle/IrisRuntimeStaticsTest.java rename to core/src/test/java/art/arcane/iris/world/lifecycle/IrisRuntimeStaticsTest.java index 57a515c00..d9c2fd972 100644 --- a/core/src/test/java/art/arcane/iris/core/lifecycle/IrisRuntimeStaticsTest.java +++ b/core/src/test/java/art/arcane/iris/world/lifecycle/IrisRuntimeStaticsTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; -import art.arcane.iris.core.runtime.WorldRuntimeControlService; +import art.arcane.iris.world.runtime.WorldRuntimeControlService; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.testsupport.BukkitTestServer; import org.junit.After; diff --git a/core/src/test/java/art/arcane/iris/core/lifecycle/IrisWorldRemovalServiceTest.java b/core/src/test/java/art/arcane/iris/world/lifecycle/IrisWorldRemovalServiceTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/lifecycle/IrisWorldRemovalServiceTest.java rename to core/src/test/java/art/arcane/iris/world/lifecycle/IrisWorldRemovalServiceTest.java index c474c5d7a..a09448002 100644 --- a/core/src/test/java/art/arcane/iris/core/lifecycle/IrisWorldRemovalServiceTest.java +++ b/core/src/test/java/art/arcane/iris/world/lifecycle/IrisWorldRemovalServiceTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; -import art.arcane.iris.core.WorldRemovalPathPolicy; +import art.arcane.iris.world.WorldRemovalPathPolicy; import org.bukkit.configuration.file.YamlConfiguration; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/lifecycle/LifecycleOperationCoordinatorTest.java b/core/src/test/java/art/arcane/iris/world/lifecycle/LifecycleOperationCoordinatorTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/lifecycle/LifecycleOperationCoordinatorTest.java rename to core/src/test/java/art/arcane/iris/world/lifecycle/LifecycleOperationCoordinatorTest.java index fdfc97a2b..fe5b0ab3f 100644 --- a/core/src/test/java/art/arcane/iris/core/lifecycle/LifecycleOperationCoordinatorTest.java +++ b/core/src/test/java/art/arcane/iris/world/lifecycle/LifecycleOperationCoordinatorTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/lifecycle/MissingWorldStorageLogTest.java b/core/src/test/java/art/arcane/iris/world/lifecycle/MissingWorldStorageLogTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/lifecycle/MissingWorldStorageLogTest.java rename to core/src/test/java/art/arcane/iris/world/lifecycle/MissingWorldStorageLogTest.java index d5a8fa8d6..1d692513a 100644 --- a/core/src/test/java/art/arcane/iris/core/lifecycle/MissingWorldStorageLogTest.java +++ b/core/src/test/java/art/arcane/iris/world/lifecycle/MissingWorldStorageLogTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; diff --git a/core/src/test/java/art/arcane/iris/core/lifecycle/PaperLibBootstrapTest.java b/core/src/test/java/art/arcane/iris/world/lifecycle/PaperLibBootstrapTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/core/lifecycle/PaperLibBootstrapTest.java rename to core/src/test/java/art/arcane/iris/world/lifecycle/PaperLibBootstrapTest.java index e8a9d11b0..d9bb0f671 100644 --- a/core/src/test/java/art/arcane/iris/core/lifecycle/PaperLibBootstrapTest.java +++ b/core/src/test/java/art/arcane/iris/world/lifecycle/PaperLibBootstrapTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/lifecycle/WorldLifecycleDiagnosticsTest.java b/core/src/test/java/art/arcane/iris/world/lifecycle/WorldLifecycleDiagnosticsTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/lifecycle/WorldLifecycleDiagnosticsTest.java rename to core/src/test/java/art/arcane/iris/world/lifecycle/WorldLifecycleDiagnosticsTest.java index 129cb38d4..71ac9eb7e 100644 --- a/core/src/test/java/art/arcane/iris/core/lifecycle/WorldLifecycleDiagnosticsTest.java +++ b/core/src/test/java/art/arcane/iris/world/lifecycle/WorldLifecycleDiagnosticsTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; import org.bukkit.NamespacedKey; import org.bukkit.World; diff --git a/core/src/test/java/art/arcane/iris/core/lifecycle/WorldLifecycleRequestTest.java b/core/src/test/java/art/arcane/iris/world/lifecycle/WorldLifecycleRequestTest.java similarity index 94% rename from core/src/test/java/art/arcane/iris/core/lifecycle/WorldLifecycleRequestTest.java rename to core/src/test/java/art/arcane/iris/world/lifecycle/WorldLifecycleRequestTest.java index b20731e12..fcdea7107 100644 --- a/core/src/test/java/art/arcane/iris/core/lifecycle/WorldLifecycleRequestTest.java +++ b/core/src/test/java/art/arcane/iris/world/lifecycle/WorldLifecycleRequestTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; -import art.arcane.iris.core.WorldCreatorCompat; +import art.arcane.iris.world.WorldCreatorCompat; import org.bukkit.NamespacedKey; import org.bukkit.World; import org.bukkit.WorldCreator; diff --git a/core/src/test/java/art/arcane/iris/core/lifecycle/WorldLifecycleRuntimeLevelStemTest.java b/core/src/test/java/art/arcane/iris/world/lifecycle/WorldLifecycleRuntimeLevelStemTest.java similarity index 92% rename from core/src/test/java/art/arcane/iris/core/lifecycle/WorldLifecycleRuntimeLevelStemTest.java rename to core/src/test/java/art/arcane/iris/world/lifecycle/WorldLifecycleRuntimeLevelStemTest.java index 59a026d8b..343fd403a 100644 --- a/core/src/test/java/art/arcane/iris/core/lifecycle/WorldLifecycleRuntimeLevelStemTest.java +++ b/core/src/test/java/art/arcane/iris/world/lifecycle/WorldLifecycleRuntimeLevelStemTest.java @@ -1,10 +1,10 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.nms.INMSBinding; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineTarget; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.platform.bukkit.nms.INMSBinding; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineTarget; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; import org.bukkit.NamespacedKey; import org.bukkit.World; import org.bukkit.generator.ChunkGenerator; diff --git a/core/src/test/java/art/arcane/iris/core/lifecycle/WorldLifecycleSeedTest.java b/core/src/test/java/art/arcane/iris/world/lifecycle/WorldLifecycleSeedTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/lifecycle/WorldLifecycleSeedTest.java rename to core/src/test/java/art/arcane/iris/world/lifecycle/WorldLifecycleSeedTest.java index 03af9d3ef..634cead80 100644 --- a/core/src/test/java/art/arcane/iris/core/lifecycle/WorldLifecycleSeedTest.java +++ b/core/src/test/java/art/arcane/iris/world/lifecycle/WorldLifecycleSeedTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/lifecycle/WorldLifecycleSelectionTest.java b/core/src/test/java/art/arcane/iris/world/lifecycle/WorldLifecycleSelectionTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/lifecycle/WorldLifecycleSelectionTest.java rename to core/src/test/java/art/arcane/iris/world/lifecycle/WorldLifecycleSelectionTest.java index 4ee9ac57c..0238c6104 100644 --- a/core/src/test/java/art/arcane/iris/core/lifecycle/WorldLifecycleSelectionTest.java +++ b/core/src/test/java/art/arcane/iris/world/lifecycle/WorldLifecycleSelectionTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; -import art.arcane.iris.core.IrisStartupValidation; +import art.arcane.iris.world.IrisStartupValidation; import org.bukkit.NamespacedKey; import org.bukkit.World; import org.junit.After; diff --git a/core/src/test/java/art/arcane/iris/core/lifecycle/WorldLifecycleStagingTest.java b/core/src/test/java/art/arcane/iris/world/lifecycle/WorldLifecycleStagingTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/lifecycle/WorldLifecycleStagingTest.java rename to core/src/test/java/art/arcane/iris/world/lifecycle/WorldLifecycleStagingTest.java index 523222afc..42945bcc2 100644 --- a/core/src/test/java/art/arcane/iris/core/lifecycle/WorldLifecycleStagingTest.java +++ b/core/src/test/java/art/arcane/iris/world/lifecycle/WorldLifecycleStagingTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; import org.bukkit.generator.BiomeProvider; import org.bukkit.generator.ChunkGenerator; diff --git a/core/src/test/java/art/arcane/iris/core/lifecycle/WorldLifecycleSupportCloseFailureTest.java b/core/src/test/java/art/arcane/iris/world/lifecycle/WorldLifecycleSupportCloseFailureTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/lifecycle/WorldLifecycleSupportCloseFailureTest.java rename to core/src/test/java/art/arcane/iris/world/lifecycle/WorldLifecycleSupportCloseFailureTest.java index 6fa5b55e3..ba5a269d7 100644 --- a/core/src/test/java/art/arcane/iris/core/lifecycle/WorldLifecycleSupportCloseFailureTest.java +++ b/core/src/test/java/art/arcane/iris/world/lifecycle/WorldLifecycleSupportCloseFailureTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; diff --git a/core/src/test/java/art/arcane/iris/core/lifecycle/WorldLifecycleUnloadAsyncTest.java b/core/src/test/java/art/arcane/iris/world/lifecycle/WorldLifecycleUnloadAsyncTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/lifecycle/WorldLifecycleUnloadAsyncTest.java rename to core/src/test/java/art/arcane/iris/world/lifecycle/WorldLifecycleUnloadAsyncTest.java index 83ff1a86c..4a26062cd 100644 --- a/core/src/test/java/art/arcane/iris/core/lifecycle/WorldLifecycleUnloadAsyncTest.java +++ b/core/src/test/java/art/arcane/iris/world/lifecycle/WorldLifecycleUnloadAsyncTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; import art.arcane.volmlib.util.bukkit.WorldIdentity; import org.bukkit.Bukkit; diff --git a/core/src/test/java/art/arcane/iris/core/lifecycle/WorldRemovalPathPolicyTest.java b/core/src/test/java/art/arcane/iris/world/lifecycle/WorldRemovalPathPolicyTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/lifecycle/WorldRemovalPathPolicyTest.java rename to core/src/test/java/art/arcane/iris/world/lifecycle/WorldRemovalPathPolicyTest.java index 91fe49562..add4ecdeb 100644 --- a/core/src/test/java/art/arcane/iris/core/lifecycle/WorldRemovalPathPolicyTest.java +++ b/core/src/test/java/art/arcane/iris/world/lifecycle/WorldRemovalPathPolicyTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; -import art.arcane.iris.core.WorldRemovalPathPolicy; +import art.arcane.iris.world.WorldRemovalPathPolicy; import org.bukkit.NamespacedKey; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/lifecycle/WorldReplacementBootstrapTest.java b/core/src/test/java/art/arcane/iris/world/lifecycle/WorldReplacementBootstrapTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/lifecycle/WorldReplacementBootstrapTest.java rename to core/src/test/java/art/arcane/iris/world/lifecycle/WorldReplacementBootstrapTest.java index 32f62c0a8..fe1d5713d 100644 --- a/core/src/test/java/art/arcane/iris/core/lifecycle/WorldReplacementBootstrapTest.java +++ b/core/src/test/java/art/arcane/iris/world/lifecycle/WorldReplacementBootstrapTest.java @@ -1,16 +1,16 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; -import art.arcane.iris.core.ExactWorldSlotPathPolicy; -import art.arcane.iris.core.WorldSlotKey; -import art.arcane.iris.core.lifecycle.BukkitWorldConfiguration.WorldGeneratorSnapshot; -import art.arcane.iris.core.lifecycle.WorldReplacementFilesystem.ReplacementPaths; -import art.arcane.iris.core.lifecycle.WorldReplacementJournal.Phase; -import art.arcane.iris.core.lifecycle.WorldReplacementJournal.Transaction; -import art.arcane.iris.engine.history.GenerationEpoch; -import art.arcane.iris.engine.history.GenerationEpochContractFactory; -import art.arcane.iris.engine.history.GenerationHistory; -import art.arcane.iris.engine.history.GenerationPackFingerprint; -import art.arcane.iris.engine.history.GenerationRegistryContract; +import art.arcane.iris.world.ExactWorldSlotPathPolicy; +import art.arcane.iris.world.WorldSlotKey; +import art.arcane.iris.world.lifecycle.BukkitWorldConfiguration.WorldGeneratorSnapshot; +import art.arcane.iris.world.lifecycle.WorldReplacementFilesystem.ReplacementPaths; +import art.arcane.iris.world.lifecycle.WorldReplacementJournal.Phase; +import art.arcane.iris.world.lifecycle.WorldReplacementJournal.Transaction; +import art.arcane.iris.world.history.GenerationEpoch; +import art.arcane.iris.world.history.GenerationEpochContractFactory; +import art.arcane.iris.world.history.GenerationHistory; +import art.arcane.iris.world.history.GenerationPackFingerprint; +import art.arcane.iris.world.history.GenerationRegistryContract; import art.arcane.iris.testsupport.DurabilityMode; import org.junit.Before; import org.junit.BeforeClass; diff --git a/core/src/test/java/art/arcane/iris/core/lifecycle/WorldReplacementEntryGuardTest.java b/core/src/test/java/art/arcane/iris/world/lifecycle/WorldReplacementEntryGuardTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/lifecycle/WorldReplacementEntryGuardTest.java rename to core/src/test/java/art/arcane/iris/world/lifecycle/WorldReplacementEntryGuardTest.java index 94d7442ab..822d706d1 100644 --- a/core/src/test/java/art/arcane/iris/core/lifecycle/WorldReplacementEntryGuardTest.java +++ b/core/src/test/java/art/arcane/iris/world/lifecycle/WorldReplacementEntryGuardTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; import org.junit.Rule; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/lifecycle/WorldReplacementFilesystemTest.java b/core/src/test/java/art/arcane/iris/world/lifecycle/WorldReplacementFilesystemTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/lifecycle/WorldReplacementFilesystemTest.java rename to core/src/test/java/art/arcane/iris/world/lifecycle/WorldReplacementFilesystemTest.java index d0a7b2864..955a19a32 100644 --- a/core/src/test/java/art/arcane/iris/core/lifecycle/WorldReplacementFilesystemTest.java +++ b/core/src/test/java/art/arcane/iris/world/lifecycle/WorldReplacementFilesystemTest.java @@ -1,10 +1,10 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; -import art.arcane.iris.engine.history.GenerationEpoch; -import art.arcane.iris.engine.history.GenerationEpochContractFactory; -import art.arcane.iris.engine.history.GenerationHistory; -import art.arcane.iris.engine.history.GenerationPackFingerprint; -import art.arcane.iris.engine.history.GenerationRegistryContract; +import art.arcane.iris.world.history.GenerationEpoch; +import art.arcane.iris.world.history.GenerationEpochContractFactory; +import art.arcane.iris.world.history.GenerationHistory; +import art.arcane.iris.world.history.GenerationPackFingerprint; +import art.arcane.iris.world.history.GenerationRegistryContract; import art.arcane.iris.testsupport.DurabilityMode; import org.junit.Assume; import org.junit.BeforeClass; diff --git a/core/src/test/java/art/arcane/iris/core/lifecycle/WorldReplacementSeedTest.java b/core/src/test/java/art/arcane/iris/world/lifecycle/WorldReplacementSeedTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/lifecycle/WorldReplacementSeedTest.java rename to core/src/test/java/art/arcane/iris/world/lifecycle/WorldReplacementSeedTest.java index d42272341..79954015f 100644 --- a/core/src/test/java/art/arcane/iris/core/lifecycle/WorldReplacementSeedTest.java +++ b/core/src/test/java/art/arcane/iris/world/lifecycle/WorldReplacementSeedTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; import art.arcane.volmlib.util.nbt.io.NBTUtil; import art.arcane.volmlib.util.nbt.io.NamedTag; diff --git a/core/src/test/java/art/arcane/iris/core/lifecycle/WorldUnloadBoundaryRegistryTest.java b/core/src/test/java/art/arcane/iris/world/lifecycle/WorldUnloadBoundaryRegistryTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/lifecycle/WorldUnloadBoundaryRegistryTest.java rename to core/src/test/java/art/arcane/iris/world/lifecycle/WorldUnloadBoundaryRegistryTest.java index 28febbdd7..cd6301a72 100644 --- a/core/src/test/java/art/arcane/iris/core/lifecycle/WorldUnloadBoundaryRegistryTest.java +++ b/core/src/test/java/art/arcane/iris/world/lifecycle/WorldUnloadBoundaryRegistryTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.lifecycle; +package art.arcane.iris.world.lifecycle; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisLootKeyAccessorTest.java b/core/src/test/java/art/arcane/iris/world/loot/IrisLootKeyAccessorTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/engine/object/IrisLootKeyAccessorTest.java rename to core/src/test/java/art/arcane/iris/world/loot/IrisLootKeyAccessorTest.java index 1d07f3339..323f4bc87 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisLootKeyAccessorTest.java +++ b/core/src/test/java/art/arcane/iris/world/loot/IrisLootKeyAccessorTest.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.engine.object; +package art.arcane.iris.world.loot; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/engine/object/IrisLootTableCompatTest.java b/core/src/test/java/art/arcane/iris/world/loot/IrisLootTableCompatTest.java similarity index 85% rename from core/src/test/java/art/arcane/iris/engine/object/IrisLootTableCompatTest.java rename to core/src/test/java/art/arcane/iris/world/loot/IrisLootTableCompatTest.java index bc7edcf32..37bb8bcb1 100644 --- a/core/src/test/java/art/arcane/iris/engine/object/IrisLootTableCompatTest.java +++ b/core/src/test/java/art/arcane/iris/world/loot/IrisLootTableCompatTest.java @@ -1,21 +1,23 @@ -package art.arcane.iris.engine.object; +package art.arcane.iris.world.loot; -import art.arcane.iris.core.compat.CompatAction; -import art.arcane.iris.core.compat.CompatFinding; -import art.arcane.iris.core.compat.CompatRegistry; -import art.arcane.iris.core.compat.CompatStatus; -import art.arcane.iris.core.compat.ContentGate; -import art.arcane.iris.core.compat.PackCompatReport; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.ResourceLoader; +import art.arcane.iris.testsupport.PackCompatFixtures; + +import art.arcane.iris.pack.validation.CompatAction; +import art.arcane.iris.pack.validation.CompatFinding; +import art.arcane.iris.pack.validation.CompatRegistry; +import art.arcane.iris.pack.validation.CompatStatus; +import art.arcane.iris.pack.validation.ContentGate; +import art.arcane.iris.pack.validation.PackCompatReport; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.ResourceLoader; import art.arcane.volmlib.util.collection.KList; import org.junit.Test; import java.util.List; import java.util.Map; -import static art.arcane.iris.engine.object.PackCompatFixtures.find; -import static art.arcane.iris.engine.object.PackCompatFixtures.lootTable; +import static art.arcane.iris.testsupport.PackCompatFixtures.find; +import static art.arcane.iris.testsupport.PackCompatFixtures.lootTable; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; diff --git a/core/src/test/java/art/arcane/iris/core/pregenerator/methods/AsyncPregenMethodConcurrencyCapTest.java b/core/src/test/java/art/arcane/iris/world/pregen/AsyncPregenMethodConcurrencyCapTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/pregenerator/methods/AsyncPregenMethodConcurrencyCapTest.java rename to core/src/test/java/art/arcane/iris/world/pregen/AsyncPregenMethodConcurrencyCapTest.java index 9a065a227..d8ea84e14 100644 --- a/core/src/test/java/art/arcane/iris/core/pregenerator/methods/AsyncPregenMethodConcurrencyCapTest.java +++ b/core/src/test/java/art/arcane/iris/world/pregen/AsyncPregenMethodConcurrencyCapTest.java @@ -1,6 +1,5 @@ -package art.arcane.iris.core.pregenerator.methods; +package art.arcane.iris.world.pregen; -import art.arcane.iris.core.pregenerator.PregenAdmissionGate; import org.junit.Test; import java.util.concurrent.CompletableFuture; diff --git a/core/src/test/java/art/arcane/iris/core/pregenerator/methods/AsyncPregenServerSaveOwnershipTest.java b/core/src/test/java/art/arcane/iris/world/pregen/AsyncPregenServerSaveOwnershipTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/pregenerator/methods/AsyncPregenServerSaveOwnershipTest.java rename to core/src/test/java/art/arcane/iris/world/pregen/AsyncPregenServerSaveOwnershipTest.java index e2695a7ee..bbab8e99b 100644 --- a/core/src/test/java/art/arcane/iris/core/pregenerator/methods/AsyncPregenServerSaveOwnershipTest.java +++ b/core/src/test/java/art/arcane/iris/world/pregen/AsyncPregenServerSaveOwnershipTest.java @@ -1,11 +1,11 @@ -package art.arcane.iris.core.pregenerator.methods; +package art.arcane.iris.world.pregen; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.core.nms.INMSBinding; -import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.platform.bukkit.nms.INMSBinding; +import art.arcane.iris.world.IrisToolbelt; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.spi.IrisLogging; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import art.arcane.volmlib.util.collection.KSet; import org.bukkit.Chunk; import org.bukkit.World; diff --git a/core/src/test/java/art/arcane/iris/core/pregenerator/methods/CachedPregenMethodCompletionTest.java b/core/src/test/java/art/arcane/iris/world/pregen/CachedPregenMethodCompletionTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/core/pregenerator/methods/CachedPregenMethodCompletionTest.java rename to core/src/test/java/art/arcane/iris/world/pregen/CachedPregenMethodCompletionTest.java index 3e6224c1e..80042e0c0 100644 --- a/core/src/test/java/art/arcane/iris/core/pregenerator/methods/CachedPregenMethodCompletionTest.java +++ b/core/src/test/java/art/arcane/iris/world/pregen/CachedPregenMethodCompletionTest.java @@ -1,10 +1,5 @@ -package art.arcane.iris.core.pregenerator.methods; +package art.arcane.iris.world.pregen; -import art.arcane.iris.core.pregenerator.PregenListener; -import art.arcane.iris.core.pregenerator.PregenTask; -import art.arcane.iris.core.pregenerator.PregeneratorMethod; -import art.arcane.iris.core.pregenerator.cache.PregenCache; -import art.arcane.iris.core.pregenerator.cache.PregenSavedChunkStatus; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.math.Position2; import org.junit.Before; diff --git a/core/src/test/java/art/arcane/iris/core/pregenerator/IrisPregeneratorInitTest.java b/core/src/test/java/art/arcane/iris/world/pregen/IrisPregeneratorInitTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/pregenerator/IrisPregeneratorInitTest.java rename to core/src/test/java/art/arcane/iris/world/pregen/IrisPregeneratorInitTest.java index 94955198a..b35510657 100644 --- a/core/src/test/java/art/arcane/iris/core/pregenerator/IrisPregeneratorInitTest.java +++ b/core/src/test/java/art/arcane/iris/world/pregen/IrisPregeneratorInitTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.pregenerator; +package art.arcane.iris.world.pregen; -import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.configuration.IrisSettings; import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.math.Position2; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pregenerator/MantleHeapPressureTest.java b/core/src/test/java/art/arcane/iris/world/pregen/MantleHeapPressureTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/pregenerator/MantleHeapPressureTest.java rename to core/src/test/java/art/arcane/iris/world/pregen/MantleHeapPressureTest.java index 93b74fe71..dd67252ac 100644 --- a/core/src/test/java/art/arcane/iris/core/pregenerator/MantleHeapPressureTest.java +++ b/core/src/test/java/art/arcane/iris/world/pregen/MantleHeapPressureTest.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.core.pregenerator; +package art.arcane.iris.world.pregen; import org.junit.Test; import org.mockito.ArgumentCaptor; diff --git a/core/src/test/java/art/arcane/iris/core/pregenerator/MantleHeapPressureUrgencyTest.java b/core/src/test/java/art/arcane/iris/world/pregen/MantleHeapPressureUrgencyTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/pregenerator/MantleHeapPressureUrgencyTest.java rename to core/src/test/java/art/arcane/iris/world/pregen/MantleHeapPressureUrgencyTest.java index d530d419e..b0ecc0a0d 100644 --- a/core/src/test/java/art/arcane/iris/core/pregenerator/MantleHeapPressureUrgencyTest.java +++ b/core/src/test/java/art/arcane/iris/world/pregen/MantleHeapPressureUrgencyTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pregenerator; +package art.arcane.iris.world.pregen; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pregenerator/methods/MedievalPregenFlushOwnershipTest.java b/core/src/test/java/art/arcane/iris/world/pregen/MedievalPregenFlushOwnershipTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/core/pregenerator/methods/MedievalPregenFlushOwnershipTest.java rename to core/src/test/java/art/arcane/iris/world/pregen/MedievalPregenFlushOwnershipTest.java index 74c5aa497..01e33c735 100644 --- a/core/src/test/java/art/arcane/iris/core/pregenerator/methods/MedievalPregenFlushOwnershipTest.java +++ b/core/src/test/java/art/arcane/iris/world/pregen/MedievalPregenFlushOwnershipTest.java @@ -1,8 +1,8 @@ -package art.arcane.iris.core.pregenerator.methods; +package art.arcane.iris.world.pregen; -import art.arcane.iris.core.nms.INMS; -import art.arcane.iris.core.nms.INMSBinding; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.platform.bukkit.nms.INMS; +import art.arcane.iris.platform.bukkit.nms.INMSBinding; +import art.arcane.iris.world.task.J; import org.bukkit.Chunk; import org.bukkit.World; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pregenerator/PregenAdmissionGateTest.java b/core/src/test/java/art/arcane/iris/world/pregen/PregenAdmissionGateTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/pregenerator/PregenAdmissionGateTest.java rename to core/src/test/java/art/arcane/iris/world/pregen/PregenAdmissionGateTest.java index 10e37013c..0bbb62400 100644 --- a/core/src/test/java/art/arcane/iris/core/pregenerator/PregenAdmissionGateTest.java +++ b/core/src/test/java/art/arcane/iris/world/pregen/PregenAdmissionGateTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pregenerator; +package art.arcane.iris.world.pregen; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pregenerator/cache/PregenCacheConcurrencyTest.java b/core/src/test/java/art/arcane/iris/world/pregen/PregenCacheConcurrencyTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/pregenerator/cache/PregenCacheConcurrencyTest.java rename to core/src/test/java/art/arcane/iris/world/pregen/PregenCacheConcurrencyTest.java index a960113b6..ab21c952f 100644 --- a/core/src/test/java/art/arcane/iris/core/pregenerator/cache/PregenCacheConcurrencyTest.java +++ b/core/src/test/java/art/arcane/iris/world/pregen/PregenCacheConcurrencyTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pregenerator.cache; +package art.arcane.iris.world.pregen; import org.junit.After; import org.junit.Before; diff --git a/core/src/test/java/art/arcane/iris/core/pregenerator/cache/PregenCacheDefaultsTest.java b/core/src/test/java/art/arcane/iris/world/pregen/PregenCacheDefaultsTest.java similarity index 95% rename from core/src/test/java/art/arcane/iris/core/pregenerator/cache/PregenCacheDefaultsTest.java rename to core/src/test/java/art/arcane/iris/world/pregen/PregenCacheDefaultsTest.java index c897901ee..404f62b4b 100644 --- a/core/src/test/java/art/arcane/iris/core/pregenerator/cache/PregenCacheDefaultsTest.java +++ b/core/src/test/java/art/arcane/iris/world/pregen/PregenCacheDefaultsTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pregenerator.cache; +package art.arcane.iris.world.pregen; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pregenerator/cache/PregenCacheExecutorRegistrationTest.java b/core/src/test/java/art/arcane/iris/world/pregen/PregenCacheExecutorRegistrationTest.java similarity index 92% rename from core/src/test/java/art/arcane/iris/core/pregenerator/cache/PregenCacheExecutorRegistrationTest.java rename to core/src/test/java/art/arcane/iris/world/pregen/PregenCacheExecutorRegistrationTest.java index 157d28002..b0a4b766c 100644 --- a/core/src/test/java/art/arcane/iris/core/pregenerator/cache/PregenCacheExecutorRegistrationTest.java +++ b/core/src/test/java/art/arcane/iris/world/pregen/PregenCacheExecutorRegistrationTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.pregenerator.cache; +package art.arcane.iris.world.pregen; -import art.arcane.iris.engine.framework.MeteredCache; -import art.arcane.iris.engine.framework.PreservationRegistry; +import art.arcane.iris.generation.runtime.MeteredCache; +import art.arcane.iris.generation.runtime.PreservationRegistry; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.testsupport.PlatformLeakGuard; import org.junit.After; diff --git a/core/src/test/java/art/arcane/iris/core/pregenerator/cache/PregenCacheImplPersistenceTest.java b/core/src/test/java/art/arcane/iris/world/pregen/PregenCacheImplPersistenceTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/pregenerator/cache/PregenCacheImplPersistenceTest.java rename to core/src/test/java/art/arcane/iris/world/pregen/PregenCacheImplPersistenceTest.java index 02b5f22b3..5b0c99100 100644 --- a/core/src/test/java/art/arcane/iris/core/pregenerator/cache/PregenCacheImplPersistenceTest.java +++ b/core/src/test/java/art/arcane/iris/world/pregen/PregenCacheImplPersistenceTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pregenerator.cache; +package art.arcane.iris.world.pregen; import org.junit.Before; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pregenerator/PregenDiagnosticsDescriptionTest.java b/core/src/test/java/art/arcane/iris/world/pregen/PregenDiagnosticsDescriptionTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/pregenerator/PregenDiagnosticsDescriptionTest.java rename to core/src/test/java/art/arcane/iris/world/pregen/PregenDiagnosticsDescriptionTest.java index 5c9c929e2..e116dc169 100644 --- a/core/src/test/java/art/arcane/iris/core/pregenerator/PregenDiagnosticsDescriptionTest.java +++ b/core/src/test/java/art/arcane/iris/world/pregen/PregenDiagnosticsDescriptionTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pregenerator; +package art.arcane.iris.world.pregen; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pregenerator/PregenDiagnosticsTest.java b/core/src/test/java/art/arcane/iris/world/pregen/PregenDiagnosticsTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/pregenerator/PregenDiagnosticsTest.java rename to core/src/test/java/art/arcane/iris/world/pregen/PregenDiagnosticsTest.java index e2805bb57..2a805b195 100644 --- a/core/src/test/java/art/arcane/iris/core/pregenerator/PregenDiagnosticsTest.java +++ b/core/src/test/java/art/arcane/iris/world/pregen/PregenDiagnosticsTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pregenerator; +package art.arcane.iris.world.pregen; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; diff --git a/core/src/test/java/art/arcane/iris/core/pregenerator/PregenListenerDefaultsTest.java b/core/src/test/java/art/arcane/iris/world/pregen/PregenListenerDefaultsTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/pregenerator/PregenListenerDefaultsTest.java rename to core/src/test/java/art/arcane/iris/world/pregen/PregenListenerDefaultsTest.java index 368bc8709..eca8e2339 100644 --- a/core/src/test/java/art/arcane/iris/core/pregenerator/PregenListenerDefaultsTest.java +++ b/core/src/test/java/art/arcane/iris/world/pregen/PregenListenerDefaultsTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pregenerator; +package art.arcane.iris.world.pregen; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pregenerator/PregenMantleBackpressureTest.java b/core/src/test/java/art/arcane/iris/world/pregen/PregenMantleBackpressureTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/pregenerator/PregenMantleBackpressureTest.java rename to core/src/test/java/art/arcane/iris/world/pregen/PregenMantleBackpressureTest.java index 5ddaedfaf..48610b1b6 100644 --- a/core/src/test/java/art/arcane/iris/core/pregenerator/PregenMantleBackpressureTest.java +++ b/core/src/test/java/art/arcane/iris/world/pregen/PregenMantleBackpressureTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pregenerator; +package art.arcane.iris.world.pregen; import art.arcane.iris.testsupport.Await; import art.arcane.volmlib.util.mantle.runtime.Mantle; diff --git a/core/src/test/java/art/arcane/iris/core/pregenerator/PregenPerformanceProfileTest.java b/core/src/test/java/art/arcane/iris/world/pregen/PregenPerformanceProfileTest.java similarity index 92% rename from core/src/test/java/art/arcane/iris/core/pregenerator/PregenPerformanceProfileTest.java rename to core/src/test/java/art/arcane/iris/world/pregen/PregenPerformanceProfileTest.java index 56966becb..7dc1fe451 100644 --- a/core/src/test/java/art/arcane/iris/core/pregenerator/PregenPerformanceProfileTest.java +++ b/core/src/test/java/art/arcane/iris/world/pregen/PregenPerformanceProfileTest.java @@ -1,12 +1,12 @@ -package art.arcane.iris.core.pregenerator; +package art.arcane.iris.world.pregen; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; -import art.arcane.iris.util.common.parallel.MultiBurst; -import art.arcane.iris.util.project.stream.ProceduralStream; -import art.arcane.iris.util.project.stream.utility.CachedDoubleStream2D; +import art.arcane.iris.configuration.IrisSettings; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; +import art.arcane.iris.generation.concurrent.MultiBurst; +import art.arcane.volmlib.util.stream.ProceduralStream; +import art.arcane.iris.generation.stream.CachedDoubleStream2D; import org.junit.After; import org.junit.Before; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pregenerator/PregenPhaseTrackerTest.java b/core/src/test/java/art/arcane/iris/world/pregen/PregenPhaseTrackerTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/pregenerator/PregenPhaseTrackerTest.java rename to core/src/test/java/art/arcane/iris/world/pregen/PregenPhaseTrackerTest.java index 37470dace..a80d071e5 100644 --- a/core/src/test/java/art/arcane/iris/core/pregenerator/PregenPhaseTrackerTest.java +++ b/core/src/test/java/art/arcane/iris/world/pregen/PregenPhaseTrackerTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pregenerator; +package art.arcane.iris.world.pregen; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pregenerator/PregenRateTrackerTest.java b/core/src/test/java/art/arcane/iris/world/pregen/PregenRateTrackerTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/pregenerator/PregenRateTrackerTest.java rename to core/src/test/java/art/arcane/iris/world/pregen/PregenRateTrackerTest.java index cb3c6de63..45c0ecc47 100644 --- a/core/src/test/java/art/arcane/iris/core/pregenerator/PregenRateTrackerTest.java +++ b/core/src/test/java/art/arcane/iris/world/pregen/PregenRateTrackerTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pregenerator; +package art.arcane.iris.world.pregen; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pregenerator/cache/PregenSavedChunkStatusTest.java b/core/src/test/java/art/arcane/iris/world/pregen/PregenSavedChunkStatusTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/pregenerator/cache/PregenSavedChunkStatusTest.java rename to core/src/test/java/art/arcane/iris/world/pregen/PregenSavedChunkStatusTest.java index 7970e6374..daacb007e 100644 --- a/core/src/test/java/art/arcane/iris/core/pregenerator/cache/PregenSavedChunkStatusTest.java +++ b/core/src/test/java/art/arcane/iris/world/pregen/PregenSavedChunkStatusTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pregenerator.cache; +package art.arcane.iris.world.pregen; import art.arcane.volmlib.util.nbt.io.NBTUtil; import art.arcane.volmlib.util.nbt.tag.CompoundTag; diff --git a/core/src/test/java/art/arcane/iris/core/pregenerator/methods/PregenSerialWorkerTest.java b/core/src/test/java/art/arcane/iris/world/pregen/PregenSerialWorkerTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/pregenerator/methods/PregenSerialWorkerTest.java rename to core/src/test/java/art/arcane/iris/world/pregen/PregenSerialWorkerTest.java index 5bf1de610..ca16739cf 100644 --- a/core/src/test/java/art/arcane/iris/core/pregenerator/methods/PregenSerialWorkerTest.java +++ b/core/src/test/java/art/arcane/iris/world/pregen/PregenSerialWorkerTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pregenerator.methods; +package art.arcane.iris.world.pregen; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pregenerator/PregenSilentFailureContractTest.java b/core/src/test/java/art/arcane/iris/world/pregen/PregenSilentFailureContractTest.java similarity index 88% rename from core/src/test/java/art/arcane/iris/core/pregenerator/PregenSilentFailureContractTest.java rename to core/src/test/java/art/arcane/iris/world/pregen/PregenSilentFailureContractTest.java index 495ae768f..9c8b3a985 100644 --- a/core/src/test/java/art/arcane/iris/core/pregenerator/PregenSilentFailureContractTest.java +++ b/core/src/test/java/art/arcane/iris/world/pregen/PregenSilentFailureContractTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pregenerator; +package art.arcane.iris.world.pregen; import org.junit.Test; @@ -17,7 +17,7 @@ public class PregenSilentFailureContractTest { @Test public void noPregenSourceSwallowsAThrowableWithoutSayingAnything() throws IOException { List offenders = new ArrayList<>(); - Path pregenRoot = sourceRoot().resolve("art/arcane/iris/core/pregenerator"); + Path pregenRoot = sourceRoot().resolve("art/arcane/iris/world/pregen"); try (Stream sources = Files.walk(pregenRoot)) { for (Path source : sources.filter(path -> path.toString().endsWith(".java")).toList()) { String text = Files.readString(source); @@ -32,7 +32,7 @@ public class PregenSilentFailureContractTest { @Test public void mantleCleanupFailureIsReportedWithItsStackTrace() throws IOException { - String cleanup = method(read("art/arcane/iris/core/pregenerator/methods/AsyncPregenMethod.java"), + String cleanup = method(read("art/arcane/iris/world/pregen/AsyncPregenMethod.java"), "private void cleanupMantleChunksCoveredBy("); assertTrue(cleanup, cleanup.contains("IrisLogging.reportError(")); @@ -41,7 +41,7 @@ public class PregenSilentFailureContractTest { @Test public void aStrandedPluginChunkTicketIsReportedWithItsStackTrace() throws IOException { - String unload = method(read("art/arcane/iris/core/pregenerator/methods/AsyncPregenMethod.java"), + String unload = method(read("art/arcane/iris/world/pregen/AsyncPregenMethod.java"), "private void unloadChunkSafely("); assertTrue(unload, unload.contains("removePluginChunkTicket")); @@ -50,7 +50,7 @@ public class PregenSilentFailureContractTest { @Test public void capabilityProbesLogThroughTheNamedDebugHelperRatherThanReportingErrors() throws IOException { - String async = read("art/arcane/iris/core/pregenerator/methods/AsyncPregenMethod.java"); + String async = read("art/arcane/iris/world/pregen/AsyncPregenMethod.java"); assertTrue(method(async, "private int resolveWorkerPoolThreads()").contains("PregenDiagnostics.probeFailed(")); assertTrue(method(async, "private int evictionWindow()").contains("PregenDiagnostics.probeFailed(")); @@ -59,7 +59,7 @@ public class PregenSilentFailureContractTest { @Test public void theFoliaSubmitFallbackNamesTheFailureItIsFallingBackFrom() throws IOException { - String executor = method(read("art/arcane/iris/core/pregenerator/methods/AsyncPregenMethod.java"), + String executor = method(read("art/arcane/iris/world/pregen/AsyncPregenMethod.java"), "private class FoliaRegionExecutor"); assertTrue(executor, executor.contains("PregenDiagnostics.probeFailed(")); @@ -68,7 +68,7 @@ public class PregenSilentFailureContractTest { @Test public void backpressureProbesAnnounceWhyTheyFellBack() throws IOException { - String backpressure = read("art/arcane/iris/core/pregenerator/PregenMantleBackpressure.java"); + String backpressure = read("art/arcane/iris/world/pregen/PregenMantleBackpressure.java"); assertTrue(method(backpressure, "private boolean isCancelled()").contains("PregenDiagnostics.probeFailed(")); assertTrue(method(backpressure, "private Mantle resolveMantle()").contains("PregenDiagnostics.probeFailed(")); @@ -76,7 +76,7 @@ public class PregenSilentFailureContractTest { @Test public void medievalEngineResolutionAnnouncesWhyItFellBack() throws IOException { - String medieval = read("art/arcane/iris/core/pregenerator/methods/MedievalPregenMethod.java"); + String medieval = read("art/arcane/iris/world/pregen/MedievalPregenMethod.java"); assertTrue(method(medieval, "private Engine resolveEngine()").contains("PregenDiagnostics.probeFailed(")); } diff --git a/core/src/test/java/art/arcane/iris/core/pregenerator/PregenTaskBoundsOverflowTest.java b/core/src/test/java/art/arcane/iris/world/pregen/PregenTaskBoundsOverflowTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/pregenerator/PregenTaskBoundsOverflowTest.java rename to core/src/test/java/art/arcane/iris/world/pregen/PregenTaskBoundsOverflowTest.java index 3b879d585..df24fd65b 100644 --- a/core/src/test/java/art/arcane/iris/core/pregenerator/PregenTaskBoundsOverflowTest.java +++ b/core/src/test/java/art/arcane/iris/world/pregen/PregenTaskBoundsOverflowTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pregenerator; +package art.arcane.iris.world.pregen; import art.arcane.volmlib.util.math.Position2; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pregenerator/PregenTaskChunkCountTest.java b/core/src/test/java/art/arcane/iris/world/pregen/PregenTaskChunkCountTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/pregenerator/PregenTaskChunkCountTest.java rename to core/src/test/java/art/arcane/iris/world/pregen/PregenTaskChunkCountTest.java index b90f16f93..03b69d286 100644 --- a/core/src/test/java/art/arcane/iris/core/pregenerator/PregenTaskChunkCountTest.java +++ b/core/src/test/java/art/arcane/iris/world/pregen/PregenTaskChunkCountTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pregenerator; +package art.arcane.iris.world.pregen; import art.arcane.volmlib.util.math.Position2; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/pregenerator/PregenTaskInterleavedTraversalTest.java b/core/src/test/java/art/arcane/iris/world/pregen/PregenTaskInterleavedTraversalTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/pregenerator/PregenTaskInterleavedTraversalTest.java rename to core/src/test/java/art/arcane/iris/world/pregen/PregenTaskInterleavedTraversalTest.java index f4ba603c4..38b79e334 100644 --- a/core/src/test/java/art/arcane/iris/core/pregenerator/PregenTaskInterleavedTraversalTest.java +++ b/core/src/test/java/art/arcane/iris/world/pregen/PregenTaskInterleavedTraversalTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pregenerator; +package art.arcane.iris.world.pregen; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.Position2; diff --git a/core/src/test/java/art/arcane/iris/core/pregenerator/PregenTaskLatticeOrderTest.java b/core/src/test/java/art/arcane/iris/world/pregen/PregenTaskLatticeOrderTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/pregenerator/PregenTaskLatticeOrderTest.java rename to core/src/test/java/art/arcane/iris/world/pregen/PregenTaskLatticeOrderTest.java index 12197b78d..5f3f59deb 100644 --- a/core/src/test/java/art/arcane/iris/core/pregenerator/PregenTaskLatticeOrderTest.java +++ b/core/src/test/java/art/arcane/iris/world/pregen/PregenTaskLatticeOrderTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pregenerator; +package art.arcane.iris.world.pregen; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.Position2; diff --git a/core/src/test/java/art/arcane/iris/core/pregenerator/PregenWaitPolicyContractTest.java b/core/src/test/java/art/arcane/iris/world/pregen/PregenWaitPolicyContractTest.java similarity index 89% rename from core/src/test/java/art/arcane/iris/core/pregenerator/PregenWaitPolicyContractTest.java rename to core/src/test/java/art/arcane/iris/world/pregen/PregenWaitPolicyContractTest.java index e9908925b..eccfb7330 100644 --- a/core/src/test/java/art/arcane/iris/core/pregenerator/PregenWaitPolicyContractTest.java +++ b/core/src/test/java/art/arcane/iris/world/pregen/PregenWaitPolicyContractTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.pregenerator; +package art.arcane.iris.world.pregen; import org.junit.Test; @@ -17,7 +17,7 @@ public class PregenWaitPolicyContractTest { @Test public void noPregenSourceSleepPollsWhileWaitingForCapacity() throws IOException { List offenders = new ArrayList<>(); - Path pregenRoot = sourceRoot().resolve("art/arcane/iris/core/pregenerator"); + Path pregenRoot = sourceRoot().resolve("art/arcane/iris/world/pregen"); try (Stream sources = Files.walk(pregenRoot)) { for (Path source : sources.filter(path -> path.toString().endsWith(".java")).toList()) { String text = Files.readString(source); @@ -32,7 +32,7 @@ public class PregenWaitPolicyContractTest { @Test public void mantleBackpressureWaitsOnAProgressSignalWithABoundedTimeout() throws IOException { - String backpressure = read("art/arcane/iris/core/pregenerator/PregenMantleBackpressure.java"); + String backpressure = read("art/arcane/iris/world/pregen/PregenMantleBackpressure.java"); assertTrue(backpressure.contains("progressed.await(waitMs, TimeUnit.MILLISECONDS)")); assertTrue(method(backpressure, "public void enforceMantleBudget()").contains("awaitProgress()")); @@ -41,7 +41,7 @@ public class PregenWaitPolicyContractTest { @Test public void chunkCompletionSignalsBothTheAdmissionGateAndTheBackpressureWait() throws IOException { - String finished = method(read("art/arcane/iris/core/pregenerator/methods/AsyncPregenMethod.java"), + String finished = method(read("art/arcane/iris/world/pregen/AsyncPregenMethod.java"), "private void markFinished(boolean success)"); assertTrue(finished, finished.contains("admission.release()")); @@ -50,7 +50,7 @@ public class PregenWaitPolicyContractTest { @Test public void pauseResumeAndStopSignalThePregenGateInsteadOfLettingItPoll() throws IOException { - String pregenerator = read("art/arcane/iris/core/pregenerator/IrisPregenerator.java"); + String pregenerator = read("art/arcane/iris/world/pregen/IrisPregenerator.java"); assertTrue(method(pregenerator, "public void pause()").contains("signalState()")); assertTrue(method(pregenerator, "public void resume()").contains("signalState()")); @@ -61,7 +61,7 @@ public class PregenWaitPolicyContractTest { @Test public void aFinishedPregenReleasesTheBurstParallelismItRaised() throws IOException { - String shutdown = method(read("art/arcane/iris/core/pregenerator/IrisPregenerator.java"), "private void shutdown()"); + String shutdown = method(read("art/arcane/iris/world/pregen/IrisPregenerator.java"), "private void shutdown()"); assertTrue(shutdown, shutdown.contains("shutdownStep(\"parallelism\", PregenPerformanceProfile::restore)")); } diff --git a/core/src/test/java/art/arcane/iris/core/runtime/ChunkClearerBlocksTest.java b/core/src/test/java/art/arcane/iris/world/runtime/ChunkClearerBlocksTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/runtime/ChunkClearerBlocksTest.java rename to core/src/test/java/art/arcane/iris/world/runtime/ChunkClearerBlocksTest.java index d173d8248..910808dd8 100644 --- a/core/src/test/java/art/arcane/iris/core/runtime/ChunkClearerBlocksTest.java +++ b/core/src/test/java/art/arcane/iris/world/runtime/ChunkClearerBlocksTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.runtime; +package art.arcane.iris.world.runtime; import org.bukkit.Chunk; import org.bukkit.ChunkSnapshot; diff --git a/core/src/test/java/art/arcane/iris/core/runtime/InPlaceChunkRegeneratorDiffTest.java b/core/src/test/java/art/arcane/iris/world/runtime/InPlaceChunkRegeneratorDiffTest.java similarity index 99% rename from core/src/test/java/art/arcane/iris/core/runtime/InPlaceChunkRegeneratorDiffTest.java rename to core/src/test/java/art/arcane/iris/world/runtime/InPlaceChunkRegeneratorDiffTest.java index fc25ecd94..b07f57711 100644 --- a/core/src/test/java/art/arcane/iris/core/runtime/InPlaceChunkRegeneratorDiffTest.java +++ b/core/src/test/java/art/arcane/iris/world/runtime/InPlaceChunkRegeneratorDiffTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.runtime; +package art.arcane.iris.world.runtime; import org.bukkit.Chunk; import org.bukkit.ChunkSnapshot; diff --git a/core/src/test/java/art/arcane/iris/core/runtime/RuntimeInjectionTest.java b/core/src/test/java/art/arcane/iris/world/runtime/RuntimeInjectionTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/core/runtime/RuntimeInjectionTest.java rename to core/src/test/java/art/arcane/iris/world/runtime/RuntimeInjectionTest.java index be058c945..386dafe4b 100644 --- a/core/src/test/java/art/arcane/iris/core/runtime/RuntimeInjectionTest.java +++ b/core/src/test/java/art/arcane/iris/world/runtime/RuntimeInjectionTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.runtime; +package art.arcane.iris.world.runtime; -import art.arcane.iris.core.IrisStartupValidation; +import art.arcane.iris.world.IrisStartupValidation; import art.arcane.iris.testsupport.BukkitTestServer; import org.junit.After; import org.junit.Before; diff --git a/core/src/test/java/art/arcane/iris/core/runtime/TransientWorldCleanupSupportTest.java b/core/src/test/java/art/arcane/iris/world/runtime/TransientWorldCleanupSupportTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/runtime/TransientWorldCleanupSupportTest.java rename to core/src/test/java/art/arcane/iris/world/runtime/TransientWorldCleanupSupportTest.java index 231da998d..f5a7fd2d9 100644 --- a/core/src/test/java/art/arcane/iris/core/runtime/TransientWorldCleanupSupportTest.java +++ b/core/src/test/java/art/arcane/iris/world/runtime/TransientWorldCleanupSupportTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.runtime; +package art.arcane.iris.world.runtime; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/runtime/WorldRuntimeControlBackendUrgencyTest.java b/core/src/test/java/art/arcane/iris/world/runtime/WorldRuntimeControlBackendUrgencyTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/runtime/WorldRuntimeControlBackendUrgencyTest.java rename to core/src/test/java/art/arcane/iris/world/runtime/WorldRuntimeControlBackendUrgencyTest.java index a2005b106..53fbe7281 100644 --- a/core/src/test/java/art/arcane/iris/core/runtime/WorldRuntimeControlBackendUrgencyTest.java +++ b/core/src/test/java/art/arcane/iris/world/runtime/WorldRuntimeControlBackendUrgencyTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.runtime; +package art.arcane.iris.world.runtime; import org.bukkit.Chunk; import org.bukkit.World; diff --git a/core/src/test/java/art/arcane/iris/core/runtime/WorldRuntimeControlServiceSafeEntryTest.java b/core/src/test/java/art/arcane/iris/world/runtime/WorldRuntimeControlServiceSafeEntryTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/runtime/WorldRuntimeControlServiceSafeEntryTest.java rename to core/src/test/java/art/arcane/iris/world/runtime/WorldRuntimeControlServiceSafeEntryTest.java index 0080f6173..9777d854d 100644 --- a/core/src/test/java/art/arcane/iris/core/runtime/WorldRuntimeControlServiceSafeEntryTest.java +++ b/core/src/test/java/art/arcane/iris/world/runtime/WorldRuntimeControlServiceSafeEntryTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.runtime; +package art.arcane.iris.world.runtime; -import art.arcane.iris.engine.platform.BukkitChunkGenerator; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.platform.generation.BukkitChunkGenerator; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; import org.bukkit.HeightMap; import org.bukkit.Location; import org.bukkit.Material; diff --git a/core/src/test/java/art/arcane/iris/core/runtime/WorldRuntimeControlServiceTeleportTest.java b/core/src/test/java/art/arcane/iris/world/runtime/WorldRuntimeControlServiceTeleportTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/runtime/WorldRuntimeControlServiceTeleportTest.java rename to core/src/test/java/art/arcane/iris/world/runtime/WorldRuntimeControlServiceTeleportTest.java index ca679bf8b..4dd410c76 100644 --- a/core/src/test/java/art/arcane/iris/core/runtime/WorldRuntimeControlServiceTeleportTest.java +++ b/core/src/test/java/art/arcane/iris/world/runtime/WorldRuntimeControlServiceTeleportTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.core.runtime; +package art.arcane.iris.world.runtime; -import art.arcane.iris.util.common.scheduling.J; +import art.arcane.iris.world.task.J; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.entity.Player; diff --git a/core/src/test/java/art/arcane/iris/core/runtime/WorldRuntimeControlServiceTimeLockTest.java b/core/src/test/java/art/arcane/iris/world/runtime/WorldRuntimeControlServiceTimeLockTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/runtime/WorldRuntimeControlServiceTimeLockTest.java rename to core/src/test/java/art/arcane/iris/world/runtime/WorldRuntimeControlServiceTimeLockTest.java index efdfd4fd4..075df1933 100644 --- a/core/src/test/java/art/arcane/iris/core/runtime/WorldRuntimeControlServiceTimeLockTest.java +++ b/core/src/test/java/art/arcane/iris/world/runtime/WorldRuntimeControlServiceTimeLockTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.runtime; +package art.arcane.iris.world.runtime; -import art.arcane.iris.core.lifecycle.CapabilitySnapshot; -import art.arcane.iris.core.lifecycle.ServerFamily; +import art.arcane.iris.world.lifecycle.CapabilitySnapshot; +import art.arcane.iris.world.lifecycle.ServerFamily; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.testsupport.BukkitTestServer; diff --git a/core/src/test/java/art/arcane/iris/core/safeguard/RuntimeLockNoticeTest.java b/core/src/test/java/art/arcane/iris/world/safeguard/RuntimeLockNoticeTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/core/safeguard/RuntimeLockNoticeTest.java rename to core/src/test/java/art/arcane/iris/world/safeguard/RuntimeLockNoticeTest.java index 7ffe4ca6e..ebf7bc19f 100644 --- a/core/src/test/java/art/arcane/iris/core/safeguard/RuntimeLockNoticeTest.java +++ b/core/src/test/java/art/arcane/iris/world/safeguard/RuntimeLockNoticeTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.safeguard; +package art.arcane.iris.world.safeguard; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/safeguard/TasksIncompatibilityTest.java b/core/src/test/java/art/arcane/iris/world/safeguard/TasksIncompatibilityTest.java similarity index 91% rename from core/src/test/java/art/arcane/iris/core/safeguard/TasksIncompatibilityTest.java rename to core/src/test/java/art/arcane/iris/world/safeguard/TasksIncompatibilityTest.java index d5efcbf68..1c92db24f 100644 --- a/core/src/test/java/art/arcane/iris/core/safeguard/TasksIncompatibilityTest.java +++ b/core/src/test/java/art/arcane/iris/world/safeguard/TasksIncompatibilityTest.java @@ -1,9 +1,5 @@ -package art.arcane.iris.core.safeguard; +package art.arcane.iris.world.safeguard; -import art.arcane.iris.core.safeguard.task.CheckResult; -import art.arcane.iris.core.safeguard.task.Diagnostic; -import art.arcane.iris.core.safeguard.task.Task; -import art.arcane.iris.core.safeguard.task.Tasks; import art.arcane.iris.testsupport.BukkitTestServer; import org.bukkit.Bukkit; import org.bukkit.plugin.Plugin; diff --git a/core/src/test/java/art/arcane/iris/core/safeguard/TasksInjectionDeferralTest.java b/core/src/test/java/art/arcane/iris/world/safeguard/TasksInjectionDeferralTest.java similarity index 89% rename from core/src/test/java/art/arcane/iris/core/safeguard/TasksInjectionDeferralTest.java rename to core/src/test/java/art/arcane/iris/world/safeguard/TasksInjectionDeferralTest.java index 264876eaf..21befa4a6 100644 --- a/core/src/test/java/art/arcane/iris/core/safeguard/TasksInjectionDeferralTest.java +++ b/core/src/test/java/art/arcane/iris/world/safeguard/TasksInjectionDeferralTest.java @@ -1,10 +1,6 @@ -package art.arcane.iris.core.safeguard; +package art.arcane.iris.world.safeguard; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.safeguard.task.CheckResult; -import art.arcane.iris.core.safeguard.task.Diagnostic; -import art.arcane.iris.core.safeguard.task.Task; -import art.arcane.iris.core.safeguard.task.Tasks; +import art.arcane.iris.configuration.IrisSettings; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.testsupport.BukkitTestServer; diff --git a/core/src/test/java/art/arcane/iris/util/project/matter/slices/HydrologyCaveMatterTest.java b/core/src/test/java/art/arcane/iris/world/storage/matter/HydrologyCaveMatterTest.java similarity index 92% rename from core/src/test/java/art/arcane/iris/util/project/matter/slices/HydrologyCaveMatterTest.java rename to core/src/test/java/art/arcane/iris/world/storage/matter/HydrologyCaveMatterTest.java index d9f95fc3d..a6b705c69 100644 --- a/core/src/test/java/art/arcane/iris/util/project/matter/slices/HydrologyCaveMatterTest.java +++ b/core/src/test/java/art/arcane/iris/world/storage/matter/HydrologyCaveMatterTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.util.project.matter.slices; +package art.arcane.iris.world.storage.matter; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; import org.junit.Test; import java.io.ByteArrayInputStream; diff --git a/core/src/test/java/art/arcane/iris/util/project/matter/IrisMatterContextTest.java b/core/src/test/java/art/arcane/iris/world/storage/matter/IrisMatterContextTest.java similarity index 93% rename from core/src/test/java/art/arcane/iris/util/project/matter/IrisMatterContextTest.java rename to core/src/test/java/art/arcane/iris/world/storage/matter/IrisMatterContextTest.java index 6acb6da06..2e74b7520 100644 --- a/core/src/test/java/art/arcane/iris/util/project/matter/IrisMatterContextTest.java +++ b/core/src/test/java/art/arcane/iris/world/storage/matter/IrisMatterContextTest.java @@ -1,6 +1,6 @@ -package art.arcane.iris.util.project.matter; +package art.arcane.iris.world.storage.matter; -import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.pack.loading.IrisData; import org.junit.Test; import static org.junit.Assert.assertSame; diff --git a/core/src/test/java/art/arcane/iris/util/project/matter/slices/IrisMatterPlatformSelectionTest.java b/core/src/test/java/art/arcane/iris/world/storage/matter/IrisMatterPlatformSelectionTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/util/project/matter/slices/IrisMatterPlatformSelectionTest.java rename to core/src/test/java/art/arcane/iris/world/storage/matter/IrisMatterPlatformSelectionTest.java index 5e4964ebb..4418f5763 100644 --- a/core/src/test/java/art/arcane/iris/util/project/matter/slices/IrisMatterPlatformSelectionTest.java +++ b/core/src/test/java/art/arcane/iris/world/storage/matter/IrisMatterPlatformSelectionTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.project.matter.slices; +package art.arcane.iris.world.storage.matter; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; diff --git a/core/src/test/java/art/arcane/iris/util/project/matter/slices/PreObjectMatterTest.java b/core/src/test/java/art/arcane/iris/world/storage/matter/PreObjectMatterTest.java similarity index 82% rename from core/src/test/java/art/arcane/iris/util/project/matter/slices/PreObjectMatterTest.java rename to core/src/test/java/art/arcane/iris/world/storage/matter/PreObjectMatterTest.java index 18ef0ec35..d7365aae0 100644 --- a/core/src/test/java/art/arcane/iris/util/project/matter/slices/PreObjectMatterTest.java +++ b/core/src/test/java/art/arcane/iris/world/storage/matter/PreObjectMatterTest.java @@ -1,11 +1,9 @@ -package art.arcane.iris.util.project.matter.slices; +package art.arcane.iris.world.storage.matter; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; import art.arcane.iris.testsupport.BukkitTestServer; -import art.arcane.iris.util.project.matter.IrisMatterSupport; -import art.arcane.iris.util.project.matter.PreObjectMatterCell; import art.arcane.volmlib.util.matter.IrisMatter; import art.arcane.volmlib.util.matter.Matter; import art.arcane.volmlib.util.matter.MatterCavern; @@ -33,6 +31,34 @@ public class PreObjectMatterTest { BukkitTestServer.install(); } + @Test + public void sparseEntriesRemainSparseThroughIterationAndClear() throws IOException { + PreObjectMatter matter = new PreObjectMatter(16, 16, 16); + PreObjectMatterCell cell = PreObjectMatterCell.string("object-owner"); + assertTrue(matter.isEmpty()); + matter.set(2, 3, 4, cell); + assertFalse(matter.isEmpty()); + int[] calls = new int[2]; + matter.iterateSync((x, y, z, value) -> { + assertEquals(2, x.intValue()); + assertEquals(3, y.intValue()); + assertEquals(4, z.intValue()); + assertEquals(cell, value); + calls[0]++; + }); + matter.iterateSyncIO((x, y, z, value) -> { + assertEquals(cell, value); + calls[1]++; + }); + assertEquals(1, calls[0]); + assertEquals(1, calls[1]); + + matter.empty(cell); + assertTrue(matter.isEmpty()); + assertEquals(0, matter.getEntryCount()); + assertNull(matter.get(2, 3, 4)); + } + @Test public void capturedNullsAndValuesRoundTripThroughMatter() throws IOException { IrisMatterSupport.ensureRegistered(); diff --git a/core/src/test/java/art/arcane/iris/util/project/matter/RegistryMatterContextTest.java b/core/src/test/java/art/arcane/iris/world/storage/matter/RegistryMatterContextTest.java similarity index 88% rename from core/src/test/java/art/arcane/iris/util/project/matter/RegistryMatterContextTest.java rename to core/src/test/java/art/arcane/iris/world/storage/matter/RegistryMatterContextTest.java index 92dba3c1b..f8873a151 100644 --- a/core/src/test/java/art/arcane/iris/util/project/matter/RegistryMatterContextTest.java +++ b/core/src/test/java/art/arcane/iris/world/storage/matter/RegistryMatterContextTest.java @@ -1,10 +1,9 @@ -package art.arcane.iris.util.project.matter; +package art.arcane.iris.world.storage.matter; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.core.loader.ResourceLoader; -import art.arcane.iris.engine.object.IrisSpawner; -import art.arcane.iris.util.project.matter.slices.SpawnerMatter; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.loading.IrisRegistrant; +import art.arcane.iris.pack.loading.ResourceLoader; +import art.arcane.iris.world.entity.IrisSpawner; import art.arcane.volmlib.util.collection.KMap; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/util/common/scheduling/JHybridPlatformTest.java b/core/src/test/java/art/arcane/iris/world/task/JHybridPlatformTest.java similarity index 97% rename from core/src/test/java/art/arcane/iris/util/common/scheduling/JHybridPlatformTest.java rename to core/src/test/java/art/arcane/iris/world/task/JHybridPlatformTest.java index 795f67b0a..84baed928 100644 --- a/core/src/test/java/art/arcane/iris/util/common/scheduling/JHybridPlatformTest.java +++ b/core/src/test/java/art/arcane/iris/world/task/JHybridPlatformTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.common.scheduling; +package art.arcane.iris.world.task; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; diff --git a/core/src/test/java/art/arcane/iris/util/common/scheduling/JRepeatingTaskLifecycleTest.java b/core/src/test/java/art/arcane/iris/world/task/JRepeatingTaskLifecycleTest.java similarity index 96% rename from core/src/test/java/art/arcane/iris/util/common/scheduling/JRepeatingTaskLifecycleTest.java rename to core/src/test/java/art/arcane/iris/world/task/JRepeatingTaskLifecycleTest.java index db1cf2d3f..22f6bdf13 100644 --- a/core/src/test/java/art/arcane/iris/util/common/scheduling/JRepeatingTaskLifecycleTest.java +++ b/core/src/test/java/art/arcane/iris/world/task/JRepeatingTaskLifecycleTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.util.common.scheduling; +package art.arcane.iris.world.task; import org.junit.After; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/service/tree/TreeDefinitionIndexTest.java b/core/src/test/java/art/arcane/iris/world/tree/TreeDefinitionIndexTest.java similarity index 78% rename from core/src/test/java/art/arcane/iris/core/service/tree/TreeDefinitionIndexTest.java rename to core/src/test/java/art/arcane/iris/world/tree/TreeDefinitionIndexTest.java index cd5cadfb4..2e469df26 100644 --- a/core/src/test/java/art/arcane/iris/core/service/tree/TreeDefinitionIndexTest.java +++ b/core/src/test/java/art/arcane/iris/world/tree/TreeDefinitionIndexTest.java @@ -1,14 +1,14 @@ -package art.arcane.iris.core.service.tree; +package art.arcane.iris.world.tree; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.StructurePlacementMarker; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisObjectPlacement; -import art.arcane.iris.engine.object.IrisProceduralObjects; -import art.arcane.iris.engine.object.IrisProceduralTree; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisTree; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.structure.placement.StructurePlacementMarker; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.structure.object.IrisObjectPlacement; +import art.arcane.iris.generation.decoration.IrisProceduralObjects; +import art.arcane.iris.generation.decoration.tree.IrisProceduralTree; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.generation.decoration.tree.IrisTree; import art.arcane.volmlib.util.collection.KList; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/service/tree/TreeMarkerTraversalTest.java b/core/src/test/java/art/arcane/iris/world/tree/TreeMarkerTraversalTest.java similarity index 98% rename from core/src/test/java/art/arcane/iris/core/service/tree/TreeMarkerTraversalTest.java rename to core/src/test/java/art/arcane/iris/world/tree/TreeMarkerTraversalTest.java index 133332386..3bf3efc15 100644 --- a/core/src/test/java/art/arcane/iris/core/service/tree/TreeMarkerTraversalTest.java +++ b/core/src/test/java/art/arcane/iris/world/tree/TreeMarkerTraversalTest.java @@ -1,4 +1,4 @@ -package art.arcane.iris.core.service.tree; +package art.arcane.iris.world.tree; import org.junit.Test; diff --git a/core/src/test/java/art/arcane/iris/core/service/TreeSVCFluidHeightTest.java b/core/src/test/java/art/arcane/iris/world/tree/TreeSVCFluidHeightTest.java similarity index 81% rename from core/src/test/java/art/arcane/iris/core/service/TreeSVCFluidHeightTest.java rename to core/src/test/java/art/arcane/iris/world/tree/TreeSVCFluidHeightTest.java index cb6d916a5..e56fe48b0 100644 --- a/core/src/test/java/art/arcane/iris/core/service/TreeSVCFluidHeightTest.java +++ b/core/src/test/java/art/arcane/iris/world/tree/TreeSVCFluidHeightTest.java @@ -1,7 +1,7 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.world.tree; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.terrain.IrisDimension; import org.junit.Test; import static org.junit.Assert.assertEquals; diff --git a/core/src/test/java/art/arcane/iris/core/service/TreeSVCLifecycleTest.java b/core/src/test/java/art/arcane/iris/world/tree/TreeSVCLifecycleTest.java similarity index 91% rename from core/src/test/java/art/arcane/iris/core/service/TreeSVCLifecycleTest.java rename to core/src/test/java/art/arcane/iris/world/tree/TreeSVCLifecycleTest.java index 432382ed3..e9cd27cfb 100644 --- a/core/src/test/java/art/arcane/iris/core/service/TreeSVCLifecycleTest.java +++ b/core/src/test/java/art/arcane/iris/world/tree/TreeSVCLifecycleTest.java @@ -1,15 +1,15 @@ -package art.arcane.iris.core.service; +package art.arcane.iris.world.tree; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineTarget; -import art.arcane.iris.engine.framework.GenerationSessionManager; -import art.arcane.iris.engine.framework.GenerationTransitionGate; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.engine.object.IrisWorld; -import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.world.IrisToolbelt; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineTarget; +import art.arcane.iris.generation.runtime.GenerationSessionManager; +import art.arcane.iris.generation.runtime.GenerationTransitionGate; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.terrain.IrisRegion; +import art.arcane.iris.world.IrisWorld; +import art.arcane.iris.platform.generation.PlatformChunkGenerator; import art.arcane.iris.spi.IrisLogging; import art.arcane.volmlib.util.data.Cuboid; import org.bukkit.Location; diff --git a/core/src/test/resources/art/arcane/iris/core/lifecycle/world-lifecycle-smoke-matrix.txt b/core/src/test/resources/art/arcane/iris/world/lifecycle/world-lifecycle-smoke-matrix.txt similarity index 100% rename from core/src/test/resources/art/arcane/iris/core/lifecycle/world-lifecycle-smoke-matrix.txt rename to core/src/test/resources/art/arcane/iris/world/lifecycle/world-lifecycle-smoke-matrix.txt diff --git a/core/src/testFixtures/java/art/arcane/iris/testsupport/BukkitTestServer.java b/core/src/testFixtures/java/art/arcane/iris/testsupport/BukkitTestServer.java index 471b3f27f..5ecaf1c7f 100644 --- a/core/src/testFixtures/java/art/arcane/iris/testsupport/BukkitTestServer.java +++ b/core/src/testFixtures/java/art/arcane/iris/testsupport/BukkitTestServer.java @@ -1,5 +1,6 @@ package art.arcane.iris.testsupport; + import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.Server; diff --git a/core/src/testFixtures/java/art/arcane/iris/testsupport/DurabilityMode.java b/core/src/testFixtures/java/art/arcane/iris/testsupport/DurabilityMode.java index 249f7a2b3..5d22d9eab 100644 --- a/core/src/testFixtures/java/art/arcane/iris/testsupport/DurabilityMode.java +++ b/core/src/testFixtures/java/art/arcane/iris/testsupport/DurabilityMode.java @@ -1,6 +1,7 @@ package art.arcane.iris.testsupport; -import art.arcane.iris.util.common.io.Durability; + +import art.arcane.iris.world.storage.Durability; import org.junit.rules.TestRule; import org.junit.runner.Description; import org.junit.runners.model.Statement; diff --git a/core/src/testFixtures/java/art/arcane/iris/testsupport/PlatformBinding.java b/core/src/testFixtures/java/art/arcane/iris/testsupport/PlatformBinding.java index 711ca4408..c813fe73a 100644 --- a/core/src/testFixtures/java/art/arcane/iris/testsupport/PlatformBinding.java +++ b/core/src/testFixtures/java/art/arcane/iris/testsupport/PlatformBinding.java @@ -1,5 +1,6 @@ package art.arcane.iris.testsupport; + import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBlockState; diff --git a/core/src/testFixtures/java/art/arcane/iris/testsupport/PlatformLeakGuard.java b/core/src/testFixtures/java/art/arcane/iris/testsupport/PlatformLeakGuard.java index c27a5f76c..38e1a81c4 100644 --- a/core/src/testFixtures/java/art/arcane/iris/testsupport/PlatformLeakGuard.java +++ b/core/src/testFixtures/java/art/arcane/iris/testsupport/PlatformLeakGuard.java @@ -1,5 +1,6 @@ package art.arcane.iris.testsupport; + import org.junit.rules.TestRule; import org.junit.runner.Description; import org.junit.runners.model.Statement; diff --git a/packaging/shrink.pro b/packaging/shrink.pro index 5f381fdf8..a04610c2a 100644 --- a/packaging/shrink.pro +++ b/packaging/shrink.pro @@ -1,6 +1,10 @@ -keep class art.arcane.iris.api.** { *; } --keep class art.arcane.iris.core.events.** { *; } +-keep class art.arcane.iris.world.event.** { *; } -keep class art.arcane.iris.spi.** { *; } +-keep class art.arcane.iris.command.handlers.** { *; } +-keep class art.arcane.iris.command.context.** { *; } +-keep class art.arcane.iris.command.specialhandlers.** { *; } +-keep @art.arcane.iris.generation.mantle.ComponentFlag class * { *; } -keep class art.arcane.volmlib.integration.** { *; } -keep class * implements art.arcane.volmlib.integration.IntegrationServiceContract { *; } -keep class * implements art.arcane.volmlib.integration.ReloadAware { *; } diff --git a/probe/src/main/java/art/arcane/iris/probe/ClassloadProbe.java b/probe/src/main/java/art/arcane/iris/probe/ClassloadProbe.java index 716c91929..bce3f86f6 100644 --- a/probe/src/main/java/art/arcane/iris/probe/ClassloadProbe.java +++ b/probe/src/main/java/art/arcane/iris/probe/ClassloadProbe.java @@ -36,9 +36,10 @@ public final class ClassloadProbe { private static final String ALLOWLIST_RESOURCE = "/classload-allowlist.tsv"; private static final String[] CRITICAL_PREFIXES = { - "art.arcane.iris.engine.", - "art.arcane.iris.util.", - "art.arcane.iris.core.loader.", + "art.arcane.iris.generation.", + "art.arcane.iris.pack.", + "art.arcane.iris.structure.", + "art.arcane.iris.world.storage.", "art.arcane.iris.spi.", }; @@ -194,8 +195,7 @@ public final class ClassloadProbe { BUKKIT_API, PAPERLIB_API, ADVENTURE_API, - MYTHICMOBS_API, - SERVER_RUNTIME_FILE + MYTHICMOBS_API } record Allowance(AllowanceCategory category, String detail) { @@ -205,8 +205,6 @@ public final class ClassloadProbe { case PAPERLIB_API -> detail.startsWith("io.papermc.lib.") && failure.isMissingClassIn("io.papermc.lib."); case ADVENTURE_API -> detail.startsWith("net.kyori.adventure.") && failure.isMissingClassIn("net.kyori.adventure."); case MYTHICMOBS_API -> detail.startsWith("io.lumine.mythic.") && failure.isMissingClassIn("io.lumine.mythic."); - case SERVER_RUNTIME_FILE -> failure.exceptionClass().equals("java.io.FileNotFoundException") - && failure.message().startsWith(detail); }; } } diff --git a/probe/src/main/java/art/arcane/iris/probe/DeserializationProbe.java b/probe/src/main/java/art/arcane/iris/probe/DeserializationProbe.java index 165eaac50..bbd5ea54d 100644 --- a/probe/src/main/java/art/arcane/iris/probe/DeserializationProbe.java +++ b/probe/src/main/java/art/arcane/iris/probe/DeserializationProbe.java @@ -18,14 +18,14 @@ package art.arcane.iris.probe; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.engine.framework.MeteredCache; -import art.arcane.iris.engine.framework.PreservationRegistry; -import art.arcane.iris.engine.object.IrisEntity; -import art.arcane.iris.engine.object.IrisEntitySpawn; -import art.arcane.iris.engine.object.IrisLoot; -import art.arcane.iris.engine.object.IrisLootTable; -import art.arcane.iris.engine.object.IrisSpawner; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.generation.runtime.MeteredCache; +import art.arcane.iris.generation.runtime.PreservationRegistry; +import art.arcane.iris.world.entity.IrisEntity; +import art.arcane.iris.world.entity.IrisEntitySpawn; +import art.arcane.iris.world.loot.IrisLoot; +import art.arcane.iris.world.loot.IrisLootTable; +import art.arcane.iris.world.entity.IrisSpawner; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.IrisServices; import art.arcane.volmlib.util.collection.KList; diff --git a/probe/src/main/java/art/arcane/iris/probe/GenerationOrderProbe.java b/probe/src/main/java/art/arcane/iris/probe/GenerationOrderProbe.java index bcf687660..8c62fe392 100644 --- a/probe/src/main/java/art/arcane/iris/probe/GenerationOrderProbe.java +++ b/probe/src/main/java/art/arcane/iris/probe/GenerationOrderProbe.java @@ -1,9 +1,9 @@ package art.arcane.iris.probe; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; import java.io.File; import java.nio.charset.StandardCharsets; diff --git a/probe/src/main/java/art/arcane/iris/probe/GenerationProbe.java b/probe/src/main/java/art/arcane/iris/probe/GenerationProbe.java index 391df1142..24795bb5f 100644 --- a/probe/src/main/java/art/arcane/iris/probe/GenerationProbe.java +++ b/probe/src/main/java/art/arcane/iris/probe/GenerationProbe.java @@ -18,27 +18,27 @@ package art.arcane.iris.probe; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.pack.PackValidationResult; -import art.arcane.iris.core.pack.PackValidator; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineAssignedComponent; -import art.arcane.iris.engine.framework.EngineEffects; -import art.arcane.iris.engine.framework.EngineEffectsProvider; -import art.arcane.iris.engine.framework.EnginePlatformHooks; -import art.arcane.iris.engine.framework.EngineTarget; -import art.arcane.iris.engine.framework.EngineWorldManager; -import art.arcane.iris.engine.framework.EngineWorldManagerProvider; -import art.arcane.iris.engine.framework.MeteredCache; -import art.arcane.iris.engine.framework.PreservationRegistry; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisWorld; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.PackValidationResult; +import art.arcane.iris.pack.PackValidator; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineAssignedComponent; +import art.arcane.iris.generation.runtime.EngineEffects; +import art.arcane.iris.generation.runtime.EngineEffectsProvider; +import art.arcane.iris.generation.runtime.EnginePlatformHooks; +import art.arcane.iris.generation.runtime.EngineTarget; +import art.arcane.iris.generation.runtime.EngineWorldManager; +import art.arcane.iris.generation.runtime.EngineWorldManagerProvider; +import art.arcane.iris.generation.runtime.MeteredCache; +import art.arcane.iris.generation.runtime.PreservationRegistry; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.world.IrisWorld; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; import java.io.File; import java.nio.charset.StandardCharsets; diff --git a/probe/src/main/java/art/arcane/iris/probe/HydrologyBlockProbe.java b/probe/src/main/java/art/arcane/iris/probe/HydrologyBlockProbe.java index 34edfe119..fb37fd9f8 100644 --- a/probe/src/main/java/art/arcane/iris/probe/HydrologyBlockProbe.java +++ b/probe/src/main/java/art/arcane/iris/probe/HydrologyBlockProbe.java @@ -1,12 +1,12 @@ package art.arcane.iris.probe; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.HydrologyColumnSample; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.engine.hydrology.RiverFootprint; -import art.arcane.iris.engine.object.InferredType; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.HydrologyColumnSample; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.hydrology.RiverFootprint; +import art.arcane.iris.generation.terrain.InferredType; import art.arcane.iris.spi.PlatformBlockState; import com.google.gson.GsonBuilder; diff --git a/probe/src/main/java/art/arcane/iris/probe/HydrologyPackProbe.java b/probe/src/main/java/art/arcane/iris/probe/HydrologyPackProbe.java index f7a832028..cabd3c937 100644 --- a/probe/src/main/java/art/arcane/iris/probe/HydrologyPackProbe.java +++ b/probe/src/main/java/art/arcane/iris/probe/HydrologyPackProbe.java @@ -1,41 +1,41 @@ package art.arcane.iris.probe; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.hydrology.HydrologyCandidateKind; -import art.arcane.iris.engine.hydrology.HydrologyCandidateRejection; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.HydrologyColumnSample; -import art.arcane.iris.engine.hydrology.HydrologyCaveVoxelViewFactory; -import art.arcane.iris.engine.hydrology.DrainageEdge; -import art.arcane.iris.engine.hydrology.DrainageNode; -import art.arcane.iris.engine.hydrology.HydrologyDiagnosticCandidate; -import art.arcane.iris.engine.hydrology.HydrologyFeatureRef; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.engine.hydrology.HydraulicSegment; -import art.arcane.iris.engine.hydrology.HydrologyPlannerSettings; -import art.arcane.iris.engine.hydrology.HydrologyPoint; -import art.arcane.iris.engine.hydrology.HydrologyTile; -import art.arcane.iris.engine.hydrology.HydrologyTileKey; -import art.arcane.iris.engine.hydrology.RiverCourse; -import art.arcane.iris.engine.hydrology.RiverCourseType; -import art.arcane.iris.engine.hydrology.RiverFootprint; -import art.arcane.iris.engine.hydrology.RiverOutlet; -import art.arcane.iris.engine.hydrology.surface.SurfaceCenterline; -import art.arcane.iris.engine.hydrology.surface.SurfaceFootprintCompiler; -import art.arcane.iris.engine.hydrology.cave.CavePosition; -import art.arcane.iris.engine.hydrology.cave.CaveVoxel; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelView; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelPrecondition; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell; -import art.arcane.iris.engine.hydrology.cave.HydrologyCavePlan; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveStorage; -import art.arcane.iris.engine.hydrology.runtime.IrisHydrologyRuntime; -import art.arcane.iris.engine.mantle.components.MantleHydrologyCaveVoxelView; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBiomeCustom; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisRiverBlendStyle; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.hydrology.HydrologyCandidateKind; +import art.arcane.iris.generation.hydrology.HydrologyCandidateRejection; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.HydrologyColumnSample; +import art.arcane.iris.generation.hydrology.HydrologyCaveVoxelViewFactory; +import art.arcane.iris.generation.hydrology.DrainageEdge; +import art.arcane.iris.generation.hydrology.DrainageNode; +import art.arcane.iris.generation.hydrology.HydrologyDiagnosticCandidate; +import art.arcane.iris.generation.hydrology.HydrologyFeatureRef; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.hydrology.HydraulicSegment; +import art.arcane.iris.generation.hydrology.HydrologyPlannerSettings; +import art.arcane.iris.generation.hydrology.HydrologyPoint; +import art.arcane.iris.generation.hydrology.HydrologyTile; +import art.arcane.iris.generation.hydrology.HydrologyTileKey; +import art.arcane.iris.generation.hydrology.RiverCourse; +import art.arcane.iris.generation.hydrology.RiverCourseType; +import art.arcane.iris.generation.hydrology.RiverFootprint; +import art.arcane.iris.generation.hydrology.RiverOutlet; +import art.arcane.iris.generation.hydrology.surface.SurfaceCenterline; +import art.arcane.iris.generation.hydrology.surface.SurfaceFootprintCompiler; +import art.arcane.iris.generation.hydrology.cave.CavePosition; +import art.arcane.iris.generation.hydrology.cave.CaveVoxel; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelView; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelPrecondition; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveCell; +import art.arcane.iris.generation.hydrology.cave.HydrologyCavePlan; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveStorage; +import art.arcane.iris.generation.hydrology.runtime.IrisHydrologyRuntime; +import art.arcane.iris.generation.mantle.MantleHydrologyCaveVoxelView; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiomeCustom; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.generation.hydrology.IrisRiverBlendStyle; import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.volmlib.util.matter.MatterUpdate; diff --git a/probe/src/main/java/art/arcane/iris/probe/HydrologyPlannerProbe.java b/probe/src/main/java/art/arcane/iris/probe/HydrologyPlannerProbe.java index 679949880..4d7efa0be 100644 --- a/probe/src/main/java/art/arcane/iris/probe/HydrologyPlannerProbe.java +++ b/probe/src/main/java/art/arcane/iris/probe/HydrologyPlannerProbe.java @@ -1,21 +1,21 @@ package art.arcane.iris.probe; -import art.arcane.iris.engine.hydrology.policy.SurfaceRiverPolicy; +import art.arcane.iris.generation.hydrology.policy.SurfaceRiverPolicy; -import art.arcane.iris.engine.hydrology.HydrologyColumnSample; -import art.arcane.iris.engine.hydrology.HydrologyFeatureRef; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.engine.hydrology.HydrologyGeometrySampler; -import art.arcane.iris.engine.hydrology.HydrologyPlanner; -import art.arcane.iris.engine.hydrology.HydrologyPlannerSettings; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSample; -import art.arcane.iris.engine.hydrology.HydrologyTerrainSampler; -import art.arcane.iris.engine.hydrology.HydrologyTile; -import art.arcane.iris.engine.hydrology.HydrologyTileCache; -import art.arcane.iris.engine.hydrology.HydrologyTileKey; -import art.arcane.iris.engine.hydrology.cave.CavePosition; -import art.arcane.iris.engine.hydrology.cave.CaveVoxel; -import art.arcane.iris.engine.hydrology.cave.CaveVoxelView; +import art.arcane.iris.generation.hydrology.HydrologyColumnSample; +import art.arcane.iris.generation.hydrology.HydrologyFeatureRef; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.hydrology.HydrologyGeometrySampler; +import art.arcane.iris.generation.hydrology.HydrologyPlanner; +import art.arcane.iris.generation.hydrology.HydrologyPlannerSettings; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSample; +import art.arcane.iris.generation.hydrology.HydrologyTerrainSampler; +import art.arcane.iris.generation.hydrology.HydrologyTile; +import art.arcane.iris.generation.hydrology.HydrologyTileCache; +import art.arcane.iris.generation.hydrology.HydrologyTileKey; +import art.arcane.iris.generation.hydrology.cave.CavePosition; +import art.arcane.iris.generation.hydrology.cave.CaveVoxel; +import art.arcane.iris.generation.hydrology.cave.CaveVoxelView; import java.util.Arrays; import java.util.EnumMap; diff --git a/probe/src/main/java/art/arcane/iris/probe/RealPackProbeSupport.java b/probe/src/main/java/art/arcane/iris/probe/RealPackProbeSupport.java index 27ccc3b4d..b8f821d68 100644 --- a/probe/src/main/java/art/arcane/iris/probe/RealPackProbeSupport.java +++ b/probe/src/main/java/art/arcane/iris/probe/RealPackProbeSupport.java @@ -1,28 +1,28 @@ package art.arcane.iris.probe; -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.pack.PackValidationResult; -import art.arcane.iris.core.pack.PackValidator; -import art.arcane.iris.engine.IrisEngine; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.framework.EngineAssignedComponent; -import art.arcane.iris.engine.framework.EngineEffects; -import art.arcane.iris.engine.framework.EngineEffectsProvider; -import art.arcane.iris.engine.framework.EnginePlatformHooks; -import art.arcane.iris.engine.framework.EngineTarget; -import art.arcane.iris.engine.framework.EngineWorldManager; -import art.arcane.iris.engine.framework.EngineWorldManagerProvider; -import art.arcane.iris.engine.framework.MeteredCache; -import art.arcane.iris.engine.framework.PreservationRegistry; -import art.arcane.iris.engine.mantle.MantleComponent; -import art.arcane.iris.engine.mantle.components.MantleObjectComponent; -import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.engine.object.IrisWorld; +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.iris.pack.PackValidationResult; +import art.arcane.iris.pack.PackValidator; +import art.arcane.iris.generation.runtime.IrisEngine; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.runtime.EngineAssignedComponent; +import art.arcane.iris.generation.runtime.EngineEffects; +import art.arcane.iris.generation.runtime.EngineEffectsProvider; +import art.arcane.iris.generation.runtime.EnginePlatformHooks; +import art.arcane.iris.generation.runtime.EngineTarget; +import art.arcane.iris.generation.runtime.EngineWorldManager; +import art.arcane.iris.generation.runtime.EngineWorldManagerProvider; +import art.arcane.iris.generation.runtime.MeteredCache; +import art.arcane.iris.generation.runtime.PreservationRegistry; +import art.arcane.iris.generation.mantle.MantleComponent; +import art.arcane.iris.generation.mantle.MantleObjectComponent; +import art.arcane.iris.generation.terrain.IrisDimension; +import art.arcane.iris.world.IrisWorld; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; import java.io.File; import java.nio.file.Files; diff --git a/probe/src/main/java/art/arcane/iris/probe/RiverTransectProbe.java b/probe/src/main/java/art/arcane/iris/probe/RiverTransectProbe.java index e016a6daa..a67fea6fd 100644 --- a/probe/src/main/java/art/arcane/iris/probe/RiverTransectProbe.java +++ b/probe/src/main/java/art/arcane/iris/probe/RiverTransectProbe.java @@ -1,27 +1,27 @@ package art.arcane.iris.probe; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.hydrology.DrainageEdge; -import art.arcane.iris.engine.hydrology.DrainageNode; -import art.arcane.iris.engine.hydrology.HydraulicSegment; -import art.arcane.iris.engine.hydrology.HydrologyCandidateKind; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.HydrologyColumnSample; -import art.arcane.iris.engine.hydrology.HydrologyDiagnosticCandidate; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.engine.object.InferredType; -import art.arcane.iris.engine.hydrology.HydrologyPoint; -import art.arcane.iris.engine.hydrology.HydrologyPlannerSettings; -import art.arcane.iris.engine.hydrology.surface.SurfaceExcavationMetrics; -import art.arcane.iris.engine.hydrology.HydrologyTile; -import art.arcane.iris.engine.hydrology.HydrologyTileKey; -import art.arcane.iris.engine.hydrology.RiverCourse; -import art.arcane.iris.engine.hydrology.RiverCourseType; -import art.arcane.iris.engine.hydrology.RiverFootprint; -import art.arcane.iris.engine.hydrology.runtime.IrisHydrologyRuntime; -import art.arcane.iris.engine.hydrology.surface.SurfaceCenterline; -import art.arcane.iris.engine.hydrology.surface.SurfaceFootprintCompiler; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.hydrology.DrainageEdge; +import art.arcane.iris.generation.hydrology.DrainageNode; +import art.arcane.iris.generation.hydrology.HydraulicSegment; +import art.arcane.iris.generation.hydrology.HydrologyCandidateKind; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.HydrologyColumnSample; +import art.arcane.iris.generation.hydrology.HydrologyDiagnosticCandidate; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.terrain.InferredType; +import art.arcane.iris.generation.hydrology.HydrologyPoint; +import art.arcane.iris.generation.hydrology.HydrologyPlannerSettings; +import art.arcane.iris.generation.hydrology.surface.SurfaceExcavationMetrics; +import art.arcane.iris.generation.hydrology.HydrologyTile; +import art.arcane.iris.generation.hydrology.HydrologyTileKey; +import art.arcane.iris.generation.hydrology.RiverCourse; +import art.arcane.iris.generation.hydrology.RiverCourseType; +import art.arcane.iris.generation.hydrology.RiverFootprint; +import art.arcane.iris.generation.hydrology.runtime.IrisHydrologyRuntime; +import art.arcane.iris.generation.hydrology.surface.SurfaceCenterline; +import art.arcane.iris.generation.hydrology.surface.SurfaceFootprintCompiler; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; diff --git a/probe/src/main/java/art/arcane/iris/probe/StubPlatform.java b/probe/src/main/java/art/arcane/iris/probe/StubPlatform.java index ac456f82d..5fed1f3da 100644 --- a/probe/src/main/java/art/arcane/iris/probe/StubPlatform.java +++ b/probe/src/main/java/art/arcane/iris/probe/StubPlatform.java @@ -18,10 +18,10 @@ package art.arcane.iris.probe; -import art.arcane.iris.engine.decorator.DecoratorPlatformHooks; -import art.arcane.iris.engine.object.BlockDataMergeSupport; -import art.arcane.iris.engine.object.IrisObjectRotation; -import art.arcane.iris.engine.object.TileData; +import art.arcane.iris.generation.decoration.DecoratorPlatformHooks; +import art.arcane.iris.generation.block.BlockDataMergeSupport; +import art.arcane.iris.structure.object.IrisObjectRotation; +import art.arcane.iris.generation.block.TileData; import art.arcane.iris.spi.IrisPlatform; import art.arcane.iris.spi.LogLevel; import art.arcane.iris.spi.PlatformBiome; @@ -34,7 +34,7 @@ import art.arcane.iris.spi.PlatformRegistries; import art.arcane.iris.spi.PlatformScheduler; import art.arcane.iris.spi.PlatformStructureHooks; import art.arcane.iris.spi.PlatformWorld; -import art.arcane.iris.util.common.math.IrisBlockVector; +import art.arcane.iris.generation.geometry.IrisBlockVector; import java.io.File; import java.util.LinkedHashMap; diff --git a/probe/src/main/java/art/arcane/iris/probe/StubTileData.java b/probe/src/main/java/art/arcane/iris/probe/StubTileData.java index 120744997..db1aaf9d2 100644 --- a/probe/src/main/java/art/arcane/iris/probe/StubTileData.java +++ b/probe/src/main/java/art/arcane/iris/probe/StubTileData.java @@ -1,6 +1,6 @@ package art.arcane.iris.probe; -import art.arcane.iris.engine.object.TileData; +import art.arcane.iris.generation.block.TileData; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.volmlib.util.collection.KMap; import com.google.gson.Gson; diff --git a/probe/src/main/java/art/arcane/iris/probe/Terrain3DProbe.java b/probe/src/main/java/art/arcane/iris/probe/Terrain3DProbe.java index 762a45923..ae3372519 100644 --- a/probe/src/main/java/art/arcane/iris/probe/Terrain3DProbe.java +++ b/probe/src/main/java/art/arcane/iris/probe/Terrain3DProbe.java @@ -1,13 +1,13 @@ package art.arcane.iris.probe; -import art.arcane.iris.engine.IrisComplex; -import art.arcane.iris.engine.actuator.IrisTerrainNormalActuator; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.terrain.Terrain3DColumn; +import art.arcane.iris.generation.runtime.IrisComplex; +import art.arcane.iris.generation.stage.IrisTerrainNormalActuator; +import art.arcane.iris.generation.runtime.Engine; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.terrain.Terrain3DColumn; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.context.ChunkContext; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.iris.generation.context.ChunkContext; +import art.arcane.volmlib.util.hunk.Hunk; import com.google.gson.GsonBuilder; import javax.imageio.ImageIO; diff --git a/probe/src/main/resources/classload-allowlist.tsv b/probe/src/main/resources/classload-allowlist.tsv index 7079199fc..e98f1fa77 100644 --- a/probe/src/main/resources/classload-allowlist.tsv +++ b/probe/src/main/resources/classload-allowlist.tsv @@ -1,88 +1,116 @@ -art.arcane.iris.core.IrisWorlds BUKKIT_API org.bukkit.command.CommandSender -art.arcane.iris.core.ServerConfigurator BUKKIT_API org.bukkit.command.CommandSender -art.arcane.iris.core.edit.BlockSignal BUKKIT_API org.bukkit.entity.Entity -art.arcane.iris.core.edit.BlockSignal$1 BUKKIT_API org.bukkit.entity.Entity -art.arcane.iris.core.edit.DustRevealer ADVENTURE_API net.kyori.adventure.text.format.TextColor -art.arcane.iris.core.events.IrisEngineEvent BUKKIT_API org.bukkit.event.Event -art.arcane.iris.core.events.IrisEngineHotloadEvent BUKKIT_API org.bukkit.event.Event -art.arcane.iris.core.events.IrisLootEvent BUKKIT_API org.bukkit.event.Event -art.arcane.iris.core.events.IrisLootEvent$1 BUKKIT_API org.bukkit.loot.LootTable -art.arcane.iris.core.events.IrisLootEvent$2 BUKKIT_API org.bukkit.inventory.InventoryHolder -art.arcane.iris.core.lifecycle.PaperLibBootstrap PAPERLIB_API io.papermc.lib.environments.Environment -art.arcane.iris.core.lifecycle.PaperLibBootstrap$ModernPaperEnvironment PAPERLIB_API io.papermc.lib.environments.PaperEnvironment -art.arcane.iris.core.lifecycle.WorldLifecycleService BUKKIT_API org.bukkit.generator.WorldInfo -art.arcane.iris.core.lifecycle.WorldLifecycleSupport BUKKIT_API org.bukkit.generator.WorldInfo -art.arcane.iris.core.link.ExternalDataProvider BUKKIT_API org.bukkit.block.BlockFace -art.arcane.iris.core.link.data.CraftEngineDataProvider BUKKIT_API org.bukkit.block.data.BlockData -art.arcane.iris.core.link.data.EcoItemsDataProvider BUKKIT_API org.bukkit.block.BlockFace -art.arcane.iris.core.link.data.ExecutableItemsDataProvider BUKKIT_API org.bukkit.block.BlockFace -art.arcane.iris.core.link.data.ItemAdderDataProvider BUKKIT_API org.bukkit.event.Listener -art.arcane.iris.core.link.data.KGeneratorsDataProvider BUKKIT_API org.bukkit.block.data.BlockData -art.arcane.iris.core.link.data.MMOItemsDataProvider BUKKIT_API org.bukkit.block.BlockFace -art.arcane.iris.core.link.data.MythicCrucibleDataProvider BUKKIT_API org.bukkit.block.data.BlockData -art.arcane.iris.core.link.data.MythicMobsDataProvider BUKKIT_API org.bukkit.event.Listener -art.arcane.iris.core.link.data.MythicMobsDataProvider$IrisBiomeCondition MYTHICMOBS_API io.lumine.mythic.api.skills.conditions.ILocationCondition -art.arcane.iris.core.link.data.MythicMobsDataProvider$IrisRegionCondition MYTHICMOBS_API io.lumine.mythic.api.skills.conditions.ILocationCondition -art.arcane.iris.core.link.data.NexoDataProvider BUKKIT_API org.bukkit.block.data.BlockData -art.arcane.iris.core.nms.INMS BUKKIT_API org.bukkit.Bukkit -art.arcane.iris.core.project.IrisProject BUKKIT_API org.bukkit.entity.Entity -art.arcane.iris.core.runtime.StudioOpenCoordinator BUKKIT_API org.bukkit.generator.WorldInfo -art.arcane.iris.core.runtime.WorldRuntimeControlService BUKKIT_API org.bukkit.entity.Entity -art.arcane.iris.core.service.BoardSVC BUKKIT_API org.bukkit.event.Listener -art.arcane.iris.core.service.BoardSVC$PlayerBoard BUKKIT_API org.bukkit.entity.Entity -art.arcane.iris.core.service.EntityRiseSVC BUKKIT_API org.bukkit.event.Listener -art.arcane.iris.core.service.ExternalDataSVC BUKKIT_API org.bukkit.event.Listener -art.arcane.iris.core.service.GlobalCacheSVC BUKKIT_API org.bukkit.event.Listener -art.arcane.iris.core.service.LogFilterSVC BUKKIT_API org.bukkit.event.Listener -art.arcane.iris.core.service.ObjectSVC BUKKIT_API org.bukkit.event.Listener -art.arcane.iris.core.service.ObjectStudioSaveService BUKKIT_API org.bukkit.event.Listener -art.arcane.iris.core.service.PreservationSVC BUKKIT_API org.bukkit.event.Listener -art.arcane.iris.core.service.StudioSVC BUKKIT_API org.bukkit.event.Listener -art.arcane.iris.core.service.TreeSVC BUKKIT_API org.bukkit.event.Listener -art.arcane.iris.core.tools.IrisCreator BUKKIT_API org.bukkit.command.CommandSender -art.arcane.iris.core.tools.IrisToolbelt BUKKIT_API org.bukkit.command.CommandSender -art.arcane.iris.core.tools.IrisWorldCreator BUKKIT_API org.bukkit.generator.ChunkGenerator -art.arcane.iris.engine.IrisWorldManager BUKKIT_API org.bukkit.event.Listener -art.arcane.iris.engine.WorldChunkMaintenance BUKKIT_API org.bukkit.entity.Entity -art.arcane.iris.engine.WorldEntitySpawner BUKKIT_API org.bukkit.entity.Entity -art.arcane.iris.engine.WorldTeleportWarmup BUKKIT_API org.bukkit.command.CommandSender -art.arcane.iris.engine.framework.EngineAssignedWorldManager BUKKIT_API org.bukkit.event.Listener -art.arcane.iris.engine.framework.EnginePlayer BUKKIT_API org.bukkit.entity.Entity -art.arcane.iris.engine.framework.placer.WorldObjectPlacer BUKKIT_API org.bukkit.event.Event -art.arcane.iris.engine.object.IrisDirection$11 BUKKIT_API org.bukkit.block.BlockFace -art.arcane.iris.engine.object.IrisEffect$BukkitFx BUKKIT_API org.bukkit.entity.Entity -art.arcane.iris.engine.object.IrisEntity$BukkitOps BUKKIT_API org.bukkit.loot.LootTable -art.arcane.iris.engine.object.IrisEntity$BukkitOps$1 BUKKIT_API org.bukkit.loot.LootTable -art.arcane.iris.engine.object.IrisObjectRotation$1 BUKKIT_API org.bukkit.block.BlockFace -art.arcane.iris.engine.object.IrisObjectRotation$Faces BUKKIT_API org.bukkit.block.BlockFace -art.arcane.iris.engine.object.LegacyTileData$BannerHandler BUKKIT_API org.bukkit.Keyed -art.arcane.iris.engine.object.LegacyTileData$Handlers BUKKIT_API org.bukkit.block.BlockState -art.arcane.iris.engine.object.LegacyTileData$SignHandler BUKKIT_API org.bukkit.Keyed -art.arcane.iris.engine.object.LegacyTileData$SignTags BUKKIT_API org.bukkit.Tag -art.arcane.iris.engine.object.LegacyTileData$SignTags$1 BUKKIT_API org.bukkit.Tag -art.arcane.iris.engine.platform.BukkitChunkGenerator BUKKIT_API org.bukkit.event.Listener -art.arcane.iris.engine.platform.BukkitChunkGenerator$2 BUKKIT_API org.bukkit.HeightMap -art.arcane.iris.engine.platform.DummyBiomeProvider BUKKIT_API org.bukkit.generator.BiomeProvider -art.arcane.iris.engine.platform.DummyChunkGenerator BUKKIT_API org.bukkit.generator.ChunkGenerator -art.arcane.iris.engine.platform.EngineBukkitOps BUKKIT_API org.bukkit.entity.Entity -art.arcane.iris.engine.platform.EngineBukkitOps$2 BUKKIT_API org.bukkit.block.BlockFace -art.arcane.iris.engine.platform.studio.generators.ObjectStudioGenerator BUKKIT_API org.bukkit.Material +art.arcane.iris.command.handlers.VectorHandler BUKKIT_API org.bukkit.util.Vector +art.arcane.iris.command.handlers.WorldHandler BUKKIT_API org.bukkit.generator.WorldInfo +art.arcane.iris.diagnostics.LogFilterSVC BUKKIT_API org.bukkit.event.Listener +art.arcane.iris.generation.block.IrisCustomData BUKKIT_API org.bukkit.block.data.BlockData +art.arcane.iris.generation.block.LegacyTileData$BannerHandler BUKKIT_API org.bukkit.Keyed +art.arcane.iris.generation.block.LegacyTileData$Handlers BUKKIT_API org.bukkit.block.BlockState +art.arcane.iris.generation.block.LegacyTileData$SignHandler BUKKIT_API org.bukkit.Keyed +art.arcane.iris.generation.block.LegacyTileData$SignTags BUKKIT_API org.bukkit.Tag +art.arcane.iris.generation.block.LegacyTileData$SignTags$1 BUKKIT_API org.bukkit.Tag +art.arcane.iris.generation.runtime.EngineAssignedWorldManager BUKKIT_API org.bukkit.event.Listener +art.arcane.iris.generation.runtime.EnginePlayer BUKKIT_API org.bukkit.entity.Entity +art.arcane.iris.generation.runtime.GlobalCacheSVC BUKKIT_API org.bukkit.event.Listener +art.arcane.iris.generation.runtime.IrisWorldManager BUKKIT_API org.bukkit.event.Listener +art.arcane.iris.generation.runtime.PreservationSVC BUKKIT_API org.bukkit.event.Listener +art.arcane.iris.generation.runtime.WorldChunkMaintenance BUKKIT_API org.bukkit.entity.Entity +art.arcane.iris.generation.runtime.WorldEntitySpawner BUKKIT_API org.bukkit.entity.Entity +art.arcane.iris.generation.runtime.WorldTeleportWarmup BUKKIT_API org.bukkit.command.CommandSender +art.arcane.iris.integration.ExternalDataProvider BUKKIT_API org.bukkit.block.BlockFace +art.arcane.iris.integration.ExternalDataSVC BUKKIT_API org.bukkit.event.Listener +art.arcane.iris.integration.MultiverseCoreLink BUKKIT_API org.bukkit.generator.WorldInfo +art.arcane.iris.integration.MultiverseGuardListener BUKKIT_API org.bukkit.event.Listener +art.arcane.iris.integration.MultiverseSVC BUKKIT_API org.bukkit.event.Listener +art.arcane.iris.integration.data.CraftEngineDataProvider BUKKIT_API org.bukkit.block.data.BlockData +art.arcane.iris.integration.data.EcoItemsDataProvider BUKKIT_API org.bukkit.block.BlockFace +art.arcane.iris.integration.data.ExecutableItemsDataProvider BUKKIT_API org.bukkit.block.BlockFace +art.arcane.iris.integration.data.ItemAdderDataProvider BUKKIT_API org.bukkit.event.Listener +art.arcane.iris.integration.data.KGeneratorsDataProvider BUKKIT_API org.bukkit.block.data.BlockData +art.arcane.iris.integration.data.MMOItemsDataProvider BUKKIT_API org.bukkit.block.BlockFace +art.arcane.iris.integration.data.MythicCrucibleDataProvider BUKKIT_API org.bukkit.block.data.BlockData +art.arcane.iris.integration.data.MythicMobsDataProvider BUKKIT_API org.bukkit.event.Listener +art.arcane.iris.integration.data.MythicMobsDataProvider$IrisBiomeCondition MYTHICMOBS_API io.lumine.mythic.api.skills.conditions.ILocationCondition +art.arcane.iris.integration.data.MythicMobsDataProvider$IrisRegionCondition MYTHICMOBS_API io.lumine.mythic.api.skills.conditions.ILocationCondition +art.arcane.iris.integration.data.NexoDataProvider BUKKIT_API org.bukkit.block.data.BlockData +art.arcane.iris.integration.data.OraxenDataProvider BUKKIT_API org.bukkit.event.Listener +art.arcane.iris.localization.C$DyeMaps BUKKIT_API org.bukkit.DyeColor +art.arcane.iris.pack.datapack.ServerConfigurator BUKKIT_API org.bukkit.command.CommandSender +art.arcane.iris.pack.value.IrisDirection$11 BUKKIT_API org.bukkit.block.BlockFace +art.arcane.iris.platform.bootstrap.Bindings BUKKIT_API org.bukkit.plugin.Plugin +art.arcane.iris.platform.bootstrap.ServerProperties BUKKIT_API org.bukkit.configuration.InvalidConfigurationException +art.arcane.iris.platform.bootstrap.SlimJar BUKKIT_API org.bukkit.plugin.Plugin +art.arcane.iris.platform.bukkit.BoardSVC BUKKIT_API org.bukkit.event.Listener +art.arcane.iris.platform.bukkit.BoardSVC$PlayerBoard BUKKIT_API org.bukkit.entity.Entity art.arcane.iris.platform.bukkit.BukkitBlockResolution BUKKIT_API org.bukkit.Material art.arcane.iris.platform.bukkit.BukkitBlockState BUKKIT_API org.bukkit.Keyed art.arcane.iris.platform.bukkit.BukkitPlatform BUKKIT_API org.bukkit.command.CommandSender art.arcane.iris.platform.bukkit.BukkitWorldBinding BUKKIT_API org.bukkit.generator.WorldInfo -art.arcane.iris.util.common.data.IrisCustomData BUKKIT_API org.bukkit.block.data.BlockData -art.arcane.iris.util.common.data.registry.Attributes BUKKIT_API org.bukkit.attribute.Attribute -art.arcane.iris.util.common.data.registry.Materials BUKKIT_API org.bukkit.Material -art.arcane.iris.util.common.director.handlers.VectorHandler BUKKIT_API org.bukkit.util.Vector -art.arcane.iris.util.common.director.handlers.WorldHandler BUKKIT_API org.bukkit.generator.WorldInfo -art.arcane.iris.util.common.format.C$DyeMaps BUKKIT_API org.bukkit.DyeColor -art.arcane.iris.util.common.inventorygui.WindowResolution BUKKIT_API org.bukkit.event.inventory.InventoryType -art.arcane.iris.util.common.misc.Bindings BUKKIT_API org.bukkit.plugin.Plugin -art.arcane.iris.util.common.misc.ServerProperties SERVER_RUNTIME_FILE server.properties -art.arcane.iris.util.common.misc.SlimJar BUKKIT_API org.bukkit.plugin.Plugin -art.arcane.iris.util.common.plugin.IrisService BUKKIT_API org.bukkit.event.Listener -art.arcane.iris.util.common.plugin.VolmitPlugin BUKKIT_API org.bukkit.event.Listener -art.arcane.iris.util.common.plugin.VolmitSender BUKKIT_API org.bukkit.command.CommandSender -art.arcane.iris.util.common.plugin.chunk.ChunkTickets BUKKIT_API org.bukkit.event.Listener -art.arcane.iris.util.nbt.common.mca.NBTWorld$Holder BUKKIT_API org.bukkit.Material +art.arcane.iris.platform.bukkit.chunk.ChunkTickets BUKKIT_API org.bukkit.event.Listener +art.arcane.iris.platform.bukkit.plugin.IrisService BUKKIT_API org.bukkit.event.Listener +art.arcane.iris.platform.bukkit.plugin.VolmitPlugin BUKKIT_API org.bukkit.event.Listener +art.arcane.iris.platform.bukkit.plugin.VolmitSender BUKKIT_API org.bukkit.command.CommandSender +art.arcane.iris.platform.bukkit.registry.Attributes BUKKIT_API org.bukkit.attribute.Attribute +art.arcane.iris.platform.bukkit.registry.Materials BUKKIT_API org.bukkit.Material +art.arcane.iris.platform.generation.BukkitChunkGenerator BUKKIT_API org.bukkit.event.Listener +art.arcane.iris.platform.generation.BukkitChunkGenerator$2 BUKKIT_API org.bukkit.HeightMap +art.arcane.iris.platform.generation.DummyBiomeProvider BUKKIT_API org.bukkit.generator.BiomeProvider +art.arcane.iris.platform.generation.DummyChunkGenerator BUKKIT_API org.bukkit.generator.ChunkGenerator +art.arcane.iris.platform.generation.EngineBukkitOps BUKKIT_API org.bukkit.entity.Entity +art.arcane.iris.platform.generation.EngineBukkitOps$2 BUKKIT_API org.bukkit.block.BlockFace +art.arcane.iris.structure.FeatureImporter BUKKIT_API org.bukkit.generator.WorldInfo +art.arcane.iris.structure.object.IrisObjectRotation$1 BUKKIT_API org.bukkit.block.BlockFace +art.arcane.iris.structure.object.IrisObjectRotation$Faces BUKKIT_API org.bukkit.block.BlockFace +art.arcane.iris.structure.object.WorldObjectPlacer BUKKIT_API org.bukkit.event.Event +art.arcane.iris.studio.PackDownloadProgressReporter BUKKIT_API org.bukkit.entity.Entity +art.arcane.iris.studio.StudioSVC BUKKIT_API org.bukkit.event.Listener +art.arcane.iris.studio.edit.BlockSignal BUKKIT_API org.bukkit.entity.Entity +art.arcane.iris.studio.edit.BlockSignal$1 BUKKIT_API org.bukkit.entity.Entity +art.arcane.iris.studio.edit.DustRevealer ADVENTURE_API net.kyori.adventure.text.format.TextColor +art.arcane.iris.studio.generation.ObjectStudioGenerator BUKKIT_API org.bukkit.Material +art.arcane.iris.studio.jigsaw.JigsawStudioAutosaveScheduler BUKKIT_API org.bukkit.entity.Entity +art.arcane.iris.studio.jigsaw.JigsawStudioGraphMutations BUKKIT_API org.bukkit.entity.Entity +art.arcane.iris.studio.jigsaw.JigsawStudioMainMenu BUKKIT_API org.bukkit.entity.Entity +art.arcane.iris.studio.jigsaw.JigsawStudioMarkerParser$1 BUKKIT_API org.bukkit.block.Orientation +art.arcane.iris.studio.jigsaw.JigsawStudioMaterializer BUKKIT_API org.bukkit.entity.Entity +art.arcane.iris.studio.jigsaw.JigsawStudioMenuController BUKKIT_API org.bukkit.command.CommandSender +art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat$RuleField BUKKIT_API org.bukkit.Material +art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat$RuleField$2 BUKKIT_API org.bukkit.Material +art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat$RuleField$3 BUKKIT_API org.bukkit.Material +art.arcane.iris.studio.jigsaw.JigsawStudioMenuFormat$RuleField$4 BUKKIT_API org.bukkit.Material +art.arcane.iris.studio.jigsaw.JigsawStudioPlayerContext BUKKIT_API org.bukkit.entity.Entity +art.arcane.iris.studio.jigsaw.JigsawStudioProtectionListener BUKKIT_API org.bukkit.event.Listener +art.arcane.iris.studio.jigsaw.JigsawStudioSaveLifecycle BUKKIT_API org.bukkit.entity.Entity +art.arcane.iris.studio.jigsaw.JigsawStudioService BUKKIT_API org.bukkit.event.Listener +art.arcane.iris.studio.jigsaw.JigsawStudioToolCodec BUKKIT_API org.bukkit.NamespacedKey +art.arcane.iris.studio.jigsaw.JigsawStudioToolbelt BUKKIT_API org.bukkit.entity.Entity +art.arcane.iris.studio.jigsaw.JigsawStudioVariantEditor BUKKIT_API org.bukkit.entity.Entity +art.arcane.iris.studio.jigsaw.JigsawStudioVariantProperties BUKKIT_API org.bukkit.entity.Entity +art.arcane.iris.studio.jigsaw.JigsawStudioVisualization BUKKIT_API org.bukkit.entity.Entity +art.arcane.iris.studio.jigsaw.JigsawStudioWorkcellEditor BUKKIT_API org.bukkit.entity.Entity +art.arcane.iris.studio.jigsaw.JigsawStudioWorkcellMenu BUKKIT_API org.bukkit.entity.Entity +art.arcane.iris.studio.object.ObjectSVC BUKKIT_API org.bukkit.event.Listener +art.arcane.iris.studio.object.ObjectStudioSaveService BUKKIT_API org.bukkit.event.Listener +art.arcane.iris.studio.object.StudioOpenCoordinator BUKKIT_API org.bukkit.generator.WorldInfo +art.arcane.iris.world.IrisCreator BUKKIT_API org.bukkit.command.CommandSender +art.arcane.iris.world.IrisToolbelt BUKKIT_API org.bukkit.command.CommandSender +art.arcane.iris.world.IrisWorldCreator BUKKIT_API org.bukkit.generator.ChunkGenerator +art.arcane.iris.world.WorldCreationProgressReporter BUKKIT_API org.bukkit.entity.Entity +art.arcane.iris.world.entity.EntityRiseSVC BUKKIT_API org.bukkit.event.Listener +art.arcane.iris.world.entity.IrisEffect$BukkitFx BUKKIT_API org.bukkit.entity.Entity +art.arcane.iris.world.entity.IrisEntity$BukkitOps BUKKIT_API org.bukkit.loot.LootTable +art.arcane.iris.world.entity.IrisEntity$BukkitOps$1 BUKKIT_API org.bukkit.loot.LootTable +art.arcane.iris.world.event.IrisEngineEvent BUKKIT_API org.bukkit.event.Event +art.arcane.iris.world.event.IrisEngineHotloadEvent BUKKIT_API org.bukkit.event.Event +art.arcane.iris.world.event.IrisLootEvent BUKKIT_API org.bukkit.event.Event +art.arcane.iris.world.event.IrisLootEvent$1 BUKKIT_API org.bukkit.loot.LootTable +art.arcane.iris.world.event.IrisLootEvent$2 BUKKIT_API org.bukkit.inventory.InventoryHolder +art.arcane.iris.world.lifecycle.BukkitWorldConfiguration BUKKIT_API org.bukkit.configuration.InvalidConfigurationException +art.arcane.iris.world.lifecycle.IrisWorldRemovalService BUKKIT_API org.bukkit.generator.WorldInfo +art.arcane.iris.world.lifecycle.IrisWorldRemovalService$BukkitRemovalBackend BUKKIT_API org.bukkit.generator.WorldInfo +art.arcane.iris.world.lifecycle.PaperLibBootstrap PAPERLIB_API io.papermc.lib.environments.Environment +art.arcane.iris.world.lifecycle.PaperLibBootstrap$ModernPaperEnvironment PAPERLIB_API io.papermc.lib.environments.PaperEnvironment +art.arcane.iris.world.lifecycle.WorldLifecycleService BUKKIT_API org.bukkit.generator.WorldInfo +art.arcane.iris.world.lifecycle.WorldLifecycleSupport BUKKIT_API org.bukkit.generator.WorldInfo +art.arcane.iris.world.runtime.WorldRuntimeControlService BUKKIT_API org.bukkit.entity.Entity +art.arcane.iris.world.runtime.WorldRuntimeControlService$GameModeRestore BUKKIT_API org.bukkit.entity.Entity +art.arcane.iris.world.storage.region.NBTWorld$Holder BUKKIT_API org.bukkit.Material +art.arcane.iris.world.tree.TreeSVC BUKKIT_API org.bukkit.event.Listener diff --git a/probe/src/test/java/art/arcane/iris/probe/DimensionStackSuperflatProbeTest.java b/probe/src/test/java/art/arcane/iris/probe/DimensionStackSuperflatProbeTest.java index 36b8535ea..2964f8d50 100644 --- a/probe/src/test/java/art/arcane/iris/probe/DimensionStackSuperflatProbeTest.java +++ b/probe/src/test/java/art/arcane/iris/probe/DimensionStackSuperflatProbeTest.java @@ -1,8 +1,8 @@ package art.arcane.iris.probe; -import art.arcane.iris.engine.DimensionStackContext; -import art.arcane.iris.engine.DimensionStackLayout; -import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.generation.runtime.DimensionStackContext; +import art.arcane.iris.generation.runtime.DimensionStackLayout; +import art.arcane.iris.generation.runtime.Engine; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.testsupport.IrisRuntimeState; import org.junit.AfterClass; diff --git a/probe/src/test/java/art/arcane/iris/probe/GenerationOrderProbeTest.java b/probe/src/test/java/art/arcane/iris/probe/GenerationOrderProbeTest.java index 6677a9760..2ea6aec09 100644 --- a/probe/src/test/java/art/arcane/iris/probe/GenerationOrderProbeTest.java +++ b/probe/src/test/java/art/arcane/iris/probe/GenerationOrderProbeTest.java @@ -2,7 +2,7 @@ package art.arcane.iris.probe; import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; import org.junit.Test; import java.io.File; diff --git a/probe/src/test/java/art/arcane/iris/probe/HydrologyBlockProbeTest.java b/probe/src/test/java/art/arcane/iris/probe/HydrologyBlockProbeTest.java index 0a7df359d..4c3b3e752 100644 --- a/probe/src/test/java/art/arcane/iris/probe/HydrologyBlockProbeTest.java +++ b/probe/src/test/java/art/arcane/iris/probe/HydrologyBlockProbeTest.java @@ -1,15 +1,15 @@ package art.arcane.iris.probe; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.HydrologyColumnSample; -import art.arcane.iris.engine.hydrology.HydrologyFeatureRef; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.engine.hydrology.RiverFootprint; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.HydrologyColumnSample; +import art.arcane.iris.generation.hydrology.HydrologyFeatureRef; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.hydrology.RiverFootprint; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.testsupport.PlatformLeakGuard; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.ClassRule; diff --git a/probe/src/test/java/art/arcane/iris/probe/HydrologyPackProbeTest.java b/probe/src/test/java/art/arcane/iris/probe/HydrologyPackProbeTest.java index da806b5ad..4621daaae 100644 --- a/probe/src/test/java/art/arcane/iris/probe/HydrologyPackProbeTest.java +++ b/probe/src/test/java/art/arcane/iris/probe/HydrologyPackProbeTest.java @@ -1,23 +1,23 @@ package art.arcane.iris.probe; -import art.arcane.iris.engine.hydrology.HydrologyColumnSample; -import art.arcane.iris.engine.hydrology.HydrologyColumnLayer; -import art.arcane.iris.engine.hydrology.HydraulicSegment; -import art.arcane.iris.engine.hydrology.HydrologyFeatureRef; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.engine.hydrology.HydrologyPoint; -import art.arcane.iris.engine.hydrology.HydrologyPlannerSettings; -import art.arcane.iris.engine.hydrology.HydrologyTile; -import art.arcane.iris.engine.hydrology.HydrologyTileKey; -import art.arcane.iris.engine.hydrology.RiverFootprint; -import art.arcane.iris.engine.hydrology.cave.CavePosition; -import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction; -import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.engine.object.IrisBiomeCustom; +import art.arcane.iris.generation.hydrology.HydrologyColumnSample; +import art.arcane.iris.generation.hydrology.HydrologyColumnLayer; +import art.arcane.iris.generation.hydrology.HydraulicSegment; +import art.arcane.iris.generation.hydrology.HydrologyFeatureRef; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.hydrology.HydrologyPoint; +import art.arcane.iris.generation.hydrology.HydrologyPlannerSettings; +import art.arcane.iris.generation.hydrology.HydrologyTile; +import art.arcane.iris.generation.hydrology.HydrologyTileKey; +import art.arcane.iris.generation.hydrology.RiverFootprint; +import art.arcane.iris.generation.hydrology.cave.CavePosition; +import art.arcane.iris.generation.hydrology.cave.HydrologyCaveAction; +import art.arcane.iris.generation.biome.IrisBiome; +import art.arcane.iris.generation.biome.IrisBiomeCustom; import art.arcane.volmlib.util.collection.KList; import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBlockState; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; diff --git a/probe/src/test/java/art/arcane/iris/probe/HydrologyPlannerProbeTest.java b/probe/src/test/java/art/arcane/iris/probe/HydrologyPlannerProbeTest.java index 80e0b879e..9bcaa5c8e 100644 --- a/probe/src/test/java/art/arcane/iris/probe/HydrologyPlannerProbeTest.java +++ b/probe/src/test/java/art/arcane/iris/probe/HydrologyPlannerProbeTest.java @@ -1,8 +1,8 @@ package art.arcane.iris.probe; -import art.arcane.iris.engine.hydrology.HydrologyFeatureRef; -import art.arcane.iris.engine.hydrology.HydrologyFeatureType; -import art.arcane.iris.engine.hydrology.HydrologyTile; +import art.arcane.iris.generation.hydrology.HydrologyFeatureRef; +import art.arcane.iris.generation.hydrology.HydrologyFeatureType; +import art.arcane.iris.generation.hydrology.HydrologyTile; import org.junit.Test; import java.util.EnumSet; diff --git a/probe/src/test/java/art/arcane/iris/probe/IdentifierPlatformIsolationTest.java b/probe/src/test/java/art/arcane/iris/probe/IdentifierPlatformIsolationTest.java index 798137de7..6620bd3d9 100644 --- a/probe/src/test/java/art/arcane/iris/probe/IdentifierPlatformIsolationTest.java +++ b/probe/src/test/java/art/arcane/iris/probe/IdentifierPlatformIsolationTest.java @@ -1,6 +1,6 @@ package art.arcane.iris.probe; -import art.arcane.iris.core.link.Identifier; +import art.arcane.iris.integration.Identifier; import org.junit.Test; import static org.junit.Assert.assertFalse; diff --git a/probe/src/test/java/art/arcane/iris/probe/RiverTransectProbeTest.java b/probe/src/test/java/art/arcane/iris/probe/RiverTransectProbeTest.java index b9f035140..62193d6fb 100644 --- a/probe/src/test/java/art/arcane/iris/probe/RiverTransectProbeTest.java +++ b/probe/src/test/java/art/arcane/iris/probe/RiverTransectProbeTest.java @@ -1,9 +1,9 @@ package art.arcane.iris.probe; -import art.arcane.iris.engine.hydrology.RiverFootprint; -import art.arcane.iris.engine.hydrology.HydrologyPoint; -import art.arcane.iris.engine.hydrology.HydrologyPlannerSettings; -import art.arcane.iris.engine.hydrology.surface.SurfaceCenterline; +import art.arcane.iris.generation.hydrology.RiverFootprint; +import art.arcane.iris.generation.hydrology.HydrologyPoint; +import art.arcane.iris.generation.hydrology.HydrologyPlannerSettings; +import art.arcane.iris.generation.hydrology.surface.SurfaceCenterline; import org.junit.Test; import java.util.HashMap; diff --git a/probe/src/test/java/art/arcane/iris/probe/StubPlatformStateTest.java b/probe/src/test/java/art/arcane/iris/probe/StubPlatformStateTest.java index 8799305b6..8e248806b 100644 --- a/probe/src/test/java/art/arcane/iris/probe/StubPlatformStateTest.java +++ b/probe/src/test/java/art/arcane/iris/probe/StubPlatformStateTest.java @@ -1,11 +1,11 @@ package art.arcane.iris.probe; -import art.arcane.iris.engine.decorator.IrisSpeleothems; -import art.arcane.iris.engine.object.IrisObjectRotation; +import art.arcane.iris.generation.decoration.IrisSpeleothems; +import art.arcane.iris.structure.object.IrisObjectRotation; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.testsupport.PlatformLeakGuard; -import art.arcane.iris.util.project.hunk.Hunk; +import art.arcane.volmlib.util.hunk.Hunk; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.ClassRule;