From 99fcc8fd03177ecc9d5b6f6dd86ee939bb616efe Mon Sep 17 00:00:00 2001 From: Brian Neumann-Fopiano Date: Sat, 14 Feb 2026 01:56:05 -0500 Subject: [PATCH] WIP --- .gitignore | 2 +- README.md | 2 +- build.gradle.kts | 2 +- buildSrc/src/main/kotlin/NMSBinding.kt | 2 +- core/agent/build.gradle.kts | 4 +- .../arcane}/iris/util/agent/Installer.java | 2 +- core/build.gradle.kts | 11 +- .../{com/volmit => art/arcane}/iris/Iris.java | 80 +- .../arcane}/iris/core/IrisSettings.java | 14 +- .../arcane}/iris/core/IrisWorlds.java | 16 +- .../arcane}/iris/core/ServerConfigurator.java | 28 +- .../iris/core/commands/CommandDeveloper.java | 70 +- .../iris/core/commands/CommandEdit.java | 18 +- .../iris/core/commands/CommandFind.java | 22 +- .../iris/core/commands/CommandIris.java | 42 +- .../iris/core/commands/CommandJigsaw.java | 40 +- .../iris/core/commands/CommandLazyPregen.java | 24 +- .../iris/core/commands/CommandObject.java | 44 +- .../iris/core/commands/CommandPregen.java | 20 +- .../iris/core/commands/CommandSettings.java | 4 +- .../iris/core/commands/CommandStudio.java | 84 +- .../core/commands/CommandTurboPregen.java | 18 +- .../iris/core/commands/CommandUpdater.java | 20 +- .../iris/core/commands/CommandWhat.java | 32 +- .../arcane}/iris/core/edit/BlockEditor.java | 2 +- .../arcane}/iris/core/edit/BlockSignal.java | 8 +- .../iris/core/edit/BukkitBlockEditor.java | 4 +- .../arcane}/iris/core/edit/DustRevealer.java | 20 +- .../arcane}/iris/core/edit/JigsawEditor.java | 24 +- .../iris/core/events/IrisEngineEvent.java | 4 +- .../core/events/IrisEngineHotloadEvent.java | 4 +- .../iris/core/events/IrisLootEvent.java | 14 +- .../iris/core/gui/NoiseExplorerGUI.java | 30 +- .../iris/core/gui/PregeneratorJob.java | 34 +- .../arcane}/iris/core/gui/VisionGUI.java | 44 +- .../core/gui/components/IrisRenderer.java | 10 +- .../iris/core/gui/components/RenderType.java | 2 +- .../iris/core/gui/components/Renderer.java | 2 +- .../iris/core/gui/components/TileRender.java | 2 +- .../core/link/CustomItemsDataProvider.java | 8 +- .../iris/core/link/ExternalDataProvider.java | 20 +- .../arcane}/iris/core/link/Identifier.java | 2 +- .../iris/core/link/IrisPapiExpansion.java | 10 +- .../iris/core/link/MultiverseCoreLink.java | 2 +- .../arcane}/iris/core/link/WorldEditLink.java | 10 +- .../arcane}/iris/core/link/data/DataType.java | 6 +- .../core/link/data/EcoItemsDataProvider.java | 12 +- .../data/ExecutableItemsDataProvider.java | 10 +- .../core/link/data/HMCLeavesDataProvider.java | 22 +- .../core/link/data/ItemAdderDataProvider.java | 14 +- .../link/data/KGeneratorsDataProvider.java | 16 +- .../core/link/data/MMOItemsDataProvider.java | 12 +- .../link/data/MythicCrucibleDataProvider.java | 24 +- .../link/data/MythicMobsDataProvider.java | 8 +- .../iris/core/link/data/NexoDataProvider.java | 22 +- .../iris/core/loader/ImageResourceLoader.java | 16 +- .../arcane}/iris/core/loader/IrisData.java | 40 +- .../iris/core/loader/IrisRegistrant.java | 18 +- .../loader/MatterObjectResourceLoader.java | 16 +- .../core/loader/ObjectResourceLoader.java | 16 +- .../iris/core/loader/ResourceLoader.java | 44 +- .../core/loader/ScriptResourceLoader.java | 14 +- .../iris/core/nms/BiomeBaseInjector.java | 2 +- .../arcane}/iris/core/nms/INMS.java | 10 +- .../arcane}/iris/core/nms/INMSBinding.java | 30 +- .../iris/core/nms/container/AutoClosing.java | 6 +- .../iris/core/nms/container/BiomeColor.java | 2 +- .../iris/core/nms/container/BlockPos.java | 2 +- .../core/nms/container/BlockProperty.java | 6 +- .../arcane}/iris/core/nms/container/Pair.java | 2 +- .../nms/container/StructurePlacement.java | 4 +- .../iris/core/nms/datapack/DataVersion.java | 14 +- .../iris/core/nms/datapack/IDataFixer.java | 8 +- .../nms/datapack/v1192/DataFixerV1192.java | 10 +- .../nms/datapack/v1206/DataFixerV1206.java | 16 +- .../nms/datapack/v1213/DataFixerV1213.java | 10 +- .../nms/datapack/v1217/DataFixerV1217.java | 10 +- .../iris/core/nms/v1X/NMSBinding1X.java | 34 +- .../arcane}/iris/core/pack/IrisPack.java | 30 +- .../iris/core/pack/IrisPackRepository.java | 16 +- .../iris/core/pregenerator/ChunkUpdater.java | 28 +- .../pregenerator/DeepSearchPregenerator.java | 30 +- .../core/pregenerator/IrisPregenerator.java | 30 +- .../core/pregenerator/LazyPregenerator.java | 22 +- .../core/pregenerator/PregenListener.java | 2 +- .../iris/core/pregenerator/PregenTask.java | 12 +- .../core/pregenerator/PregeneratorMethod.java | 4 +- .../core/pregenerator/TurboPregenerator.java | 34 +- .../core/pregenerator/cache/PregenCache.java | 6 +- .../pregenerator/cache/SynchronizedCache.java | 2 +- .../methods/AsyncOrMedievalPregenMethod.java | 8 +- .../methods/AsyncPregenMethod.java | 22 +- .../methods/CachedPregenMethod.java | 14 +- .../methods/DummyPregenMethod.java | 8 +- .../methods/HybridPregenMethod.java | 8 +- .../methods/MedievalPregenMethod.java | 22 +- .../arcane}/iris/core/project/Gradle.java | 6 +- .../iris/core/project/IrisProject.java | 54 +- .../iris/core/project/SchemaBuilder.java | 34 +- .../arcane}/iris/core/report/Report.java | 2 +- .../arcane}/iris/core/report/ReportType.java | 2 +- .../environment/EngineEnvironment.java | 12 +- .../environment/PackEnvironment.java | 10 +- .../environment/SimpleEnvironment.java | 4 +- .../iris/core/scripting/func/BiomeLookup.java | 10 + .../core/scripting/func/UpdateExecutor.java | 2 +- .../arcane}/iris/core/service/BoardSVC.java | 35 +- .../arcane}/iris/core/service/CommandSVC.java | 26 +- .../iris/core/service/ConversionSVC.java | 38 +- .../arcane}/iris/core/service/EditSVC.java | 14 +- .../iris/core/service/ExternalDataSVC.java | 26 +- .../iris/core/service/GlobalCacheSVC.java | 14 +- .../iris/core/service/IrisEngineSVC.java | 32 +- .../iris/core/service/LogFilterSVC.java | 6 +- .../arcane}/iris/core/service/ObjectSVC.java | 8 +- .../iris/core/service/PreservationSVC.java | 18 +- .../arcane}/iris/core/service/StudioSVC.java | 40 +- .../arcane}/iris/core/service/TreeSVC.java | 30 +- .../arcane}/iris/core/service/WandSVC.java | 40 +- .../iris/core/tools/IrisConverter.java | 24 +- .../arcane}/iris/core/tools/IrisCreator.java | 32 +- .../iris/core/tools/IrisPackBenchmarking.java | 24 +- .../iris/core/tools/IrisReflectiveAPI.java | 4 +- .../arcane}/iris/core/tools/IrisToolbelt.java | 28 +- .../iris/core/tools/IrisWorldCreator.java | 8 +- .../arcane}/iris/core/wand/WandSelection.java | 8 +- .../arcane}/iris/engine/EnginePanic.java | 6 +- .../arcane}/iris/engine/IrisComplex.java | 32 +- .../arcane}/iris/engine/IrisEngine.java | 64 +- .../iris/engine/IrisEngineEffects.java | 16 +- .../arcane}/iris/engine/IrisEngineMantle.java | 28 +- .../arcane}/iris/engine/IrisWorldManager.java | 54 +- .../engine/actuator/IrisBiomeActuator.java | 28 +- .../engine/actuator/IrisDecorantActuator.java | 22 +- .../actuator/IrisTerrainNormalActuator.java | 22 +- .../iris/engine/data/cache/AtomicCache.java | 6 +- .../arcane}/iris/engine/data/cache/Cache.java | 19 +- .../iris/engine/data/cache/Multicache.java | 2 +- .../engine/data/chunk/LinkedTerrainChunk.java | 10 +- .../engine/data/chunk/MCATerrainChunk.java | 12 +- .../iris/engine/data/chunk/TerrainChunk.java | 4 +- .../iris/engine/data/io/Deserializer.java | 2 +- .../engine/data/io/ExceptionBiFunction.java | 2 +- .../engine/data/io/ExceptionTriConsumer.java | 2 +- .../iris/engine/data/io/MaxDepthIO.java | 2 +- .../data/io/MaxDepthReachedException.java | 2 +- .../iris/engine/data/io/Serializer.java | 2 +- .../engine/data/io/StringDeserializer.java | 2 +- .../iris/engine/data/io/StringSerializer.java | 2 +- .../decorator/IrisCeilingDecorator.java | 16 +- .../engine/decorator/IrisEngineDecorator.java | 26 +- .../decorator/IrisSeaFloorDecorator.java | 16 +- .../decorator/IrisSeaSurfaceDecorator.java | 16 +- .../decorator/IrisShoreLineDecorator.java | 16 +- .../decorator/IrisSurfaceDecorator.java | 22 +- .../iris/engine/framework/BlockUpdater.java | 6 +- .../arcane}/iris/engine/framework/Engine.java | 96 +- .../iris/engine/framework/EngineActuator.java | 8 +- .../framework/EngineAssignedActuator.java | 8 +- .../framework/EngineAssignedBiModifier.java | 4 +- .../framework/EngineAssignedComponent.java | 6 +- .../framework/EngineAssignedModifier.java | 10 +- .../framework/EngineAssignedWorldManager.java | 14 +- .../engine/framework/EngineBiModifier.java | 4 +- .../engine/framework/EngineComponent.java | 14 +- .../iris/engine/framework/EngineData.java | 8 +- .../engine/framework/EngineDecorator.java | 10 +- .../iris/engine/framework/EngineEffects.java | 2 +- .../iris/engine/framework/EngineMetrics.java | 6 +- .../iris/engine/framework/EngineMode.java | 20 +- .../iris/engine/framework/EngineModifier.java | 8 +- .../iris/engine/framework/EnginePlayer.java | 16 +- .../iris/engine/framework/EngineStage.java | 8 +- .../iris/engine/framework/EngineTarget.java | 10 +- .../engine/framework/EngineWorldManager.java | 2 +- .../iris/engine/framework/Fallible.java | 4 +- .../iris/engine/framework/Hotloadable.java | 2 +- .../iris/engine/framework/IrisEngineMode.java | 4 +- .../iris/engine/framework/ListFunction.java | 4 +- .../iris/engine/framework/Locator.java | 44 +- .../engine/framework/LocatorCanceller.java | 2 +- .../iris/engine/framework/LootProvider.java | 12 +- .../iris/engine/framework/MeteredCache.java | 4 +- .../iris/engine/framework/PlacedObject.java | 6 +- .../engine/framework/PregeneratedData.java | 8 +- .../iris/engine/framework/ResultLocator.java | 20 +- .../iris/engine/framework/SeedManager.java | 8 +- .../arcane}/iris/engine/framework/Staged.java | 4 +- .../framework/WrongEngineBroException.java | 2 +- .../placer/HeightmapObjectPlacer.java | 14 +- .../framework/placer/WorldObjectPlacer.java | 32 +- .../iris/engine/jigsaw/PlannedPiece.java | 14 +- .../iris/engine/jigsaw/PlannedStructure.java | 28 +- .../iris/engine/mantle/ComponentFlag.java | 4 +- .../iris/engine/mantle/EngineMantle.java | 49 +- .../engine/mantle/IrisMantleComponent.java | 4 +- .../iris/engine/mantle/MantleComponent.java | 18 +- .../iris/engine/mantle/MantleSized.java | 2 +- .../iris/engine/mantle/MantleWriter.java | 46 +- .../components/MantleCarvingComponent.java | 26 +- .../components/MantleFluidBodyComponent.java | 26 +- .../components/MantleJigsawComponent.java | 36 +- .../components/MantleObjectComponent.java | 44 +- .../iris/engine/mode/ModeEnclosure.java | 12 +- .../arcane}/iris/engine/mode/ModeIslands.java | 12 +- .../iris/engine/mode/ModeOverworld.java | 18 +- .../iris/engine/mode/ModeSuperFlat.java | 12 +- .../engine/modifier/IrisCarveModifier.java | 40 +- .../engine/modifier/IrisCustomModifier.java | 20 +- .../engine/modifier/IrisDepositModifier.java | 26 +- .../modifier/IrisPerfectionModifier.java | 16 +- .../engine/modifier/IrisPostModifier.java | 20 +- .../iris/engine/object/CarveResult.java | 2 +- .../iris/engine/object/CarvingMode.java | 4 +- .../iris/engine/object/CaveResult.java | 2 +- .../iris/engine/object/IObjectLoot.java | 6 +- .../iris/engine/object/IObjectPlacer.java | 6 +- .../iris/engine/object/IPostBlockAccess.java | 4 +- .../arcane}/iris/engine/object/IRare.java | 8 +- .../iris/engine/object/InferredType.java | 4 +- .../iris/engine/object/InventorySlotType.java | 4 +- .../engine/object/IrisAttributeModifier.java | 6 +- .../engine/object/IrisAxisRotationClamp.java | 6 +- .../arcane}/iris/engine/object/IrisBiome.java | 40 +- .../iris/engine/object/IrisBiomeCustom.java | 16 +- .../object/IrisBiomeCustomCategory.java | 4 +- .../object/IrisBiomeCustomParticle.java | 4 +- .../object/IrisBiomeCustomPrecipType.java | 4 +- .../engine/object/IrisBiomeCustomSpawn.java | 4 +- .../object/IrisBiomeCustomSpawnType.java | 4 +- .../engine/object/IrisBiomeGeneratorLink.java | 10 +- .../engine/object/IrisBiomePaletteLayer.java | 14 +- .../iris/engine/object/IrisBlockData.java | 26 +- .../iris/engine/object/IrisBlockDrops.java | 18 +- .../iris/engine/object/IrisCarving.java | 20 +- .../arcane}/iris/engine/object/IrisCave.java | 28 +- .../iris/engine/object/IrisCavePlacer.java | 16 +- .../iris/engine/object/IrisCaveShape.java | 16 +- .../arcane}/iris/engine/object/IrisColor.java | 14 +- .../iris/engine/object/IrisCommand.java | 14 +- .../engine/object/IrisCommandRegistry.java | 8 +- .../iris/engine/object/IrisCompat.java | 14 +- .../object/IrisCompatabilityBlockFilter.java | 12 +- .../object/IrisCompatabilityItemFilter.java | 12 +- .../engine/object/IrisDecorationPart.java | 4 +- .../iris/engine/object/IrisDecorator.java | 16 +- .../engine/object/IrisDepositGenerator.java | 18 +- .../iris/engine/object/IrisDimension.java | 46 +- .../iris/engine/object/IrisDimensionMode.java | 12 +- .../engine/object/IrisDimensionModeType.java | 16 +- .../iris/engine/object/IrisDimensionType.java | 8 +- .../object/IrisDimensionTypeOptions.java | 14 +- .../iris/engine/object/IrisDirection.java | 16 +- .../iris/engine/object/IrisDuration.java | 8 +- .../iris/engine/object/IrisEffect.java | 16 +- .../iris/engine/object/IrisElipsoid.java | 16 +- .../iris/engine/object/IrisEnchantment.java | 8 +- .../iris/engine/object/IrisEngineData.java | 8 +- .../object/IrisEngineSpawnerCooldown.java | 6 +- .../engine/object/IrisEngineStatistics.java | 2 +- .../engine/object/IrisEngineStreamType.java | 8 +- .../engine/object/IrisEngineValueType.java | 6 +- .../iris/engine/object/IrisEntity.java | 38 +- .../iris/engine/object/IrisEntitySpawn.java | 22 +- .../iris/engine/object/IrisExpression.java | 28 +- .../engine/object/IrisExpressionFunction.java | 16 +- .../engine/object/IrisExpressionLoad.java | 20 +- .../iris/engine/object/IrisFluidBodies.java | 20 +- .../iris/engine/object/IrisFontStyle.java | 4 +- .../iris/engine/object/IrisGenerator.java | 20 +- .../engine/object/IrisGeneratorStyle.java | 20 +- .../arcane}/iris/engine/object/IrisImage.java | 10 +- .../iris/engine/object/IrisImageChannel.java | 4 +- .../iris/engine/object/IrisImageMap.java | 20 +- .../iris/engine/object/IrisInterpolator.java | 16 +- .../engine/object/IrisInterpolator3D.java | 10 +- .../engine/object/IrisJigsawMinDistance.java | 12 +- .../iris/engine/object/IrisJigsawPiece.java | 22 +- .../object/IrisJigsawPieceConnector.java | 6 +- .../iris/engine/object/IrisJigsawPool.java | 18 +- .../engine/object/IrisJigsawStructure.java | 20 +- .../object/IrisJigsawStructurePlacement.java | 16 +- .../arcane}/iris/engine/object/IrisLake.java | 12 +- .../arcane}/iris/engine/object/IrisLoot.java | 28 +- .../iris/engine/object/IrisLootMode.java | 4 +- .../iris/engine/object/IrisLootReference.java | 10 +- .../iris/engine/object/IrisLootTable.java | 20 +- .../iris/engine/object/IrisMarker.java | 18 +- .../engine/object/IrisMaterialPalette.java | 14 +- .../arcane}/iris/engine/object/IrisMod.java | 12 +- .../engine/object/IrisModBiomeInjector.java | 6 +- .../engine/object/IrisModBiomeReplacer.java | 6 +- .../object/IrisModNoiseStyleReplacer.java | 4 +- .../IrisModObjectPlacementBiomeInjector.java | 6 +- .../IrisModObjectPlacementRegionInjector.java | 6 +- .../engine/object/IrisModObjectReplacer.java | 6 +- .../engine/object/IrisModRegionReplacer.java | 6 +- .../engine/object/IrisNoiseGenerator.java | 16 +- .../iris/engine/object/IrisObject.java | 52 +- .../iris/engine/object/IrisObjectLimit.java | 10 +- .../iris/engine/object/IrisObjectLoot.java | 10 +- .../iris/engine/object/IrisObjectMarker.java | 10 +- .../engine/object/IrisObjectPlacement.java | 24 +- .../IrisObjectPlacementScaleInterpolator.java | 4 +- .../iris/engine/object/IrisObjectReplace.java | 14 +- .../engine/object/IrisObjectRotation.java | 12 +- .../iris/engine/object/IrisObjectScale.java | 14 +- .../engine/object/IrisObjectTranslate.java | 4 +- .../engine/object/IrisObjectVanillaLoot.java | 12 +- .../iris/engine/object/IrisOreGenerator.java | 12 +- .../iris/engine/object/IrisPosition.java | 6 +- .../iris/engine/object/IrisPosition2D.java | 6 +- .../iris/engine/object/IrisPotionEffect.java | 8 +- .../iris/engine/object/IrisPreProcessors.java | 8 +- .../iris/engine/object/IrisPyramid.java | 16 +- .../arcane}/iris/engine/object/IrisRange.java | 8 +- .../iris/engine/object/IrisRareObject.java | 4 +- .../arcane}/iris/engine/object/IrisRate.java | 10 +- .../iris/engine/object/IrisRavine.java | 30 +- .../iris/engine/object/IrisRavinePlacer.java | 16 +- .../iris/engine/object/IrisRegion.java | 34 +- .../arcane}/iris/engine/object/IrisRiver.java | 12 +- .../iris/engine/object/IrisScript.java | 8 +- .../arcane}/iris/engine/object/IrisSeed.java | 8 +- .../object/IrisShapedGeneratorStyle.java | 8 +- .../iris/engine/object/IrisSlopeClip.java | 10 +- .../iris/engine/object/IrisSpawnGroup.java | 4 +- .../iris/engine/object/IrisSpawner.java | 16 +- .../engine/object/IrisSpawnerCooldowns.java | 6 +- .../iris/engine/object/IrisSphere.java | 16 +- .../iris/engine/object/IrisStiltSettings.java | 10 +- .../engine/object/IrisStructurePopulator.java | 16 +- .../iris/engine/object/IrisStyledRange.java | 16 +- .../iris/engine/object/IrisSurface.java | 4 +- .../iris/engine/object/IrisTimeBlock.java | 6 +- .../arcane}/iris/engine/object/IrisTree.java | 12 +- .../iris/engine/object/IrisTreeModes.java | 4 +- .../iris/engine/object/IrisTreeSettings.java | 8 +- .../iris/engine/object/IrisTreeSize.java | 8 +- .../engine/object/IrisVanillaLootTable.java | 8 +- .../engine/object/IrisVillagerOverride.java | 6 +- .../iris/engine/object/IrisVillagerTrade.java | 10 +- .../iris/engine/object/IrisWeather.java | 4 +- .../arcane}/iris/engine/object/IrisWorld.java | 8 +- .../arcane}/iris/engine/object/IrisWorm.java | 18 +- .../iris/engine/object/LegacyTileData.java | 12 +- .../iris/engine/object/NoiseStyle.java | 14 +- .../iris/engine/object/ObjectPlaceMode.java | 4 +- .../iris/engine/object/StudioMode.java | 8 +- .../arcane}/iris/engine/object/TileData.java | 8 +- .../engine/object/annotations/ArrayType.java | 2 +- .../engine/object/annotations/DependsOn.java | 2 +- .../iris/engine/object/annotations/Desc.java | 2 +- .../engine/object/annotations/MaxNumber.java | 2 +- .../engine/object/annotations/MinNumber.java | 2 +- .../RegistryListBiomeDownfallType.java | 2 +- .../annotations/RegistryListBlockType.java | 2 +- .../annotations/RegistryListEnchantment.java | 2 +- .../object/annotations/RegistryListFont.java | 2 +- .../annotations/RegistryListFunction.java | 6 +- .../annotations/RegistryListItemType.java | 2 +- .../annotations/RegistryListResource.java | 4 +- .../RegistryListSpecialEntity.java | 2 +- .../annotations/RegistryMapBlockState.java | 2 +- .../engine/object/annotations/Required.java | 2 +- .../engine/object/annotations/Snippet.java | 2 +- .../functions/ComponentFlagFunction.java | 18 +- .../functions/LootTableKeyFunction.java | 8 +- .../functions/ResourceLoadersFunction.java | 10 +- .../functions/StructureKeyFunction.java | 10 +- .../functions/StructureKeyOrTagFunction.java | 10 +- .../object/matter/IrisMatterObject.java | 14 +- .../object/matter/IrisMatterPlacement.java | 20 +- .../matter/IrisMatterPlacementLocation.java | 8 +- .../object/matter/IrisMatterTranslate.java | 10 +- .../engine/platform/BukkitChunkGenerator.java | 48 +- .../iris/engine/platform/DummyBiomeGrid.java | 2 +- .../engine/platform/DummyBiomeProvider.java | 6 +- .../engine/platform/DummyChunkGenerator.java | 2 +- .../platform/PlatformChunkGenerator.java | 12 +- .../studio/EnginedStudioGenerator.java | 8 +- .../platform/studio/StudioGenerator.java | 8 +- .../generators/BiomeBuffetGenerator.java | 14 +- .../iris/util/common/board/BoardEntry.java | 21 + .../iris/util/common/board/BoardSettings.java | 51 + .../util/common/board/ScoreDirection.java | 16 + .../iris/util/common}/cache/WorldCache2D.java | 10 +- .../art/arcane/iris/util/common/data/B.java | 257 + .../iris/util/common}/data/BiomeMap.java | 4 +- .../iris/util/common}/data/DataProvider.java | 4 +- .../util/common}/data/IrisCustomData.java | 6 +- .../iris/util/common}/data/VectorMap.java | 4 +- .../util/common}/data/palette/BitStorage.java | 2 +- .../common}/data/palette/CountConsumer.java | 2 +- .../CrudeIncrementalIntIdentityHashBiMap.java | 2 +- .../common}/data/palette/GlobalPalette.java | 2 +- .../common}/data/palette/HashMapPalette.java | 6 +- .../iris/util/common}/data/palette/IdMap.java | 2 +- .../util/common}/data/palette/IdMapper.java | 2 +- .../common}/data/palette/LinearPalette.java | 2 +- .../iris/util/common}/data/palette/Mth.java | 2 +- .../util/common}/data/palette/Palette.java | 2 +- .../common}/data/palette/PaletteAccess.java | 4 +- .../common}/data/palette/PaletteResize.java | 2 +- .../common}/data/palette/PaletteType.java | 4 +- .../data/palette/PalettedContainer.java | 6 +- .../util/common}/data/palette/QuartPos.java | 2 +- .../common}/data/registry/Attributes.java | 2 +- .../common}/data/registry/KeyedRegistry.java | 4 +- .../util/common}/data/registry/Materials.java | 4 +- .../util/common}/data/registry/Particles.java | 4 +- .../data/registry/RegistryTypeAdapter.java | 2 +- .../common}/data/registry/RegistryUtil.java | 12 +- .../util/common/decree/DecreeContext.java | 20 + .../common/decree/DecreeContextHandler.java | 23 + .../util/common}/decree/DecreeExecutor.java | 27 +- .../iris/util/common/decree/DecreeNode.java | 17 + .../util/common/decree/DecreeParameter.java | 28 + .../common/decree/DecreeParameterHandler.java | 5 + .../util/common}/decree/DecreeSystem.java | 95 +- .../decree/context/BiomeContextHandler.java | 10 +- .../context/DimensionContextHandler.java | 10 +- .../context/GeneratorContextHandler.java | 12 +- .../decree/context/RegionContextHandler.java | 10 +- .../decree/context/VectorContextHandler.java | 6 +- .../decree/context/WorldContextHandler.java | 18 + .../common}/decree/handlers/BiomeHandler.java | 6 +- .../decree/handlers/BlockVectorHandler.java | 39 + .../decree/handlers/BooleanHandler.java | 7 + .../common/decree/handlers/ByteHandler.java | 7 + .../common}/decree/handlers/CaveHandler.java | 6 +- .../decree/handlers/DataVersionHandler.java | 10 +- .../decree/handlers/DimensionHandler.java | 10 +- .../common/decree/handlers/DoubleHandler.java | 7 + .../decree/handlers/EntityHandler.java | 6 +- .../common/decree/handlers/FloatHandler.java | 7 + .../decree/handlers/GeneratorHandler.java | 6 +- .../decree/handlers/IntegerHandler.java | 7 + .../decree/handlers/JigsawPieceHandler.java | 6 +- .../decree/handlers/JigsawPoolHandler.java | 6 +- .../handlers/JigsawStructureHandler.java | 6 +- .../common/decree/handlers/LongHandler.java | 7 + .../decree/handlers/PlayerHandler.java} | 14 +- .../decree/handlers/RegionHandler.java | 6 +- .../decree/handlers/ScriptHandler.java | 6 +- .../common/decree/handlers/ShortHandler.java | 7 + .../common/decree/handlers/StringHandler.java | 7 + .../common/decree/handlers/VectorHandler.java | 39 + .../common/decree/handlers/WorldHandler.java | 12 + .../decree/specialhandlers/DummyHandler.java | 7 + .../NullableDimensionHandler.java | 8 +- .../NullablePlayerHandler.java | 14 + .../decree/specialhandlers/ObjectHandler.java | 12 +- .../specialhandlers/RegistrantHandler.java | 14 +- .../decree/virtual/VirtualDecreeCommand.java | 33 +- .../arcane/iris/util/common}/format/C.java | 6 +- .../common/inventorygui/ElementEvent.java | 18 + .../inventorygui/UIStaticDecorator.java | 12 +- .../common}/inventorygui/UIVoidDecorator.java | 9 +- .../util/common}/inventorygui/Window.java | 37 +- .../common/inventorygui/WindowResolution.java | 43 + .../iris/util/common}/io/ReactiveFolder.java | 7 +- .../iris/util/common/mantle/Mantle.java | 162 + .../iris/util/common/mantle/MantleChunk.java | 140 + .../util/common/mantle/TectonicPlate.java | 96 + .../iris/util/common/mantle/io/IOWorker.java | 87 + .../iris/util/common}/math/AxisAlignedBB.java | 9 +- .../iris/util/common/math/Direction.java | 158 + .../iris/util/common/math/Position2.java} | 32 +- .../arcane/iris/util/common}/math/RNGV2.java | 2 +- .../arcane/iris/util/common/math/Spiral.java | 52 + .../iris/util/common}/math/Vector3i.java | 2 +- .../iris/util/common/math/VectorMath.java | 93 + .../iris/util/common}/misc/Bindings.java | 30 +- .../util/common}/misc/ServerProperties.java | 2 +- .../iris/util/common}/misc/SlimJar.java | 6 +- .../iris/util/common}/misc/getHardware.java | 8 +- .../iris/util/common/nbt/mca/Chunk.java | 60 + .../iris/util/common/nbt/mca/MCAFile.java | 89 + .../iris/util/common}/nbt/mca/MCAUtil.java | 37 +- .../iris/util/common/nbt/mca/NBTWorld.java | 246 + .../iris/util/common}/nbt/mca/Section.java | 82 +- .../util/common/parallel/BurstExecutor.java | 11 + .../util/common}/parallel/BurstedHunk.java | 11 +- .../iris/util/common/parallel/GridLock.java | 10 + .../iris/util/common/parallel/HyperLock.java | 18 + .../iris/util/common/parallel/MultiBurst.java | 69 + .../util/common/parallel/NOOPGridLock.java | 9 + .../util/common/parallel/StreamUtils.java | 29 + .../util/common/parallel/SyncExecutor.java | 20 + .../iris/util/common}/plugin/Chunks.java | 2 +- .../iris/util/common}/plugin/Command.java | 4 +- .../util/common}/plugin/CommandDummy.java | 2 +- .../iris/util/common}/plugin/Control.java | 2 +- .../iris/util/common}/plugin/Controller.java | 4 +- .../iris/util/common}/plugin/ICommand.java | 4 +- .../iris/util/common}/plugin/IController.java | 2 +- .../iris/util/common}/plugin/Instance.java | 2 +- .../iris/util/common}/plugin/IrisService.java | 4 +- .../util/common}/plugin/MortarCommand.java | 10 +- .../util/common}/plugin/MortarPermission.java | 6 +- .../iris/util/common}/plugin/Permission.java | 2 +- .../util/common}/plugin/PluginRegistry.java | 6 +- .../common}/plugin/PluginRegistryGroup.java | 6 +- .../util/common}/plugin/RouterCommand.java | 2 +- .../util/common}/plugin/VirtualCommand.java | 14 +- .../util/common}/plugin/VolmitPlugin.java | 20 +- .../util/common}/plugin/VolmitSender.java | 24 +- .../common}/plugin/chunk/ChunkTickets.java | 4 +- .../common}/plugin/chunk/TicketHolder.java | 8 +- .../iris/util/common}/reflect/KeyedType.java | 6 +- .../iris/util/common}/reflect/OldEnum.java | 2 +- .../arcane/iris/util/common}/reflect/W.java | 2 +- .../util/common}/reflect/WrappedField.java | 4 +- .../reflect/WrappedReturningMethod.java | 4 +- .../iris/util/common}/scheduling/J.java | 144 +- .../common}/scheduling/jobs/DownloadJob.java | 6 +- .../util/common}/scheduling/jobs/Job.java | 12 +- .../scheduling/jobs/JobCollection.java | 4 +- .../scheduling/jobs/ParallelQueueJob.java | 8 +- .../scheduling/jobs/ParallelRadiusJob.java | 6 +- .../common}/scheduling/jobs/QueueJob.java | 4 +- .../common}/scheduling/jobs/SingleJob.java | 2 +- .../iris/util/project}/agent/Agent.java | 6 +- .../util/project}/context/IrisContext.java | 14 +- .../arcane/iris/util/project}/hunk/Hunk.java | 552 +- .../iris/util/project}/hunk/HunkFace.java | 28 +- .../util/project/hunk/SharedHunkAdapter.java | 64 + .../util/project}/hunk/storage/ArrayHunk.java | 6 +- .../hunk/storage/AtomicDoubleHunk.java | 4 +- .../project}/hunk/storage/AtomicHunk.java | 4 +- .../hunk/storage/AtomicIntegerHunk.java | 4 +- .../project}/hunk/storage/AtomicLongHunk.java | 4 +- .../project/hunk/storage/PaletteOrHunk.java | 38 + .../project}/hunk/storage/StorageHunk.java | 4 +- .../hunk/storage/SynchronizedArrayHunk.java | 4 +- .../hunk/view/BiomeGridHunkHolder.java | 45 + .../project/hunk/view/BiomeGridHunkView.java | 45 + .../hunk/view/ChunkBiomeHunkView.java} | 25 +- .../hunk/view/ChunkDataHunkHolder.java | 4 +- .../project/hunk/view/ChunkDataHunkView.java | 47 + .../project/hunk/view/ChunkHunkView.java} | 17 +- .../interpolation/InterpolationMethod.java | 4 +- .../interpolation/InterpolationMethod3D.java | 4 +- .../interpolation/InterpolationType.java | 2 +- .../interpolation/IrisInterpolation.java | 23 +- .../iris/util/project}/matter/IrisMatter.java | 14 +- .../iris/util/project}/matter/Matter.java | 18 +- .../project}/matter/MatterBiomeInject.java | 2 +- .../project}/matter/MatterEntityGroup.java | 5 +- .../util/project}/matter/MatterHeader.java | 4 +- .../util/project}/matter/MatterPalette.java | 8 +- .../util/project}/matter/MatterPlacer.java | 4 +- .../util/project}/matter/MatterSlice.java | 21 +- .../project}/matter/MatterStructurePOI.java | 2 +- .../iris/util/project}/matter/Sliced.java | 2 +- .../util/project}/matter/TileWrapper.java | 4 +- .../util/project}/matter/WorldMatter.java | 8 +- .../matter/slices/BiomeInjectMatter.java | 8 +- .../project}/matter/slices/BlockMatter.java | 10 +- .../project}/matter/slices/BooleanMatter.java | 6 +- .../project}/matter/slices/CavernMatter.java | 8 +- .../matter/slices/CompoundMatter.java | 6 +- .../project}/matter/slices/EntityMatter.java | 26 +- .../matter/slices/IdentifierMatter.java | 8 +- .../project}/matter/slices/IntMatter.java | 8 +- .../matter/slices/JigsawPieceMatter.java | 8 +- .../matter/slices/JigsawStructureMatter.java | 8 +- .../matter/slices/JigsawStructuresMatter.java | 8 +- .../project}/matter/slices/LongMatter.java | 8 +- .../project}/matter/slices/MarkerMatter.java | 10 +- .../project}/matter/slices/NBTMatter.java | 8 +- .../project}/matter/slices/RawMatter.java | 16 +- .../matter/slices/RegistryMatter.java | 8 +- .../project}/matter/slices/SpawnerMatter.java | 6 +- .../project}/matter/slices/StringMatter.java | 6 +- .../matter/slices/StructurePOIMatter.java | 6 +- .../project}/matter/slices/TileMatter.java | 10 +- .../project}/matter/slices/UpdateMatter.java | 10 +- .../container/JigsawPieceContainer.java | 4 +- .../container/JigsawStructureContainer.java | 4 +- .../container/JigsawStructuresContainer.java | 12 +- .../slices/container/RegistrantContainer.java | 6 +- .../arcane/iris/util/project}/noise/CNG.java | 28 +- .../iris/util/project}/noise/CNGFactory.java | 4 +- .../iris/util/project}/noise/CachedNoise.java | 2 +- .../util/project}/noise/CachedNoiseMap.java | 10 +- .../util/project}/noise/CellGenerator.java | 4 +- .../util/project}/noise/CellHeightNoise.java | 6 +- .../util/project}/noise/CellularNoise.java | 4 +- .../iris/util/project}/noise/CloverNoise.java | 2 +- .../iris/util/project}/noise/CubicNoise.java | 4 +- .../util/project}/noise/ExpressionNoise.java | 6 +- .../iris/util/project}/noise/FastNoise.java | 8 +- .../util/project}/noise/FastNoiseDouble.java | 6 +- .../iris/util/project}/noise/FlatNoise.java | 2 +- .../noise/FractalBillowPerlinNoise.java | 6 +- .../noise/FractalBillowSimplexNoise.java | 6 +- .../project}/noise/FractalCubicNoise.java | 6 +- .../noise/FractalFBMSimplexNoise.java | 6 +- .../noise/FractalRigidMultiSimplexNoise.java | 6 +- .../iris/util/project}/noise/GlobNoise.java | 4 +- .../iris/util/project}/noise/ImageNoise.java | 6 +- .../project}/noise/InterpolatedNoise.java | 8 +- .../util/project}/noise/NoiseFactory.java | 2 +- .../util/project}/noise/NoiseGenerator.java | 6 +- .../iris/util/project}/noise/NoiseType.java | 6 +- .../iris/util/project}/noise/OctaveNoise.java | 2 +- .../project}/noise/OffsetNoiseGenerator.java | 4 +- .../iris/util/project}/noise/PerlinNoise.java | 4 +- .../project}/noise/RarityCellGenerator.java | 8 +- .../util/project}/noise/SimplexNoise.java | 4 +- .../util/project}/noise/VascularNoise.java | 6 +- .../iris/util/project}/noise/WhiteNoise.java | 4 +- .../util/project}/profile/LoadBalancer.java | 8 +- .../util/project}/profile/MsptTimings.java | 8 +- .../util/project}/sentry/Attachments.java | 6 +- .../iris/util/project}/sentry/IrisLogger.java | 4 +- .../iris/util/project}/sentry/ServerID.java | 4 +- .../util/project}/stream/BasicStream.java | 4 +- .../project}/stream/ProceduralStream.java | 44 +- .../stream/arithmetic/AddingStream.java | 10 +- .../stream/arithmetic/ClampedStream.java | 6 +- .../CoordinateBitShiftLeftStream.java | 6 +- .../CoordinateBitShiftRightStream.java | 6 +- .../stream/arithmetic/DividingStream.java | 10 +- .../stream/arithmetic/FittedStream.java | 6 +- .../stream/arithmetic/MaxingStream.java | 10 +- .../stream/arithmetic/MinningStream.java | 10 +- .../stream/arithmetic/ModuloStream.java | 10 +- .../stream/arithmetic/MultiplyingStream.java | 10 +- .../stream/arithmetic/OffsetStream.java | 6 +- .../stream/arithmetic/RadialStream.java | 6 +- .../arithmetic/RoundingDoubleStream.java | 6 +- .../stream/arithmetic/SlopeStream.java | 6 +- .../stream/arithmetic/SubtractingStream.java | 10 +- .../stream/arithmetic/ZoomStream.java | 6 +- .../convert/AwareConversionStream2D.java | 8 +- .../convert/AwareConversionStream3D.java | 8 +- .../convert/CachedConversionStream.java | 8 +- .../stream/convert/ConversionStream.java | 6 +- .../stream/convert/ForceDoubleStream.java | 6 +- .../stream/convert/RoundingStream.java | 6 +- .../stream/convert/SelectionStream.java | 6 +- .../stream/convert/SignificanceStream.java | 12 +- .../project}/stream/convert/To3DStream.java | 6 +- .../stream/interpolation/BiHermiteStream.java | 8 +- .../interpolation/BiStarcastStream.java | 6 +- .../stream/interpolation/BicubicStream.java | 8 +- .../stream/interpolation/BilinearStream.java | 8 +- .../stream/interpolation/Interpolated.java | 12 +- .../interpolation/InterpolatingStream.java | 12 +- .../stream/interpolation/Interpolator.java | 4 +- .../interpolation/InterpolatorFactory.java | 6 +- .../interpolation/TriHermiteStream.java | 8 +- .../interpolation/TriStarcastStream.java | 6 +- .../stream/interpolation/TricubicStream.java | 8 +- .../stream/interpolation/TrilinearStream.java | 8 +- .../project}/stream/sources/CNGStream.java | 8 +- .../stream/sources/FunctionStream.java | 10 +- .../stream/utility/CachedStream2D.java | 18 +- .../stream/utility/CachedStream3D.java | 18 +- .../utility/ContextInjectingStream.java | 12 +- .../stream/utility/NullSafeStream.java | 6 +- .../stream/utility/ProfiledStream.java | 16 +- .../stream/utility/SemaphoreStream.java | 6 +- .../stream/utility/SynchronizedStream.java | 6 +- .../stream/utility/WasteDetector.java | 12 +- .../arcane/iris/util/project}/uniques/U.java | 2 +- .../util/project}/uniques/UBufferedImage.java | 2 +- .../iris/util/project}/uniques/UFeature.java | 10 +- .../util/project}/uniques/UFeatureMeta.java | 12 +- .../iris/util/project}/uniques/UImage.java | 2 +- .../iris/util/project}/uniques/UMeta.java | 6 +- .../util/project}/uniques/UniqueRenderer.java | 32 +- .../uniques/features/UFInterpolator.java | 18 +- .../util/project/uniques/features/UFNOOP.java | 14 + .../uniques/features/UFWarpedBackground.java | 12 +- .../uniques/features/UFWarpedCircle.java | 12 +- .../uniques/features/UFWarpedDisc.java | 12 +- .../uniques/features/UFWarpedDots.java | 12 +- .../uniques/features/UFWarpedLines.java | 12 +- .../iris/core/scripting/func/BiomeLookup.java | 10 - .../volmit/iris/util/api/APIWorldBlock.java | 26 - .../iris/util/atomics/AtomicAverage.java | 108 - .../util/atomics/AtomicRollingSequence.java | 107 - .../com/volmit/iris/util/board/Board.java | 142 - .../volmit/iris/util/board/BoardEntry.java | 59 - .../volmit/iris/util/board/BoardManager.java | 90 - .../iris/util/board/BoardUpdateTask.java | 49 - .../iris/util/board/ScoreDirection.java | 32 - .../volmit/iris/util/cache/ArrayCache.java | 67 - .../volmit/iris/util/cache/ByteBitCache.java | 44 - .../com/volmit/iris/util/cache/ByteCache.java | 72 - .../volmit/iris/util/cache/ChunkCache2D.java | 56 - .../volmit/iris/util/cache/DataBitCache.java | 54 - .../volmit/iris/util/cache/FloatBitCache.java | 44 - .../volmit/iris/util/cache/FloatCache.java | 83 - .../volmit/iris/util/cache/IntBitCache.java | 44 - .../com/volmit/iris/util/cache/IntCache.java | 72 - .../volmit/iris/util/cache/ShortBitCache.java | 44 - .../volmit/iris/util/cache/ShortCache.java | 72 - .../volmit/iris/util/cache/UByteBitCache.java | 40 - .../volmit/iris/util/cache/UByteCache.java | 40 - .../volmit/iris/util/collection/GBiset.java | 81 - .../iris/util/collection/GListAdapter.java | 59 - .../volmit/iris/util/collection/KList.java | 709 -- .../com/volmit/iris/util/collection/KMap.java | 422 - .../com/volmit/iris/util/collection/KSet.java | 94 - .../volmit/iris/util/collection/KeyPair.java | 59 - .../iris/util/collection/StateList.java | 104 - .../java/com/volmit/iris/util/data/B.java | 734 -- .../com/volmit/iris/util/data/ChunkCache.java | 50 - .../volmit/iris/util/data/ComplexCache.java | 42 - .../com/volmit/iris/util/data/Cuboid.java | 832 -- .../iris/util/data/CuboidException.java | 32 - .../java/com/volmit/iris/util/data/DUTF.java | 52 - .../volmit/iris/util/data/DataPalette.java | 87 - .../com/volmit/iris/util/data/Dimension.java | 89 - .../volmit/iris/util/data/DimensionFace.java | 41 - .../iris/util/data/DoubleArrayUtils.java | 48 - .../com/volmit/iris/util/data/Heafty.java | 24 - .../com/volmit/iris/util/data/HeightMap.java | 38 - .../com/volmit/iris/util/data/IOAdapter.java | 29 - .../iris/util/data/InvertedBiomeGrid.java | 54 - .../iris/util/data/IrisBiomeStorage.java | 96 - .../com/volmit/iris/util/data/KCache.java | 101 - .../volmit/iris/util/data/MaterialBlock.java | 126 - .../volmit/iris/util/data/NibbleArray.java | 194 - .../iris/util/data/NibbleDataPalette.java | 124 - .../com/volmit/iris/util/data/Recycler.java | 151 - .../com/volmit/iris/util/data/Shrinkwrap.java | 39 - .../iris/util/data/VanillaBiomeMap.java | 133 - .../com/volmit/iris/util/data/Varint.java | 224 - .../com/volmit/iris/util/data/WeightMap.java | 63 - .../volmit/iris/util/data/WeightedRandom.java | 69 - .../com/volmit/iris/util/data/Writable.java | 29 - .../iris/util/decree/DecreeContext.java | 37 - .../util/decree/DecreeContextHandler.java | 45 - .../volmit/iris/util/decree/DecreeNode.java | 99 - .../volmit/iris/util/decree/DecreeOrigin.java | 44 - .../iris/util/decree/DecreeParameter.java | 116 - .../util/decree/DecreeParameterHandler.java | 162 - .../iris/util/decree/annotations/Decree.java | 72 - .../iris/util/decree/annotations/Param.java | 69 - .../decree/context/WorldContextHandler.java | 33 - .../exceptions/DecreeParsingException.java | 28 - .../decree/handlers/BlockVectorHandler.java | 110 - .../util/decree/handlers/BooleanHandler.java | 58 - .../util/decree/handlers/ByteHandler.java | 55 - .../util/decree/handlers/DoubleHandler.java | 60 - .../util/decree/handlers/FloatHandler.java | 60 - .../util/decree/handlers/IntegerHandler.java | 59 - .../util/decree/handlers/LongHandler.java | 62 - .../util/decree/handlers/PlayerHandler.java | 64 - .../util/decree/handlers/ShortHandler.java | 59 - .../util/decree/handlers/StringHandler.java | 54 - .../util/decree/handlers/VectorHandler.java | 111 - .../util/decree/handlers/WorldHandler.java | 69 - .../decree/specialhandlers/DummyHandler.java | 49 - .../NullablePlayerHandler.java | 13 - .../util/documentation/BlockCoordinates.java | 26 - .../util/documentation/ChunkCoordinates.java | 26 - .../ChunkRelativeBlockCoordinates.java | 26 - .../iris/util/documentation/Exclusive.java | 7 - .../iris/util/documentation/Inclusive.java | 7 - .../util/documentation/RegionCoordinates.java | 26 - .../iris/util/exceptions/IrisException.java | 37 - .../exceptions/MissingDimensionException.java | 29 - .../com/volmit/iris/util/format/Form.java | 1233 -- .../iris/util/format/MemoryMonitor.java | 126 - .../volmit/iris/util/function/Consumer2.java | 25 - .../iris/util/function/Consumer2IO.java | 27 - .../volmit/iris/util/function/Consumer3.java | 25 - .../volmit/iris/util/function/Consumer4.java | 24 - .../iris/util/function/Consumer4IO.java | 26 - .../volmit/iris/util/function/Consumer5.java | 24 - .../volmit/iris/util/function/Consumer6.java | 24 - .../volmit/iris/util/function/Consumer8.java | 24 - .../volmit/iris/util/function/Function2.java | 24 - .../volmit/iris/util/function/Function3.java | 24 - .../volmit/iris/util/function/Function4.java | 24 - .../iris/util/function/NastyFunction.java | 24 - .../iris/util/function/NastyFuture.java | 23 - .../iris/util/function/NastyRunnable.java | 23 - .../iris/util/function/NastySupplier.java | 23 - .../iris/util/function/NoiseInjector.java | 24 - .../iris/util/function/NoiseProvider.java | 24 - .../iris/util/function/NoiseProvider3.java | 24 - .../volmit/iris/util/function/Supplier2.java | 23 - .../volmit/iris/util/function/Supplier3.java | 23 - .../volmit/iris/util/function/Supplier3R.java | 23 - .../volmit/iris/util/hunk/HunkFactory.java | 24 - .../volmit/iris/util/hunk/bits/DataBits.java | 187 - .../iris/util/hunk/bits/DataContainer.java | 211 - .../iris/util/hunk/bits/HashPalette.java | 111 - .../iris/util/hunk/bits/LinearPalette.java | 93 - .../volmit/iris/util/hunk/bits/Palette.java | 71 - .../volmit/iris/util/hunk/bits/Writable.java | 29 - .../iris/util/hunk/storage/MappedHunk.java | 105 - .../util/hunk/storage/MappedSyncHunk.java | 117 - .../iris/util/hunk/storage/PaletteHunk.java | 93 - .../iris/util/hunk/storage/PaletteOrHunk.java | 90 - .../util/hunk/view/BiomeGridHunkHolder.java | 85 - .../util/hunk/view/BiomeGridHunkView.java | 78 - .../util/hunk/view/ChunkBiomeHunkView.java | 64 - .../util/hunk/view/ChunkDataHunkView.java | 95 - .../iris/util/hunk/view/ChunkHunkView.java | 63 - .../iris/util/hunk/view/DriftHunkView.java | 66 - .../iris/util/hunk/view/FringedHunkView.java | 62 - .../util/hunk/view/FunctionalHunkView.java | 73 - .../volmit/iris/util/hunk/view/HunkView.java | 79 - .../iris/util/hunk/view/InvertedHunkView.java | 60 - .../iris/util/hunk/view/ListeningHunk.java | 64 - .../iris/util/hunk/view/ReadOnlyHunk.java | 70 - .../iris/util/hunk/view/RotatedXHunkView.java | 73 - .../iris/util/hunk/view/RotatedYHunkView.java | 74 - .../iris/util/hunk/view/RotatedZHunkView.java | 69 - .../util/hunk/view/SynchronizedHunkView.java | 62 - .../iris/util/hunk/view/WriteTrackHunk.java | 68 - .../util/interpolation/CompiledStarcast.java | 10289 ---------------- .../iris/util/interpolation/Starcast.java | 734 -- .../iris/util/inventorygui/Element.java | 75 - .../iris/util/inventorygui/ElementEvent.java | 33 - .../iris/util/inventorygui/RandomColor.java | 527 - .../iris/util/inventorygui/UIElement.java | 248 - .../iris/util/inventorygui/UIWindow.java | 457 - .../util/inventorygui/WindowDecorator.java | 23 - .../util/inventorygui/WindowResolution.java | 53 - .../com/volmit/iris/util/io/Converter.java | 30 - .../iris/util/io/CountingDataInputStream.java | 93 - .../iris/util/io/CustomOutputStream.java | 30 - .../com/volmit/iris/util/io/FileWatcher.java | 51 - .../volmit/iris/util/io/FolderWatcher.java | 146 - .../main/java/com/volmit/iris/util/io/IO.java | 1724 --- .../com/volmit/iris/util/io/IORunnable.java | 25 - .../volmit/iris/util/io/InstanceState.java | 50 - .../com/volmit/iris/util/io/JarScanner.java | 125 - .../volmit/iris/util/io/VoidOutputStream.java | 28 - .../java/com/volmit/iris/util/json/HTTP.java | 182 - .../volmit/iris/util/json/HTTPTokener.java | 73 - .../com/volmit/iris/util/json/JSONArray.java | 1030 -- .../volmit/iris/util/json/JSONException.java | 62 - .../com/volmit/iris/util/json/JSONML.java | 447 - .../com/volmit/iris/util/json/JSONObject.java | 1697 --- .../com/volmit/iris/util/json/JSONString.java | 38 - .../volmit/iris/util/json/JSONStringer.java | 77 - .../volmit/iris/util/json/JSONTokener.java | 426 - .../com/volmit/iris/util/json/JSONWriter.java | 324 - .../java/com/volmit/iris/util/json/XML.java | 489 - .../com/volmit/iris/util/json/XMLTokener.java | 353 - .../com/volmit/iris/util/mantle/Mantle.java | 773 -- .../volmit/iris/util/mantle/MantleChunk.java | 296 - .../iris/util/mantle/TectonicPlate.java | 233 - .../iris/util/mantle/flag/CustomFlag.java | 28 - .../iris/util/mantle/flag/MantleFlag.java | 58 - .../util/mantle/flag/MantleFlagAdapter.java | 31 - .../iris/util/mantle/flag/ReservedFlag.java | 26 - .../iris/util/mantle/io/DelegateStream.java | 123 - .../volmit/iris/util/mantle/io/Holder.java | 57 - .../volmit/iris/util/mantle/io/IOWorker.java | 130 - .../util/mantle/io/SynchronizedChannel.java | 54 - .../volmit/iris/util/math/AlignedPoint.java | 38 - .../com/volmit/iris/util/math/Average.java | 101 - .../volmit/iris/util/math/BlockPosition.java | 111 - .../java/com/volmit/iris/util/math/CDou.java | 60 - .../java/com/volmit/iris/util/math/DOP.java | 35 - .../com/volmit/iris/util/math/Direction.java | 382 - .../volmit/iris/util/math/FinalInteger.java | 50 - .../java/com/volmit/iris/util/math/INode.java | 47 - .../volmit/iris/util/math/IrisMathHelper.java | 453 - .../math/KochanekBartelsInterpolation.java | 248 - .../java/com/volmit/iris/util/math/M.java | 372 - .../com/volmit/iris/util/math/MathHelper.java | 728 -- .../iris/util/math/PathInterpolation.java | 70 - .../com/volmit/iris/util/math/Point3d.java | 179 - .../com/volmit/iris/util/math/Point3f.java | 180 - .../com/volmit/iris/util/math/Point4d.java | 214 - .../com/volmit/iris/util/math/Point4f.java | 214 - .../com/volmit/iris/util/math/Position2.java | 97 - .../java/com/volmit/iris/util/math/RNG.java | 190 - .../iris/util/math/RollingSequence.java | 105 - .../com/volmit/iris/util/math/Spiral.java | 108 - .../com/volmit/iris/util/math/Spiraled.java | 24 - .../com/volmit/iris/util/math/Spiraler.java | 88 - .../com/volmit/iris/util/math/Tuple2d.java | 562 - .../com/volmit/iris/util/math/Tuple2f.java | 565 - .../com/volmit/iris/util/math/Tuple3d.java | 719 -- .../com/volmit/iris/util/math/Tuple3f.java | 656 - .../com/volmit/iris/util/math/Tuple4d.java | 817 -- .../com/volmit/iris/util/math/Tuple4f.java | 732 -- .../volmit/iris/util/math/VecMathUtil.java | 87 - .../com/volmit/iris/util/math/Vector2d.java | 168 - .../com/volmit/iris/util/math/Vector2f.java | 168 - .../com/volmit/iris/util/math/Vector3d.java | 192 - .../com/volmit/iris/util/math/Vector3f.java | 189 - .../com/volmit/iris/util/math/VectorMath.java | 617 - .../volmit/iris/util/matter/MatterCavern.java | 42 - .../volmit/iris/util/matter/MatterEntity.java | 32 - .../volmit/iris/util/matter/MatterFilter.java | 24 - .../iris/util/matter/MatterFluidBody.java | 30 - .../volmit/iris/util/matter/MatterMarker.java | 28 - .../volmit/iris/util/matter/MatterReader.java | 24 - .../volmit/iris/util/matter/MatterUpdate.java | 28 - .../volmit/iris/util/matter/MatterWriter.java | 24 - .../iris/util/nbt/io/NBTDeserializer.java | 50 - .../iris/util/nbt/io/NBTInputStream.java | 155 - .../iris/util/nbt/io/NBTOutputStream.java | 160 - .../iris/util/nbt/io/NBTSerializer.java | 51 - .../com/volmit/iris/util/nbt/io/NBTUtil.java | 107 - .../com/volmit/iris/util/nbt/io/NamedTag.java | 48 - .../iris/util/nbt/io/ParseException.java | 43 - .../iris/util/nbt/io/SNBTDeserializer.java | 45 - .../volmit/iris/util/nbt/io/SNBTParser.java | 258 - .../iris/util/nbt/io/SNBTSerializer.java | 37 - .../com/volmit/iris/util/nbt/io/SNBTUtil.java | 34 - .../volmit/iris/util/nbt/io/SNBTWriter.java | 135 - .../iris/util/nbt/io/StringPointer.java | 133 - .../com/volmit/iris/util/nbt/mca/Chunk.java | 622 - .../iris/util/nbt/mca/CompressionType.java | 67 - .../iris/util/nbt/mca/ExceptionFunction.java | 25 - .../volmit/iris/util/nbt/mca/LoadFlags.java | 42 - .../com/volmit/iris/util/nbt/mca/MCAFile.java | 342 - .../volmit/iris/util/nbt/mca/NBTWorld.java | 336 - .../nbt/mca/palette/MCABiomeContainer.java | 27 - .../util/nbt/mca/palette/MCABitStorage.java | 145 - .../mca/palette/MCAChunkBiomeContainer.java | 96 - .../nbt/mca/palette/MCACountConsumer.java | 24 - ...ACrudeIncrementalIntIdentityHashBiMap.java | 167 - .../nbt/mca/palette/MCAGlobalPalette.java | 55 - .../nbt/mca/palette/MCAHashMapPalette.java | 85 - .../iris/util/nbt/mca/palette/MCAIdMap.java | 25 - .../util/nbt/mca/palette/MCAIdMapper.java | 102 - .../nbt/mca/palette/MCALinearPalette.java | 87 - .../iris/util/nbt/mca/palette/MCAMth.java | 712 -- .../iris/util/nbt/mca/palette/MCAPalette.java | 35 - .../nbt/mca/palette/MCAPaletteAccess.java | 31 - .../nbt/mca/palette/MCAPaletteResize.java | 23 - .../nbt/mca/palette/MCAPalettedContainer.java | 179 - .../util/nbt/mca/palette/MCAQuartPos.java | 43 - .../palette/MCAWrappedPalettedContainer.java | 47 - .../volmit/iris/util/nbt/tag/ArrayTag.java | 65 - .../iris/util/nbt/tag/ByteArrayTag.java | 60 - .../com/volmit/iris/util/nbt/tag/ByteTag.java | 65 - .../volmit/iris/util/nbt/tag/CompoundTag.java | 293 - .../volmit/iris/util/nbt/tag/DoubleTag.java | 57 - .../volmit/iris/util/nbt/tag/FloatTag.java | 57 - .../volmit/iris/util/nbt/tag/IntArrayTag.java | 60 - .../com/volmit/iris/util/nbt/tag/IntTag.java | 57 - .../com/volmit/iris/util/nbt/tag/ListTag.java | 349 - .../iris/util/nbt/tag/LongArrayTag.java | 60 - .../com/volmit/iris/util/nbt/tag/LongTag.java | 57 - .../iris/util/nbt/tag/NonNullEntrySet.java | 160 - .../volmit/iris/util/nbt/tag/NumberTag.java | 55 - .../volmit/iris/util/nbt/tag/ShortTag.java | 57 - .../volmit/iris/util/nbt/tag/StringTag.java | 68 - .../com/volmit/iris/util/nbt/tag/Tag.java | 218 - .../java/com/volmit/iris/util/network/DL.java | 274 - .../iris/util/network/DownloadException.java | 41 - .../iris/util/network/DownloadMonitor.java | 24 - .../iris/util/network/MeteredInputStream.java | 105 - .../util/network/MeteredOutputStream.java | 103 - .../util/parallel/AtomicBooleanArray.java | 50 - .../iris/util/parallel/BurstExecutor.java | 117 - .../volmit/iris/util/parallel/GridLock.java | 99 - .../volmit/iris/util/parallel/HyperLock.java | 167 - .../volmit/iris/util/parallel/MultiBurst.java | 289 - .../iris/util/parallel/NOOPGridLock.java | 81 - .../iris/util/parallel/StreamUtils.java | 39 - .../iris/util/parallel/SyncExecutor.java | 46 - .../iris/util/plugin/CancellableTask.java | 23 - .../volmit/iris/util/reflect/ShadeFix.java | 25 - .../java/com/volmit/iris/util/reflect/V.java | 139 - .../volmit/iris/util/reflect/Violator.java | 273 - .../com/volmit/iris/util/scheduling/AR.java | 42 - .../volmit/iris/util/scheduling/Callback.java | 35 - .../iris/util/scheduling/ChronoLatch.java | 50 - .../iris/util/scheduling/Contained.java | 37 - .../iris/util/scheduling/GroupedExecutor.java | 112 - .../volmit/iris/util/scheduling/IrisLock.java | 60 - .../volmit/iris/util/scheduling/Looper.java | 50 - .../com/volmit/iris/util/scheduling/O.java | 64 - .../iris/util/scheduling/Observable.java | 31 - .../volmit/iris/util/scheduling/Observer.java | 24 - .../util/scheduling/PrecisionStopwatch.java | 123 - .../volmit/iris/util/scheduling/Queue.java | 51 - .../iris/util/scheduling/QueueExecutor.java | 62 - .../com/volmit/iris/util/scheduling/S.java | 29 - .../com/volmit/iris/util/scheduling/SR.java | 42 - .../iris/util/scheduling/ShurikenQueue.java | 99 - .../volmit/iris/util/scheduling/Switch.java | 42 - .../iris/util/scheduling/TaskExecutor.java | 206 - .../iris/util/scheduling/ThreadMonitor.java | 91 - .../volmit/iris/util/scheduling/Wrapper.java | 69 - .../iris/util/stream/ArraySignificance.java | 69 - .../volmit/iris/util/stream/BasicLayer.java | 44 - .../iris/util/stream/ProceduralLayer.java | 31 - .../volmit/iris/util/stream/Significance.java | 29 - .../iris/util/uniques/features/UFNOOP.java | 14 - .../pregenerator/cache/PregenCacheImpl.kt | 12 +- .../iris/core/safeguard/IrisSafeguard.kt | 18 +- .../arcane}/iris/core/safeguard/Mode.kt | 12 +- .../arcane}/iris/core/safeguard/task/Task.kt | 6 +- .../arcane}/iris/core/safeguard/task/Tasks.kt | 22 +- .../safeguard/task/ValueWithDiagnostics.kt | 6 +- .../kotlin/base/ChunkUpdateScript.kt | 6 +- .../core/scripting/kotlin/base/DataScript.kt | 4 +- .../scripting/kotlin/base/EngineScript.kt | 10 +- .../kotlin/base/MobSpawningScript.kt | 2 +- .../core/scripting/kotlin/base/NoiseScript.kt | 6 +- .../kotlin/base/PostMobSpawningScript.kt | 2 +- .../kotlin/base/PreprocessorScript.kt | 8 +- .../scripting/kotlin/base/SimpleScript.kt | 12 +- .../environment/IrisExecutionEnvironment.kt | 28 +- .../IrisPackExecutionEnvironment.kt | 24 +- .../IrisSimpleExecutionEnvironment.kt | 28 +- .../scripting/kotlin/runner/CachedScript.kt | 2 +- .../core/scripting/kotlin/runner/Script.kt | 2 +- .../scripting/kotlin/runner/ScriptRunner.kt | 4 +- .../core/scripting/kotlin/runner/Utils.kt | 4 +- .../resolver/CompoundDependenciesResolver.kt | 2 +- .../runner/resolver/DependenciesResolver.kt | 2 +- .../resolver/FileDependenciesResolver.kt | 2 +- .../LocalMavenDependenciesResolver.kt | 4 +- .../iris/engine/mantle/MatterGenerator.kt | 18 +- .../iris/util/common/mantle/FlaggedChunk.kt | 3 + .../util/project}/context/ChunkContext.kt | 10 +- .../util/project}/context/ChunkedDataCache.kt | 6 +- .../volmit/iris/util/mantle/FlaggedChunk.kt | 113 - core/src/main/templates/BuildConstants.java | 2 +- .../core/nms/v1_20_R1/CustomBiomeSource.java | 16 +- .../core/nms/v1_20_R1/IrisChunkGenerator.java | 30 +- .../iris/core/nms/v1_20_R1/NMSBinding.java | 56 +- .../core/nms/v1_20_R2/CustomBiomeSource.java | 16 +- .../core/nms/v1_20_R2/IrisChunkGenerator.java | 30 +- .../iris/core/nms/v1_20_R2/NMSBinding.java | 58 +- .../core/nms/v1_20_R3/CustomBiomeSource.java | 16 +- .../core/nms/v1_20_R3/IrisChunkGenerator.java | 30 +- .../iris/core/nms/v1_20_R3/NMSBinding.java | 58 +- .../core/nms/v1_20_R4/CustomBiomeSource.java | 16 +- .../core/nms/v1_20_R4/IrisChunkGenerator.java | 30 +- .../iris/core/nms/v1_20_R4/NMSBinding.java | 58 +- .../core/nms/v1_21_R1/CustomBiomeSource.java | 16 +- .../core/nms/v1_21_R1/IrisChunkGenerator.java | 30 +- .../iris/core/nms/v1_21_R1/NMSBinding.java | 58 +- .../core/nms/v1_21_R2/CustomBiomeSource.java | 16 +- .../core/nms/v1_21_R2/IrisChunkGenerator.java | 30 +- .../iris/core/nms/v1_21_R2/NMSBinding.java | 56 +- .../core/nms/v1_21_R3/CustomBiomeSource.java | 16 +- .../core/nms/v1_21_R3/IrisChunkGenerator.java | 30 +- .../iris/core/nms/v1_21_R3/NMSBinding.java | 56 +- .../core/nms/v1_21_R4/CustomBiomeSource.java | 16 +- .../core/nms/v1_21_R4/IrisChunkGenerator.java | 30 +- .../iris/core/nms/v1_21_R4/NMSBinding.java | 56 +- .../core/nms/v1_21_R5/CustomBiomeSource.java | 16 +- .../core/nms/v1_21_R5/IrisChunkGenerator.java | 30 +- .../iris/core/nms/v1_21_R5/NMSBinding.java | 56 +- .../core/nms/v1_21_R6/CustomBiomeSource.java | 16 +- .../core/nms/v1_21_R6/IrisChunkGenerator.java | 30 +- .../iris/core/nms/v1_21_R6/NMSBinding.java | 56 +- .../core/nms/v1_21_R7/CustomBiomeSource.java | 16 +- .../core/nms/v1_21_R7/IrisChunkGenerator.java | 30 +- .../iris/core/nms/v1_21_R7/NMSBinding.java | 58 +- 1063 files changed, 6980 insertions(+), 58810 deletions(-) rename core/agent/src/main/java/{com/volmit => art/arcane}/iris/util/agent/Installer.java (96%) rename core/src/main/java/{com/volmit => art/arcane}/iris/Iris.java (92%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/IrisSettings.java (96%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/IrisWorlds.java (91%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/ServerConfigurator.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/commands/CommandDeveloper.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/commands/CommandEdit.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/commands/CommandFind.java (85%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/commands/CommandIris.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/commands/CommandJigsaw.java (80%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/commands/CommandLazyPregen.java (89%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/commands/CommandObject.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/commands/CommandPregen.java (88%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/commands/CommandSettings.java (90%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/commands/CommandStudio.java (94%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/commands/CommandTurboPregen.java (92%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/commands/CommandUpdater.java (87%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/commands/CommandWhat.java (89%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/edit/BlockEditor.java (97%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/edit/BlockSignal.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/edit/BukkitBlockEditor.java (96%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/edit/DustRevealer.java (92%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/edit/JigsawEditor.java (94%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/events/IrisEngineEvent.java (94%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/events/IrisEngineHotloadEvent.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/events/IrisLootEvent.java (91%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/gui/NoiseExplorerGUI.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/gui/PregeneratorJob.java (94%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/gui/VisionGUI.java (96%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/gui/components/IrisRenderer.java (91%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/gui/components/RenderType.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/gui/components/Renderer.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/gui/components/TileRender.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/link/CustomItemsDataProvider.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/link/ExternalDataProvider.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/link/Identifier.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/link/IrisPapiExpansion.java (94%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/link/MultiverseCoreLink.java (98%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/link/WorldEditLink.java (92%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/link/data/DataType.java (86%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/link/data/EcoItemsDataProvider.java (88%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/link/data/ExecutableItemsDataProvider.java (88%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/link/data/HMCLeavesDataProvider.java (89%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/link/data/ItemAdderDataProvider.java (92%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/link/data/KGeneratorsDataProvider.java (88%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/link/data/MMOItemsDataProvider.java (94%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/link/data/MythicCrucibleDataProvider.java (91%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/link/data/MythicMobsDataProvider.java (96%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/link/data/NexoDataProvider.java (90%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/loader/ImageResourceLoader.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/loader/IrisData.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/loader/IrisRegistrant.java (81%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/loader/MatterObjectResourceLoader.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/loader/ObjectResourceLoader.java (92%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/loader/ResourceLoader.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/loader/ScriptResourceLoader.java (94%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/nms/BiomeBaseInjector.java (96%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/nms/INMS.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/nms/INMSBinding.java (83%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/nms/container/AutoClosing.java (86%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/nms/container/BiomeColor.java (68%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/nms/container/BlockPos.java (83%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/nms/container/BlockProperty.java (97%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/nms/container/Pair.java (81%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/nms/container/StructurePlacement.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/nms/datapack/DataVersion.java (74%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/nms/datapack/IDataFixer.java (78%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/nms/datapack/v1192/DataFixerV1192.java (91%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/nms/datapack/v1206/DataFixerV1206.java (80%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/nms/datapack/v1213/DataFixerV1213.java (51%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/nms/datapack/v1217/DataFixerV1217.java (96%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1X/NMSBinding1X.java (88%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/pack/IrisPack.java (94%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/pack/IrisPackRepository.java (91%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/pregenerator/ChunkUpdater.java (94%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/pregenerator/DeepSearchPregenerator.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/pregenerator/IrisPregenerator.java (94%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/pregenerator/LazyPregenerator.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/pregenerator/PregenListener.java (97%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/pregenerator/PregenTask.java (94%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/pregenerator/PregeneratorMethod.java (96%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/pregenerator/TurboPregenerator.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/pregenerator/cache/PregenCache.java (88%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/pregenerator/cache/SynchronizedCache.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/pregenerator/methods/AsyncOrMedievalPregenMethod.java (90%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/pregenerator/methods/AsyncPregenMethod.java (94%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/pregenerator/methods/CachedPregenMethod.java (86%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/pregenerator/methods/DummyPregenMethod.java (87%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/pregenerator/methods/HybridPregenMethod.java (90%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/pregenerator/methods/MedievalPregenMethod.java (87%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/project/Gradle.java (97%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/project/IrisProject.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/project/SchemaBuilder.java (97%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/report/Report.java (97%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/report/ReportType.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/scripting/environment/EngineEnvironment.java (71%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/scripting/environment/PackEnvironment.java (64%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/scripting/environment/SimpleEnvironment.java (87%) create mode 100644 core/src/main/java/art/arcane/iris/core/scripting/func/BiomeLookup.java rename core/src/main/java/{com/volmit => art/arcane}/iris/core/scripting/func/UpdateExecutor.java (91%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/service/BoardSVC.java (86%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/service/CommandSVC.java (84%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/service/ConversionSVC.java (91%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/service/EditSVC.java (90%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/service/ExternalDataSVC.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/service/GlobalCacheSVC.java (92%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/service/IrisEngineSVC.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/service/LogFilterSVC.java (96%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/service/ObjectSVC.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/service/PreservationSVC.java (91%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/service/StudioSVC.java (94%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/service/TreeSVC.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/service/WandSVC.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/tools/IrisConverter.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/tools/IrisCreator.java (91%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/tools/IrisPackBenchmarking.java (91%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/tools/IrisReflectiveAPI.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/tools/IrisToolbelt.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/tools/IrisWorldCreator.java (94%) rename core/src/main/java/{com/volmit => art/arcane}/iris/core/wand/WandSelection.java (96%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/EnginePanic.java (92%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/IrisComplex.java (96%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/IrisEngine.java (92%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/IrisEngineEffects.java (85%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/IrisEngineMantle.java (86%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/IrisWorldManager.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/actuator/IrisBiomeActuator.java (76%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/actuator/IrisDecorantActuator.java (90%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/actuator/IrisTerrainNormalActuator.java (91%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/data/cache/AtomicCache.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/data/cache/Cache.java (73%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/data/cache/Multicache.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/data/chunk/LinkedTerrainChunk.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/data/chunk/MCATerrainChunk.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/data/chunk/TerrainChunk.java (97%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/data/io/Deserializer.java (97%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/data/io/ExceptionBiFunction.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/data/io/ExceptionTriConsumer.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/data/io/MaxDepthIO.java (96%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/data/io/MaxDepthReachedException.java (96%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/data/io/Serializer.java (97%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/data/io/StringDeserializer.java (97%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/data/io/StringSerializer.java (97%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/decorator/IrisCeilingDecorator.java (90%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/decorator/IrisEngineDecorator.java (85%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/decorator/IrisSeaFloorDecorator.java (88%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/decorator/IrisSeaSurfaceDecorator.java (87%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/decorator/IrisShoreLineDecorator.java (90%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/decorator/IrisSurfaceDecorator.java (92%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/BlockUpdater.java (88%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/Engine.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/EngineActuator.java (82%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/EngineAssignedActuator.java (86%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/EngineAssignedBiModifier.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/EngineAssignedComponent.java (91%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/EngineAssignedModifier.java (86%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/EngineAssignedWorldManager.java (90%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/EngineBiModifier.java (91%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/EngineComponent.java (85%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/EngineData.java (90%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/EngineDecorator.java (87%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/EngineEffects.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/EngineMetrics.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/EngineMode.java (81%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/EngineModifier.java (82%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/EnginePlayer.java (89%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/EngineStage.java (85%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/EngineTarget.java (85%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/EngineWorldManager.java (97%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/Fallible.java (94%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/Hotloadable.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/IrisEngineMode.java (94%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/ListFunction.java (62%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/Locator.java (87%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/LocatorCanceller.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/LootProvider.java (80%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/MeteredCache.java (92%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/PlacedObject.java (87%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/PregeneratedData.java (91%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/ResultLocator.java (88%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/SeedManager.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/Staged.java (91%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/WrongEngineBroException.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/placer/HeightmapObjectPlacer.java (90%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/framework/placer/WorldObjectPlacer.java (82%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/jigsaw/PlannedPiece.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/jigsaw/PlannedStructure.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/mantle/ComponentFlag.java (75%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/mantle/EngineMantle.java (84%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/mantle/IrisMantleComponent.java (94%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/mantle/MantleComponent.java (81%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/mantle/MantleSized.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/mantle/MantleWriter.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/mantle/components/MantleCarvingComponent.java (79%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/mantle/components/MantleFluidBodyComponent.java (79%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/mantle/components/MantleJigsawComponent.java (90%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/mantle/components/MantleObjectComponent.java (90%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/mode/ModeEnclosure.java (79%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/mode/ModeIslands.java (79%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/mode/ModeOverworld.java (85%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/mode/ModeSuperFlat.java (79%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/modifier/IrisCarveModifier.java (90%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/modifier/IrisCustomModifier.java (73%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/modifier/IrisDepositModifier.java (89%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/modifier/IrisPerfectionModifier.java (92%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/modifier/IrisPostModifier.java (96%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/CarveResult.java (96%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/CarvingMode.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/CaveResult.java (96%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IObjectLoot.java (63%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IObjectPlacer.java (92%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IPostBlockAccess.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IRare.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/InferredType.java (91%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/InventorySlotType.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisAttributeModifier.java (96%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisAxisRotationClamp.java (96%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisBiome.java (96%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisBiomeCustom.java (94%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisBiomeCustomCategory.java (92%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisBiomeCustomParticle.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisBiomeCustomPrecipType.java (91%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisBiomeCustomSpawn.java (94%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisBiomeCustomSpawnType.java (92%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisBiomeGeneratorLink.java (89%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisBiomePaletteLayer.java (92%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisBlockData.java (92%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisBlockDrops.java (86%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisCarving.java (89%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisCave.java (85%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisCavePlacer.java (90%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisCaveShape.java (87%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisColor.java (90%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisCommand.java (89%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisCommandRegistry.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisCompat.java (98%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisCompatabilityBlockFilter.java (89%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisCompatabilityItemFilter.java (88%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisDecorationPart.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisDecorator.java (96%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisDepositGenerator.java (92%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisDimension.java (92%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisDimensionMode.java (84%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisDimensionModeType.java (80%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisDimensionType.java (94%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisDimensionTypeOptions.java (97%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisDirection.java (97%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisDuration.java (92%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisEffect.java (96%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisElipsoid.java (85%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisEnchantment.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisEngineData.java (89%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisEngineSpawnerCooldown.java (89%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisEngineStatistics.java (97%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisEngineStreamType.java (92%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisEngineValueType.java (92%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisEntity.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisEntitySpawn.java (94%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisExpression.java (86%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisExpressionFunction.java (87%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisExpressionLoad.java (86%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisFluidBodies.java (80%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisFontStyle.java (91%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisGenerator.java (94%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisGeneratorStyle.java (92%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisImage.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisImageChannel.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisImageMap.java (87%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisInterpolator.java (83%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisInterpolator3D.java (87%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisJigsawMinDistance.java (66%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisJigsawPiece.java (87%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisJigsawPieceConnector.java (96%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisJigsawPool.java (77%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisJigsawStructure.java (92%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisJigsawStructurePlacement.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisLake.java (87%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisLoot.java (90%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisLootMode.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisLootReference.java (88%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisLootTable.java (85%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisMarker.java (83%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisMaterialPalette.java (92%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisMod.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisModBiomeInjector.java (90%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisModBiomeReplacer.java (90%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisModNoiseStyleReplacer.java (94%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisModObjectPlacementBiomeInjector.java (90%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisModObjectPlacementRegionInjector.java (90%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisModObjectReplacer.java (90%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisModRegionReplacer.java (90%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisNoiseGenerator.java (91%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisObject.java (97%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisObjectLimit.java (84%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisObjectLoot.java (90%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisObjectMarker.java (89%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisObjectPlacement.java (96%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisObjectPlacementScaleInterpolator.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisObjectReplace.java (88%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisObjectRotation.java (98%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisObjectScale.java (90%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisObjectTranslate.java (96%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisObjectVanillaLoot.java (81%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisOreGenerator.java (88%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisPosition.java (94%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisPosition2D.java (88%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisPotionEffect.java (94%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisPreProcessors.java (74%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisPyramid.java (81%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisRange.java (88%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisRareObject.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisRate.java (86%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisRavine.java (90%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisRavinePlacer.java (89%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisRegion.java (94%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisRiver.java (88%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisScript.java (88%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisSeed.java (89%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisShapedGeneratorStyle.java (92%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisSlopeClip.java (85%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisSpawnGroup.java (92%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisSpawner.java (91%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisSpawnerCooldowns.java (87%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisSphere.java (81%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisStiltSettings.java (78%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisStructurePopulator.java (88%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisStyledRange.java (83%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisSurface.java (96%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisTimeBlock.java (92%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisTree.java (87%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisTreeModes.java (91%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisTreeSettings.java (86%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisTreeSize.java (88%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisVanillaLootTable.java (91%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisVillagerOverride.java (94%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisVillagerTrade.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisWeather.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisWorld.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/IrisWorm.java (91%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/LegacyTileData.java (96%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/NoiseStyle.java (98%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/ObjectPlaceMode.java (97%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/StudioMode.java (89%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/TileData.java (96%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/annotations/ArrayType.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/annotations/DependsOn.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/annotations/Desc.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/annotations/MaxNumber.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/annotations/MinNumber.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/annotations/RegistryListBiomeDownfallType.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/annotations/RegistryListBlockType.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/annotations/RegistryListEnchantment.java (84%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/annotations/RegistryListFont.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/annotations/RegistryListFunction.java (69%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/annotations/RegistryListItemType.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/annotations/RegistryListResource.java (91%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/annotations/RegistryListSpecialEntity.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/annotations/RegistryMapBlockState.java (85%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/annotations/Required.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/annotations/Snippet.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/annotations/functions/ComponentFlagFunction.java (64%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/annotations/functions/LootTableKeyFunction.java (79%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/annotations/functions/ResourceLoadersFunction.java (68%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/annotations/functions/StructureKeyFunction.java (61%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/annotations/functions/StructureKeyOrTagFunction.java (60%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/matter/IrisMatterObject.java (75%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/matter/IrisMatterPlacement.java (85%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/matter/IrisMatterPlacementLocation.java (74%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/object/matter/IrisMatterTranslate.java (86%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/platform/BukkitChunkGenerator.java (92%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/platform/DummyBiomeGrid.java (93%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/platform/DummyBiomeProvider.java (81%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/platform/DummyChunkGenerator.java (95%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/platform/PlatformChunkGenerator.java (83%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/platform/studio/EnginedStudioGenerator.java (83%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/platform/studio/StudioGenerator.java (80%) rename core/src/main/java/{com/volmit => art/arcane}/iris/engine/platform/studio/generators/BiomeBuffetGenerator.java (84%) create mode 100644 core/src/main/java/art/arcane/iris/util/common/board/BoardEntry.java create mode 100644 core/src/main/java/art/arcane/iris/util/common/board/BoardSettings.java create mode 100644 core/src/main/java/art/arcane/iris/util/common/board/ScoreDirection.java rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/cache/WorldCache2D.java (79%) create mode 100644 core/src/main/java/art/arcane/iris/util/common/data/B.java rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/data/BiomeMap.java (92%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/data/DataProvider.java (91%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/data/IrisCustomData.java (94%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/data/VectorMap.java (98%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/data/palette/BitStorage.java (99%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/data/palette/CountConsumer.java (95%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/data/palette/CrudeIncrementalIntIdentityHashBiMap.java (99%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/data/palette/GlobalPalette.java (97%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/data/palette/HashMapPalette.java (94%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/data/palette/IdMap.java (95%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/data/palette/IdMapper.java (98%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/data/palette/LinearPalette.java (98%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/data/palette/Mth.java (99%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/data/palette/Palette.java (95%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/data/palette/PaletteAccess.java (91%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/data/palette/PaletteResize.java (95%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/data/palette/PaletteType.java (94%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/data/palette/PalettedContainer.java (97%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/data/palette/QuartPos.java (96%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/data/registry/Attributes.java (81%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/data/registry/KeyedRegistry.java (97%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/data/registry/Materials.java (57%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/data/registry/Particles.java (75%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/data/registry/RegistryTypeAdapter.java (96%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/data/registry/RegistryUtil.java (95%) create mode 100644 core/src/main/java/art/arcane/iris/util/common/decree/DecreeContext.java create mode 100644 core/src/main/java/art/arcane/iris/util/common/decree/DecreeContextHandler.java rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/decree/DecreeExecutor.java (73%) create mode 100644 core/src/main/java/art/arcane/iris/util/common/decree/DecreeNode.java create mode 100644 core/src/main/java/art/arcane/iris/util/common/decree/DecreeParameter.java create mode 100644 core/src/main/java/art/arcane/iris/util/common/decree/DecreeParameterHandler.java rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/decree/DecreeSystem.java (61%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/decree/context/BiomeContextHandler.java (84%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/decree/context/DimensionContextHandler.java (84%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/decree/context/GeneratorContextHandler.java (83%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/decree/context/RegionContextHandler.java (84%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/decree/context/VectorContextHandler.java (85%) create mode 100644 core/src/main/java/art/arcane/iris/util/common/decree/context/WorldContextHandler.java rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/decree/handlers/BiomeHandler.java (86%) create mode 100644 core/src/main/java/art/arcane/iris/util/common/decree/handlers/BlockVectorHandler.java create mode 100644 core/src/main/java/art/arcane/iris/util/common/decree/handlers/BooleanHandler.java create mode 100644 core/src/main/java/art/arcane/iris/util/common/decree/handlers/ByteHandler.java rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/decree/handlers/CaveHandler.java (86%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/decree/handlers/DataVersionHandler.java (76%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/decree/handlers/DimensionHandler.java (82%) create mode 100644 core/src/main/java/art/arcane/iris/util/common/decree/handlers/DoubleHandler.java rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/decree/handlers/EntityHandler.java (86%) create mode 100644 core/src/main/java/art/arcane/iris/util/common/decree/handlers/FloatHandler.java rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/decree/handlers/GeneratorHandler.java (86%) create mode 100644 core/src/main/java/art/arcane/iris/util/common/decree/handlers/IntegerHandler.java rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/decree/handlers/JigsawPieceHandler.java (86%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/decree/handlers/JigsawPoolHandler.java (86%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/decree/handlers/JigsawStructureHandler.java (86%) create mode 100644 core/src/main/java/art/arcane/iris/util/common/decree/handlers/LongHandler.java rename core/src/main/java/{com/volmit/iris/util/board/BoardProvider.java => art/arcane/iris/util/common/decree/handlers/PlayerHandler.java} (73%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/decree/handlers/RegionHandler.java (86%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/decree/handlers/ScriptHandler.java (86%) create mode 100644 core/src/main/java/art/arcane/iris/util/common/decree/handlers/ShortHandler.java create mode 100644 core/src/main/java/art/arcane/iris/util/common/decree/handlers/StringHandler.java create mode 100644 core/src/main/java/art/arcane/iris/util/common/decree/handlers/VectorHandler.java create mode 100644 core/src/main/java/art/arcane/iris/util/common/decree/handlers/WorldHandler.java create mode 100644 core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/DummyHandler.java rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/decree/specialhandlers/NullableDimensionHandler.java (85%) create mode 100644 core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/NullablePlayerHandler.java rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/decree/specialhandlers/ObjectHandler.java (88%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/decree/specialhandlers/RegistrantHandler.java (85%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/decree/virtual/VirtualDecreeCommand.java (96%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/format/C.java (99%) create mode 100644 core/src/main/java/art/arcane/iris/util/common/inventorygui/ElementEvent.java rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/inventorygui/UIStaticDecorator.java (68%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/inventorygui/UIVoidDecorator.java (76%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/inventorygui/Window.java (55%) create mode 100644 core/src/main/java/art/arcane/iris/util/common/inventorygui/WindowResolution.java rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/io/ReactiveFolder.java (94%) create mode 100644 core/src/main/java/art/arcane/iris/util/common/mantle/Mantle.java create mode 100644 core/src/main/java/art/arcane/iris/util/common/mantle/MantleChunk.java create mode 100644 core/src/main/java/art/arcane/iris/util/common/mantle/TectonicPlate.java create mode 100644 core/src/main/java/art/arcane/iris/util/common/mantle/io/IOWorker.java rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/math/AxisAlignedBB.java (94%) create mode 100644 core/src/main/java/art/arcane/iris/util/common/math/Direction.java rename core/src/main/java/{com/volmit/iris/util/nbt/tag/EndTag.java => art/arcane/iris/util/common/math/Position2.java} (55%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/math/RNGV2.java (99%) create mode 100644 core/src/main/java/art/arcane/iris/util/common/math/Spiral.java rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/math/Vector3i.java (93%) create mode 100644 core/src/main/java/art/arcane/iris/util/common/math/VectorMath.java rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/misc/Bindings.java (88%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/misc/ServerProperties.java (98%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/misc/SlimJar.java (96%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/misc/getHardware.java (97%) create mode 100644 core/src/main/java/art/arcane/iris/util/common/nbt/mca/Chunk.java create mode 100644 core/src/main/java/art/arcane/iris/util/common/nbt/mca/MCAFile.java rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/nbt/mca/MCAUtil.java (90%) create mode 100644 core/src/main/java/art/arcane/iris/util/common/nbt/mca/NBTWorld.java rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/nbt/mca/Section.java (63%) create mode 100644 core/src/main/java/art/arcane/iris/util/common/parallel/BurstExecutor.java rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/parallel/BurstedHunk.java (79%) create mode 100644 core/src/main/java/art/arcane/iris/util/common/parallel/GridLock.java create mode 100644 core/src/main/java/art/arcane/iris/util/common/parallel/HyperLock.java create mode 100644 core/src/main/java/art/arcane/iris/util/common/parallel/MultiBurst.java create mode 100644 core/src/main/java/art/arcane/iris/util/common/parallel/NOOPGridLock.java create mode 100644 core/src/main/java/art/arcane/iris/util/common/parallel/StreamUtils.java create mode 100644 core/src/main/java/art/arcane/iris/util/common/parallel/SyncExecutor.java rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/plugin/Chunks.java (97%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/plugin/Command.java (93%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/plugin/CommandDummy.java (98%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/plugin/Control.java (96%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/plugin/Controller.java (96%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/plugin/ICommand.java (95%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/plugin/IController.java (96%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/plugin/Instance.java (96%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/plugin/IrisService.java (93%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/plugin/MortarCommand.java (96%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/plugin/MortarPermission.java (96%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/plugin/Permission.java (96%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/plugin/PluginRegistry.java (92%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/plugin/PluginRegistryGroup.java (92%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/plugin/RouterCommand.java (97%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/plugin/VirtualCommand.java (95%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/plugin/VolmitPlugin.java (97%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/plugin/VolmitSender.java (97%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/plugin/chunk/ChunkTickets.java (95%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/plugin/chunk/TicketHolder.java (87%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/reflect/KeyedType.java (89%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/reflect/OldEnum.java (98%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/reflect/W.java (81%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/reflect/WrappedField.java (92%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/reflect/WrappedReturningMethod.java (92%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/scheduling/J.java (78%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/scheduling/jobs/DownloadJob.java (94%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/scheduling/jobs/Job.java (88%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/scheduling/jobs/JobCollection.java (94%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/scheduling/jobs/ParallelQueueJob.java (86%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/scheduling/jobs/ParallelRadiusJob.java (94%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/scheduling/jobs/QueueJob.java (95%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/common}/scheduling/jobs/SingleJob.java (96%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/agent/Agent.java (92%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/context/IrisContext.java (91%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/hunk/Hunk.java (67%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/hunk/HunkFace.java (51%) create mode 100644 core/src/main/java/art/arcane/iris/util/project/hunk/SharedHunkAdapter.java rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/hunk/storage/ArrayHunk.java (92%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/hunk/storage/AtomicDoubleHunk.java (95%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/hunk/storage/AtomicHunk.java (95%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/hunk/storage/AtomicIntegerHunk.java (95%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/hunk/storage/AtomicLongHunk.java (95%) create mode 100644 core/src/main/java/art/arcane/iris/util/project/hunk/storage/PaletteOrHunk.java rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/hunk/storage/StorageHunk.java (94%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/hunk/storage/SynchronizedArrayHunk.java (95%) create mode 100644 core/src/main/java/art/arcane/iris/util/project/hunk/view/BiomeGridHunkHolder.java create mode 100644 core/src/main/java/art/arcane/iris/util/project/hunk/view/BiomeGridHunkView.java rename core/src/main/java/{com/volmit/iris/util/board/BoardSettings.java => art/arcane/iris/util/project/hunk/view/ChunkBiomeHunkView.java} (55%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/hunk/view/ChunkDataHunkHolder.java (95%) create mode 100644 core/src/main/java/art/arcane/iris/util/project/hunk/view/ChunkDataHunkView.java rename core/src/main/java/{com/volmit/iris/util/api/APIAwareBlock.java => art/arcane/iris/util/project/hunk/view/ChunkHunkView.java} (55%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/interpolation/InterpolationMethod.java (98%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/interpolation/InterpolationMethod3D.java (93%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/interpolation/InterpolationType.java (95%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/interpolation/IrisInterpolation.java (98%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/IrisMatter.java (89%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/Matter.java (96%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/MatterBiomeInject.java (96%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/MatterEntityGroup.java (86%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/MatterHeader.java (94%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/MatterPalette.java (91%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/MatterPlacer.java (95%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/MatterSlice.java (91%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/MatterStructurePOI.java (94%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/Sliced.java (96%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/TileWrapper.java (91%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/WorldMatter.java (92%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/slices/BiomeInjectMatter.java (92%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/slices/BlockMatter.java (90%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/slices/BooleanMatter.java (91%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/slices/CavernMatter.java (91%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/slices/CompoundMatter.java (88%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/slices/EntityMatter.java (89%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/slices/IdentifierMatter.java (78%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/slices/IntMatter.java (89%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/slices/JigsawPieceMatter.java (79%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/slices/JigsawStructureMatter.java (80%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/slices/JigsawStructuresMatter.java (80%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/slices/LongMatter.java (88%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/slices/MarkerMatter.java (88%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/slices/NBTMatter.java (88%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/slices/RawMatter.java (81%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/slices/RegistryMatter.java (88%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/slices/SpawnerMatter.java (88%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/slices/StringMatter.java (91%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/slices/StructurePOIMatter.java (81%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/slices/TileMatter.java (88%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/slices/UpdateMatter.java (87%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/slices/container/JigsawPieceContainer.java (75%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/slices/container/JigsawStructureContainer.java (76%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/slices/container/JigsawStructuresContainer.java (84%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/matter/slices/container/RegistrantContainer.java (74%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/noise/CNG.java (95%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/noise/CNGFactory.java (91%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/noise/CachedNoise.java (97%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/noise/CachedNoiseMap.java (90%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/noise/CellGenerator.java (97%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/noise/CellHeightNoise.java (93%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/noise/CellularNoise.java (95%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/noise/CloverNoise.java (99%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/noise/CubicNoise.java (94%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/noise/ExpressionNoise.java (91%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/noise/FastNoise.java (99%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/noise/FastNoiseDouble.java (99%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/noise/FlatNoise.java (96%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/noise/FractalBillowPerlinNoise.java (91%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/noise/FractalBillowSimplexNoise.java (91%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/noise/FractalCubicNoise.java (91%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/noise/FractalFBMSimplexNoise.java (91%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/noise/FractalRigidMultiSimplexNoise.java (91%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/noise/GlobNoise.java (95%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/noise/ImageNoise.java (91%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/noise/InterpolatedNoise.java (87%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/noise/NoiseFactory.java (95%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/noise/NoiseGenerator.java (89%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/noise/NoiseType.java (97%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/noise/OctaveNoise.java (95%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/noise/OffsetNoiseGenerator.java (92%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/noise/PerlinNoise.java (97%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/noise/RarityCellGenerator.java (92%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/noise/SimplexNoise.java (96%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/noise/VascularNoise.java (93%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/noise/WhiteNoise.java (95%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/profile/LoadBalancer.java (92%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/profile/MsptTimings.java (92%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/sentry/Attachments.java (92%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/sentry/IrisLogger.java (95%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/sentry/ServerID.java (95%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/BasicStream.java (94%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/ProceduralStream.java (94%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/arithmetic/AddingStream.java (87%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/arithmetic/ClampedStream.java (91%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/arithmetic/CoordinateBitShiftLeftStream.java (91%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/arithmetic/CoordinateBitShiftRightStream.java (91%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/arithmetic/DividingStream.java (88%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/arithmetic/FittedStream.java (92%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/arithmetic/MaxingStream.java (87%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/arithmetic/MinningStream.java (87%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/arithmetic/ModuloStream.java (87%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/arithmetic/MultiplyingStream.java (87%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/arithmetic/OffsetStream.java (91%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/arithmetic/RadialStream.java (91%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/arithmetic/RoundingDoubleStream.java (90%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/arithmetic/SlopeStream.java (92%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/arithmetic/SubtractingStream.java (87%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/arithmetic/ZoomStream.java (91%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/convert/AwareConversionStream2D.java (89%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/convert/AwareConversionStream3D.java (89%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/convert/CachedConversionStream.java (90%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/convert/ConversionStream.java (92%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/convert/ForceDoubleStream.java (90%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/convert/RoundingStream.java (91%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/convert/SelectionStream.java (92%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/convert/SignificanceStream.java (88%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/convert/To3DStream.java (90%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/interpolation/BiHermiteStream.java (93%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/interpolation/BiStarcastStream.java (92%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/interpolation/BicubicStream.java (93%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/interpolation/BilinearStream.java (91%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/interpolation/Interpolated.java (89%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/interpolation/InterpolatingStream.java (84%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/interpolation/Interpolator.java (90%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/interpolation/InterpolatorFactory.java (95%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/interpolation/TriHermiteStream.java (96%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/interpolation/TriStarcastStream.java (93%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/interpolation/TricubicStream.java (96%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/interpolation/TrilinearStream.java (92%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/sources/CNGStream.java (91%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/sources/FunctionStream.java (85%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/utility/CachedStream2D.java (83%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/utility/CachedStream3D.java (83%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/utility/ContextInjectingStream.java (80%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/utility/NullSafeStream.java (91%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/utility/ProfiledStream.java (92%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/utility/SemaphoreStream.java (92%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/utility/SynchronizedStream.java (90%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/stream/utility/WasteDetector.java (89%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/uniques/U.java (87%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/uniques/UBufferedImage.java (96%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/uniques/UFeature.java (90%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/uniques/UFeatureMeta.java (91%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/uniques/UImage.java (88%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/uniques/UMeta.java (90%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/uniques/UniqueRenderer.java (91%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/uniques/features/UFInterpolator.java (83%) create mode 100644 core/src/main/java/art/arcane/iris/util/project/uniques/features/UFNOOP.java rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/uniques/features/UFWarpedBackground.java (76%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/uniques/features/UFWarpedCircle.java (85%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/uniques/features/UFWarpedDisc.java (82%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/uniques/features/UFWarpedDots.java (87%) rename core/src/main/java/{com/volmit/iris/util => art/arcane/iris/util/project}/uniques/features/UFWarpedLines.java (87%) delete mode 100644 core/src/main/java/com/volmit/iris/core/scripting/func/BiomeLookup.java delete mode 100644 core/src/main/java/com/volmit/iris/util/api/APIWorldBlock.java delete mode 100644 core/src/main/java/com/volmit/iris/util/atomics/AtomicAverage.java delete mode 100644 core/src/main/java/com/volmit/iris/util/atomics/AtomicRollingSequence.java delete mode 100644 core/src/main/java/com/volmit/iris/util/board/Board.java delete mode 100644 core/src/main/java/com/volmit/iris/util/board/BoardEntry.java delete mode 100644 core/src/main/java/com/volmit/iris/util/board/BoardManager.java delete mode 100644 core/src/main/java/com/volmit/iris/util/board/BoardUpdateTask.java delete mode 100644 core/src/main/java/com/volmit/iris/util/board/ScoreDirection.java delete mode 100644 core/src/main/java/com/volmit/iris/util/cache/ArrayCache.java delete mode 100644 core/src/main/java/com/volmit/iris/util/cache/ByteBitCache.java delete mode 100644 core/src/main/java/com/volmit/iris/util/cache/ByteCache.java delete mode 100644 core/src/main/java/com/volmit/iris/util/cache/ChunkCache2D.java delete mode 100644 core/src/main/java/com/volmit/iris/util/cache/DataBitCache.java delete mode 100644 core/src/main/java/com/volmit/iris/util/cache/FloatBitCache.java delete mode 100644 core/src/main/java/com/volmit/iris/util/cache/FloatCache.java delete mode 100644 core/src/main/java/com/volmit/iris/util/cache/IntBitCache.java delete mode 100644 core/src/main/java/com/volmit/iris/util/cache/IntCache.java delete mode 100644 core/src/main/java/com/volmit/iris/util/cache/ShortBitCache.java delete mode 100644 core/src/main/java/com/volmit/iris/util/cache/ShortCache.java delete mode 100644 core/src/main/java/com/volmit/iris/util/cache/UByteBitCache.java delete mode 100644 core/src/main/java/com/volmit/iris/util/cache/UByteCache.java delete mode 100644 core/src/main/java/com/volmit/iris/util/collection/GBiset.java delete mode 100644 core/src/main/java/com/volmit/iris/util/collection/GListAdapter.java delete mode 100644 core/src/main/java/com/volmit/iris/util/collection/KList.java delete mode 100644 core/src/main/java/com/volmit/iris/util/collection/KMap.java delete mode 100644 core/src/main/java/com/volmit/iris/util/collection/KSet.java delete mode 100644 core/src/main/java/com/volmit/iris/util/collection/KeyPair.java delete mode 100644 core/src/main/java/com/volmit/iris/util/collection/StateList.java delete mode 100644 core/src/main/java/com/volmit/iris/util/data/B.java delete mode 100644 core/src/main/java/com/volmit/iris/util/data/ChunkCache.java delete mode 100644 core/src/main/java/com/volmit/iris/util/data/ComplexCache.java delete mode 100644 core/src/main/java/com/volmit/iris/util/data/Cuboid.java delete mode 100644 core/src/main/java/com/volmit/iris/util/data/CuboidException.java delete mode 100644 core/src/main/java/com/volmit/iris/util/data/DUTF.java delete mode 100644 core/src/main/java/com/volmit/iris/util/data/DataPalette.java delete mode 100644 core/src/main/java/com/volmit/iris/util/data/Dimension.java delete mode 100644 core/src/main/java/com/volmit/iris/util/data/DimensionFace.java delete mode 100644 core/src/main/java/com/volmit/iris/util/data/DoubleArrayUtils.java delete mode 100644 core/src/main/java/com/volmit/iris/util/data/Heafty.java delete mode 100644 core/src/main/java/com/volmit/iris/util/data/HeightMap.java delete mode 100644 core/src/main/java/com/volmit/iris/util/data/IOAdapter.java delete mode 100644 core/src/main/java/com/volmit/iris/util/data/InvertedBiomeGrid.java delete mode 100644 core/src/main/java/com/volmit/iris/util/data/IrisBiomeStorage.java delete mode 100644 core/src/main/java/com/volmit/iris/util/data/KCache.java delete mode 100644 core/src/main/java/com/volmit/iris/util/data/MaterialBlock.java delete mode 100644 core/src/main/java/com/volmit/iris/util/data/NibbleArray.java delete mode 100644 core/src/main/java/com/volmit/iris/util/data/NibbleDataPalette.java delete mode 100644 core/src/main/java/com/volmit/iris/util/data/Recycler.java delete mode 100644 core/src/main/java/com/volmit/iris/util/data/Shrinkwrap.java delete mode 100644 core/src/main/java/com/volmit/iris/util/data/VanillaBiomeMap.java delete mode 100644 core/src/main/java/com/volmit/iris/util/data/Varint.java delete mode 100644 core/src/main/java/com/volmit/iris/util/data/WeightMap.java delete mode 100644 core/src/main/java/com/volmit/iris/util/data/WeightedRandom.java delete mode 100644 core/src/main/java/com/volmit/iris/util/data/Writable.java delete mode 100644 core/src/main/java/com/volmit/iris/util/decree/DecreeContext.java delete mode 100644 core/src/main/java/com/volmit/iris/util/decree/DecreeContextHandler.java delete mode 100644 core/src/main/java/com/volmit/iris/util/decree/DecreeNode.java delete mode 100644 core/src/main/java/com/volmit/iris/util/decree/DecreeOrigin.java delete mode 100644 core/src/main/java/com/volmit/iris/util/decree/DecreeParameter.java delete mode 100644 core/src/main/java/com/volmit/iris/util/decree/DecreeParameterHandler.java delete mode 100644 core/src/main/java/com/volmit/iris/util/decree/annotations/Decree.java delete mode 100644 core/src/main/java/com/volmit/iris/util/decree/annotations/Param.java delete mode 100644 core/src/main/java/com/volmit/iris/util/decree/context/WorldContextHandler.java delete mode 100644 core/src/main/java/com/volmit/iris/util/decree/exceptions/DecreeParsingException.java delete mode 100644 core/src/main/java/com/volmit/iris/util/decree/handlers/BlockVectorHandler.java delete mode 100644 core/src/main/java/com/volmit/iris/util/decree/handlers/BooleanHandler.java delete mode 100644 core/src/main/java/com/volmit/iris/util/decree/handlers/ByteHandler.java delete mode 100644 core/src/main/java/com/volmit/iris/util/decree/handlers/DoubleHandler.java delete mode 100644 core/src/main/java/com/volmit/iris/util/decree/handlers/FloatHandler.java delete mode 100644 core/src/main/java/com/volmit/iris/util/decree/handlers/IntegerHandler.java delete mode 100644 core/src/main/java/com/volmit/iris/util/decree/handlers/LongHandler.java delete mode 100644 core/src/main/java/com/volmit/iris/util/decree/handlers/PlayerHandler.java delete mode 100644 core/src/main/java/com/volmit/iris/util/decree/handlers/ShortHandler.java delete mode 100644 core/src/main/java/com/volmit/iris/util/decree/handlers/StringHandler.java delete mode 100644 core/src/main/java/com/volmit/iris/util/decree/handlers/VectorHandler.java delete mode 100644 core/src/main/java/com/volmit/iris/util/decree/handlers/WorldHandler.java delete mode 100644 core/src/main/java/com/volmit/iris/util/decree/specialhandlers/DummyHandler.java delete mode 100644 core/src/main/java/com/volmit/iris/util/decree/specialhandlers/NullablePlayerHandler.java delete mode 100644 core/src/main/java/com/volmit/iris/util/documentation/BlockCoordinates.java delete mode 100644 core/src/main/java/com/volmit/iris/util/documentation/ChunkCoordinates.java delete mode 100644 core/src/main/java/com/volmit/iris/util/documentation/ChunkRelativeBlockCoordinates.java delete mode 100644 core/src/main/java/com/volmit/iris/util/documentation/Exclusive.java delete mode 100644 core/src/main/java/com/volmit/iris/util/documentation/Inclusive.java delete mode 100644 core/src/main/java/com/volmit/iris/util/documentation/RegionCoordinates.java delete mode 100644 core/src/main/java/com/volmit/iris/util/exceptions/IrisException.java delete mode 100644 core/src/main/java/com/volmit/iris/util/exceptions/MissingDimensionException.java delete mode 100644 core/src/main/java/com/volmit/iris/util/format/Form.java delete mode 100644 core/src/main/java/com/volmit/iris/util/format/MemoryMonitor.java delete mode 100644 core/src/main/java/com/volmit/iris/util/function/Consumer2.java delete mode 100644 core/src/main/java/com/volmit/iris/util/function/Consumer2IO.java delete mode 100644 core/src/main/java/com/volmit/iris/util/function/Consumer3.java delete mode 100644 core/src/main/java/com/volmit/iris/util/function/Consumer4.java delete mode 100644 core/src/main/java/com/volmit/iris/util/function/Consumer4IO.java delete mode 100644 core/src/main/java/com/volmit/iris/util/function/Consumer5.java delete mode 100644 core/src/main/java/com/volmit/iris/util/function/Consumer6.java delete mode 100644 core/src/main/java/com/volmit/iris/util/function/Consumer8.java delete mode 100644 core/src/main/java/com/volmit/iris/util/function/Function2.java delete mode 100644 core/src/main/java/com/volmit/iris/util/function/Function3.java delete mode 100644 core/src/main/java/com/volmit/iris/util/function/Function4.java delete mode 100644 core/src/main/java/com/volmit/iris/util/function/NastyFunction.java delete mode 100644 core/src/main/java/com/volmit/iris/util/function/NastyFuture.java delete mode 100644 core/src/main/java/com/volmit/iris/util/function/NastyRunnable.java delete mode 100644 core/src/main/java/com/volmit/iris/util/function/NastySupplier.java delete mode 100644 core/src/main/java/com/volmit/iris/util/function/NoiseInjector.java delete mode 100644 core/src/main/java/com/volmit/iris/util/function/NoiseProvider.java delete mode 100644 core/src/main/java/com/volmit/iris/util/function/NoiseProvider3.java delete mode 100644 core/src/main/java/com/volmit/iris/util/function/Supplier2.java delete mode 100644 core/src/main/java/com/volmit/iris/util/function/Supplier3.java delete mode 100644 core/src/main/java/com/volmit/iris/util/function/Supplier3R.java delete mode 100644 core/src/main/java/com/volmit/iris/util/hunk/HunkFactory.java delete mode 100644 core/src/main/java/com/volmit/iris/util/hunk/bits/DataBits.java delete mode 100644 core/src/main/java/com/volmit/iris/util/hunk/bits/DataContainer.java delete mode 100644 core/src/main/java/com/volmit/iris/util/hunk/bits/HashPalette.java delete mode 100644 core/src/main/java/com/volmit/iris/util/hunk/bits/LinearPalette.java delete mode 100644 core/src/main/java/com/volmit/iris/util/hunk/bits/Palette.java delete mode 100644 core/src/main/java/com/volmit/iris/util/hunk/bits/Writable.java delete mode 100644 core/src/main/java/com/volmit/iris/util/hunk/storage/MappedHunk.java delete mode 100644 core/src/main/java/com/volmit/iris/util/hunk/storage/MappedSyncHunk.java delete mode 100644 core/src/main/java/com/volmit/iris/util/hunk/storage/PaletteHunk.java delete mode 100644 core/src/main/java/com/volmit/iris/util/hunk/storage/PaletteOrHunk.java delete mode 100644 core/src/main/java/com/volmit/iris/util/hunk/view/BiomeGridHunkHolder.java delete mode 100644 core/src/main/java/com/volmit/iris/util/hunk/view/BiomeGridHunkView.java delete mode 100644 core/src/main/java/com/volmit/iris/util/hunk/view/ChunkBiomeHunkView.java delete mode 100644 core/src/main/java/com/volmit/iris/util/hunk/view/ChunkDataHunkView.java delete mode 100644 core/src/main/java/com/volmit/iris/util/hunk/view/ChunkHunkView.java delete mode 100644 core/src/main/java/com/volmit/iris/util/hunk/view/DriftHunkView.java delete mode 100644 core/src/main/java/com/volmit/iris/util/hunk/view/FringedHunkView.java delete mode 100644 core/src/main/java/com/volmit/iris/util/hunk/view/FunctionalHunkView.java delete mode 100644 core/src/main/java/com/volmit/iris/util/hunk/view/HunkView.java delete mode 100644 core/src/main/java/com/volmit/iris/util/hunk/view/InvertedHunkView.java delete mode 100644 core/src/main/java/com/volmit/iris/util/hunk/view/ListeningHunk.java delete mode 100644 core/src/main/java/com/volmit/iris/util/hunk/view/ReadOnlyHunk.java delete mode 100644 core/src/main/java/com/volmit/iris/util/hunk/view/RotatedXHunkView.java delete mode 100644 core/src/main/java/com/volmit/iris/util/hunk/view/RotatedYHunkView.java delete mode 100644 core/src/main/java/com/volmit/iris/util/hunk/view/RotatedZHunkView.java delete mode 100644 core/src/main/java/com/volmit/iris/util/hunk/view/SynchronizedHunkView.java delete mode 100644 core/src/main/java/com/volmit/iris/util/hunk/view/WriteTrackHunk.java delete mode 100644 core/src/main/java/com/volmit/iris/util/interpolation/CompiledStarcast.java delete mode 100644 core/src/main/java/com/volmit/iris/util/interpolation/Starcast.java delete mode 100644 core/src/main/java/com/volmit/iris/util/inventorygui/Element.java delete mode 100644 core/src/main/java/com/volmit/iris/util/inventorygui/ElementEvent.java delete mode 100644 core/src/main/java/com/volmit/iris/util/inventorygui/RandomColor.java delete mode 100644 core/src/main/java/com/volmit/iris/util/inventorygui/UIElement.java delete mode 100644 core/src/main/java/com/volmit/iris/util/inventorygui/UIWindow.java delete mode 100644 core/src/main/java/com/volmit/iris/util/inventorygui/WindowDecorator.java delete mode 100644 core/src/main/java/com/volmit/iris/util/inventorygui/WindowResolution.java delete mode 100644 core/src/main/java/com/volmit/iris/util/io/Converter.java delete mode 100644 core/src/main/java/com/volmit/iris/util/io/CountingDataInputStream.java delete mode 100644 core/src/main/java/com/volmit/iris/util/io/CustomOutputStream.java delete mode 100644 core/src/main/java/com/volmit/iris/util/io/FileWatcher.java delete mode 100644 core/src/main/java/com/volmit/iris/util/io/FolderWatcher.java delete mode 100644 core/src/main/java/com/volmit/iris/util/io/IO.java delete mode 100644 core/src/main/java/com/volmit/iris/util/io/IORunnable.java delete mode 100644 core/src/main/java/com/volmit/iris/util/io/InstanceState.java delete mode 100644 core/src/main/java/com/volmit/iris/util/io/JarScanner.java delete mode 100644 core/src/main/java/com/volmit/iris/util/io/VoidOutputStream.java delete mode 100644 core/src/main/java/com/volmit/iris/util/json/HTTP.java delete mode 100644 core/src/main/java/com/volmit/iris/util/json/HTTPTokener.java delete mode 100644 core/src/main/java/com/volmit/iris/util/json/JSONArray.java delete mode 100644 core/src/main/java/com/volmit/iris/util/json/JSONException.java delete mode 100644 core/src/main/java/com/volmit/iris/util/json/JSONML.java delete mode 100644 core/src/main/java/com/volmit/iris/util/json/JSONObject.java delete mode 100644 core/src/main/java/com/volmit/iris/util/json/JSONString.java delete mode 100644 core/src/main/java/com/volmit/iris/util/json/JSONStringer.java delete mode 100644 core/src/main/java/com/volmit/iris/util/json/JSONTokener.java delete mode 100644 core/src/main/java/com/volmit/iris/util/json/JSONWriter.java delete mode 100644 core/src/main/java/com/volmit/iris/util/json/XML.java delete mode 100644 core/src/main/java/com/volmit/iris/util/json/XMLTokener.java delete mode 100644 core/src/main/java/com/volmit/iris/util/mantle/Mantle.java delete mode 100644 core/src/main/java/com/volmit/iris/util/mantle/MantleChunk.java delete mode 100644 core/src/main/java/com/volmit/iris/util/mantle/TectonicPlate.java delete mode 100644 core/src/main/java/com/volmit/iris/util/mantle/flag/CustomFlag.java delete mode 100644 core/src/main/java/com/volmit/iris/util/mantle/flag/MantleFlag.java delete mode 100644 core/src/main/java/com/volmit/iris/util/mantle/flag/MantleFlagAdapter.java delete mode 100644 core/src/main/java/com/volmit/iris/util/mantle/flag/ReservedFlag.java delete mode 100644 core/src/main/java/com/volmit/iris/util/mantle/io/DelegateStream.java delete mode 100644 core/src/main/java/com/volmit/iris/util/mantle/io/Holder.java delete mode 100644 core/src/main/java/com/volmit/iris/util/mantle/io/IOWorker.java delete mode 100644 core/src/main/java/com/volmit/iris/util/mantle/io/SynchronizedChannel.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/AlignedPoint.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/Average.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/BlockPosition.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/CDou.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/DOP.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/Direction.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/FinalInteger.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/INode.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/IrisMathHelper.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/KochanekBartelsInterpolation.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/M.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/MathHelper.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/PathInterpolation.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/Point3d.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/Point3f.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/Point4d.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/Point4f.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/Position2.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/RNG.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/RollingSequence.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/Spiral.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/Spiraled.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/Spiraler.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/Tuple2d.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/Tuple2f.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/Tuple3d.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/Tuple3f.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/Tuple4d.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/Tuple4f.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/VecMathUtil.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/Vector2d.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/Vector2f.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/Vector3d.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/Vector3f.java delete mode 100644 core/src/main/java/com/volmit/iris/util/math/VectorMath.java delete mode 100644 core/src/main/java/com/volmit/iris/util/matter/MatterCavern.java delete mode 100644 core/src/main/java/com/volmit/iris/util/matter/MatterEntity.java delete mode 100644 core/src/main/java/com/volmit/iris/util/matter/MatterFilter.java delete mode 100644 core/src/main/java/com/volmit/iris/util/matter/MatterFluidBody.java delete mode 100644 core/src/main/java/com/volmit/iris/util/matter/MatterMarker.java delete mode 100644 core/src/main/java/com/volmit/iris/util/matter/MatterReader.java delete mode 100644 core/src/main/java/com/volmit/iris/util/matter/MatterUpdate.java delete mode 100644 core/src/main/java/com/volmit/iris/util/matter/MatterWriter.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/io/NBTDeserializer.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/io/NBTInputStream.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/io/NBTOutputStream.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/io/NBTSerializer.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/io/NBTUtil.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/io/NamedTag.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/io/ParseException.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/io/SNBTDeserializer.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/io/SNBTParser.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/io/SNBTSerializer.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/io/SNBTUtil.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/io/SNBTWriter.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/io/StringPointer.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/mca/Chunk.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/mca/CompressionType.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/mca/ExceptionFunction.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/mca/LoadFlags.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/mca/MCAFile.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/mca/NBTWorld.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCABiomeContainer.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCABitStorage.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAChunkBiomeContainer.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCACountConsumer.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCACrudeIncrementalIntIdentityHashBiMap.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAGlobalPalette.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAHashMapPalette.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAIdMap.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAIdMapper.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCALinearPalette.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAMth.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPalette.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPaletteAccess.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPaletteResize.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPalettedContainer.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAQuartPos.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAWrappedPalettedContainer.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/tag/ArrayTag.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/tag/ByteArrayTag.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/tag/ByteTag.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/tag/CompoundTag.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/tag/DoubleTag.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/tag/FloatTag.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/tag/IntArrayTag.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/tag/IntTag.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/tag/ListTag.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/tag/LongArrayTag.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/tag/LongTag.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/tag/NonNullEntrySet.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/tag/NumberTag.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/tag/ShortTag.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/tag/StringTag.java delete mode 100644 core/src/main/java/com/volmit/iris/util/nbt/tag/Tag.java delete mode 100644 core/src/main/java/com/volmit/iris/util/network/DL.java delete mode 100644 core/src/main/java/com/volmit/iris/util/network/DownloadException.java delete mode 100644 core/src/main/java/com/volmit/iris/util/network/DownloadMonitor.java delete mode 100644 core/src/main/java/com/volmit/iris/util/network/MeteredInputStream.java delete mode 100644 core/src/main/java/com/volmit/iris/util/network/MeteredOutputStream.java delete mode 100644 core/src/main/java/com/volmit/iris/util/parallel/AtomicBooleanArray.java delete mode 100644 core/src/main/java/com/volmit/iris/util/parallel/BurstExecutor.java delete mode 100644 core/src/main/java/com/volmit/iris/util/parallel/GridLock.java delete mode 100644 core/src/main/java/com/volmit/iris/util/parallel/HyperLock.java delete mode 100644 core/src/main/java/com/volmit/iris/util/parallel/MultiBurst.java delete mode 100644 core/src/main/java/com/volmit/iris/util/parallel/NOOPGridLock.java delete mode 100644 core/src/main/java/com/volmit/iris/util/parallel/StreamUtils.java delete mode 100644 core/src/main/java/com/volmit/iris/util/parallel/SyncExecutor.java delete mode 100644 core/src/main/java/com/volmit/iris/util/plugin/CancellableTask.java delete mode 100644 core/src/main/java/com/volmit/iris/util/reflect/ShadeFix.java delete mode 100644 core/src/main/java/com/volmit/iris/util/reflect/V.java delete mode 100644 core/src/main/java/com/volmit/iris/util/reflect/Violator.java delete mode 100644 core/src/main/java/com/volmit/iris/util/scheduling/AR.java delete mode 100644 core/src/main/java/com/volmit/iris/util/scheduling/Callback.java delete mode 100644 core/src/main/java/com/volmit/iris/util/scheduling/ChronoLatch.java delete mode 100644 core/src/main/java/com/volmit/iris/util/scheduling/Contained.java delete mode 100644 core/src/main/java/com/volmit/iris/util/scheduling/GroupedExecutor.java delete mode 100644 core/src/main/java/com/volmit/iris/util/scheduling/IrisLock.java delete mode 100644 core/src/main/java/com/volmit/iris/util/scheduling/Looper.java delete mode 100644 core/src/main/java/com/volmit/iris/util/scheduling/O.java delete mode 100644 core/src/main/java/com/volmit/iris/util/scheduling/Observable.java delete mode 100644 core/src/main/java/com/volmit/iris/util/scheduling/Observer.java delete mode 100644 core/src/main/java/com/volmit/iris/util/scheduling/PrecisionStopwatch.java delete mode 100644 core/src/main/java/com/volmit/iris/util/scheduling/Queue.java delete mode 100644 core/src/main/java/com/volmit/iris/util/scheduling/QueueExecutor.java delete mode 100644 core/src/main/java/com/volmit/iris/util/scheduling/S.java delete mode 100644 core/src/main/java/com/volmit/iris/util/scheduling/SR.java delete mode 100644 core/src/main/java/com/volmit/iris/util/scheduling/ShurikenQueue.java delete mode 100644 core/src/main/java/com/volmit/iris/util/scheduling/Switch.java delete mode 100644 core/src/main/java/com/volmit/iris/util/scheduling/TaskExecutor.java delete mode 100644 core/src/main/java/com/volmit/iris/util/scheduling/ThreadMonitor.java delete mode 100644 core/src/main/java/com/volmit/iris/util/scheduling/Wrapper.java delete mode 100644 core/src/main/java/com/volmit/iris/util/stream/ArraySignificance.java delete mode 100644 core/src/main/java/com/volmit/iris/util/stream/BasicLayer.java delete mode 100644 core/src/main/java/com/volmit/iris/util/stream/ProceduralLayer.java delete mode 100644 core/src/main/java/com/volmit/iris/util/stream/Significance.java delete mode 100644 core/src/main/java/com/volmit/iris/util/uniques/features/UFNOOP.java rename core/src/main/kotlin/{com/volmit => art/arcane}/iris/core/pregenerator/cache/PregenCacheImpl.kt (96%) rename core/src/main/kotlin/{com/volmit => art/arcane}/iris/core/safeguard/IrisSafeguard.kt (92%) rename core/src/main/kotlin/{com/volmit => art/arcane}/iris/core/safeguard/Mode.kt (92%) rename core/src/main/kotlin/{com/volmit => art/arcane}/iris/core/safeguard/task/Task.kt (86%) rename core/src/main/kotlin/{com/volmit => art/arcane}/iris/core/safeguard/task/Tasks.kt (89%) rename core/src/main/kotlin/{com/volmit => art/arcane}/iris/core/safeguard/task/ValueWithDiagnostics.kt (94%) rename core/src/main/kotlin/{com/volmit => art/arcane}/iris/core/scripting/kotlin/base/ChunkUpdateScript.kt (81%) rename core/src/main/kotlin/{com/volmit => art/arcane}/iris/core/scripting/kotlin/base/DataScript.kt (84%) rename core/src/main/kotlin/{com/volmit => art/arcane}/iris/core/scripting/kotlin/base/EngineScript.kt (73%) rename core/src/main/kotlin/{com/volmit => art/arcane}/iris/core/scripting/kotlin/base/MobSpawningScript.kt (91%) rename core/src/main/kotlin/{com/volmit => art/arcane}/iris/core/scripting/kotlin/base/NoiseScript.kt (84%) rename core/src/main/kotlin/{com/volmit => art/arcane}/iris/core/scripting/kotlin/base/PostMobSpawningScript.kt (92%) rename core/src/main/kotlin/{com/volmit => art/arcane}/iris/core/scripting/kotlin/base/PreprocessorScript.kt (77%) rename core/src/main/kotlin/{com/volmit => art/arcane}/iris/core/scripting/kotlin/base/SimpleScript.kt (78%) rename core/src/main/kotlin/{com/volmit => art/arcane}/iris/core/scripting/kotlin/environment/IrisExecutionEnvironment.kt (70%) rename core/src/main/kotlin/{com/volmit => art/arcane}/iris/core/scripting/kotlin/environment/IrisPackExecutionEnvironment.kt (67%) rename core/src/main/kotlin/{com/volmit => art/arcane}/iris/core/scripting/kotlin/environment/IrisSimpleExecutionEnvironment.kt (89%) rename core/src/main/kotlin/{com/volmit => art/arcane}/iris/core/scripting/kotlin/runner/CachedScript.kt (97%) rename core/src/main/kotlin/{com/volmit => art/arcane}/iris/core/scripting/kotlin/runner/Script.kt (81%) rename core/src/main/kotlin/{com/volmit => art/arcane}/iris/core/scripting/kotlin/runner/ScriptRunner.kt (95%) rename core/src/main/kotlin/{com/volmit => art/arcane}/iris/core/scripting/kotlin/runner/Utils.kt (98%) rename core/src/main/kotlin/{com/volmit => art/arcane}/iris/core/scripting/kotlin/runner/resolver/CompoundDependenciesResolver.kt (98%) rename core/src/main/kotlin/{com/volmit => art/arcane}/iris/core/scripting/kotlin/runner/resolver/DependenciesResolver.kt (75%) rename core/src/main/kotlin/{com/volmit => art/arcane}/iris/core/scripting/kotlin/runner/resolver/FileDependenciesResolver.kt (97%) rename core/src/main/kotlin/{com/volmit => art/arcane}/iris/core/scripting/kotlin/runner/resolver/LocalMavenDependenciesResolver.kt (97%) rename core/src/main/kotlin/{com/volmit => art/arcane}/iris/engine/mantle/MatterGenerator.kt (83%) create mode 100644 core/src/main/kotlin/art/arcane/iris/util/common/mantle/FlaggedChunk.kt rename core/src/main/kotlin/{com/volmit/iris/util => art/arcane/iris/util/project}/context/ChunkContext.kt (83%) rename core/src/main/kotlin/{com/volmit/iris/util => art/arcane/iris/util/project}/context/ChunkedDataCache.kt (89%) delete mode 100644 core/src/main/kotlin/com/volmit/iris/util/mantle/FlaggedChunk.kt rename nms/v1_20_R1/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_20_R1/CustomBiomeSource.java (94%) rename nms/v1_20_R1/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_20_R1/IrisChunkGenerator.java (96%) rename nms/v1_20_R1/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_20_R1/NMSBinding.java (96%) rename nms/v1_20_R2/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_20_R2/CustomBiomeSource.java (94%) rename nms/v1_20_R2/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_20_R2/IrisChunkGenerator.java (96%) rename nms/v1_20_R2/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_20_R2/NMSBinding.java (96%) rename nms/v1_20_R3/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_20_R3/CustomBiomeSource.java (94%) rename nms/v1_20_R3/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_20_R3/IrisChunkGenerator.java (96%) rename nms/v1_20_R3/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_20_R3/NMSBinding.java (96%) rename nms/v1_20_R4/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_20_R4/CustomBiomeSource.java (94%) rename nms/v1_20_R4/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_20_R4/IrisChunkGenerator.java (96%) rename nms/v1_20_R4/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_20_R4/NMSBinding.java (96%) rename nms/v1_21_R1/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_21_R1/CustomBiomeSource.java (94%) rename nms/v1_21_R1/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_21_R1/IrisChunkGenerator.java (96%) rename nms/v1_21_R1/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_21_R1/NMSBinding.java (96%) rename nms/v1_21_R2/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_21_R2/CustomBiomeSource.java (94%) rename nms/v1_21_R2/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_21_R2/IrisChunkGenerator.java (96%) rename nms/v1_21_R2/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_21_R2/NMSBinding.java (96%) rename nms/v1_21_R3/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_21_R3/CustomBiomeSource.java (94%) rename nms/v1_21_R3/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_21_R3/IrisChunkGenerator.java (96%) rename nms/v1_21_R3/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_21_R3/NMSBinding.java (96%) rename nms/v1_21_R4/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_21_R4/CustomBiomeSource.java (94%) rename nms/v1_21_R4/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_21_R4/IrisChunkGenerator.java (96%) rename nms/v1_21_R4/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_21_R4/NMSBinding.java (96%) rename nms/v1_21_R5/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_21_R5/CustomBiomeSource.java (94%) rename nms/v1_21_R5/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_21_R5/IrisChunkGenerator.java (96%) rename nms/v1_21_R5/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_21_R5/NMSBinding.java (96%) rename nms/v1_21_R6/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_21_R6/CustomBiomeSource.java (94%) rename nms/v1_21_R6/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_21_R6/IrisChunkGenerator.java (96%) rename nms/v1_21_R6/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_21_R6/NMSBinding.java (96%) rename nms/v1_21_R7/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_21_R7/CustomBiomeSource.java (94%) rename nms/v1_21_R7/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_21_R7/IrisChunkGenerator.java (96%) rename nms/v1_21_R7/src/main/java/{com/volmit => art/arcane}/iris/core/nms/v1_21_R7/NMSBinding.java (96%) diff --git a/.gitignore b/.gitignore index 203047ef2..77cb82cbf 100644 --- a/.gitignore +++ b/.gitignore @@ -10,4 +10,4 @@ libs/ collection/ -/core/src/main/java/com/volmit/iris/util/uniques/ +/core/src/main/java/art/arcane/iris/util/uniques/ diff --git a/README.md b/README.md index cad6bacba..681330552 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ Consider supporting our development by buying Iris on spigot! We work hard to ma Everyone needs a tool-belt. ```java -package com.volmit.iris.core.tools; +package art.arcane.iris.core.tools; // Get IrisDataManager from a world IrisToolbelt.access(anyWorld).getCompound().getData(); diff --git a/build.gradle.kts b/build.gradle.kts index 216677601..9158c5c78 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -33,7 +33,7 @@ plugins { alias(libs.plugins.runPaper) } -group = "com.volmit" +group = "art.arcane" version = "3.9.1-1.20.1-1.21.11" apply() diff --git a/buildSrc/src/main/kotlin/NMSBinding.kt b/buildSrc/src/main/kotlin/NMSBinding.kt index 937f98dde..14a7c3cca 100644 --- a/buildSrc/src/main/kotlin/NMSBinding.kt +++ b/buildSrc/src/main/kotlin/NMSBinding.kt @@ -179,4 +179,4 @@ fun Project.nmsBinding(action: Config.() -> Unit) { plugins.apply(NMSBinding::class.java) } -private inline fun ObjectFactory.named(name: String): T = named(T::class.java, name) \ No newline at end of file +private inline fun ObjectFactory.named(name: String): T = named(T::class.java, name) diff --git a/core/agent/build.gradle.kts b/core/agent/build.gradle.kts index a0d8024df..9d6c9cb96 100644 --- a/core/agent/build.gradle.kts +++ b/core/agent/build.gradle.kts @@ -4,8 +4,8 @@ plugins { tasks.jar { manifest.attributes( - "Agent-Class" to "com.volmit.iris.util.agent.Installer", - "Premain-Class" to "com.volmit.iris.util.agent.Installer", + "Agent-Class" to "art.arcane.iris.util.agent.Installer", + "Premain-Class" to "art.arcane.iris.util.agent.Installer", "Can-Redefine-Classes" to true, "Can-Retransform-Classes" to true ) diff --git a/core/agent/src/main/java/com/volmit/iris/util/agent/Installer.java b/core/agent/src/main/java/art/arcane/iris/util/agent/Installer.java similarity index 96% rename from core/agent/src/main/java/com/volmit/iris/util/agent/Installer.java rename to core/agent/src/main/java/art/arcane/iris/util/agent/Installer.java index 3c68fd579..4d9b50536 100644 --- a/core/agent/src/main/java/com/volmit/iris/util/agent/Installer.java +++ b/core/agent/src/main/java/art/arcane/iris/util/agent/Installer.java @@ -1,4 +1,4 @@ -package com.volmit.iris.util.agent; +package art.arcane.iris.util.agent; import java.lang.instrument.Instrumentation; diff --git a/core/build.gradle.kts b/core/build.gradle.kts index a52d2689c..d72d05f83 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -35,8 +35,8 @@ plugins { } val apiVersion = "1.19" -val main = "com.volmit.iris.Iris" -val lib = "com.volmit.iris.util" +val main = "art.arcane.iris.Iris" +val lib = "art.arcane.iris.util" /** * Dependencies. @@ -214,7 +214,7 @@ val generateTemplates = tasks.register("generateTemplates") { from(templateSource) into(templateDest) - rename { "com/volmit/iris/$it" } + rename { "art/arcane/iris/$it" } expand(inputs.properties) } @@ -227,5 +227,10 @@ rootProject.tasks.named("prepareKotlinBuildScriptModel") { } sourceSets.main { + java.srcDir("../../VolmLib/shared/src/main/java") java.srcDir(generateTemplates.map { it.outputs }) } + +kotlin.sourceSets.named("main") { + kotlin.srcDir("../../VolmLib/shared/src/main/kotlin") +} diff --git a/core/src/main/java/com/volmit/iris/Iris.java b/core/src/main/java/art/arcane/iris/Iris.java similarity index 92% rename from core/src/main/java/com/volmit/iris/Iris.java rename to core/src/main/java/art/arcane/iris/Iris.java index fc9b4e55e..fd9cf5d21 100644 --- a/core/src/main/java/com/volmit/iris/Iris.java +++ b/core/src/main/java/art/arcane/iris/Iris.java @@ -16,49 +16,49 @@ * along with this program. If not, see . */ -package com.volmit.iris; +package art.arcane.iris; import com.google.gson.JsonObject; import com.google.gson.JsonParseException; import com.google.gson.JsonParser; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.IrisWorlds; -import com.volmit.iris.core.ServerConfigurator; -import com.volmit.iris.core.link.IrisPapiExpansion; -import com.volmit.iris.core.link.MultiverseCoreLink; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.core.pregenerator.LazyPregenerator; -import com.volmit.iris.core.service.StudioSVC; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.engine.EnginePanic; -import com.volmit.iris.engine.object.IrisCompat; -import com.volmit.iris.engine.object.IrisDimension; -import com.volmit.iris.engine.object.IrisWorld; -import com.volmit.iris.engine.platform.BukkitChunkGenerator; -import com.volmit.iris.core.safeguard.IrisSafeguard; -import com.volmit.iris.engine.platform.PlatformChunkGenerator; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.exceptions.IrisException; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.function.NastyRunnable; -import com.volmit.iris.util.io.FileWatcher; -import com.volmit.iris.util.io.IO; -import com.volmit.iris.util.io.InstanceState; -import com.volmit.iris.util.io.JarScanner; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.misc.Bindings; -import com.volmit.iris.util.misc.SlimJar; -import com.volmit.iris.util.parallel.MultiBurst; -import com.volmit.iris.util.plugin.IrisService; -import com.volmit.iris.util.plugin.VolmitPlugin; -import com.volmit.iris.util.plugin.VolmitSender; -import com.volmit.iris.util.plugin.chunk.ChunkTickets; -import com.volmit.iris.util.scheduling.J; -import com.volmit.iris.util.scheduling.Queue; -import com.volmit.iris.util.scheduling.ShurikenQueue; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.core.IrisWorlds; +import art.arcane.iris.core.ServerConfigurator; +import art.arcane.iris.core.link.IrisPapiExpansion; +import art.arcane.iris.core.link.MultiverseCoreLink; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.core.nms.INMS; +import art.arcane.iris.core.pregenerator.LazyPregenerator; +import art.arcane.iris.core.service.StudioSVC; +import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.iris.engine.EnginePanic; +import art.arcane.iris.engine.object.IrisCompat; +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.core.safeguard.IrisSafeguard; +import art.arcane.iris.engine.platform.PlatformChunkGenerator; +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.format.C; +import art.arcane.volmlib.util.function.NastyRunnable; +import art.arcane.volmlib.util.io.FileWatcher; +import art.arcane.volmlib.util.io.IO; +import art.arcane.volmlib.util.io.InstanceState; +import art.arcane.volmlib.util.io.JarScanner; +import art.arcane.volmlib.util.math.M; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.misc.Bindings; +import art.arcane.iris.util.misc.SlimJar; +import art.arcane.iris.util.parallel.MultiBurst; +import art.arcane.iris.util.plugin.IrisService; +import art.arcane.iris.util.plugin.VolmitPlugin; +import art.arcane.iris.util.plugin.VolmitSender; +import art.arcane.iris.util.plugin.chunk.ChunkTickets; +import art.arcane.iris.util.scheduling.J; +import art.arcane.volmlib.util.scheduling.Queue; +import art.arcane.volmlib.util.scheduling.ShurikenQueue; import lombok.NonNull; import org.bukkit.*; import org.bukkit.block.data.BlockData; @@ -437,7 +437,7 @@ public class Iris extends VolmitPlugin implements Listener { services = new KMap<>(); setupAudience(); Bindings.setupSentry(); - initialize("com.volmit.iris.core.service").forEach((i) -> services.put((Class) i.getClass(), (IrisService) i)); + initialize("art.arcane.iris.core.service").forEach((i) -> services.put((Class) i.getClass(), (IrisService) i)); IO.delete(new File("iris")); compat = IrisCompat.configured(getDataFile("compat.json")); ServerConfigurator.configure(); diff --git a/core/src/main/java/com/volmit/iris/core/IrisSettings.java b/core/src/main/java/art/arcane/iris/core/IrisSettings.java similarity index 96% rename from core/src/main/java/com/volmit/iris/core/IrisSettings.java rename to core/src/main/java/art/arcane/iris/core/IrisSettings.java index c2c394c32..84ac5ae14 100644 --- a/core/src/main/java/com/volmit/iris/core/IrisSettings.java +++ b/core/src/main/java/art/arcane/iris/core/IrisSettings.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.core; +package art.arcane.iris.core; import com.google.gson.Gson; -import com.volmit.iris.Iris; -import com.volmit.iris.util.io.IO; -import com.volmit.iris.util.json.JSONException; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.misc.getHardware; -import com.volmit.iris.util.plugin.VolmitSender; +import art.arcane.iris.Iris; +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.misc.getHardware; +import art.arcane.iris.util.plugin.VolmitSender; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/core/IrisWorlds.java b/core/src/main/java/art/arcane/iris/core/IrisWorlds.java similarity index 91% rename from core/src/main/java/com/volmit/iris/core/IrisWorlds.java rename to core/src/main/java/art/arcane/iris/core/IrisWorlds.java index 72dc0b5cd..5fb122735 100644 --- a/core/src/main/java/com/volmit/iris/core/IrisWorlds.java +++ b/core/src/main/java/art/arcane/iris/core/IrisWorlds.java @@ -1,15 +1,15 @@ -package com.volmit.iris.core; +package art.arcane.iris.core; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; -import com.volmit.iris.Iris; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.object.IrisDimension; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.io.IO; -import com.volmit.iris.util.misc.ServerProperties; +import art.arcane.iris.Iris; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.io.IO; +import art.arcane.iris.util.misc.ServerProperties; import org.bukkit.Bukkit; import org.bukkit.configuration.file.YamlConfiguration; diff --git a/core/src/main/java/com/volmit/iris/core/ServerConfigurator.java b/core/src/main/java/art/arcane/iris/core/ServerConfigurator.java similarity index 95% rename from core/src/main/java/com/volmit/iris/core/ServerConfigurator.java rename to core/src/main/java/art/arcane/iris/core/ServerConfigurator.java index b4bd3e083..8294ffb3e 100644 --- a/core/src/main/java/com/volmit/iris/core/ServerConfigurator.java +++ b/core/src/main/java/art/arcane/iris/core/ServerConfigurator.java @@ -16,21 +16,21 @@ * along with this program. If not, see . */ -package com.volmit.iris.core; +package art.arcane.iris.core; -import com.volmit.iris.Iris; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.core.nms.datapack.DataVersion; -import com.volmit.iris.core.nms.datapack.IDataFixer; -import com.volmit.iris.engine.object.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.misc.ServerProperties; -import com.volmit.iris.util.plugin.VolmitSender; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.iris.core.loader.IrisData; +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.engine.object.*; +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.format.C; +import art.arcane.iris.util.misc.ServerProperties; +import art.arcane.iris.util.plugin.VolmitSender; +import art.arcane.iris.util.scheduling.J; import lombok.NonNull; import lombok.SneakyThrows; import org.bukkit.Bukkit; diff --git a/core/src/main/java/com/volmit/iris/core/commands/CommandDeveloper.java b/core/src/main/java/art/arcane/iris/core/commands/CommandDeveloper.java similarity index 93% rename from core/src/main/java/com/volmit/iris/core/commands/CommandDeveloper.java rename to core/src/main/java/art/arcane/iris/core/commands/CommandDeveloper.java index d54635c2a..2d6c935fc 100644 --- a/core/src/main/java/com/volmit/iris/core/commands/CommandDeveloper.java +++ b/core/src/main/java/art/arcane/iris/core/commands/CommandDeveloper.java @@ -16,45 +16,45 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.commands; +package art.arcane.iris.core.commands; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; -import com.volmit.iris.Iris; -import com.volmit.iris.core.ServerConfigurator; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.core.nms.datapack.DataVersion; -import com.volmit.iris.core.service.IrisEngineSVC; -import com.volmit.iris.core.tools.IrisPackBenchmarking; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisDimension; -import com.volmit.iris.engine.object.IrisPosition; -import com.volmit.iris.engine.object.annotations.Snippet; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.context.IrisContext; -import com.volmit.iris.engine.object.IrisJigsawStructurePlacement; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.decree.DecreeExecutor; -import com.volmit.iris.util.decree.DecreeOrigin; -import com.volmit.iris.util.decree.annotations.Decree; -import com.volmit.iris.util.decree.annotations.Param; -import com.volmit.iris.util.decree.specialhandlers.NullableDimensionHandler; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.io.CountingDataInputStream; -import com.volmit.iris.util.io.IO; -import com.volmit.iris.util.mantle.TectonicPlate; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.matter.Matter; -import com.volmit.iris.util.nbt.mca.MCAFile; -import com.volmit.iris.util.nbt.mca.MCAUtil; -import com.volmit.iris.util.parallel.MultiBurst; -import com.volmit.iris.util.plugin.VolmitSender; -import com.volmit.iris.util.scheduling.jobs.Job; +import art.arcane.iris.Iris; +import art.arcane.iris.core.ServerConfigurator; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.core.nms.INMS; +import art.arcane.iris.core.nms.datapack.DataVersion; +import art.arcane.iris.core.service.IrisEngineSVC; +import art.arcane.iris.core.tools.IrisPackBenchmarking; +import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.engine.object.IrisPosition; +import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.collection.KSet; +import art.arcane.iris.util.context.IrisContext; +import art.arcane.iris.engine.object.IrisJigsawStructurePlacement; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.iris.util.decree.DecreeExecutor; +import art.arcane.volmlib.util.decree.DecreeOrigin; +import art.arcane.volmlib.util.decree.annotations.Decree; +import art.arcane.volmlib.util.decree.annotations.Param; +import art.arcane.iris.util.decree.specialhandlers.NullableDimensionHandler; +import art.arcane.iris.util.format.C; +import art.arcane.volmlib.util.format.Form; +import art.arcane.volmlib.util.io.CountingDataInputStream; +import art.arcane.volmlib.util.io.IO; +import art.arcane.iris.util.mantle.TectonicPlate; +import art.arcane.volmlib.util.math.M; +import art.arcane.iris.util.matter.Matter; +import art.arcane.iris.util.nbt.mca.MCAFile; +import art.arcane.iris.util.nbt.mca.MCAUtil; +import art.arcane.iris.util.parallel.MultiBurst; +import art.arcane.iris.util.plugin.VolmitSender; +import art.arcane.iris.util.scheduling.jobs.Job; import lombok.SneakyThrows; import net.jpountz.lz4.LZ4BlockInputStream; import net.jpountz.lz4.LZ4BlockOutputStream; diff --git a/core/src/main/java/com/volmit/iris/core/commands/CommandEdit.java b/core/src/main/java/art/arcane/iris/core/commands/CommandEdit.java similarity index 95% rename from core/src/main/java/com/volmit/iris/core/commands/CommandEdit.java rename to core/src/main/java/art/arcane/iris/core/commands/CommandEdit.java index dc00adf7d..d2cdd0100 100644 --- a/core/src/main/java/com/volmit/iris/core/commands/CommandEdit.java +++ b/core/src/main/java/art/arcane/iris/core/commands/CommandEdit.java @@ -16,16 +16,16 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.commands; +package art.arcane.iris.core.commands; -import com.volmit.iris.Iris; -import com.volmit.iris.core.service.StudioSVC; -import com.volmit.iris.engine.object.*; -import com.volmit.iris.util.decree.DecreeExecutor; -import com.volmit.iris.util.decree.DecreeOrigin; -import com.volmit.iris.util.decree.annotations.Decree; -import com.volmit.iris.util.decree.annotations.Param; -import com.volmit.iris.util.format.C; +import art.arcane.iris.Iris; +import art.arcane.iris.core.service.StudioSVC; +import art.arcane.iris.engine.object.*; +import art.arcane.iris.util.decree.DecreeExecutor; +import art.arcane.volmlib.util.decree.DecreeOrigin; +import art.arcane.volmlib.util.decree.annotations.Decree; +import art.arcane.volmlib.util.decree.annotations.Param; +import art.arcane.iris.util.format.C; import java.awt.*; diff --git a/core/src/main/java/com/volmit/iris/core/commands/CommandFind.java b/core/src/main/java/art/arcane/iris/core/commands/CommandFind.java similarity index 85% rename from core/src/main/java/com/volmit/iris/core/commands/CommandFind.java rename to core/src/main/java/art/arcane/iris/core/commands/CommandFind.java index d0bd97c68..51d3e2c55 100644 --- a/core/src/main/java/com/volmit/iris/core/commands/CommandFind.java +++ b/core/src/main/java/art/arcane/iris/core/commands/CommandFind.java @@ -16,18 +16,18 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.commands; +package art.arcane.iris.core.commands; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisJigsawStructure; -import com.volmit.iris.engine.object.IrisRegion; -import com.volmit.iris.util.decree.DecreeExecutor; -import com.volmit.iris.util.decree.DecreeOrigin; -import com.volmit.iris.util.decree.annotations.Decree; -import com.volmit.iris.util.decree.annotations.Param; -import com.volmit.iris.util.decree.specialhandlers.ObjectHandler; -import com.volmit.iris.util.format.C; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.iris.engine.object.IrisJigsawStructure; +import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.util.decree.DecreeExecutor; +import art.arcane.volmlib.util.decree.DecreeOrigin; +import art.arcane.volmlib.util.decree.annotations.Decree; +import art.arcane.volmlib.util.decree.annotations.Param; +import art.arcane.iris.util.decree.specialhandlers.ObjectHandler; +import art.arcane.iris.util.format.C; @Decree(name = "find", origin = DecreeOrigin.PLAYER, description = "Iris Find commands", aliases = "goto") public class CommandFind implements DecreeExecutor { diff --git a/core/src/main/java/com/volmit/iris/core/commands/CommandIris.java b/core/src/main/java/art/arcane/iris/core/commands/CommandIris.java similarity index 95% rename from core/src/main/java/com/volmit/iris/core/commands/CommandIris.java rename to core/src/main/java/art/arcane/iris/core/commands/CommandIris.java index 75448c8dc..38ca37374 100644 --- a/core/src/main/java/com/volmit/iris/core/commands/CommandIris.java +++ b/core/src/main/java/art/arcane/iris/core/commands/CommandIris.java @@ -16,26 +16,26 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.commands; +package art.arcane.iris.core.commands; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.core.service.StudioSVC; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisDimension; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.decree.DecreeExecutor; -import com.volmit.iris.util.decree.DecreeOrigin; -import com.volmit.iris.util.decree.annotations.Decree; -import com.volmit.iris.util.decree.annotations.Param; -import com.volmit.iris.util.decree.specialhandlers.NullablePlayerHandler; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.io.IO; -import com.volmit.iris.util.misc.ServerProperties; -import com.volmit.iris.util.plugin.VolmitSender; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.core.nms.INMS; +import art.arcane.iris.core.service.StudioSVC; +import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.iris.util.decree.DecreeExecutor; +import art.arcane.volmlib.util.decree.DecreeOrigin; +import art.arcane.volmlib.util.decree.annotations.Decree; +import art.arcane.volmlib.util.decree.annotations.Param; +import art.arcane.iris.util.decree.specialhandlers.NullablePlayerHandler; +import art.arcane.iris.util.format.C; +import art.arcane.volmlib.util.io.IO; +import art.arcane.iris.util.misc.ServerProperties; +import art.arcane.iris.util.plugin.VolmitSender; +import art.arcane.iris.util.scheduling.J; import lombok.SneakyThrows; import org.bukkit.Bukkit; import org.bukkit.World; @@ -48,8 +48,8 @@ import java.io.*; import java.util.List; import java.util.concurrent.atomic.AtomicReference; -import static com.volmit.iris.core.service.EditSVC.deletingWorld; -import static com.volmit.iris.util.misc.ServerProperties.BUKKIT_YML; +import static art.arcane.iris.core.service.EditSVC.deletingWorld; +import static art.arcane.iris.util.misc.ServerProperties.BUKKIT_YML; import static org.bukkit.Bukkit.getServer; @Decree(name = "iris", aliases = {"ir", "irs"}, description = "Basic Command") diff --git a/core/src/main/java/com/volmit/iris/core/commands/CommandJigsaw.java b/core/src/main/java/art/arcane/iris/core/commands/CommandJigsaw.java similarity index 80% rename from core/src/main/java/com/volmit/iris/core/commands/CommandJigsaw.java rename to core/src/main/java/art/arcane/iris/core/commands/CommandJigsaw.java index 7777f1764..ecf0b18fb 100644 --- a/core/src/main/java/com/volmit/iris/core/commands/CommandJigsaw.java +++ b/core/src/main/java/art/arcane/iris/core/commands/CommandJigsaw.java @@ -16,27 +16,27 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.commands; +package art.arcane.iris.core.commands; -import com.volmit.iris.Iris; -import com.volmit.iris.core.edit.JigsawEditor; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.framework.placer.WorldObjectPlacer; -import com.volmit.iris.engine.jigsaw.PlannedStructure; -import com.volmit.iris.engine.object.IrisJigsawPiece; -import com.volmit.iris.engine.object.IrisJigsawStructure; -import com.volmit.iris.engine.object.IrisObject; -import com.volmit.iris.engine.object.IrisPosition; -import com.volmit.iris.util.decree.DecreeExecutor; -import com.volmit.iris.util.decree.DecreeOrigin; -import com.volmit.iris.util.decree.annotations.Decree; -import com.volmit.iris.util.decree.annotations.Param; -import com.volmit.iris.util.decree.specialhandlers.ObjectHandler; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.plugin.VolmitSender; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.Iris; +import art.arcane.iris.core.edit.JigsawEditor; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.engine.framework.placer.WorldObjectPlacer; +import art.arcane.iris.engine.jigsaw.PlannedStructure; +import art.arcane.iris.engine.object.IrisJigsawPiece; +import art.arcane.iris.engine.object.IrisJigsawStructure; +import art.arcane.iris.engine.object.IrisObject; +import art.arcane.iris.engine.object.IrisPosition; +import art.arcane.iris.util.decree.DecreeExecutor; +import art.arcane.volmlib.util.decree.DecreeOrigin; +import art.arcane.volmlib.util.decree.annotations.Decree; +import art.arcane.volmlib.util.decree.annotations.Param; +import art.arcane.iris.util.decree.specialhandlers.ObjectHandler; +import art.arcane.iris.util.format.C; +import art.arcane.volmlib.util.format.Form; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.plugin.VolmitSender; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import java.io.File; diff --git a/core/src/main/java/com/volmit/iris/core/commands/CommandLazyPregen.java b/core/src/main/java/art/arcane/iris/core/commands/CommandLazyPregen.java similarity index 89% rename from core/src/main/java/com/volmit/iris/core/commands/CommandLazyPregen.java rename to core/src/main/java/art/arcane/iris/core/commands/CommandLazyPregen.java index a3d4c622c..68e111a4e 100644 --- a/core/src/main/java/com/volmit/iris/core/commands/CommandLazyPregen.java +++ b/core/src/main/java/art/arcane/iris/core/commands/CommandLazyPregen.java @@ -16,19 +16,19 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.commands; +package art.arcane.iris.core.commands; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.gui.PregeneratorJob; -import com.volmit.iris.core.pregenerator.LazyPregenerator; -import com.volmit.iris.core.pregenerator.PregenTask; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.util.decree.DecreeExecutor; -import com.volmit.iris.util.decree.annotations.Decree; -import com.volmit.iris.util.decree.annotations.Param; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.math.Position2; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.core.gui.PregeneratorJob; +import art.arcane.iris.core.pregenerator.LazyPregenerator; +import art.arcane.iris.core.pregenerator.PregenTask; +import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.iris.util.decree.DecreeExecutor; +import art.arcane.volmlib.util.decree.annotations.Decree; +import art.arcane.volmlib.util.decree.annotations.Param; +import art.arcane.iris.util.format.C; +import art.arcane.iris.util.math.Position2; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.util.Vector; diff --git a/core/src/main/java/com/volmit/iris/core/commands/CommandObject.java b/core/src/main/java/art/arcane/iris/core/commands/CommandObject.java similarity index 95% rename from core/src/main/java/com/volmit/iris/core/commands/CommandObject.java rename to core/src/main/java/art/arcane/iris/core/commands/CommandObject.java index 9786c3ec4..e9a76e74b 100644 --- a/core/src/main/java/com/volmit/iris/core/commands/CommandObject.java +++ b/core/src/main/java/art/arcane/iris/core/commands/CommandObject.java @@ -16,28 +16,28 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.commands; +package art.arcane.iris.core.commands; -import com.volmit.iris.Iris; -import com.volmit.iris.core.link.WorldEditLink; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.service.ObjectSVC; -import com.volmit.iris.core.service.StudioSVC; -import com.volmit.iris.core.service.WandSVC; -import com.volmit.iris.core.tools.IrisConverter; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.*; -import com.volmit.iris.util.data.Cuboid; -import com.volmit.iris.util.data.IrisCustomData; -import com.volmit.iris.util.data.registry.Materials; -import com.volmit.iris.util.decree.DecreeExecutor; -import com.volmit.iris.util.decree.DecreeOrigin; -import com.volmit.iris.util.decree.annotations.Decree; -import com.volmit.iris.util.decree.annotations.Param; -import com.volmit.iris.util.decree.specialhandlers.ObjectHandler; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.math.Direction; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.Iris; +import art.arcane.iris.core.link.WorldEditLink; +import art.arcane.iris.core.loader.IrisData; +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.engine.framework.Engine; +import art.arcane.iris.engine.object.*; +import art.arcane.volmlib.util.data.Cuboid; +import art.arcane.iris.util.data.IrisCustomData; +import art.arcane.iris.util.data.registry.Materials; +import art.arcane.iris.util.decree.DecreeExecutor; +import art.arcane.volmlib.util.decree.DecreeOrigin; +import art.arcane.volmlib.util.decree.annotations.Decree; +import art.arcane.volmlib.util.decree.annotations.Param; +import art.arcane.iris.util.decree.specialhandlers.ObjectHandler; +import art.arcane.iris.util.format.C; +import art.arcane.iris.util.math.Direction; +import art.arcane.volmlib.util.math.RNG; import org.bukkit.*; import org.bukkit.block.Block; import org.bukkit.block.data.BlockData; @@ -259,7 +259,7 @@ public class CommandObject implements DecreeExecutor { Cuboid cursor = new Cuboid(a1, a2); Direction d = Direction.closest(player().getLocation().getDirection()).reverse(); assert d != null; - cursor = cursor.expand(d, -amount); + cursor = cursor.expand(d.f(), -amount); b[0] = cursor.getLowerNE(); b[1] = cursor.getUpperSW(); player().getInventory().setItemInMainHand(WandSVC.createWand(b[0], b[1])); diff --git a/core/src/main/java/com/volmit/iris/core/commands/CommandPregen.java b/core/src/main/java/art/arcane/iris/core/commands/CommandPregen.java similarity index 88% rename from core/src/main/java/com/volmit/iris/core/commands/CommandPregen.java rename to core/src/main/java/art/arcane/iris/core/commands/CommandPregen.java index 2de5cef25..0e7ba00ab 100644 --- a/core/src/main/java/com/volmit/iris/core/commands/CommandPregen.java +++ b/core/src/main/java/art/arcane/iris/core/commands/CommandPregen.java @@ -16,17 +16,17 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.commands; +package art.arcane.iris.core.commands; -import com.volmit.iris.Iris; -import com.volmit.iris.core.gui.PregeneratorJob; -import com.volmit.iris.core.pregenerator.PregenTask; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.util.decree.DecreeExecutor; -import com.volmit.iris.util.decree.annotations.Decree; -import com.volmit.iris.util.decree.annotations.Param; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.math.Position2; +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.decree.DecreeExecutor; +import art.arcane.volmlib.util.decree.annotations.Decree; +import art.arcane.volmlib.util.decree.annotations.Param; +import art.arcane.iris.util.format.C; +import art.arcane.iris.util.math.Position2; import org.bukkit.World; import org.bukkit.util.Vector; diff --git a/core/src/main/java/com/volmit/iris/core/commands/CommandSettings.java b/core/src/main/java/art/arcane/iris/core/commands/CommandSettings.java similarity index 90% rename from core/src/main/java/com/volmit/iris/core/commands/CommandSettings.java rename to core/src/main/java/art/arcane/iris/core/commands/CommandSettings.java index e1da7efd7..f81ec2708 100644 --- a/core/src/main/java/com/volmit/iris/core/commands/CommandSettings.java +++ b/core/src/main/java/art/arcane/iris/core/commands/CommandSettings.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.commands; +package art.arcane.iris.core.commands; -import com.volmit.iris.util.decree.DecreeExecutor; +import art.arcane.iris.util.decree.DecreeExecutor; public class CommandSettings implements DecreeExecutor { diff --git a/core/src/main/java/com/volmit/iris/core/commands/CommandStudio.java b/core/src/main/java/art/arcane/iris/core/commands/CommandStudio.java similarity index 94% rename from core/src/main/java/com/volmit/iris/core/commands/CommandStudio.java rename to core/src/main/java/art/arcane/iris/core/commands/CommandStudio.java index 467427681..85ac107c1 100644 --- a/core/src/main/java/com/volmit/iris/core/commands/CommandStudio.java +++ b/core/src/main/java/art/arcane/iris/core/commands/CommandStudio.java @@ -16,49 +16,49 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.commands; +package art.arcane.iris.core.commands; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.gui.NoiseExplorerGUI; -import com.volmit.iris.core.gui.VisionGUI; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.project.IrisProject; -import com.volmit.iris.core.service.ConversionSVC; -import com.volmit.iris.core.service.StudioSVC; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.*; -import com.volmit.iris.engine.platform.PlatformChunkGenerator; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.decree.DecreeContext; -import com.volmit.iris.util.decree.DecreeExecutor; -import com.volmit.iris.util.decree.DecreeOrigin; -import com.volmit.iris.util.decree.annotations.Decree; -import com.volmit.iris.util.decree.annotations.Param; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.function.Function2; -import com.volmit.iris.util.function.NoiseProvider; -import com.volmit.iris.util.interpolation.InterpolationMethod; -import com.volmit.iris.util.io.IO; -import com.volmit.iris.util.json.JSONArray; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.mantle.MantleChunk; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.math.Position2; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.math.Spiraler; -import com.volmit.iris.util.noise.CNG; -import com.volmit.iris.util.parallel.MultiBurst; -import com.volmit.iris.util.parallel.SyncExecutor; -import com.volmit.iris.util.plugin.VolmitSender; -import com.volmit.iris.util.scheduling.J; -import com.volmit.iris.util.scheduling.O; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; -import com.volmit.iris.util.scheduling.jobs.ParallelRadiusJob; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +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.service.ConversionSVC; +import art.arcane.iris.core.service.StudioSVC; +import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.object.*; +import art.arcane.iris.engine.platform.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.decree.DecreeContext; +import art.arcane.iris.util.decree.DecreeExecutor; +import art.arcane.volmlib.util.decree.DecreeOrigin; +import art.arcane.volmlib.util.decree.annotations.Decree; +import art.arcane.volmlib.util.decree.annotations.Param; +import art.arcane.iris.util.format.C; +import art.arcane.volmlib.util.format.Form; +import art.arcane.volmlib.util.function.Function2; +import art.arcane.volmlib.util.function.NoiseProvider; +import art.arcane.iris.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.iris.util.mantle.MantleChunk; +import art.arcane.volmlib.util.math.M; +import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.volmlib.util.math.Spiraler; +import art.arcane.iris.util.noise.CNG; +import art.arcane.iris.util.parallel.MultiBurst; +import art.arcane.iris.util.parallel.SyncExecutor; +import art.arcane.iris.util.plugin.VolmitSender; +import art.arcane.iris.util.scheduling.J; +import art.arcane.volmlib.util.scheduling.O; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.util.scheduling.jobs.ParallelRadiusJob; import io.papermc.lib.PaperLib; import org.bukkit.*; import org.bukkit.event.inventory.InventoryType; diff --git a/core/src/main/java/com/volmit/iris/core/commands/CommandTurboPregen.java b/core/src/main/java/art/arcane/iris/core/commands/CommandTurboPregen.java similarity index 92% rename from core/src/main/java/com/volmit/iris/core/commands/CommandTurboPregen.java rename to core/src/main/java/art/arcane/iris/core/commands/CommandTurboPregen.java index 18a7be8d7..df3eeb8b0 100644 --- a/core/src/main/java/com/volmit/iris/core/commands/CommandTurboPregen.java +++ b/core/src/main/java/art/arcane/iris/core/commands/CommandTurboPregen.java @@ -16,16 +16,16 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.commands; +package art.arcane.iris.core.commands; -import com.volmit.iris.Iris; -import com.volmit.iris.core.pregenerator.LazyPregenerator; -import com.volmit.iris.core.pregenerator.TurboPregenerator; -import com.volmit.iris.core.pregenerator.TurboPregenerator; -import com.volmit.iris.util.decree.DecreeExecutor; -import com.volmit.iris.util.decree.annotations.Decree; -import com.volmit.iris.util.decree.annotations.Param; -import com.volmit.iris.util.format.C; +import art.arcane.iris.Iris; +import art.arcane.iris.core.pregenerator.LazyPregenerator; +import art.arcane.iris.core.pregenerator.TurboPregenerator; +import art.arcane.iris.core.pregenerator.TurboPregenerator; +import art.arcane.iris.util.decree.DecreeExecutor; +import art.arcane.volmlib.util.decree.annotations.Decree; +import art.arcane.volmlib.util.decree.annotations.Param; +import art.arcane.iris.util.format.C; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.util.Vector; diff --git a/core/src/main/java/com/volmit/iris/core/commands/CommandUpdater.java b/core/src/main/java/art/arcane/iris/core/commands/CommandUpdater.java similarity index 87% rename from core/src/main/java/com/volmit/iris/core/commands/CommandUpdater.java rename to core/src/main/java/art/arcane/iris/core/commands/CommandUpdater.java index e19fc61ba..68a67a98f 100644 --- a/core/src/main/java/com/volmit/iris/core/commands/CommandUpdater.java +++ b/core/src/main/java/art/arcane/iris/core/commands/CommandUpdater.java @@ -16,20 +16,20 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.commands; +package art.arcane.iris.core.commands; import lombok.Synchronized; import org.bukkit.World; -import com.volmit.iris.Iris; -import com.volmit.iris.core.pregenerator.ChunkUpdater; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.util.decree.DecreeExecutor; -import com.volmit.iris.util.decree.DecreeOrigin; -import com.volmit.iris.util.decree.annotations.Decree; -import com.volmit.iris.util.decree.annotations.Param; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.format.Form; +import art.arcane.iris.Iris; +import art.arcane.iris.core.pregenerator.ChunkUpdater; +import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.iris.util.decree.DecreeExecutor; +import art.arcane.volmlib.util.decree.DecreeOrigin; +import art.arcane.volmlib.util.decree.annotations.Decree; +import art.arcane.volmlib.util.decree.annotations.Param; +import art.arcane.iris.util.format.C; +import art.arcane.volmlib.util.format.Form; @Decree(name = "updater", origin = DecreeOrigin.BOTH, description = "Iris World Updater") public class CommandUpdater implements DecreeExecutor { diff --git a/core/src/main/java/com/volmit/iris/core/commands/CommandWhat.java b/core/src/main/java/art/arcane/iris/core/commands/CommandWhat.java similarity index 89% rename from core/src/main/java/com/volmit/iris/core/commands/CommandWhat.java rename to core/src/main/java/art/arcane/iris/core/commands/CommandWhat.java index 48d8c726e..da3e83b85 100644 --- a/core/src/main/java/com/volmit/iris/core/commands/CommandWhat.java +++ b/core/src/main/java/art/arcane/iris/core/commands/CommandWhat.java @@ -16,23 +16,23 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.commands; +package art.arcane.iris.core.commands; -import com.volmit.iris.Iris; -import com.volmit.iris.core.edit.BlockSignal; -import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisRegion; -import com.volmit.iris.util.data.B; -import com.volmit.iris.util.decree.DecreeExecutor; -import com.volmit.iris.util.decree.DecreeOrigin; -import com.volmit.iris.util.decree.annotations.Decree; -import com.volmit.iris.util.decree.annotations.Param; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.matter.MatterMarker; -import com.volmit.iris.util.scheduling.J; +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.object.IrisBiome; +import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.util.data.B; +import art.arcane.iris.util.decree.DecreeExecutor; +import art.arcane.volmlib.util.decree.DecreeOrigin; +import art.arcane.volmlib.util.decree.annotations.Decree; +import art.arcane.volmlib.util.decree.annotations.Param; +import art.arcane.iris.util.format.C; +import art.arcane.volmlib.util.matter.MatterMarker; +import art.arcane.iris.util.scheduling.J; import org.bukkit.Chunk; import org.bukkit.FluidCollisionMode; import org.bukkit.Material; diff --git a/core/src/main/java/com/volmit/iris/core/edit/BlockEditor.java b/core/src/main/java/art/arcane/iris/core/edit/BlockEditor.java similarity index 97% rename from core/src/main/java/com/volmit/iris/core/edit/BlockEditor.java rename to core/src/main/java/art/arcane/iris/core/edit/BlockEditor.java index 0df8f32af..fcd952048 100644 --- a/core/src/main/java/com/volmit/iris/core/edit/BlockEditor.java +++ b/core/src/main/java/art/arcane/iris/core/edit/BlockEditor.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.edit; +package art.arcane.iris.core.edit; import org.bukkit.block.Biome; import org.bukkit.block.data.BlockData; diff --git a/core/src/main/java/com/volmit/iris/core/edit/BlockSignal.java b/core/src/main/java/art/arcane/iris/core/edit/BlockSignal.java similarity index 95% rename from core/src/main/java/com/volmit/iris/core/edit/BlockSignal.java rename to core/src/main/java/art/arcane/iris/core/edit/BlockSignal.java index 65526cd87..2314b9261 100644 --- a/core/src/main/java/com/volmit/iris/core/edit/BlockSignal.java +++ b/core/src/main/java/art/arcane/iris/core/edit/BlockSignal.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.edit; +package art.arcane.iris.core.edit; -import com.volmit.iris.util.parallel.MultiBurst; -import com.volmit.iris.util.scheduling.J; -import com.volmit.iris.util.scheduling.SR; +import art.arcane.iris.util.parallel.MultiBurst; +import art.arcane.iris.util.scheduling.J; +import art.arcane.volmlib.util.scheduling.SR; import org.bukkit.Location; import org.bukkit.block.Block; import org.bukkit.block.data.BlockData; diff --git a/core/src/main/java/com/volmit/iris/core/edit/BukkitBlockEditor.java b/core/src/main/java/art/arcane/iris/core/edit/BukkitBlockEditor.java similarity index 96% rename from core/src/main/java/com/volmit/iris/core/edit/BukkitBlockEditor.java rename to core/src/main/java/art/arcane/iris/core/edit/BukkitBlockEditor.java index 9ef3ce600..a2a18d51b 100644 --- a/core/src/main/java/com/volmit/iris/core/edit/BukkitBlockEditor.java +++ b/core/src/main/java/art/arcane/iris/core/edit/BukkitBlockEditor.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.edit; +package art.arcane.iris.core.edit; -import com.volmit.iris.util.math.M; +import art.arcane.volmlib.util.math.M; import org.bukkit.World; import org.bukkit.block.Biome; import org.bukkit.block.data.BlockData; diff --git a/core/src/main/java/com/volmit/iris/core/edit/DustRevealer.java b/core/src/main/java/art/arcane/iris/core/edit/DustRevealer.java similarity index 92% rename from core/src/main/java/com/volmit/iris/core/edit/DustRevealer.java rename to core/src/main/java/art/arcane/iris/core/edit/DustRevealer.java index 35353c771..5e6c79879 100644 --- a/core/src/main/java/com/volmit/iris/core/edit/DustRevealer.java +++ b/core/src/main/java/art/arcane/iris/core/edit/DustRevealer.java @@ -16,17 +16,17 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.edit; +package art.arcane.iris.core.edit; -import com.volmit.iris.Iris; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.math.BlockPosition; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.plugin.VolmitSender; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.iris.engine.framework.Engine; +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.iris.util.plugin.VolmitSender; +import art.arcane.iris.util.scheduling.J; import lombok.Data; import org.bukkit.Sound; import org.bukkit.World; diff --git a/core/src/main/java/com/volmit/iris/core/edit/JigsawEditor.java b/core/src/main/java/art/arcane/iris/core/edit/JigsawEditor.java similarity index 94% rename from core/src/main/java/com/volmit/iris/core/edit/JigsawEditor.java rename to core/src/main/java/art/arcane/iris/core/edit/JigsawEditor.java index 17655e1c5..0bc3a53ed 100644 --- a/core/src/main/java/com/volmit/iris/core/edit/JigsawEditor.java +++ b/core/src/main/java/art/arcane/iris/core/edit/JigsawEditor.java @@ -16,20 +16,20 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.edit; +package art.arcane.iris.core.edit; import com.google.gson.Gson; -import com.volmit.iris.Iris; -import com.volmit.iris.core.service.WandSVC; -import com.volmit.iris.engine.object.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.data.Cuboid; -import com.volmit.iris.util.io.IO; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.scheduling.ChronoLatch; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.iris.core.service.WandSVC; +import art.arcane.iris.engine.object.*; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.data.Cuboid; +import art.arcane.volmlib.util.io.IO; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.volmlib.util.scheduling.ChronoLatch; +import art.arcane.iris.util.scheduling.J; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Particle; diff --git a/core/src/main/java/com/volmit/iris/core/events/IrisEngineEvent.java b/core/src/main/java/art/arcane/iris/core/events/IrisEngineEvent.java similarity index 94% rename from core/src/main/java/com/volmit/iris/core/events/IrisEngineEvent.java rename to core/src/main/java/art/arcane/iris/core/events/IrisEngineEvent.java index 5651823c7..47b6d6500 100644 --- a/core/src/main/java/com/volmit/iris/core/events/IrisEngineEvent.java +++ b/core/src/main/java/art/arcane/iris/core/events/IrisEngineEvent.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.events; +package art.arcane.iris.core.events; -import com.volmit.iris.engine.framework.Engine; +import art.arcane.iris.engine.framework.Engine; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/core/events/IrisEngineHotloadEvent.java b/core/src/main/java/art/arcane/iris/core/events/IrisEngineHotloadEvent.java similarity index 93% rename from core/src/main/java/com/volmit/iris/core/events/IrisEngineHotloadEvent.java rename to core/src/main/java/art/arcane/iris/core/events/IrisEngineHotloadEvent.java index 7b3afe4c1..d47d4aebf 100644 --- a/core/src/main/java/com/volmit/iris/core/events/IrisEngineHotloadEvent.java +++ b/core/src/main/java/art/arcane/iris/core/events/IrisEngineHotloadEvent.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.events; +package art.arcane.iris.core.events; -import com.volmit.iris.engine.framework.Engine; +import art.arcane.iris.engine.framework.Engine; import org.bukkit.event.HandlerList; public class IrisEngineHotloadEvent extends IrisEngineEvent { diff --git a/core/src/main/java/com/volmit/iris/core/events/IrisLootEvent.java b/core/src/main/java/art/arcane/iris/core/events/IrisLootEvent.java similarity index 91% rename from core/src/main/java/com/volmit/iris/core/events/IrisLootEvent.java rename to core/src/main/java/art/arcane/iris/core/events/IrisLootEvent.java index 067e874ce..a0a658651 100644 --- a/core/src/main/java/com/volmit/iris/core/events/IrisLootEvent.java +++ b/core/src/main/java/art/arcane/iris/core/events/IrisLootEvent.java @@ -1,11 +1,11 @@ -package com.volmit.iris.core.events; +package art.arcane.iris.core.events; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.InventorySlotType; -import com.volmit.iris.engine.object.IrisLootTable; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.object.InventorySlotType; +import art.arcane.iris.engine.object.IrisLootTable; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.iris.util.scheduling.J; import lombok.Getter; import org.bukkit.*; import org.bukkit.block.Block; diff --git a/core/src/main/java/com/volmit/iris/core/gui/NoiseExplorerGUI.java b/core/src/main/java/art/arcane/iris/core/gui/NoiseExplorerGUI.java similarity index 93% rename from core/src/main/java/com/volmit/iris/core/gui/NoiseExplorerGUI.java rename to core/src/main/java/art/arcane/iris/core/gui/NoiseExplorerGUI.java index 19fa5cd71..b4fc5e48d 100644 --- a/core/src/main/java/com/volmit/iris/core/gui/NoiseExplorerGUI.java +++ b/core/src/main/java/art/arcane/iris/core/gui/NoiseExplorerGUI.java @@ -16,22 +16,22 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.gui; +package art.arcane.iris.core.gui; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.events.IrisEngineHotloadEvent; -import com.volmit.iris.engine.object.NoiseStyle; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.function.Function2; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.math.RollingSequence; -import com.volmit.iris.util.noise.CNG; -import com.volmit.iris.util.parallel.BurstExecutor; -import com.volmit.iris.util.parallel.MultiBurst; -import com.volmit.iris.util.scheduling.J; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.core.events.IrisEngineHotloadEvent; +import art.arcane.iris.engine.object.NoiseStyle; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.function.Function2; +import art.arcane.volmlib.util.math.M; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.volmlib.util.math.RollingSequence; +import art.arcane.iris.util.noise.CNG; +import art.arcane.iris.util.parallel.BurstExecutor; +import art.arcane.iris.util.parallel.MultiBurst; +import art.arcane.iris.util.scheduling.J; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; diff --git a/core/src/main/java/com/volmit/iris/core/gui/PregeneratorJob.java b/core/src/main/java/art/arcane/iris/core/gui/PregeneratorJob.java similarity index 94% rename from core/src/main/java/com/volmit/iris/core/gui/PregeneratorJob.java rename to core/src/main/java/art/arcane/iris/core/gui/PregeneratorJob.java index 348b42349..771b634f2 100644 --- a/core/src/main/java/com/volmit/iris/core/gui/PregeneratorJob.java +++ b/core/src/main/java/art/arcane/iris/core/gui/PregeneratorJob.java @@ -16,24 +16,24 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.gui; +package art.arcane.iris.core.gui; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.pregenerator.IrisPregenerator; -import com.volmit.iris.core.pregenerator.PregenListener; -import com.volmit.iris.core.pregenerator.PregenTask; -import com.volmit.iris.core.pregenerator.PregeneratorMethod; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.format.MemoryMonitor; -import com.volmit.iris.util.function.Consumer2; -import com.volmit.iris.util.mantle.Mantle; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.math.Position2; -import com.volmit.iris.util.scheduling.ChronoLatch; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.core.pregenerator.IrisPregenerator; +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.engine.framework.Engine; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.format.Form; +import art.arcane.volmlib.util.format.MemoryMonitor; +import art.arcane.volmlib.util.function.Consumer2; +import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.math.M; +import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.scheduling.ChronoLatch; +import art.arcane.iris.util.scheduling.J; import javax.swing.*; import java.awt.*; diff --git a/core/src/main/java/com/volmit/iris/core/gui/VisionGUI.java b/core/src/main/java/art/arcane/iris/core/gui/VisionGUI.java similarity index 96% rename from core/src/main/java/com/volmit/iris/core/gui/VisionGUI.java rename to core/src/main/java/art/arcane/iris/core/gui/VisionGUI.java index 32bc1f79d..adcbbb202 100644 --- a/core/src/main/java/com/volmit/iris/core/gui/VisionGUI.java +++ b/core/src/main/java/art/arcane/iris/core/gui/VisionGUI.java @@ -16,28 +16,28 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.gui; +package art.arcane.iris.core.gui; -import com.volmit.iris.Iris; -import com.volmit.iris.core.gui.components.IrisRenderer; -import com.volmit.iris.core.gui.components.RenderType; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.engine.IrisComplex; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisRegion; -import com.volmit.iris.engine.object.IrisWorld; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.math.BlockPosition; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.math.RollingSequence; -import com.volmit.iris.util.scheduling.ChronoLatch; -import com.volmit.iris.util.scheduling.J; -import com.volmit.iris.util.scheduling.O; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.Iris; +import art.arcane.iris.core.gui.components.IrisRenderer; +import art.arcane.iris.core.gui.components.RenderType; +import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.iris.engine.IrisComplex; +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.object.IrisWorld; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.collection.KSet; +import art.arcane.volmlib.util.format.Form; +import art.arcane.volmlib.util.math.BlockPosition; +import art.arcane.volmlib.util.math.M; +import art.arcane.volmlib.util.math.RollingSequence; +import art.arcane.volmlib.util.scheduling.ChronoLatch; +import art.arcane.iris.util.scheduling.J; +import art.arcane.volmlib.util.scheduling.O; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import org.bukkit.Location; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; @@ -55,7 +55,7 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.function.BiFunction; -import static com.volmit.iris.util.data.registry.Attributes.MAX_HEALTH; +import static art.arcane.iris.util.data.registry.Attributes.MAX_HEALTH; public class VisionGUI extends JPanel implements MouseWheelListener, KeyListener, MouseMotionListener, MouseInputListener { private static final long serialVersionUID = 2094606939770332040L; diff --git a/core/src/main/java/com/volmit/iris/core/gui/components/IrisRenderer.java b/core/src/main/java/art/arcane/iris/core/gui/components/IrisRenderer.java similarity index 91% rename from core/src/main/java/com/volmit/iris/core/gui/components/IrisRenderer.java rename to core/src/main/java/art/arcane/iris/core/gui/components/IrisRenderer.java index 2820b8999..7b5554ffd 100644 --- a/core/src/main/java/com/volmit/iris/core/gui/components/IrisRenderer.java +++ b/core/src/main/java/art/arcane/iris/core/gui/components/IrisRenderer.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.gui.components; +package art.arcane.iris.core.gui.components; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisBiomeGeneratorLink; -import com.volmit.iris.util.interpolation.IrisInterpolation; +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.util.interpolation.IrisInterpolation; import java.awt.*; import java.awt.image.BufferedImage; diff --git a/core/src/main/java/com/volmit/iris/core/gui/components/RenderType.java b/core/src/main/java/art/arcane/iris/core/gui/components/RenderType.java similarity index 95% rename from core/src/main/java/com/volmit/iris/core/gui/components/RenderType.java rename to core/src/main/java/art/arcane/iris/core/gui/components/RenderType.java index 778286fe5..866aa49ae 100644 --- a/core/src/main/java/com/volmit/iris/core/gui/components/RenderType.java +++ b/core/src/main/java/art/arcane/iris/core/gui/components/RenderType.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.gui.components; +package art.arcane.iris.core.gui.components; public enum RenderType { BIOME, BIOME_LAND, BIOME_SEA, REGION, CAVE_LAND, HEIGHT, OBJECT_LOAD, DECORATOR_LOAD, CONTINENT, LAYER_LOAD diff --git a/core/src/main/java/com/volmit/iris/core/gui/components/Renderer.java b/core/src/main/java/art/arcane/iris/core/gui/components/Renderer.java similarity index 95% rename from core/src/main/java/com/volmit/iris/core/gui/components/Renderer.java rename to core/src/main/java/art/arcane/iris/core/gui/components/Renderer.java index f6ca29398..eebf3f3e0 100644 --- a/core/src/main/java/com/volmit/iris/core/gui/components/Renderer.java +++ b/core/src/main/java/art/arcane/iris/core/gui/components/Renderer.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.gui.components; +package art.arcane.iris.core.gui.components; import java.awt.*; diff --git a/core/src/main/java/com/volmit/iris/core/gui/components/TileRender.java b/core/src/main/java/art/arcane/iris/core/gui/components/TileRender.java similarity index 95% rename from core/src/main/java/com/volmit/iris/core/gui/components/TileRender.java rename to core/src/main/java/art/arcane/iris/core/gui/components/TileRender.java index 54fa5481d..e68a8213e 100644 --- a/core/src/main/java/com/volmit/iris/core/gui/components/TileRender.java +++ b/core/src/main/java/art/arcane/iris/core/gui/components/TileRender.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.gui.components; +package art.arcane.iris.core.gui.components; import lombok.Builder; import lombok.Data; diff --git a/core/src/main/java/com/volmit/iris/core/link/CustomItemsDataProvider.java b/core/src/main/java/art/arcane/iris/core/link/CustomItemsDataProvider.java similarity index 95% rename from core/src/main/java/com/volmit/iris/core/link/CustomItemsDataProvider.java rename to core/src/main/java/art/arcane/iris/core/link/CustomItemsDataProvider.java index 216e94e91..acc950182 100644 --- a/core/src/main/java/com/volmit/iris/core/link/CustomItemsDataProvider.java +++ b/core/src/main/java/art/arcane/iris/core/link/CustomItemsDataProvider.java @@ -1,12 +1,12 @@ -//package com.volmit.iris.core.link; +//package art.arcane.iris.core.link; // //import com.jojodmo.customitems.api.CustomItemsAPI; //import com.jojodmo.customitems.item.custom.CustomItem; //import com.jojodmo.customitems.item.custom.block.CustomMushroomBlock; //import com.jojodmo.customitems.version.SafeMaterial; -//import com.volmit.iris.util.collection.KList; -//import com.volmit.iris.util.reflect.WrappedField; -//import com.volmit.iris.util.reflect.WrappedReturningMethod; +//import art.arcane.volmlib.util.collection.KList; +//import art.arcane.iris.util.reflect.WrappedField; +//import art.arcane.iris.util.reflect.WrappedReturningMethod; //import org.bukkit.block.BlockFace; //import org.bukkit.block.data.BlockData; //import org.bukkit.block.data.MultipleFacing; diff --git a/core/src/main/java/com/volmit/iris/core/link/ExternalDataProvider.java b/core/src/main/java/art/arcane/iris/core/link/ExternalDataProvider.java similarity index 93% rename from core/src/main/java/com/volmit/iris/core/link/ExternalDataProvider.java rename to core/src/main/java/art/arcane/iris/core/link/ExternalDataProvider.java index d88e9f831..4c9bea6b9 100644 --- a/core/src/main/java/com/volmit/iris/core/link/ExternalDataProvider.java +++ b/core/src/main/java/art/arcane/iris/core/link/ExternalDataProvider.java @@ -1,14 +1,14 @@ -package com.volmit.iris.core.link; +package art.arcane.iris.core.link; -import com.volmit.iris.core.link.data.DataType; -import com.volmit.iris.core.nms.container.BiomeColor; -import com.volmit.iris.core.nms.container.BlockProperty; -import com.volmit.iris.core.nms.container.Pair; -import com.volmit.iris.engine.data.cache.Cache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.data.IrisCustomData; -import com.volmit.iris.util.math.RNG; +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.volmlib.util.collection.KMap; +import art.arcane.iris.util.data.IrisCustomData; +import art.arcane.volmlib.util.math.RNG; import lombok.Getter; import lombok.NonNull; import lombok.RequiredArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/core/link/Identifier.java b/core/src/main/java/art/arcane/iris/core/link/Identifier.java similarity index 93% rename from core/src/main/java/com/volmit/iris/core/link/Identifier.java rename to core/src/main/java/art/arcane/iris/core/link/Identifier.java index 3969b174b..6c6378416 100644 --- a/core/src/main/java/com/volmit/iris/core/link/Identifier.java +++ b/core/src/main/java/art/arcane/iris/core/link/Identifier.java @@ -1,4 +1,4 @@ -package com.volmit.iris.core.link; +package art.arcane.iris.core.link; import org.bukkit.NamespacedKey; diff --git a/core/src/main/java/com/volmit/iris/core/link/IrisPapiExpansion.java b/core/src/main/java/art/arcane/iris/core/link/IrisPapiExpansion.java similarity index 94% rename from core/src/main/java/com/volmit/iris/core/link/IrisPapiExpansion.java rename to core/src/main/java/art/arcane/iris/core/link/IrisPapiExpansion.java index 666573f14..10a694cb8 100644 --- a/core/src/main/java/com/volmit/iris/core/link/IrisPapiExpansion.java +++ b/core/src/main/java/art/arcane/iris/core/link/IrisPapiExpansion.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.link; +package art.arcane.iris.core.link; -import com.volmit.iris.Iris; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.Iris; +import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.iris.engine.platform.PlatformChunkGenerator; import me.clip.placeholderapi.expansion.PlaceholderExpansion; import org.bukkit.Location; import org.bukkit.OfflinePlayer; diff --git a/core/src/main/java/com/volmit/iris/core/link/MultiverseCoreLink.java b/core/src/main/java/art/arcane/iris/core/link/MultiverseCoreLink.java similarity index 98% rename from core/src/main/java/com/volmit/iris/core/link/MultiverseCoreLink.java rename to core/src/main/java/art/arcane/iris/core/link/MultiverseCoreLink.java index 920abeb5c..aaff1e605 100644 --- a/core/src/main/java/com/volmit/iris/core/link/MultiverseCoreLink.java +++ b/core/src/main/java/art/arcane/iris/core/link/MultiverseCoreLink.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.link; +package art.arcane.iris.core.link; import lombok.SneakyThrows; import org.bukkit.Bukkit; diff --git a/core/src/main/java/com/volmit/iris/core/link/WorldEditLink.java b/core/src/main/java/art/arcane/iris/core/link/WorldEditLink.java similarity index 92% rename from core/src/main/java/com/volmit/iris/core/link/WorldEditLink.java rename to core/src/main/java/art/arcane/iris/core/link/WorldEditLink.java index 638c66cc2..5538cec13 100644 --- a/core/src/main/java/com/volmit/iris/core/link/WorldEditLink.java +++ b/core/src/main/java/art/arcane/iris/core/link/WorldEditLink.java @@ -1,9 +1,9 @@ -package com.volmit.iris.core.link; +package art.arcane.iris.core.link; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.util.data.Cuboid; -import com.volmit.iris.util.data.KCache; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.volmlib.util.data.Cuboid; +import art.arcane.volmlib.util.data.KCache; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.entity.Player; diff --git a/core/src/main/java/com/volmit/iris/core/link/data/DataType.java b/core/src/main/java/art/arcane/iris/core/link/data/DataType.java similarity index 86% rename from core/src/main/java/com/volmit/iris/core/link/data/DataType.java rename to core/src/main/java/art/arcane/iris/core/link/data/DataType.java index 65edfc2a3..fc0e90b86 100644 --- a/core/src/main/java/com/volmit/iris/core/link/data/DataType.java +++ b/core/src/main/java/art/arcane/iris/core/link/data/DataType.java @@ -1,7 +1,7 @@ -package com.volmit.iris.core.link.data; +package art.arcane.iris.core.link.data; -import com.volmit.iris.core.link.ExternalDataProvider; -import com.volmit.iris.core.link.Identifier; +import art.arcane.iris.core.link.ExternalDataProvider; +import art.arcane.iris.core.link.Identifier; import java.util.MissingResourceException; import java.util.function.BiPredicate; diff --git a/core/src/main/java/com/volmit/iris/core/link/data/EcoItemsDataProvider.java b/core/src/main/java/art/arcane/iris/core/link/data/EcoItemsDataProvider.java similarity index 88% rename from core/src/main/java/com/volmit/iris/core/link/data/EcoItemsDataProvider.java rename to core/src/main/java/art/arcane/iris/core/link/data/EcoItemsDataProvider.java index 05e9cd221..3996f0313 100644 --- a/core/src/main/java/com/volmit/iris/core/link/data/EcoItemsDataProvider.java +++ b/core/src/main/java/art/arcane/iris/core/link/data/EcoItemsDataProvider.java @@ -1,10 +1,10 @@ -package com.volmit.iris.core.link.data; +package art.arcane.iris.core.link.data; -import com.volmit.iris.Iris; -import com.volmit.iris.core.link.ExternalDataProvider; -import com.volmit.iris.core.link.Identifier; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.reflect.WrappedField; +import art.arcane.iris.Iris; +import art.arcane.iris.core.link.ExternalDataProvider; +import art.arcane.iris.core.link.Identifier; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.reflect.WrappedField; import com.willfp.ecoitems.items.EcoItem; import com.willfp.ecoitems.items.EcoItems; import org.bukkit.NamespacedKey; diff --git a/core/src/main/java/com/volmit/iris/core/link/data/ExecutableItemsDataProvider.java b/core/src/main/java/art/arcane/iris/core/link/data/ExecutableItemsDataProvider.java similarity index 88% rename from core/src/main/java/com/volmit/iris/core/link/data/ExecutableItemsDataProvider.java rename to core/src/main/java/art/arcane/iris/core/link/data/ExecutableItemsDataProvider.java index 88a2dc943..315281ba1 100644 --- a/core/src/main/java/com/volmit/iris/core/link/data/ExecutableItemsDataProvider.java +++ b/core/src/main/java/art/arcane/iris/core/link/data/ExecutableItemsDataProvider.java @@ -1,10 +1,10 @@ -package com.volmit.iris.core.link.data; +package art.arcane.iris.core.link.data; import com.ssomar.score.api.executableitems.ExecutableItemsAPI; -import com.volmit.iris.Iris; -import com.volmit.iris.core.link.ExternalDataProvider; -import com.volmit.iris.core.link.Identifier; -import com.volmit.iris.util.collection.KMap; +import art.arcane.iris.Iris; +import art.arcane.iris.core.link.ExternalDataProvider; +import art.arcane.iris.core.link.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/com/volmit/iris/core/link/data/HMCLeavesDataProvider.java b/core/src/main/java/art/arcane/iris/core/link/data/HMCLeavesDataProvider.java similarity index 89% rename from core/src/main/java/com/volmit/iris/core/link/data/HMCLeavesDataProvider.java rename to core/src/main/java/art/arcane/iris/core/link/data/HMCLeavesDataProvider.java index eb17801d7..9f6b9929c 100644 --- a/core/src/main/java/com/volmit/iris/core/link/data/HMCLeavesDataProvider.java +++ b/core/src/main/java/art/arcane/iris/core/link/data/HMCLeavesDataProvider.java @@ -1,15 +1,15 @@ -package com.volmit.iris.core.link.data; +package art.arcane.iris.core.link.data; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.link.ExternalDataProvider; -import com.volmit.iris.core.link.Identifier; -import com.volmit.iris.core.service.ExternalDataSVC; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.data.IrisCustomData; -import com.volmit.iris.util.reflect.WrappedField; -import com.volmit.iris.util.reflect.WrappedReturningMethod; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +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.volmlib.util.collection.KMap; +import art.arcane.iris.util.data.IrisCustomData; +import art.arcane.iris.util.reflect.WrappedField; +import art.arcane.iris.util.reflect.WrappedReturningMethod; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; diff --git a/core/src/main/java/com/volmit/iris/core/link/data/ItemAdderDataProvider.java b/core/src/main/java/art/arcane/iris/core/link/data/ItemAdderDataProvider.java similarity index 92% rename from core/src/main/java/com/volmit/iris/core/link/data/ItemAdderDataProvider.java rename to core/src/main/java/art/arcane/iris/core/link/data/ItemAdderDataProvider.java index 0f4495972..872b78613 100644 --- a/core/src/main/java/com/volmit/iris/core/link/data/ItemAdderDataProvider.java +++ b/core/src/main/java/art/arcane/iris/core/link/data/ItemAdderDataProvider.java @@ -1,11 +1,11 @@ -package com.volmit.iris.core.link.data; +package art.arcane.iris.core.link.data; -import com.volmit.iris.Iris; -import com.volmit.iris.core.link.ExternalDataProvider; -import com.volmit.iris.core.link.Identifier; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.data.IrisCustomData; +import art.arcane.iris.Iris; +import art.arcane.iris.core.link.ExternalDataProvider; +import art.arcane.iris.core.link.Identifier; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.data.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/com/volmit/iris/core/link/data/KGeneratorsDataProvider.java b/core/src/main/java/art/arcane/iris/core/link/data/KGeneratorsDataProvider.java similarity index 88% rename from core/src/main/java/com/volmit/iris/core/link/data/KGeneratorsDataProvider.java rename to core/src/main/java/art/arcane/iris/core/link/data/KGeneratorsDataProvider.java index acb2b47d6..eb478c30f 100644 --- a/core/src/main/java/com/volmit/iris/core/link/data/KGeneratorsDataProvider.java +++ b/core/src/main/java/art/arcane/iris/core/link/data/KGeneratorsDataProvider.java @@ -1,12 +1,12 @@ -package com.volmit.iris.core.link.data; +package art.arcane.iris.core.link.data; -import com.volmit.iris.core.link.ExternalDataProvider; -import com.volmit.iris.core.link.Identifier; -import com.volmit.iris.core.service.ExternalDataSVC; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.data.B; -import com.volmit.iris.util.data.IrisCustomData; +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.volmlib.util.collection.KMap; +import art.arcane.iris.util.data.B; +import art.arcane.iris.util.data.IrisCustomData; import me.kryniowesegryderiusz.kgenerators.Main; import me.kryniowesegryderiusz.kgenerators.api.KGeneratorsAPI; import me.kryniowesegryderiusz.kgenerators.generators.locations.objects.GeneratorLocation; diff --git a/core/src/main/java/com/volmit/iris/core/link/data/MMOItemsDataProvider.java b/core/src/main/java/art/arcane/iris/core/link/data/MMOItemsDataProvider.java similarity index 94% rename from core/src/main/java/com/volmit/iris/core/link/data/MMOItemsDataProvider.java rename to core/src/main/java/art/arcane/iris/core/link/data/MMOItemsDataProvider.java index 0bf3fc490..4b92e1d9d 100644 --- a/core/src/main/java/com/volmit/iris/core/link/data/MMOItemsDataProvider.java +++ b/core/src/main/java/art/arcane/iris/core/link/data/MMOItemsDataProvider.java @@ -1,10 +1,10 @@ -package com.volmit.iris.core.link.data; +package art.arcane.iris.core.link.data; -import com.volmit.iris.Iris; -import com.volmit.iris.core.link.ExternalDataProvider; -import com.volmit.iris.core.link.Identifier; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.iris.core.link.ExternalDataProvider; +import art.arcane.iris.core.link.Identifier; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.scheduling.J; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.ItemTier; import net.Indyuce.mmoitems.api.block.CustomBlock; diff --git a/core/src/main/java/com/volmit/iris/core/link/data/MythicCrucibleDataProvider.java b/core/src/main/java/art/arcane/iris/core/link/data/MythicCrucibleDataProvider.java similarity index 91% rename from core/src/main/java/com/volmit/iris/core/link/data/MythicCrucibleDataProvider.java rename to core/src/main/java/art/arcane/iris/core/link/data/MythicCrucibleDataProvider.java index b264e144a..fb5d08810 100644 --- a/core/src/main/java/com/volmit/iris/core/link/data/MythicCrucibleDataProvider.java +++ b/core/src/main/java/art/arcane/iris/core/link/data/MythicCrucibleDataProvider.java @@ -16,19 +16,19 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.link.data; +package art.arcane.iris.core.link.data; -import com.volmit.iris.Iris; -import com.volmit.iris.core.link.ExternalDataProvider; -import com.volmit.iris.core.link.Identifier; -import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.core.nms.container.BiomeColor; -import com.volmit.iris.core.nms.container.BlockProperty; -import com.volmit.iris.core.service.ExternalDataSVC; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.data.B; -import com.volmit.iris.util.data.IrisCustomData; +import art.arcane.iris.Iris; +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.service.ExternalDataSVC; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.data.B; +import art.arcane.iris.util.data.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/com/volmit/iris/core/link/data/MythicMobsDataProvider.java b/core/src/main/java/art/arcane/iris/core/link/data/MythicMobsDataProvider.java similarity index 96% rename from core/src/main/java/com/volmit/iris/core/link/data/MythicMobsDataProvider.java rename to core/src/main/java/art/arcane/iris/core/link/data/MythicMobsDataProvider.java index b87963345..14451c226 100644 --- a/core/src/main/java/com/volmit/iris/core/link/data/MythicMobsDataProvider.java +++ b/core/src/main/java/art/arcane/iris/core/link/data/MythicMobsDataProvider.java @@ -1,8 +1,8 @@ -package com.volmit.iris.core.link.data; +package art.arcane.iris.core.link.data; -import com.volmit.iris.core.link.ExternalDataProvider; -import com.volmit.iris.core.link.Identifier; -import com.volmit.iris.core.tools.IrisToolbelt; +import art.arcane.iris.core.link.ExternalDataProvider; +import art.arcane.iris.core.link.Identifier; +import art.arcane.iris.core.tools.IrisToolbelt; import io.lumine.mythic.api.adapters.AbstractLocation; import io.lumine.mythic.api.config.MythicLineConfig; import io.lumine.mythic.api.mobs.entities.SpawnReason; diff --git a/core/src/main/java/com/volmit/iris/core/link/data/NexoDataProvider.java b/core/src/main/java/art/arcane/iris/core/link/data/NexoDataProvider.java similarity index 90% rename from core/src/main/java/com/volmit/iris/core/link/data/NexoDataProvider.java rename to core/src/main/java/art/arcane/iris/core/link/data/NexoDataProvider.java index 4eeff9a31..3273e3564 100644 --- a/core/src/main/java/com/volmit/iris/core/link/data/NexoDataProvider.java +++ b/core/src/main/java/art/arcane/iris/core/link/data/NexoDataProvider.java @@ -1,19 +1,19 @@ -package com.volmit.iris.core.link.data; +package art.arcane.iris.core.link.data; 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 com.volmit.iris.core.link.ExternalDataProvider; -import com.volmit.iris.core.link.Identifier; -import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.core.nms.container.BiomeColor; -import com.volmit.iris.core.nms.container.BlockProperty; -import com.volmit.iris.core.service.ExternalDataSVC; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.data.B; -import com.volmit.iris.util.data.IrisCustomData; +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.service.ExternalDataSVC; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.data.B; +import art.arcane.iris.util.data.IrisCustomData; import org.bukkit.Color; import org.bukkit.block.Block; import org.bukkit.block.data.BlockData; diff --git a/core/src/main/java/com/volmit/iris/core/loader/ImageResourceLoader.java b/core/src/main/java/art/arcane/iris/core/loader/ImageResourceLoader.java similarity index 93% rename from core/src/main/java/com/volmit/iris/core/loader/ImageResourceLoader.java rename to core/src/main/java/art/arcane/iris/core/loader/ImageResourceLoader.java index 877c08227..6df4831ee 100644 --- a/core/src/main/java/com/volmit/iris/core/loader/ImageResourceLoader.java +++ b/core/src/main/java/art/arcane/iris/core/loader/ImageResourceLoader.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.loader; +package art.arcane.iris.core.loader; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.engine.object.IrisImage; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.data.KCache; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.engine.object.IrisImage; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KSet; +import art.arcane.volmlib.util.data.KCache; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; diff --git a/core/src/main/java/com/volmit/iris/core/loader/IrisData.java b/core/src/main/java/art/arcane/iris/core/loader/IrisData.java similarity index 95% rename from core/src/main/java/com/volmit/iris/core/loader/IrisData.java rename to core/src/main/java/art/arcane/iris/core/loader/IrisData.java index b43f3d639..e17fd034f 100644 --- a/core/src/main/java/com/volmit/iris/core/loader/IrisData.java +++ b/core/src/main/java/art/arcane/iris/core/loader/IrisData.java @@ -16,32 +16,32 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.loader; +package art.arcane.iris.core.loader; import com.google.gson.*; import com.google.gson.reflect.TypeToken; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonToken; import com.google.gson.stream.JsonWriter; -import com.volmit.iris.Iris; -import com.volmit.iris.core.scripting.environment.PackEnvironment; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.*; -import com.volmit.iris.engine.object.annotations.Snippet; -import com.volmit.iris.engine.object.matter.IrisMatterObject; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.context.IrisContext; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.mantle.flag.MantleFlagAdapter; -import com.volmit.iris.util.mantle.flag.MantleFlag; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.parallel.BurstExecutor; -import com.volmit.iris.util.parallel.MultiBurst; -import com.volmit.iris.util.reflect.KeyedType; -import com.volmit.iris.util.scheduling.ChronoLatch; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.iris.core.scripting.environment.PackEnvironment; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.object.*; +import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.engine.object.matter.IrisMatterObject; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.context.IrisContext; +import art.arcane.iris.util.format.C; +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.parallel.BurstExecutor; +import art.arcane.iris.util.parallel.MultiBurst; +import art.arcane.iris.util.reflect.KeyedType; +import art.arcane.volmlib.util.scheduling.ChronoLatch; +import art.arcane.iris.util.scheduling.J; import lombok.Data; import org.jetbrains.annotations.Nullable; diff --git a/core/src/main/java/com/volmit/iris/core/loader/IrisRegistrant.java b/core/src/main/java/art/arcane/iris/core/loader/IrisRegistrant.java similarity index 81% rename from core/src/main/java/com/volmit/iris/core/loader/IrisRegistrant.java rename to core/src/main/java/art/arcane/iris/core/loader/IrisRegistrant.java index 123fd6f2e..6278acef4 100644 --- a/core/src/main/java/com/volmit/iris/core/loader/IrisRegistrant.java +++ b/core/src/main/java/art/arcane/iris/core/loader/IrisRegistrant.java @@ -16,17 +16,17 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.loader; +package art.arcane.iris.core.loader; import com.google.gson.GsonBuilder; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.object.IrisScript; -import com.volmit.iris.engine.object.annotations.ArrayType; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.RegistryListResource; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.plugin.VolmitSender; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.object.IrisScript; +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 art.arcane.volmlib.util.json.JSONObject; +import art.arcane.iris.util.plugin.VolmitSender; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/core/loader/MatterObjectResourceLoader.java b/core/src/main/java/art/arcane/iris/core/loader/MatterObjectResourceLoader.java similarity index 93% rename from core/src/main/java/com/volmit/iris/core/loader/MatterObjectResourceLoader.java rename to core/src/main/java/art/arcane/iris/core/loader/MatterObjectResourceLoader.java index e09dc64fc..cae771600 100644 --- a/core/src/main/java/com/volmit/iris/core/loader/MatterObjectResourceLoader.java +++ b/core/src/main/java/art/arcane/iris/core/loader/MatterObjectResourceLoader.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.loader; +package art.arcane.iris.core.loader; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.engine.object.matter.IrisMatterObject; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.data.KCache; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.engine.object.matter.IrisMatterObject; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KSet; +import art.arcane.volmlib.util.data.KCache; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import java.io.File; diff --git a/core/src/main/java/com/volmit/iris/core/loader/ObjectResourceLoader.java b/core/src/main/java/art/arcane/iris/core/loader/ObjectResourceLoader.java similarity index 92% rename from core/src/main/java/com/volmit/iris/core/loader/ObjectResourceLoader.java rename to core/src/main/java/art/arcane/iris/core/loader/ObjectResourceLoader.java index 3fa92bc46..44e540772 100644 --- a/core/src/main/java/com/volmit/iris/core/loader/ObjectResourceLoader.java +++ b/core/src/main/java/art/arcane/iris/core/loader/ObjectResourceLoader.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.loader; +package art.arcane.iris.core.loader; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.engine.object.IrisObject; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.data.KCache; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.engine.object.IrisObject; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KSet; +import art.arcane.volmlib.util.data.KCache; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import java.io.File; diff --git a/core/src/main/java/com/volmit/iris/core/loader/ResourceLoader.java b/core/src/main/java/art/arcane/iris/core/loader/ResourceLoader.java similarity index 93% rename from core/src/main/java/com/volmit/iris/core/loader/ResourceLoader.java rename to core/src/main/java/art/arcane/iris/core/loader/ResourceLoader.java index 6e06a9772..f9979afd6 100644 --- a/core/src/main/java/com/volmit/iris/core/loader/ResourceLoader.java +++ b/core/src/main/java/art/arcane/iris/core/loader/ResourceLoader.java @@ -16,30 +16,30 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.loader; +package art.arcane.iris.core.loader; import com.google.common.util.concurrent.AtomicDouble; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.project.SchemaBuilder; -import com.volmit.iris.core.service.PreservationSVC; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.MeteredCache; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.data.KCache; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.io.CustomOutputStream; -import com.volmit.iris.util.io.IO; -import com.volmit.iris.util.json.JSONArray; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.parallel.BurstExecutor; -import com.volmit.iris.util.parallel.MultiBurst; -import com.volmit.iris.util.scheduling.ChronoLatch; -import com.volmit.iris.util.scheduling.J; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.core.project.SchemaBuilder; +import art.arcane.iris.core.service.PreservationSVC; +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.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KSet; +import art.arcane.volmlib.util.data.KCache; +import art.arcane.iris.util.format.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.parallel.BurstExecutor; +import art.arcane.iris.util.parallel.MultiBurst; +import art.arcane.volmlib.util.scheduling.ChronoLatch; +import art.arcane.iris.util.scheduling.J; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/core/src/main/java/com/volmit/iris/core/loader/ScriptResourceLoader.java b/core/src/main/java/art/arcane/iris/core/loader/ScriptResourceLoader.java similarity index 94% rename from core/src/main/java/com/volmit/iris/core/loader/ScriptResourceLoader.java rename to core/src/main/java/art/arcane/iris/core/loader/ScriptResourceLoader.java index 793a0aa1b..efcfe2219 100644 --- a/core/src/main/java/com/volmit/iris/core/loader/ScriptResourceLoader.java +++ b/core/src/main/java/art/arcane/iris/core/loader/ScriptResourceLoader.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.loader; +package art.arcane.iris.core.loader; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.engine.object.IrisScript; -import com.volmit.iris.util.data.KCache; -import com.volmit.iris.util.io.IO; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.engine.object.IrisScript; +import art.arcane.volmlib.util.data.KCache; +import art.arcane.volmlib.util.io.IO; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import java.io.File; import java.util.HashSet; diff --git a/core/src/main/java/com/volmit/iris/core/nms/BiomeBaseInjector.java b/core/src/main/java/art/arcane/iris/core/nms/BiomeBaseInjector.java similarity index 96% rename from core/src/main/java/com/volmit/iris/core/nms/BiomeBaseInjector.java rename to core/src/main/java/art/arcane/iris/core/nms/BiomeBaseInjector.java index 8f7062f99..eb19f489e 100644 --- a/core/src/main/java/com/volmit/iris/core/nms/BiomeBaseInjector.java +++ b/core/src/main/java/art/arcane/iris/core/nms/BiomeBaseInjector.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.nms; +package art.arcane.iris.core.nms; @FunctionalInterface public interface BiomeBaseInjector { diff --git a/core/src/main/java/com/volmit/iris/core/nms/INMS.java b/core/src/main/java/art/arcane/iris/core/nms/INMS.java similarity index 95% rename from core/src/main/java/com/volmit/iris/core/nms/INMS.java rename to core/src/main/java/art/arcane/iris/core/nms/INMS.java index a5ed8ba11..11f61bea8 100644 --- a/core/src/main/java/com/volmit/iris/core/nms/INMS.java +++ b/core/src/main/java/art/arcane/iris/core/nms/INMS.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.nms; +package art.arcane.iris.core.nms; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.nms.v1X.NMSBinding1X; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.core.nms.v1X.NMSBinding1X; import org.bukkit.Bukkit; import java.util.List; @@ -82,7 +82,7 @@ public class INMS { Iris.info("Locating NMS Binding for " + code); try { - Class clazz = Class.forName("com.volmit.iris.core.nms."+code+".NMSBinding"); + Class clazz = Class.forName("art.arcane.iris.core.nms."+code+".NMSBinding"); try { Object b = clazz.getConstructor().newInstance(); if (b instanceof INMSBinding binding) { diff --git a/core/src/main/java/com/volmit/iris/core/nms/INMSBinding.java b/core/src/main/java/art/arcane/iris/core/nms/INMSBinding.java similarity index 83% rename from core/src/main/java/com/volmit/iris/core/nms/INMSBinding.java rename to core/src/main/java/art/arcane/iris/core/nms/INMSBinding.java index 9e62bc4de..148e0828f 100644 --- a/core/src/main/java/com/volmit/iris/core/nms/INMSBinding.java +++ b/core/src/main/java/art/arcane/iris/core/nms/INMSBinding.java @@ -16,22 +16,22 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.nms; +package art.arcane.iris.core.nms; -import com.volmit.iris.core.link.Identifier; -import com.volmit.iris.core.nms.container.BiomeColor; -import com.volmit.iris.core.nms.container.BlockProperty; -import com.volmit.iris.core.nms.container.StructurePlacement; -import com.volmit.iris.core.nms.datapack.DataVersion; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.platform.PlatformChunkGenerator; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.mantle.Mantle; -import com.volmit.iris.util.math.Vector3d; -import com.volmit.iris.util.nbt.mca.palette.MCABiomeContainer; -import com.volmit.iris.util.nbt.mca.palette.MCAPaletteAccess; -import com.volmit.iris.util.nbt.tag.CompoundTag; +import art.arcane.iris.core.link.Identifier; +import art.arcane.iris.core.nms.container.BiomeColor; +import art.arcane.iris.core.nms.container.BlockProperty; +import art.arcane.iris.core.nms.container.StructurePlacement; +import art.arcane.iris.core.nms.datapack.DataVersion; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.math.Vector3d; +import art.arcane.volmlib.util.nbt.mca.palette.MCABiomeContainer; +import art.arcane.volmlib.util.nbt.mca.palette.MCAPaletteAccess; +import art.arcane.volmlib.util.nbt.tag.CompoundTag; import org.bukkit.*; import org.bukkit.block.Biome; import org.bukkit.entity.Entity; diff --git a/core/src/main/java/com/volmit/iris/core/nms/container/AutoClosing.java b/core/src/main/java/art/arcane/iris/core/nms/container/AutoClosing.java similarity index 86% rename from core/src/main/java/com/volmit/iris/core/nms/container/AutoClosing.java rename to core/src/main/java/art/arcane/iris/core/nms/container/AutoClosing.java index a4771ca84..807fac52f 100644 --- a/core/src/main/java/com/volmit/iris/core/nms/container/AutoClosing.java +++ b/core/src/main/java/art/arcane/iris/core/nms/container/AutoClosing.java @@ -1,7 +1,7 @@ -package com.volmit.iris.core.nms.container; +package art.arcane.iris.core.nms.container; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.function.NastyRunnable; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.function.NastyRunnable; import lombok.AllArgsConstructor; import java.util.concurrent.atomic.AtomicBoolean; diff --git a/core/src/main/java/com/volmit/iris/core/nms/container/BiomeColor.java b/core/src/main/java/art/arcane/iris/core/nms/container/BiomeColor.java similarity index 68% rename from core/src/main/java/com/volmit/iris/core/nms/container/BiomeColor.java rename to core/src/main/java/art/arcane/iris/core/nms/container/BiomeColor.java index 58bc4a5a1..02d7cbcf7 100644 --- a/core/src/main/java/com/volmit/iris/core/nms/container/BiomeColor.java +++ b/core/src/main/java/art/arcane/iris/core/nms/container/BiomeColor.java @@ -1,4 +1,4 @@ -package com.volmit.iris.core.nms.container; +package art.arcane.iris.core.nms.container; public enum BiomeColor { FOG, diff --git a/core/src/main/java/com/volmit/iris/core/nms/container/BlockPos.java b/core/src/main/java/art/arcane/iris/core/nms/container/BlockPos.java similarity index 83% rename from core/src/main/java/com/volmit/iris/core/nms/container/BlockPos.java rename to core/src/main/java/art/arcane/iris/core/nms/container/BlockPos.java index 80a496be7..09c475378 100644 --- a/core/src/main/java/com/volmit/iris/core/nms/container/BlockPos.java +++ b/core/src/main/java/art/arcane/iris/core/nms/container/BlockPos.java @@ -1,4 +1,4 @@ -package com.volmit.iris.core.nms.container; +package art.arcane.iris.core.nms.container; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/core/src/main/java/com/volmit/iris/core/nms/container/BlockProperty.java b/core/src/main/java/art/arcane/iris/core/nms/container/BlockProperty.java similarity index 97% rename from core/src/main/java/com/volmit/iris/core/nms/container/BlockProperty.java rename to core/src/main/java/art/arcane/iris/core/nms/container/BlockProperty.java index e10d65472..35ffc678b 100644 --- a/core/src/main/java/com/volmit/iris/core/nms/container/BlockProperty.java +++ b/core/src/main/java/art/arcane/iris/core/nms/container/BlockProperty.java @@ -1,7 +1,7 @@ -package com.volmit.iris.core.nms.container; +package art.arcane.iris.core.nms.container; -import com.volmit.iris.util.json.JSONArray; -import com.volmit.iris.util.json.JSONObject; +import art.arcane.volmlib.util.json.JSONArray; +import art.arcane.volmlib.util.json.JSONObject; import org.jetbrains.annotations.NotNull; import java.util.*; diff --git a/core/src/main/java/com/volmit/iris/core/nms/container/Pair.java b/core/src/main/java/art/arcane/iris/core/nms/container/Pair.java similarity index 81% rename from core/src/main/java/com/volmit/iris/core/nms/container/Pair.java rename to core/src/main/java/art/arcane/iris/core/nms/container/Pair.java index 140bf0200..4a253acb8 100644 --- a/core/src/main/java/com/volmit/iris/core/nms/container/Pair.java +++ b/core/src/main/java/art/arcane/iris/core/nms/container/Pair.java @@ -1,4 +1,4 @@ -package com.volmit.iris.core.nms.container; +package art.arcane.iris.core.nms.container; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/core/src/main/java/com/volmit/iris/core/nms/container/StructurePlacement.java b/core/src/main/java/art/arcane/iris/core/nms/container/StructurePlacement.java similarity index 95% rename from core/src/main/java/com/volmit/iris/core/nms/container/StructurePlacement.java rename to core/src/main/java/art/arcane/iris/core/nms/container/StructurePlacement.java index 173251ddc..0e012fda4 100644 --- a/core/src/main/java/com/volmit/iris/core/nms/container/StructurePlacement.java +++ b/core/src/main/java/art/arcane/iris/core/nms/container/StructurePlacement.java @@ -1,7 +1,7 @@ -package com.volmit.iris.core.nms.container; +package art.arcane.iris.core.nms.container; import com.google.gson.JsonObject; -import com.volmit.iris.engine.object.IrisJigsawStructurePlacement.SpreadType; +import art.arcane.iris.engine.object.IrisJigsawStructurePlacement.SpreadType; import lombok.*; import lombok.experimental.Accessors; import lombok.experimental.SuperBuilder; diff --git a/core/src/main/java/com/volmit/iris/core/nms/datapack/DataVersion.java b/core/src/main/java/art/arcane/iris/core/nms/datapack/DataVersion.java similarity index 74% rename from core/src/main/java/com/volmit/iris/core/nms/datapack/DataVersion.java rename to core/src/main/java/art/arcane/iris/core/nms/datapack/DataVersion.java index 205ad5e31..ab81e9796 100644 --- a/core/src/main/java/com/volmit/iris/core/nms/datapack/DataVersion.java +++ b/core/src/main/java/art/arcane/iris/core/nms/datapack/DataVersion.java @@ -1,11 +1,11 @@ -package com.volmit.iris.core.nms.datapack; +package art.arcane.iris.core.nms.datapack; -import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.core.nms.datapack.v1192.DataFixerV1192; -import com.volmit.iris.core.nms.datapack.v1206.DataFixerV1206; -import com.volmit.iris.core.nms.datapack.v1213.DataFixerV1213; -import com.volmit.iris.core.nms.datapack.v1217.DataFixerV1217; -import com.volmit.iris.util.collection.KMap; +import art.arcane.iris.core.nms.INMS; +import art.arcane.iris.core.nms.datapack.v1192.DataFixerV1192; +import art.arcane.iris.core.nms.datapack.v1206.DataFixerV1206; +import art.arcane.iris.core.nms.datapack.v1213.DataFixerV1213; +import art.arcane.iris.core.nms.datapack.v1217.DataFixerV1217; +import art.arcane.volmlib.util.collection.KMap; import lombok.AccessLevel; import lombok.Getter; diff --git a/core/src/main/java/com/volmit/iris/core/nms/datapack/IDataFixer.java b/core/src/main/java/art/arcane/iris/core/nms/datapack/IDataFixer.java similarity index 78% rename from core/src/main/java/com/volmit/iris/core/nms/datapack/IDataFixer.java rename to core/src/main/java/art/arcane/iris/core/nms/datapack/IDataFixer.java index 0e8a706a3..f58638b05 100644 --- a/core/src/main/java/com/volmit/iris/core/nms/datapack/IDataFixer.java +++ b/core/src/main/java/art/arcane/iris/core/nms/datapack/IDataFixer.java @@ -1,8 +1,8 @@ -package com.volmit.iris.core.nms.datapack; +package art.arcane.iris.core.nms.datapack; -import com.volmit.iris.engine.object.IrisBiomeCustom; -import com.volmit.iris.engine.object.IrisDimensionTypeOptions; -import com.volmit.iris.util.json.JSONObject; +import art.arcane.iris.engine.object.IrisBiomeCustom; +import art.arcane.iris.engine.object.IrisDimensionTypeOptions; +import art.arcane.volmlib.util.json.JSONObject; import org.jetbrains.annotations.Nullable; public interface IDataFixer { diff --git a/core/src/main/java/com/volmit/iris/core/nms/datapack/v1192/DataFixerV1192.java b/core/src/main/java/art/arcane/iris/core/nms/datapack/v1192/DataFixerV1192.java similarity index 91% rename from core/src/main/java/com/volmit/iris/core/nms/datapack/v1192/DataFixerV1192.java rename to core/src/main/java/art/arcane/iris/core/nms/datapack/v1192/DataFixerV1192.java index a9bb59e0e..26b8b362a 100644 --- a/core/src/main/java/com/volmit/iris/core/nms/datapack/v1192/DataFixerV1192.java +++ b/core/src/main/java/art/arcane/iris/core/nms/datapack/v1192/DataFixerV1192.java @@ -1,13 +1,13 @@ -package com.volmit.iris.core.nms.datapack.v1192; +package art.arcane.iris.core.nms.datapack.v1192; -import com.volmit.iris.core.nms.datapack.IDataFixer; -import com.volmit.iris.engine.object.IrisDimensionTypeOptions; -import com.volmit.iris.util.json.JSONObject; +import art.arcane.iris.core.nms.datapack.IDataFixer; +import art.arcane.iris.engine.object.IrisDimensionTypeOptions; +import art.arcane.volmlib.util.json.JSONObject; import org.jetbrains.annotations.Nullable; import java.util.Map; -import static com.volmit.iris.engine.object.IrisDimensionTypeOptions.TriState.*; +import static art.arcane.iris.engine.object.IrisDimensionTypeOptions.TriState.*; public class DataFixerV1192 implements IDataFixer { private static final Map OPTIONS = Map.of( diff --git a/core/src/main/java/com/volmit/iris/core/nms/datapack/v1206/DataFixerV1206.java b/core/src/main/java/art/arcane/iris/core/nms/datapack/v1206/DataFixerV1206.java similarity index 80% rename from core/src/main/java/com/volmit/iris/core/nms/datapack/v1206/DataFixerV1206.java rename to core/src/main/java/art/arcane/iris/core/nms/datapack/v1206/DataFixerV1206.java index eb8b59c28..a49ccbd34 100644 --- a/core/src/main/java/com/volmit/iris/core/nms/datapack/v1206/DataFixerV1206.java +++ b/core/src/main/java/art/arcane/iris/core/nms/datapack/v1206/DataFixerV1206.java @@ -1,12 +1,12 @@ -package com.volmit.iris.core.nms.datapack.v1206; +package art.arcane.iris.core.nms.datapack.v1206; -import com.volmit.iris.core.nms.datapack.v1192.DataFixerV1192; -import com.volmit.iris.engine.object.IrisBiomeCustom; -import com.volmit.iris.engine.object.IrisBiomeCustomSpawn; -import com.volmit.iris.engine.object.IrisBiomeCustomSpawnType; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.json.JSONArray; -import com.volmit.iris.util.json.JSONObject; +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.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.json.JSONArray; +import art.arcane.volmlib.util.json.JSONObject; import java.util.Locale; diff --git a/core/src/main/java/com/volmit/iris/core/nms/datapack/v1213/DataFixerV1213.java b/core/src/main/java/art/arcane/iris/core/nms/datapack/v1213/DataFixerV1213.java similarity index 51% rename from core/src/main/java/com/volmit/iris/core/nms/datapack/v1213/DataFixerV1213.java rename to core/src/main/java/art/arcane/iris/core/nms/datapack/v1213/DataFixerV1213.java index 7a762e77d..e79fa19e1 100644 --- a/core/src/main/java/com/volmit/iris/core/nms/datapack/v1213/DataFixerV1213.java +++ b/core/src/main/java/art/arcane/iris/core/nms/datapack/v1213/DataFixerV1213.java @@ -1,9 +1,9 @@ -package com.volmit.iris.core.nms.datapack.v1213; +package art.arcane.iris.core.nms.datapack.v1213; -import com.volmit.iris.core.nms.datapack.v1206.DataFixerV1206; -import com.volmit.iris.engine.object.IrisBiomeCustom; -import com.volmit.iris.util.json.JSONArray; -import com.volmit.iris.util.json.JSONObject; +import art.arcane.iris.core.nms.datapack.v1206.DataFixerV1206; +import art.arcane.iris.engine.object.IrisBiomeCustom; +import art.arcane.volmlib.util.json.JSONArray; +import art.arcane.volmlib.util.json.JSONObject; public class DataFixerV1213 extends DataFixerV1206 { diff --git a/core/src/main/java/com/volmit/iris/core/nms/datapack/v1217/DataFixerV1217.java b/core/src/main/java/art/arcane/iris/core/nms/datapack/v1217/DataFixerV1217.java similarity index 96% rename from core/src/main/java/com/volmit/iris/core/nms/datapack/v1217/DataFixerV1217.java rename to core/src/main/java/art/arcane/iris/core/nms/datapack/v1217/DataFixerV1217.java index aab0f8a57..8f0e946a2 100644 --- a/core/src/main/java/com/volmit/iris/core/nms/datapack/v1217/DataFixerV1217.java +++ b/core/src/main/java/art/arcane/iris/core/nms/datapack/v1217/DataFixerV1217.java @@ -1,9 +1,9 @@ -package com.volmit.iris.core.nms.datapack.v1217; +package art.arcane.iris.core.nms.datapack.v1217; -import com.volmit.iris.core.nms.datapack.v1213.DataFixerV1213; -import com.volmit.iris.engine.object.IrisBiomeCustom; -import com.volmit.iris.util.json.JSONArray; -import com.volmit.iris.util.json.JSONObject; +import art.arcane.iris.core.nms.datapack.v1213.DataFixerV1213; +import art.arcane.iris.engine.object.IrisBiomeCustom; +import art.arcane.volmlib.util.json.JSONArray; +import art.arcane.volmlib.util.json.JSONObject; import java.util.Map; diff --git a/core/src/main/java/com/volmit/iris/core/nms/v1X/NMSBinding1X.java b/core/src/main/java/art/arcane/iris/core/nms/v1X/NMSBinding1X.java similarity index 88% rename from core/src/main/java/com/volmit/iris/core/nms/v1X/NMSBinding1X.java rename to core/src/main/java/art/arcane/iris/core/nms/v1X/NMSBinding1X.java index 40835b851..c14e8de8c 100644 --- a/core/src/main/java/com/volmit/iris/core/nms/v1X/NMSBinding1X.java +++ b/core/src/main/java/art/arcane/iris/core/nms/v1X/NMSBinding1X.java @@ -16,24 +16,24 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.nms.v1X; +package art.arcane.iris.core.nms.v1X; -import com.volmit.iris.Iris; -import com.volmit.iris.core.link.Identifier; -import com.volmit.iris.core.nms.INMSBinding; -import com.volmit.iris.core.nms.container.BiomeColor; -import com.volmit.iris.core.nms.container.BlockProperty; -import com.volmit.iris.core.nms.datapack.DataVersion; -import com.volmit.iris.core.nms.container.Pair; -import com.volmit.iris.core.nms.container.StructurePlacement; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.mantle.Mantle; -import com.volmit.iris.util.math.Vector3d; -import com.volmit.iris.util.nbt.mca.palette.MCABiomeContainer; -import com.volmit.iris.util.nbt.mca.palette.MCAPaletteAccess; -import com.volmit.iris.util.nbt.tag.CompoundTag; +import art.arcane.iris.Iris; +import art.arcane.iris.core.link.Identifier; +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.core.nms.container.Pair; +import art.arcane.iris.core.nms.container.StructurePlacement; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.math.Vector3d; +import art.arcane.volmlib.util.nbt.mca.palette.MCABiomeContainer; +import art.arcane.volmlib.util.nbt.mca.palette.MCAPaletteAccess; +import art.arcane.volmlib.util.nbt.tag.CompoundTag; import org.bukkit.*; import org.bukkit.block.Biome; import org.bukkit.entity.Entity; diff --git a/core/src/main/java/com/volmit/iris/core/pack/IrisPack.java b/core/src/main/java/art/arcane/iris/core/pack/IrisPack.java similarity index 94% rename from core/src/main/java/com/volmit/iris/core/pack/IrisPack.java rename to core/src/main/java/art/arcane/iris/core/pack/IrisPack.java index f67fb507e..81c9a382c 100644 --- a/core/src/main/java/com/volmit/iris/core/pack/IrisPack.java +++ b/core/src/main/java/art/arcane/iris/core/pack/IrisPack.java @@ -16,22 +16,22 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.pack; +package art.arcane.iris.core.pack; -import com.volmit.iris.Iris; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.loader.ResourceLoader; -import com.volmit.iris.core.service.StudioSVC; -import com.volmit.iris.engine.object.IrisDimension; -import com.volmit.iris.engine.object.IrisWorld; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.exceptions.IrisException; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.io.IO; -import com.volmit.iris.util.json.JSONArray; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.plugin.VolmitSender; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.Iris; +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.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.plugin.VolmitSender; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import lombok.Data; import org.bukkit.World; import org.zeroturnaround.zip.commons.FileUtils; diff --git a/core/src/main/java/com/volmit/iris/core/pack/IrisPackRepository.java b/core/src/main/java/art/arcane/iris/core/pack/IrisPackRepository.java similarity index 91% rename from core/src/main/java/com/volmit/iris/core/pack/IrisPackRepository.java rename to core/src/main/java/art/arcane/iris/core/pack/IrisPackRepository.java index 71a68908b..d2869a59a 100644 --- a/core/src/main/java/com/volmit/iris/core/pack/IrisPackRepository.java +++ b/core/src/main/java/art/arcane/iris/core/pack/IrisPackRepository.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.pack; +package art.arcane.iris.core.pack; -import com.volmit.iris.Iris; -import com.volmit.iris.core.service.StudioSVC; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.plugin.VolmitSender; -import com.volmit.iris.util.scheduling.jobs.DownloadJob; -import com.volmit.iris.util.scheduling.jobs.JobCollection; -import com.volmit.iris.util.scheduling.jobs.SingleJob; +import art.arcane.iris.Iris; +import art.arcane.iris.core.service.StudioSVC; +import art.arcane.volmlib.util.format.Form; +import art.arcane.iris.util.plugin.VolmitSender; +import art.arcane.iris.util.scheduling.jobs.DownloadJob; +import art.arcane.iris.util.scheduling.jobs.JobCollection; +import art.arcane.iris.util.scheduling.jobs.SingleJob; import lombok.Builder; import lombok.Data; import org.zeroturnaround.zip.ZipUtil; diff --git a/core/src/main/java/com/volmit/iris/core/pregenerator/ChunkUpdater.java b/core/src/main/java/art/arcane/iris/core/pregenerator/ChunkUpdater.java similarity index 94% rename from core/src/main/java/com/volmit/iris/core/pregenerator/ChunkUpdater.java rename to core/src/main/java/art/arcane/iris/core/pregenerator/ChunkUpdater.java index 1dbd26172..de54a9b42 100644 --- a/core/src/main/java/com/volmit/iris/core/pregenerator/ChunkUpdater.java +++ b/core/src/main/java/art/arcane/iris/core/pregenerator/ChunkUpdater.java @@ -1,18 +1,18 @@ -package com.volmit.iris.core.pregenerator; +package art.arcane.iris.core.pregenerator; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.service.PreservationSVC; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.mantle.flag.MantleFlag; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.math.Position2; -import com.volmit.iris.util.math.RollingSequence; -import com.volmit.iris.util.plugin.chunk.TicketHolder; -import com.volmit.iris.util.profile.LoadBalancer; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.core.service.PreservationSVC; +import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.volmlib.util.format.Form; +import art.arcane.volmlib.util.mantle.flag.MantleFlag; +import art.arcane.volmlib.util.math.M; +import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.RollingSequence; +import art.arcane.iris.util.plugin.chunk.TicketHolder; +import art.arcane.iris.util.profile.LoadBalancer; +import art.arcane.iris.util.scheduling.J; import io.papermc.lib.PaperLib; import org.bukkit.Bukkit; import org.bukkit.Chunk; diff --git a/core/src/main/java/com/volmit/iris/core/pregenerator/DeepSearchPregenerator.java b/core/src/main/java/art/arcane/iris/core/pregenerator/DeepSearchPregenerator.java similarity index 93% rename from core/src/main/java/com/volmit/iris/core/pregenerator/DeepSearchPregenerator.java rename to core/src/main/java/art/arcane/iris/core/pregenerator/DeepSearchPregenerator.java index e9d2b8f74..95a39527c 100644 --- a/core/src/main/java/com/volmit/iris/core/pregenerator/DeepSearchPregenerator.java +++ b/core/src/main/java/art/arcane/iris/core/pregenerator/DeepSearchPregenerator.java @@ -1,20 +1,20 @@ -package com.volmit.iris.core.pregenerator; +package art.arcane.iris.core.pregenerator; import com.google.gson.Gson; -import com.volmit.iris.Iris; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.io.IO; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.math.Position2; -import com.volmit.iris.util.math.RollingSequence; -import com.volmit.iris.util.math.Spiraler; -import com.volmit.iris.util.scheduling.ChronoLatch; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.iris.util.format.C; +import art.arcane.volmlib.util.format.Form; +import art.arcane.volmlib.util.io.IO; +import art.arcane.volmlib.util.math.M; +import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.RollingSequence; +import art.arcane.volmlib.util.math.Spiraler; +import art.arcane.volmlib.util.scheduling.ChronoLatch; +import art.arcane.iris.util.scheduling.J; import lombok.Data; import lombok.Getter; import org.bukkit.Bukkit; diff --git a/core/src/main/java/com/volmit/iris/core/pregenerator/IrisPregenerator.java b/core/src/main/java/art/arcane/iris/core/pregenerator/IrisPregenerator.java similarity index 94% rename from core/src/main/java/com/volmit/iris/core/pregenerator/IrisPregenerator.java rename to core/src/main/java/art/arcane/iris/core/pregenerator/IrisPregenerator.java index e90307dc9..5b2d0b721 100644 --- a/core/src/main/java/com/volmit/iris/core/pregenerator/IrisPregenerator.java +++ b/core/src/main/java/art/arcane/iris/core/pregenerator/IrisPregenerator.java @@ -16,22 +16,22 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.pregenerator; +package art.arcane.iris.core.pregenerator; -import com.volmit.iris.Iris; -import com.volmit.iris.core.tools.IrisPackBenchmarking; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.mantle.Mantle; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.math.Position2; -import com.volmit.iris.util.math.RollingSequence; -import com.volmit.iris.util.scheduling.ChronoLatch; -import com.volmit.iris.util.scheduling.J; -import com.volmit.iris.util.scheduling.Looper; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.Iris; +import art.arcane.iris.core.tools.IrisPackBenchmarking; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KSet; +import art.arcane.iris.util.format.C; +import art.arcane.volmlib.util.format.Form; +import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.math.M; +import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.RollingSequence; +import art.arcane.volmlib.util.scheduling.ChronoLatch; +import art.arcane.iris.util.scheduling.J; +import art.arcane.volmlib.util.scheduling.Looper; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; diff --git a/core/src/main/java/com/volmit/iris/core/pregenerator/LazyPregenerator.java b/core/src/main/java/art/arcane/iris/core/pregenerator/LazyPregenerator.java similarity index 95% rename from core/src/main/java/com/volmit/iris/core/pregenerator/LazyPregenerator.java rename to core/src/main/java/art/arcane/iris/core/pregenerator/LazyPregenerator.java index dc58f2ed5..aa99c9bd8 100644 --- a/core/src/main/java/com/volmit/iris/core/pregenerator/LazyPregenerator.java +++ b/core/src/main/java/art/arcane/iris/core/pregenerator/LazyPregenerator.java @@ -1,16 +1,16 @@ -package com.volmit.iris.core.pregenerator; +package art.arcane.iris.core.pregenerator; import com.google.gson.Gson; -import com.volmit.iris.Iris; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.io.IO; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.math.Position2; -import com.volmit.iris.util.math.RollingSequence; -import com.volmit.iris.util.math.Spiraler; -import com.volmit.iris.util.scheduling.ChronoLatch; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.iris.util.format.C; +import art.arcane.volmlib.util.format.Form; +import art.arcane.volmlib.util.io.IO; +import art.arcane.volmlib.util.math.M; +import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.RollingSequence; +import art.arcane.volmlib.util.math.Spiraler; +import art.arcane.volmlib.util.scheduling.ChronoLatch; +import art.arcane.iris.util.scheduling.J; import io.papermc.lib.PaperLib; import lombok.Data; import lombok.Getter; diff --git a/core/src/main/java/com/volmit/iris/core/pregenerator/PregenListener.java b/core/src/main/java/art/arcane/iris/core/pregenerator/PregenListener.java similarity index 97% rename from core/src/main/java/com/volmit/iris/core/pregenerator/PregenListener.java rename to core/src/main/java/art/arcane/iris/core/pregenerator/PregenListener.java index 6f5d83194..b4d30f8c9 100644 --- a/core/src/main/java/com/volmit/iris/core/pregenerator/PregenListener.java +++ b/core/src/main/java/art/arcane/iris/core/pregenerator/PregenListener.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.pregenerator; +package art.arcane.iris.core.pregenerator; 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/com/volmit/iris/core/pregenerator/PregenTask.java b/core/src/main/java/art/arcane/iris/core/pregenerator/PregenTask.java similarity index 94% rename from core/src/main/java/com/volmit/iris/core/pregenerator/PregenTask.java rename to core/src/main/java/art/arcane/iris/core/pregenerator/PregenTask.java index db8d76e7a..1e6b0de6e 100644 --- a/core/src/main/java/com/volmit/iris/core/pregenerator/PregenTask.java +++ b/core/src/main/java/art/arcane/iris/core/pregenerator/PregenTask.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.pregenerator; +package art.arcane.iris.core.pregenerator; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.math.Position2; -import com.volmit.iris.util.math.Spiraled; -import com.volmit.iris.util.math.Spiraler; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Spiraled; +import art.arcane.volmlib.util.math.Spiraler; import lombok.Builder; import lombok.Data; diff --git a/core/src/main/java/com/volmit/iris/core/pregenerator/PregeneratorMethod.java b/core/src/main/java/art/arcane/iris/core/pregenerator/PregeneratorMethod.java similarity index 96% rename from core/src/main/java/com/volmit/iris/core/pregenerator/PregeneratorMethod.java rename to core/src/main/java/art/arcane/iris/core/pregenerator/PregeneratorMethod.java index 282f2d2c1..69f171c75 100644 --- a/core/src/main/java/com/volmit/iris/core/pregenerator/PregeneratorMethod.java +++ b/core/src/main/java/art/arcane/iris/core/pregenerator/PregeneratorMethod.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.pregenerator; +package art.arcane.iris.core.pregenerator; -import com.volmit.iris.util.mantle.Mantle; +import art.arcane.iris.util.mantle.Mantle; /** * Represents something that is capable of generating in chunks or regions, or both diff --git a/core/src/main/java/com/volmit/iris/core/pregenerator/TurboPregenerator.java b/core/src/main/java/art/arcane/iris/core/pregenerator/TurboPregenerator.java similarity index 93% rename from core/src/main/java/com/volmit/iris/core/pregenerator/TurboPregenerator.java rename to core/src/main/java/art/arcane/iris/core/pregenerator/TurboPregenerator.java index 4588597c3..3a058df74 100644 --- a/core/src/main/java/com/volmit/iris/core/pregenerator/TurboPregenerator.java +++ b/core/src/main/java/art/arcane/iris/core/pregenerator/TurboPregenerator.java @@ -1,22 +1,22 @@ -package com.volmit.iris.core.pregenerator; +package art.arcane.iris.core.pregenerator; import com.google.gson.Gson; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.io.IO; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.math.Position2; -import com.volmit.iris.util.math.RollingSequence; -import com.volmit.iris.util.math.Spiraler; -import com.volmit.iris.util.parallel.BurstExecutor; -import com.volmit.iris.util.parallel.HyperLock; -import com.volmit.iris.util.parallel.MultiBurst; -import com.volmit.iris.util.scheduling.ChronoLatch; -import com.volmit.iris.util.scheduling.J; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.iris.util.format.C; +import art.arcane.volmlib.util.format.Form; +import art.arcane.volmlib.util.io.IO; +import art.arcane.volmlib.util.math.M; +import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.RollingSequence; +import art.arcane.volmlib.util.math.Spiraler; +import art.arcane.iris.util.parallel.BurstExecutor; +import art.arcane.iris.util.parallel.HyperLock; +import art.arcane.iris.util.parallel.MultiBurst; +import art.arcane.volmlib.util.scheduling.ChronoLatch; +import art.arcane.iris.util.scheduling.J; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import io.papermc.lib.PaperLib; import lombok.Data; import lombok.Getter; diff --git a/core/src/main/java/com/volmit/iris/core/pregenerator/cache/PregenCache.java b/core/src/main/java/art/arcane/iris/core/pregenerator/cache/PregenCache.java similarity index 88% rename from core/src/main/java/com/volmit/iris/core/pregenerator/cache/PregenCache.java rename to core/src/main/java/art/arcane/iris/core/pregenerator/cache/PregenCache.java index e085975c2..9170ffd2a 100644 --- a/core/src/main/java/com/volmit/iris/core/pregenerator/cache/PregenCache.java +++ b/core/src/main/java/art/arcane/iris/core/pregenerator/cache/PregenCache.java @@ -1,7 +1,7 @@ -package com.volmit.iris.core.pregenerator.cache; +package art.arcane.iris.core.pregenerator.cache; -import com.volmit.iris.util.documentation.ChunkCoordinates; -import com.volmit.iris.util.documentation.RegionCoordinates; +import art.arcane.volmlib.util.documentation.ChunkCoordinates; +import art.arcane.volmlib.util.documentation.RegionCoordinates; import java.io.File; diff --git a/core/src/main/java/com/volmit/iris/core/pregenerator/cache/SynchronizedCache.java b/core/src/main/java/art/arcane/iris/core/pregenerator/cache/SynchronizedCache.java similarity index 95% rename from core/src/main/java/com/volmit/iris/core/pregenerator/cache/SynchronizedCache.java rename to core/src/main/java/art/arcane/iris/core/pregenerator/cache/SynchronizedCache.java index 18efefa43..2605ada76 100644 --- a/core/src/main/java/com/volmit/iris/core/pregenerator/cache/SynchronizedCache.java +++ b/core/src/main/java/art/arcane/iris/core/pregenerator/cache/SynchronizedCache.java @@ -1,4 +1,4 @@ -package com.volmit.iris.core.pregenerator.cache; +package art.arcane.iris.core.pregenerator.cache; record SynchronizedCache(PregenCache cache) implements PregenCache { @Override diff --git a/core/src/main/java/com/volmit/iris/core/pregenerator/methods/AsyncOrMedievalPregenMethod.java b/core/src/main/java/art/arcane/iris/core/pregenerator/methods/AsyncOrMedievalPregenMethod.java similarity index 90% rename from core/src/main/java/com/volmit/iris/core/pregenerator/methods/AsyncOrMedievalPregenMethod.java rename to core/src/main/java/art/arcane/iris/core/pregenerator/methods/AsyncOrMedievalPregenMethod.java index f33fe2cdc..bfe1971c6 100644 --- a/core/src/main/java/com/volmit/iris/core/pregenerator/methods/AsyncOrMedievalPregenMethod.java +++ b/core/src/main/java/art/arcane/iris/core/pregenerator/methods/AsyncOrMedievalPregenMethod.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.pregenerator.methods; +package art.arcane.iris.core.pregenerator.methods; -import com.volmit.iris.core.pregenerator.PregenListener; -import com.volmit.iris.core.pregenerator.PregeneratorMethod; -import com.volmit.iris.util.mantle.Mantle; +import art.arcane.iris.core.pregenerator.PregenListener; +import art.arcane.iris.core.pregenerator.PregeneratorMethod; +import art.arcane.iris.util.mantle.Mantle; import io.papermc.lib.PaperLib; import org.bukkit.World; diff --git a/core/src/main/java/com/volmit/iris/core/pregenerator/methods/AsyncPregenMethod.java b/core/src/main/java/art/arcane/iris/core/pregenerator/methods/AsyncPregenMethod.java similarity index 94% rename from core/src/main/java/com/volmit/iris/core/pregenerator/methods/AsyncPregenMethod.java rename to core/src/main/java/art/arcane/iris/core/pregenerator/methods/AsyncPregenMethod.java index 7e92807bf..2ac581650 100644 --- a/core/src/main/java/com/volmit/iris/core/pregenerator/methods/AsyncPregenMethod.java +++ b/core/src/main/java/art/arcane/iris/core/pregenerator/methods/AsyncPregenMethod.java @@ -16,18 +16,18 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.pregenerator.methods; +package art.arcane.iris.core.pregenerator.methods; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.pregenerator.PregenListener; -import com.volmit.iris.core.pregenerator.PregeneratorMethod; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.mantle.Mantle; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.parallel.MultiBurst; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.core.pregenerator.PregenListener; +import art.arcane.iris.core.pregenerator.PregeneratorMethod; +import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.math.M; +import art.arcane.iris.util.parallel.MultiBurst; +import art.arcane.iris.util.scheduling.J; import io.papermc.lib.PaperLib; import org.bukkit.Chunk; import org.bukkit.World; diff --git a/core/src/main/java/com/volmit/iris/core/pregenerator/methods/CachedPregenMethod.java b/core/src/main/java/art/arcane/iris/core/pregenerator/methods/CachedPregenMethod.java similarity index 86% rename from core/src/main/java/com/volmit/iris/core/pregenerator/methods/CachedPregenMethod.java rename to core/src/main/java/art/arcane/iris/core/pregenerator/methods/CachedPregenMethod.java index 91c4ddb87..64eb9ee30 100644 --- a/core/src/main/java/com/volmit/iris/core/pregenerator/methods/CachedPregenMethod.java +++ b/core/src/main/java/art/arcane/iris/core/pregenerator/methods/CachedPregenMethod.java @@ -1,11 +1,11 @@ -package com.volmit.iris.core.pregenerator.methods; +package art.arcane.iris.core.pregenerator.methods; -import com.volmit.iris.Iris; -import com.volmit.iris.core.pregenerator.PregenListener; -import com.volmit.iris.core.pregenerator.PregeneratorMethod; -import com.volmit.iris.core.pregenerator.cache.PregenCache; -import com.volmit.iris.core.service.GlobalCacheSVC; -import com.volmit.iris.util.mantle.Mantle; +import art.arcane.iris.Iris; +import art.arcane.iris.core.pregenerator.PregenListener; +import art.arcane.iris.core.pregenerator.PregeneratorMethod; +import art.arcane.iris.core.pregenerator.cache.PregenCache; +import art.arcane.iris.core.service.GlobalCacheSVC; +import art.arcane.iris.util.mantle.Mantle; import lombok.AllArgsConstructor; @AllArgsConstructor diff --git a/core/src/main/java/com/volmit/iris/core/pregenerator/methods/DummyPregenMethod.java b/core/src/main/java/art/arcane/iris/core/pregenerator/methods/DummyPregenMethod.java similarity index 87% rename from core/src/main/java/com/volmit/iris/core/pregenerator/methods/DummyPregenMethod.java rename to core/src/main/java/art/arcane/iris/core/pregenerator/methods/DummyPregenMethod.java index 9ff345fc3..cdbd0c139 100644 --- a/core/src/main/java/com/volmit/iris/core/pregenerator/methods/DummyPregenMethod.java +++ b/core/src/main/java/art/arcane/iris/core/pregenerator/methods/DummyPregenMethod.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.pregenerator.methods; +package art.arcane.iris.core.pregenerator.methods; -import com.volmit.iris.core.pregenerator.PregenListener; -import com.volmit.iris.core.pregenerator.PregeneratorMethod; -import com.volmit.iris.util.mantle.Mantle; +import art.arcane.iris.core.pregenerator.PregenListener; +import art.arcane.iris.core.pregenerator.PregeneratorMethod; +import art.arcane.iris.util.mantle.Mantle; public class DummyPregenMethod implements PregeneratorMethod { @Override diff --git a/core/src/main/java/com/volmit/iris/core/pregenerator/methods/HybridPregenMethod.java b/core/src/main/java/art/arcane/iris/core/pregenerator/methods/HybridPregenMethod.java similarity index 90% rename from core/src/main/java/com/volmit/iris/core/pregenerator/methods/HybridPregenMethod.java rename to core/src/main/java/art/arcane/iris/core/pregenerator/methods/HybridPregenMethod.java index 8ae773641..4bfcd9259 100644 --- a/core/src/main/java/com/volmit/iris/core/pregenerator/methods/HybridPregenMethod.java +++ b/core/src/main/java/art/arcane/iris/core/pregenerator/methods/HybridPregenMethod.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.pregenerator.methods; +package art.arcane.iris.core.pregenerator.methods; -import com.volmit.iris.core.pregenerator.PregenListener; -import com.volmit.iris.core.pregenerator.PregeneratorMethod; -import com.volmit.iris.util.mantle.Mantle; +import art.arcane.iris.core.pregenerator.PregenListener; +import art.arcane.iris.core.pregenerator.PregeneratorMethod; +import art.arcane.iris.util.mantle.Mantle; import org.bukkit.World; public class HybridPregenMethod implements PregeneratorMethod { diff --git a/core/src/main/java/com/volmit/iris/core/pregenerator/methods/MedievalPregenMethod.java b/core/src/main/java/art/arcane/iris/core/pregenerator/methods/MedievalPregenMethod.java similarity index 87% rename from core/src/main/java/com/volmit/iris/core/pregenerator/methods/MedievalPregenMethod.java rename to core/src/main/java/art/arcane/iris/core/pregenerator/methods/MedievalPregenMethod.java index 2ebfb64b2..ee4cc6c6b 100644 --- a/core/src/main/java/com/volmit/iris/core/pregenerator/methods/MedievalPregenMethod.java +++ b/core/src/main/java/art/arcane/iris/core/pregenerator/methods/MedievalPregenMethod.java @@ -16,18 +16,18 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.pregenerator.methods; +package art.arcane.iris.core.pregenerator.methods; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.pregenerator.PregenListener; -import com.volmit.iris.core.pregenerator.PregeneratorMethod; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.mantle.Mantle; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.core.pregenerator.PregenListener; +import art.arcane.iris.core.pregenerator.PregeneratorMethod; +import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.math.M; +import art.arcane.iris.util.scheduling.J; import org.bukkit.Bukkit; import org.bukkit.Chunk; import org.bukkit.World; diff --git a/core/src/main/java/com/volmit/iris/core/project/Gradle.java b/core/src/main/java/art/arcane/iris/core/project/Gradle.java similarity index 97% rename from core/src/main/java/com/volmit/iris/core/project/Gradle.java rename to core/src/main/java/art/arcane/iris/core/project/Gradle.java index 565e7d39f..1d75418af 100644 --- a/core/src/main/java/com/volmit/iris/core/project/Gradle.java +++ b/core/src/main/java/art/arcane/iris/core/project/Gradle.java @@ -1,7 +1,7 @@ -package com.volmit.iris.core.project; +package art.arcane.iris.core.project; -import com.volmit.iris.Iris; -import com.volmit.iris.util.io.IO; +import art.arcane.iris.Iris; +import art.arcane.volmlib.util.io.IO; import org.zeroturnaround.zip.ZipUtil; import java.io.BufferedInputStream; diff --git a/core/src/main/java/com/volmit/iris/core/project/IrisProject.java b/core/src/main/java/art/arcane/iris/core/project/IrisProject.java similarity index 95% rename from core/src/main/java/com/volmit/iris/core/project/IrisProject.java rename to core/src/main/java/art/arcane/iris/core/project/IrisProject.java index ec9578b24..8f03dab74 100644 --- a/core/src/main/java/com/volmit/iris/core/project/IrisProject.java +++ b/core/src/main/java/art/arcane/iris/core/project/IrisProject.java @@ -16,35 +16,35 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.project; +package art.arcane.iris.core.project; import com.google.gson.Gson; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.loader.IrisRegistrant; -import com.volmit.iris.core.loader.ResourceLoader; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.engine.object.*; -import com.volmit.iris.engine.object.annotations.Snippet; -import com.volmit.iris.engine.platform.PlatformChunkGenerator; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.exceptions.IrisException; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.io.IO; -import com.volmit.iris.util.json.JSONArray; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.plugin.VolmitSender; -import com.volmit.iris.util.scheduling.ChronoLatch; -import com.volmit.iris.util.scheduling.J; -import com.volmit.iris.util.scheduling.O; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; -import com.volmit.iris.util.scheduling.jobs.Job; -import com.volmit.iris.util.scheduling.jobs.JobCollection; -import com.volmit.iris.util.scheduling.jobs.ParallelQueueJob; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +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.core.tools.IrisToolbelt; +import art.arcane.iris.engine.object.*; +import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.engine.platform.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.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.volmlib.util.math.M; +import art.arcane.iris.util.plugin.VolmitSender; +import art.arcane.volmlib.util.scheduling.ChronoLatch; +import art.arcane.iris.util.scheduling.J; +import art.arcane.volmlib.util.scheduling.O; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.util.scheduling.jobs.Job; +import art.arcane.iris.util.scheduling.jobs.JobCollection; +import art.arcane.iris.util.scheduling.jobs.ParallelQueueJob; import lombok.Data; import org.bukkit.Bukkit; import org.bukkit.GameMode; diff --git a/core/src/main/java/com/volmit/iris/core/project/SchemaBuilder.java b/core/src/main/java/art/arcane/iris/core/project/SchemaBuilder.java similarity index 97% rename from core/src/main/java/com/volmit/iris/core/project/SchemaBuilder.java rename to core/src/main/java/art/arcane/iris/core/project/SchemaBuilder.java index 5c4373452..c731394c0 100644 --- a/core/src/main/java/com/volmit/iris/core/project/SchemaBuilder.java +++ b/core/src/main/java/art/arcane/iris/core/project/SchemaBuilder.java @@ -16,22 +16,22 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.project; +package art.arcane.iris.core.project; -import com.volmit.iris.Iris; -import com.volmit.iris.core.link.Identifier; -import com.volmit.iris.core.link.data.DataType; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.loader.IrisRegistrant; -import com.volmit.iris.core.loader.ResourceLoader; -import com.volmit.iris.core.service.ExternalDataSVC; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.data.B; -import com.volmit.iris.util.json.JSONArray; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.reflect.KeyedType; +import art.arcane.iris.Iris; +import art.arcane.iris.core.link.Identifier; +import art.arcane.iris.core.link.data.DataType; +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.core.service.ExternalDataSVC; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.data.B; +import art.arcane.volmlib.util.json.JSONArray; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.iris.util.reflect.KeyedType; import org.bukkit.enchantments.Enchantment; import org.bukkit.potion.PotionEffectType; import org.jetbrains.annotations.NotNull; @@ -732,7 +732,7 @@ public class SchemaBuilder { return "object"; } - if (!c.isAnnotationPresent(Desc.class) && c.getCanonicalName().startsWith("com.volmit.iris.")) { + if (!c.isAnnotationPresent(Desc.class) && c.getCanonicalName().startsWith("art.arcane.iris.")) { warnings.addIfMissing("Unsupported Type: " + c.getCanonicalName() + " Did you forget @Desc?"); } @@ -759,7 +759,7 @@ public class SchemaBuilder { return r.getDeclaredAnnotation(Desc.class).value(); } - if (!r.isPrimitive() && !r.equals(KList.class) && !r.equals(KMap.class) && r.getCanonicalName().startsWith("com.volmit.")) { + 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")); } return ""; diff --git a/core/src/main/java/com/volmit/iris/core/report/Report.java b/core/src/main/java/art/arcane/iris/core/report/Report.java similarity index 97% rename from core/src/main/java/com/volmit/iris/core/report/Report.java rename to core/src/main/java/art/arcane/iris/core/report/Report.java index 67f665fee..f97de5995 100644 --- a/core/src/main/java/com/volmit/iris/core/report/Report.java +++ b/core/src/main/java/art/arcane/iris/core/report/Report.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.report; +package art.arcane.iris.core.report; import lombok.Builder; import lombok.Data; diff --git a/core/src/main/java/com/volmit/iris/core/report/ReportType.java b/core/src/main/java/art/arcane/iris/core/report/ReportType.java similarity index 95% rename from core/src/main/java/com/volmit/iris/core/report/ReportType.java rename to core/src/main/java/art/arcane/iris/core/report/ReportType.java index 5976010a0..8fd19b339 100644 --- a/core/src/main/java/com/volmit/iris/core/report/ReportType.java +++ b/core/src/main/java/art/arcane/iris/core/report/ReportType.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.report; +package art.arcane.iris.core.report; public enum ReportType { ERROR, diff --git a/core/src/main/java/com/volmit/iris/core/scripting/environment/EngineEnvironment.java b/core/src/main/java/art/arcane/iris/core/scripting/environment/EngineEnvironment.java similarity index 71% rename from core/src/main/java/com/volmit/iris/core/scripting/environment/EngineEnvironment.java rename to core/src/main/java/art/arcane/iris/core/scripting/environment/EngineEnvironment.java index efed2f8e6..4fb8c337a 100644 --- a/core/src/main/java/com/volmit/iris/core/scripting/environment/EngineEnvironment.java +++ b/core/src/main/java/art/arcane/iris/core/scripting/environment/EngineEnvironment.java @@ -1,10 +1,10 @@ -package com.volmit.iris.core.scripting.environment; +package art.arcane.iris.core.scripting.environment; -import com.volmit.iris.core.loader.IrisRegistrant; -import com.volmit.iris.core.scripting.func.UpdateExecutor; -import com.volmit.iris.core.scripting.kotlin.environment.IrisExecutionEnvironment; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.util.mantle.MantleChunk; +import art.arcane.iris.core.loader.IrisRegistrant; +import art.arcane.iris.core.scripting.func.UpdateExecutor; +import art.arcane.iris.core.scripting.kotlin.environment.IrisExecutionEnvironment; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.util.mantle.MantleChunk; import lombok.NonNull; import org.bukkit.Chunk; import org.bukkit.Location; diff --git a/core/src/main/java/com/volmit/iris/core/scripting/environment/PackEnvironment.java b/core/src/main/java/art/arcane/iris/core/scripting/environment/PackEnvironment.java similarity index 64% rename from core/src/main/java/com/volmit/iris/core/scripting/environment/PackEnvironment.java rename to core/src/main/java/art/arcane/iris/core/scripting/environment/PackEnvironment.java index 4f0dfd6bb..ff159a715 100644 --- a/core/src/main/java/com/volmit/iris/core/scripting/environment/PackEnvironment.java +++ b/core/src/main/java/art/arcane/iris/core/scripting/environment/PackEnvironment.java @@ -1,9 +1,9 @@ -package com.volmit.iris.core.scripting.environment; +package art.arcane.iris.core.scripting.environment; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.scripting.kotlin.environment.IrisPackExecutionEnvironment; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.core.scripting.kotlin.environment.IrisPackExecutionEnvironment; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.volmlib.util.math.RNG; import lombok.NonNull; import org.jetbrains.annotations.Nullable; diff --git a/core/src/main/java/com/volmit/iris/core/scripting/environment/SimpleEnvironment.java b/core/src/main/java/art/arcane/iris/core/scripting/environment/SimpleEnvironment.java similarity index 87% rename from core/src/main/java/com/volmit/iris/core/scripting/environment/SimpleEnvironment.java rename to core/src/main/java/art/arcane/iris/core/scripting/environment/SimpleEnvironment.java index 6d543cdca..387b0ed2a 100644 --- a/core/src/main/java/com/volmit/iris/core/scripting/environment/SimpleEnvironment.java +++ b/core/src/main/java/art/arcane/iris/core/scripting/environment/SimpleEnvironment.java @@ -1,6 +1,6 @@ -package com.volmit.iris.core.scripting.environment; +package art.arcane.iris.core.scripting.environment; -import com.volmit.iris.core.scripting.kotlin.environment.IrisSimpleExecutionEnvironment; +import art.arcane.iris.core.scripting.kotlin.environment.IrisSimpleExecutionEnvironment; import lombok.NonNull; import org.jetbrains.annotations.Nullable; diff --git a/core/src/main/java/art/arcane/iris/core/scripting/func/BiomeLookup.java b/core/src/main/java/art/arcane/iris/core/scripting/func/BiomeLookup.java new file mode 100644 index 000000000..f7d306c24 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/core/scripting/func/BiomeLookup.java @@ -0,0 +1,10 @@ +package art.arcane.iris.core.scripting.func; + +import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.volmlib.util.documentation.BlockCoordinates; + +@FunctionalInterface +public interface BiomeLookup { + @BlockCoordinates + IrisBiome at(int x, int z); +} diff --git a/core/src/main/java/com/volmit/iris/core/scripting/func/UpdateExecutor.java b/core/src/main/java/art/arcane/iris/core/scripting/func/UpdateExecutor.java similarity index 91% rename from core/src/main/java/com/volmit/iris/core/scripting/func/UpdateExecutor.java rename to core/src/main/java/art/arcane/iris/core/scripting/func/UpdateExecutor.java index cf420733b..3796ceb5d 100644 --- a/core/src/main/java/com/volmit/iris/core/scripting/func/UpdateExecutor.java +++ b/core/src/main/java/art/arcane/iris/core/scripting/func/UpdateExecutor.java @@ -1,4 +1,4 @@ -package com.volmit.iris.core.scripting.func; +package art.arcane.iris.core.scripting.func; import org.jetbrains.annotations.NotNull; diff --git a/core/src/main/java/com/volmit/iris/core/service/BoardSVC.java b/core/src/main/java/art/arcane/iris/core/service/BoardSVC.java similarity index 86% rename from core/src/main/java/com/volmit/iris/core/service/BoardSVC.java rename to core/src/main/java/art/arcane/iris/core/service/BoardSVC.java index e8eadc558..4cd666eaf 100644 --- a/core/src/main/java/com/volmit/iris/core/service/BoardSVC.java +++ b/core/src/main/java/art/arcane/iris/core/service/BoardSVC.java @@ -16,21 +16,22 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.service; +package art.arcane.iris.core.service; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.util.board.BoardManager; -import com.volmit.iris.util.board.BoardProvider; -import com.volmit.iris.util.board.BoardSettings; -import com.volmit.iris.util.board.ScoreDirection; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.plugin.IrisService; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.volmlib.util.board.Board; +import art.arcane.volmlib.util.board.BoardManager; +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.collection.KMap; +import art.arcane.iris.util.format.C; +import art.arcane.volmlib.util.format.Form; +import art.arcane.iris.util.plugin.IrisService; +import art.arcane.iris.util.scheduling.J; import lombok.Data; import org.bukkit.Location; import org.bukkit.World; @@ -50,15 +51,15 @@ import java.util.concurrent.TimeUnit; public class BoardSVC implements IrisService, BoardProvider { private final KMap boards = new KMap<>(); private ScheduledExecutorService executor; - private BoardManager manager; + private BoardManager manager; @Override public void onEnable() { executor = Executors.newScheduledThreadPool(0, Thread.ofVirtual().factory()); - manager = new BoardManager(Iris.instance, BoardSettings.builder() + manager = new BoardManager<>(Iris.instance, BoardSettings.builder() .boardProvider(this) .scoreDirection(ScoreDirection.DOWN) - .build()); + .build(), Board::new); } @Override diff --git a/core/src/main/java/com/volmit/iris/core/service/CommandSVC.java b/core/src/main/java/art/arcane/iris/core/service/CommandSVC.java similarity index 84% rename from core/src/main/java/com/volmit/iris/core/service/CommandSVC.java rename to core/src/main/java/art/arcane/iris/core/service/CommandSVC.java index 7ca3ba94e..eee523970 100644 --- a/core/src/main/java/com/volmit/iris/core/service/CommandSVC.java +++ b/core/src/main/java/art/arcane/iris/core/service/CommandSVC.java @@ -16,20 +16,20 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.service; +package art.arcane.iris.core.service; -import com.volmit.iris.Iris; -import com.volmit.iris.core.commands.CommandIris; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.decree.DecreeContext; -import com.volmit.iris.util.decree.DecreeSystem; -import com.volmit.iris.util.decree.virtual.VirtualDecreeCommand; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.plugin.IrisService; -import com.volmit.iris.util.plugin.VolmitSender; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.iris.core.commands.CommandIris; +import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.decree.DecreeContext; +import art.arcane.iris.util.decree.DecreeSystem; +import art.arcane.iris.util.decree.virtual.VirtualDecreeCommand; +import art.arcane.iris.util.format.C; +import art.arcane.iris.util.plugin.IrisService; +import art.arcane.iris.util.plugin.VolmitSender; +import art.arcane.iris.util.scheduling.J; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerCommandPreprocessEvent; import org.bukkit.event.server.ServerCommandEvent; diff --git a/core/src/main/java/com/volmit/iris/core/service/ConversionSVC.java b/core/src/main/java/art/arcane/iris/core/service/ConversionSVC.java similarity index 91% rename from core/src/main/java/com/volmit/iris/core/service/ConversionSVC.java rename to core/src/main/java/art/arcane/iris/core/service/ConversionSVC.java index 7786e5aed..095aca94b 100644 --- a/core/src/main/java/com/volmit/iris/core/service/ConversionSVC.java +++ b/core/src/main/java/art/arcane/iris/core/service/ConversionSVC.java @@ -16,27 +16,27 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.service; +package art.arcane.iris.core.service; import com.google.gson.Gson; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.object.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.function.Consumer2; -import com.volmit.iris.util.io.Converter; -import com.volmit.iris.util.io.IO; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.nbt.io.NBTUtil; -import com.volmit.iris.util.nbt.io.NamedTag; -import com.volmit.iris.util.nbt.mca.NBTWorld; -import com.volmit.iris.util.nbt.tag.CompoundTag; -import com.volmit.iris.util.nbt.tag.IntTag; -import com.volmit.iris.util.nbt.tag.ListTag; -import com.volmit.iris.util.plugin.IrisService; -import com.volmit.iris.util.plugin.VolmitSender; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.object.*; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.format.Form; +import art.arcane.volmlib.util.function.Consumer2; +import art.arcane.volmlib.util.io.Converter; +import art.arcane.volmlib.util.io.IO; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.volmlib.util.nbt.io.NBTUtil; +import art.arcane.volmlib.util.nbt.io.NamedTag; +import art.arcane.iris.util.nbt.mca.NBTWorld; +import art.arcane.volmlib.util.nbt.tag.CompoundTag; +import art.arcane.volmlib.util.nbt.tag.IntTag; +import art.arcane.volmlib.util.nbt.tag.ListTag; +import art.arcane.iris.util.plugin.IrisService; +import art.arcane.iris.util.plugin.VolmitSender; +import art.arcane.iris.util.scheduling.J; import org.bukkit.Material; import org.bukkit.block.data.BlockData; import org.bukkit.block.data.type.Jigsaw; diff --git a/core/src/main/java/com/volmit/iris/core/service/EditSVC.java b/core/src/main/java/art/arcane/iris/core/service/EditSVC.java similarity index 90% rename from core/src/main/java/com/volmit/iris/core/service/EditSVC.java rename to core/src/main/java/art/arcane/iris/core/service/EditSVC.java index dc944f1f2..675d7f2b2 100644 --- a/core/src/main/java/com/volmit/iris/core/service/EditSVC.java +++ b/core/src/main/java/art/arcane/iris/core/service/EditSVC.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.service; +package art.arcane.iris.core.service; -import com.volmit.iris.Iris; -import com.volmit.iris.core.edit.BlockEditor; -import com.volmit.iris.core.edit.BukkitBlockEditor; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.plugin.IrisService; +import art.arcane.iris.Iris; +import art.arcane.iris.core.edit.BlockEditor; +import art.arcane.iris.core.edit.BukkitBlockEditor; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.math.M; +import art.arcane.iris.util.plugin.IrisService; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.block.Biome; diff --git a/core/src/main/java/com/volmit/iris/core/service/ExternalDataSVC.java b/core/src/main/java/art/arcane/iris/core/service/ExternalDataSVC.java similarity index 93% rename from core/src/main/java/com/volmit/iris/core/service/ExternalDataSVC.java rename to core/src/main/java/art/arcane/iris/core/service/ExternalDataSVC.java index 528e41869..92a94fa28 100644 --- a/core/src/main/java/com/volmit/iris/core/service/ExternalDataSVC.java +++ b/core/src/main/java/art/arcane/iris/core/service/ExternalDataSVC.java @@ -16,19 +16,19 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.service; +package art.arcane.iris.core.service; -import com.volmit.iris.Iris; -import com.volmit.iris.core.link.*; -import com.volmit.iris.core.link.data.DataType; -import com.volmit.iris.core.nms.container.BlockProperty; -import com.volmit.iris.core.nms.container.Pair; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.io.JarScanner; -import com.volmit.iris.util.plugin.IrisService; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.iris.core.link.*; +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.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.io.JarScanner; +import art.arcane.iris.util.plugin.IrisService; +import art.arcane.iris.util.scheduling.J; import lombok.Data; import lombok.NonNull; import org.bukkit.Bukkit; @@ -195,7 +195,7 @@ public class ExternalDataSVC implements IrisService { } private static KList createProviders() { - JarScanner jar = new JarScanner(Iris.instance.getJarFile(), "com.volmit.iris.core.link.data", false); + JarScanner jar = new JarScanner(Iris.instance.getJarFile(), "art.arcane.iris.core.link.data", false); J.attempt(jar::scan); KList providers = new KList<>(); diff --git a/core/src/main/java/com/volmit/iris/core/service/GlobalCacheSVC.java b/core/src/main/java/art/arcane/iris/core/service/GlobalCacheSVC.java similarity index 92% rename from core/src/main/java/com/volmit/iris/core/service/GlobalCacheSVC.java rename to core/src/main/java/art/arcane/iris/core/service/GlobalCacheSVC.java index 4d6e2db76..6d80322e7 100644 --- a/core/src/main/java/com/volmit/iris/core/service/GlobalCacheSVC.java +++ b/core/src/main/java/art/arcane/iris/core/service/GlobalCacheSVC.java @@ -1,11 +1,11 @@ -package com.volmit.iris.core.service; +package art.arcane.iris.core.service; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.pregenerator.cache.PregenCache; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.plugin.IrisService; -import com.volmit.iris.util.scheduling.Looper; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.core.pregenerator.cache.PregenCache; +import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.plugin.IrisService; +import art.arcane.volmlib.util.scheduling.Looper; import lombok.NonNull; import org.bukkit.Bukkit; import org.bukkit.World; diff --git a/core/src/main/java/com/volmit/iris/core/service/IrisEngineSVC.java b/core/src/main/java/art/arcane/iris/core/service/IrisEngineSVC.java similarity index 93% rename from core/src/main/java/com/volmit/iris/core/service/IrisEngineSVC.java rename to core/src/main/java/art/arcane/iris/core/service/IrisEngineSVC.java index 36e4b6d98..f410996fa 100644 --- a/core/src/main/java/com/volmit/iris/core/service/IrisEngineSVC.java +++ b/core/src/main/java/art/arcane/iris/core/service/IrisEngineSVC.java @@ -1,21 +1,21 @@ -package com.volmit.iris.core.service; +package art.arcane.iris.core.service; import com.google.common.util.concurrent.AtomicDouble; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.loader.ResourceLoader; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.platform.PlatformChunkGenerator; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.plugin.IrisService; -import com.volmit.iris.util.plugin.VolmitSender; -import com.volmit.iris.util.scheduling.Looper; -import com.volmit.iris.util.stream.utility.CachedStream2D; -import com.volmit.iris.util.stream.utility.CachedStream3D; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.core.loader.ResourceLoader; +import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.format.C; +import art.arcane.volmlib.util.format.Form; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.plugin.IrisService; +import art.arcane.iris.util.plugin.VolmitSender; +import art.arcane.volmlib.util.scheduling.Looper; +import art.arcane.iris.util.stream.utility.CachedStream2D; +import art.arcane.iris.util.stream.utility.CachedStream3D; import lombok.Synchronized; import org.bukkit.Bukkit; import org.bukkit.World; diff --git a/core/src/main/java/com/volmit/iris/core/service/LogFilterSVC.java b/core/src/main/java/art/arcane/iris/core/service/LogFilterSVC.java similarity index 96% rename from core/src/main/java/com/volmit/iris/core/service/LogFilterSVC.java rename to core/src/main/java/art/arcane/iris/core/service/LogFilterSVC.java index c501d1e35..a04879928 100644 --- a/core/src/main/java/com/volmit/iris/core/service/LogFilterSVC.java +++ b/core/src/main/java/art/arcane/iris/core/service/LogFilterSVC.java @@ -1,7 +1,7 @@ -package com.volmit.iris.core.service; +package art.arcane.iris.core.service; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.plugin.IrisService; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.iris.util.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/com/volmit/iris/core/service/ObjectSVC.java b/core/src/main/java/art/arcane/iris/core/service/ObjectSVC.java similarity index 93% rename from core/src/main/java/com/volmit/iris/core/service/ObjectSVC.java rename to core/src/main/java/art/arcane/iris/core/service/ObjectSVC.java index 5fadf8b4a..ba4c28a20 100644 --- a/core/src/main/java/com/volmit/iris/core/service/ObjectSVC.java +++ b/core/src/main/java/art/arcane/iris/core/service/ObjectSVC.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.service; +package art.arcane.iris.core.service; -import com.volmit.iris.Iris; -import com.volmit.iris.util.plugin.IrisService; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.iris.util.plugin.IrisService; +import art.arcane.iris.util.scheduling.J; import lombok.Getter; import org.bukkit.Bukkit; import org.bukkit.block.Block; diff --git a/core/src/main/java/com/volmit/iris/core/service/PreservationSVC.java b/core/src/main/java/art/arcane/iris/core/service/PreservationSVC.java similarity index 91% rename from core/src/main/java/com/volmit/iris/core/service/PreservationSVC.java rename to core/src/main/java/art/arcane/iris/core/service/PreservationSVC.java index 2fb0e8d74..dfb79c3fc 100644 --- a/core/src/main/java/com/volmit/iris/core/service/PreservationSVC.java +++ b/core/src/main/java/art/arcane/iris/core/service/PreservationSVC.java @@ -16,16 +16,16 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.service; +package art.arcane.iris.core.service; -import com.volmit.iris.Iris; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.framework.MeteredCache; -import com.volmit.iris.util.context.IrisContext; -import com.volmit.iris.util.data.KCache; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.plugin.IrisService; -import com.volmit.iris.util.scheduling.Looper; +import art.arcane.iris.Iris; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.engine.framework.MeteredCache; +import art.arcane.iris.util.context.IrisContext; +import art.arcane.volmlib.util.data.KCache; +import art.arcane.volmlib.util.format.Form; +import art.arcane.iris.util.plugin.IrisService; +import art.arcane.volmlib.util.scheduling.Looper; import org.jetbrains.annotations.Unmodifiable; import java.lang.ref.WeakReference; diff --git a/core/src/main/java/com/volmit/iris/core/service/StudioSVC.java b/core/src/main/java/art/arcane/iris/core/service/StudioSVC.java similarity index 94% rename from core/src/main/java/com/volmit/iris/core/service/StudioSVC.java rename to core/src/main/java/art/arcane/iris/core/service/StudioSVC.java index fb2be0f33..b80219671 100644 --- a/core/src/main/java/com/volmit/iris/core/service/StudioSVC.java +++ b/core/src/main/java/art/arcane/iris/core/service/StudioSVC.java @@ -16,28 +16,28 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.service; +package art.arcane.iris.core.service; import com.google.gson.JsonSyntaxException; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.ServerConfigurator; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.core.pack.IrisPack; -import com.volmit.iris.core.project.IrisProject; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.object.IrisDimension; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.exceptions.IrisException; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.io.IO; -import com.volmit.iris.util.json.JSONException; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.plugin.IrisService; -import com.volmit.iris.util.plugin.VolmitSender; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.core.ServerConfigurator; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.core.nms.INMS; +import art.arcane.iris.core.pack.IrisPack; +import art.arcane.iris.core.project.IrisProject; +import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.volmlib.util.collection.KMap; +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.JSONException; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.iris.util.plugin.IrisService; +import art.arcane.iris.util.plugin.VolmitSender; +import art.arcane.iris.util.scheduling.J; import org.bukkit.Bukkit; import org.bukkit.World; import org.zeroturnaround.zip.ZipUtil; diff --git a/core/src/main/java/com/volmit/iris/core/service/TreeSVC.java b/core/src/main/java/art/arcane/iris/core/service/TreeSVC.java similarity index 95% rename from core/src/main/java/com/volmit/iris/core/service/TreeSVC.java rename to core/src/main/java/art/arcane/iris/core/service/TreeSVC.java index d11cd911a..5ce458aaf 100644 --- a/core/src/main/java/com/volmit/iris/core/service/TreeSVC.java +++ b/core/src/main/java/art/arcane/iris/core/service/TreeSVC.java @@ -16,22 +16,22 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.service; +package art.arcane.iris.core.service; -import com.volmit.iris.Iris; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.*; -import com.volmit.iris.engine.platform.PlatformChunkGenerator; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.data.Cuboid; -import com.volmit.iris.util.data.IrisCustomData; -import com.volmit.iris.util.math.BlockPosition; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.plugin.IrisService; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +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.object.*; +import art.arcane.iris.engine.platform.PlatformChunkGenerator; +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.data.IrisCustomData; +import art.arcane.volmlib.util.math.BlockPosition; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.plugin.IrisService; +import art.arcane.iris.util.scheduling.J; import org.bukkit.*; import org.bukkit.block.Block; import org.bukkit.block.BlockState; diff --git a/core/src/main/java/com/volmit/iris/core/service/WandSVC.java b/core/src/main/java/art/arcane/iris/core/service/WandSVC.java similarity index 95% rename from core/src/main/java/com/volmit/iris/core/service/WandSVC.java rename to core/src/main/java/art/arcane/iris/core/service/WandSVC.java index e55991245..f0465b73c 100644 --- a/core/src/main/java/com/volmit/iris/core/service/WandSVC.java +++ b/core/src/main/java/art/arcane/iris/core/service/WandSVC.java @@ -16,25 +16,25 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.service; +package art.arcane.iris.core.service; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.edit.DustRevealer; -import com.volmit.iris.core.link.WorldEditLink; -import com.volmit.iris.core.wand.WandSelection; -import com.volmit.iris.engine.object.IrisObject; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.data.Cuboid; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.matter.Matter; -import com.volmit.iris.util.matter.WorldMatter; -import com.volmit.iris.util.plugin.IrisService; -import com.volmit.iris.util.plugin.VolmitSender; -import com.volmit.iris.util.scheduling.J; -import com.volmit.iris.util.scheduling.SR; -import com.volmit.iris.util.scheduling.jobs.Job; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.core.edit.DustRevealer; +import art.arcane.iris.core.link.WorldEditLink; +import art.arcane.iris.core.wand.WandSelection; +import art.arcane.iris.engine.object.IrisObject; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.data.Cuboid; +import art.arcane.iris.util.format.C; +import art.arcane.volmlib.util.math.M; +import art.arcane.iris.util.matter.Matter; +import art.arcane.iris.util.matter.WorldMatter; +import art.arcane.iris.util.plugin.IrisService; +import art.arcane.iris.util.plugin.VolmitSender; +import art.arcane.iris.util.scheduling.J; +import art.arcane.volmlib.util.scheduling.SR; +import art.arcane.iris.util.scheduling.jobs.Job; import org.bukkit.*; import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.Player; @@ -55,8 +55,8 @@ import java.util.Arrays; import java.util.Objects; import java.util.concurrent.CountDownLatch; -import static com.volmit.iris.util.data.registry.Particles.CRIT_MAGIC; -import static com.volmit.iris.util.data.registry.Particles.REDSTONE; +import static art.arcane.iris.util.data.registry.Particles.CRIT_MAGIC; +import static art.arcane.iris.util.data.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/core/src/main/java/com/volmit/iris/core/tools/IrisConverter.java b/core/src/main/java/art/arcane/iris/core/tools/IrisConverter.java similarity index 93% rename from core/src/main/java/com/volmit/iris/core/tools/IrisConverter.java rename to core/src/main/java/art/arcane/iris/core/tools/IrisConverter.java index 66f9c2d01..68bb0111b 100644 --- a/core/src/main/java/com/volmit/iris/core/tools/IrisConverter.java +++ b/core/src/main/java/art/arcane/iris/core/tools/IrisConverter.java @@ -1,16 +1,16 @@ -package com.volmit.iris.core.tools; +package art.arcane.iris.core.tools; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.object.*; -import com.volmit.iris.util.data.Varint; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.nbt.io.NBTUtil; -import com.volmit.iris.util.nbt.io.NamedTag; -import com.volmit.iris.util.nbt.tag.*; -import com.volmit.iris.util.plugin.VolmitSender; -import com.volmit.iris.util.scheduling.J; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.object.*; +import art.arcane.volmlib.util.data.Varint; +import art.arcane.iris.util.format.C; +import art.arcane.volmlib.util.format.Form; +import art.arcane.volmlib.util.nbt.io.NBTUtil; +import art.arcane.volmlib.util.nbt.io.NamedTag; +import art.arcane.volmlib.util.nbt.tag.*; +import art.arcane.iris.util.plugin.VolmitSender; +import art.arcane.iris.util.scheduling.J; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import org.apache.commons.io.FileUtils; import org.bukkit.Bukkit; import org.bukkit.block.data.BlockData; diff --git a/core/src/main/java/com/volmit/iris/core/tools/IrisCreator.java b/core/src/main/java/art/arcane/iris/core/tools/IrisCreator.java similarity index 91% rename from core/src/main/java/com/volmit/iris/core/tools/IrisCreator.java rename to core/src/main/java/art/arcane/iris/core/tools/IrisCreator.java index b112ed779..f45c48cd0 100644 --- a/core/src/main/java/com/volmit/iris/core/tools/IrisCreator.java +++ b/core/src/main/java/art/arcane/iris/core/tools/IrisCreator.java @@ -16,23 +16,23 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.tools; +package art.arcane.iris.core.tools; import com.google.common.util.concurrent.AtomicDouble; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.ServerConfigurator; -import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.core.pregenerator.PregenTask; -import com.volmit.iris.core.service.StudioSVC; -import com.volmit.iris.engine.object.IrisDimension; -import com.volmit.iris.engine.platform.PlatformChunkGenerator; -import com.volmit.iris.util.exceptions.IrisException; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.plugin.VolmitSender; -import com.volmit.iris.util.scheduling.J; -import com.volmit.iris.util.scheduling.O; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.core.ServerConfigurator; +import art.arcane.iris.core.nms.INMS; +import art.arcane.iris.core.pregenerator.PregenTask; +import art.arcane.iris.core.service.StudioSVC; +import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.volmlib.util.exceptions.IrisException; +import art.arcane.iris.util.format.C; +import art.arcane.volmlib.util.format.Form; +import art.arcane.iris.util.plugin.VolmitSender; +import art.arcane.iris.util.scheduling.J; +import art.arcane.volmlib.util.scheduling.O; import lombok.Data; import lombok.experimental.Accessors; import org.bukkit.*; @@ -45,7 +45,7 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.IntSupplier; -import static com.volmit.iris.util.misc.ServerProperties.BUKKIT_YML; +import static art.arcane.iris.util.misc.ServerProperties.BUKKIT_YML; /** * Makes it a lot easier to setup an engine, world, studio or whatever diff --git a/core/src/main/java/com/volmit/iris/core/tools/IrisPackBenchmarking.java b/core/src/main/java/art/arcane/iris/core/tools/IrisPackBenchmarking.java similarity index 91% rename from core/src/main/java/com/volmit/iris/core/tools/IrisPackBenchmarking.java rename to core/src/main/java/art/arcane/iris/core/tools/IrisPackBenchmarking.java index 4f39a7527..5cbbfbaa1 100644 --- a/core/src/main/java/com/volmit/iris/core/tools/IrisPackBenchmarking.java +++ b/core/src/main/java/art/arcane/iris/core/tools/IrisPackBenchmarking.java @@ -1,17 +1,17 @@ -package com.volmit.iris.core.tools; +package art.arcane.iris.core.tools; -import com.volmit.iris.Iris; -import com.volmit.iris.core.pregenerator.PregenTask; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisDimension; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.exceptions.IrisException; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.io.IO; -import com.volmit.iris.util.scheduling.J; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.Iris; +import art.arcane.iris.core.pregenerator.PregenTask; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +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.scheduling.J; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import org.bukkit.Bukkit; import java.io.File; diff --git a/core/src/main/java/com/volmit/iris/core/tools/IrisReflectiveAPI.java b/core/src/main/java/art/arcane/iris/core/tools/IrisReflectiveAPI.java similarity index 95% rename from core/src/main/java/com/volmit/iris/core/tools/IrisReflectiveAPI.java rename to core/src/main/java/art/arcane/iris/core/tools/IrisReflectiveAPI.java index c52076f7c..74fb750f8 100644 --- a/core/src/main/java/com/volmit/iris/core/tools/IrisReflectiveAPI.java +++ b/core/src/main/java/art/arcane/iris/core/tools/IrisReflectiveAPI.java @@ -1,6 +1,6 @@ -package com.volmit.iris.core.tools; +package art.arcane.iris.core.tools; -import com.volmit.iris.util.data.B; +import art.arcane.iris.util.data.B; import org.bukkit.World; import org.bukkit.block.data.BlockData; diff --git a/core/src/main/java/com/volmit/iris/core/tools/IrisToolbelt.java b/core/src/main/java/art/arcane/iris/core/tools/IrisToolbelt.java similarity index 93% rename from core/src/main/java/com/volmit/iris/core/tools/IrisToolbelt.java rename to core/src/main/java/art/arcane/iris/core/tools/IrisToolbelt.java index 68812036f..50b3274ac 100644 --- a/core/src/main/java/com/volmit/iris/core/tools/IrisToolbelt.java +++ b/core/src/main/java/art/arcane/iris/core/tools/IrisToolbelt.java @@ -16,21 +16,21 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.tools; +package art.arcane.iris.core.tools; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.gui.PregeneratorJob; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.pregenerator.PregenTask; -import com.volmit.iris.core.pregenerator.PregeneratorMethod; -import com.volmit.iris.core.pregenerator.methods.CachedPregenMethod; -import com.volmit.iris.core.pregenerator.methods.HybridPregenMethod; -import com.volmit.iris.core.service.StudioSVC; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisDimension; -import com.volmit.iris.engine.platform.PlatformChunkGenerator; -import com.volmit.iris.util.plugin.VolmitSender; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.core.gui.PregeneratorJob; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.core.pregenerator.PregenTask; +import art.arcane.iris.core.pregenerator.PregeneratorMethod; +import art.arcane.iris.core.pregenerator.methods.CachedPregenMethod; +import art.arcane.iris.core.pregenerator.methods.HybridPregenMethod; +import art.arcane.iris.core.service.StudioSVC; +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.plugin.VolmitSender; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.entity.Player; diff --git a/core/src/main/java/com/volmit/iris/core/tools/IrisWorldCreator.java b/core/src/main/java/art/arcane/iris/core/tools/IrisWorldCreator.java similarity index 94% rename from core/src/main/java/com/volmit/iris/core/tools/IrisWorldCreator.java rename to core/src/main/java/art/arcane/iris/core/tools/IrisWorldCreator.java index a6fd79a83..d3e4d7fa4 100644 --- a/core/src/main/java/com/volmit/iris/core/tools/IrisWorldCreator.java +++ b/core/src/main/java/art/arcane/iris/core/tools/IrisWorldCreator.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.tools; +package art.arcane.iris.core.tools; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.object.*; -import com.volmit.iris.engine.platform.BukkitChunkGenerator; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.engine.object.*; +import art.arcane.iris.engine.platform.BukkitChunkGenerator; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.WorldCreator; diff --git a/core/src/main/java/com/volmit/iris/core/wand/WandSelection.java b/core/src/main/java/art/arcane/iris/core/wand/WandSelection.java similarity index 96% rename from core/src/main/java/com/volmit/iris/core/wand/WandSelection.java rename to core/src/main/java/art/arcane/iris/core/wand/WandSelection.java index bbd7428e5..7f5cebb31 100644 --- a/core/src/main/java/com/volmit/iris/core/wand/WandSelection.java +++ b/core/src/main/java/art/arcane/iris/core/wand/WandSelection.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.core.wand; +package art.arcane.iris.core.wand; -import com.volmit.iris.util.data.Cuboid; -import com.volmit.iris.util.math.M; +import art.arcane.volmlib.util.data.Cuboid; +import art.arcane.volmlib.util.math.M; import org.bukkit.Location; import org.bukkit.Particle; import org.bukkit.entity.Player; @@ -27,7 +27,7 @@ import org.bukkit.util.Vector; import java.awt.*; -import static com.volmit.iris.util.data.registry.Particles.REDSTONE; +import static art.arcane.iris.util.data.registry.Particles.REDSTONE; public class WandSelection { private final Cuboid c; diff --git a/core/src/main/java/com/volmit/iris/engine/EnginePanic.java b/core/src/main/java/art/arcane/iris/engine/EnginePanic.java similarity index 92% rename from core/src/main/java/com/volmit/iris/engine/EnginePanic.java rename to core/src/main/java/art/arcane/iris/engine/EnginePanic.java index 582fa3d55..9b35deeba 100644 --- a/core/src/main/java/com/volmit/iris/engine/EnginePanic.java +++ b/core/src/main/java/art/arcane/iris/engine/EnginePanic.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine; +package art.arcane.iris.engine; -import com.volmit.iris.Iris; -import com.volmit.iris.util.collection.KMap; +import art.arcane.iris.Iris; +import art.arcane.volmlib.util.collection.KMap; public class EnginePanic { private static final KMap stuff = new KMap<>(); diff --git a/core/src/main/java/com/volmit/iris/engine/IrisComplex.java b/core/src/main/java/art/arcane/iris/engine/IrisComplex.java similarity index 96% rename from core/src/main/java/com/volmit/iris/engine/IrisComplex.java rename to core/src/main/java/art/arcane/iris/engine/IrisComplex.java index 98e73444e..ce7481313 100644 --- a/core/src/main/java/com/volmit/iris/engine/IrisComplex.java +++ b/core/src/main/java/art/arcane/iris/engine/IrisComplex.java @@ -16,23 +16,23 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine; +package art.arcane.iris.engine; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.data.cache.Cache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.context.IrisContext; -import com.volmit.iris.util.data.DataProvider; -import com.volmit.iris.util.interpolation.IrisInterpolation.NoiseKey; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.CNG; -import com.volmit.iris.util.stream.ProceduralStream; -import com.volmit.iris.util.stream.interpolation.Interpolated; +import art.arcane.iris.Iris; +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.framework.Engine; +import art.arcane.iris.engine.object.*; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.iris.util.context.IrisContext; +import art.arcane.iris.util.data.DataProvider; +import art.arcane.iris.util.interpolation.IrisInterpolation.NoiseKey; +import art.arcane.volmlib.util.math.M; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.CNG; +import art.arcane.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.stream.interpolation.Interpolated; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/core/src/main/java/com/volmit/iris/engine/IrisEngine.java b/core/src/main/java/art/arcane/iris/engine/IrisEngine.java similarity index 92% rename from core/src/main/java/com/volmit/iris/engine/IrisEngine.java rename to core/src/main/java/art/arcane/iris/engine/IrisEngine.java index 9f570d642..8c080ad48 100644 --- a/core/src/main/java/com/volmit/iris/engine/IrisEngine.java +++ b/core/src/main/java/art/arcane/iris/engine/IrisEngine.java @@ -16,41 +16,41 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine; +package art.arcane.iris.engine; import com.google.common.util.concurrent.AtomicDouble; import com.google.gson.Gson; -import com.volmit.iris.Iris; -import com.volmit.iris.core.ServerConfigurator; -import com.volmit.iris.core.events.IrisEngineHotloadEvent; -import com.volmit.iris.core.gui.PregeneratorJob; -import com.volmit.iris.core.loader.ResourceLoader; -import com.volmit.iris.core.nms.container.BlockPos; -import com.volmit.iris.core.nms.container.Pair; -import com.volmit.iris.core.project.IrisProject; -import com.volmit.iris.core.scripting.environment.EngineEnvironment; -import com.volmit.iris.core.service.PreservationSVC; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.*; -import com.volmit.iris.engine.mantle.EngineMantle; -import com.volmit.iris.engine.object.*; -import com.volmit.iris.util.atomics.AtomicRollingSequence; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.context.ChunkContext; -import com.volmit.iris.util.context.IrisContext; -import com.volmit.iris.util.documentation.BlockCoordinates; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.io.IO; -import com.volmit.iris.util.mantle.flag.MantleFlag; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.matter.MatterStructurePOI; -import com.volmit.iris.util.matter.slices.container.JigsawStructureContainer; -import com.volmit.iris.util.scheduling.ChronoLatch; -import com.volmit.iris.util.scheduling.J; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.Iris; +import art.arcane.iris.core.ServerConfigurator; +import art.arcane.iris.core.events.IrisEngineHotloadEvent; +import art.arcane.iris.core.gui.PregeneratorJob; +import art.arcane.iris.core.loader.ResourceLoader; +import art.arcane.iris.core.nms.container.BlockPos; +import art.arcane.iris.core.nms.container.Pair; +import art.arcane.iris.core.project.IrisProject; +import art.arcane.iris.core.scripting.environment.EngineEnvironment; +import art.arcane.iris.core.service.PreservationSVC; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.framework.*; +import art.arcane.iris.engine.mantle.EngineMantle; +import art.arcane.iris.engine.object.*; +import art.arcane.volmlib.util.atomics.AtomicRollingSequence; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.context.ChunkContext; +import art.arcane.iris.util.context.IrisContext; +import art.arcane.volmlib.util.documentation.BlockCoordinates; +import art.arcane.iris.util.format.C; +import art.arcane.volmlib.util.format.Form; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.volmlib.util.io.IO; +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.iris.util.matter.MatterStructurePOI; +import art.arcane.iris.util.matter.slices.container.JigsawStructureContainer; +import art.arcane.volmlib.util.scheduling.ChronoLatch; +import art.arcane.iris.util.scheduling.J; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/core/src/main/java/com/volmit/iris/engine/IrisEngineEffects.java b/core/src/main/java/art/arcane/iris/engine/IrisEngineEffects.java similarity index 85% rename from core/src/main/java/com/volmit/iris/engine/IrisEngineEffects.java rename to core/src/main/java/art/arcane/iris/engine/IrisEngineEffects.java index 6d0804892..86f5d461d 100644 --- a/core/src/main/java/com/volmit/iris/engine/IrisEngineEffects.java +++ b/core/src/main/java/art/arcane/iris/engine/IrisEngineEffects.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine; +package art.arcane.iris.engine; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.EngineAssignedComponent; -import com.volmit.iris.engine.framework.EngineEffects; -import com.volmit.iris.engine.framework.EnginePlayer; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; +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.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.math.M; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import org.bukkit.entity.Player; import java.util.List; diff --git a/core/src/main/java/com/volmit/iris/engine/IrisEngineMantle.java b/core/src/main/java/art/arcane/iris/engine/IrisEngineMantle.java similarity index 86% rename from core/src/main/java/com/volmit/iris/engine/IrisEngineMantle.java rename to core/src/main/java/art/arcane/iris/engine/IrisEngineMantle.java index 71a412290..f9622e0d5 100644 --- a/core/src/main/java/com/volmit/iris/engine/IrisEngineMantle.java +++ b/core/src/main/java/art/arcane/iris/engine/IrisEngineMantle.java @@ -16,21 +16,21 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine; +package art.arcane.iris.engine; -import com.volmit.iris.core.nms.container.Pair; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.mantle.EngineMantle; -import com.volmit.iris.engine.mantle.MantleComponent; -import com.volmit.iris.engine.mantle.components.MantleCarvingComponent; -import com.volmit.iris.engine.mantle.components.MantleFluidBodyComponent; -import com.volmit.iris.engine.mantle.components.MantleJigsawComponent; -import com.volmit.iris.engine.mantle.components.MantleObjectComponent; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.mantle.Mantle; -import com.volmit.iris.util.mantle.flag.MantleFlag; +import art.arcane.iris.core.nms.container.Pair; +import art.arcane.iris.engine.data.cache.AtomicCache; +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.components.MantleCarvingComponent; +import art.arcane.iris.engine.mantle.components.MantleFluidBodyComponent; +import art.arcane.iris.engine.mantle.components.MantleJigsawComponent; +import art.arcane.iris.engine.mantle.components.MantleObjectComponent; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.mantle.flag.MantleFlag; import lombok.*; import java.io.File; diff --git a/core/src/main/java/com/volmit/iris/engine/IrisWorldManager.java b/core/src/main/java/art/arcane/iris/engine/IrisWorldManager.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/IrisWorldManager.java rename to core/src/main/java/art/arcane/iris/engine/IrisWorldManager.java index c6233001e..d513dd0d8 100644 --- a/core/src/main/java/com/volmit/iris/engine/IrisWorldManager.java +++ b/core/src/main/java/art/arcane/iris/engine/IrisWorldManager.java @@ -16,34 +16,34 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine; +package art.arcane.iris.engine; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.link.Identifier; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.service.ExternalDataSVC; -import com.volmit.iris.engine.data.cache.Cache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.EngineAssignedWorldManager; -import com.volmit.iris.engine.object.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.mantle.Mantle; -import com.volmit.iris.util.mantle.flag.MantleFlag; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.math.Position2; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.matter.MatterMarker; -import com.volmit.iris.util.parallel.MultiBurst; -import com.volmit.iris.util.plugin.Chunks; -import com.volmit.iris.util.plugin.VolmitSender; -import com.volmit.iris.util.scheduling.ChronoLatch; -import com.volmit.iris.util.scheduling.J; -import com.volmit.iris.util.scheduling.Looper; -import com.volmit.iris.util.scheduling.jobs.QueueJob; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +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.data.cache.Cache; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.framework.EngineAssignedWorldManager; +import art.arcane.iris.engine.object.*; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.collection.KSet; +import art.arcane.volmlib.util.format.Form; +import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.mantle.flag.MantleFlag; +import art.arcane.volmlib.util.math.M; +import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.volmlib.util.matter.MatterMarker; +import art.arcane.iris.util.parallel.MultiBurst; +import art.arcane.iris.util.plugin.Chunks; +import art.arcane.iris.util.plugin.VolmitSender; +import art.arcane.volmlib.util.scheduling.ChronoLatch; +import art.arcane.iris.util.scheduling.J; +import art.arcane.volmlib.util.scheduling.Looper; +import art.arcane.iris.util.scheduling.jobs.QueueJob; import io.papermc.lib.PaperLib; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/engine/actuator/IrisBiomeActuator.java b/core/src/main/java/art/arcane/iris/engine/actuator/IrisBiomeActuator.java similarity index 76% rename from core/src/main/java/com/volmit/iris/engine/actuator/IrisBiomeActuator.java rename to core/src/main/java/art/arcane/iris/engine/actuator/IrisBiomeActuator.java index 584609e77..9337890df 100644 --- a/core/src/main/java/com/volmit/iris/engine/actuator/IrisBiomeActuator.java +++ b/core/src/main/java/art/arcane/iris/engine/actuator/IrisBiomeActuator.java @@ -16,21 +16,21 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.actuator; +package art.arcane.iris.engine.actuator; -import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.EngineAssignedActuator; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisBiomeCustom; -import com.volmit.iris.util.context.ChunkContext; -import com.volmit.iris.util.documentation.BlockCoordinates; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.matter.MatterBiomeInject; -import com.volmit.iris.util.matter.slices.BiomeInjectMatter; -import com.volmit.iris.util.scheduling.ChronoLatch; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.core.nms.INMS; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.framework.EngineAssignedActuator; +import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.iris.engine.object.IrisBiomeCustom; +import art.arcane.iris.util.context.ChunkContext; +import art.arcane.volmlib.util.documentation.BlockCoordinates; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.matter.MatterBiomeInject; +import art.arcane.iris.util.matter.slices.BiomeInjectMatter; +import art.arcane.volmlib.util.scheduling.ChronoLatch; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import org.bukkit.block.Biome; public class IrisBiomeActuator extends EngineAssignedActuator { diff --git a/core/src/main/java/com/volmit/iris/engine/actuator/IrisDecorantActuator.java b/core/src/main/java/art/arcane/iris/engine/actuator/IrisDecorantActuator.java similarity index 90% rename from core/src/main/java/com/volmit/iris/engine/actuator/IrisDecorantActuator.java rename to core/src/main/java/art/arcane/iris/engine/actuator/IrisDecorantActuator.java index c53a70a6d..d46e03f37 100644 --- a/core/src/main/java/com/volmit/iris/engine/actuator/IrisDecorantActuator.java +++ b/core/src/main/java/art/arcane/iris/engine/actuator/IrisDecorantActuator.java @@ -16,18 +16,18 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.actuator; +package art.arcane.iris.engine.actuator; -import com.volmit.iris.engine.decorator.*; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.EngineAssignedActuator; -import com.volmit.iris.engine.framework.EngineDecorator; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.util.context.ChunkContext; -import com.volmit.iris.util.documentation.BlockCoordinates; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.engine.decorator.*; +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.object.IrisBiome; +import art.arcane.iris.util.context.ChunkContext; +import art.arcane.volmlib.util.documentation.BlockCoordinates; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import lombok.Getter; import org.bukkit.Material; import org.bukkit.block.data.BlockData; diff --git a/core/src/main/java/com/volmit/iris/engine/actuator/IrisTerrainNormalActuator.java b/core/src/main/java/art/arcane/iris/engine/actuator/IrisTerrainNormalActuator.java similarity index 91% rename from core/src/main/java/com/volmit/iris/engine/actuator/IrisTerrainNormalActuator.java rename to core/src/main/java/art/arcane/iris/engine/actuator/IrisTerrainNormalActuator.java index 646ca0773..599293351 100644 --- a/core/src/main/java/com/volmit/iris/engine/actuator/IrisTerrainNormalActuator.java +++ b/core/src/main/java/art/arcane/iris/engine/actuator/IrisTerrainNormalActuator.java @@ -16,18 +16,18 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.actuator; +package art.arcane.iris.engine.actuator; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.EngineAssignedActuator; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisRegion; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.context.ChunkContext; -import com.volmit.iris.util.documentation.BlockCoordinates; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.framework.EngineAssignedActuator; +import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.iris.util.context.ChunkContext; +import art.arcane.volmlib.util.documentation.BlockCoordinates; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import lombok.Getter; import org.bukkit.Material; import org.bukkit.block.data.BlockData; diff --git a/core/src/main/java/com/volmit/iris/engine/data/cache/AtomicCache.java b/core/src/main/java/art/arcane/iris/engine/data/cache/AtomicCache.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/data/cache/AtomicCache.java rename to core/src/main/java/art/arcane/iris/engine/data/cache/AtomicCache.java index 4757bcfb6..50d1cd2d7 100644 --- a/core/src/main/java/com/volmit/iris/engine/data/cache/AtomicCache.java +++ b/core/src/main/java/art/arcane/iris/engine/data/cache/AtomicCache.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.data.cache; +package art.arcane.iris.engine.data.cache; -import com.volmit.iris.Iris; -import com.volmit.iris.util.function.NastySupplier; +import art.arcane.iris.Iris; +import art.arcane.volmlib.util.function.NastySupplier; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; diff --git a/core/src/main/java/com/volmit/iris/engine/data/cache/Cache.java b/core/src/main/java/art/arcane/iris/engine/data/cache/Cache.java similarity index 73% rename from core/src/main/java/com/volmit/iris/engine/data/cache/Cache.java rename to core/src/main/java/art/arcane/iris/engine/data/cache/Cache.java index 9e36ef704..9ee5a957c 100644 --- a/core/src/main/java/com/volmit/iris/engine/data/cache/Cache.java +++ b/core/src/main/java/art/arcane/iris/engine/data/cache/Cache.java @@ -16,37 +16,34 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.data.cache; +package art.arcane.iris.engine.data.cache; +import art.arcane.volmlib.util.cache.CacheKey; import org.bukkit.Chunk; public interface Cache { static long key(Chunk chunk) { - return key(chunk.getX(), chunk.getZ()); + return CacheKey.key(chunk); } static long key(int x, int z) { - return (((long) x) << 32) | (z & 0xffffffffL); + return CacheKey.key(x, z); } static int keyX(long key) { - return (int) (key >> 32); + return CacheKey.keyX(key); } static int keyZ(long key) { - return (int) key; + return CacheKey.keyZ(key); } static int to1D(int x, int y, int z, int w, int h) { - return (z * w * h) + (y * w) + x; + return CacheKey.to1D(x, y, z, w, h); } static int[] to3D(int idx, int w, int h) { - final int z = idx / (w * h); - idx -= (z * w * h); - final int y = idx / w; - final int x = idx % w; - return new int[]{x, y, z}; + return CacheKey.to3D(idx, w, h); } int getId(); diff --git a/core/src/main/java/com/volmit/iris/engine/data/cache/Multicache.java b/core/src/main/java/art/arcane/iris/engine/data/cache/Multicache.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/data/cache/Multicache.java rename to core/src/main/java/art/arcane/iris/engine/data/cache/Multicache.java index e81b63ac4..45bc8188c 100644 --- a/core/src/main/java/com/volmit/iris/engine/data/cache/Multicache.java +++ b/core/src/main/java/art/arcane/iris/engine/data/cache/Multicache.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.data.cache; +package art.arcane.iris.engine.data.cache; public interface Multicache { Cache getCache(int id); diff --git a/core/src/main/java/com/volmit/iris/engine/data/chunk/LinkedTerrainChunk.java b/core/src/main/java/art/arcane/iris/engine/data/chunk/LinkedTerrainChunk.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/data/chunk/LinkedTerrainChunk.java rename to core/src/main/java/art/arcane/iris/engine/data/chunk/LinkedTerrainChunk.java index b726610cb..52b2f1ac4 100644 --- a/core/src/main/java/com/volmit/iris/engine/data/chunk/LinkedTerrainChunk.java +++ b/core/src/main/java/art/arcane/iris/engine/data/chunk/LinkedTerrainChunk.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.data.chunk; +package art.arcane.iris.engine.data.chunk; -import com.volmit.iris.core.nms.BiomeBaseInjector; -import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.util.data.IrisBiomeStorage; -import com.volmit.iris.util.data.IrisCustomData; +import art.arcane.iris.core.nms.BiomeBaseInjector; +import art.arcane.iris.core.nms.INMS; +import art.arcane.volmlib.util.data.IrisBiomeStorage; +import art.arcane.iris.util.data.IrisCustomData; import lombok.Setter; import org.bukkit.Bukkit; import org.bukkit.Material; diff --git a/core/src/main/java/com/volmit/iris/engine/data/chunk/MCATerrainChunk.java b/core/src/main/java/art/arcane/iris/engine/data/chunk/MCATerrainChunk.java similarity index 93% rename from core/src/main/java/com/volmit/iris/engine/data/chunk/MCATerrainChunk.java rename to core/src/main/java/art/arcane/iris/engine/data/chunk/MCATerrainChunk.java index d4c1cbf8d..ce4a42b6c 100644 --- a/core/src/main/java/com/volmit/iris/engine/data/chunk/MCATerrainChunk.java +++ b/core/src/main/java/art/arcane/iris/engine/data/chunk/MCATerrainChunk.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.data.chunk; +package art.arcane.iris.engine.data.chunk; -import com.volmit.iris.Iris; -import com.volmit.iris.core.nms.BiomeBaseInjector; -import com.volmit.iris.util.data.IrisCustomData; -import com.volmit.iris.util.nbt.mca.Chunk; -import com.volmit.iris.util.nbt.mca.NBTWorld; +import art.arcane.iris.Iris; +import art.arcane.iris.core.nms.BiomeBaseInjector; +import art.arcane.iris.util.data.IrisCustomData; +import art.arcane.iris.util.nbt.mca.Chunk; +import art.arcane.iris.util.nbt.mca.NBTWorld; import lombok.AllArgsConstructor; import lombok.Builder; import org.bukkit.Material; diff --git a/core/src/main/java/com/volmit/iris/engine/data/chunk/TerrainChunk.java b/core/src/main/java/art/arcane/iris/engine/data/chunk/TerrainChunk.java similarity index 97% rename from core/src/main/java/com/volmit/iris/engine/data/chunk/TerrainChunk.java rename to core/src/main/java/art/arcane/iris/engine/data/chunk/TerrainChunk.java index 16c93da85..581cc806b 100644 --- a/core/src/main/java/com/volmit/iris/engine/data/chunk/TerrainChunk.java +++ b/core/src/main/java/art/arcane/iris/engine/data/chunk/TerrainChunk.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.data.chunk; +package art.arcane.iris.engine.data.chunk; -import com.volmit.iris.core.nms.BiomeBaseInjector; +import art.arcane.iris.core.nms.BiomeBaseInjector; import org.bukkit.World; import org.bukkit.block.Biome; import org.bukkit.block.data.BlockData; diff --git a/core/src/main/java/com/volmit/iris/engine/data/io/Deserializer.java b/core/src/main/java/art/arcane/iris/engine/data/io/Deserializer.java similarity index 97% rename from core/src/main/java/com/volmit/iris/engine/data/io/Deserializer.java rename to core/src/main/java/art/arcane/iris/engine/data/io/Deserializer.java index 3b2dfbd7b..275a1dd5c 100644 --- a/core/src/main/java/com/volmit/iris/engine/data/io/Deserializer.java +++ b/core/src/main/java/art/arcane/iris/engine/data/io/Deserializer.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.data.io; +package art.arcane.iris.engine.data.io; import java.io.*; import java.net.URL; diff --git a/core/src/main/java/com/volmit/iris/engine/data/io/ExceptionBiFunction.java b/core/src/main/java/art/arcane/iris/engine/data/io/ExceptionBiFunction.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/data/io/ExceptionBiFunction.java rename to core/src/main/java/art/arcane/iris/engine/data/io/ExceptionBiFunction.java index 1ac520d59..2c8f21dc6 100644 --- a/core/src/main/java/com/volmit/iris/engine/data/io/ExceptionBiFunction.java +++ b/core/src/main/java/art/arcane/iris/engine/data/io/ExceptionBiFunction.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.data.io; +package art.arcane.iris.engine.data.io; @FunctionalInterface public interface ExceptionBiFunction { diff --git a/core/src/main/java/com/volmit/iris/engine/data/io/ExceptionTriConsumer.java b/core/src/main/java/art/arcane/iris/engine/data/io/ExceptionTriConsumer.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/data/io/ExceptionTriConsumer.java rename to core/src/main/java/art/arcane/iris/engine/data/io/ExceptionTriConsumer.java index 047fde648..a5204dc06 100644 --- a/core/src/main/java/com/volmit/iris/engine/data/io/ExceptionTriConsumer.java +++ b/core/src/main/java/art/arcane/iris/engine/data/io/ExceptionTriConsumer.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.data.io; +package art.arcane.iris.engine.data.io; @FunctionalInterface public interface ExceptionTriConsumer { diff --git a/core/src/main/java/com/volmit/iris/engine/data/io/MaxDepthIO.java b/core/src/main/java/art/arcane/iris/engine/data/io/MaxDepthIO.java similarity index 96% rename from core/src/main/java/com/volmit/iris/engine/data/io/MaxDepthIO.java rename to core/src/main/java/art/arcane/iris/engine/data/io/MaxDepthIO.java index 5ca04f4bd..20903ca5d 100644 --- a/core/src/main/java/com/volmit/iris/engine/data/io/MaxDepthIO.java +++ b/core/src/main/java/art/arcane/iris/engine/data/io/MaxDepthIO.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.data.io; +package art.arcane.iris.engine.data.io; public interface MaxDepthIO { diff --git a/core/src/main/java/com/volmit/iris/engine/data/io/MaxDepthReachedException.java b/core/src/main/java/art/arcane/iris/engine/data/io/MaxDepthReachedException.java similarity index 96% rename from core/src/main/java/com/volmit/iris/engine/data/io/MaxDepthReachedException.java rename to core/src/main/java/art/arcane/iris/engine/data/io/MaxDepthReachedException.java index c7a1a8d34..956d67482 100644 --- a/core/src/main/java/com/volmit/iris/engine/data/io/MaxDepthReachedException.java +++ b/core/src/main/java/art/arcane/iris/engine/data/io/MaxDepthReachedException.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.data.io; +package art.arcane.iris.engine.data.io; /** * Exception indicating that the maximum (de-)serialization depth has been reached. diff --git a/core/src/main/java/com/volmit/iris/engine/data/io/Serializer.java b/core/src/main/java/art/arcane/iris/engine/data/io/Serializer.java similarity index 97% rename from core/src/main/java/com/volmit/iris/engine/data/io/Serializer.java rename to core/src/main/java/art/arcane/iris/engine/data/io/Serializer.java index b6e248008..9928bacdb 100644 --- a/core/src/main/java/com/volmit/iris/engine/data/io/Serializer.java +++ b/core/src/main/java/art/arcane/iris/engine/data/io/Serializer.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.data.io; +package art.arcane.iris.engine.data.io; import java.io.*; diff --git a/core/src/main/java/com/volmit/iris/engine/data/io/StringDeserializer.java b/core/src/main/java/art/arcane/iris/engine/data/io/StringDeserializer.java similarity index 97% rename from core/src/main/java/com/volmit/iris/engine/data/io/StringDeserializer.java rename to core/src/main/java/art/arcane/iris/engine/data/io/StringDeserializer.java index 1cb4240a3..822644f68 100644 --- a/core/src/main/java/com/volmit/iris/engine/data/io/StringDeserializer.java +++ b/core/src/main/java/art/arcane/iris/engine/data/io/StringDeserializer.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.data.io; +package art.arcane.iris.engine.data.io; import java.io.*; diff --git a/core/src/main/java/com/volmit/iris/engine/data/io/StringSerializer.java b/core/src/main/java/art/arcane/iris/engine/data/io/StringSerializer.java similarity index 97% rename from core/src/main/java/com/volmit/iris/engine/data/io/StringSerializer.java rename to core/src/main/java/art/arcane/iris/engine/data/io/StringSerializer.java index 186b56ad0..fbfdb84e0 100644 --- a/core/src/main/java/com/volmit/iris/engine/data/io/StringSerializer.java +++ b/core/src/main/java/art/arcane/iris/engine/data/io/StringSerializer.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.data.io; +package art.arcane.iris.engine.data.io; import java.io.*; diff --git a/core/src/main/java/com/volmit/iris/engine/decorator/IrisCeilingDecorator.java b/core/src/main/java/art/arcane/iris/engine/decorator/IrisCeilingDecorator.java similarity index 90% rename from core/src/main/java/com/volmit/iris/engine/decorator/IrisCeilingDecorator.java rename to core/src/main/java/art/arcane/iris/engine/decorator/IrisCeilingDecorator.java index 134e93371..bc8f30bb1 100644 --- a/core/src/main/java/com/volmit/iris/engine/decorator/IrisCeilingDecorator.java +++ b/core/src/main/java/art/arcane/iris/engine/decorator/IrisCeilingDecorator.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.decorator; +package art.arcane.iris.engine.decorator; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisDecorationPart; -import com.volmit.iris.engine.object.IrisDecorator; -import com.volmit.iris.util.documentation.BlockCoordinates; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.math.RNG; +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.volmlib.util.documentation.BlockCoordinates; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.volmlib.util.math.RNG; import org.bukkit.Material; import org.bukkit.block.BlockFace; import org.bukkit.block.data.BlockData; diff --git a/core/src/main/java/com/volmit/iris/engine/decorator/IrisEngineDecorator.java b/core/src/main/java/art/arcane/iris/engine/decorator/IrisEngineDecorator.java similarity index 85% rename from core/src/main/java/com/volmit/iris/engine/decorator/IrisEngineDecorator.java rename to core/src/main/java/art/arcane/iris/engine/decorator/IrisEngineDecorator.java index 68660c955..d6b8dae8c 100644 --- a/core/src/main/java/com/volmit/iris/engine/decorator/IrisEngineDecorator.java +++ b/core/src/main/java/art/arcane/iris/engine/decorator/IrisEngineDecorator.java @@ -16,20 +16,20 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.decorator; +package art.arcane.iris.engine.decorator; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.EngineAssignedComponent; -import com.volmit.iris.engine.framework.EngineDecorator; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisDecorationPart; -import com.volmit.iris.engine.object.IrisDecorator; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.data.B; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.documentation.BlockCoordinates; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.Iris; +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.IrisBiome; +import art.arcane.iris.engine.object.IrisDecorationPart; +import art.arcane.iris.engine.object.IrisDecorator; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.iris.util.data.B; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.volmlib.util.documentation.BlockCoordinates; +import art.arcane.volmlib.util.math.RNG; import lombok.Getter; import org.bukkit.block.BlockFace; import org.bukkit.block.BlockSupport; diff --git a/core/src/main/java/com/volmit/iris/engine/decorator/IrisSeaFloorDecorator.java b/core/src/main/java/art/arcane/iris/engine/decorator/IrisSeaFloorDecorator.java similarity index 88% rename from core/src/main/java/com/volmit/iris/engine/decorator/IrisSeaFloorDecorator.java rename to core/src/main/java/art/arcane/iris/engine/decorator/IrisSeaFloorDecorator.java index 611634310..3b2a3b70a 100644 --- a/core/src/main/java/com/volmit/iris/engine/decorator/IrisSeaFloorDecorator.java +++ b/core/src/main/java/art/arcane/iris/engine/decorator/IrisSeaFloorDecorator.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.decorator; +package art.arcane.iris.engine.decorator; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisDecorationPart; -import com.volmit.iris.engine.object.IrisDecorator; -import com.volmit.iris.util.documentation.BlockCoordinates; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.math.RNG; +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.volmlib.util.documentation.BlockCoordinates; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.volmlib.util.math.RNG; import org.bukkit.block.data.BlockData; public class IrisSeaFloorDecorator extends IrisEngineDecorator { diff --git a/core/src/main/java/com/volmit/iris/engine/decorator/IrisSeaSurfaceDecorator.java b/core/src/main/java/art/arcane/iris/engine/decorator/IrisSeaSurfaceDecorator.java similarity index 87% rename from core/src/main/java/com/volmit/iris/engine/decorator/IrisSeaSurfaceDecorator.java rename to core/src/main/java/art/arcane/iris/engine/decorator/IrisSeaSurfaceDecorator.java index 0096d75d2..e5189e2f5 100644 --- a/core/src/main/java/com/volmit/iris/engine/decorator/IrisSeaSurfaceDecorator.java +++ b/core/src/main/java/art/arcane/iris/engine/decorator/IrisSeaSurfaceDecorator.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.decorator; +package art.arcane.iris.engine.decorator; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisDecorationPart; -import com.volmit.iris.engine.object.IrisDecorator; -import com.volmit.iris.util.documentation.BlockCoordinates; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.math.RNG; +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.volmlib.util.documentation.BlockCoordinates; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.volmlib.util.math.RNG; import org.bukkit.block.data.BlockData; public class IrisSeaSurfaceDecorator extends IrisEngineDecorator { diff --git a/core/src/main/java/com/volmit/iris/engine/decorator/IrisShoreLineDecorator.java b/core/src/main/java/art/arcane/iris/engine/decorator/IrisShoreLineDecorator.java similarity index 90% rename from core/src/main/java/com/volmit/iris/engine/decorator/IrisShoreLineDecorator.java rename to core/src/main/java/art/arcane/iris/engine/decorator/IrisShoreLineDecorator.java index dfeaad7fc..5a7ad5b59 100644 --- a/core/src/main/java/com/volmit/iris/engine/decorator/IrisShoreLineDecorator.java +++ b/core/src/main/java/art/arcane/iris/engine/decorator/IrisShoreLineDecorator.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.decorator; +package art.arcane.iris.engine.decorator; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisDecorationPart; -import com.volmit.iris.engine.object.IrisDecorator; -import com.volmit.iris.util.documentation.BlockCoordinates; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.math.RNG; +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.volmlib.util.documentation.BlockCoordinates; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.volmlib.util.math.RNG; import org.bukkit.block.data.BlockData; public class IrisShoreLineDecorator extends IrisEngineDecorator { diff --git a/core/src/main/java/com/volmit/iris/engine/decorator/IrisSurfaceDecorator.java b/core/src/main/java/art/arcane/iris/engine/decorator/IrisSurfaceDecorator.java similarity index 92% rename from core/src/main/java/com/volmit/iris/engine/decorator/IrisSurfaceDecorator.java rename to core/src/main/java/art/arcane/iris/engine/decorator/IrisSurfaceDecorator.java index 3bc6cc861..a691f2463 100644 --- a/core/src/main/java/com/volmit/iris/engine/decorator/IrisSurfaceDecorator.java +++ b/core/src/main/java/art/arcane/iris/engine/decorator/IrisSurfaceDecorator.java @@ -16,18 +16,18 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.decorator; +package art.arcane.iris.engine.decorator; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.InferredType; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisDecorationPart; -import com.volmit.iris.engine.object.IrisDecorator; -import com.volmit.iris.util.data.B; -import com.volmit.iris.util.documentation.BlockCoordinates; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.Iris; +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.data.B; +import art.arcane.volmlib.util.documentation.BlockCoordinates; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.volmlib.util.math.RNG; import org.bukkit.Material; import org.bukkit.block.BlockFace; import org.bukkit.block.data.Bisected; diff --git a/core/src/main/java/com/volmit/iris/engine/framework/BlockUpdater.java b/core/src/main/java/art/arcane/iris/engine/framework/BlockUpdater.java similarity index 88% rename from core/src/main/java/com/volmit/iris/engine/framework/BlockUpdater.java rename to core/src/main/java/art/arcane/iris/engine/framework/BlockUpdater.java index 1ba9e7a18..0ae60982c 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/BlockUpdater.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/BlockUpdater.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; -import com.volmit.iris.util.mantle.MantleChunk; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.util.mantle.MantleChunk; +import art.arcane.volmlib.util.math.RNG; import org.bukkit.Chunk; import org.bukkit.block.data.BlockData; diff --git a/core/src/main/java/com/volmit/iris/engine/framework/Engine.java b/core/src/main/java/art/arcane/iris/engine/framework/Engine.java similarity index 93% rename from core/src/main/java/com/volmit/iris/engine/framework/Engine.java rename to core/src/main/java/art/arcane/iris/engine/framework/Engine.java index fd972ff1d..ebdf6fee3 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/Engine.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/Engine.java @@ -16,55 +16,55 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.events.IrisLootEvent; -import com.volmit.iris.core.gui.components.RenderType; -import com.volmit.iris.core.gui.components.Renderer; -import com.volmit.iris.core.link.Identifier; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.loader.IrisRegistrant; -import com.volmit.iris.core.nms.container.BlockPos; -import com.volmit.iris.core.nms.container.Pair; -import com.volmit.iris.core.pregenerator.ChunkUpdater; -import com.volmit.iris.core.scripting.environment.EngineEnvironment; -import com.volmit.iris.core.service.ExternalDataSVC; -import com.volmit.iris.engine.IrisComplex; -import com.volmit.iris.engine.data.cache.Cache; -import com.volmit.iris.engine.data.chunk.TerrainChunk; -import com.volmit.iris.engine.mantle.EngineMantle; -import com.volmit.iris.engine.object.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.context.ChunkContext; -import com.volmit.iris.util.context.IrisContext; -import com.volmit.iris.util.data.B; -import com.volmit.iris.util.data.DataProvider; -import com.volmit.iris.util.data.IrisCustomData; -import com.volmit.iris.util.documentation.BlockCoordinates; -import com.volmit.iris.util.documentation.ChunkCoordinates; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.function.Function2; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.mantle.MantleChunk; -import com.volmit.iris.util.mantle.flag.MantleFlag; -import com.volmit.iris.util.math.BlockPosition; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.math.Position2; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.matter.MatterCavern; -import com.volmit.iris.util.matter.MatterUpdate; -import com.volmit.iris.util.matter.TileWrapper; -import com.volmit.iris.util.matter.slices.container.JigsawPieceContainer; -import com.volmit.iris.util.parallel.BurstExecutor; -import com.volmit.iris.util.parallel.MultiBurst; -import com.volmit.iris.util.reflect.W; -import com.volmit.iris.util.scheduling.ChronoLatch; -import com.volmit.iris.util.scheduling.J; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.core.events.IrisLootEvent; +import art.arcane.iris.core.gui.components.RenderType; +import art.arcane.iris.core.gui.components.Renderer; +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.core.nms.container.BlockPos; +import art.arcane.iris.core.nms.container.Pair; +import art.arcane.iris.core.pregenerator.ChunkUpdater; +import art.arcane.iris.core.scripting.environment.EngineEnvironment; +import art.arcane.iris.core.service.ExternalDataSVC; +import art.arcane.iris.engine.IrisComplex; +import art.arcane.iris.engine.data.cache.Cache; +import art.arcane.iris.engine.data.chunk.TerrainChunk; +import art.arcane.iris.engine.mantle.EngineMantle; +import art.arcane.iris.engine.object.*; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.context.ChunkContext; +import art.arcane.iris.util.context.IrisContext; +import art.arcane.iris.util.data.B; +import art.arcane.iris.util.data.DataProvider; +import art.arcane.iris.util.data.IrisCustomData; +import art.arcane.volmlib.util.documentation.BlockCoordinates; +import art.arcane.volmlib.util.documentation.ChunkCoordinates; +import art.arcane.iris.util.format.C; +import art.arcane.volmlib.util.function.Function2; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.iris.util.mantle.MantleChunk; +import art.arcane.volmlib.util.mantle.flag.MantleFlag; +import art.arcane.volmlib.util.math.BlockPosition; +import art.arcane.volmlib.util.math.M; +import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.volmlib.util.matter.MatterCavern; +import art.arcane.volmlib.util.matter.MatterUpdate; +import art.arcane.iris.util.matter.TileWrapper; +import art.arcane.iris.util.matter.slices.container.JigsawPieceContainer; +import art.arcane.iris.util.parallel.BurstExecutor; +import art.arcane.iris.util.parallel.MultiBurst; +import art.arcane.iris.util.reflect.W; +import art.arcane.volmlib.util.scheduling.ChronoLatch; +import art.arcane.iris.util.scheduling.J; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.util.stream.ProceduralStream; import io.papermc.lib.PaperLib; import org.bukkit.*; import org.bukkit.block.Biome; diff --git a/core/src/main/java/com/volmit/iris/engine/framework/EngineActuator.java b/core/src/main/java/art/arcane/iris/engine/framework/EngineActuator.java similarity index 82% rename from core/src/main/java/com/volmit/iris/engine/framework/EngineActuator.java rename to core/src/main/java/art/arcane/iris/engine/framework/EngineActuator.java index b8871b905..742f9b9b9 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/EngineActuator.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/EngineActuator.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; -import com.volmit.iris.util.context.ChunkContext; -import com.volmit.iris.util.documentation.BlockCoordinates; -import com.volmit.iris.util.hunk.Hunk; +import art.arcane.iris.util.context.ChunkContext; +import art.arcane.volmlib.util.documentation.BlockCoordinates; +import art.arcane.iris.util.hunk.Hunk; public interface EngineActuator extends EngineComponent { @BlockCoordinates diff --git a/core/src/main/java/com/volmit/iris/engine/framework/EngineAssignedActuator.java b/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedActuator.java similarity index 86% rename from core/src/main/java/com/volmit/iris/engine/framework/EngineAssignedActuator.java rename to core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedActuator.java index 792ae1877..ebf3ed5f5 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/EngineAssignedActuator.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedActuator.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; -import com.volmit.iris.util.context.ChunkContext; -import com.volmit.iris.util.documentation.BlockCoordinates; -import com.volmit.iris.util.hunk.Hunk; +import art.arcane.iris.util.context.ChunkContext; +import art.arcane.volmlib.util.documentation.BlockCoordinates; +import art.arcane.iris.util.hunk.Hunk; public abstract class EngineAssignedActuator extends EngineAssignedComponent implements EngineActuator { public EngineAssignedActuator(Engine engine, String name) { diff --git a/core/src/main/java/com/volmit/iris/engine/framework/EngineAssignedBiModifier.java b/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedBiModifier.java similarity index 93% rename from core/src/main/java/com/volmit/iris/engine/framework/EngineAssignedBiModifier.java rename to core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedBiModifier.java index 0f29d67c6..b3cfcbe93 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/EngineAssignedBiModifier.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedBiModifier.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; -import com.volmit.iris.util.hunk.Hunk; +import art.arcane.iris.util.hunk.Hunk; public abstract class EngineAssignedBiModifier extends EngineAssignedComponent implements EngineBiModifier { public EngineAssignedBiModifier(Engine engine, String name) { diff --git a/core/src/main/java/com/volmit/iris/engine/framework/EngineAssignedComponent.java b/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedComponent.java similarity index 91% rename from core/src/main/java/com/volmit/iris/engine/framework/EngineAssignedComponent.java rename to core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedComponent.java index b356eb722..9cb2014b4 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/EngineAssignedComponent.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedComponent.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; -import com.volmit.iris.Iris; -import com.volmit.iris.util.math.RollingSequence; +import art.arcane.iris.Iris; +import art.arcane.volmlib.util.math.RollingSequence; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/core/src/main/java/com/volmit/iris/engine/framework/EngineAssignedModifier.java b/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedModifier.java similarity index 86% rename from core/src/main/java/com/volmit/iris/engine/framework/EngineAssignedModifier.java rename to core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedModifier.java index b3a83e53e..d3d7afd2e 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/EngineAssignedModifier.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedModifier.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; -import com.volmit.iris.Iris; -import com.volmit.iris.util.context.ChunkContext; -import com.volmit.iris.util.documentation.BlockCoordinates; -import com.volmit.iris.util.hunk.Hunk; +import art.arcane.iris.Iris; +import art.arcane.iris.util.context.ChunkContext; +import art.arcane.volmlib.util.documentation.BlockCoordinates; +import art.arcane.iris.util.hunk.Hunk; public abstract class EngineAssignedModifier extends EngineAssignedComponent implements EngineModifier { public EngineAssignedModifier(Engine engine, String name) { diff --git a/core/src/main/java/com/volmit/iris/engine/framework/EngineAssignedWorldManager.java b/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedWorldManager.java similarity index 90% rename from core/src/main/java/com/volmit/iris/engine/framework/EngineAssignedWorldManager.java rename to core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedWorldManager.java index 7dabc01de..8950974f2 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/EngineAssignedWorldManager.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedWorldManager.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; -import com.volmit.iris.Iris; -import com.volmit.iris.core.events.IrisEngineHotloadEvent; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.math.Position2; -import com.volmit.iris.util.plugin.VolmitSender; +import art.arcane.iris.Iris; +import art.arcane.iris.core.events.IrisEngineHotloadEvent; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.iris.util.format.C; +import art.arcane.iris.util.math.Position2; +import art.arcane.iris.util.plugin.VolmitSender; import org.bukkit.*; import org.bukkit.entity.EnderSignal; import org.bukkit.entity.Player; diff --git a/core/src/main/java/com/volmit/iris/engine/framework/EngineBiModifier.java b/core/src/main/java/art/arcane/iris/engine/framework/EngineBiModifier.java similarity index 91% rename from core/src/main/java/com/volmit/iris/engine/framework/EngineBiModifier.java rename to core/src/main/java/art/arcane/iris/engine/framework/EngineBiModifier.java index ecd9b894d..811257639 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/EngineBiModifier.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/EngineBiModifier.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; -import com.volmit.iris.util.hunk.Hunk; +import art.arcane.iris.util.hunk.Hunk; public interface EngineBiModifier extends EngineComponent { void modify(int x, int z, Hunk a, Hunk b); diff --git a/core/src/main/java/com/volmit/iris/engine/framework/EngineComponent.java b/core/src/main/java/art/arcane/iris/engine/framework/EngineComponent.java similarity index 85% rename from core/src/main/java/com/volmit/iris/engine/framework/EngineComponent.java rename to core/src/main/java/art/arcane/iris/engine/framework/EngineComponent.java index 74cdfd6f1..7fb6cc808 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/EngineComponent.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/EngineComponent.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; -import com.volmit.iris.Iris; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.IrisComplex; -import com.volmit.iris.engine.object.IrisDimension; -import com.volmit.iris.util.math.RollingSequence; -import com.volmit.iris.util.parallel.MultiBurst; +import art.arcane.iris.Iris; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.engine.IrisComplex; +import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.volmlib.util.math.RollingSequence; +import art.arcane.iris.util.parallel.MultiBurst; import org.bukkit.event.Listener; public interface EngineComponent { diff --git a/core/src/main/java/com/volmit/iris/engine/framework/EngineData.java b/core/src/main/java/art/arcane/iris/engine/framework/EngineData.java similarity index 90% rename from core/src/main/java/com/volmit/iris/engine/framework/EngineData.java rename to core/src/main/java/art/arcane/iris/engine/framework/EngineData.java index 1364a86d8..6de178452 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/EngineData.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/EngineData.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; import com.google.gson.Gson; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.object.IrisPosition; -import com.volmit.iris.util.io.IO; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.object.IrisPosition; +import art.arcane.volmlib.util.io.IO; import lombok.Data; import java.io.File; diff --git a/core/src/main/java/com/volmit/iris/engine/framework/EngineDecorator.java b/core/src/main/java/art/arcane/iris/engine/framework/EngineDecorator.java similarity index 87% rename from core/src/main/java/com/volmit/iris/engine/framework/EngineDecorator.java rename to core/src/main/java/art/arcane/iris/engine/framework/EngineDecorator.java index c0e3898b5..51e29c84e 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/EngineDecorator.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/EngineDecorator.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.util.data.B; -import com.volmit.iris.util.documentation.BlockCoordinates; -import com.volmit.iris.util.hunk.Hunk; +import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.iris.util.data.B; +import art.arcane.volmlib.util.documentation.BlockCoordinates; +import art.arcane.iris.util.hunk.Hunk; import org.bukkit.block.data.BlockData; public interface EngineDecorator extends EngineComponent { diff --git a/core/src/main/java/com/volmit/iris/engine/framework/EngineEffects.java b/core/src/main/java/art/arcane/iris/engine/framework/EngineEffects.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/framework/EngineEffects.java rename to core/src/main/java/art/arcane/iris/engine/framework/EngineEffects.java index ff6326985..e79318275 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/EngineEffects.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/EngineEffects.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; public interface EngineEffects extends EngineComponent { void updatePlayerMap(); diff --git a/core/src/main/java/com/volmit/iris/engine/framework/EngineMetrics.java b/core/src/main/java/art/arcane/iris/engine/framework/EngineMetrics.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/framework/EngineMetrics.java rename to core/src/main/java/art/arcane/iris/engine/framework/EngineMetrics.java index 691ef5d46..73edc706a 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/EngineMetrics.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/EngineMetrics.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; -import com.volmit.iris.util.atomics.AtomicRollingSequence; -import com.volmit.iris.util.collection.KMap; +import art.arcane.volmlib.util.atomics.AtomicRollingSequence; +import art.arcane.volmlib.util.collection.KMap; import lombok.Data; @Data diff --git a/core/src/main/java/com/volmit/iris/engine/framework/EngineMode.java b/core/src/main/java/art/arcane/iris/engine/framework/EngineMode.java similarity index 81% rename from core/src/main/java/com/volmit/iris/engine/framework/EngineMode.java rename to core/src/main/java/art/arcane/iris/engine/framework/EngineMode.java index 6f933f58f..f1f2fee8b 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/EngineMode.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/EngineMode.java @@ -16,17 +16,17 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; -import com.volmit.iris.engine.IrisComplex; -import com.volmit.iris.engine.mantle.EngineMantle; -import com.volmit.iris.util.context.ChunkContext; -import com.volmit.iris.util.context.IrisContext; -import com.volmit.iris.util.documentation.BlockCoordinates; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.math.RollingSequence; -import com.volmit.iris.util.parallel.BurstExecutor; -import com.volmit.iris.util.parallel.MultiBurst; +import art.arcane.iris.engine.IrisComplex; +import art.arcane.iris.engine.mantle.EngineMantle; +import art.arcane.iris.util.context.ChunkContext; +import art.arcane.iris.util.context.IrisContext; +import art.arcane.volmlib.util.documentation.BlockCoordinates; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.volmlib.util.math.RollingSequence; +import art.arcane.iris.util.parallel.BurstExecutor; +import art.arcane.iris.util.parallel.MultiBurst; import org.bukkit.block.Biome; import org.bukkit.block.data.BlockData; diff --git a/core/src/main/java/com/volmit/iris/engine/framework/EngineModifier.java b/core/src/main/java/art/arcane/iris/engine/framework/EngineModifier.java similarity index 82% rename from core/src/main/java/com/volmit/iris/engine/framework/EngineModifier.java rename to core/src/main/java/art/arcane/iris/engine/framework/EngineModifier.java index 877fa4616..4e8154fb6 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/EngineModifier.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/EngineModifier.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; -import com.volmit.iris.util.context.ChunkContext; -import com.volmit.iris.util.documentation.BlockCoordinates; -import com.volmit.iris.util.hunk.Hunk; +import art.arcane.iris.util.context.ChunkContext; +import art.arcane.volmlib.util.documentation.BlockCoordinates; +import art.arcane.iris.util.hunk.Hunk; public interface EngineModifier extends EngineComponent { @BlockCoordinates diff --git a/core/src/main/java/com/volmit/iris/engine/framework/EnginePlayer.java b/core/src/main/java/art/arcane/iris/engine/framework/EnginePlayer.java similarity index 89% rename from core/src/main/java/com/volmit/iris/engine/framework/EnginePlayer.java rename to core/src/main/java/art/arcane/iris/engine/framework/EnginePlayer.java index 2350b3140..5dae25343 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/EnginePlayer.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/EnginePlayer.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisEffect; -import com.volmit.iris.engine.object.IrisRegion; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +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.volmlib.util.math.M; +import art.arcane.iris.util.scheduling.J; import lombok.Data; import org.bukkit.Location; import org.bukkit.entity.Player; diff --git a/core/src/main/java/com/volmit/iris/engine/framework/EngineStage.java b/core/src/main/java/art/arcane/iris/engine/framework/EngineStage.java similarity index 85% rename from core/src/main/java/com/volmit/iris/engine/framework/EngineStage.java rename to core/src/main/java/art/arcane/iris/engine/framework/EngineStage.java index c863c8234..68f83fade 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/EngineStage.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/EngineStage.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; -import com.volmit.iris.util.context.ChunkContext; -import com.volmit.iris.util.documentation.BlockCoordinates; -import com.volmit.iris.util.hunk.Hunk; +import art.arcane.iris.util.context.ChunkContext; +import art.arcane.volmlib.util.documentation.BlockCoordinates; +import art.arcane.iris.util.hunk.Hunk; import org.bukkit.block.Biome; import org.bukkit.block.data.BlockData; diff --git a/core/src/main/java/com/volmit/iris/engine/framework/EngineTarget.java b/core/src/main/java/art/arcane/iris/engine/framework/EngineTarget.java similarity index 85% rename from core/src/main/java/com/volmit/iris/engine/framework/EngineTarget.java rename to core/src/main/java/art/arcane/iris/engine/framework/EngineTarget.java index 7e9388ffb..4a4651258 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/EngineTarget.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/EngineTarget.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.object.IrisDimension; -import com.volmit.iris.engine.object.IrisWorld; -import com.volmit.iris.util.parallel.MultiBurst; +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.parallel.MultiBurst; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/core/src/main/java/com/volmit/iris/engine/framework/EngineWorldManager.java b/core/src/main/java/art/arcane/iris/engine/framework/EngineWorldManager.java similarity index 97% rename from core/src/main/java/com/volmit/iris/engine/framework/EngineWorldManager.java rename to core/src/main/java/art/arcane/iris/engine/framework/EngineWorldManager.java index 36a31b1f2..2889a404f 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/EngineWorldManager.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/EngineWorldManager.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; import org.bukkit.Chunk; import org.bukkit.event.block.BlockBreakEvent; diff --git a/core/src/main/java/com/volmit/iris/engine/framework/Fallible.java b/core/src/main/java/art/arcane/iris/engine/framework/Fallible.java similarity index 94% rename from core/src/main/java/com/volmit/iris/engine/framework/Fallible.java rename to core/src/main/java/art/arcane/iris/engine/framework/Fallible.java index 3ee51d4d1..f10357d0b 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/Fallible.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/Fallible.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; -import com.volmit.iris.Iris; +import art.arcane.iris.Iris; public interface Fallible { default void fail(String error) { diff --git a/core/src/main/java/com/volmit/iris/engine/framework/Hotloadable.java b/core/src/main/java/art/arcane/iris/engine/framework/Hotloadable.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/framework/Hotloadable.java rename to core/src/main/java/art/arcane/iris/engine/framework/Hotloadable.java index 7a6605090..f3aa7dfcc 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/Hotloadable.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/Hotloadable.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; public interface Hotloadable { void hotload(); diff --git a/core/src/main/java/com/volmit/iris/engine/framework/IrisEngineMode.java b/core/src/main/java/art/arcane/iris/engine/framework/IrisEngineMode.java similarity index 94% rename from core/src/main/java/com/volmit/iris/engine/framework/IrisEngineMode.java rename to core/src/main/java/art/arcane/iris/engine/framework/IrisEngineMode.java index 0f10b8807..dd5aca0d2 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/IrisEngineMode.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/IrisEngineMode.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; -import com.volmit.iris.util.collection.KList; +import art.arcane.volmlib.util.collection.KList; public abstract class IrisEngineMode implements EngineMode { private final Engine engine; diff --git a/core/src/main/java/com/volmit/iris/engine/framework/ListFunction.java b/core/src/main/java/art/arcane/iris/engine/framework/ListFunction.java similarity index 62% rename from core/src/main/java/com/volmit/iris/engine/framework/ListFunction.java rename to core/src/main/java/art/arcane/iris/engine/framework/ListFunction.java index a99341603..706c7fccd 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/ListFunction.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/ListFunction.java @@ -1,6 +1,6 @@ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; -import com.volmit.iris.core.loader.IrisData; +import art.arcane.iris.core.loader.IrisData; import java.util.function.Function; diff --git a/core/src/main/java/com/volmit/iris/engine/framework/Locator.java b/core/src/main/java/art/arcane/iris/engine/framework/Locator.java similarity index 87% rename from core/src/main/java/com/volmit/iris/engine/framework/Locator.java rename to core/src/main/java/art/arcane/iris/engine/framework/Locator.java index 0c05c068b..6e3bc8e1f 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/Locator.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/Locator.java @@ -16,29 +16,29 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.nms.container.BlockPos; -import com.volmit.iris.core.nms.container.Pair; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisJigsawStructure; -import com.volmit.iris.engine.object.IrisObject; -import com.volmit.iris.engine.object.IrisRegion; -import com.volmit.iris.util.context.ChunkContext; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.math.Position2; -import com.volmit.iris.util.math.Spiraler; -import com.volmit.iris.util.matter.MatterCavern; -import com.volmit.iris.util.parallel.BurstExecutor; -import com.volmit.iris.util.parallel.MultiBurst; -import com.volmit.iris.util.plugin.VolmitSender; -import com.volmit.iris.util.scheduling.J; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; -import com.volmit.iris.util.scheduling.jobs.SingleJob; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.core.nms.container.BlockPos; +import art.arcane.iris.core.nms.container.Pair; +import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.iris.engine.object.IrisJigsawStructure; +import art.arcane.iris.engine.object.IrisObject; +import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.util.context.ChunkContext; +import art.arcane.iris.util.format.C; +import art.arcane.volmlib.util.format.Form; +import art.arcane.volmlib.util.math.M; +import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Spiraler; +import art.arcane.volmlib.util.matter.MatterCavern; +import art.arcane.iris.util.parallel.BurstExecutor; +import art.arcane.iris.util.parallel.MultiBurst; +import art.arcane.iris.util.plugin.VolmitSender; +import art.arcane.iris.util.scheduling.J; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.util.scheduling.jobs.SingleJob; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.entity.Player; diff --git a/core/src/main/java/com/volmit/iris/engine/framework/LocatorCanceller.java b/core/src/main/java/art/arcane/iris/engine/framework/LocatorCanceller.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/framework/LocatorCanceller.java rename to core/src/main/java/art/arcane/iris/engine/framework/LocatorCanceller.java index 53ccaf2a8..0188b5f48 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/LocatorCanceller.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/LocatorCanceller.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; public class LocatorCanceller { protected static Runnable cancel = null; diff --git a/core/src/main/java/com/volmit/iris/engine/framework/LootProvider.java b/core/src/main/java/art/arcane/iris/engine/framework/LootProvider.java similarity index 80% rename from core/src/main/java/com/volmit/iris/engine/framework/LootProvider.java rename to core/src/main/java/art/arcane/iris/engine/framework/LootProvider.java index 3192748b4..5b8612934 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/LootProvider.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/LootProvider.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; -import com.volmit.iris.engine.object.InventorySlotType; -import com.volmit.iris.engine.object.IrisLootReference; -import com.volmit.iris.engine.object.IrisLootTable; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.engine.object.InventorySlotType; +import art.arcane.iris.engine.object.IrisLootReference; +import art.arcane.iris.engine.object.IrisLootTable; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.math.RNG; import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.inventory.Inventory; diff --git a/core/src/main/java/com/volmit/iris/engine/framework/MeteredCache.java b/core/src/main/java/art/arcane/iris/engine/framework/MeteredCache.java similarity index 92% rename from core/src/main/java/com/volmit/iris/engine/framework/MeteredCache.java rename to core/src/main/java/art/arcane/iris/engine/framework/MeteredCache.java index 50f5accf2..80dabc783 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/MeteredCache.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/MeteredCache.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; -import com.volmit.iris.util.data.KCache; +import art.arcane.volmlib.util.data.KCache; public interface MeteredCache { long getSize(); diff --git a/core/src/main/java/com/volmit/iris/engine/framework/PlacedObject.java b/core/src/main/java/art/arcane/iris/engine/framework/PlacedObject.java similarity index 87% rename from core/src/main/java/com/volmit/iris/engine/framework/PlacedObject.java rename to core/src/main/java/art/arcane/iris/engine/framework/PlacedObject.java index 31cdf1b59..c72d0d080 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/PlacedObject.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/PlacedObject.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; -import com.volmit.iris.engine.object.IrisObject; -import com.volmit.iris.engine.object.IrisObjectPlacement; +import art.arcane.iris.engine.object.IrisObject; +import art.arcane.iris.engine.object.IrisObjectPlacement; import lombok.AllArgsConstructor; import lombok.Data; import org.jetbrains.annotations.Nullable; diff --git a/core/src/main/java/com/volmit/iris/engine/framework/PregeneratedData.java b/core/src/main/java/art/arcane/iris/engine/framework/PregeneratedData.java similarity index 91% rename from core/src/main/java/com/volmit/iris/engine/framework/PregeneratedData.java rename to core/src/main/java/art/arcane/iris/engine/framework/PregeneratedData.java index 8b8580227..7a0790d45 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/PregeneratedData.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/PregeneratedData.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; -import com.volmit.iris.engine.data.chunk.TerrainChunk; -import com.volmit.iris.util.data.B; -import com.volmit.iris.util.hunk.Hunk; +import art.arcane.iris.engine.data.chunk.TerrainChunk; +import art.arcane.iris.util.data.B; +import art.arcane.iris.util.hunk.Hunk; import lombok.Data; import org.bukkit.block.Biome; import org.bukkit.block.data.BlockData; diff --git a/core/src/main/java/com/volmit/iris/engine/framework/ResultLocator.java b/core/src/main/java/art/arcane/iris/engine/framework/ResultLocator.java similarity index 88% rename from core/src/main/java/com/volmit/iris/engine/framework/ResultLocator.java rename to core/src/main/java/art/arcane/iris/engine/framework/ResultLocator.java index 93d698347..d81e510a9 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/ResultLocator.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/ResultLocator.java @@ -1,14 +1,14 @@ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.engine.object.IrisJigsawStructure; -import com.volmit.iris.engine.object.IrisObject; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.math.Position2; -import com.volmit.iris.util.math.Spiraler; -import com.volmit.iris.util.parallel.BurstExecutor; -import com.volmit.iris.util.parallel.MultiBurst; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.engine.object.IrisJigsawStructure; +import art.arcane.iris.engine.object.IrisObject; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Spiraler; +import art.arcane.iris.util.parallel.BurstExecutor; +import art.arcane.iris.util.parallel.MultiBurst; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import org.apache.commons.lang3.function.TriFunction; import java.util.Collection; diff --git a/core/src/main/java/com/volmit/iris/engine/framework/SeedManager.java b/core/src/main/java/art/arcane/iris/engine/framework/SeedManager.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/framework/SeedManager.java rename to core/src/main/java/art/arcane/iris/engine/framework/SeedManager.java index b1544b38a..fe66abb6e 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/SeedManager.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/SeedManager.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; -import com.volmit.iris.engine.object.NoiseStyle; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.CNG; +import art.arcane.iris.engine.object.NoiseStyle; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.CNG; import lombok.AccessLevel; import lombok.Data; import lombok.Setter; diff --git a/core/src/main/java/com/volmit/iris/engine/framework/Staged.java b/core/src/main/java/art/arcane/iris/engine/framework/Staged.java similarity index 91% rename from core/src/main/java/com/volmit/iris/engine/framework/Staged.java rename to core/src/main/java/art/arcane/iris/engine/framework/Staged.java index 52a8b8e07..03d98ed6b 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/Staged.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/Staged.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; -import com.volmit.iris.util.collection.KList; +import art.arcane.volmlib.util.collection.KList; public interface Staged { KList getStages(); diff --git a/core/src/main/java/com/volmit/iris/engine/framework/WrongEngineBroException.java b/core/src/main/java/art/arcane/iris/engine/framework/WrongEngineBroException.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/framework/WrongEngineBroException.java rename to core/src/main/java/art/arcane/iris/engine/framework/WrongEngineBroException.java index 63db6f72f..8f1b74749 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/WrongEngineBroException.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/WrongEngineBroException.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework; +package art.arcane.iris.engine.framework; public class WrongEngineBroException extends Exception { } diff --git a/core/src/main/java/com/volmit/iris/engine/framework/placer/HeightmapObjectPlacer.java b/core/src/main/java/art/arcane/iris/engine/framework/placer/HeightmapObjectPlacer.java similarity index 90% rename from core/src/main/java/com/volmit/iris/engine/framework/placer/HeightmapObjectPlacer.java rename to core/src/main/java/art/arcane/iris/engine/framework/placer/HeightmapObjectPlacer.java index c6762e0b4..7e183f180 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/placer/HeightmapObjectPlacer.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/placer/HeightmapObjectPlacer.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.framework.placer; +package art.arcane.iris.engine.framework.placer; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IObjectPlacer; -import com.volmit.iris.engine.object.IrisObjectPlacement; -import com.volmit.iris.engine.object.TileData; -import com.volmit.iris.util.math.RNG; +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.volmlib.util.math.RNG; import org.bukkit.block.data.BlockData; public class HeightmapObjectPlacer implements IObjectPlacer { diff --git a/core/src/main/java/com/volmit/iris/engine/framework/placer/WorldObjectPlacer.java b/core/src/main/java/art/arcane/iris/engine/framework/placer/WorldObjectPlacer.java similarity index 82% rename from core/src/main/java/com/volmit/iris/engine/framework/placer/WorldObjectPlacer.java rename to core/src/main/java/art/arcane/iris/engine/framework/placer/WorldObjectPlacer.java index e75f00c6b..01ff0734e 100644 --- a/core/src/main/java/com/volmit/iris/engine/framework/placer/WorldObjectPlacer.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/placer/WorldObjectPlacer.java @@ -1,20 +1,20 @@ -package com.volmit.iris.engine.framework.placer; +package art.arcane.iris.engine.framework.placer; -import com.volmit.iris.Iris; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.engine.data.cache.Cache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.core.events.IrisLootEvent; -import com.volmit.iris.engine.mantle.EngineMantle; -import com.volmit.iris.engine.object.IObjectPlacer; -import com.volmit.iris.engine.object.InventorySlotType; -import com.volmit.iris.engine.object.IrisLootTable; -import com.volmit.iris.engine.object.TileData; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.data.B; -import com.volmit.iris.util.data.IrisCustomData; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.Iris; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.iris.engine.data.cache.Cache; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.core.events.IrisLootEvent; +import art.arcane.iris.engine.mantle.EngineMantle; +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.volmlib.util.collection.KList; +import art.arcane.iris.util.data.B; +import art.arcane.iris.util.data.IrisCustomData; +import art.arcane.volmlib.util.math.RNG; import lombok.EqualsAndHashCode; import lombok.Getter; import org.bukkit.Bukkit; diff --git a/core/src/main/java/com/volmit/iris/engine/jigsaw/PlannedPiece.java b/core/src/main/java/art/arcane/iris/engine/jigsaw/PlannedPiece.java similarity index 93% rename from core/src/main/java/com/volmit/iris/engine/jigsaw/PlannedPiece.java rename to core/src/main/java/art/arcane/iris/engine/jigsaw/PlannedPiece.java index fb757a6e4..7ccef0684 100644 --- a/core/src/main/java/com/volmit/iris/engine/jigsaw/PlannedPiece.java +++ b/core/src/main/java/art/arcane/iris/engine/jigsaw/PlannedPiece.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.jigsaw; +package art.arcane.iris.engine.jigsaw; -import com.volmit.iris.Iris; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.object.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.math.AxisAlignedBB; +import art.arcane.iris.Iris; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.engine.object.*; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.math.AxisAlignedBB; import lombok.AccessLevel; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/engine/jigsaw/PlannedStructure.java b/core/src/main/java/art/arcane/iris/engine/jigsaw/PlannedStructure.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/jigsaw/PlannedStructure.java rename to core/src/main/java/art/arcane/iris/engine/jigsaw/PlannedStructure.java index 96be7cbc8..57d0cebbf 100644 --- a/core/src/main/java/com/volmit/iris/engine/jigsaw/PlannedStructure.java +++ b/core/src/main/java/art/arcane/iris/engine/jigsaw/PlannedStructure.java @@ -16,22 +16,22 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.jigsaw; +package art.arcane.iris.engine.jigsaw; import com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap; -import com.volmit.iris.Iris; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.placer.WorldObjectPlacer; -import com.volmit.iris.engine.object.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.mantle.Mantle; -import com.volmit.iris.util.math.Position2; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.matter.slices.container.JigsawPieceContainer; -import com.volmit.iris.util.matter.slices.container.JigsawStructureContainer; -import com.volmit.iris.util.matter.slices.container.JigsawStructuresContainer; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.framework.placer.WorldObjectPlacer; +import art.arcane.iris.engine.object.*; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.iris.util.mantle.Mantle; +import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.matter.slices.container.JigsawPieceContainer; +import art.arcane.iris.util.matter.slices.container.JigsawStructureContainer; +import art.arcane.iris.util.matter.slices.container.JigsawStructuresContainer; +import art.arcane.iris.util.scheduling.J; import lombok.Data; import org.bukkit.Axis; diff --git a/core/src/main/java/com/volmit/iris/engine/mantle/ComponentFlag.java b/core/src/main/java/art/arcane/iris/engine/mantle/ComponentFlag.java similarity index 75% rename from core/src/main/java/com/volmit/iris/engine/mantle/ComponentFlag.java rename to core/src/main/java/art/arcane/iris/engine/mantle/ComponentFlag.java index 0ed617a7d..1d29dfd3e 100644 --- a/core/src/main/java/com/volmit/iris/engine/mantle/ComponentFlag.java +++ b/core/src/main/java/art/arcane/iris/engine/mantle/ComponentFlag.java @@ -1,6 +1,6 @@ -package com.volmit.iris.engine.mantle; +package art.arcane.iris.engine.mantle; -import com.volmit.iris.util.mantle.flag.ReservedFlag; +import art.arcane.volmlib.util.mantle.flag.ReservedFlag; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/core/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java b/core/src/main/java/art/arcane/iris/engine/mantle/EngineMantle.java similarity index 84% rename from core/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java rename to core/src/main/java/art/arcane/iris/engine/mantle/EngineMantle.java index 0ebe6cc53..b1ddbcbab 100644 --- a/core/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java +++ b/core/src/main/java/art/arcane/iris/engine/mantle/EngineMantle.java @@ -16,29 +16,32 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.mantle; +package art.arcane.iris.engine.mantle; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.nms.container.Pair; -import com.volmit.iris.engine.IrisComplex; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.EngineTarget; -import com.volmit.iris.engine.mantle.components.MantleJigsawComponent; -import com.volmit.iris.engine.mantle.components.MantleObjectComponent; -import com.volmit.iris.engine.object.IrisDimension; -import com.volmit.iris.engine.object.IrisPosition; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.data.B; -import com.volmit.iris.util.documentation.BlockCoordinates; -import com.volmit.iris.util.documentation.ChunkCoordinates; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.mantle.Mantle; -import com.volmit.iris.util.mantle.MantleChunk; -import com.volmit.iris.util.mantle.flag.MantleFlag; -import com.volmit.iris.util.matter.*; -import com.volmit.iris.util.matter.slices.UpdateMatter; -import com.volmit.iris.util.parallel.MultiBurst; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.core.nms.container.Pair; +import art.arcane.iris.engine.IrisComplex; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.framework.EngineTarget; +import art.arcane.iris.engine.mantle.components.MantleJigsawComponent; +import art.arcane.iris.engine.mantle.components.MantleObjectComponent; +import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.engine.object.IrisPosition; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.iris.util.data.B; +import art.arcane.volmlib.util.documentation.BlockCoordinates; +import art.arcane.volmlib.util.documentation.ChunkCoordinates; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.iris.util.mantle.Mantle; +import art.arcane.iris.util.mantle.MantleChunk; +import art.arcane.volmlib.util.mantle.flag.MantleFlag; +import art.arcane.volmlib.util.matter.MatterCavern; +import art.arcane.volmlib.util.matter.MatterFluidBody; +import art.arcane.volmlib.util.matter.MatterMarker; +import art.arcane.iris.util.matter.*; +import art.arcane.iris.util.matter.slices.UpdateMatter; +import art.arcane.iris.util.parallel.MultiBurst; import org.bukkit.block.data.BlockData; import org.jetbrains.annotations.UnmodifiableView; @@ -256,4 +259,4 @@ public interface EngineMantle extends MatterGenerator { default double getAdjustedIdleDuration() { return getMantle().getAdjustedIdleDuration(); } -} \ No newline at end of file +} diff --git a/core/src/main/java/com/volmit/iris/engine/mantle/IrisMantleComponent.java b/core/src/main/java/art/arcane/iris/engine/mantle/IrisMantleComponent.java similarity index 94% rename from core/src/main/java/com/volmit/iris/engine/mantle/IrisMantleComponent.java rename to core/src/main/java/art/arcane/iris/engine/mantle/IrisMantleComponent.java index c123183d5..67af4d505 100644 --- a/core/src/main/java/com/volmit/iris/engine/mantle/IrisMantleComponent.java +++ b/core/src/main/java/art/arcane/iris/engine/mantle/IrisMantleComponent.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.mantle; +package art.arcane.iris.engine.mantle; -import com.volmit.iris.util.mantle.flag.MantleFlag; +import art.arcane.volmlib.util.mantle.flag.MantleFlag; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/core/src/main/java/com/volmit/iris/engine/mantle/MantleComponent.java b/core/src/main/java/art/arcane/iris/engine/mantle/MantleComponent.java similarity index 81% rename from core/src/main/java/com/volmit/iris/engine/mantle/MantleComponent.java rename to core/src/main/java/art/arcane/iris/engine/mantle/MantleComponent.java index b77b095a6..a69eac682 100644 --- a/core/src/main/java/com/volmit/iris/engine/mantle/MantleComponent.java +++ b/core/src/main/java/art/arcane/iris/engine/mantle/MantleComponent.java @@ -16,16 +16,16 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.mantle; +package art.arcane.iris.engine.mantle; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.IrisComplex; -import com.volmit.iris.engine.object.IrisDimension; -import com.volmit.iris.util.context.ChunkContext; -import com.volmit.iris.util.documentation.ChunkCoordinates; -import com.volmit.iris.util.mantle.Mantle; -import com.volmit.iris.util.mantle.flag.MantleFlag; -import com.volmit.iris.util.parallel.BurstExecutor; +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.context.ChunkContext; +import art.arcane.volmlib.util.documentation.ChunkCoordinates; +import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.mantle.flag.MantleFlag; +import art.arcane.iris.util.parallel.BurstExecutor; import org.jetbrains.annotations.NotNull; public interface MantleComponent extends Comparable { diff --git a/core/src/main/java/com/volmit/iris/engine/mantle/MantleSized.java b/core/src/main/java/art/arcane/iris/engine/mantle/MantleSized.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/mantle/MantleSized.java rename to core/src/main/java/art/arcane/iris/engine/mantle/MantleSized.java index 724188574..9a4d6d09d 100644 --- a/core/src/main/java/com/volmit/iris/engine/mantle/MantleSized.java +++ b/core/src/main/java/art/arcane/iris/engine/mantle/MantleSized.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.mantle; +package art.arcane.iris.engine.mantle; public interface MantleSized { int getMaxChunkSize(); diff --git a/core/src/main/java/com/volmit/iris/engine/mantle/MantleWriter.java b/core/src/main/java/art/arcane/iris/engine/mantle/MantleWriter.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/mantle/MantleWriter.java rename to core/src/main/java/art/arcane/iris/engine/mantle/MantleWriter.java index 391bd8eb7..1ab905887 100644 --- a/core/src/main/java/com/volmit/iris/engine/mantle/MantleWriter.java +++ b/core/src/main/java/art/arcane/iris/engine/mantle/MantleWriter.java @@ -16,30 +16,30 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.mantle; +package art.arcane.iris.engine.mantle; import com.google.common.collect.ImmutableList; -import com.volmit.iris.Iris; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.data.cache.Cache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IObjectPlacer; -import com.volmit.iris.engine.object.IrisGeneratorStyle; -import com.volmit.iris.engine.object.IrisPosition; -import com.volmit.iris.engine.object.TileData; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.data.B; -import com.volmit.iris.util.data.IrisCustomData; -import com.volmit.iris.util.documentation.ChunkCoordinates; -import com.volmit.iris.util.function.Function3; -import com.volmit.iris.util.mantle.Mantle; -import com.volmit.iris.util.mantle.MantleChunk; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.matter.Matter; -import com.volmit.iris.util.matter.MatterCavern; -import com.volmit.iris.util.matter.TileWrapper; -import com.volmit.iris.util.noise.CNG; +import art.arcane.iris.Iris; +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.IObjectPlacer; +import art.arcane.iris.engine.object.IrisGeneratorStyle; +import art.arcane.iris.engine.object.IrisPosition; +import art.arcane.iris.engine.object.TileData; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.collection.KSet; +import art.arcane.iris.util.data.B; +import art.arcane.iris.util.data.IrisCustomData; +import art.arcane.volmlib.util.documentation.ChunkCoordinates; +import art.arcane.volmlib.util.function.Function3; +import art.arcane.iris.util.mantle.Mantle; +import art.arcane.iris.util.mantle.MantleChunk; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.matter.Matter; +import art.arcane.volmlib.util.matter.MatterCavern; +import art.arcane.iris.util.matter.TileWrapper; +import art.arcane.iris.util.noise.CNG; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; import lombok.Data; import org.bukkit.block.data.BlockData; @@ -47,7 +47,7 @@ import org.bukkit.util.Vector; import java.util.*; -import static com.volmit.iris.engine.mantle.EngineMantle.AIR; +import static art.arcane.iris.engine.mantle.EngineMantle.AIR; @Data public class MantleWriter implements IObjectPlacer, AutoCloseable { diff --git a/core/src/main/java/com/volmit/iris/engine/mantle/components/MantleCarvingComponent.java b/core/src/main/java/art/arcane/iris/engine/mantle/components/MantleCarvingComponent.java similarity index 79% rename from core/src/main/java/com/volmit/iris/engine/mantle/components/MantleCarvingComponent.java rename to core/src/main/java/art/arcane/iris/engine/mantle/components/MantleCarvingComponent.java index dcaf50bee..875326801 100644 --- a/core/src/main/java/com/volmit/iris/engine/mantle/components/MantleCarvingComponent.java +++ b/core/src/main/java/art/arcane/iris/engine/mantle/components/MantleCarvingComponent.java @@ -16,20 +16,20 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.mantle.components; +package art.arcane.iris.engine.mantle.components; -import com.volmit.iris.engine.data.cache.Cache; -import com.volmit.iris.engine.mantle.ComponentFlag; -import com.volmit.iris.engine.mantle.EngineMantle; -import com.volmit.iris.engine.mantle.IrisMantleComponent; -import com.volmit.iris.engine.mantle.MantleWriter; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisCarving; -import com.volmit.iris.engine.object.IrisRegion; -import com.volmit.iris.util.context.ChunkContext; -import com.volmit.iris.util.documentation.ChunkCoordinates; -import com.volmit.iris.util.mantle.flag.ReservedFlag; -import com.volmit.iris.util.math.RNG; +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.IrisBiome; +import art.arcane.iris.engine.object.IrisCarving; +import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.util.context.ChunkContext; +import art.arcane.volmlib.util.documentation.ChunkCoordinates; +import art.arcane.volmlib.util.mantle.flag.ReservedFlag; +import art.arcane.volmlib.util.math.RNG; @ComponentFlag(ReservedFlag.CARVED) public class MantleCarvingComponent extends IrisMantleComponent { diff --git a/core/src/main/java/com/volmit/iris/engine/mantle/components/MantleFluidBodyComponent.java b/core/src/main/java/art/arcane/iris/engine/mantle/components/MantleFluidBodyComponent.java similarity index 79% rename from core/src/main/java/com/volmit/iris/engine/mantle/components/MantleFluidBodyComponent.java rename to core/src/main/java/art/arcane/iris/engine/mantle/components/MantleFluidBodyComponent.java index ee12b0d6d..820d2e384 100644 --- a/core/src/main/java/com/volmit/iris/engine/mantle/components/MantleFluidBodyComponent.java +++ b/core/src/main/java/art/arcane/iris/engine/mantle/components/MantleFluidBodyComponent.java @@ -16,20 +16,20 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.mantle.components; +package art.arcane.iris.engine.mantle.components; -import com.volmit.iris.engine.data.cache.Cache; -import com.volmit.iris.engine.mantle.ComponentFlag; -import com.volmit.iris.engine.mantle.EngineMantle; -import com.volmit.iris.engine.mantle.IrisMantleComponent; -import com.volmit.iris.engine.mantle.MantleWriter; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisFluidBodies; -import com.volmit.iris.engine.object.IrisRegion; -import com.volmit.iris.util.context.ChunkContext; -import com.volmit.iris.util.documentation.ChunkCoordinates; -import com.volmit.iris.util.mantle.flag.ReservedFlag; -import com.volmit.iris.util.math.RNG; +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.IrisBiome; +import art.arcane.iris.engine.object.IrisFluidBodies; +import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.util.context.ChunkContext; +import art.arcane.volmlib.util.documentation.ChunkCoordinates; +import art.arcane.volmlib.util.mantle.flag.ReservedFlag; +import art.arcane.volmlib.util.math.RNG; @ComponentFlag(ReservedFlag.FLUID_BODIES) public class MantleFluidBodyComponent extends IrisMantleComponent { diff --git a/core/src/main/java/com/volmit/iris/engine/mantle/components/MantleJigsawComponent.java b/core/src/main/java/art/arcane/iris/engine/mantle/components/MantleJigsawComponent.java similarity index 90% rename from core/src/main/java/com/volmit/iris/engine/mantle/components/MantleJigsawComponent.java rename to core/src/main/java/art/arcane/iris/engine/mantle/components/MantleJigsawComponent.java index fe4e45f0a..b2812f359 100644 --- a/core/src/main/java/com/volmit/iris/engine/mantle/components/MantleJigsawComponent.java +++ b/core/src/main/java/art/arcane/iris/engine/mantle/components/MantleJigsawComponent.java @@ -16,25 +16,25 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.mantle.components; +package art.arcane.iris.engine.mantle.components; -import com.volmit.iris.engine.jigsaw.PlannedStructure; -import com.volmit.iris.engine.mantle.ComponentFlag; -import com.volmit.iris.engine.mantle.EngineMantle; -import com.volmit.iris.engine.mantle.IrisMantleComponent; -import com.volmit.iris.engine.mantle.MantleWriter; -import com.volmit.iris.engine.object.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.context.ChunkContext; -import com.volmit.iris.util.documentation.BlockCoordinates; -import com.volmit.iris.util.documentation.ChunkCoordinates; -import com.volmit.iris.util.mantle.flag.ReservedFlag; -import com.volmit.iris.util.math.Position2; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.matter.slices.container.JigsawStructuresContainer; -import com.volmit.iris.util.noise.CNG; +import art.arcane.iris.engine.jigsaw.PlannedStructure; +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.*; +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.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.iris.util.math.Position2; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.matter.slices.container.JigsawStructuresContainer; +import art.arcane.iris.util.noise.CNG; import org.jetbrains.annotations.Nullable; import java.util.List; diff --git a/core/src/main/java/com/volmit/iris/engine/mantle/components/MantleObjectComponent.java b/core/src/main/java/art/arcane/iris/engine/mantle/components/MantleObjectComponent.java similarity index 90% rename from core/src/main/java/com/volmit/iris/engine/mantle/components/MantleObjectComponent.java rename to core/src/main/java/art/arcane/iris/engine/mantle/components/MantleObjectComponent.java index 920bb9b35..e2150c059 100644 --- a/core/src/main/java/com/volmit/iris/engine/mantle/components/MantleObjectComponent.java +++ b/core/src/main/java/art/arcane/iris/engine/mantle/components/MantleObjectComponent.java @@ -16,29 +16,29 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.mantle.components; +package art.arcane.iris.engine.mantle.components; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.data.cache.Cache; -import com.volmit.iris.engine.mantle.ComponentFlag; -import com.volmit.iris.engine.mantle.EngineMantle; -import com.volmit.iris.engine.mantle.IrisMantleComponent; -import com.volmit.iris.engine.mantle.MantleWriter; -import com.volmit.iris.engine.object.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.context.ChunkContext; -import com.volmit.iris.util.data.B; -import com.volmit.iris.util.documentation.BlockCoordinates; -import com.volmit.iris.util.documentation.ChunkCoordinates; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.mantle.flag.ReservedFlag; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.matter.MatterStructurePOI; -import com.volmit.iris.util.noise.CNG; -import com.volmit.iris.util.noise.NoiseType; -import com.volmit.iris.util.parallel.BurstExecutor; +import art.arcane.iris.Iris; +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.*; +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.context.ChunkContext; +import art.arcane.iris.util.data.B; +import art.arcane.volmlib.util.documentation.BlockCoordinates; +import art.arcane.volmlib.util.documentation.ChunkCoordinates; +import art.arcane.volmlib.util.format.Form; +import art.arcane.volmlib.util.mantle.flag.ReservedFlag; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.matter.MatterStructurePOI; +import art.arcane.iris.util.noise.CNG; +import art.arcane.iris.util.noise.NoiseType; +import art.arcane.iris.util.parallel.BurstExecutor; import org.bukkit.util.BlockVector; import java.io.IOException; diff --git a/core/src/main/java/com/volmit/iris/engine/mode/ModeEnclosure.java b/core/src/main/java/art/arcane/iris/engine/mode/ModeEnclosure.java similarity index 79% rename from core/src/main/java/com/volmit/iris/engine/mode/ModeEnclosure.java rename to core/src/main/java/art/arcane/iris/engine/mode/ModeEnclosure.java index 1e66e180e..09d2f9f15 100644 --- a/core/src/main/java/com/volmit/iris/engine/mode/ModeEnclosure.java +++ b/core/src/main/java/art/arcane/iris/engine/mode/ModeEnclosure.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.mode; +package art.arcane.iris.engine.mode; -import com.volmit.iris.engine.actuator.IrisBiomeActuator; -import com.volmit.iris.engine.actuator.IrisTerrainNormalActuator; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.EngineMode; -import com.volmit.iris.engine.framework.IrisEngineMode; +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; public class ModeEnclosure extends IrisEngineMode implements EngineMode { public ModeEnclosure(Engine engine) { diff --git a/core/src/main/java/com/volmit/iris/engine/mode/ModeIslands.java b/core/src/main/java/art/arcane/iris/engine/mode/ModeIslands.java similarity index 79% rename from core/src/main/java/com/volmit/iris/engine/mode/ModeIslands.java rename to core/src/main/java/art/arcane/iris/engine/mode/ModeIslands.java index ef3abeae1..494b46bc8 100644 --- a/core/src/main/java/com/volmit/iris/engine/mode/ModeIslands.java +++ b/core/src/main/java/art/arcane/iris/engine/mode/ModeIslands.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.mode; +package art.arcane.iris.engine.mode; -import com.volmit.iris.engine.actuator.IrisBiomeActuator; -import com.volmit.iris.engine.actuator.IrisTerrainNormalActuator; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.EngineMode; -import com.volmit.iris.engine.framework.IrisEngineMode; +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; public class ModeIslands extends IrisEngineMode implements EngineMode { public ModeIslands(Engine engine) { diff --git a/core/src/main/java/com/volmit/iris/engine/mode/ModeOverworld.java b/core/src/main/java/art/arcane/iris/engine/mode/ModeOverworld.java similarity index 85% rename from core/src/main/java/com/volmit/iris/engine/mode/ModeOverworld.java rename to core/src/main/java/art/arcane/iris/engine/mode/ModeOverworld.java index c3a04ba73..3e8b201a3 100644 --- a/core/src/main/java/com/volmit/iris/engine/mode/ModeOverworld.java +++ b/core/src/main/java/art/arcane/iris/engine/mode/ModeOverworld.java @@ -16,16 +16,16 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.mode; +package art.arcane.iris.engine.mode; -import com.volmit.iris.engine.actuator.IrisBiomeActuator; -import com.volmit.iris.engine.actuator.IrisDecorantActuator; -import com.volmit.iris.engine.actuator.IrisTerrainNormalActuator; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.EngineMode; -import com.volmit.iris.engine.framework.EngineStage; -import com.volmit.iris.engine.framework.IrisEngineMode; -import com.volmit.iris.engine.modifier.*; +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.EngineStage; +import art.arcane.iris.engine.framework.IrisEngineMode; +import art.arcane.iris.engine.modifier.*; import org.bukkit.block.data.BlockData; public class ModeOverworld extends IrisEngineMode implements EngineMode { diff --git a/core/src/main/java/com/volmit/iris/engine/mode/ModeSuperFlat.java b/core/src/main/java/art/arcane/iris/engine/mode/ModeSuperFlat.java similarity index 79% rename from core/src/main/java/com/volmit/iris/engine/mode/ModeSuperFlat.java rename to core/src/main/java/art/arcane/iris/engine/mode/ModeSuperFlat.java index 5a0e93caf..6cc04308b 100644 --- a/core/src/main/java/com/volmit/iris/engine/mode/ModeSuperFlat.java +++ b/core/src/main/java/art/arcane/iris/engine/mode/ModeSuperFlat.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.mode; +package art.arcane.iris.engine.mode; -import com.volmit.iris.engine.actuator.IrisBiomeActuator; -import com.volmit.iris.engine.actuator.IrisTerrainNormalActuator; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.EngineMode; -import com.volmit.iris.engine.framework.IrisEngineMode; +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; public class ModeSuperFlat extends IrisEngineMode implements EngineMode { public ModeSuperFlat(Engine engine) { diff --git a/core/src/main/java/com/volmit/iris/engine/modifier/IrisCarveModifier.java b/core/src/main/java/art/arcane/iris/engine/modifier/IrisCarveModifier.java similarity index 90% rename from core/src/main/java/com/volmit/iris/engine/modifier/IrisCarveModifier.java rename to core/src/main/java/art/arcane/iris/engine/modifier/IrisCarveModifier.java index 678dbcd3b..37995d1f9 100644 --- a/core/src/main/java/com/volmit/iris/engine/modifier/IrisCarveModifier.java +++ b/core/src/main/java/art/arcane/iris/engine/modifier/IrisCarveModifier.java @@ -16,27 +16,27 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.modifier; +package art.arcane.iris.engine.modifier; -import com.volmit.iris.engine.actuator.IrisDecorantActuator; -import com.volmit.iris.engine.data.cache.Cache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.EngineAssignedModifier; -import com.volmit.iris.engine.object.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.context.ChunkContext; -import com.volmit.iris.util.data.B; -import com.volmit.iris.util.documentation.ChunkCoordinates; -import com.volmit.iris.util.function.Consumer4; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.mantle.Mantle; -import com.volmit.iris.util.mantle.MantleChunk; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.matter.MatterCavern; -import com.volmit.iris.util.matter.slices.MarkerMatter; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.engine.actuator.IrisDecorantActuator; +import art.arcane.iris.engine.data.cache.Cache; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.framework.EngineAssignedModifier; +import art.arcane.iris.engine.object.*; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.context.ChunkContext; +import art.arcane.iris.util.data.B; +import art.arcane.volmlib.util.documentation.ChunkCoordinates; +import art.arcane.volmlib.util.function.Consumer4; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.iris.util.mantle.Mantle; +import art.arcane.iris.util.mantle.MantleChunk; +import art.arcane.volmlib.util.math.M; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.volmlib.util.matter.MatterCavern; +import art.arcane.iris.util.matter.slices.MarkerMatter; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import lombok.Data; import org.bukkit.Material; import org.bukkit.block.data.BlockData; diff --git a/core/src/main/java/com/volmit/iris/engine/modifier/IrisCustomModifier.java b/core/src/main/java/art/arcane/iris/engine/modifier/IrisCustomModifier.java similarity index 73% rename from core/src/main/java/com/volmit/iris/engine/modifier/IrisCustomModifier.java rename to core/src/main/java/art/arcane/iris/engine/modifier/IrisCustomModifier.java index eca550cd2..984d23bcf 100644 --- a/core/src/main/java/com/volmit/iris/engine/modifier/IrisCustomModifier.java +++ b/core/src/main/java/art/arcane/iris/engine/modifier/IrisCustomModifier.java @@ -1,13 +1,13 @@ -package com.volmit.iris.engine.modifier; -import com.volmit.iris.core.link.Identifier; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.EngineAssignedModifier; -import com.volmit.iris.util.context.ChunkContext; -import com.volmit.iris.util.data.IrisCustomData; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.mantle.flag.MantleFlag; -import com.volmit.iris.util.parallel.BurstExecutor; -import com.volmit.iris.util.parallel.MultiBurst; +package art.arcane.iris.engine.modifier; +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.util.context.ChunkContext; +import art.arcane.iris.util.data.IrisCustomData; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.volmlib.util.mantle.flag.MantleFlag; +import art.arcane.iris.util.parallel.BurstExecutor; +import art.arcane.iris.util.parallel.MultiBurst; import org.bukkit.block.data.BlockData; public class IrisCustomModifier extends EngineAssignedModifier { public IrisCustomModifier(Engine engine) { diff --git a/core/src/main/java/com/volmit/iris/engine/modifier/IrisDepositModifier.java b/core/src/main/java/art/arcane/iris/engine/modifier/IrisDepositModifier.java similarity index 89% rename from core/src/main/java/com/volmit/iris/engine/modifier/IrisDepositModifier.java rename to core/src/main/java/art/arcane/iris/engine/modifier/IrisDepositModifier.java index f6fcd52c0..6d8d5d3a4 100644 --- a/core/src/main/java/com/volmit/iris/engine/modifier/IrisDepositModifier.java +++ b/core/src/main/java/art/arcane/iris/engine/modifier/IrisDepositModifier.java @@ -16,20 +16,20 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.modifier; +package art.arcane.iris.engine.modifier; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.EngineAssignedModifier; -import com.volmit.iris.engine.object.*; -import com.volmit.iris.util.context.ChunkContext; -import com.volmit.iris.util.data.B; -import com.volmit.iris.util.data.HeightMap; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.mantle.MantleChunk; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.matter.MatterCavern; -import com.volmit.iris.util.parallel.BurstExecutor; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.framework.EngineAssignedModifier; +import art.arcane.iris.engine.object.*; +import art.arcane.iris.util.context.ChunkContext; +import art.arcane.iris.util.data.B; +import art.arcane.volmlib.util.data.HeightMap; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.iris.util.mantle.MantleChunk; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.volmlib.util.matter.MatterCavern; +import art.arcane.iris.util.parallel.BurstExecutor; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import org.bukkit.Material; import org.bukkit.block.data.BlockData; import org.bukkit.util.BlockVector; diff --git a/core/src/main/java/com/volmit/iris/engine/modifier/IrisPerfectionModifier.java b/core/src/main/java/art/arcane/iris/engine/modifier/IrisPerfectionModifier.java similarity index 92% rename from core/src/main/java/com/volmit/iris/engine/modifier/IrisPerfectionModifier.java rename to core/src/main/java/art/arcane/iris/engine/modifier/IrisPerfectionModifier.java index 9aa9085e4..a5b84d922 100644 --- a/core/src/main/java/com/volmit/iris/engine/modifier/IrisPerfectionModifier.java +++ b/core/src/main/java/art/arcane/iris/engine/modifier/IrisPerfectionModifier.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.modifier; +package art.arcane.iris.engine.modifier; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.EngineAssignedModifier; -import com.volmit.iris.util.context.ChunkContext; -import com.volmit.iris.util.data.B; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.parallel.BurstExecutor; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.framework.EngineAssignedModifier; +import art.arcane.iris.util.context.ChunkContext; +import art.arcane.iris.util.data.B; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.iris.util.parallel.BurstExecutor; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import org.bukkit.block.data.Bisected; import org.bukkit.block.data.BlockData; diff --git a/core/src/main/java/com/volmit/iris/engine/modifier/IrisPostModifier.java b/core/src/main/java/art/arcane/iris/engine/modifier/IrisPostModifier.java similarity index 96% rename from core/src/main/java/com/volmit/iris/engine/modifier/IrisPostModifier.java rename to core/src/main/java/art/arcane/iris/engine/modifier/IrisPostModifier.java index aa80a05b6..2fcfcb1da 100644 --- a/core/src/main/java/com/volmit/iris/engine/modifier/IrisPostModifier.java +++ b/core/src/main/java/art/arcane/iris/engine/modifier/IrisPostModifier.java @@ -16,17 +16,17 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.modifier; +package art.arcane.iris.engine.modifier; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.EngineAssignedModifier; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisSlopeClip; -import com.volmit.iris.util.context.ChunkContext; -import com.volmit.iris.util.data.B; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.framework.EngineAssignedModifier; +import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.iris.engine.object.IrisSlopeClip; +import art.arcane.iris.util.context.ChunkContext; +import art.arcane.iris.util.data.B; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import org.bukkit.Material; import org.bukkit.block.data.BlockData; import org.bukkit.block.data.Levelled; diff --git a/core/src/main/java/com/volmit/iris/engine/object/CarveResult.java b/core/src/main/java/art/arcane/iris/engine/object/CarveResult.java similarity index 96% rename from core/src/main/java/com/volmit/iris/engine/object/CarveResult.java rename to core/src/main/java/art/arcane/iris/engine/object/CarveResult.java index 06dff5b90..c8fb4578b 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/CarveResult.java +++ b/core/src/main/java/art/arcane/iris/engine/object/CarveResult.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; import lombok.Value; diff --git a/core/src/main/java/com/volmit/iris/engine/object/CarvingMode.java b/core/src/main/java/art/arcane/iris/engine/object/CarvingMode.java similarity index 93% rename from core/src/main/java/com/volmit/iris/engine/object/CarvingMode.java rename to core/src/main/java/art/arcane/iris/engine/object/CarvingMode.java index 77f48277c..e9601480b 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/CarvingMode.java +++ b/core/src/main/java/art/arcane/iris/engine/object/CarvingMode.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; +import art.arcane.iris.engine.object.annotations.Desc; @Desc("Defines if an object is allowed to place in carvings, surfaces or both.") public enum CarvingMode { diff --git a/core/src/main/java/com/volmit/iris/engine/object/CaveResult.java b/core/src/main/java/art/arcane/iris/engine/object/CaveResult.java similarity index 96% rename from core/src/main/java/com/volmit/iris/engine/object/CaveResult.java rename to core/src/main/java/art/arcane/iris/engine/object/CaveResult.java index 19a099d6b..6216a0b62 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/CaveResult.java +++ b/core/src/main/java/art/arcane/iris/engine/object/CaveResult.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; import lombok.Data; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IObjectLoot.java b/core/src/main/java/art/arcane/iris/engine/object/IObjectLoot.java similarity index 63% rename from core/src/main/java/com/volmit/iris/engine/object/IObjectLoot.java rename to core/src/main/java/art/arcane/iris/engine/object/IObjectLoot.java index 6ee2ec882..c12f805b3 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IObjectLoot.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IObjectLoot.java @@ -1,7 +1,7 @@ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.util.collection.KList; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.volmlib.util.collection.KList; import org.bukkit.block.data.BlockData; public interface IObjectLoot { diff --git a/core/src/main/java/com/volmit/iris/engine/object/IObjectPlacer.java b/core/src/main/java/art/arcane/iris/engine/object/IObjectPlacer.java similarity index 92% rename from core/src/main/java/com/volmit/iris/engine/object/IObjectPlacer.java rename to core/src/main/java/art/arcane/iris/engine/object/IObjectPlacer.java index 9e2183b1c..d1b494aba 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IObjectPlacer.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IObjectPlacer.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.framework.Engine; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.engine.framework.Engine; import org.bukkit.block.data.BlockData; import org.jetbrains.annotations.Nullable; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IPostBlockAccess.java b/core/src/main/java/art/arcane/iris/engine/object/IPostBlockAccess.java similarity index 93% rename from core/src/main/java/com/volmit/iris/engine/object/IPostBlockAccess.java rename to core/src/main/java/art/arcane/iris/engine/object/IPostBlockAccess.java index db1c74271..939cac7d8 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IPostBlockAccess.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IPostBlockAccess.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.util.collection.KList; +import art.arcane.volmlib.util.collection.KList; import org.bukkit.block.data.BlockData; import org.bukkit.generator.ChunkGenerator.ChunkData; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IRare.java b/core/src/main/java/art/arcane/iris/engine/object/IRare.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/object/IRare.java rename to core/src/main/java/art/arcane/iris/engine/object/IRare.java index f78931830..3c517cb5b 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IRare.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IRare.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.stream.ProceduralStream; -import com.volmit.iris.util.stream.interpolation.Interpolated; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.stream.interpolation.Interpolated; import java.util.List; diff --git a/core/src/main/java/com/volmit/iris/engine/object/InferredType.java b/core/src/main/java/art/arcane/iris/engine/object/InferredType.java similarity index 91% rename from core/src/main/java/com/volmit/iris/engine/object/InferredType.java rename to core/src/main/java/art/arcane/iris/engine/object/InferredType.java index 37439bb4d..8f6f61ceb 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/InferredType.java +++ b/core/src/main/java/art/arcane/iris/engine/object/InferredType.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; +import art.arcane.iris.engine.object.annotations.Desc; @Desc("Represents a biome type") public enum InferredType { diff --git a/core/src/main/java/com/volmit/iris/engine/object/InventorySlotType.java b/core/src/main/java/art/arcane/iris/engine/object/InventorySlotType.java similarity index 93% rename from core/src/main/java/com/volmit/iris/engine/object/InventorySlotType.java rename to core/src/main/java/art/arcane/iris/engine/object/InventorySlotType.java index 2110fdba3..0014d1ade 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/InventorySlotType.java +++ b/core/src/main/java/art/arcane/iris/engine/object/InventorySlotType.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; +import art.arcane.iris.engine.object.annotations.Desc; @Desc("An inventory slot type is used to represent a type of slot for items to fit into in any given inventory.") public enum InventorySlotType { diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisAttributeModifier.java b/core/src/main/java/art/arcane/iris/engine/object/IrisAttributeModifier.java similarity index 96% rename from core/src/main/java/com/volmit/iris/engine/object/IrisAttributeModifier.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisAttributeModifier.java index 6108680f6..46d85a6d0 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisAttributeModifier.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisAttributeModifier.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.math.RNG; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisAxisRotationClamp.java b/core/src/main/java/art/arcane/iris/engine/object/IrisAxisRotationClamp.java similarity index 96% rename from core/src/main/java/com/volmit/iris/engine/object/IrisAxisRotationClamp.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisAxisRotationClamp.java index 44b1bf421..3ba2f1841 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisAxisRotationClamp.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisAxisRotationClamp.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.math.M; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.math.M; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisBiome.java b/core/src/main/java/art/arcane/iris/engine/object/IrisBiome.java similarity index 96% rename from core/src/main/java/com/volmit/iris/engine/object/IrisBiome.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisBiome.java index 42caee79e..928c34411 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisBiome.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisBiome.java @@ -16,27 +16,27 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.Iris; -import com.volmit.iris.core.gui.components.RenderType; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.loader.IrisRegistrant; -import com.volmit.iris.engine.IrisComplex; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.data.B; -import com.volmit.iris.util.data.DataProvider; -import com.volmit.iris.util.data.VanillaBiomeMap; -import com.volmit.iris.util.inventorygui.RandomColor; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.CNG; -import com.volmit.iris.util.plugin.VolmitSender; +import art.arcane.iris.Iris; +import art.arcane.iris.core.gui.components.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.framework.Engine; +import art.arcane.iris.engine.object.annotations.*; +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.data.B; +import art.arcane.iris.util.data.DataProvider; +import art.arcane.volmlib.util.data.VanillaBiomeMap; +import art.arcane.volmlib.util.inventorygui.RandomColor; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.CNG; +import art.arcane.iris.util.plugin.VolmitSender; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustom.java b/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustom.java similarity index 94% rename from core/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustom.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustom.java index aa3859c83..3a4912a94 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustom.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustom.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.Iris; -import com.volmit.iris.core.nms.datapack.IDataFixer; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.json.JSONArray; -import com.volmit.iris.util.json.JSONObject; +import art.arcane.iris.Iris; +import art.arcane.iris.core.nms.datapack.IDataFixer; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.json.JSONArray; +import art.arcane.volmlib.util.json.JSONObject; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomCategory.java b/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustomCategory.java similarity index 92% rename from core/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomCategory.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustomCategory.java index 0d638e1cc..e0412051c 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomCategory.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustomCategory.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; +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 { diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomParticle.java b/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustomParticle.java similarity index 93% rename from core/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomParticle.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustomParticle.java index 756310b26..c537615f7 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomParticle.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustomParticle.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.*; +import art.arcane.iris.engine.object.annotations.*; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomPrecipType.java b/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustomPrecipType.java similarity index 91% rename from core/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomPrecipType.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustomPrecipType.java index c6e242bed..f44176a77 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomPrecipType.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustomPrecipType.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; +import art.arcane.iris.engine.object.annotations.Desc; @Desc("Snow, rain, or nothing") public enum IrisBiomeCustomPrecipType { diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomSpawn.java b/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustomSpawn.java similarity index 94% rename from core/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomSpawn.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustomSpawn.java index fd88885d1..f90df8676 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomSpawn.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustomSpawn.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.*; +import art.arcane.iris.engine.object.annotations.*; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomSpawnType.java b/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustomSpawnType.java similarity index 92% rename from core/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomSpawnType.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustomSpawnType.java index 1c393e42d..cc639c742 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomSpawnType.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeCustomSpawnType.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; +import art.arcane.iris.engine.object.annotations.Desc; @Desc("The mob spawn group") public enum IrisBiomeCustomSpawnType { diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisBiomeGeneratorLink.java b/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeGeneratorLink.java similarity index 89% rename from core/src/main/java/com/volmit/iris/engine/object/IrisBiomeGeneratorLink.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisBiomeGeneratorLink.java index 67bd7340f..227058544 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisBiomeGeneratorLink.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisBiomeGeneratorLink.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.data.DataProvider; -import com.volmit.iris.util.interpolation.IrisInterpolation; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.iris.util.data.DataProvider; +import art.arcane.iris.util.interpolation.IrisInterpolation; import lombok.*; import lombok.experimental.Accessors; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisBiomePaletteLayer.java b/core/src/main/java/art/arcane/iris/engine/object/IrisBiomePaletteLayer.java similarity index 92% rename from core/src/main/java/com/volmit/iris/engine/object/IrisBiomePaletteLayer.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisBiomePaletteLayer.java index c2fa1b59f..1e43e66ce 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisBiomePaletteLayer.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisBiomePaletteLayer.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.CNG; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.CNG; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisBlockData.java b/core/src/main/java/art/arcane/iris/engine/object/IrisBlockData.java similarity index 92% rename from core/src/main/java/com/volmit/iris/engine/object/IrisBlockData.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisBlockData.java index 1c9cb514d..ab03d515a 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisBlockData.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisBlockData.java @@ -16,20 +16,20 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.Iris; -import com.volmit.iris.core.link.Identifier; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.loader.IrisRegistrant; -import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.data.B; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.plugin.VolmitSender; +import art.arcane.iris.Iris; +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.core.nms.INMS; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.data.B; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.iris.util.plugin.VolmitSender; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisBlockDrops.java b/core/src/main/java/art/arcane/iris/engine/object/IrisBlockDrops.java similarity index 86% rename from core/src/main/java/com/volmit/iris/engine/object/IrisBlockDrops.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisBlockDrops.java index bcc2b4b5f..72e26cb67 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisBlockDrops.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisBlockDrops.java @@ -16,16 +16,16 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.object.annotations.ArrayType; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.Required; -import com.volmit.iris.engine.object.annotations.Snippet; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.math.RNG; +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.Required; +import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.math.RNG; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisCarving.java b/core/src/main/java/art/arcane/iris/engine/object/IrisCarving.java similarity index 89% rename from core/src/main/java/com/volmit/iris/engine/object/IrisCarving.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisCarving.java index 8287db8c4..33b39f44f 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisCarving.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisCarving.java @@ -16,17 +16,17 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.mantle.MantleWriter; -import com.volmit.iris.engine.object.annotations.ArrayType; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.Snippet; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.documentation.BlockCoordinates; -import com.volmit.iris.util.math.RNG; +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.annotations.ArrayType; +import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.documentation.BlockCoordinates; +import art.arcane.volmlib.util.math.RNG; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisCave.java b/core/src/main/java/art/arcane/iris/engine/object/IrisCave.java similarity index 85% rename from core/src/main/java/com/volmit/iris/engine/object/IrisCave.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisCave.java index af20daab7..4292261e0 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisCave.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisCave.java @@ -16,21 +16,21 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.loader.IrisRegistrant; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.mantle.MantleWriter; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.RegistryListResource; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.matter.MatterCavern; -import com.volmit.iris.util.noise.CNG; -import com.volmit.iris.util.plugin.VolmitSender; +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.mantle.MantleWriter; +import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.iris.engine.object.annotations.RegistryListResource; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KSet; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.volmlib.util.matter.MatterCavern; +import art.arcane.iris.util.noise.CNG; +import art.arcane.iris.util.plugin.VolmitSender; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisCavePlacer.java b/core/src/main/java/art/arcane/iris/engine/object/IrisCavePlacer.java similarity index 90% rename from core/src/main/java/com/volmit/iris/engine/object/IrisCavePlacer.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisCavePlacer.java index ccdcaafb9..321cc356f 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisCavePlacer.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisCavePlacer.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.Iris; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.mantle.MantleWriter; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.Iris; +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.mantle.MantleWriter; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.math.RNG; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisCaveShape.java b/core/src/main/java/art/arcane/iris/engine/object/IrisCaveShape.java similarity index 87% rename from core/src/main/java/com/volmit/iris/engine/object/IrisCaveShape.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisCaveShape.java index 3245f2485..3abaca244 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisCaveShape.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisCaveShape.java @@ -1,12 +1,12 @@ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.CNG; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.collection.KSet; +import art.arcane.volmlib.util.math.M; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.CNG; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisColor.java b/core/src/main/java/art/arcane/iris/engine/object/IrisColor.java similarity index 90% rename from core/src/main/java/com/volmit/iris/engine/object/IrisColor.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisColor.java index bfbb7cf7d..b0e73061e 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisColor.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisColor.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.MaxNumber; -import com.volmit.iris.engine.object.annotations.MinNumber; -import com.volmit.iris.engine.object.annotations.Snippet; +import art.arcane.iris.Iris; +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 lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisCommand.java b/core/src/main/java/art/arcane/iris/engine/object/IrisCommand.java similarity index 89% rename from core/src/main/java/com/volmit/iris/engine/object/IrisCommand.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisCommand.java index 0555bb6bb..87ba6d320 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisCommand.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisCommand.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.object.annotations.ArrayType; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.Required; -import com.volmit.iris.engine.object.annotations.Snippet; -import com.volmit.iris.util.collection.KList; +import art.arcane.iris.Iris; +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.volmlib.util.collection.KList; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisCommandRegistry.java b/core/src/main/java/art/arcane/iris/engine/object/IrisCommandRegistry.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/object/IrisCommandRegistry.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisCommandRegistry.java index 39f36c3b5..71f5abd2e 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisCommandRegistry.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisCommandRegistry.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.math.RNG; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisCompat.java b/core/src/main/java/art/arcane/iris/engine/object/IrisCompat.java similarity index 98% rename from core/src/main/java/com/volmit/iris/engine/object/IrisCompat.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisCompat.java index 8d2b32fb6..d2ebd8c0d 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisCompat.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisCompat.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; import com.google.gson.Gson; -import com.volmit.iris.Iris; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.data.B; -import com.volmit.iris.util.io.IO; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.iris.util.data.B; +import art.arcane.volmlib.util.io.IO; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.iris.util.scheduling.J; import lombok.Data; import org.bukkit.Material; import org.bukkit.block.data.BlockData; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisCompatabilityBlockFilter.java b/core/src/main/java/art/arcane/iris/engine/object/IrisCompatabilityBlockFilter.java similarity index 89% rename from core/src/main/java/com/volmit/iris/engine/object/IrisCompatabilityBlockFilter.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisCompatabilityBlockFilter.java index 379a72e24..e584bb806 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisCompatabilityBlockFilter.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisCompatabilityBlockFilter.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.Required; -import com.volmit.iris.util.data.B; +import art.arcane.iris.Iris; +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.util.data.B; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisCompatabilityItemFilter.java b/core/src/main/java/art/arcane/iris/engine/object/IrisCompatabilityItemFilter.java similarity index 88% rename from core/src/main/java/com/volmit/iris/engine/object/IrisCompatabilityItemFilter.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisCompatabilityItemFilter.java index 520092841..7d07990fe 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisCompatabilityItemFilter.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisCompatabilityItemFilter.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.Required; -import com.volmit.iris.util.data.B; +import art.arcane.iris.Iris; +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.util.data.B; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisDecorationPart.java b/core/src/main/java/art/arcane/iris/engine/object/IrisDecorationPart.java similarity index 93% rename from core/src/main/java/com/volmit/iris/engine/object/IrisDecorationPart.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisDecorationPart.java index 104d8af76..c458abb67 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisDecorationPart.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisDecorationPart.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; +import art.arcane.iris.engine.object.annotations.Desc; @Desc("Represents a location where decorations should go") public enum IrisDecorationPart { diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisDecorator.java b/core/src/main/java/art/arcane/iris/engine/object/IrisDecorator.java similarity index 96% rename from core/src/main/java/com/volmit/iris/engine/object/IrisDecorator.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisDecorator.java index 8bdd2ec91..fc6e34b52 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisDecorator.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisDecorator.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.Iris; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.CNG; +import art.arcane.iris.Iris; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.CNG; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisDepositGenerator.java b/core/src/main/java/art/arcane/iris/engine/object/IrisDepositGenerator.java similarity index 92% rename from core/src/main/java/com/volmit/iris/engine/object/IrisDepositGenerator.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisDepositGenerator.java index b1e1c609b..cc1742217 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisDepositGenerator.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisDepositGenerator.java @@ -16,16 +16,16 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.math.BlockPosition; -import com.volmit.iris.util.math.RNG; +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.*; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KSet; +import art.arcane.volmlib.util.math.BlockPosition; +import art.arcane.volmlib.util.math.RNG; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisDimension.java b/core/src/main/java/art/arcane/iris/engine/object/IrisDimension.java similarity index 92% rename from core/src/main/java/com/volmit/iris/engine/object/IrisDimension.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisDimension.java index ef4842056..b6f5dcaaa 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisDimension.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisDimension.java @@ -16,30 +16,30 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.ServerConfigurator.DimensionHeight; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.loader.IrisRegistrant; -import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.core.nms.datapack.IDataFixer; -import com.volmit.iris.core.nms.datapack.IDataFixer.Dimension; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.engine.object.annotations.functions.ComponentFlagFunction; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.data.DataProvider; -import com.volmit.iris.util.io.IO; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.mantle.flag.MantleFlag; -import com.volmit.iris.util.math.Position2; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.CNG; -import com.volmit.iris.util.plugin.VolmitSender; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.core.ServerConfigurator.DimensionHeight; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.core.loader.IrisRegistrant; +import art.arcane.iris.core.nms.INMS; +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.object.annotations.*; +import art.arcane.iris.engine.object.annotations.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.data.DataProvider; +import art.arcane.volmlib.util.io.IO; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.volmlib.util.mantle.flag.MantleFlag; +import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.CNG; +import art.arcane.iris.util.plugin.VolmitSender; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisDimensionMode.java b/core/src/main/java/art/arcane/iris/engine/object/IrisDimensionMode.java similarity index 84% rename from core/src/main/java/com/volmit/iris/engine/object/IrisDimensionMode.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisDimensionMode.java index a57e78f08..bf50d733c 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisDimensionMode.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisDimensionMode.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.EngineMode; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.RegistryListResource; -import com.volmit.iris.engine.object.annotations.Snippet; +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.RegistryListResource; +import art.arcane.iris.engine.object.annotations.Snippet; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisDimensionModeType.java b/core/src/main/java/art/arcane/iris/engine/object/IrisDimensionModeType.java similarity index 80% rename from core/src/main/java/com/volmit/iris/engine/object/IrisDimensionModeType.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisDimensionModeType.java index d971bcbe6..155dc99e7 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisDimensionModeType.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisDimensionModeType.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.EngineMode; -import com.volmit.iris.engine.mode.ModeEnclosure; -import com.volmit.iris.engine.mode.ModeIslands; -import com.volmit.iris.engine.mode.ModeOverworld; -import com.volmit.iris.engine.mode.ModeSuperFlat; -import com.volmit.iris.engine.object.annotations.Desc; +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 java.util.function.Function; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisDimensionType.java b/core/src/main/java/art/arcane/iris/engine/object/IrisDimensionType.java similarity index 94% rename from core/src/main/java/com/volmit/iris/engine/object/IrisDimensionType.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisDimensionType.java index 756e4c538..e84244a8d 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisDimensionType.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisDimensionType.java @@ -1,8 +1,8 @@ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.nms.datapack.IDataFixer; -import com.volmit.iris.util.data.Varint; -import com.volmit.iris.util.io.IO; +import art.arcane.iris.core.nms.datapack.IDataFixer; +import art.arcane.volmlib.util.data.Varint; +import art.arcane.volmlib.util.io.IO; import lombok.*; import lombok.experimental.Accessors; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisDimensionTypeOptions.java b/core/src/main/java/art/arcane/iris/engine/object/IrisDimensionTypeOptions.java similarity index 97% rename from core/src/main/java/com/volmit/iris/engine/object/IrisDimensionTypeOptions.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisDimensionTypeOptions.java index 139d6296d..328a2d989 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisDimensionTypeOptions.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisDimensionTypeOptions.java @@ -1,10 +1,10 @@ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.MaxNumber; -import com.volmit.iris.engine.object.annotations.MinNumber; -import com.volmit.iris.util.data.Varint; -import com.volmit.iris.util.json.JSONObject; +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.data.Varint; +import art.arcane.volmlib.util.json.JSONObject; import lombok.*; import lombok.experimental.Accessors; import org.jetbrains.annotations.Nullable; @@ -14,7 +14,7 @@ import java.io.DataOutput; import java.io.IOException; import java.util.Arrays; -import static com.volmit.iris.engine.object.IrisDimensionTypeOptions.TriState.*; +import static art.arcane.iris.engine.object.IrisDimensionTypeOptions.TriState.*; @Data @NoArgsConstructor diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisDirection.java b/core/src/main/java/art/arcane/iris/engine/object/IrisDirection.java similarity index 97% rename from core/src/main/java/com/volmit/iris/engine/object/IrisDirection.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisDirection.java index bd8c70d4d..f685d175e 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisDirection.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisDirection.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.util.collection.GBiset; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.data.Cuboid.CuboidDirection; -import com.volmit.iris.util.math.DOP; -import com.volmit.iris.util.math.VectorMath; +import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.collection.GBiset; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.data.Cuboid.CuboidDirection; +import art.arcane.volmlib.util.math.DOP; +import art.arcane.iris.util.math.VectorMath; import org.bukkit.Axis; import org.bukkit.block.BlockFace; import org.bukkit.block.data.type.Jigsaw; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisDuration.java b/core/src/main/java/art/arcane/iris/engine/object/IrisDuration.java similarity index 92% rename from core/src/main/java/com/volmit/iris/engine/object/IrisDuration.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisDuration.java index 0eaf13391..e0bb78b3e 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisDuration.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisDuration.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.Snippet; -import com.volmit.iris.util.format.Form; +import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.volmlib.util.format.Form; import lombok.Data; import java.util.concurrent.TimeUnit; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisEffect.java b/core/src/main/java/art/arcane/iris/engine/object/IrisEffect.java similarity index 96% rename from core/src/main/java/com/volmit/iris/engine/object/IrisEffect.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisEffect.java index d2c6eca6b..4306165e1 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisEffect.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisEffect.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.scheduling.ChronoLatch; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.volmlib.util.scheduling.ChronoLatch; +import art.arcane.iris.util.scheduling.J; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisElipsoid.java b/core/src/main/java/art/arcane/iris/engine/object/IrisElipsoid.java similarity index 85% rename from core/src/main/java/com/volmit/iris/engine/object/IrisElipsoid.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisElipsoid.java index d902af348..540f88ccc 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisElipsoid.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisElipsoid.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.mantle.MantleWriter; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.matter.MatterCavern; -import com.volmit.iris.util.matter.slices.CavernMatter; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.mantle.MantleWriter; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.volmlib.util.matter.MatterCavern; +import art.arcane.iris.util.matter.slices.CavernMatter; import lombok.Data; @Snippet("carving-elipsoid") diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisEnchantment.java b/core/src/main/java/art/arcane/iris/engine/object/IrisEnchantment.java similarity index 93% rename from core/src/main/java/com/volmit/iris/engine/object/IrisEnchantment.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisEnchantment.java index 0a332d9fc..cb248b654 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisEnchantment.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisEnchantment.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.math.RNG; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisEngineData.java b/core/src/main/java/art/arcane/iris/engine/object/IrisEngineData.java similarity index 89% rename from core/src/main/java/com/volmit/iris/engine/object/IrisEngineData.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisEngineData.java index 3e4dff47c..c2c91ff4f 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisEngineData.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisEngineData.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.data.cache.Cache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.util.collection.KMap; +import art.arcane.iris.engine.data.cache.Cache; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.volmlib.util.collection.KMap; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisEngineSpawnerCooldown.java b/core/src/main/java/art/arcane/iris/engine/object/IrisEngineSpawnerCooldown.java similarity index 89% rename from core/src/main/java/com/volmit/iris/engine/object/IrisEngineSpawnerCooldown.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisEngineSpawnerCooldown.java index ecc319935..dbd9aff41 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisEngineSpawnerCooldown.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisEngineSpawnerCooldown.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.util.math.M; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.volmlib.util.math.M; import lombok.Data; @Data diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisEngineStatistics.java b/core/src/main/java/art/arcane/iris/engine/object/IrisEngineStatistics.java similarity index 97% rename from core/src/main/java/com/volmit/iris/engine/object/IrisEngineStatistics.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisEngineStatistics.java index 883ef4025..43cb4e74c 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisEngineStatistics.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisEngineStatistics.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; import lombok.Data; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisEngineStreamType.java b/core/src/main/java/art/arcane/iris/engine/object/IrisEngineStreamType.java similarity index 92% rename from core/src/main/java/com/volmit/iris/engine/object/IrisEngineStreamType.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisEngineStreamType.java index 3b122c785..cc6d3e128 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisEngineStreamType.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisEngineStreamType.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.iris.util.stream.ProceduralStream; import java.util.function.Function; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisEngineValueType.java b/core/src/main/java/art/arcane/iris/engine/object/IrisEngineValueType.java similarity index 92% rename from core/src/main/java/com/volmit/iris/engine/object/IrisEngineValueType.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisEngineValueType.java index 72c4620d6..4c5fe9c32 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisEngineValueType.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisEngineValueType.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.annotations.Desc; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.object.annotations.Desc; import java.util.function.Function; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisEntity.java b/core/src/main/java/art/arcane/iris/engine/object/IrisEntity.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/object/IrisEntity.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisEntity.java index 10803f1bf..d808cff0f 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisEntity.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisEntity.java @@ -16,25 +16,25 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.link.Identifier; -import com.volmit.iris.core.loader.IrisRegistrant; -import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.core.service.ExternalDataSVC; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.plugin.Chunks; -import com.volmit.iris.util.plugin.VolmitSender; -import com.volmit.iris.util.scheduling.J; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.Iris; +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.nms.INMS; +import art.arcane.iris.core.service.ExternalDataSVC; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.iris.util.format.C; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.volmlib.util.math.M; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.plugin.Chunks; +import art.arcane.iris.util.plugin.VolmitSender; +import art.arcane.iris.util.scheduling.J; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; @@ -58,7 +58,7 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; -import static com.volmit.iris.util.data.registry.Particles.ITEM; +import static art.arcane.iris.util.data.registry.Particles.ITEM; @SuppressWarnings("ALL") @Accessors(chain = true) diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisEntitySpawn.java b/core/src/main/java/art/arcane/iris/engine/object/IrisEntitySpawn.java similarity index 94% rename from core/src/main/java/com/volmit/iris/engine/object/IrisEntitySpawn.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisEntitySpawn.java index a0eb9500d..dd964ad4a 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisEntitySpawn.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisEntitySpawn.java @@ -16,18 +16,18 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.Iris; -import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.math.Vector3d; -import com.volmit.iris.util.matter.MatterMarker; -import com.volmit.iris.util.matter.slices.MarkerMatter; +import art.arcane.iris.Iris; +import art.arcane.iris.core.nms.INMS; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.iris.util.format.C; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.volmlib.util.math.Vector3d; +import art.arcane.volmlib.util.matter.MatterMarker; +import art.arcane.iris.util.matter.slices.MarkerMatter; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisExpression.java b/core/src/main/java/art/arcane/iris/engine/object/IrisExpression.java similarity index 86% rename from core/src/main/java/com/volmit/iris/engine/object/IrisExpression.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisExpression.java index 0fbd1c48a..e055b5a5b 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisExpression.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisExpression.java @@ -16,24 +16,24 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; import com.dfsek.paralithic.Expression; import com.dfsek.paralithic.eval.parser.Parser; import com.dfsek.paralithic.eval.parser.Scope; -import com.volmit.iris.Iris; -import com.volmit.iris.core.loader.IrisRegistrant; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.object.IrisExpressionFunction.FunctionContext; -import com.volmit.iris.engine.object.annotations.ArrayType; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.Required; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.plugin.VolmitSender; -import com.volmit.iris.util.stream.ProceduralStream; -import com.volmit.iris.util.stream.interpolation.Interpolated; +import art.arcane.iris.Iris; +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.volmlib.util.collection.KList; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.plugin.VolmitSender; +import art.arcane.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.stream.interpolation.Interpolated; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisExpressionFunction.java b/core/src/main/java/art/arcane/iris/engine/object/IrisExpressionFunction.java similarity index 87% rename from core/src/main/java/com/volmit/iris/engine/object/IrisExpressionFunction.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisExpressionFunction.java index d56cbec7c..1038792c0 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisExpressionFunction.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisExpressionFunction.java @@ -1,15 +1,15 @@ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; import com.dfsek.paralithic.functions.dynamic.Context; import com.dfsek.paralithic.functions.dynamic.DynamicFunction; import com.dfsek.paralithic.node.Statefulness; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.MinNumber; -import com.volmit.iris.engine.object.annotations.Required; -import com.volmit.iris.engine.object.annotations.Snippet; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.math.RNG; +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.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.math.RNG; import lombok.*; import lombok.experimental.Accessors; import org.jetbrains.annotations.NotNull; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisExpressionLoad.java b/core/src/main/java/art/arcane/iris/engine/object/IrisExpressionLoad.java similarity index 86% rename from core/src/main/java/com/volmit/iris/engine/object/IrisExpressionLoad.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisExpressionLoad.java index c539cc3f3..3705c9003 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisExpressionLoad.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisExpressionLoad.java @@ -16,17 +16,17 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.Required; -import com.volmit.iris.engine.object.annotations.Snippet; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.CNG; -import com.volmit.iris.util.stream.ProceduralStream; +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.Required; +import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.CNG; +import art.arcane.iris.util.stream.ProceduralStream; import lombok.*; import lombok.experimental.Accessors; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisFluidBodies.java b/core/src/main/java/art/arcane/iris/engine/object/IrisFluidBodies.java similarity index 80% rename from core/src/main/java/com/volmit/iris/engine/object/IrisFluidBodies.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisFluidBodies.java index 69b44a65a..f707b49e5 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisFluidBodies.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisFluidBodies.java @@ -16,17 +16,17 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.mantle.MantleWriter; -import com.volmit.iris.engine.object.annotations.ArrayType; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.Snippet; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.documentation.BlockCoordinates; -import com.volmit.iris.util.math.RNG; +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.annotations.ArrayType; +import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.documentation.BlockCoordinates; +import art.arcane.volmlib.util.math.RNG; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisFontStyle.java b/core/src/main/java/art/arcane/iris/engine/object/IrisFontStyle.java similarity index 91% rename from core/src/main/java/com/volmit/iris/engine/object/IrisFontStyle.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisFontStyle.java index ebfe36389..d84255e57 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisFontStyle.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisFontStyle.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; +import art.arcane.iris.engine.object.annotations.Desc; @Desc("Represents a basic font style to apply to a font family") public enum IrisFontStyle { diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisGenerator.java b/core/src/main/java/art/arcane/iris/engine/object/IrisGenerator.java similarity index 94% rename from core/src/main/java/com/volmit/iris/engine/object/IrisGenerator.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisGenerator.java index 11bc7fa75..65019a8c8 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisGenerator.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisGenerator.java @@ -16,17 +16,17 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.loader.IrisRegistrant; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.interpolation.IrisInterpolation; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.CellGenerator; -import com.volmit.iris.util.plugin.VolmitSender; +import art.arcane.iris.core.loader.IrisRegistrant; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.iris.util.interpolation.IrisInterpolation; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.CellGenerator; +import art.arcane.iris.util.plugin.VolmitSender; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisGeneratorStyle.java b/core/src/main/java/art/arcane/iris/engine/object/IrisGeneratorStyle.java similarity index 92% rename from core/src/main/java/com/volmit/iris/engine/object/IrisGeneratorStyle.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisGeneratorStyle.java index 2e9996d6e..4d8e5a062 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisGeneratorStyle.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisGeneratorStyle.java @@ -16,17 +16,17 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.Iris; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.CNG; -import com.volmit.iris.util.noise.ExpressionNoise; -import com.volmit.iris.util.noise.ImageNoise; -import com.volmit.iris.util.noise.NoiseGenerator; +import art.arcane.iris.Iris; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.CNG; +import art.arcane.iris.util.noise.ExpressionNoise; +import art.arcane.iris.util.noise.ImageNoise; +import art.arcane.iris.util.noise.NoiseGenerator; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisImage.java b/core/src/main/java/art/arcane/iris/engine/object/IrisImage.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/object/IrisImage.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisImage.java index 49afae0e4..212e07fc8 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisImage.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisImage.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.Iris; -import com.volmit.iris.core.loader.IrisRegistrant; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.plugin.VolmitSender; +import art.arcane.iris.Iris; +import art.arcane.iris.core.loader.IrisRegistrant; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.iris.util.plugin.VolmitSender; import javax.imageio.ImageIO; import java.awt.*; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisImageChannel.java b/core/src/main/java/art/arcane/iris/engine/object/IrisImageChannel.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/object/IrisImageChannel.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisImageChannel.java index dd5405fa7..dd385bfea 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisImageChannel.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisImageChannel.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; +import art.arcane.iris.engine.object.annotations.Desc; @Desc("Determines a derived channel of an image to read") public enum IrisImageChannel { diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisImageMap.java b/core/src/main/java/art/arcane/iris/engine/object/IrisImageMap.java similarity index 87% rename from core/src/main/java/com/volmit/iris/engine/object/IrisImageMap.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisImageMap.java index ba48d1899..764d24762 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisImageMap.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisImageMap.java @@ -16,17 +16,17 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.Iris; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.MinNumber; -import com.volmit.iris.engine.object.annotations.RegistryListResource; -import com.volmit.iris.engine.object.annotations.Snippet; -import com.volmit.iris.util.interpolation.InterpolationMethod; -import com.volmit.iris.util.interpolation.IrisInterpolation; +import art.arcane.iris.Iris; +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.MinNumber; +import art.arcane.iris.engine.object.annotations.RegistryListResource; +import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.iris.util.interpolation.InterpolationMethod; +import art.arcane.iris.util.interpolation.IrisInterpolation; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisInterpolator.java b/core/src/main/java/art/arcane/iris/engine/object/IrisInterpolator.java similarity index 83% rename from core/src/main/java/com/volmit/iris/engine/object/IrisInterpolator.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisInterpolator.java index 5834fc799..5ebf36d0b 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisInterpolator.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisInterpolator.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.MaxNumber; -import com.volmit.iris.engine.object.annotations.MinNumber; -import com.volmit.iris.engine.object.annotations.Required; -import com.volmit.iris.util.function.NoiseProvider; -import com.volmit.iris.util.interpolation.InterpolationMethod; -import com.volmit.iris.util.interpolation.IrisInterpolation; +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.function.NoiseProvider; +import art.arcane.iris.util.interpolation.InterpolationMethod; +import art.arcane.iris.util.interpolation.IrisInterpolation; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisInterpolator3D.java b/core/src/main/java/art/arcane/iris/engine/object/IrisInterpolator3D.java similarity index 87% rename from core/src/main/java/com/volmit/iris/engine/object/IrisInterpolator3D.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisInterpolator3D.java index 7c3caf098..2bc9cd648 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisInterpolator3D.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisInterpolator3D.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.function.NoiseProvider3; -import com.volmit.iris.util.interpolation.InterpolationMethod3D; -import com.volmit.iris.util.interpolation.IrisInterpolation; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.function.NoiseProvider3; +import art.arcane.iris.util.interpolation.InterpolationMethod3D; +import art.arcane.iris.util.interpolation.IrisInterpolation; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisJigsawMinDistance.java b/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawMinDistance.java similarity index 66% rename from core/src/main/java/com/volmit/iris/engine/object/IrisJigsawMinDistance.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisJigsawMinDistance.java index 818f4b3dd..a4fcad8fe 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisJigsawMinDistance.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawMinDistance.java @@ -1,10 +1,10 @@ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.MinNumber; -import com.volmit.iris.engine.object.annotations.RegistryListResource; -import com.volmit.iris.engine.object.annotations.Required; -import com.volmit.iris.engine.object.annotations.Snippet; +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 lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisJigsawPiece.java b/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawPiece.java similarity index 87% rename from core/src/main/java/com/volmit/iris/engine/object/IrisJigsawPiece.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisJigsawPiece.java index 09d94a6d4..def3d12eb 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisJigsawPiece.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawPiece.java @@ -16,18 +16,18 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.Iris; -import com.volmit.iris.core.loader.IrisRegistrant; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.object.annotations.ArrayType; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.RegistryListResource; -import com.volmit.iris.engine.object.annotations.Required; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.plugin.VolmitSender; +import art.arcane.iris.Iris; +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.RegistryListResource; +import art.arcane.iris.engine.object.annotations.Required; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.iris.util.plugin.VolmitSender; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisJigsawPieceConnector.java b/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawPieceConnector.java similarity index 96% rename from core/src/main/java/com/volmit/iris/engine/object/IrisJigsawPieceConnector.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisJigsawPieceConnector.java index f3afe074a..b2ce4e1ac 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisJigsawPieceConnector.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawPieceConnector.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisJigsawPool.java b/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawPool.java similarity index 77% rename from core/src/main/java/com/volmit/iris/engine/object/IrisJigsawPool.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisJigsawPool.java index 91cd1ae18..22113ce74 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisJigsawPool.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawPool.java @@ -16,16 +16,16 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.loader.IrisRegistrant; -import com.volmit.iris.engine.object.annotations.ArrayType; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.RegistryListResource; -import com.volmit.iris.engine.object.annotations.Required; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.plugin.VolmitSender; +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.volmlib.util.collection.KList; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.iris.util.plugin.VolmitSender; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisJigsawStructure.java b/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawStructure.java similarity index 92% rename from core/src/main/java/com/volmit/iris/engine/object/IrisJigsawStructure.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisJigsawStructure.java index ed7a61e53..3a8704e80 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisJigsawStructure.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawStructure.java @@ -16,17 +16,17 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.Iris; -import com.volmit.iris.core.loader.IrisRegistrant; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.engine.object.annotations.functions.StructureKeyFunction; -import com.volmit.iris.engine.object.annotations.functions.StructureKeyOrTagFunction; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.plugin.VolmitSender; +import art.arcane.iris.Iris; +import art.arcane.iris.core.loader.IrisRegistrant; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.iris.engine.object.annotations.functions.StructureKeyFunction; +import art.arcane.iris.engine.object.annotations.functions.StructureKeyOrTagFunction; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.iris.util.plugin.VolmitSender; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisJigsawStructurePlacement.java b/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawStructurePlacement.java similarity index 93% rename from core/src/main/java/com/volmit/iris/engine/object/IrisJigsawStructurePlacement.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisJigsawStructurePlacement.java index 5f0220321..99f2a97e4 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisJigsawStructurePlacement.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisJigsawStructurePlacement.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.Iris; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.documentation.ChunkCoordinates; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.Iris; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.documentation.ChunkCoordinates; +import art.arcane.volmlib.util.math.RNG; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisLake.java b/core/src/main/java/art/arcane/iris/engine/object/IrisLake.java similarity index 87% rename from core/src/main/java/com/volmit/iris/engine/object/IrisLake.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisLake.java index 49c306f17..dcf7ac027 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisLake.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisLake.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.mantle.MantleWriter; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.math.RNG; +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.annotations.*; +import art.arcane.volmlib.util.math.RNG; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisLoot.java b/core/src/main/java/art/arcane/iris/engine/object/IrisLoot.java similarity index 90% rename from core/src/main/java/com/volmit/iris/engine/object/IrisLoot.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisLoot.java index ae7f5e121..3223aad30 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisLoot.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisLoot.java @@ -16,21 +16,21 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.Iris; -import com.volmit.iris.core.link.Identifier; -import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.core.service.ExternalDataSVC; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.data.B; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.CNG; +import art.arcane.iris.Iris; +import art.arcane.iris.core.link.Identifier; +import art.arcane.iris.core.nms.INMS; +import art.arcane.iris.core.service.ExternalDataSVC; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.data.B; +import art.arcane.iris.util.format.C; +import art.arcane.volmlib.util.format.Form; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.CNG; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisLootMode.java b/core/src/main/java/art/arcane/iris/engine/object/IrisLootMode.java similarity index 93% rename from core/src/main/java/com/volmit/iris/engine/object/IrisLootMode.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisLootMode.java index b8d6b1341..9bc2ce262 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisLootMode.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisLootMode.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; +import art.arcane.iris.engine.object.annotations.Desc; @Desc("A loot mode is used to describe what to do with the existing loot layers before adding this loot. Using ADD will simply add this table to the building list of tables (i.e. add dimension tables, region tables then biome tables). By using clear or replace, you remove the parent tables before and add just your tables.") public enum IrisLootMode { diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisLootReference.java b/core/src/main/java/art/arcane/iris/engine/object/IrisLootReference.java similarity index 88% rename from core/src/main/java/com/volmit/iris/engine/object/IrisLootReference.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisLootReference.java index 55a837c94..b701e37fa 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisLootReference.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisLootReference.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.data.DataProvider; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.iris.util.data.DataProvider; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisLootTable.java b/core/src/main/java/art/arcane/iris/engine/object/IrisLootTable.java similarity index 85% rename from core/src/main/java/com/volmit/iris/engine/object/IrisLootTable.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisLootTable.java index 07e13e875..5ec91d5e5 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisLootTable.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisLootTable.java @@ -16,17 +16,17 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.loader.IrisRegistrant; -import com.volmit.iris.engine.object.annotations.ArrayType; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.MinNumber; -import com.volmit.iris.engine.object.annotations.Required; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.plugin.VolmitSender; +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.MinNumber; +import art.arcane.iris.engine.object.annotations.Required; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.plugin.VolmitSender; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisMarker.java b/core/src/main/java/art/arcane/iris/engine/object/IrisMarker.java similarity index 83% rename from core/src/main/java/com/volmit/iris/engine/object/IrisMarker.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisMarker.java index fc5a3c761..45d47853e 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisMarker.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisMarker.java @@ -16,16 +16,16 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.loader.IrisRegistrant; -import com.volmit.iris.engine.object.annotations.ArrayType; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.RegistryListResource; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.plugin.VolmitSender; +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.volmlib.util.collection.KList; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.plugin.VolmitSender; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisMaterialPalette.java b/core/src/main/java/art/arcane/iris/engine/object/IrisMaterialPalette.java similarity index 92% rename from core/src/main/java/com/volmit/iris/engine/object/IrisMaterialPalette.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisMaterialPalette.java index 830af6457..811d09ea2 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisMaterialPalette.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisMaterialPalette.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.CNG; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.CNG; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisMod.java b/core/src/main/java/art/arcane/iris/engine/object/IrisMod.java similarity index 93% rename from core/src/main/java/com/volmit/iris/engine/object/IrisMod.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisMod.java index 8a7dab5d2..3c587af58 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisMod.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisMod.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.loader.IrisRegistrant; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.plugin.VolmitSender; +import art.arcane.iris.core.loader.IrisRegistrant; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.iris.util.plugin.VolmitSender; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisModBiomeInjector.java b/core/src/main/java/art/arcane/iris/engine/object/IrisModBiomeInjector.java similarity index 90% rename from core/src/main/java/com/volmit/iris/engine/object/IrisModBiomeInjector.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisModBiomeInjector.java index 911e77714..72a1f04b3 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisModBiomeInjector.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisModBiomeInjector.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisModBiomeReplacer.java b/core/src/main/java/art/arcane/iris/engine/object/IrisModBiomeReplacer.java similarity index 90% rename from core/src/main/java/com/volmit/iris/engine/object/IrisModBiomeReplacer.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisModBiomeReplacer.java index a87e374da..248bd76c3 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisModBiomeReplacer.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisModBiomeReplacer.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisModNoiseStyleReplacer.java b/core/src/main/java/art/arcane/iris/engine/object/IrisModNoiseStyleReplacer.java similarity index 94% rename from core/src/main/java/com/volmit/iris/engine/object/IrisModNoiseStyleReplacer.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisModNoiseStyleReplacer.java index 66fa4081a..7a9ba35ce 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisModNoiseStyleReplacer.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisModNoiseStyleReplacer.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.*; +import art.arcane.iris.engine.object.annotations.*; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisModObjectPlacementBiomeInjector.java b/core/src/main/java/art/arcane/iris/engine/object/IrisModObjectPlacementBiomeInjector.java similarity index 90% rename from core/src/main/java/com/volmit/iris/engine/object/IrisModObjectPlacementBiomeInjector.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisModObjectPlacementBiomeInjector.java index 2846df593..7f3acf16e 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisModObjectPlacementBiomeInjector.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisModObjectPlacementBiomeInjector.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisModObjectPlacementRegionInjector.java b/core/src/main/java/art/arcane/iris/engine/object/IrisModObjectPlacementRegionInjector.java similarity index 90% rename from core/src/main/java/com/volmit/iris/engine/object/IrisModObjectPlacementRegionInjector.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisModObjectPlacementRegionInjector.java index 70b0e3d5e..fce4720ac 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisModObjectPlacementRegionInjector.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisModObjectPlacementRegionInjector.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisModObjectReplacer.java b/core/src/main/java/art/arcane/iris/engine/object/IrisModObjectReplacer.java similarity index 90% rename from core/src/main/java/com/volmit/iris/engine/object/IrisModObjectReplacer.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisModObjectReplacer.java index 90a400da4..989be20df 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisModObjectReplacer.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisModObjectReplacer.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisModRegionReplacer.java b/core/src/main/java/art/arcane/iris/engine/object/IrisModRegionReplacer.java similarity index 90% rename from core/src/main/java/com/volmit/iris/engine/object/IrisModRegionReplacer.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisModRegionReplacer.java index 0b1ec5c94..c22db119f 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisModRegionReplacer.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisModRegionReplacer.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisNoiseGenerator.java b/core/src/main/java/art/arcane/iris/engine/object/IrisNoiseGenerator.java similarity index 91% rename from core/src/main/java/com/volmit/iris/engine/object/IrisNoiseGenerator.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisNoiseGenerator.java index f04a09028..72696a65a 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisNoiseGenerator.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisNoiseGenerator.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.interpolation.IrisInterpolation; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.CNG; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.iris.util.interpolation.IrisInterpolation; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.CNG; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisObject.java b/core/src/main/java/art/arcane/iris/engine/object/IrisObject.java similarity index 97% rename from core/src/main/java/com/volmit/iris/engine/object/IrisObject.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisObject.java index fa3057dec..a1c95e452 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisObject.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisObject.java @@ -16,32 +16,34 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.Iris; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.loader.IrisRegistrant; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.PlacedObject; -import com.volmit.iris.engine.framework.placer.HeightmapObjectPlacer; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.context.IrisContext; -import com.volmit.iris.util.data.B; -import com.volmit.iris.util.data.IrisCustomData; -import com.volmit.iris.util.data.VectorMap; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.interpolation.IrisInterpolation; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.math.*; -import com.volmit.iris.util.matter.MatterMarker; -import com.volmit.iris.util.parallel.BurstExecutor; -import com.volmit.iris.util.parallel.MultiBurst; -import com.volmit.iris.util.plugin.VolmitSender; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; -import com.volmit.iris.util.scheduling.jobs.Job; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.Iris; +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.framework.Engine; +import art.arcane.iris.engine.framework.PlacedObject; +import art.arcane.iris.engine.framework.placer.HeightmapObjectPlacer; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.context.IrisContext; +import art.arcane.iris.util.data.B; +import art.arcane.iris.util.data.IrisCustomData; +import art.arcane.iris.util.data.VectorMap; +import art.arcane.volmlib.util.format.Form; +import art.arcane.iris.util.interpolation.IrisInterpolation; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.volmlib.util.math.BlockPosition; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.math.*; +import art.arcane.volmlib.util.matter.MatterMarker; +import art.arcane.iris.util.parallel.BurstExecutor; +import art.arcane.iris.util.parallel.MultiBurst; +import art.arcane.iris.util.plugin.VolmitSender; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.util.scheduling.jobs.Job; +import art.arcane.iris.util.stream.ProceduralStream; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisObjectLimit.java b/core/src/main/java/art/arcane/iris/engine/object/IrisObjectLimit.java similarity index 84% rename from core/src/main/java/com/volmit/iris/engine/object/IrisObjectLimit.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisObjectLimit.java index 9fac8a1bb..a2d0da86d 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisObjectLimit.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisObjectLimit.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.MaxNumber; -import com.volmit.iris.engine.object.annotations.MinNumber; -import com.volmit.iris.engine.object.annotations.Snippet; +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; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisObjectLoot.java b/core/src/main/java/art/arcane/iris/engine/object/IrisObjectLoot.java similarity index 90% rename from core/src/main/java/com/volmit/iris/engine/object/IrisObjectLoot.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisObjectLoot.java index da09ae2fc..36fa58b22 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisObjectLoot.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisObjectLoot.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisObjectMarker.java b/core/src/main/java/art/arcane/iris/engine/object/IrisObjectMarker.java similarity index 89% rename from core/src/main/java/com/volmit/iris/engine/object/IrisObjectMarker.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisObjectMarker.java index 7c870dd70..f547a3878 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisObjectMarker.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisObjectMarker.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisObjectPlacement.java b/core/src/main/java/art/arcane/iris/engine/object/IrisObjectPlacement.java similarity index 96% rename from core/src/main/java/com/volmit/iris/engine/object/IrisObjectPlacement.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisObjectPlacement.java index adab09743..4bcd4ddb1 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisObjectPlacement.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisObjectPlacement.java @@ -16,19 +16,19 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.Iris; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.data.B; -import com.volmit.iris.util.data.DataProvider; -import com.volmit.iris.util.data.WeightedRandom; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.CNG; +import art.arcane.iris.Iris; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.data.B; +import art.arcane.iris.util.data.DataProvider; +import art.arcane.volmlib.util.data.WeightedRandom; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.CNG; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisObjectPlacementScaleInterpolator.java b/core/src/main/java/art/arcane/iris/engine/object/IrisObjectPlacementScaleInterpolator.java similarity index 93% rename from core/src/main/java/com/volmit/iris/engine/object/IrisObjectPlacementScaleInterpolator.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisObjectPlacementScaleInterpolator.java index da8cafc31..c64a46645 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisObjectPlacementScaleInterpolator.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisObjectPlacementScaleInterpolator.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; +import art.arcane.iris.engine.object.annotations.Desc; @Desc("Use 3D Interpolation on scaled objects if they are larger than the origin.") public enum IrisObjectPlacementScaleInterpolator { diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisObjectReplace.java b/core/src/main/java/art/arcane/iris/engine/object/IrisObjectReplace.java similarity index 88% rename from core/src/main/java/com/volmit/iris/engine/object/IrisObjectReplace.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisObjectReplace.java index 119da29a7..773cdc5ca 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisObjectReplace.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisObjectReplace.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.CNG; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.CNG; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisObjectRotation.java b/core/src/main/java/art/arcane/iris/engine/object/IrisObjectRotation.java similarity index 98% rename from core/src/main/java/com/volmit/iris/engine/object/IrisObjectRotation.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisObjectRotation.java index 1dc57272e..0994562ba 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisObjectRotation.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisObjectRotation.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.Snippet; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisObjectScale.java b/core/src/main/java/art/arcane/iris/engine/object/IrisObjectScale.java similarity index 90% rename from core/src/main/java/com/volmit/iris/engine/object/IrisObjectScale.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisObjectScale.java index 0b8c116bf..d7ae262e3 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisObjectScale.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisObjectScale.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; import com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.MaxNumber; -import com.volmit.iris.engine.object.annotations.MinNumber; -import com.volmit.iris.engine.object.annotations.Snippet; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.math.RNG; +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 art.arcane.volmlib.util.math.RNG; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisObjectTranslate.java b/core/src/main/java/art/arcane/iris/engine/object/IrisObjectTranslate.java similarity index 96% rename from core/src/main/java/com/volmit/iris/engine/object/IrisObjectTranslate.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisObjectTranslate.java index af8b83e6d..4e033ff55 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisObjectTranslate.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisObjectTranslate.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.*; +import art.arcane.iris.engine.object.annotations.*; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisObjectVanillaLoot.java b/core/src/main/java/art/arcane/iris/engine/object/IrisObjectVanillaLoot.java similarity index 81% rename from core/src/main/java/com/volmit/iris/engine/object/IrisObjectVanillaLoot.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisObjectVanillaLoot.java index bd93ea998..4de960fa1 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisObjectVanillaLoot.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisObjectVanillaLoot.java @@ -1,10 +1,10 @@ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.engine.object.annotations.functions.LootTableKeyFunction; -import com.volmit.iris.util.collection.KList; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.iris.engine.object.annotations.functions.LootTableKeyFunction; +import art.arcane.volmlib.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisOreGenerator.java b/core/src/main/java/art/arcane/iris/engine/object/IrisOreGenerator.java similarity index 88% rename from core/src/main/java/com/volmit/iris/engine/object/IrisOreGenerator.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisOreGenerator.java index 6ec359680..2024eaf9a 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisOreGenerator.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisOreGenerator.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.CNG; +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.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.CNG; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisPosition.java b/core/src/main/java/art/arcane/iris/engine/object/IrisPosition.java similarity index 94% rename from core/src/main/java/com/volmit/iris/engine/object/IrisPosition.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisPosition.java index 1f3f6bf28..f2e9da190 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisPosition.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisPosition.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.Snippet; +import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.iris.engine.object.annotations.Snippet; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisPosition2D.java b/core/src/main/java/art/arcane/iris/engine/object/IrisPosition2D.java similarity index 88% rename from core/src/main/java/com/volmit/iris/engine/object/IrisPosition2D.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisPosition2D.java index e56aee810..8864b306b 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisPosition2D.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisPosition2D.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.Snippet; +import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.iris.engine.object.annotations.Snippet; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisPotionEffect.java b/core/src/main/java/art/arcane/iris/engine/object/IrisPotionEffect.java similarity index 94% rename from core/src/main/java/com/volmit/iris/engine/object/IrisPotionEffect.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisPotionEffect.java index 73d06ebc5..0de06ed91 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisPotionEffect.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisPotionEffect.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.object.annotations.*; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.object.annotations.*; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisPreProcessors.java b/core/src/main/java/art/arcane/iris/engine/object/IrisPreProcessors.java similarity index 74% rename from core/src/main/java/com/volmit/iris/engine/object/IrisPreProcessors.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisPreProcessors.java index 294e22636..c63bc67e8 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisPreProcessors.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisPreProcessors.java @@ -1,8 +1,8 @@ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.engine.object.annotations.functions.ResourceLoadersFunction; -import com.volmit.iris.util.collection.KList; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.iris.engine.object.annotations.functions.ResourceLoadersFunction; +import art.arcane.volmlib.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisPyramid.java b/core/src/main/java/art/arcane/iris/engine/object/IrisPyramid.java similarity index 81% rename from core/src/main/java/com/volmit/iris/engine/object/IrisPyramid.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisPyramid.java index 13fff726c..90ee49d55 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisPyramid.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisPyramid.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.mantle.MantleWriter; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.matter.MatterCavern; -import com.volmit.iris.util.matter.slices.CavernMatter; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.mantle.MantleWriter; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.volmlib.util.matter.MatterCavern; +import art.arcane.iris.util.matter.slices.CavernMatter; import lombok.Data; @Snippet("carving-pyramid") diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisRange.java b/core/src/main/java/art/arcane/iris/engine/object/IrisRange.java similarity index 88% rename from core/src/main/java/com/volmit/iris/engine/object/IrisRange.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisRange.java index b352e2e49..5f7cd5e3d 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisRange.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisRange.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.Snippet; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.volmlib.util.math.RNG; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisRareObject.java b/core/src/main/java/art/arcane/iris/engine/object/IrisRareObject.java similarity index 93% rename from core/src/main/java/com/volmit/iris/engine/object/IrisRareObject.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisRareObject.java index 3cb042989..b830c6501 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisRareObject.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisRareObject.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.*; +import art.arcane.iris.engine.object.annotations.*; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisRate.java b/core/src/main/java/art/arcane/iris/engine/object/IrisRate.java similarity index 86% rename from core/src/main/java/com/volmit/iris/engine/object/IrisRate.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisRate.java index 68dbb7927..72b3daa97 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisRate.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisRate.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.Snippet; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.scheduling.ChronoLatch; +import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.volmlib.util.format.Form; +import art.arcane.volmlib.util.scheduling.ChronoLatch; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisRavine.java b/core/src/main/java/art/arcane/iris/engine/object/IrisRavine.java similarity index 90% rename from core/src/main/java/com/volmit/iris/engine/object/IrisRavine.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisRavine.java index b7c453bd6..152e394ec 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisRavine.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisRavine.java @@ -16,22 +16,22 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.loader.IrisRegistrant; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.mantle.MantleWriter; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.MaxNumber; -import com.volmit.iris.engine.object.annotations.MinNumber; -import com.volmit.iris.engine.object.annotations.RegistryListResource; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.matter.MatterCavern; -import com.volmit.iris.util.noise.CNG; -import com.volmit.iris.util.plugin.VolmitSender; +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.mantle.MantleWriter; +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.collection.KList; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.volmlib.util.matter.MatterCavern; +import art.arcane.iris.util.noise.CNG; +import art.arcane.iris.util.plugin.VolmitSender; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisRavinePlacer.java b/core/src/main/java/art/arcane/iris/engine/object/IrisRavinePlacer.java similarity index 89% rename from core/src/main/java/com/volmit/iris/engine/object/IrisRavinePlacer.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisRavinePlacer.java index ed9c01841..cc562d6b7 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisRavinePlacer.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisRavinePlacer.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.Iris; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.mantle.MantleWriter; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.Iris; +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.mantle.MantleWriter; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.math.RNG; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisRegion.java b/core/src/main/java/art/arcane/iris/engine/object/IrisRegion.java similarity index 94% rename from core/src/main/java/com/volmit/iris/engine/object/IrisRegion.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisRegion.java index 157cb61c9..e7f2bdf0c 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisRegion.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisRegion.java @@ -16,24 +16,24 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.Iris; -import com.volmit.iris.core.gui.components.RenderType; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.loader.IrisRegistrant; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.data.DataProvider; -import com.volmit.iris.util.data.VanillaBiomeMap; -import com.volmit.iris.util.inventorygui.RandomColor; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.CNG; -import com.volmit.iris.util.plugin.VolmitSender; +import art.arcane.iris.Iris; +import art.arcane.iris.core.gui.components.RenderType; +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.*; +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.data.DataProvider; +import art.arcane.volmlib.util.data.VanillaBiomeMap; +import art.arcane.volmlib.util.inventorygui.RandomColor; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.CNG; +import art.arcane.iris.util.plugin.VolmitSender; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisRiver.java b/core/src/main/java/art/arcane/iris/engine/object/IrisRiver.java similarity index 88% rename from core/src/main/java/com/volmit/iris/engine/object/IrisRiver.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisRiver.java index 2e9ca75f2..361063205 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisRiver.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisRiver.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.mantle.MantleWriter; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.math.RNG; +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.annotations.*; +import art.arcane.volmlib.util.math.RNG; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisScript.java b/core/src/main/java/art/arcane/iris/engine/object/IrisScript.java similarity index 88% rename from core/src/main/java/com/volmit/iris/engine/object/IrisScript.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisScript.java index 7c28be980..540d9bf0c 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisScript.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisScript.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.loader.IrisRegistrant; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.plugin.VolmitSender; +import art.arcane.iris.core.loader.IrisRegistrant; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.iris.util.plugin.VolmitSender; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisSeed.java b/core/src/main/java/art/arcane/iris/engine/object/IrisSeed.java similarity index 89% rename from core/src/main/java/com/volmit/iris/engine/object/IrisSeed.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisSeed.java index 370ddac3e..82e660325 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisSeed.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisSeed.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.Snippet; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.volmlib.util.math.RNG; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisShapedGeneratorStyle.java b/core/src/main/java/art/arcane/iris/engine/object/IrisShapedGeneratorStyle.java similarity index 92% rename from core/src/main/java/com/volmit/iris/engine/object/IrisShapedGeneratorStyle.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisShapedGeneratorStyle.java index 990f3eb0b..f01f278c3 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisShapedGeneratorStyle.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisShapedGeneratorStyle.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.math.RNG; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisSlopeClip.java b/core/src/main/java/art/arcane/iris/engine/object/IrisSlopeClip.java similarity index 85% rename from core/src/main/java/com/volmit/iris/engine/object/IrisSlopeClip.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisSlopeClip.java index bd7c301be..35dd991ae 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisSlopeClip.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisSlopeClip.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.MaxNumber; -import com.volmit.iris.engine.object.annotations.MinNumber; -import com.volmit.iris.engine.object.annotations.Snippet; +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; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisSpawnGroup.java b/core/src/main/java/art/arcane/iris/engine/object/IrisSpawnGroup.java similarity index 92% rename from core/src/main/java/com/volmit/iris/engine/object/IrisSpawnGroup.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisSpawnGroup.java index 2b0ff8b69..bb8dc4dab 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisSpawnGroup.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisSpawnGroup.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; +import art.arcane.iris.engine.object.annotations.Desc; @Desc("Terrain modes are used to decide the generator type currently used") public enum IrisSpawnGroup { diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisSpawner.java b/core/src/main/java/art/arcane/iris/engine/object/IrisSpawner.java similarity index 91% rename from core/src/main/java/com/volmit/iris/engine/object/IrisSpawner.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisSpawner.java index c3343a2a0..2dd4778dd 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisSpawner.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisSpawner.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.loader.IrisRegistrant; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.annotations.ArrayType; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.plugin.VolmitSender; +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.volmlib.util.collection.KList; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.iris.util.plugin.VolmitSender; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisSpawnerCooldowns.java b/core/src/main/java/art/arcane/iris/engine/object/IrisSpawnerCooldowns.java similarity index 87% rename from core/src/main/java/com/volmit/iris/engine/object/IrisSpawnerCooldowns.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisSpawnerCooldowns.java index 05447eb74..a784d0889 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisSpawnerCooldowns.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisSpawnerCooldowns.java @@ -1,7 +1,7 @@ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.util.collection.KMap; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.volmlib.util.collection.KMap; import lombok.EqualsAndHashCode; import lombok.NonNull; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisSphere.java b/core/src/main/java/art/arcane/iris/engine/object/IrisSphere.java similarity index 81% rename from core/src/main/java/com/volmit/iris/engine/object/IrisSphere.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisSphere.java index 434926bec..f6b3ed918 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisSphere.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisSphere.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.mantle.MantleWriter; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.matter.MatterCavern; -import com.volmit.iris.util.matter.slices.CavernMatter; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.mantle.MantleWriter; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.volmlib.util.matter.MatterCavern; +import art.arcane.iris.util.matter.slices.CavernMatter; import lombok.Data; @Snippet("carving-sphere") diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisStiltSettings.java b/core/src/main/java/art/arcane/iris/engine/object/IrisStiltSettings.java similarity index 78% rename from core/src/main/java/com/volmit/iris/engine/object/IrisStiltSettings.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisStiltSettings.java index ca4bd55a6..87047efd9 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisStiltSettings.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisStiltSettings.java @@ -1,9 +1,9 @@ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.MaxNumber; -import com.volmit.iris.engine.object.annotations.MinNumber; -import com.volmit.iris.engine.object.annotations.Snippet; +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; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisStructurePopulator.java b/core/src/main/java/art/arcane/iris/engine/object/IrisStructurePopulator.java similarity index 88% rename from core/src/main/java/com/volmit/iris/engine/object/IrisStructurePopulator.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisStructurePopulator.java index 2c77da2ce..335973c83 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisStructurePopulator.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisStructurePopulator.java @@ -1,12 +1,12 @@ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.EngineAssignedComponent; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.documentation.ChunkCoordinates; -import com.volmit.iris.util.math.Position2; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.CNG; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.framework.EngineAssignedComponent; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.documentation.ChunkCoordinates; +import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.CNG; import org.jetbrains.annotations.Nullable; import java.util.List; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisStyledRange.java b/core/src/main/java/art/arcane/iris/engine/object/IrisStyledRange.java similarity index 83% rename from core/src/main/java/com/volmit/iris/engine/object/IrisStyledRange.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisStyledRange.java index 4d2d30dac..4c0b84d32 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisStyledRange.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisStyledRange.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.Snippet; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.stream.ProceduralStream; -import com.volmit.iris.util.stream.interpolation.Interpolated; +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.volmlib.util.math.M; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.stream.interpolation.Interpolated; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisSurface.java b/core/src/main/java/art/arcane/iris/engine/object/IrisSurface.java similarity index 96% rename from core/src/main/java/com/volmit/iris/engine/object/IrisSurface.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisSurface.java index e8a2e2e3c..0b073f40a 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisSurface.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisSurface.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; +import art.arcane.iris.engine.object.annotations.Desc; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.data.Waterlogged; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisTimeBlock.java b/core/src/main/java/art/arcane/iris/engine/object/IrisTimeBlock.java similarity index 92% rename from core/src/main/java/com/volmit/iris/engine/object/IrisTimeBlock.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisTimeBlock.java index c99bb23a1..6010b1d65 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisTimeBlock.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisTimeBlock.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.Snippet; +import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.iris.engine.object.annotations.Snippet; import lombok.Data; import org.bukkit.World; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisTree.java b/core/src/main/java/art/arcane/iris/engine/object/IrisTree.java similarity index 87% rename from core/src/main/java/com/volmit/iris/engine/object/IrisTree.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisTree.java index 1e8e8a8d6..b74147f6d 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisTree.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisTree.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.ArrayType; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.Required; -import com.volmit.iris.engine.object.annotations.Snippet; -import com.volmit.iris.util.collection.KList; +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.volmlib.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisTreeModes.java b/core/src/main/java/art/arcane/iris/engine/object/IrisTreeModes.java similarity index 91% rename from core/src/main/java/com/volmit/iris/engine/object/IrisTreeModes.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisTreeModes.java index adc5d03c6..3ea5a2c2f 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisTreeModes.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisTreeModes.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; +import art.arcane.iris.engine.object.annotations.Desc; @Desc("Sapling override object picking options") public enum IrisTreeModes { diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisTreeSettings.java b/core/src/main/java/art/arcane/iris/engine/object/IrisTreeSettings.java similarity index 86% rename from core/src/main/java/com/volmit/iris/engine/object/IrisTreeSettings.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisTreeSettings.java index b3afde29c..add93ef47 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisTreeSettings.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisTreeSettings.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.Required; -import com.volmit.iris.engine.object.annotations.Snippet; +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 lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisTreeSize.java b/core/src/main/java/art/arcane/iris/engine/object/IrisTreeSize.java similarity index 88% rename from core/src/main/java/com/volmit/iris/engine/object/IrisTreeSize.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisTreeSize.java index f27c6699d..dcff6c6ab 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisTreeSize.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisTreeSize.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.Required; -import com.volmit.iris.engine.object.annotations.Snippet; +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 lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisVanillaLootTable.java b/core/src/main/java/art/arcane/iris/engine/object/IrisVanillaLootTable.java similarity index 91% rename from core/src/main/java/com/volmit/iris/engine/object/IrisVanillaLootTable.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisVanillaLootTable.java index ee25d447b..172d8e0e9 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisVanillaLootTable.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisVanillaLootTable.java @@ -1,8 +1,8 @@ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.math.RNG; import lombok.Data; import lombok.EqualsAndHashCode; import org.bukkit.Location; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisVillagerOverride.java b/core/src/main/java/art/arcane/iris/engine/object/IrisVillagerOverride.java similarity index 94% rename from core/src/main/java/com/volmit/iris/engine/object/IrisVillagerOverride.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisVillagerOverride.java index e3c068a7e..6b6bbe036 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisVillagerOverride.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisVillagerOverride.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisVillagerTrade.java b/core/src/main/java/art/arcane/iris/engine/object/IrisVillagerTrade.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/object/IrisVillagerTrade.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisVillagerTrade.java index a34a8915a..4e3daac8e 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisVillagerTrade.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisVillagerTrade.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.math.RNG; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisWeather.java b/core/src/main/java/art/arcane/iris/engine/object/IrisWeather.java similarity index 93% rename from core/src/main/java/com/volmit/iris/engine/object/IrisWeather.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisWeather.java index 2f236647a..7279d6138 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisWeather.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisWeather.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; +import art.arcane.iris.engine.object.annotations.Desc; import org.bukkit.World; @Desc("Represents a weather type") diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisWorld.java b/core/src/main/java/art/arcane/iris/engine/object/IrisWorld.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/object/IrisWorld.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisWorld.java index 19c8d348d..7c1679194 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisWorld.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisWorld.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.Iris; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.util.collection.KList; +import art.arcane.iris.Iris; +import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.volmlib.util.collection.KList; import lombok.*; import lombok.experimental.Accessors; import org.bukkit.Bukkit; diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisWorm.java b/core/src/main/java/art/arcane/iris/engine/object/IrisWorm.java similarity index 91% rename from core/src/main/java/com/volmit/iris/engine/object/IrisWorm.java rename to core/src/main/java/art/arcane/iris/engine/object/IrisWorm.java index e83fead07..63e9984f1 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisWorm.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisWorm.java @@ -16,16 +16,16 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.mantle.MantleWriter; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.object.annotations.Snippet; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.CNG; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.engine.mantle.MantleWriter; +import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.iris.engine.object.annotations.Snippet; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KSet; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.CNG; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/LegacyTileData.java b/core/src/main/java/art/arcane/iris/engine/object/LegacyTileData.java similarity index 96% rename from core/src/main/java/com/volmit/iris/engine/object/LegacyTileData.java rename to core/src/main/java/art/arcane/iris/engine/object/LegacyTileData.java index 7cbcc094c..ab01d881b 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/LegacyTileData.java +++ b/core/src/main/java/art/arcane/iris/engine/object/LegacyTileData.java @@ -1,10 +1,10 @@ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.core.nms.container.Pair; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.core.nms.container.Pair; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.scheduling.J; import lombok.AllArgsConstructor; import lombok.EqualsAndHashCode; import lombok.NonNull; diff --git a/core/src/main/java/com/volmit/iris/engine/object/NoiseStyle.java b/core/src/main/java/art/arcane/iris/engine/object/NoiseStyle.java similarity index 98% rename from core/src/main/java/com/volmit/iris/engine/object/NoiseStyle.java rename to core/src/main/java/art/arcane/iris/engine/object/NoiseStyle.java index 324268874..595bf45b2 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/NoiseStyle.java +++ b/core/src/main/java/art/arcane/iris/engine/object/NoiseStyle.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.CNG; -import com.volmit.iris.util.noise.CNGFactory; -import com.volmit.iris.util.noise.NoiseType; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.CNG; +import art.arcane.iris.util.noise.CNGFactory; +import art.arcane.iris.util.noise.NoiseType; +import art.arcane.iris.util.stream.ProceduralStream; @Desc("Styles of noise") public enum NoiseStyle { diff --git a/core/src/main/java/com/volmit/iris/engine/object/ObjectPlaceMode.java b/core/src/main/java/art/arcane/iris/engine/object/ObjectPlaceMode.java similarity index 97% rename from core/src/main/java/com/volmit/iris/engine/object/ObjectPlaceMode.java rename to core/src/main/java/art/arcane/iris/engine/object/ObjectPlaceMode.java index b632406e1..a459ea650 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/ObjectPlaceMode.java +++ b/core/src/main/java/art/arcane/iris/engine/object/ObjectPlaceMode.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; +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 { diff --git a/core/src/main/java/com/volmit/iris/engine/object/StudioMode.java b/core/src/main/java/art/arcane/iris/engine/object/StudioMode.java similarity index 89% rename from core/src/main/java/com/volmit/iris/engine/object/StudioMode.java rename to core/src/main/java/art/arcane/iris/engine/object/StudioMode.java index 40d931308..827af7672 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/StudioMode.java +++ b/core/src/main/java/art/arcane/iris/engine/object/StudioMode.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.engine.platform.BukkitChunkGenerator; -import com.volmit.iris.engine.platform.studio.generators.BiomeBuffetGenerator; +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 java.util.function.Consumer; diff --git a/core/src/main/java/com/volmit/iris/engine/object/TileData.java b/core/src/main/java/art/arcane/iris/engine/object/TileData.java similarity index 96% rename from core/src/main/java/com/volmit/iris/engine/object/TileData.java rename to core/src/main/java/art/arcane/iris/engine/object/TileData.java index 9c0809545..444f0703c 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/TileData.java +++ b/core/src/main/java/art/arcane/iris/engine/object/TileData.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object; +package art.arcane.iris.engine.object; import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import com.volmit.iris.Iris; -import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.util.collection.KMap; +import art.arcane.iris.Iris; +import art.arcane.iris.core.nms.INMS; +import art.arcane.volmlib.util.collection.KMap; import lombok.*; import org.bukkit.Material; import org.bukkit.block.Block; diff --git a/core/src/main/java/com/volmit/iris/engine/object/annotations/ArrayType.java b/core/src/main/java/art/arcane/iris/engine/object/annotations/ArrayType.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/object/annotations/ArrayType.java rename to core/src/main/java/art/arcane/iris/engine/object/annotations/ArrayType.java index dfb46e3af..6f87fd418 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/annotations/ArrayType.java +++ b/core/src/main/java/art/arcane/iris/engine/object/annotations/ArrayType.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object.annotations; +package art.arcane.iris.engine.object.annotations; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/com/volmit/iris/engine/object/annotations/DependsOn.java b/core/src/main/java/art/arcane/iris/engine/object/annotations/DependsOn.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/object/annotations/DependsOn.java rename to core/src/main/java/art/arcane/iris/engine/object/annotations/DependsOn.java index 6d6ecd252..05c175a76 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/annotations/DependsOn.java +++ b/core/src/main/java/art/arcane/iris/engine/object/annotations/DependsOn.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object.annotations; +package art.arcane.iris.engine.object.annotations; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/com/volmit/iris/engine/object/annotations/Desc.java b/core/src/main/java/art/arcane/iris/engine/object/annotations/Desc.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/object/annotations/Desc.java rename to core/src/main/java/art/arcane/iris/engine/object/annotations/Desc.java index 9cec49518..637952f97 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/annotations/Desc.java +++ b/core/src/main/java/art/arcane/iris/engine/object/annotations/Desc.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object.annotations; +package art.arcane.iris.engine.object.annotations; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/com/volmit/iris/engine/object/annotations/MaxNumber.java b/core/src/main/java/art/arcane/iris/engine/object/annotations/MaxNumber.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/object/annotations/MaxNumber.java rename to core/src/main/java/art/arcane/iris/engine/object/annotations/MaxNumber.java index b2c78c577..a50844724 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/annotations/MaxNumber.java +++ b/core/src/main/java/art/arcane/iris/engine/object/annotations/MaxNumber.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object.annotations; +package art.arcane.iris.engine.object.annotations; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/com/volmit/iris/engine/object/annotations/MinNumber.java b/core/src/main/java/art/arcane/iris/engine/object/annotations/MinNumber.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/object/annotations/MinNumber.java rename to core/src/main/java/art/arcane/iris/engine/object/annotations/MinNumber.java index 067e6f597..1e286d941 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/annotations/MinNumber.java +++ b/core/src/main/java/art/arcane/iris/engine/object/annotations/MinNumber.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object.annotations; +package art.arcane.iris.engine.object.annotations; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListBiomeDownfallType.java b/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListBiomeDownfallType.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListBiomeDownfallType.java rename to core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListBiomeDownfallType.java index 9b19e51e3..e1c18632e 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListBiomeDownfallType.java +++ b/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListBiomeDownfallType.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object.annotations; +package art.arcane.iris.engine.object.annotations; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListBlockType.java b/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListBlockType.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListBlockType.java rename to core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListBlockType.java index 07170f0cf..f1b907fd6 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListBlockType.java +++ b/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListBlockType.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object.annotations; +package art.arcane.iris.engine.object.annotations; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListEnchantment.java b/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListEnchantment.java similarity index 84% rename from core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListEnchantment.java rename to core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListEnchantment.java index 20bb033d3..c4dbd8907 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListEnchantment.java +++ b/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListEnchantment.java @@ -1,4 +1,4 @@ -package com.volmit.iris.engine.object.annotations; +package art.arcane.iris.engine.object.annotations; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListFont.java b/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListFont.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListFont.java rename to core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListFont.java index 0d3b743fd..90844d846 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListFont.java +++ b/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListFont.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object.annotations; +package art.arcane.iris.engine.object.annotations; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListFunction.java b/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListFunction.java similarity index 69% rename from core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListFunction.java rename to core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListFunction.java index 04d9fd5b2..8f5e3d172 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListFunction.java +++ b/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListFunction.java @@ -1,7 +1,7 @@ -package com.volmit.iris.engine.object.annotations; +package art.arcane.iris.engine.object.annotations; -import com.volmit.iris.engine.framework.ListFunction; -import com.volmit.iris.util.collection.KList; +import art.arcane.iris.engine.framework.ListFunction; +import art.arcane.volmlib.util.collection.KList; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListItemType.java b/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListItemType.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListItemType.java rename to core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListItemType.java index c3420c2b8..7c3167656 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListItemType.java +++ b/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListItemType.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object.annotations; +package art.arcane.iris.engine.object.annotations; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListResource.java b/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListResource.java similarity index 91% rename from core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListResource.java rename to core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListResource.java index d5fab0f82..45688f3b8 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListResource.java +++ b/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListResource.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object.annotations; +package art.arcane.iris.engine.object.annotations; -import com.volmit.iris.core.loader.IrisRegistrant; +import art.arcane.iris.core.loader.IrisRegistrant; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListSpecialEntity.java b/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListSpecialEntity.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListSpecialEntity.java rename to core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListSpecialEntity.java index 53976a3cb..5821b4f03 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListSpecialEntity.java +++ b/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryListSpecialEntity.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object.annotations; +package art.arcane.iris.engine.object.annotations; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryMapBlockState.java b/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryMapBlockState.java similarity index 85% rename from core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryMapBlockState.java rename to core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryMapBlockState.java index 4bcf14cef..c313daf93 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryMapBlockState.java +++ b/core/src/main/java/art/arcane/iris/engine/object/annotations/RegistryMapBlockState.java @@ -1,4 +1,4 @@ -package com.volmit.iris.engine.object.annotations; +package art.arcane.iris.engine.object.annotations; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/core/src/main/java/com/volmit/iris/engine/object/annotations/Required.java b/core/src/main/java/art/arcane/iris/engine/object/annotations/Required.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/object/annotations/Required.java rename to core/src/main/java/art/arcane/iris/engine/object/annotations/Required.java index 50035d8a0..57e8c04ec 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/annotations/Required.java +++ b/core/src/main/java/art/arcane/iris/engine/object/annotations/Required.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object.annotations; +package art.arcane.iris.engine.object.annotations; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/com/volmit/iris/engine/object/annotations/Snippet.java b/core/src/main/java/art/arcane/iris/engine/object/annotations/Snippet.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/object/annotations/Snippet.java rename to core/src/main/java/art/arcane/iris/engine/object/annotations/Snippet.java index 3c17225e9..980e818bd 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/annotations/Snippet.java +++ b/core/src/main/java/art/arcane/iris/engine/object/annotations/Snippet.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object.annotations; +package art.arcane.iris.engine.object.annotations; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/com/volmit/iris/engine/object/annotations/functions/ComponentFlagFunction.java b/core/src/main/java/art/arcane/iris/engine/object/annotations/functions/ComponentFlagFunction.java similarity index 64% rename from core/src/main/java/com/volmit/iris/engine/object/annotations/functions/ComponentFlagFunction.java rename to core/src/main/java/art/arcane/iris/engine/object/annotations/functions/ComponentFlagFunction.java index fb8738ffe..dae3d330e 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/annotations/functions/ComponentFlagFunction.java +++ b/core/src/main/java/art/arcane/iris/engine/object/annotations/functions/ComponentFlagFunction.java @@ -1,12 +1,12 @@ -package com.volmit.iris.engine.object.annotations.functions; +package art.arcane.iris.engine.object.annotations.functions; -import com.volmit.iris.Iris; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.framework.ListFunction; -import com.volmit.iris.engine.mantle.ComponentFlag; -import com.volmit.iris.engine.mantle.MantleComponent; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.mantle.flag.MantleFlag; +import art.arcane.iris.Iris; +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.volmlib.util.collection.KList; +import art.arcane.volmlib.util.mantle.flag.MantleFlag; import java.util.Objects; @@ -25,7 +25,7 @@ public class ComponentFlagFunction implements ListFunction> { public KList apply(IrisData data) { var engine = data.getEngine(); if (engine != null) return engine.getMantle().getComponentFlags().toStringList(); - return Iris.getClasses("com.volmit.iris.engine.mantle.components", ComponentFlag.class) + return Iris.getClasses("art.arcane.iris.engine.mantle.components", ComponentFlag.class) .stream() .filter(MantleComponent.class::isAssignableFrom) .map(c -> c.getDeclaredAnnotation(ComponentFlag.class)) diff --git a/core/src/main/java/com/volmit/iris/engine/object/annotations/functions/LootTableKeyFunction.java b/core/src/main/java/art/arcane/iris/engine/object/annotations/functions/LootTableKeyFunction.java similarity index 79% rename from core/src/main/java/com/volmit/iris/engine/object/annotations/functions/LootTableKeyFunction.java rename to core/src/main/java/art/arcane/iris/engine/object/annotations/functions/LootTableKeyFunction.java index d77f49583..a10bf201f 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/annotations/functions/LootTableKeyFunction.java +++ b/core/src/main/java/art/arcane/iris/engine/object/annotations/functions/LootTableKeyFunction.java @@ -1,8 +1,8 @@ -package com.volmit.iris.engine.object.annotations.functions; +package art.arcane.iris.engine.object.annotations.functions; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.framework.ListFunction; -import com.volmit.iris.util.collection.KList; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.engine.framework.ListFunction; +import art.arcane.volmlib.util.collection.KList; import org.bukkit.NamespacedKey; import org.bukkit.Registry; import org.bukkit.loot.LootTable; diff --git a/core/src/main/java/com/volmit/iris/engine/object/annotations/functions/ResourceLoadersFunction.java b/core/src/main/java/art/arcane/iris/engine/object/annotations/functions/ResourceLoadersFunction.java similarity index 68% rename from core/src/main/java/com/volmit/iris/engine/object/annotations/functions/ResourceLoadersFunction.java rename to core/src/main/java/art/arcane/iris/engine/object/annotations/functions/ResourceLoadersFunction.java index 943a96113..c1e0d212e 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/annotations/functions/ResourceLoadersFunction.java +++ b/core/src/main/java/art/arcane/iris/engine/object/annotations/functions/ResourceLoadersFunction.java @@ -1,9 +1,9 @@ -package com.volmit.iris.engine.object.annotations.functions; +package art.arcane.iris.engine.object.annotations.functions; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.loader.ResourceLoader; -import com.volmit.iris.engine.framework.ListFunction; -import com.volmit.iris.util.collection.KList; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.core.loader.ResourceLoader; +import art.arcane.iris.engine.framework.ListFunction; +import art.arcane.volmlib.util.collection.KList; public class ResourceLoadersFunction implements ListFunction> { @Override diff --git a/core/src/main/java/com/volmit/iris/engine/object/annotations/functions/StructureKeyFunction.java b/core/src/main/java/art/arcane/iris/engine/object/annotations/functions/StructureKeyFunction.java similarity index 61% rename from core/src/main/java/com/volmit/iris/engine/object/annotations/functions/StructureKeyFunction.java rename to core/src/main/java/art/arcane/iris/engine/object/annotations/functions/StructureKeyFunction.java index 492a5706a..71f96baa0 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/annotations/functions/StructureKeyFunction.java +++ b/core/src/main/java/art/arcane/iris/engine/object/annotations/functions/StructureKeyFunction.java @@ -1,9 +1,9 @@ -package com.volmit.iris.engine.object.annotations.functions; +package art.arcane.iris.engine.object.annotations.functions; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.engine.framework.ListFunction; -import com.volmit.iris.util.collection.KList; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.core.nms.INMS; +import art.arcane.iris.engine.framework.ListFunction; +import art.arcane.volmlib.util.collection.KList; public class StructureKeyFunction implements ListFunction> { @Override diff --git a/core/src/main/java/com/volmit/iris/engine/object/annotations/functions/StructureKeyOrTagFunction.java b/core/src/main/java/art/arcane/iris/engine/object/annotations/functions/StructureKeyOrTagFunction.java similarity index 60% rename from core/src/main/java/com/volmit/iris/engine/object/annotations/functions/StructureKeyOrTagFunction.java rename to core/src/main/java/art/arcane/iris/engine/object/annotations/functions/StructureKeyOrTagFunction.java index 0d4db607a..1b3f60ac9 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/annotations/functions/StructureKeyOrTagFunction.java +++ b/core/src/main/java/art/arcane/iris/engine/object/annotations/functions/StructureKeyOrTagFunction.java @@ -1,9 +1,9 @@ -package com.volmit.iris.engine.object.annotations.functions; +package art.arcane.iris.engine.object.annotations.functions; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.engine.framework.ListFunction; -import com.volmit.iris.util.collection.KList; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.core.nms.INMS; +import art.arcane.iris.engine.framework.ListFunction; +import art.arcane.volmlib.util.collection.KList; public class StructureKeyOrTagFunction implements ListFunction> { @Override diff --git a/core/src/main/java/com/volmit/iris/engine/object/matter/IrisMatterObject.java b/core/src/main/java/art/arcane/iris/engine/object/matter/IrisMatterObject.java similarity index 75% rename from core/src/main/java/com/volmit/iris/engine/object/matter/IrisMatterObject.java rename to core/src/main/java/art/arcane/iris/engine/object/matter/IrisMatterObject.java index 6484483e1..274039b0e 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/matter/IrisMatterObject.java +++ b/core/src/main/java/art/arcane/iris/engine/object/matter/IrisMatterObject.java @@ -1,11 +1,11 @@ -package com.volmit.iris.engine.object.matter; +package art.arcane.iris.engine.object.matter; -import com.volmit.iris.core.loader.IrisRegistrant; -import com.volmit.iris.engine.object.IrisObject; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.matter.IrisMatter; -import com.volmit.iris.util.matter.Matter; -import com.volmit.iris.util.plugin.VolmitSender; +import art.arcane.iris.core.loader.IrisRegistrant; +import art.arcane.iris.engine.object.IrisObject; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.iris.util.matter.IrisMatter; +import art.arcane.iris.util.matter.Matter; +import art.arcane.iris.util.plugin.VolmitSender; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/engine/object/matter/IrisMatterPlacement.java b/core/src/main/java/art/arcane/iris/engine/object/matter/IrisMatterPlacement.java similarity index 85% rename from core/src/main/java/com/volmit/iris/engine/object/matter/IrisMatterPlacement.java rename to core/src/main/java/art/arcane/iris/engine/object/matter/IrisMatterPlacement.java index 51299f7ac..7fde87095 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/matter/IrisMatterPlacement.java +++ b/core/src/main/java/art/arcane/iris/engine/object/matter/IrisMatterPlacement.java @@ -16,17 +16,17 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.object.matter; +package art.arcane.iris.engine.object.matter; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.IrisEngine; -import com.volmit.iris.engine.object.IRare; -import com.volmit.iris.engine.object.IrisStyledRange; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.mantle.Mantle; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.matter.MatterSlice; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.engine.IrisEngine; +import art.arcane.iris.engine.object.IRare; +import art.arcane.iris.engine.object.IrisStyledRange; +import art.arcane.iris.engine.object.annotations.*; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.matter.MatterSlice; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/engine/object/matter/IrisMatterPlacementLocation.java b/core/src/main/java/art/arcane/iris/engine/object/matter/IrisMatterPlacementLocation.java similarity index 74% rename from core/src/main/java/com/volmit/iris/engine/object/matter/IrisMatterPlacementLocation.java rename to core/src/main/java/art/arcane/iris/engine/object/matter/IrisMatterPlacementLocation.java index cf187a1fb..c55eb13e2 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/matter/IrisMatterPlacementLocation.java +++ b/core/src/main/java/art/arcane/iris/engine/object/matter/IrisMatterPlacementLocation.java @@ -1,8 +1,8 @@ -package com.volmit.iris.engine.object.matter; +package art.arcane.iris.engine.object.matter; -import com.volmit.iris.engine.IrisEngine; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.util.function.Function3; +import art.arcane.iris.engine.IrisEngine; +import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.function.Function3; @Desc("WHERE THINGS PLACE") public enum IrisMatterPlacementLocation { diff --git a/core/src/main/java/com/volmit/iris/engine/object/matter/IrisMatterTranslate.java b/core/src/main/java/art/arcane/iris/engine/object/matter/IrisMatterTranslate.java similarity index 86% rename from core/src/main/java/com/volmit/iris/engine/object/matter/IrisMatterTranslate.java rename to core/src/main/java/art/arcane/iris/engine/object/matter/IrisMatterTranslate.java index 65cf2dd3c..c3678adb9 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/matter/IrisMatterTranslate.java +++ b/core/src/main/java/art/arcane/iris/engine/object/matter/IrisMatterTranslate.java @@ -1,9 +1,9 @@ -package com.volmit.iris.engine.object.matter; +package art.arcane.iris.engine.object.matter; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.object.IrisStyledRange; -import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.engine.object.IrisStyledRange; +import art.arcane.iris.engine.object.annotations.Desc; +import art.arcane.volmlib.util.math.RNG; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java b/core/src/main/java/art/arcane/iris/engine/platform/BukkitChunkGenerator.java similarity index 92% rename from core/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java rename to core/src/main/java/art/arcane/iris/engine/platform/BukkitChunkGenerator.java index 54bfefd5a..756896c89 100644 --- a/core/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java +++ b/core/src/main/java/art/arcane/iris/engine/platform/BukkitChunkGenerator.java @@ -16,31 +16,31 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.platform; +package art.arcane.iris.engine.platform; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.IrisWorlds; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.core.service.StudioSVC; -import com.volmit.iris.engine.IrisEngine; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.data.chunk.TerrainChunk; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.EngineTarget; -import com.volmit.iris.engine.object.IrisDimension; -import com.volmit.iris.engine.object.IrisWorld; -import com.volmit.iris.engine.object.StudioMode; -import com.volmit.iris.engine.platform.studio.StudioGenerator; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.data.IrisBiomeStorage; -import com.volmit.iris.util.hunk.view.BiomeGridHunkHolder; -import com.volmit.iris.util.hunk.view.ChunkDataHunkHolder; -import com.volmit.iris.util.io.ReactiveFolder; -import com.volmit.iris.util.scheduling.ChronoLatch; -import com.volmit.iris.util.scheduling.J; -import com.volmit.iris.util.scheduling.Looper; +import art.arcane.iris.Iris; +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.service.StudioSVC; +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.object.IrisDimension; +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.volmlib.util.collection.KList; +import art.arcane.volmlib.util.data.IrisBiomeStorage; +import art.arcane.iris.util.hunk.view.BiomeGridHunkHolder; +import art.arcane.iris.util.hunk.view.ChunkDataHunkHolder; +import art.arcane.iris.util.io.ReactiveFolder; +import art.arcane.volmlib.util.scheduling.ChronoLatch; +import art.arcane.iris.util.scheduling.J; +import art.arcane.volmlib.util.scheduling.Looper; import io.papermc.lib.PaperLib; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/engine/platform/DummyBiomeGrid.java b/core/src/main/java/art/arcane/iris/engine/platform/DummyBiomeGrid.java similarity index 93% rename from core/src/main/java/com/volmit/iris/engine/platform/DummyBiomeGrid.java rename to core/src/main/java/art/arcane/iris/engine/platform/DummyBiomeGrid.java index 0d9db538f..f49a3ce03 100644 --- a/core/src/main/java/com/volmit/iris/engine/platform/DummyBiomeGrid.java +++ b/core/src/main/java/art/arcane/iris/engine/platform/DummyBiomeGrid.java @@ -1,4 +1,4 @@ -package com.volmit.iris.engine.platform; +package art.arcane.iris.engine.platform; import org.bukkit.block.Biome; import org.bukkit.generator.ChunkGenerator; diff --git a/core/src/main/java/com/volmit/iris/engine/platform/DummyBiomeProvider.java b/core/src/main/java/art/arcane/iris/engine/platform/DummyBiomeProvider.java similarity index 81% rename from core/src/main/java/com/volmit/iris/engine/platform/DummyBiomeProvider.java rename to core/src/main/java/art/arcane/iris/engine/platform/DummyBiomeProvider.java index 551d95583..83f5905ae 100644 --- a/core/src/main/java/com/volmit/iris/engine/platform/DummyBiomeProvider.java +++ b/core/src/main/java/art/arcane/iris/engine/platform/DummyBiomeProvider.java @@ -1,7 +1,7 @@ -package com.volmit.iris.engine.platform; +package art.arcane.iris.engine.platform; -import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.util.collection.KList; +import art.arcane.iris.core.nms.INMS; +import art.arcane.volmlib.util.collection.KList; import org.bukkit.block.Biome; import org.bukkit.generator.BiomeProvider; import org.bukkit.generator.WorldInfo; diff --git a/core/src/main/java/com/volmit/iris/engine/platform/DummyChunkGenerator.java b/core/src/main/java/art/arcane/iris/engine/platform/DummyChunkGenerator.java similarity index 95% rename from core/src/main/java/com/volmit/iris/engine/platform/DummyChunkGenerator.java rename to core/src/main/java/art/arcane/iris/engine/platform/DummyChunkGenerator.java index b78340ba4..04fb8817a 100644 --- a/core/src/main/java/com/volmit/iris/engine/platform/DummyChunkGenerator.java +++ b/core/src/main/java/art/arcane/iris/engine/platform/DummyChunkGenerator.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.platform; +package art.arcane.iris.engine.platform; import org.bukkit.generator.ChunkGenerator; diff --git a/core/src/main/java/com/volmit/iris/engine/platform/PlatformChunkGenerator.java b/core/src/main/java/art/arcane/iris/engine/platform/PlatformChunkGenerator.java similarity index 83% rename from core/src/main/java/com/volmit/iris/engine/platform/PlatformChunkGenerator.java rename to core/src/main/java/art/arcane/iris/engine/platform/PlatformChunkGenerator.java index 93066fb62..e772d0127 100644 --- a/core/src/main/java/com/volmit/iris/engine/platform/PlatformChunkGenerator.java +++ b/core/src/main/java/art/arcane/iris/engine/platform/PlatformChunkGenerator.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.platform; +package art.arcane.iris.engine.platform; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.EngineTarget; -import com.volmit.iris.engine.framework.Hotloadable; -import com.volmit.iris.util.data.DataProvider; +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.data.DataProvider; import org.bukkit.World; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/core/src/main/java/com/volmit/iris/engine/platform/studio/EnginedStudioGenerator.java b/core/src/main/java/art/arcane/iris/engine/platform/studio/EnginedStudioGenerator.java similarity index 83% rename from core/src/main/java/com/volmit/iris/engine/platform/studio/EnginedStudioGenerator.java rename to core/src/main/java/art/arcane/iris/engine/platform/studio/EnginedStudioGenerator.java index cd966c158..4d36201fd 100644 --- a/core/src/main/java/com/volmit/iris/engine/platform/studio/EnginedStudioGenerator.java +++ b/core/src/main/java/art/arcane/iris/engine/platform/studio/EnginedStudioGenerator.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.platform.studio; +package art.arcane.iris.engine.platform.studio; -import com.volmit.iris.engine.data.chunk.TerrainChunk; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.WrongEngineBroException; +import art.arcane.iris.engine.data.chunk.TerrainChunk; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.framework.WrongEngineBroException; import lombok.RequiredArgsConstructor; @RequiredArgsConstructor diff --git a/core/src/main/java/com/volmit/iris/engine/platform/studio/StudioGenerator.java b/core/src/main/java/art/arcane/iris/engine/platform/studio/StudioGenerator.java similarity index 80% rename from core/src/main/java/com/volmit/iris/engine/platform/studio/StudioGenerator.java rename to core/src/main/java/art/arcane/iris/engine/platform/studio/StudioGenerator.java index 51d37d0a2..bda46bed0 100644 --- a/core/src/main/java/com/volmit/iris/engine/platform/studio/StudioGenerator.java +++ b/core/src/main/java/art/arcane/iris/engine/platform/studio/StudioGenerator.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.platform.studio; +package art.arcane.iris.engine.platform.studio; -import com.volmit.iris.engine.data.chunk.TerrainChunk; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.WrongEngineBroException; +import art.arcane.iris.engine.data.chunk.TerrainChunk; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.framework.WrongEngineBroException; public interface StudioGenerator { void generateChunk(Engine engine, TerrainChunk tc, int x, int z) throws WrongEngineBroException; diff --git a/core/src/main/java/com/volmit/iris/engine/platform/studio/generators/BiomeBuffetGenerator.java b/core/src/main/java/art/arcane/iris/engine/platform/studio/generators/BiomeBuffetGenerator.java similarity index 84% rename from core/src/main/java/com/volmit/iris/engine/platform/studio/generators/BiomeBuffetGenerator.java rename to core/src/main/java/art/arcane/iris/engine/platform/studio/generators/BiomeBuffetGenerator.java index 4e2c661d5..9fb6733e3 100644 --- a/core/src/main/java/com/volmit/iris/engine/platform/studio/generators/BiomeBuffetGenerator.java +++ b/core/src/main/java/art/arcane/iris/engine/platform/studio/generators/BiomeBuffetGenerator.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package com.volmit.iris.engine.platform.studio.generators; +package art.arcane.iris.engine.platform.studio.generators; -import com.volmit.iris.engine.data.cache.Cache; -import com.volmit.iris.engine.data.chunk.TerrainChunk; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.WrongEngineBroException; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.platform.studio.EnginedStudioGenerator; +import art.arcane.iris.engine.data.cache.Cache; +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.engine.object.IrisBiome; +import art.arcane.iris.engine.platform.studio.EnginedStudioGenerator; import org.bukkit.Material; import org.bukkit.block.data.BlockData; diff --git a/core/src/main/java/art/arcane/iris/util/common/board/BoardEntry.java b/core/src/main/java/art/arcane/iris/util/common/board/BoardEntry.java new file mode 100644 index 000000000..3b9b6067d --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/board/BoardEntry.java @@ -0,0 +1,21 @@ +package art.arcane.iris.util.board; + +public class BoardEntry { + private final art.arcane.volmlib.util.board.BoardEntry delegate; + + private BoardEntry(art.arcane.volmlib.util.board.BoardEntry delegate) { + this.delegate = delegate; + } + + public String getPrefix() { + return delegate.getPrefix(); + } + + public String getSuffix() { + return delegate.getSuffix(); + } + + public static BoardEntry translateToEntry(String input) { + return new BoardEntry(art.arcane.volmlib.util.board.BoardEntry.translateToEntry(input)); + } +} diff --git a/core/src/main/java/art/arcane/iris/util/common/board/BoardSettings.java b/core/src/main/java/art/arcane/iris/util/common/board/BoardSettings.java new file mode 100644 index 000000000..f97b9bc9e --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/board/BoardSettings.java @@ -0,0 +1,51 @@ +package art.arcane.iris.util.board; + +import art.arcane.volmlib.util.board.BoardProvider; + +public class BoardSettings { + private final BoardProvider boardProvider; + private final ScoreDirection scoreDirection; + + private BoardSettings(BoardProvider boardProvider, ScoreDirection scoreDirection) { + this.boardProvider = boardProvider; + this.scoreDirection = scoreDirection; + } + + public BoardProvider getBoardProvider() { + return boardProvider; + } + + public ScoreDirection getScoreDirection() { + return scoreDirection; + } + + public art.arcane.volmlib.util.board.BoardSettings toShared() { + return art.arcane.volmlib.util.board.BoardSettings.builder() + .boardProvider(boardProvider) + .scoreDirection(scoreDirection.toShared()) + .build(); + } + + public static Builder builder() { + return new Builder(); + } + + public static class Builder { + private BoardProvider boardProvider; + private ScoreDirection scoreDirection; + + public Builder boardProvider(BoardProvider boardProvider) { + this.boardProvider = boardProvider; + return this; + } + + public Builder scoreDirection(ScoreDirection scoreDirection) { + this.scoreDirection = scoreDirection; + return this; + } + + public BoardSettings build() { + return new BoardSettings(boardProvider, scoreDirection); + } + } +} diff --git a/core/src/main/java/art/arcane/iris/util/common/board/ScoreDirection.java b/core/src/main/java/art/arcane/iris/util/common/board/ScoreDirection.java new file mode 100644 index 000000000..65bbfbde7 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/board/ScoreDirection.java @@ -0,0 +1,16 @@ +package art.arcane.iris.util.board; + +public enum ScoreDirection { + UP, + DOWN; + + public art.arcane.volmlib.util.board.ScoreDirection toShared() { + return this == UP + ? art.arcane.volmlib.util.board.ScoreDirection.UP + : art.arcane.volmlib.util.board.ScoreDirection.DOWN; + } + + public static ScoreDirection fromShared(art.arcane.volmlib.util.board.ScoreDirection direction) { + return direction == art.arcane.volmlib.util.board.ScoreDirection.UP ? UP : DOWN; + } +} diff --git a/core/src/main/java/com/volmit/iris/util/cache/WorldCache2D.java b/core/src/main/java/art/arcane/iris/util/common/cache/WorldCache2D.java similarity index 79% rename from core/src/main/java/com/volmit/iris/util/cache/WorldCache2D.java rename to core/src/main/java/art/arcane/iris/util/common/cache/WorldCache2D.java index 1d0ea3f29..01ae14af9 100644 --- a/core/src/main/java/com/volmit/iris/util/cache/WorldCache2D.java +++ b/core/src/main/java/art/arcane/iris/util/common/cache/WorldCache2D.java @@ -1,8 +1,10 @@ -package com.volmit.iris.util.cache; +package art.arcane.iris.util.cache; + +import art.arcane.volmlib.util.cache.ChunkCache2D; import com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap; -import com.volmit.iris.engine.data.cache.Cache; -import com.volmit.iris.util.function.Function2; +import art.arcane.iris.engine.data.cache.Cache; +import art.arcane.volmlib.util.function.Function2; public class WorldCache2D { private final ConcurrentLinkedHashMap> chunks; @@ -18,7 +20,7 @@ public class WorldCache2D { } public T get(int x, int z) { - ChunkCache2D chunk = chunks.computeIfAbsent(Cache.key(x >> 4, z >> 4), $ -> new ChunkCache2D<>()); + ChunkCache2D chunk = chunks.computeIfAbsent(Cache.key(x >> 4, z >> 4), $ -> new ChunkCache2D<>("iris")); return chunk.get(x, z, resolver); } diff --git a/core/src/main/java/art/arcane/iris/util/common/data/B.java b/core/src/main/java/art/arcane/iris/util/common/data/B.java new file mode 100644 index 000000000..5e59fc210 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/data/B.java @@ -0,0 +1,257 @@ +package art.arcane.iris.util.data; + +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.data.BSupport; +import art.arcane.iris.Iris; +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.util.data.registry.Materials; +import it.unimi.dsi.fastutil.ints.IntSet; +import org.bukkit.Material; +import org.bukkit.block.data.BlockData; + +import java.util.List; +import java.util.Optional; + +public class B { + private static final BSupportImpl BASE = new BSupportImpl(); + + private static final class BSupportImpl extends BSupport { + @Override + protected void warn(String message) { + Iris.warn(message); + } + + @Override + protected void debug(String message) { + Iris.debug(message); + } + + @Override + protected void reportError(Throwable throwable) { + Iris.reportError(throwable); + } + + @Override + protected void error(String message) { + Iris.error(message); + } + + @Override + protected Material shortGrassMaterial() { + return Materials.GRASS; + } + + @Override + protected void appendExtraFoliageMaterials(IntSet foliage) { + // Iris has no extra foliage materials beyond Bukkit Material. + } + + @Override + protected boolean includeLitInUpdatable() { + return false; + } + + @Override + protected BlockData resolveCompatBlock(String bdxf) { + if (bdxf.contains(":")) { + if (bdxf.startsWith("minecraft:")) { + return Iris.compat.getBlock(bdxf); + } + return null; + } + return Iris.compat.getBlock(bdxf); + } + + @Override + protected BlockData resolveExternalBlockData(String ix) { + if (ix.startsWith("minecraft:") || !ix.contains(":")) { + return null; + } + + Identifier key = Identifier.fromString(ix); + Optional bd = Iris.service(ExternalDataSVC.class).getBlockData(key); + debug("Loading block data " + key); + return bd.orElse(null); + } + + @Override + protected boolean shouldPreventLeafDecay() { + return IrisSettings.get().getGenerator().isPreventLeafDecay(); + } + + @Override + protected void appendExternalBlockTypes(KList blockTypes) { + for (Identifier id : Iris.service(ExternalDataSVC.class).getAllIdentifiers(DataType.BLOCK)) { + blockTypes.add(id.toString()); + } + } + + @Override + protected void appendExternalItemTypes(KList itemTypes) { + for (Identifier id : Iris.service(ExternalDataSVC.class).getAllIdentifiers(DataType.ITEM)) { + itemTypes.add(id.toString()); + } + } + + @Override + protected KMap, List> loadExternalBlockStates() { + KMap, List> flipped = new KMap<>(); + INMS.get().getBlockProperties().forEach((k, v) -> { + flipped.computeIfAbsent(v, $ -> new KList<>()).add(k.getKey().toString()); + }); + + var emptyStates = flipped.computeIfAbsent(new KList<>(0), $ -> new KList<>()); + for (var pair : Iris.service(ExternalDataSVC.class).getAllBlockProperties()) { + if (pair.getB().isEmpty()) { + emptyStates.add(pair.getA().toString()); + } else { + flipped.computeIfAbsent(pair.getB(), $ -> new KList<>()).add(pair.getA().toString()); + } + } + + KMap, List> states = new KMap<>(); + flipped.forEach((k, v) -> { + var old = states.put(v, k); + if (old != null) { + error("Duplicate block state: " + v + " (" + old + " and " + k + ")"); + } + }); + + return states; + } + } + + public static BlockData toDeepSlateOre(BlockData block, BlockData ore) { + return BASE.toDeepSlateOre(block, ore); + } + + public static boolean isDeepSlate(BlockData blockData) { + return BASE.isDeepSlate(blockData); + } + + public static boolean isOre(BlockData blockData) { + return BASE.isOre(blockData); + } + + public static boolean canPlaceOnto(Material mat, Material onto) { + return BASE.canPlaceOnto(mat, onto); + } + + public static boolean isFoliagePlantable(BlockData d) { + return BASE.isFoliagePlantable(d); + } + + public static boolean isFoliagePlantable(Material d) { + return BASE.isFoliagePlantable(d); + } + + public static boolean isWater(BlockData b) { + return BASE.isWater(b); + } + + public static BlockData getAir() { + return BASE.getAir(); + } + + public static Material getMaterialOrNull(String bdx) { + return BASE.getMaterialOrNull(bdx); + } + + public static Material getMaterial(String bdx) { + return BASE.getMaterial(bdx); + } + + public static boolean isSolid(BlockData mat) { + return BASE.isSolid(mat); + } + + public static BlockData getOrNull(String bdxf) { + return BASE.getOrNull(bdxf); + } + + public static BlockData getOrNull(String bdxf, boolean warn) { + return BASE.getOrNull(bdxf, warn); + } + + public static BlockData getNoCompat(String bdxf) { + return BASE.getNoCompat(bdxf); + } + + public static BlockData get(String bdxf) { + return BASE.get(bdxf); + } + + public static boolean isStorage(BlockData mat) { + return BASE.isStorage(mat); + } + + public static boolean isStorageChest(BlockData mat) { + return BASE.isStorageChest(mat); + } + + public static boolean isLit(BlockData mat) { + return BASE.isLit(mat); + } + + public static boolean isUpdatable(BlockData mat) { + return BASE.isUpdatable(mat); + } + + public static boolean isFoliage(Material d) { + return BASE.isFoliage(d); + } + + public static boolean isFoliage(BlockData d) { + return BASE.isFoliage(d); + } + + public static boolean isDecorant(BlockData m) { + return BASE.isDecorant(m); + } + + public static KList get(KList find) { + return BASE.get(find); + } + + public static boolean isFluid(BlockData d) { + return BASE.isFluid(d); + } + + public static boolean isAirOrFluid(BlockData d) { + return BASE.isAirOrFluid(d); + } + + public static boolean isAir(BlockData d) { + return BASE.isAir(d); + } + + public synchronized static String[] getBlockTypes() { + return BASE.getBlockTypes(); + } + + public synchronized static KMap, List> getBlockStates() { + return BASE.getBlockStates(); + } + + public static String[] getItemTypes() { + return BASE.getItemTypes(); + } + + public static boolean isWaterLogged(BlockData b) { + return BASE.isWaterLogged(b); + } + + public static void registerCustomBlockData(String namespace, String key, BlockData blockData) { + BASE.registerCustomBlockData(namespace, key, blockData); + } + + public static boolean isVineBlock(BlockData data) { + return BASE.isVineBlock(data); + } +} diff --git a/core/src/main/java/com/volmit/iris/util/data/BiomeMap.java b/core/src/main/java/art/arcane/iris/util/common/data/BiomeMap.java similarity index 92% rename from core/src/main/java/com/volmit/iris/util/data/BiomeMap.java rename to core/src/main/java/art/arcane/iris/util/common/data/BiomeMap.java index 1e39447fe..333f97028 100644 --- a/core/src/main/java/com/volmit/iris/util/data/BiomeMap.java +++ b/core/src/main/java/art/arcane/iris/util/common/data/BiomeMap.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.data; +package art.arcane.iris.util.data; -import com.volmit.iris.engine.object.IrisBiome; +import art.arcane.iris.engine.object.IrisBiome; public class BiomeMap { private final IrisBiome[] height; diff --git a/core/src/main/java/com/volmit/iris/util/data/DataProvider.java b/core/src/main/java/art/arcane/iris/util/common/data/DataProvider.java similarity index 91% rename from core/src/main/java/com/volmit/iris/util/data/DataProvider.java rename to core/src/main/java/art/arcane/iris/util/common/data/DataProvider.java index cf1146e51..d91dc1998 100644 --- a/core/src/main/java/com/volmit/iris/util/data/DataProvider.java +++ b/core/src/main/java/art/arcane/iris/util/common/data/DataProvider.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.data; +package art.arcane.iris.util.data; -import com.volmit.iris.core.loader.IrisData; +import art.arcane.iris.core.loader.IrisData; public interface DataProvider { IrisData getData(); diff --git a/core/src/main/java/com/volmit/iris/util/data/IrisCustomData.java b/core/src/main/java/art/arcane/iris/util/common/data/IrisCustomData.java similarity index 94% rename from core/src/main/java/com/volmit/iris/util/data/IrisCustomData.java rename to core/src/main/java/art/arcane/iris/util/common/data/IrisCustomData.java index 062cb50a1..a8884c7b7 100644 --- a/core/src/main/java/com/volmit/iris/util/data/IrisCustomData.java +++ b/core/src/main/java/art/arcane/iris/util/common/data/IrisCustomData.java @@ -1,7 +1,7 @@ -package com.volmit.iris.util.data; +package art.arcane.iris.util.data; -import com.volmit.iris.core.link.Identifier; -import com.volmit.iris.util.collection.KMap; +import art.arcane.iris.core.link.Identifier; +import art.arcane.volmlib.util.collection.KMap; import lombok.NonNull; import org.bukkit.block.data.BlockData; import org.jetbrains.annotations.ApiStatus; diff --git a/core/src/main/java/com/volmit/iris/util/data/VectorMap.java b/core/src/main/java/art/arcane/iris/util/common/data/VectorMap.java similarity index 98% rename from core/src/main/java/com/volmit/iris/util/data/VectorMap.java rename to core/src/main/java/art/arcane/iris/util/common/data/VectorMap.java index 0b3108252..fae2f22c1 100644 --- a/core/src/main/java/com/volmit/iris/util/data/VectorMap.java +++ b/core/src/main/java/art/arcane/iris/util/common/data/VectorMap.java @@ -1,6 +1,6 @@ -package com.volmit.iris.util.data; +package art.arcane.iris.util.data; -import com.volmit.iris.util.collection.KMap; +import art.arcane.volmlib.util.collection.KMap; import lombok.NonNull; import org.bukkit.util.BlockVector; import org.jetbrains.annotations.NotNull; diff --git a/core/src/main/java/com/volmit/iris/util/data/palette/BitStorage.java b/core/src/main/java/art/arcane/iris/util/common/data/palette/BitStorage.java similarity index 99% rename from core/src/main/java/com/volmit/iris/util/data/palette/BitStorage.java rename to core/src/main/java/art/arcane/iris/util/common/data/palette/BitStorage.java index 22b965be9..4a080d861 100644 --- a/core/src/main/java/com/volmit/iris/util/data/palette/BitStorage.java +++ b/core/src/main/java/art/arcane/iris/util/common/data/palette/BitStorage.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.data.palette; +package art.arcane.iris.util.data.palette; import org.apache.commons.lang3.Validate; diff --git a/core/src/main/java/com/volmit/iris/util/data/palette/CountConsumer.java b/core/src/main/java/art/arcane/iris/util/common/data/palette/CountConsumer.java similarity index 95% rename from core/src/main/java/com/volmit/iris/util/data/palette/CountConsumer.java rename to core/src/main/java/art/arcane/iris/util/common/data/palette/CountConsumer.java index 785997ed9..002382edd 100644 --- a/core/src/main/java/com/volmit/iris/util/data/palette/CountConsumer.java +++ b/core/src/main/java/art/arcane/iris/util/common/data/palette/CountConsumer.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.data.palette; +package art.arcane.iris.util.data.palette; @FunctionalInterface public interface CountConsumer { diff --git a/core/src/main/java/com/volmit/iris/util/data/palette/CrudeIncrementalIntIdentityHashBiMap.java b/core/src/main/java/art/arcane/iris/util/common/data/palette/CrudeIncrementalIntIdentityHashBiMap.java similarity index 99% rename from core/src/main/java/com/volmit/iris/util/data/palette/CrudeIncrementalIntIdentityHashBiMap.java rename to core/src/main/java/art/arcane/iris/util/common/data/palette/CrudeIncrementalIntIdentityHashBiMap.java index 92e4c7fb2..f22fbdbe1 100644 --- a/core/src/main/java/com/volmit/iris/util/data/palette/CrudeIncrementalIntIdentityHashBiMap.java +++ b/core/src/main/java/art/arcane/iris/util/common/data/palette/CrudeIncrementalIntIdentityHashBiMap.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.data.palette; +package art.arcane.iris.util.data.palette; import com.google.common.collect.Iterators; diff --git a/core/src/main/java/com/volmit/iris/util/data/palette/GlobalPalette.java b/core/src/main/java/art/arcane/iris/util/common/data/palette/GlobalPalette.java similarity index 97% rename from core/src/main/java/com/volmit/iris/util/data/palette/GlobalPalette.java rename to core/src/main/java/art/arcane/iris/util/common/data/palette/GlobalPalette.java index 5697f5c07..b2c2e5ca6 100644 --- a/core/src/main/java/com/volmit/iris/util/data/palette/GlobalPalette.java +++ b/core/src/main/java/art/arcane/iris/util/common/data/palette/GlobalPalette.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.data.palette; +package art.arcane.iris.util.data.palette; import java.util.List; import java.util.function.Predicate; diff --git a/core/src/main/java/com/volmit/iris/util/data/palette/HashMapPalette.java b/core/src/main/java/art/arcane/iris/util/common/data/palette/HashMapPalette.java similarity index 94% rename from core/src/main/java/com/volmit/iris/util/data/palette/HashMapPalette.java rename to core/src/main/java/art/arcane/iris/util/common/data/palette/HashMapPalette.java index 97cf14800..ed178af0e 100644 --- a/core/src/main/java/com/volmit/iris/util/data/palette/HashMapPalette.java +++ b/core/src/main/java/art/arcane/iris/util/common/data/palette/HashMapPalette.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.data.palette; +package art.arcane.iris.util.data.palette; -import com.volmit.iris.Iris; -import com.volmit.iris.util.collection.KMap; +import art.arcane.iris.Iris; +import art.arcane.volmlib.util.collection.KMap; import java.util.List; diff --git a/core/src/main/java/com/volmit/iris/util/data/palette/IdMap.java b/core/src/main/java/art/arcane/iris/util/common/data/palette/IdMap.java similarity index 95% rename from core/src/main/java/com/volmit/iris/util/data/palette/IdMap.java rename to core/src/main/java/art/arcane/iris/util/common/data/palette/IdMap.java index 4c74d39c5..923719d86 100644 --- a/core/src/main/java/com/volmit/iris/util/data/palette/IdMap.java +++ b/core/src/main/java/art/arcane/iris/util/common/data/palette/IdMap.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.data.palette; +package art.arcane.iris.util.data.palette; public interface IdMap extends Iterable { int getId(T paramT); diff --git a/core/src/main/java/com/volmit/iris/util/data/palette/IdMapper.java b/core/src/main/java/art/arcane/iris/util/common/data/palette/IdMapper.java similarity index 98% rename from core/src/main/java/com/volmit/iris/util/data/palette/IdMapper.java rename to core/src/main/java/art/arcane/iris/util/common/data/palette/IdMapper.java index 77ddbfa8a..d2bb8ae57 100644 --- a/core/src/main/java/com/volmit/iris/util/data/palette/IdMapper.java +++ b/core/src/main/java/art/arcane/iris/util/common/data/palette/IdMapper.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.data.palette; +package art.arcane.iris.util.data.palette; import com.google.common.base.Predicates; import com.google.common.collect.Iterators; diff --git a/core/src/main/java/com/volmit/iris/util/data/palette/LinearPalette.java b/core/src/main/java/art/arcane/iris/util/common/data/palette/LinearPalette.java similarity index 98% rename from core/src/main/java/com/volmit/iris/util/data/palette/LinearPalette.java rename to core/src/main/java/art/arcane/iris/util/common/data/palette/LinearPalette.java index 25afb6a0b..cbca06ac9 100644 --- a/core/src/main/java/com/volmit/iris/util/data/palette/LinearPalette.java +++ b/core/src/main/java/art/arcane/iris/util/common/data/palette/LinearPalette.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.data.palette; +package art.arcane.iris.util.data.palette; import java.util.List; import java.util.concurrent.atomic.AtomicReferenceArray; diff --git a/core/src/main/java/com/volmit/iris/util/data/palette/Mth.java b/core/src/main/java/art/arcane/iris/util/common/data/palette/Mth.java similarity index 99% rename from core/src/main/java/com/volmit/iris/util/data/palette/Mth.java rename to core/src/main/java/art/arcane/iris/util/common/data/palette/Mth.java index 16ce7c89c..9ef9199e5 100644 --- a/core/src/main/java/com/volmit/iris/util/data/palette/Mth.java +++ b/core/src/main/java/art/arcane/iris/util/common/data/palette/Mth.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.data.palette; +package art.arcane.iris.util.data.palette; import java.util.Random; import java.util.UUID; diff --git a/core/src/main/java/com/volmit/iris/util/data/palette/Palette.java b/core/src/main/java/art/arcane/iris/util/common/data/palette/Palette.java similarity index 95% rename from core/src/main/java/com/volmit/iris/util/data/palette/Palette.java rename to core/src/main/java/art/arcane/iris/util/common/data/palette/Palette.java index 27c8d4407..228320db0 100644 --- a/core/src/main/java/com/volmit/iris/util/data/palette/Palette.java +++ b/core/src/main/java/art/arcane/iris/util/common/data/palette/Palette.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.data.palette; +package art.arcane.iris.util.data.palette; import java.util.List; diff --git a/core/src/main/java/com/volmit/iris/util/data/palette/PaletteAccess.java b/core/src/main/java/art/arcane/iris/util/common/data/palette/PaletteAccess.java similarity index 91% rename from core/src/main/java/com/volmit/iris/util/data/palette/PaletteAccess.java rename to core/src/main/java/art/arcane/iris/util/common/data/palette/PaletteAccess.java index b860edb21..27282d468 100644 --- a/core/src/main/java/com/volmit/iris/util/data/palette/PaletteAccess.java +++ b/core/src/main/java/art/arcane/iris/util/common/data/palette/PaletteAccess.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.data.palette; +package art.arcane.iris.util.data.palette; -import com.volmit.iris.util.nbt.tag.CompoundTag; +import art.arcane.volmlib.util.nbt.tag.CompoundTag; public interface PaletteAccess { void setBlock(int x, int y, int z, CompoundTag data); diff --git a/core/src/main/java/com/volmit/iris/util/data/palette/PaletteResize.java b/core/src/main/java/art/arcane/iris/util/common/data/palette/PaletteResize.java similarity index 95% rename from core/src/main/java/com/volmit/iris/util/data/palette/PaletteResize.java rename to core/src/main/java/art/arcane/iris/util/common/data/palette/PaletteResize.java index b4fcade1b..f07501ded 100644 --- a/core/src/main/java/com/volmit/iris/util/data/palette/PaletteResize.java +++ b/core/src/main/java/art/arcane/iris/util/common/data/palette/PaletteResize.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.data.palette; +package art.arcane.iris.util.data.palette; interface PaletteResize { int onResize(int paramInt, T paramT); diff --git a/core/src/main/java/com/volmit/iris/util/data/palette/PaletteType.java b/core/src/main/java/art/arcane/iris/util/common/data/palette/PaletteType.java similarity index 94% rename from core/src/main/java/com/volmit/iris/util/data/palette/PaletteType.java rename to core/src/main/java/art/arcane/iris/util/common/data/palette/PaletteType.java index 039b821b7..e9aee8dd5 100644 --- a/core/src/main/java/com/volmit/iris/util/data/palette/PaletteType.java +++ b/core/src/main/java/art/arcane/iris/util/common/data/palette/PaletteType.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.data.palette; +package art.arcane.iris.util.data.palette; -import com.volmit.iris.util.data.Varint; +import art.arcane.volmlib.util.data.Varint; import java.io.DataInputStream; import java.io.DataOutputStream; diff --git a/core/src/main/java/com/volmit/iris/util/data/palette/PalettedContainer.java b/core/src/main/java/art/arcane/iris/util/common/data/palette/PalettedContainer.java similarity index 97% rename from core/src/main/java/com/volmit/iris/util/data/palette/PalettedContainer.java rename to core/src/main/java/art/arcane/iris/util/common/data/palette/PalettedContainer.java index eb3601c32..c6e216176 100644 --- a/core/src/main/java/com/volmit/iris/util/data/palette/PalettedContainer.java +++ b/core/src/main/java/art/arcane/iris/util/common/data/palette/PalettedContainer.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.data.palette; +package art.arcane.iris.util.data.palette; -import com.volmit.iris.Iris; -import com.volmit.iris.util.math.M; +import art.arcane.iris.Iris; +import art.arcane.volmlib.util.math.M; import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap; import java.util.List; diff --git a/core/src/main/java/com/volmit/iris/util/data/palette/QuartPos.java b/core/src/main/java/art/arcane/iris/util/common/data/palette/QuartPos.java similarity index 96% rename from core/src/main/java/com/volmit/iris/util/data/palette/QuartPos.java rename to core/src/main/java/art/arcane/iris/util/common/data/palette/QuartPos.java index ca5cb8e45..f06071f82 100644 --- a/core/src/main/java/com/volmit/iris/util/data/palette/QuartPos.java +++ b/core/src/main/java/art/arcane/iris/util/common/data/palette/QuartPos.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.data.palette; +package art.arcane.iris.util.data.palette; public final class QuartPos { public static final int BITS = 2; diff --git a/core/src/main/java/com/volmit/iris/util/data/registry/Attributes.java b/core/src/main/java/art/arcane/iris/util/common/data/registry/Attributes.java similarity index 81% rename from core/src/main/java/com/volmit/iris/util/data/registry/Attributes.java rename to core/src/main/java/art/arcane/iris/util/common/data/registry/Attributes.java index a31d11b89..90245c297 100644 --- a/core/src/main/java/com/volmit/iris/util/data/registry/Attributes.java +++ b/core/src/main/java/art/arcane/iris/util/common/data/registry/Attributes.java @@ -1,4 +1,4 @@ -package com.volmit.iris.util.data.registry; +package art.arcane.iris.util.data.registry; import org.bukkit.attribute.Attribute; diff --git a/core/src/main/java/com/volmit/iris/util/data/registry/KeyedRegistry.java b/core/src/main/java/art/arcane/iris/util/common/data/registry/KeyedRegistry.java similarity index 97% rename from core/src/main/java/com/volmit/iris/util/data/registry/KeyedRegistry.java rename to core/src/main/java/art/arcane/iris/util/common/data/registry/KeyedRegistry.java index 960ff8ca2..1dfaa377b 100644 --- a/core/src/main/java/com/volmit/iris/util/data/registry/KeyedRegistry.java +++ b/core/src/main/java/art/arcane/iris/util/common/data/registry/KeyedRegistry.java @@ -1,6 +1,6 @@ -package com.volmit.iris.util.data.registry; +package art.arcane.iris.util.data.registry; -import com.volmit.iris.util.collection.KMap; +import art.arcane.volmlib.util.collection.KMap; import lombok.NonNull; import org.bukkit.Keyed; import org.bukkit.NamespacedKey; diff --git a/core/src/main/java/com/volmit/iris/util/data/registry/Materials.java b/core/src/main/java/art/arcane/iris/util/common/data/registry/Materials.java similarity index 57% rename from core/src/main/java/com/volmit/iris/util/data/registry/Materials.java rename to core/src/main/java/art/arcane/iris/util/common/data/registry/Materials.java index fca4fb97b..8474d4973 100644 --- a/core/src/main/java/com/volmit/iris/util/data/registry/Materials.java +++ b/core/src/main/java/art/arcane/iris/util/common/data/registry/Materials.java @@ -1,8 +1,8 @@ -package com.volmit.iris.util.data.registry; +package art.arcane.iris.util.data.registry; import org.bukkit.Material; -import static com.volmit.iris.util.data.registry.RegistryUtil.find; +import static art.arcane.iris.util.data.registry.RegistryUtil.find; public class Materials { public static final Material GRASS = find(Material.class, "grass", "short_grass"); diff --git a/core/src/main/java/com/volmit/iris/util/data/registry/Particles.java b/core/src/main/java/art/arcane/iris/util/common/data/registry/Particles.java similarity index 75% rename from core/src/main/java/com/volmit/iris/util/data/registry/Particles.java rename to core/src/main/java/art/arcane/iris/util/common/data/registry/Particles.java index 3bc67d663..ade440828 100644 --- a/core/src/main/java/com/volmit/iris/util/data/registry/Particles.java +++ b/core/src/main/java/art/arcane/iris/util/common/data/registry/Particles.java @@ -1,8 +1,8 @@ -package com.volmit.iris.util.data.registry; +package art.arcane.iris.util.data.registry; import org.bukkit.Particle; -import static com.volmit.iris.util.data.registry.RegistryUtil.find; +import static art.arcane.iris.util.data.registry.RegistryUtil.find; public class Particles { public static final Particle CRIT_MAGIC = find(Particle.class, "crit_magic", "crit"); diff --git a/core/src/main/java/com/volmit/iris/util/data/registry/RegistryTypeAdapter.java b/core/src/main/java/art/arcane/iris/util/common/data/registry/RegistryTypeAdapter.java similarity index 96% rename from core/src/main/java/com/volmit/iris/util/data/registry/RegistryTypeAdapter.java rename to core/src/main/java/art/arcane/iris/util/common/data/registry/RegistryTypeAdapter.java index c328781b7..d33f6fd9a 100644 --- a/core/src/main/java/com/volmit/iris/util/data/registry/RegistryTypeAdapter.java +++ b/core/src/main/java/art/arcane/iris/util/common/data/registry/RegistryTypeAdapter.java @@ -1,4 +1,4 @@ -package com.volmit.iris.util.data.registry; +package art.arcane.iris.util.data.registry; import com.google.gson.TypeAdapter; import com.google.gson.stream.JsonReader; diff --git a/core/src/main/java/com/volmit/iris/util/data/registry/RegistryUtil.java b/core/src/main/java/art/arcane/iris/util/common/data/registry/RegistryUtil.java similarity index 95% rename from core/src/main/java/com/volmit/iris/util/data/registry/RegistryUtil.java rename to core/src/main/java/art/arcane/iris/util/common/data/registry/RegistryUtil.java index 6119cbdad..b77adb2e1 100644 --- a/core/src/main/java/com/volmit/iris/util/data/registry/RegistryUtil.java +++ b/core/src/main/java/art/arcane/iris/util/common/data/registry/RegistryUtil.java @@ -1,9 +1,9 @@ -package com.volmit.iris.util.data.registry; +package art.arcane.iris.util.data.registry; -import com.volmit.iris.core.nms.container.Pair; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; +import art.arcane.iris.core.nms.container.Pair; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; import lombok.NonNull; import org.bukkit.Bukkit; import org.bukkit.Keyed; @@ -19,7 +19,7 @@ import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; -import static com.volmit.iris.util.data.registry.KeyedRegistry.wrapped; +import static art.arcane.iris.util.data.registry.KeyedRegistry.wrapped; @SuppressWarnings("unchecked") public class RegistryUtil { diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/DecreeContext.java b/core/src/main/java/art/arcane/iris/util/common/decree/DecreeContext.java new file mode 100644 index 000000000..bd225181e --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/decree/DecreeContext.java @@ -0,0 +1,20 @@ +package art.arcane.iris.util.decree; + +import art.arcane.volmlib.util.decree.context.DecreeContextBase; +import art.arcane.iris.util.plugin.VolmitSender; + +public class DecreeContext { + private static final DecreeContextBase context = new DecreeContextBase<>(); + + public static VolmitSender get() { + return context.get(); + } + + public static void touch(VolmitSender c) { + context.touch(c); + } + + public static void remove() { + context.remove(); + } +} diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/DecreeContextHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/DecreeContextHandler.java new file mode 100644 index 000000000..f452d2504 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/decree/DecreeContextHandler.java @@ -0,0 +1,23 @@ +package art.arcane.iris.util.decree; + +import art.arcane.volmlib.util.decree.context.DecreeContextHandlers; +import art.arcane.volmlib.util.decree.context.DecreeContextHandlerType; +import art.arcane.iris.Iris; +import art.arcane.iris.util.plugin.VolmitSender; + +import java.util.Map; + +public interface DecreeContextHandler extends DecreeContextHandlerType { + Map, DecreeContextHandler> contextHandlers = buildContextHandlers(); + + static Map, DecreeContextHandler> buildContextHandlers() { + return DecreeContextHandlers.buildOrEmpty( + Iris.initialize("art.arcane.iris.util.decree.context"), + DecreeContextHandler.class, + h -> ((DecreeContextHandler) h).getType(), + e -> { + Iris.reportError(e); + e.printStackTrace(); + }); + } +} diff --git a/core/src/main/java/com/volmit/iris/util/decree/DecreeExecutor.java b/core/src/main/java/art/arcane/iris/util/common/decree/DecreeExecutor.java similarity index 73% rename from core/src/main/java/com/volmit/iris/util/decree/DecreeExecutor.java rename to core/src/main/java/art/arcane/iris/util/common/decree/DecreeExecutor.java index 12404d1c0..c07bfbe4b 100644 --- a/core/src/main/java/com/volmit/iris/util/decree/DecreeExecutor.java +++ b/core/src/main/java/art/arcane/iris/util/common/decree/DecreeExecutor.java @@ -16,17 +16,17 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.decree; +package art.arcane.iris.util.decree; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.platform.PlatformChunkGenerator; -import com.volmit.iris.util.plugin.VolmitSender; -import org.bukkit.World; +import art.arcane.volmlib.util.decree.DecreeExecutorBase; +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.platform.PlatformChunkGenerator; +import art.arcane.iris.util.plugin.VolmitSender; import org.bukkit.entity.Player; -public interface DecreeExecutor { +public interface DecreeExecutor extends DecreeExecutorBase { default VolmitSender sender() { return DecreeContext.get(); } @@ -60,15 +60,4 @@ public interface DecreeExecutor { } return null; } - - default World world() { - if (sender().isPlayer()) { - return sender().player().getWorld(); - } - return null; - } - - default T get(T v, T ifUndefined) { - return v == null ? ifUndefined : v; - } } diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/DecreeNode.java b/core/src/main/java/art/arcane/iris/util/common/decree/DecreeNode.java new file mode 100644 index 000000000..d86c4b5ca --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/decree/DecreeNode.java @@ -0,0 +1,17 @@ +package art.arcane.iris.util.decree; + +import art.arcane.volmlib.util.decree.DecreeNodeBase; + +import java.lang.reflect.Method; +import java.lang.reflect.Parameter; + +public class DecreeNode extends DecreeNodeBase { + public DecreeNode(Object instance, Method method) { + super(instance, method); + } + + @Override + protected DecreeParameter createParameter(Parameter parameter) { + return new DecreeParameter(parameter); + } +} diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/DecreeParameter.java b/core/src/main/java/art/arcane/iris/util/common/decree/DecreeParameter.java new file mode 100644 index 000000000..d32110f20 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/decree/DecreeParameter.java @@ -0,0 +1,28 @@ +package art.arcane.iris.util.decree; + +import art.arcane.volmlib.util.decree.DecreeParameterBase; +import art.arcane.volmlib.util.decree.specialhandlers.NoParameterHandler; +import art.arcane.iris.util.decree.specialhandlers.DummyHandler; + +import java.lang.reflect.Parameter; + +public class DecreeParameter extends DecreeParameterBase { + public DecreeParameter(Parameter parameter) { + super(parameter); + } + + @Override + protected boolean useSystemHandler(Class customHandler) { + return customHandler.equals(NoParameterHandler.class) || customHandler.equals(DummyHandler.class); + } + + @Override + protected art.arcane.volmlib.util.decree.DecreeParameterHandler getSystemHandler(Class type) { + return DecreeSystem.getHandler(type); + } + + @Override + public DecreeParameterHandler getHandler() { + return (DecreeParameterHandler) super.getHandler(); + } +} diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/DecreeParameterHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/DecreeParameterHandler.java new file mode 100644 index 000000000..d86b0a54a --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/decree/DecreeParameterHandler.java @@ -0,0 +1,5 @@ +package art.arcane.iris.util.decree; + +public interface DecreeParameterHandler + extends DecreeExecutor, art.arcane.volmlib.util.decree.DecreeParameterHandler { +} diff --git a/core/src/main/java/com/volmit/iris/util/decree/DecreeSystem.java b/core/src/main/java/art/arcane/iris/util/common/decree/DecreeSystem.java similarity index 61% rename from core/src/main/java/com/volmit/iris/util/decree/DecreeSystem.java rename to core/src/main/java/art/arcane/iris/util/common/decree/DecreeSystem.java index 5edacb51f..b1666e66e 100644 --- a/core/src/main/java/com/volmit/iris/util/decree/DecreeSystem.java +++ b/core/src/main/java/art/arcane/iris/util/common/decree/DecreeSystem.java @@ -16,16 +16,17 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.decree; +package art.arcane.iris.util.decree; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.decree.virtual.VirtualDecreeCommand; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.plugin.VolmitSender; -import com.volmit.iris.util.scheduling.J; +import art.arcane.volmlib.util.decree.DecreeSystemSupport; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.iris.util.decree.virtual.VirtualDecreeCommand; +import art.arcane.iris.util.format.C; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.plugin.VolmitSender; +import art.arcane.iris.util.scheduling.J; import org.bukkit.Sound; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; @@ -38,76 +39,14 @@ import org.jetbrains.annotations.Nullable; import java.util.List; public interface DecreeSystem extends CommandExecutor, TabCompleter { - KList> handlers = Iris.initialize("com.volmit.iris.util.decree.handlers", null).convert((i) -> (DecreeParameterHandler) i); + KList> handlers = Iris.initialize("art.arcane.iris.util.decree.handlers", null).convert((i) -> (DecreeParameterHandler) i); static KList enhanceArgs(String[] args) { - return enhanceArgs(args, true); + return new KList<>(DecreeSystemSupport.enhanceArgs(args)); } static KList enhanceArgs(String[] args, boolean trim) { - KList a = new KList<>(); - - if (args.length == 0) { - return a; - } - - StringBuilder flat = new StringBuilder(); - for (String i : args) { - if (trim) { - if (i.trim().isEmpty()) { - continue; - } - - flat.append(" ").append(i.trim()); - } else { - if (i.endsWith(" ")) { - flat.append(" ").append(i.trim()).append(" "); - } - } - } - - flat = new StringBuilder(flat.length() > 0 ? trim ? flat.toString().trim().length() > 0 ? flat.substring(1).trim() : flat.toString().trim() : flat.substring(1) : flat); - StringBuilder arg = new StringBuilder(); - boolean quoting = false; - - for (int x = 0; x < flat.length(); x++) { - char i = flat.charAt(x); - char j = x < flat.length() - 1 ? flat.charAt(x + 1) : i; - boolean hasNext = x < flat.length(); - - if (i == ' ' && !quoting) { - if (!arg.toString().trim().isEmpty() && trim) { - a.add(arg.toString().trim()); - arg = new StringBuilder(); - } - } else if (i == '"') { - if (!quoting && (arg.length() == 0)) { - quoting = true; - } else if (quoting) { - quoting = false; - - if (hasNext && j == ' ') { - if (!arg.toString().trim().isEmpty() && trim) { - a.add(arg.toString().trim()); - arg = new StringBuilder(); - } - } else if (!hasNext) { - if (!arg.toString().trim().isEmpty() && trim) { - a.add(arg.toString().trim()); - arg = new StringBuilder(); - } - } - } - } else { - arg.append(i); - } - } - - if (!arg.toString().trim().isEmpty() && trim) { - a.add(arg.toString().trim()); - } - - return a; + return new KList<>(DecreeSystemSupport.enhanceArgs(args, trim)); } /** @@ -117,11 +56,11 @@ public interface DecreeSystem extends CommandExecutor, TabCompleter { * @return The corresponding {@link DecreeParameterHandler}, or null */ static DecreeParameterHandler getHandler(Class type) { - for (DecreeParameterHandler i : handlers) { - if (i.supports(type)) { - return i; - } + DecreeParameterHandler handler = DecreeSystemSupport.getHandler(handlers, type, (h, t) -> h.supports(t)); + if (handler != null) { + return handler; } + Iris.error("Unhandled type in Decree Parameter: " + type.getName() + ". This is bad!"); return null; } diff --git a/core/src/main/java/com/volmit/iris/util/decree/context/BiomeContextHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/context/BiomeContextHandler.java similarity index 84% rename from core/src/main/java/com/volmit/iris/util/decree/context/BiomeContextHandler.java rename to core/src/main/java/art/arcane/iris/util/common/decree/context/BiomeContextHandler.java index 3389a6a19..26c460fa3 100644 --- a/core/src/main/java/com/volmit/iris/util/decree/context/BiomeContextHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/decree/context/BiomeContextHandler.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.decree.context; +package art.arcane.iris.util.decree.context; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.util.decree.DecreeContextHandler; -import com.volmit.iris.util.plugin.VolmitSender; +import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.iris.util.decree.DecreeContextHandler; +import art.arcane.iris.util.plugin.VolmitSender; public class BiomeContextHandler implements DecreeContextHandler { public Class getType() { diff --git a/core/src/main/java/com/volmit/iris/util/decree/context/DimensionContextHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/context/DimensionContextHandler.java similarity index 84% rename from core/src/main/java/com/volmit/iris/util/decree/context/DimensionContextHandler.java rename to core/src/main/java/art/arcane/iris/util/common/decree/context/DimensionContextHandler.java index 1ea77b6d9..f90d11951 100644 --- a/core/src/main/java/com/volmit/iris/util/decree/context/DimensionContextHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/decree/context/DimensionContextHandler.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.decree.context; +package art.arcane.iris.util.decree.context; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.engine.object.IrisDimension; -import com.volmit.iris.util.decree.DecreeContextHandler; -import com.volmit.iris.util.plugin.VolmitSender; +import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.util.decree.DecreeContextHandler; +import art.arcane.iris.util.plugin.VolmitSender; public class DimensionContextHandler implements DecreeContextHandler { public Class getType() { diff --git a/core/src/main/java/com/volmit/iris/util/decree/context/GeneratorContextHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/context/GeneratorContextHandler.java similarity index 83% rename from core/src/main/java/com/volmit/iris/util/decree/context/GeneratorContextHandler.java rename to core/src/main/java/art/arcane/iris/util/common/decree/context/GeneratorContextHandler.java index d6843037d..440409e04 100644 --- a/core/src/main/java/com/volmit/iris/util/decree/context/GeneratorContextHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/decree/context/GeneratorContextHandler.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.decree.context; +package art.arcane.iris.util.decree.context; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisGenerator; -import com.volmit.iris.util.decree.DecreeContextHandler; -import com.volmit.iris.util.plugin.VolmitSender; +import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.object.IrisGenerator; +import art.arcane.iris.util.decree.DecreeContextHandler; +import art.arcane.iris.util.plugin.VolmitSender; public class GeneratorContextHandler implements DecreeContextHandler { @Override diff --git a/core/src/main/java/com/volmit/iris/util/decree/context/RegionContextHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/context/RegionContextHandler.java similarity index 84% rename from core/src/main/java/com/volmit/iris/util/decree/context/RegionContextHandler.java rename to core/src/main/java/art/arcane/iris/util/common/decree/context/RegionContextHandler.java index 5ed09c879..ddef39345 100644 --- a/core/src/main/java/com/volmit/iris/util/decree/context/RegionContextHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/decree/context/RegionContextHandler.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.decree.context; +package art.arcane.iris.util.decree.context; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.engine.object.IrisRegion; -import com.volmit.iris.util.decree.DecreeContextHandler; -import com.volmit.iris.util.plugin.VolmitSender; +import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.util.decree.DecreeContextHandler; +import art.arcane.iris.util.plugin.VolmitSender; public class RegionContextHandler implements DecreeContextHandler { public Class getType() { diff --git a/core/src/main/java/com/volmit/iris/util/decree/context/VectorContextHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/context/VectorContextHandler.java similarity index 85% rename from core/src/main/java/com/volmit/iris/util/decree/context/VectorContextHandler.java rename to core/src/main/java/art/arcane/iris/util/common/decree/context/VectorContextHandler.java index 84247f326..56859a452 100644 --- a/core/src/main/java/com/volmit/iris/util/decree/context/VectorContextHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/decree/context/VectorContextHandler.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.decree.context; +package art.arcane.iris.util.decree.context; -import com.volmit.iris.util.decree.DecreeContextHandler; -import com.volmit.iris.util.plugin.VolmitSender; +import art.arcane.iris.util.decree.DecreeContextHandler; +import art.arcane.iris.util.plugin.VolmitSender; import org.bukkit.util.Vector; public class VectorContextHandler implements DecreeContextHandler { diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/context/WorldContextHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/context/WorldContextHandler.java new file mode 100644 index 000000000..41ef553c9 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/decree/context/WorldContextHandler.java @@ -0,0 +1,18 @@ +package art.arcane.iris.util.decree.context; + +import art.arcane.volmlib.util.decree.context.WorldContextHandlerBase; +import art.arcane.iris.util.decree.DecreeContextHandler; +import art.arcane.iris.util.plugin.VolmitSender; +import org.bukkit.World; + +public class WorldContextHandler extends WorldContextHandlerBase implements DecreeContextHandler { + @Override + protected boolean isPlayer(VolmitSender sender) { + return sender.isPlayer(); + } + + @Override + protected World getWorld(VolmitSender sender) { + return sender.player().getWorld(); + } +} diff --git a/core/src/main/java/com/volmit/iris/util/decree/handlers/BiomeHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/BiomeHandler.java similarity index 86% rename from core/src/main/java/com/volmit/iris/util/decree/handlers/BiomeHandler.java rename to core/src/main/java/art/arcane/iris/util/common/decree/handlers/BiomeHandler.java index 36f78ee16..ec277dda1 100644 --- a/core/src/main/java/com/volmit/iris/util/decree/handlers/BiomeHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/BiomeHandler.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.decree.handlers; +package art.arcane.iris.util.decree.handlers; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.util.decree.specialhandlers.RegistrantHandler; +import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.iris.util.decree.specialhandlers.RegistrantHandler; public class BiomeHandler extends RegistrantHandler { public BiomeHandler() { diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/BlockVectorHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/BlockVectorHandler.java new file mode 100644 index 000000000..fc3cb1213 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/BlockVectorHandler.java @@ -0,0 +1,39 @@ +package art.arcane.iris.util.decree.handlers; + +import art.arcane.iris.util.decree.DecreeContext; +import art.arcane.iris.util.decree.DecreeParameterHandler; +import art.arcane.iris.util.decree.DecreeSystem; +import art.arcane.volmlib.util.decree.handlers.base.BlockVectorHandlerBase; +import art.arcane.volmlib.util.format.Form; +import org.bukkit.FluidCollisionMode; +import org.bukkit.entity.Player; +import org.bukkit.util.BlockVector; + +import java.util.List; + +public class BlockVectorHandler extends BlockVectorHandlerBase implements DecreeParameterHandler { + @Override + protected boolean isSenderPlayer() { + return DecreeContext.get().isPlayer(); + } + + @Override + protected BlockVector getSenderBlockVector() { + return DecreeContext.get().player().getLocation().toVector().toBlockVector(); + } + + @Override + protected BlockVector getLookBlockVector() { + return DecreeContext.get().player().getTargetBlockExact(256, FluidCollisionMode.NEVER).getLocation().toVector().toBlockVector(); + } + + @Override + protected List playerPossibilities(String query) { + return DecreeSystem.getHandler(Player.class).getPossibilities(query); + } + + @Override + protected String format(double value) { + return Form.f(value, 2); + } +} diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/BooleanHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/BooleanHandler.java new file mode 100644 index 000000000..db47fe4ea --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/BooleanHandler.java @@ -0,0 +1,7 @@ +package art.arcane.iris.util.decree.handlers; + +import art.arcane.volmlib.util.decree.handlers.base.BooleanHandlerBase; +import art.arcane.iris.util.decree.DecreeParameterHandler; + +public class BooleanHandler extends BooleanHandlerBase implements DecreeParameterHandler { +} diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/ByteHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/ByteHandler.java new file mode 100644 index 000000000..b396a2617 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/ByteHandler.java @@ -0,0 +1,7 @@ +package art.arcane.iris.util.decree.handlers; + +import art.arcane.volmlib.util.decree.handlers.base.ByteHandlerBase; +import art.arcane.iris.util.decree.DecreeParameterHandler; + +public class ByteHandler extends ByteHandlerBase implements DecreeParameterHandler { +} diff --git a/core/src/main/java/com/volmit/iris/util/decree/handlers/CaveHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/CaveHandler.java similarity index 86% rename from core/src/main/java/com/volmit/iris/util/decree/handlers/CaveHandler.java rename to core/src/main/java/art/arcane/iris/util/common/decree/handlers/CaveHandler.java index bd14aab68..ae217fa89 100644 --- a/core/src/main/java/com/volmit/iris/util/decree/handlers/CaveHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/CaveHandler.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.decree.handlers; +package art.arcane.iris.util.decree.handlers; -import com.volmit.iris.engine.object.IrisCave; -import com.volmit.iris.util.decree.specialhandlers.RegistrantHandler; +import art.arcane.iris.engine.object.IrisCave; +import art.arcane.iris.util.decree.specialhandlers.RegistrantHandler; public class CaveHandler extends RegistrantHandler { public CaveHandler() { diff --git a/core/src/main/java/com/volmit/iris/util/decree/handlers/DataVersionHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/DataVersionHandler.java similarity index 76% rename from core/src/main/java/com/volmit/iris/util/decree/handlers/DataVersionHandler.java rename to core/src/main/java/art/arcane/iris/util/common/decree/handlers/DataVersionHandler.java index 53dff488e..3fd03a9f8 100644 --- a/core/src/main/java/com/volmit/iris/util/decree/handlers/DataVersionHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/DataVersionHandler.java @@ -1,9 +1,9 @@ -package com.volmit.iris.util.decree.handlers; +package art.arcane.iris.util.decree.handlers; -import com.volmit.iris.core.nms.datapack.DataVersion; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.decree.DecreeParameterHandler; -import com.volmit.iris.util.decree.exceptions.DecreeParsingException; +import art.arcane.iris.core.nms.datapack.DataVersion; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.iris.util.decree.DecreeParameterHandler; +import art.arcane.volmlib.util.decree.exceptions.DecreeParsingException; public class DataVersionHandler implements DecreeParameterHandler { @Override diff --git a/core/src/main/java/com/volmit/iris/util/decree/handlers/DimensionHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/DimensionHandler.java similarity index 82% rename from core/src/main/java/com/volmit/iris/util/decree/handlers/DimensionHandler.java rename to core/src/main/java/art/arcane/iris/util/common/decree/handlers/DimensionHandler.java index d8eeb998c..9d3d2b8bc 100644 --- a/core/src/main/java/com/volmit/iris/util/decree/handlers/DimensionHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/DimensionHandler.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.decree.handlers; +package art.arcane.iris.util.decree.handlers; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.engine.object.IrisDimension; -import com.volmit.iris.util.decree.exceptions.DecreeParsingException; -import com.volmit.iris.util.decree.specialhandlers.RegistrantHandler; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.volmlib.util.decree.exceptions.DecreeParsingException; +import art.arcane.iris.util.decree.specialhandlers.RegistrantHandler; public class DimensionHandler extends RegistrantHandler { public DimensionHandler() { diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/DoubleHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/DoubleHandler.java new file mode 100644 index 000000000..c3581172a --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/DoubleHandler.java @@ -0,0 +1,7 @@ +package art.arcane.iris.util.decree.handlers; + +import art.arcane.volmlib.util.decree.handlers.base.DoubleHandlerBase; +import art.arcane.iris.util.decree.DecreeParameterHandler; + +public class DoubleHandler extends DoubleHandlerBase implements DecreeParameterHandler { +} diff --git a/core/src/main/java/com/volmit/iris/util/decree/handlers/EntityHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/EntityHandler.java similarity index 86% rename from core/src/main/java/com/volmit/iris/util/decree/handlers/EntityHandler.java rename to core/src/main/java/art/arcane/iris/util/common/decree/handlers/EntityHandler.java index 3cf4b4e08..7b4e1b88f 100644 --- a/core/src/main/java/com/volmit/iris/util/decree/handlers/EntityHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/EntityHandler.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.decree.handlers; +package art.arcane.iris.util.decree.handlers; -import com.volmit.iris.engine.object.IrisEntity; -import com.volmit.iris.util.decree.specialhandlers.RegistrantHandler; +import art.arcane.iris.engine.object.IrisEntity; +import art.arcane.iris.util.decree.specialhandlers.RegistrantHandler; public class EntityHandler extends RegistrantHandler { diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/FloatHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/FloatHandler.java new file mode 100644 index 000000000..23b57eb2c --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/FloatHandler.java @@ -0,0 +1,7 @@ +package art.arcane.iris.util.decree.handlers; + +import art.arcane.volmlib.util.decree.handlers.base.FloatHandlerBase; +import art.arcane.iris.util.decree.DecreeParameterHandler; + +public class FloatHandler extends FloatHandlerBase implements DecreeParameterHandler { +} diff --git a/core/src/main/java/com/volmit/iris/util/decree/handlers/GeneratorHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/GeneratorHandler.java similarity index 86% rename from core/src/main/java/com/volmit/iris/util/decree/handlers/GeneratorHandler.java rename to core/src/main/java/art/arcane/iris/util/common/decree/handlers/GeneratorHandler.java index 8b1baf0ae..19fa0b8a8 100644 --- a/core/src/main/java/com/volmit/iris/util/decree/handlers/GeneratorHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/GeneratorHandler.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.decree.handlers; +package art.arcane.iris.util.decree.handlers; -import com.volmit.iris.engine.object.IrisGenerator; -import com.volmit.iris.util.decree.specialhandlers.RegistrantHandler; +import art.arcane.iris.engine.object.IrisGenerator; +import art.arcane.iris.util.decree.specialhandlers.RegistrantHandler; public class GeneratorHandler extends RegistrantHandler { public GeneratorHandler() { diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/IntegerHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/IntegerHandler.java new file mode 100644 index 000000000..91e8bc92b --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/IntegerHandler.java @@ -0,0 +1,7 @@ +package art.arcane.iris.util.decree.handlers; + +import art.arcane.volmlib.util.decree.handlers.base.IntegerHandlerBase; +import art.arcane.iris.util.decree.DecreeParameterHandler; + +public class IntegerHandler extends IntegerHandlerBase implements DecreeParameterHandler { +} diff --git a/core/src/main/java/com/volmit/iris/util/decree/handlers/JigsawPieceHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/JigsawPieceHandler.java similarity index 86% rename from core/src/main/java/com/volmit/iris/util/decree/handlers/JigsawPieceHandler.java rename to core/src/main/java/art/arcane/iris/util/common/decree/handlers/JigsawPieceHandler.java index 3199d3039..e49e3d772 100644 --- a/core/src/main/java/com/volmit/iris/util/decree/handlers/JigsawPieceHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/JigsawPieceHandler.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.decree.handlers; +package art.arcane.iris.util.decree.handlers; -import com.volmit.iris.engine.object.IrisJigsawPiece; -import com.volmit.iris.util.decree.specialhandlers.RegistrantHandler; +import art.arcane.iris.engine.object.IrisJigsawPiece; +import art.arcane.iris.util.decree.specialhandlers.RegistrantHandler; public class JigsawPieceHandler extends RegistrantHandler { public JigsawPieceHandler() { diff --git a/core/src/main/java/com/volmit/iris/util/decree/handlers/JigsawPoolHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/JigsawPoolHandler.java similarity index 86% rename from core/src/main/java/com/volmit/iris/util/decree/handlers/JigsawPoolHandler.java rename to core/src/main/java/art/arcane/iris/util/common/decree/handlers/JigsawPoolHandler.java index 83a14ab4c..46181e1c6 100644 --- a/core/src/main/java/com/volmit/iris/util/decree/handlers/JigsawPoolHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/JigsawPoolHandler.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.decree.handlers; +package art.arcane.iris.util.decree.handlers; -import com.volmit.iris.engine.object.IrisJigsawPool; -import com.volmit.iris.util.decree.specialhandlers.RegistrantHandler; +import art.arcane.iris.engine.object.IrisJigsawPool; +import art.arcane.iris.util.decree.specialhandlers.RegistrantHandler; public class JigsawPoolHandler extends RegistrantHandler { public JigsawPoolHandler() { diff --git a/core/src/main/java/com/volmit/iris/util/decree/handlers/JigsawStructureHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/JigsawStructureHandler.java similarity index 86% rename from core/src/main/java/com/volmit/iris/util/decree/handlers/JigsawStructureHandler.java rename to core/src/main/java/art/arcane/iris/util/common/decree/handlers/JigsawStructureHandler.java index b7d6e35cd..8e1b8bf0f 100644 --- a/core/src/main/java/com/volmit/iris/util/decree/handlers/JigsawStructureHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/JigsawStructureHandler.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.decree.handlers; +package art.arcane.iris.util.decree.handlers; -import com.volmit.iris.engine.object.IrisJigsawStructure; -import com.volmit.iris.util.decree.specialhandlers.RegistrantHandler; +import art.arcane.iris.engine.object.IrisJigsawStructure; +import art.arcane.iris.util.decree.specialhandlers.RegistrantHandler; public class JigsawStructureHandler extends RegistrantHandler { public JigsawStructureHandler() { diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/LongHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/LongHandler.java new file mode 100644 index 000000000..e980204fb --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/LongHandler.java @@ -0,0 +1,7 @@ +package art.arcane.iris.util.decree.handlers; + +import art.arcane.volmlib.util.decree.handlers.base.LongHandlerBase; +import art.arcane.iris.util.decree.DecreeParameterHandler; + +public class LongHandler extends LongHandlerBase implements DecreeParameterHandler { +} diff --git a/core/src/main/java/com/volmit/iris/util/board/BoardProvider.java b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/PlayerHandler.java similarity index 73% rename from core/src/main/java/com/volmit/iris/util/board/BoardProvider.java rename to core/src/main/java/art/arcane/iris/util/common/decree/handlers/PlayerHandler.java index 5b13bbc86..4cb3efef4 100644 --- a/core/src/main/java/com/volmit/iris/util/board/BoardProvider.java +++ b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/PlayerHandler.java @@ -16,17 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.board; +package art.arcane.iris.util.decree.handlers; +import art.arcane.volmlib.util.decree.handlers.base.BukkitPlayerHandlerBase; +import art.arcane.iris.util.decree.DecreeParameterHandler; import org.bukkit.entity.Player; -import java.util.List; - - -public interface BoardProvider { - - String getTitle(Player player); - - - List getLines(Player player); +public class PlayerHandler extends BukkitPlayerHandlerBase implements DecreeParameterHandler { } diff --git a/core/src/main/java/com/volmit/iris/util/decree/handlers/RegionHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/RegionHandler.java similarity index 86% rename from core/src/main/java/com/volmit/iris/util/decree/handlers/RegionHandler.java rename to core/src/main/java/art/arcane/iris/util/common/decree/handlers/RegionHandler.java index 5b47af457..0bb3b39d1 100644 --- a/core/src/main/java/com/volmit/iris/util/decree/handlers/RegionHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/RegionHandler.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.decree.handlers; +package art.arcane.iris.util.decree.handlers; -import com.volmit.iris.engine.object.IrisRegion; -import com.volmit.iris.util.decree.specialhandlers.RegistrantHandler; +import art.arcane.iris.engine.object.IrisRegion; +import art.arcane.iris.util.decree.specialhandlers.RegistrantHandler; public class RegionHandler extends RegistrantHandler { public RegionHandler() { diff --git a/core/src/main/java/com/volmit/iris/util/decree/handlers/ScriptHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/ScriptHandler.java similarity index 86% rename from core/src/main/java/com/volmit/iris/util/decree/handlers/ScriptHandler.java rename to core/src/main/java/art/arcane/iris/util/common/decree/handlers/ScriptHandler.java index f5eaf01a4..ac9d1d9da 100644 --- a/core/src/main/java/com/volmit/iris/util/decree/handlers/ScriptHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/ScriptHandler.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.decree.handlers; +package art.arcane.iris.util.decree.handlers; -import com.volmit.iris.engine.object.IrisScript; -import com.volmit.iris.util.decree.specialhandlers.RegistrantHandler; +import art.arcane.iris.engine.object.IrisScript; +import art.arcane.iris.util.decree.specialhandlers.RegistrantHandler; public class ScriptHandler extends RegistrantHandler { public ScriptHandler() { diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/ShortHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/ShortHandler.java new file mode 100644 index 000000000..508120542 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/ShortHandler.java @@ -0,0 +1,7 @@ +package art.arcane.iris.util.decree.handlers; + +import art.arcane.volmlib.util.decree.handlers.base.ShortHandlerBase; +import art.arcane.iris.util.decree.DecreeParameterHandler; + +public class ShortHandler extends ShortHandlerBase implements DecreeParameterHandler { +} diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/StringHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/StringHandler.java new file mode 100644 index 000000000..cd3a9f441 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/StringHandler.java @@ -0,0 +1,7 @@ +package art.arcane.iris.util.decree.handlers; + +import art.arcane.volmlib.util.decree.handlers.StringHandlerBase; +import art.arcane.iris.util.decree.DecreeParameterHandler; + +public class StringHandler extends StringHandlerBase implements DecreeParameterHandler { +} diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/VectorHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/VectorHandler.java new file mode 100644 index 000000000..c70b3fa15 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/VectorHandler.java @@ -0,0 +1,39 @@ +package art.arcane.iris.util.decree.handlers; + +import art.arcane.iris.util.decree.DecreeContext; +import art.arcane.iris.util.decree.DecreeParameterHandler; +import art.arcane.iris.util.decree.DecreeSystem; +import art.arcane.volmlib.util.decree.handlers.base.VectorHandlerBase; +import art.arcane.volmlib.util.format.Form; +import org.bukkit.FluidCollisionMode; +import org.bukkit.entity.Player; +import org.bukkit.util.Vector; + +import java.util.List; + +public class VectorHandler extends VectorHandlerBase implements DecreeParameterHandler { + @Override + protected boolean isSenderPlayer() { + return DecreeContext.get().isPlayer(); + } + + @Override + protected Vector getSenderVector() { + return DecreeContext.get().player().getLocation().toVector(); + } + + @Override + protected Vector getLookVector() { + return DecreeContext.get().player().getTargetBlockExact(256, FluidCollisionMode.NEVER).getLocation().toVector(); + } + + @Override + protected List playerPossibilities(String query) { + return DecreeSystem.getHandler(Player.class).getPossibilities(query); + } + + @Override + protected String format(double value) { + return Form.f(value, 2); + } +} diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/WorldHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/WorldHandler.java new file mode 100644 index 000000000..9eabf70cb --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/decree/handlers/WorldHandler.java @@ -0,0 +1,12 @@ +package art.arcane.iris.util.decree.handlers; + +import art.arcane.volmlib.util.decree.handlers.base.WorldHandlerBase; +import art.arcane.iris.util.decree.DecreeParameterHandler; +import org.bukkit.World; + +public class WorldHandler extends WorldHandlerBase implements DecreeParameterHandler { + @Override + protected String excludedPrefix() { + return "iris/"; + } +} diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/DummyHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/DummyHandler.java new file mode 100644 index 000000000..297f32295 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/DummyHandler.java @@ -0,0 +1,7 @@ +package art.arcane.iris.util.decree.specialhandlers; + +import art.arcane.volmlib.util.decree.handlers.base.DummyHandlerBase; +import art.arcane.iris.util.decree.DecreeParameterHandler; + +public class DummyHandler extends DummyHandlerBase implements DecreeParameterHandler { +} diff --git a/core/src/main/java/com/volmit/iris/util/decree/specialhandlers/NullableDimensionHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/NullableDimensionHandler.java similarity index 85% rename from core/src/main/java/com/volmit/iris/util/decree/specialhandlers/NullableDimensionHandler.java rename to core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/NullableDimensionHandler.java index c8278558b..f69a4fbc4 100644 --- a/core/src/main/java/com/volmit/iris/util/decree/specialhandlers/NullableDimensionHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/NullableDimensionHandler.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.decree.specialhandlers; +package art.arcane.iris.util.decree.specialhandlers; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.engine.object.IrisDimension; -import com.volmit.iris.util.decree.exceptions.DecreeParsingException; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.volmlib.util.decree.exceptions.DecreeParsingException; public class NullableDimensionHandler extends RegistrantHandler { public NullableDimensionHandler() { diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/NullablePlayerHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/NullablePlayerHandler.java new file mode 100644 index 000000000..06fc36abd --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/NullablePlayerHandler.java @@ -0,0 +1,14 @@ +package art.arcane.iris.util.decree.specialhandlers; + +import art.arcane.volmlib.util.decree.handlers.base.NullablePlayerHandlerBase; +import art.arcane.volmlib.util.decree.exceptions.DecreeParsingException; +import art.arcane.iris.util.decree.DecreeParameterHandler; +import art.arcane.iris.util.decree.handlers.PlayerHandler; +import org.bukkit.entity.Player; + +public class NullablePlayerHandler extends PlayerHandler implements DecreeParameterHandler { + @Override + public Player parse(String in, boolean force) throws DecreeParsingException { + return NullablePlayerHandlerBase.parseNullable(this, in); + } +} diff --git a/core/src/main/java/com/volmit/iris/util/decree/specialhandlers/ObjectHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/ObjectHandler.java similarity index 88% rename from core/src/main/java/com/volmit/iris/util/decree/specialhandlers/ObjectHandler.java rename to core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/ObjectHandler.java index 84d3dceb0..00026cc0a 100644 --- a/core/src/main/java/com/volmit/iris/util/decree/specialhandlers/ObjectHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/ObjectHandler.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.decree.specialhandlers; +package art.arcane.iris.util.decree.specialhandlers; -import com.volmit.iris.Iris; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.decree.DecreeParameterHandler; -import com.volmit.iris.util.decree.exceptions.DecreeParsingException; +import art.arcane.iris.Iris; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.iris.util.decree.DecreeParameterHandler; +import art.arcane.volmlib.util.decree.exceptions.DecreeParsingException; import java.io.File; import java.util.stream.Collectors; diff --git a/core/src/main/java/com/volmit/iris/util/decree/specialhandlers/RegistrantHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/RegistrantHandler.java similarity index 85% rename from core/src/main/java/com/volmit/iris/util/decree/specialhandlers/RegistrantHandler.java rename to core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/RegistrantHandler.java index 090407bba..80bbe48ba 100644 --- a/core/src/main/java/com/volmit/iris/util/decree/specialhandlers/RegistrantHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/RegistrantHandler.java @@ -1,11 +1,11 @@ -package com.volmit.iris.util.decree.specialhandlers; +package art.arcane.iris.util.decree.specialhandlers; -import com.volmit.iris.Iris; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.loader.IrisRegistrant; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.decree.DecreeParameterHandler; -import com.volmit.iris.util.decree.exceptions.DecreeParsingException; +import art.arcane.iris.Iris; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.core.loader.IrisRegistrant; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.iris.util.decree.DecreeParameterHandler; +import art.arcane.volmlib.util.decree.exceptions.DecreeParsingException; import java.io.File; import java.util.HashSet; diff --git a/core/src/main/java/com/volmit/iris/util/decree/virtual/VirtualDecreeCommand.java b/core/src/main/java/art/arcane/iris/util/common/decree/virtual/VirtualDecreeCommand.java similarity index 96% rename from core/src/main/java/com/volmit/iris/util/decree/virtual/VirtualDecreeCommand.java rename to core/src/main/java/art/arcane/iris/util/common/decree/virtual/VirtualDecreeCommand.java index 4bd5e9168..133f1d370 100644 --- a/core/src/main/java/com/volmit/iris/util/decree/virtual/VirtualDecreeCommand.java +++ b/core/src/main/java/art/arcane/iris/util/common/decree/virtual/VirtualDecreeCommand.java @@ -16,22 +16,23 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.decree.virtual; +package art.arcane.iris.util.decree.virtual; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.decree.*; -import com.volmit.iris.util.decree.annotations.Decree; -import com.volmit.iris.util.decree.exceptions.DecreeParsingException; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.plugin.CommandDummy; -import com.volmit.iris.util.plugin.VolmitSender; -import com.volmit.iris.util.scheduling.ChronoLatch; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +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.decree.*; +import art.arcane.volmlib.util.decree.DecreeOrigin; +import art.arcane.volmlib.util.decree.annotations.Decree; +import art.arcane.volmlib.util.decree.exceptions.DecreeParsingException; +import art.arcane.iris.util.format.C; +import art.arcane.volmlib.util.format.Form; +import art.arcane.iris.util.plugin.CommandDummy; +import art.arcane.iris.util.plugin.VolmitSender; +import art.arcane.volmlib.util.scheduling.ChronoLatch; +import art.arcane.iris.util.scheduling.J; import lombok.Data; import java.lang.reflect.Field; @@ -379,7 +380,7 @@ public class VirtualDecreeCommand { } DecreeOrigin origin = type.getDeclaredAnnotation(Decree.class).origin(); - if (!origin.validFor(sender)) { + if (!origin.validFor(sender.isPlayer())) { sender.sendMessage(C.RED + "This command has to be sent from another origin: " + C.GOLD + origin); return false; } diff --git a/core/src/main/java/com/volmit/iris/util/format/C.java b/core/src/main/java/art/arcane/iris/util/common/format/C.java similarity index 99% rename from core/src/main/java/com/volmit/iris/util/format/C.java rename to core/src/main/java/art/arcane/iris/util/common/format/C.java index c33d52032..90e1b3c35 100644 --- a/core/src/main/java/com/volmit/iris/util/format/C.java +++ b/core/src/main/java/art/arcane/iris/util/common/format/C.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.format; +package art.arcane.iris.util.format; -import com.volmit.iris.Iris; -import com.volmit.iris.util.plugin.VolmitSender; +import art.arcane.iris.Iris; +import art.arcane.iris.util.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/util/common/inventorygui/ElementEvent.java b/core/src/main/java/art/arcane/iris/util/common/inventorygui/ElementEvent.java new file mode 100644 index 000000000..1ff19c4f5 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/inventorygui/ElementEvent.java @@ -0,0 +1,18 @@ +package art.arcane.iris.util.inventorygui; + +public enum ElementEvent { + LEFT, + RIGHT, + SHIFT_LEFT, + SHIFT_RIGHT, + DRAG_INTO, + OTHER_DRAG_INTO; + + public art.arcane.volmlib.util.inventorygui.ElementEvent toShared() { + return art.arcane.volmlib.util.inventorygui.ElementEvent.valueOf(name()); + } + + public static ElementEvent fromShared(art.arcane.volmlib.util.inventorygui.ElementEvent event) { + return valueOf(event.name()); + } +} diff --git a/core/src/main/java/com/volmit/iris/util/inventorygui/UIStaticDecorator.java b/core/src/main/java/art/arcane/iris/util/common/inventorygui/UIStaticDecorator.java similarity index 68% rename from core/src/main/java/com/volmit/iris/util/inventorygui/UIStaticDecorator.java rename to core/src/main/java/art/arcane/iris/util/common/inventorygui/UIStaticDecorator.java index 8f10c8db3..40f4183d7 100644 --- a/core/src/main/java/com/volmit/iris/util/inventorygui/UIStaticDecorator.java +++ b/core/src/main/java/art/arcane/iris/util/common/inventorygui/UIStaticDecorator.java @@ -16,9 +16,13 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.inventorygui; +package art.arcane.iris.util.inventorygui; -import com.volmit.iris.util.data.MaterialBlock; +import art.arcane.volmlib.util.inventorygui.WindowDecorator; + +import art.arcane.volmlib.util.inventorygui.Element; + +import art.arcane.volmlib.util.data.MaterialBlock; import org.bukkit.Material; @SuppressWarnings("ClassCanBeRecord") @@ -26,11 +30,11 @@ public class UIStaticDecorator implements WindowDecorator { private final Element element; public UIStaticDecorator(Element element) { - this.element = element == null ? new UIElement("bg").setMaterial(new MaterialBlock(Material.AIR)) : element; + this.element = element == null ? new art.arcane.volmlib.util.inventorygui.UIElement("bg").setMaterial(new MaterialBlock(Material.AIR)) : element; } @Override - public Element onDecorateBackground(Window window, int position, int row) { + public Element onDecorateBackground(art.arcane.volmlib.util.inventorygui.Window window, int position, int row) { return element; } } diff --git a/core/src/main/java/com/volmit/iris/util/inventorygui/UIVoidDecorator.java b/core/src/main/java/art/arcane/iris/util/common/inventorygui/UIVoidDecorator.java similarity index 76% rename from core/src/main/java/com/volmit/iris/util/inventorygui/UIVoidDecorator.java rename to core/src/main/java/art/arcane/iris/util/common/inventorygui/UIVoidDecorator.java index 62d5ed317..892d0efc5 100644 --- a/core/src/main/java/com/volmit/iris/util/inventorygui/UIVoidDecorator.java +++ b/core/src/main/java/art/arcane/iris/util/common/inventorygui/UIVoidDecorator.java @@ -16,12 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.inventorygui; +package art.arcane.iris.util.inventorygui; + +import art.arcane.volmlib.util.inventorygui.WindowDecorator; + +import art.arcane.volmlib.util.inventorygui.Element; public class UIVoidDecorator implements WindowDecorator { @Override - public Element onDecorateBackground(Window window, int position, int row) { + public Element onDecorateBackground(art.arcane.volmlib.util.inventorygui.Window window, int position, int row) { return null; } } - diff --git a/core/src/main/java/com/volmit/iris/util/inventorygui/Window.java b/core/src/main/java/art/arcane/iris/util/common/inventorygui/Window.java similarity index 55% rename from core/src/main/java/com/volmit/iris/util/inventorygui/Window.java rename to core/src/main/java/art/arcane/iris/util/common/inventorygui/Window.java index e2ee91ac6..00e3b510c 100644 --- a/core/src/main/java/com/volmit/iris/util/inventorygui/Window.java +++ b/core/src/main/java/art/arcane/iris/util/common/inventorygui/Window.java @@ -1,24 +1,9 @@ -/* - * 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.inventorygui; -package com.volmit.iris.util.inventorygui; +import art.arcane.volmlib.util.inventorygui.WindowDecorator; + +import art.arcane.volmlib.util.inventorygui.Element; -import com.volmit.iris.util.scheduling.Callback; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; @@ -27,9 +12,17 @@ public interface Window { Window setDecorator(WindowDecorator decorator); - WindowResolution getResolution(); + art.arcane.volmlib.util.inventorygui.WindowResolution getResolution(); - Window setResolution(WindowResolution resolution); + Window setResolution(art.arcane.volmlib.util.inventorygui.WindowResolution resolution); + + default Window setResolution(WindowResolution resolution) { + return setResolution(resolution.toShared()); + } + + default WindowResolution getLocalResolution() { + return WindowResolution.fromShared(getResolution()); + } Window clearElements(); @@ -87,5 +80,5 @@ public interface Window { Window reopen(); - Window onClosed(Callback window); + Window onClosed(art.arcane.volmlib.util.scheduling.Callback window); } diff --git a/core/src/main/java/art/arcane/iris/util/common/inventorygui/WindowResolution.java b/core/src/main/java/art/arcane/iris/util/common/inventorygui/WindowResolution.java new file mode 100644 index 000000000..2dde25017 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/inventorygui/WindowResolution.java @@ -0,0 +1,43 @@ +package art.arcane.iris.util.inventorygui; + +import org.bukkit.event.inventory.InventoryType; + +public enum WindowResolution { + W9_H6(9, 6, InventoryType.CHEST), + W5_H1(5, 1, InventoryType.HOPPER), + W3_H3(3, 3, InventoryType.DROPPER); + + private final int width; + private final int maxHeight; + private final InventoryType type; + + WindowResolution(int w, int h, InventoryType type) { + this.width = w; + this.maxHeight = h; + this.type = type; + } + + public int getMaxWidthOffset() { + return (getWidth() - 1) / 2; + } + + public int getWidth() { + return width; + } + + public int getMaxHeight() { + return maxHeight; + } + + public InventoryType getType() { + return type; + } + + public art.arcane.volmlib.util.inventorygui.WindowResolution toShared() { + return art.arcane.volmlib.util.inventorygui.WindowResolution.valueOf(name()); + } + + public static WindowResolution fromShared(art.arcane.volmlib.util.inventorygui.WindowResolution resolution) { + return valueOf(resolution.name()); + } +} diff --git a/core/src/main/java/com/volmit/iris/util/io/ReactiveFolder.java b/core/src/main/java/art/arcane/iris/util/common/io/ReactiveFolder.java similarity index 94% rename from core/src/main/java/com/volmit/iris/util/io/ReactiveFolder.java rename to core/src/main/java/art/arcane/iris/util/common/io/ReactiveFolder.java index 5bf0d6eb6..43eb1ab81 100644 --- a/core/src/main/java/com/volmit/iris/util/io/ReactiveFolder.java +++ b/core/src/main/java/art/arcane/iris/util/common/io/ReactiveFolder.java @@ -16,10 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.io; +package art.arcane.iris.util.io; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.function.Consumer3; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.function.Consumer3; +import art.arcane.volmlib.util.io.FolderWatcher; import java.io.File; diff --git a/core/src/main/java/art/arcane/iris/util/common/mantle/Mantle.java b/core/src/main/java/art/arcane/iris/util/common/mantle/Mantle.java new file mode 100644 index 000000000..00403096f --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/mantle/Mantle.java @@ -0,0 +1,162 @@ +/* + * 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.mantle; + +import art.arcane.volmlib.util.documentation.BlockCoordinates; +import art.arcane.volmlib.util.documentation.ChunkCoordinates; +import art.arcane.volmlib.util.function.Consumer4; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.mantle.EngineMantle; +import art.arcane.iris.engine.mantle.MantleWriter; +import art.arcane.volmlib.util.format.Form; +import art.arcane.volmlib.util.io.IO; +import art.arcane.iris.util.mantle.io.IOWorker; +import art.arcane.iris.util.matter.Matter; +import art.arcane.iris.util.matter.MatterSlice; +import art.arcane.iris.util.parallel.HyperLock; +import art.arcane.iris.util.parallel.MultiBurst; + +import java.io.File; +import java.io.IOException; + +/** + * Iris adapter over shared mantle runtime. + */ +public class Mantle extends art.arcane.volmlib.util.mantle.Mantle { + private static final int LOCK_SIZE = Short.MAX_VALUE; + + @BlockCoordinates + public Mantle(File dataFolder, int worldHeight) { + super(dataFolder, worldHeight, LOCK_SIZE, new HyperLock(), MultiBurst.ioBurst, new IOWorkerRegionIO(dataFolder, worldHeight)); + } + + @ChunkCoordinates + public MantleWriter write(EngineMantle engineMantle, int x, int z, int radius, boolean multicore) { + return new MantleWriter(engineMantle, this, x, z, radius, multicore); + } + + @Override + protected TectonicPlate createRegion(int x, int z) { + return new TectonicPlate(getWorldHeight(), x, z); + } + + @Override + protected void setChunkValue(MantleChunk chunk, int x, int y, int z, T value) { + Matter matter = chunk.getOrCreate(y >> 4); + matter.slice(matter.getClass(value)).set(x & 15, y & 15, z & 15, value); + } + + @Override + protected void removeChunkValue(MantleChunk chunk, int x, int y, int z, Class type) { + Matter matter = chunk.getOrCreate(y >> 4); + matter.slice(type).set(x & 15, y & 15, z & 15, null); + } + + @Override + @SuppressWarnings("unchecked") + protected T getChunkValue(MantleChunk chunk, int x, int y, int z, Class type) { + return (T) chunk.getOrCreate(y >> 4) + .slice(type) + .get(x & 15, y & 15, z & 15); + } + + @Override + protected void iterateChunkValues(MantleChunk chunk, Class type, Consumer4 iterator) { + chunk.iterate(type, iterator); + } + + @Override + protected void deleteChunkSlice(MantleChunk chunk, Class type) { + chunk.deleteSlices(type); + } + + @Override + protected boolean shouldRetainSlice(Class sliceType) { + return IrisToolbelt.isRetainingMantleDataForSlice(sliceType.getCanonicalName()); + } + + @Override + protected String formatDuration(double millis) { + return Form.duration(millis, 0); + } + + @Override + protected void onDebug(String message) { + Iris.debug(message); + } + + @Override + protected void onWarn(String message) { + Iris.warn(message); + } + + @Override + protected void onError(Throwable throwable) { + Iris.reportError(throwable); + } + + @Override + protected void deleteTemporaryFiles() { + IO.delete(new File(getDataFolder(), ".tmp")); + } + + public void set(int x, int y, int z, Matter matter) { + for (MatterSlice slice : matter.getSliceMap().values()) { + slice.iterate((mx, my, mz, v) -> set(mx + x, my + y, mz + z, v)); + } + } + + public void set(int x, int y, int z, MatterSlice slice) { + if (slice.isEmpty()) { + return; + } + + slice.iterateSync((xx, yy, zz, t) -> set(x + xx, y + yy, z + zz, t)); + } + + public boolean shouldReduce(Engine engine) { + return !engine.isStudio() || IrisSettings.get().getPerformance().isTrimMantleInStudio(); + } + + private static final class IOWorkerRegionIO implements RegionIO { + private final IOWorker worker; + + private IOWorkerRegionIO(File root, int worldHeight) { + this.worker = new IOWorker(root, worldHeight); + } + + @Override + public TectonicPlate read(String name) throws IOException { + return worker.read(name); + } + + @Override + public void write(String name, TectonicPlate region) throws IOException { + worker.write(name, region); + } + + @Override + public void close() throws IOException { + worker.close(); + } + } +} diff --git a/core/src/main/java/art/arcane/iris/util/common/mantle/MantleChunk.java b/core/src/main/java/art/arcane/iris/util/common/mantle/MantleChunk.java new file mode 100644 index 000000000..5060d572a --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/mantle/MantleChunk.java @@ -0,0 +1,140 @@ +/* + * 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.mantle; + +import art.arcane.volmlib.util.documentation.ChunkCoordinates; +import art.arcane.volmlib.util.documentation.ChunkRelativeBlockCoordinates; +import art.arcane.volmlib.util.function.Consumer4; +import art.arcane.volmlib.util.io.CountingDataInputStream; +import art.arcane.iris.Iris; +import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.iris.util.matter.IrisMatter; +import art.arcane.iris.util.matter.Matter; +import art.arcane.iris.util.matter.MatterSlice; +import org.jetbrains.annotations.Nullable; + +import java.io.DataOutputStream; +import java.io.IOException; + +/** + * Represents a mantle chunk. Mantle chunks contain sections of matter (see matter api) + * Mantle Chunks are fully atomic & thread safe + */ +public class MantleChunk extends art.arcane.volmlib.util.mantle.MantleChunk { + @ChunkCoordinates + public MantleChunk(int sectionHeight, int x, int z) { + super(sectionHeight, x, z); + } + + public MantleChunk(int version, int sectionHeight, CountingDataInputStream din) throws IOException { + super(version, sectionHeight, din); + } + + @Override + protected void onBeforeReadSection(int index) { + Iris.addPanic("read.section", "Section[" + index + "]"); + } + + @Override + protected void onReadSectionFailure(int index, long start, long end, CountingDataInputStream din, IOException e) { + Iris.error("Failed to read chunk section, skipping it."); + Iris.addPanic("read.byte.range", start + " " + end); + Iris.addPanic("read.byte.current", din.count() + ""); + Iris.reportError(e); + e.printStackTrace(); + Iris.panic(); + TectonicPlate.addError(); + } + + @Override + protected Matter createSection() { + return new IrisMatter(16, 16, 16); + } + + @Override + protected Matter readSection(CountingDataInputStream din) throws IOException { + return Matter.readDin(din); + } + + @Override + protected void writeSection(Matter section, DataOutputStream dos) throws IOException { + section.writeDos(dos); + } + + @Override + protected void trimSection(Matter section) { + section.trimSlices(); + } + + @Override + protected boolean isSectionEmpty(Matter section) { + return section.getSliceMap().isEmpty(); + } + + @Override + public MantleChunk use() { + super.use(); + return this; + } + + public void copyFrom(MantleChunk chunk) { + super.copyFrom(chunk); + } + + @Nullable + @ChunkRelativeBlockCoordinates + @SuppressWarnings("unchecked") + public T get(int x, int y, int z, Class type) { + return (T) getOrCreate(y >> 4) + .slice(type) + .get(x & 15, y & 15, z & 15); + } + + public void iterate(Class type, Consumer4 iterator) { + for (int i = 0; i < sectionCount(); i++) { + int bs = (i << 4); + Matter matter = get(i); + + if (matter != null) { + MatterSlice t = matter.getSlice(type); + + if (t != null) { + t.iterateSync((a, b, c, f) -> iterator.accept(a, b + bs, c, f)); + } + } + } + } + + public void deleteSlices(Class c) { + if (IrisToolbelt.isRetainingMantleDataForSlice(c.getCanonicalName())) { + return; + } + + for (int i = 0; i < sectionCount(); i++) { + Matter m = get(i); + if (m != null && m.hasSlice(c)) { + m.deleteSlice(c); + } + } + } + + public void trimSlices() { + trimSections(); + } +} diff --git a/core/src/main/java/art/arcane/iris/util/common/mantle/TectonicPlate.java b/core/src/main/java/art/arcane/iris/util/common/mantle/TectonicPlate.java new file mode 100644 index 000000000..d2b3420fd --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/mantle/TectonicPlate.java @@ -0,0 +1,96 @@ +/* + * 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.mantle; + +import art.arcane.volmlib.util.io.CountingDataInputStream; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.EnginePanic; + +import java.io.DataOutputStream; +import java.io.IOException; + +/** + * Tectonic Plates are essentially representations of regions in minecraft. + * Tectonic Plates are fully atomic & thread safe + */ +public class TectonicPlate extends art.arcane.volmlib.util.mantle.TectonicPlate { + public static final int MISSING = art.arcane.volmlib.util.mantle.TectonicPlate.MISSING; + public static final int CURRENT = art.arcane.volmlib.util.mantle.TectonicPlate.CURRENT; + + public TectonicPlate(int worldHeight, int x, int z) { + super(worldHeight, x, z); + } + + public TectonicPlate(int worldHeight, CountingDataInputStream din, boolean versioned) throws IOException { + super(worldHeight, din, versioned); + } + + @Override + protected void beforeReadChunk(int index) { + Iris.addPanic("read-chunk", "Chunk[" + index + "]"); + } + + @Override + protected void afterReadChunk(int index) { + EnginePanic.saveLast(); + } + + @Override + protected void onReadChunkFailure(int index, long start, long end, CountingDataInputStream din, Throwable e) { + Iris.error("Failed to read chunk, creating a new chunk instead."); + Iris.addPanic("read.byte.range", start + " " + end); + Iris.addPanic("read.byte.current", din.count() + ""); + Iris.reportError(e); + e.printStackTrace(); + Iris.panic(); + } + + @Override + protected MantleChunk readChunk(int version, int sectionHeight, CountingDataInputStream din) throws IOException { + return new MantleChunk(version, sectionHeight, din); + } + + @Override + protected MantleChunk createChunk(int sectionHeight, int x, int z) { + return new MantleChunk(sectionHeight, x, z); + } + + @Override + protected boolean isChunkInUse(MantleChunk chunk) { + return chunk.inUse(); + } + + @Override + protected void closeChunk(MantleChunk chunk) { + chunk.close(); + } + + @Override + protected void writeChunk(MantleChunk chunk, DataOutputStream dos) throws IOException { + chunk.write(dos); + } + + public static void addError() { + art.arcane.volmlib.util.mantle.TectonicPlate.addError(); + } + + public static boolean hasError() { + return art.arcane.volmlib.util.mantle.TectonicPlate.hasError(); + } +} diff --git a/core/src/main/java/art/arcane/iris/util/common/mantle/io/IOWorker.java b/core/src/main/java/art/arcane/iris/util/common/mantle/io/IOWorker.java new file mode 100644 index 000000000..83316505c --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/mantle/io/IOWorker.java @@ -0,0 +1,87 @@ +/* + * 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.mantle.io; + +import art.arcane.volmlib.util.mantle.io.IOWorkerCodecSupport; +import art.arcane.volmlib.util.mantle.io.IOWorkerRuntimeSupport; +import art.arcane.volmlib.util.mantle.io.IOWorkerSupport; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.util.format.C; +import art.arcane.volmlib.util.format.Form; +import art.arcane.iris.util.mantle.TectonicPlate; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; +import net.jpountz.lz4.LZ4BlockInputStream; +import net.jpountz.lz4.LZ4BlockOutputStream; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + +public class IOWorker { + private static final IOWorkerCodecSupport LZ4_CODEC = new IOWorkerCodecSupport() { + @Override + public InputStream decode(InputStream input) throws IOException { + return new LZ4BlockInputStream(input); + } + + @Override + public OutputStream encode(OutputStream output) throws IOException { + return new LZ4BlockOutputStream(output); + } + }; + + private final int worldHeight; + private final IOWorkerSupport support; + private final IOWorkerRuntimeSupport runtime; + + public IOWorker(File root, int worldHeight) { + this.worldHeight = worldHeight; + this.support = new IOWorkerSupport(root, 128, (name, millis) -> + Iris.debug("Acquired Channel for " + C.DARK_GREEN + name + C.RED + " in " + Form.duration(millis, 2)) + ); + this.runtime = new IOWorkerRuntimeSupport(support, LZ4_CODEC); + } + + public TectonicPlate read(final String name) throws IOException { + PrecisionStopwatch p = PrecisionStopwatch.start(); + try { + return runtime.read(name, (regionName, in) -> new TectonicPlate(worldHeight, in, regionName.startsWith("pv."))); + } finally { + if (TectonicPlate.hasError() && IrisSettings.get().getGeneral().isDumpMantleOnError()) { + File dump = Iris.instance.getDataFolder("dump", name + ".bin"); + runtime.dumpDecoded(name, dump.toPath()); + } else { + Iris.debug("Read Tectonic Plate " + C.DARK_GREEN + name + C.RED + " in " + Form.duration(p.getMilliseconds(), 2)); + } + } + } + + public void write(final String name, final TectonicPlate plate) throws IOException { + PrecisionStopwatch p = PrecisionStopwatch.start(); + runtime.writeAtomically(name, "iris", ".bin", plate, TectonicPlate::write); + + Iris.debug("Saved Tectonic Plate " + C.DARK_GREEN + name + C.RED + " in " + Form.duration(p.getMilliseconds(), 2)); + } + + public void close() throws IOException { + support.close(); + } +} diff --git a/core/src/main/java/com/volmit/iris/util/math/AxisAlignedBB.java b/core/src/main/java/art/arcane/iris/util/common/math/AxisAlignedBB.java similarity index 94% rename from core/src/main/java/com/volmit/iris/util/math/AxisAlignedBB.java rename to core/src/main/java/art/arcane/iris/util/common/math/AxisAlignedBB.java index c7fe7a006..2af972460 100644 --- a/core/src/main/java/com/volmit/iris/util/math/AxisAlignedBB.java +++ b/core/src/main/java/art/arcane/iris/util/common/math/AxisAlignedBB.java @@ -16,10 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.math; +package art.arcane.iris.util.math; -import com.volmit.iris.engine.object.IrisPosition; -import com.volmit.iris.util.data.Cuboid; +import art.arcane.volmlib.util.math.AlignedPoint; +import art.arcane.iris.engine.object.IrisPosition; +import art.arcane.volmlib.util.data.Cuboid; import org.bukkit.World; import org.bukkit.util.BlockVector; @@ -88,4 +89,4 @@ public class AxisAlignedBB { public Cuboid toCuboid(World world) { return new Cuboid(min().toLocation(world), max().toLocation(world)); } -} \ No newline at end of file +} 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 new file mode 100644 index 000000000..46a3148c5 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/math/Direction.java @@ -0,0 +1,158 @@ +package art.arcane.iris.util.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/com/volmit/iris/util/nbt/tag/EndTag.java b/core/src/main/java/art/arcane/iris/util/common/math/Position2.java similarity index 55% rename from core/src/main/java/com/volmit/iris/util/nbt/tag/EndTag.java rename to core/src/main/java/art/arcane/iris/util/common/math/Position2.java index 69bf51145..dcbc1a150 100644 --- a/core/src/main/java/com/volmit/iris/util/nbt/tag/EndTag.java +++ b/core/src/main/java/art/arcane/iris/util/common/math/Position2.java @@ -16,34 +16,36 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.nbt.tag; +package art.arcane.iris.util.math; -public final class EndTag extends Tag { +import art.arcane.iris.engine.object.IrisPosition; +import org.bukkit.util.Vector; - public static final byte ID = 0; - public static final EndTag INSTANCE = new EndTag(); +public class Position2 extends art.arcane.volmlib.util.math.Position2 { + public Position2(int x, int z) { + super(x, z); + } - private EndTag() { - super(null); + public Position2(Vector center) { + super(center); } @Override - public byte getID() { - return ID; + public Position2 regionToChunk() { + return new Position2(getX() << 5, getZ() << 5); } @Override - protected Void checkValue(Void value) { - return value; + public Position2 add(int x, int z) { + return new Position2(getX() + x, getZ() + z); } @Override - public String valueToString(int maxDepth) { - return "\"end\""; + public Position2 blockToChunk() { + return new Position2(getX() >> 4, getZ() >> 4); } - @Override - public EndTag clone() { - return INSTANCE; + public IrisPosition toIris() { + return new IrisPosition(getX(), 23, getZ()); } } diff --git a/core/src/main/java/com/volmit/iris/util/math/RNGV2.java b/core/src/main/java/art/arcane/iris/util/common/math/RNGV2.java similarity index 99% rename from core/src/main/java/com/volmit/iris/util/math/RNGV2.java rename to core/src/main/java/art/arcane/iris/util/common/math/RNGV2.java index 2ded4af70..00e69ddd0 100644 --- a/core/src/main/java/com/volmit/iris/util/math/RNGV2.java +++ b/core/src/main/java/art/arcane/iris/util/common/math/RNGV2.java @@ -1,4 +1,4 @@ -package com.volmit.iris.util.math; +package art.arcane.iris.util.math; import java.nio.charset.StandardCharsets; import java.util.List; diff --git a/core/src/main/java/art/arcane/iris/util/common/math/Spiral.java b/core/src/main/java/art/arcane/iris/util/common/math/Spiral.java new file mode 100644 index 000000000..d0f4581bc --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/math/Spiral.java @@ -0,0 +1,52 @@ +package art.arcane.iris.util.math; + +import org.jetbrains.annotations.NotNull; + +import java.util.Iterator; + +public class Spiral implements Iterable { + private final Position2 start; + private final long max; + private final art.arcane.volmlib.util.math.Spiral delegate; + + public Spiral(Position2 start, long max) { + this.start = start; + this.max = max; + this.delegate = new art.arcane.volmlib.util.math.Spiral(start, max); + } + + public static Position2 next(Position2 p) { + art.arcane.volmlib.util.math.Position2 n = art.arcane.volmlib.util.math.Spiral.next(p); + return new Position2(n.getX(), n.getZ()); + } + + public static Spiral from(Position2 p, long iterations) { + return new Spiral(p, iterations); + } + + public Position2 getStart() { + return start; + } + + public long getMax() { + return max; + } + + @NotNull + @Override + public Iterator iterator() { + Iterator it = delegate.iterator(); + return new Iterator<>() { + @Override + public boolean hasNext() { + return it.hasNext(); + } + + @Override + public Position2 next() { + art.arcane.volmlib.util.math.Position2 p = it.next(); + return new Position2(p.getX(), p.getZ()); + } + }; + } +} diff --git a/core/src/main/java/com/volmit/iris/util/math/Vector3i.java b/core/src/main/java/art/arcane/iris/util/common/math/Vector3i.java similarity index 93% rename from core/src/main/java/com/volmit/iris/util/math/Vector3i.java rename to core/src/main/java/art/arcane/iris/util/common/math/Vector3i.java index 3aaf11650..21aab4ac5 100644 --- a/core/src/main/java/com/volmit/iris/util/math/Vector3i.java +++ b/core/src/main/java/art/arcane/iris/util/common/math/Vector3i.java @@ -1,4 +1,4 @@ -package com.volmit.iris.util.math; +package art.arcane.iris.util.math; import org.bukkit.util.BlockVector; import org.bukkit.util.Vector; diff --git a/core/src/main/java/art/arcane/iris/util/common/math/VectorMath.java b/core/src/main/java/art/arcane/iris/util/common/math/VectorMath.java new file mode 100644 index 000000000..7eda6441b --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/math/VectorMath.java @@ -0,0 +1,93 @@ +package art.arcane.iris.util.math; + +import org.bukkit.util.Vector; + +public class VectorMath extends art.arcane.volmlib.util.math.VectorMath { + public static Vector rotate(Direction current, Direction to, Vector v) { + if (current.equals(to)) { + return v; + } else if (current.equals(to.reverse())) { + if (current.isVertical()) { + return new Vector(v.getX(), -v.getY(), v.getZ()); + } else { + return new Vector(-v.getX(), v.getY(), -v.getZ()); + } + } else { + Vector c = current.toVector().clone().add(to.toVector()); + + if (c.getX() == 0) { + if (c.getY() != c.getZ()) { + return rotate90CX(v); + } + + return rotate90CCX(v); + } else if (c.getY() == 0) { + if (c.getX() != c.getZ()) { + return rotate90CY(v); + } + + return rotate90CCY(v); + } else if (c.getZ() == 0) { + if (c.getX() != c.getY()) { + return rotate90CZ(v); + } + + return rotate90CCZ(v); + } + } + + return v; + } + + public static Vector rotate(Direction current, Direction to, Vector v, int w, int h, int d) { + if (current.equals(to)) { + return v; + } else if (current.equals(to.reverse())) { + if (current.isVertical()) { + return new Vector(v.getX(), -v.getY() + h, v.getZ()); + } else { + return new Vector(-v.getX() + w, v.getY(), -v.getZ() + d); + } + } else { + Vector c = current.toVector().clone().add(to.toVector()); + + if (c.getX() == 0) { + if (c.getY() != c.getZ()) { + return rotate90CX(v, d); + } + + return rotate90CCX(v, h); + } else if (c.getY() == 0) { + if (c.getX() != c.getZ()) { + return rotate90CY(v, d); + } + + return rotate90CCY(v, w); + } else if (c.getZ() == 0) { + if (c.getX() != c.getY()) { + return rotate90CZ(v, w); + } + + return rotate90CCZ(v, h); + } + } + + return v; + } + + public static Vector getAxis(Direction current, Direction to) { + if (current.equals(Direction.U) || current.equals(Direction.D)) { + if (to.equals(Direction.U) || to.equals(Direction.D)) { + return new Vector(1, 0, 0); + } else { + if (current.equals(Direction.N) || current.equals(Direction.S)) { + return Direction.E.toVector(); + } else { + return Direction.S.toVector(); + } + } + } + + return new Vector(0, 1, 0); + } +} diff --git a/core/src/main/java/com/volmit/iris/util/misc/Bindings.java b/core/src/main/java/art/arcane/iris/util/common/misc/Bindings.java similarity index 88% rename from core/src/main/java/com/volmit/iris/util/misc/Bindings.java rename to core/src/main/java/art/arcane/iris/util/common/misc/Bindings.java index d26e924dc..df2df6084 100644 --- a/core/src/main/java/com/volmit/iris/util/misc/Bindings.java +++ b/core/src/main/java/art/arcane/iris/util/common/misc/Bindings.java @@ -1,20 +1,20 @@ -package com.volmit.iris.util.misc; +package art.arcane.iris.util.misc; import com.google.gson.JsonSyntaxException; -import com.volmit.iris.BuildConstants; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.core.safeguard.IrisSafeguard; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.engine.platform.PlatformChunkGenerator; -import com.volmit.iris.util.context.IrisContext; -import com.volmit.iris.util.json.JSONException; -import com.volmit.iris.util.reflect.ShadeFix; -import com.volmit.iris.util.scheduling.J; -import com.volmit.iris.util.sentry.Attachments; -import com.volmit.iris.util.sentry.IrisLogger; -import com.volmit.iris.util.sentry.ServerID; +import art.arcane.iris.BuildConstants; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.core.nms.INMS; +import art.arcane.iris.core.safeguard.IrisSafeguard; +import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.util.context.IrisContext; +import art.arcane.volmlib.util.json.JSONException; +import art.arcane.volmlib.util.reflect.ShadeFix; +import art.arcane.iris.util.scheduling.J; +import art.arcane.iris.util.sentry.Attachments; +import art.arcane.iris.util.sentry.IrisLogger; +import art.arcane.iris.util.sentry.ServerID; import io.sentry.Sentry; import net.kyori.adventure.audience.Audience; import net.kyori.adventure.platform.bukkit.BukkitAudiences; diff --git a/core/src/main/java/com/volmit/iris/util/misc/ServerProperties.java b/core/src/main/java/art/arcane/iris/util/common/misc/ServerProperties.java similarity index 98% rename from core/src/main/java/com/volmit/iris/util/misc/ServerProperties.java rename to core/src/main/java/art/arcane/iris/util/common/misc/ServerProperties.java index fb9a31c73..013e592f3 100644 --- a/core/src/main/java/com/volmit/iris/util/misc/ServerProperties.java +++ b/core/src/main/java/art/arcane/iris/util/common/misc/ServerProperties.java @@ -1,4 +1,4 @@ -package com.volmit.iris.util.misc; +package art.arcane.iris.util.misc; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/core/src/main/java/com/volmit/iris/util/misc/SlimJar.java b/core/src/main/java/art/arcane/iris/util/common/misc/SlimJar.java similarity index 96% rename from core/src/main/java/com/volmit/iris/util/misc/SlimJar.java rename to core/src/main/java/art/arcane/iris/util/common/misc/SlimJar.java index 4cee3df77..72d967d53 100644 --- a/core/src/main/java/com/volmit/iris/util/misc/SlimJar.java +++ b/core/src/main/java/art/arcane/iris/util/common/misc/SlimJar.java @@ -1,6 +1,6 @@ -package com.volmit.iris.util.misc; +package art.arcane.iris.util.misc; -import com.volmit.iris.Iris; +import art.arcane.iris.Iris; import io.github.slimjar.app.builder.ApplicationBuilder; import io.github.slimjar.app.builder.SpigotApplicationBuilder; import io.github.slimjar.injector.loader.factory.InjectableFactory; @@ -11,7 +11,7 @@ import org.jetbrains.annotations.Nullable; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.locks.ReentrantLock; -import static com.volmit.iris.Iris.instance; +import static art.arcane.iris.Iris.instance; public class SlimJar { private static final boolean DEBUG = Boolean.getBoolean("iris.debug-slimjar"); diff --git a/core/src/main/java/com/volmit/iris/util/misc/getHardware.java b/core/src/main/java/art/arcane/iris/util/common/misc/getHardware.java similarity index 97% rename from core/src/main/java/com/volmit/iris/util/misc/getHardware.java rename to core/src/main/java/art/arcane/iris/util/common/misc/getHardware.java index 0e494e27c..63daecc5d 100644 --- a/core/src/main/java/com/volmit/iris/util/misc/getHardware.java +++ b/core/src/main/java/art/arcane/iris/util/common/misc/getHardware.java @@ -1,9 +1,9 @@ -package com.volmit.iris.util.misc; +package art.arcane.iris.util.misc; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.format.Form; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.iris.util.format.C; +import art.arcane.volmlib.util.format.Form; import org.jetbrains.annotations.Nullable; import oshi.SystemInfo; import oshi.hardware.*; diff --git a/core/src/main/java/art/arcane/iris/util/common/nbt/mca/Chunk.java b/core/src/main/java/art/arcane/iris/util/common/nbt/mca/Chunk.java new file mode 100644 index 000000000..0dfd64872 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/nbt/mca/Chunk.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.util.nbt.mca; + +import art.arcane.volmlib.util.nbt.mca.MCAChunkSupport; +import art.arcane.volmlib.util.nbt.tag.CompoundTag; +import art.arcane.iris.Iris; +import art.arcane.iris.core.nms.INMS; + +import static org.bukkit.Bukkit.getServer; + +public class Chunk extends MCAChunkSupport
{ + public static final int DEFAULT_DATA_VERSION = 2730; + + private static final Config
CONFIG = new Config<>( + DEFAULT_DATA_VERSION, + () -> getServer().getWorlds().get(0).getMinHeight(), + () -> getServer().getWorlds().get(0).getMaxHeight(), + (min, max) -> INMS.get().newBiomeContainer(min, max), + (min, max, data) -> INMS.get().newBiomeContainer(min, max, data), + (sectionRoot, dataVersion, loadFlags) -> new Section(sectionRoot, dataVersion, loadFlags), + Section::newSection, + () -> "Iris Headless " + Iris.instance.getDescription().getVersion(), + () -> "Iris " + Iris.instance.getDescription().getVersion() + ); + + Chunk(int lastMCAUpdate) { + super(lastMCAUpdate, CONFIG); + } + + public Chunk(CompoundTag data) { + super(data, CONFIG); + } + + public static Chunk newChunk() { + Chunk c = new Chunk(0); + c.initializeNewChunk(); + return c; + } + + public static void injectIrisData(Chunk c) { + c.injectNativeData("Iris"); + } +} diff --git a/core/src/main/java/art/arcane/iris/util/common/nbt/mca/MCAFile.java b/core/src/main/java/art/arcane/iris/util/common/nbt/mca/MCAFile.java new file mode 100644 index 000000000..68792e271 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/nbt/mca/MCAFile.java @@ -0,0 +1,89 @@ +/* + * 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.nbt.mca; + +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.iris.util.math.Position2; +import art.arcane.iris.util.scheduling.J; + +import java.io.IOException; +import java.io.RandomAccessFile; + +@SuppressWarnings("ALL") +public class MCAFile extends MCAFileSupport { + + /** + * The default chunk data version used when no custom version is supplied. + */ + public static final int DEFAULT_DATA_VERSION = 1628; + + /** + * MCAFile represents a world save file used by Minecraft to store world + * data on the hard drive. + * This constructor needs the x- and z-coordinates of the stored region, + * which can usually be taken from the file name {@code r.x.z.mca} + * + * @param regionX The x-coordinate of this region. + * @param regionZ The z-coordinate of this region. + */ + public MCAFile(int regionX, int regionZ) { + super(regionX, regionZ, Chunk::newChunk, task -> J.a(task, 20)); + } + + /** + * Calculates the index of a chunk from its x- and z-coordinates in this region. + * This works with absolute and relative coordinates. + * + * @param chunkX The x-coordinate of the chunk. + * @param chunkZ The z-coordinate of the chunk. + * @return The index of this chunk. + */ + public static int getChunkIndex(int chunkX, int chunkZ) { + return MCAFileSupport.getChunkIndex(chunkX, chunkZ); + } + + /** + * Reads an .mca file from a {@code RandomAccessFile} into this object. + * This method does not perform any cleanups on the data. + * + * @param raf The {@code RandomAccessFile} to read from. + * @throws IOException If something went wrong during deserialization. + */ + public void deserialize(RandomAccessFile raf) throws IOException { + deserialize(raf, LoadFlags.ALL_DATA); + } + + /** + * Reads an .mca file from a {@code RandomAccessFile} into this object. + * This method does not perform any cleanups on the data. + * + * @param raf The {@code RandomAccessFile} to read from. + * @param loadFlags A logical or of {@link LoadFlags} constants indicating what data should be loaded + * @throws IOException If something went wrong during deserialization. + */ + public void deserialize(RandomAccessFile raf, long loadFlags) throws IOException { + super.deserialize(raf, loadFlags, Chunk::new); + } + + public KList samplePositions(RandomAccessFile raf) throws IOException { + return super.samplePositions(raf, Position2::new); + } +} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/mca/MCAUtil.java b/core/src/main/java/art/arcane/iris/util/common/nbt/mca/MCAUtil.java similarity index 90% rename from core/src/main/java/com/volmit/iris/util/nbt/mca/MCAUtil.java rename to core/src/main/java/art/arcane/iris/util/common/nbt/mca/MCAUtil.java index da97e694b..8c50f9cd0 100644 --- a/core/src/main/java/com/volmit/iris/util/nbt/mca/MCAUtil.java +++ b/core/src/main/java/art/arcane/iris/util/common/nbt/mca/MCAUtil.java @@ -16,18 +16,18 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.nbt.mca; +package art.arcane.iris.util.nbt.mca; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.math.Position2; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.nbt.mca.LoadFlags; +import art.arcane.volmlib.util.nbt.mca.MCAUtilSupport; +import art.arcane.iris.util.math.Position2; import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; import java.nio.file.Files; import java.nio.file.StandardCopyOption; -import java.util.regex.Matcher; -import java.util.regex.Pattern; /** * Provides main and utility functions to read and writeNodeData .mca files and @@ -35,8 +35,6 @@ import java.util.regex.Pattern; */ public final class MCAUtil { - private static final Pattern mcaFilePattern = Pattern.compile("^.*r\\.(?-?\\d+)\\.(?-?\\d+)\\.mca$"); - private MCAUtil() { } @@ -175,7 +173,7 @@ public final class MCAUtil { * @return A mca filename in the format "r.{regionX}.{regionZ}.mca" */ public static String createNameFromChunkLocation(int chunkX, int chunkZ) { - return createNameFromRegionLocation(chunkToRegion(chunkX), chunkToRegion(chunkZ)); + return MCAUtilSupport.createNameFromChunkLocation(chunkX, chunkZ); } /** @@ -187,7 +185,7 @@ public final class MCAUtil { * @return A mca filename in the format "r.{regionX}.{regionZ}.mca" */ public static String createNameFromBlockLocation(int blockX, int blockZ) { - return createNameFromRegionLocation(blockToRegion(blockX), blockToRegion(blockZ)); + return MCAUtilSupport.createNameFromBlockLocation(blockX, blockZ); } /** @@ -198,7 +196,7 @@ public final class MCAUtil { * @return A mca filename in the format "r.{regionX}.{regionZ}.mca" */ public static String createNameFromRegionLocation(int regionX, int regionZ) { - return "r." + regionX + "." + regionZ + ".mca"; + return MCAUtilSupport.createNameFromRegionLocation(regionX, regionZ); } /** @@ -208,7 +206,7 @@ public final class MCAUtil { * @return The chunk coordinate value. */ public static int blockToChunk(int block) { - return block >> 4; + return MCAUtilSupport.blockToChunk(block); } /** @@ -218,7 +216,7 @@ public final class MCAUtil { * @return The region coordinate value. */ public static int blockToRegion(int block) { - return block >> 9; + return MCAUtilSupport.blockToRegion(block); } /** @@ -228,7 +226,7 @@ public final class MCAUtil { * @return The region coordinate value. */ public static int chunkToRegion(int chunk) { - return chunk >> 5; + return MCAUtilSupport.chunkToRegion(chunk); } /** @@ -238,7 +236,7 @@ public final class MCAUtil { * @return The chunk coordinate value. */ public static int regionToChunk(int region) { - return region << 5; + return MCAUtilSupport.regionToChunk(region); } /** @@ -248,7 +246,7 @@ public final class MCAUtil { * @return The block coordinate value. */ public static int regionToBlock(int region) { - return region << 9; + return MCAUtilSupport.regionToBlock(region); } /** @@ -258,14 +256,11 @@ public final class MCAUtil { * @return The block coordinate value. */ public static int chunkToBlock(int chunk) { - return chunk << 4; + return MCAUtilSupport.chunkToBlock(chunk); } public static MCAFile newMCAFile(File file) { - Matcher m = mcaFilePattern.matcher(file.getName()); - if (m.find()) { - return new MCAFile(Integer.parseInt(m.group("regionX")), Integer.parseInt(m.group("regionZ"))); - } - throw new IllegalArgumentException("invalid mca file name: " + file.getName()); + int[] coords = MCAUtilSupport.parseRegionCoordinates(file); + return new MCAFile(coords[0], coords[1]); } } diff --git a/core/src/main/java/art/arcane/iris/util/common/nbt/mca/NBTWorld.java b/core/src/main/java/art/arcane/iris/util/common/nbt/mca/NBTWorld.java new file mode 100644 index 000000000..25cb4a4a9 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/nbt/mca/NBTWorld.java @@ -0,0 +1,246 @@ +/* + * 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.nbt.mca; + +import art.arcane.iris.Iris; +import art.arcane.iris.core.nms.INMS; +import art.arcane.iris.engine.data.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.data.B; +import art.arcane.volmlib.util.math.M; +import art.arcane.volmlib.util.nbt.tag.CompoundTag; +import art.arcane.iris.util.parallel.HyperLock; +import org.bukkit.NamespacedKey; +import org.bukkit.block.Biome; +import org.bukkit.block.data.BlockData; + +import java.io.File; +import java.util.Map; + +public class NBTWorld { + private static final BlockData AIR = B.get("AIR"); + private static final NBTWorldSupport.BlockStateCodec BLOCK_STATE_CODEC = NBTWorldSupport.blockStateCodec( + blockStateString -> B.getOrNull(blockStateString, true), + B::getAir, + blockData -> blockData.getAsString(true), + blockData -> { + NamespacedKey key = blockData.getMaterial().getKey(); + return key.getNamespace() + ":" + key.getKey(); + } + ); + private static final Map biomeIds = computeBiomeIDs(); + private final HyperLock hyperLock = new HyperLock(); + private final MCAWorldStoreSupport regionStore; + private final MCAWorldRuntimeSupport worldRuntime; + + public NBTWorld(File worldFolder) { + this.regionStore = new MCAWorldStoreSupport<>(new MCAWorldStoreSupport.Config<>( + NBTWorldSupport.keyCodec(Cache::key, Cache::keyX, Cache::keyZ), + new MCAWorldStoreSupport.GridLock() { + @Override + public T withResult(int x, int z, java.util.function.Supplier supplier) { + return hyperLock.withResult(x, z, supplier::get); + } + }, + MCAFile::new, + NBTWorldSupport.regionFileResolver(worldFolder, "region"), + MCAUtil::write, + NBTWorldSupport.logger( + Iris::info, + Iris::debug, + (message, error) -> { + Iris.error(message); + if (error != null) { + error.printStackTrace(); + } + } + ), + M::ms, + 60000L, + "Iris MCA Writer" + )); + + this.worldRuntime = new MCAWorldRuntimeSupport<>( + this::getMCA, + new MCAWorldRuntimeSupport.ChunkAccess<>() { + @Override + public Chunk getChunk(MCAFile mca, int chunkX, int chunkZ) { + return mca.getChunk(chunkX, chunkZ); + } + + @Override + public void setChunk(MCAFile mca, int chunkX, int chunkZ, Chunk chunk) { + mca.setChunk(chunkX, chunkZ, chunk); + } + + @Override + public Chunk createChunk() { + return Chunk.newChunk(); + } + }, + new MCAWorldRuntimeSupport.SectionAccess<>() { + @Override + public Section getSection(Chunk chunk, int sectionY) { + return chunk.getSection(sectionY); + } + + @Override + public void setSection(Chunk chunk, int sectionY, Section section) { + chunk.setSection(sectionY, section); + } + + @Override + public Section createSection() { + return Section.newSection(); + } + } + ); + } + + public static BlockData getBlockData(CompoundTag tag) { + return BLOCK_STATE_CODEC.decode(tag); + } + + public static CompoundTag getCompound(BlockData bd) { + return BLOCK_STATE_CODEC.encode(bd); + } + + private static Map computeBiomeIDs() { + Map biomeIds = new KMap<>(); + + for (Biome biome : Biome.values()) { + if (!biome.name().equals("CUSTOM")) { + biomeIds.put(biome, INMS.get().getBiomeId(biome)); + } + } + + return biomeIds; + } + + public void close() { + regionStore.close(); + } + + public void flushNow() { + regionStore.flushNow(); + } + + public void queueSaveUnload(int x, int z) { + regionStore.queueSaveUnload(x, z); + } + + public void doSaveUnload(int x, int z) { + regionStore.doSaveUnload(x, z); + } + + public void save() { + regionStore.save(); + } + + public void queueSave() { + + } + + public synchronized void unloadRegion(int x, int z) { + regionStore.unloadRegion(x, z); + } + + public void saveRegion(int x, int z) { + regionStore.saveRegion(x, z); + } + + public void saveRegion(int x, int z, MCAFile mca) { + regionStore.saveRegion(x, z, mca); + } + + public boolean shouldUnload(int x, int z) { + return regionStore.shouldUnload(x, z); + } + + public File getRegionFile(int x, int z) { + return regionStore.getRegionFile(x, z); + } + + public BlockData getBlockData(int x, int y, int z) { + try { + CompoundTag tag = worldRuntime.getBlockStateTag(x, y, z); + + if (tag == null) { + return AIR; + } + + return getBlockData(tag); + } catch (Throwable e) { + Iris.reportError(e); + + } + return AIR; + } + + public void setBlockData(int x, int y, int z, BlockData data) { + worldRuntime.setBlockStateTag(x, y, z, getCompound(data), false); + } + + public int getBiomeId(Biome b) { + return biomeIds.get(b); + } + + public void setBiome(int x, int y, int z, Biome biome) { + worldRuntime.setBiomeId(x, y, z, biomeIds.get(biome)); + } + + public Section getChunkSection(int x, int y, int z) { + return worldRuntime.getChunkSection(x, y, z); + } + + public Chunk getChunk(int x, int z) { + return worldRuntime.getChunk(x, z); + } + + public Chunk getChunk(MCAFile mca, int x, int z) { + return worldRuntime.getChunk(mca, x, z); + } + + public Chunk getNewChunk(MCAFile mca, int x, int z) { + return worldRuntime.getNewChunk(mca, x, z); + } + + public long getIdleDuration(int x, int z) { + return regionStore.getIdleDuration(x, z); + } + + public MCAFile getMCA(int x, int z) { + return regionStore.getMCA(x, z); + } + + public MCAFile getMCAOrNull(int x, int z) { + return regionStore.getMCAOrNull(x, z); + } + + public int size() { + return regionStore.size(); + } + + public boolean isLoaded(int x, int z) { + return regionStore.isLoaded(x, z); + } +} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/mca/Section.java b/core/src/main/java/art/arcane/iris/util/common/nbt/mca/Section.java similarity index 63% rename from core/src/main/java/com/volmit/iris/util/nbt/mca/Section.java rename to core/src/main/java/art/arcane/iris/util/common/nbt/mca/Section.java index f58f74faf..6074dcfa8 100644 --- a/core/src/main/java/com/volmit/iris/util/nbt/mca/Section.java +++ b/core/src/main/java/art/arcane/iris/util/common/nbt/mca/Section.java @@ -16,40 +16,26 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.nbt.mca; +package art.arcane.iris.util.nbt.mca; -import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.util.nbt.mca.palette.MCAPaletteAccess; -import com.volmit.iris.util.nbt.tag.ByteArrayTag; -import com.volmit.iris.util.nbt.tag.CompoundTag; -import com.volmit.iris.util.nbt.tag.ListTag; - - -public class Section { - private CompoundTag data; - private MCAPaletteAccess palette; - private byte[] blockLight; - private byte[] skyLight; +import art.arcane.iris.core.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; +import art.arcane.volmlib.util.nbt.tag.CompoundTag; +public class Section implements MCASectionLike { + private final MCASectionSupport support; public Section(CompoundTag sectionRoot, int dataVersion) { this(sectionRoot, dataVersion, LoadFlags.ALL_DATA); } public Section(CompoundTag sectionRoot, int dataVersion, long loadFlags) { - data = sectionRoot; - ListTag rawPalette = sectionRoot.getListTag("Palette"); - if (rawPalette == null) { - return; - } - palette = INMS.get().createPalette(); - palette.readFromSection(sectionRoot); - ByteArrayTag blockLight = sectionRoot.getByteArrayTag("BlockLight"); - ByteArrayTag skyLight = sectionRoot.getByteArrayTag("SkyLight"); - this.blockLight = blockLight != null ? blockLight.getValue() : null; - this.skyLight = skyLight != null ? skyLight.getValue() : null; + support = new MCASectionSupport(sectionRoot, loadFlags, () -> INMS.get().createPalette()); } - Section() { + private Section(MCASectionSupport support) { + this.support = support; } /** @@ -58,10 +44,7 @@ public class Section { * @return An empty Section */ public static Section newSection() { - Section s = new Section(); - s.data = new CompoundTag(); - s.palette = INMS.get().createPalette(); - return s; + return new Section(MCASectionSupport.createNew(() -> INMS.get().createPalette())); } /** @@ -70,7 +53,7 @@ public class Section { * @return true if empty */ public boolean isEmpty() { - return data == null; + return support.isEmpty(); } /** @@ -83,9 +66,7 @@ public class Section { * @return The block state data of this block. */ public synchronized CompoundTag getBlockStateAt(int blockX, int blockY, int blockZ) { - synchronized (palette) { - return palette.getBlock(blockX & 15, blockY & 15, blockZ & 15); - } + return support.getBlockStateAt(blockX, blockY, blockZ); } /** @@ -97,9 +78,7 @@ public class Section { * @param state The block state to be set */ public synchronized void setBlockStateAt(int blockX, int blockY, int blockZ, CompoundTag state, boolean cleanup) { - synchronized (palette) { - palette.setBlock(blockX & 15, blockY & 15, blockZ & 15, state); - } + support.setBlockStateAt(blockX, blockY, blockZ, state, cleanup); } /** @@ -108,14 +87,14 @@ public class Section { * Recalculating the Palette should only be executed once right before saving the Section to file. */ public void cleanupPaletteAndBlockStates() { - + support.cleanupPaletteAndBlockStates(); } /** * @return The block light array of this Section */ public synchronized byte[] getBlockLight() { - return blockLight; + return support.getBlockLight(); } /** @@ -125,17 +104,14 @@ public class Section { * @throws IllegalArgumentException When the length of the array is not 2048 */ public synchronized void setBlockLight(byte[] blockLight) { - if (blockLight != null && blockLight.length != 2048) { - throw new IllegalArgumentException("BlockLight array must have a length of 2048"); - } - this.blockLight = blockLight; + support.setBlockLight(blockLight); } /** * @return The sky light values of this Section */ public synchronized byte[] getSkyLight() { - return skyLight; + return support.getSkyLight(); } /** @@ -145,10 +121,7 @@ public class Section { * @throws IllegalArgumentException If the length of the array is not 2048 */ public synchronized void setSkyLight(byte[] skyLight) { - if (skyLight != null && skyLight.length != 2048) { - throw new IllegalArgumentException("SkyLight array must have a length of 2048"); - } - this.skyLight = skyLight; + support.setSkyLight(skyLight); } /** @@ -160,19 +133,6 @@ public class Section { * @return A reference to the raw CompoundTag this Section is based on */ public synchronized CompoundTag updateHandle(int y) { - data.putByte("Y", (byte) y); - - if (palette != null) { - synchronized (palette) { - palette.writeToSection(data); - } - } - if (blockLight != null) { - data.putByteArray("BlockLight", blockLight); - } - if (skyLight != null) { - data.putByteArray("SkyLight", skyLight); - } - return data; + return support.updateHandle(y); } } diff --git a/core/src/main/java/art/arcane/iris/util/common/parallel/BurstExecutor.java b/core/src/main/java/art/arcane/iris/util/common/parallel/BurstExecutor.java new file mode 100644 index 000000000..5cba668ad --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/parallel/BurstExecutor.java @@ -0,0 +1,11 @@ +package art.arcane.iris.util.parallel; + +import art.arcane.iris.Iris; +import art.arcane.volmlib.util.parallel.BurstExecutorSupport; +import java.util.concurrent.ExecutorService; + +public class BurstExecutor extends BurstExecutorSupport { + public BurstExecutor(ExecutorService executor, int burstSizeEstimate) { + super(executor, burstSizeEstimate, Iris::reportError); + } +} diff --git a/core/src/main/java/com/volmit/iris/util/parallel/BurstedHunk.java b/core/src/main/java/art/arcane/iris/util/common/parallel/BurstedHunk.java similarity index 79% rename from core/src/main/java/com/volmit/iris/util/parallel/BurstedHunk.java rename to core/src/main/java/art/arcane/iris/util/common/parallel/BurstedHunk.java index abe41466c..f88031bb7 100644 --- a/core/src/main/java/com/volmit/iris/util/parallel/BurstedHunk.java +++ b/core/src/main/java/art/arcane/iris/util/common/parallel/BurstedHunk.java @@ -16,15 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.parallel; +package art.arcane.iris.util.parallel; -import com.volmit.iris.util.hunk.Hunk; +import art.arcane.iris.util.hunk.Hunk; -public interface BurstedHunk extends Hunk { - int getOffsetX(); - - int getOffsetY(); - - int getOffsetZ(); +public interface BurstedHunk extends Hunk, art.arcane.volmlib.util.parallel.BurstedHunk { } diff --git a/core/src/main/java/art/arcane/iris/util/common/parallel/GridLock.java b/core/src/main/java/art/arcane/iris/util/common/parallel/GridLock.java new file mode 100644 index 000000000..4469c9526 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/parallel/GridLock.java @@ -0,0 +1,10 @@ +package art.arcane.iris.util.parallel; + +import art.arcane.iris.Iris; +import art.arcane.volmlib.util.parallel.GridLockSupport; + +public class GridLock extends GridLockSupport { + public GridLock(int x, int z) { + super(x, z, Iris::reportError); + } +} diff --git a/core/src/main/java/art/arcane/iris/util/common/parallel/HyperLock.java b/core/src/main/java/art/arcane/iris/util/common/parallel/HyperLock.java new file mode 100644 index 000000000..26df98040 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/parallel/HyperLock.java @@ -0,0 +1,18 @@ +package art.arcane.iris.util.parallel; + +import art.arcane.iris.Iris; +import art.arcane.volmlib.util.parallel.HyperLockSupport; + +public class HyperLock extends HyperLockSupport { + public HyperLock() { + this(1024, false); + } + + public HyperLock(int capacity) { + this(capacity, false); + } + + public HyperLock(int capacity, boolean fair) { + super(capacity, fair, Iris::warn, Iris::reportError); + } +} diff --git a/core/src/main/java/art/arcane/iris/util/common/parallel/MultiBurst.java b/core/src/main/java/art/arcane/iris/util/common/parallel/MultiBurst.java new file mode 100644 index 000000000..4b6d53895 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/parallel/MultiBurst.java @@ -0,0 +1,69 @@ +package art.arcane.iris.util.parallel; + +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.volmlib.util.parallel.MultiBurstSupport; +import art.arcane.volmlib.util.math.M; +import kotlinx.coroutines.CoroutineDispatcher; +import kotlinx.coroutines.ExecutorsKt; +import java.util.concurrent.ExecutorService; +import java.util.function.IntSupplier; + +public class MultiBurst extends MultiBurstSupport { + private static final long TIMEOUT = Long.getLong("iris.burst.timeout", 15000); + public static final MultiBurst burst = new MultiBurst(); + public static final MultiBurst ioBurst = new MultiBurst("Iris IO", () -> IrisSettings.get().getConcurrency().getIoParallelism()); + private volatile CoroutineDispatcher dispatcher; + private volatile ExecutorService dispatcherService; + + public MultiBurst() { + this("Iris"); + } + + public MultiBurst(String name) { + this(name, Thread.MIN_PRIORITY, () -> IrisSettings.get().getConcurrency().getParallelism()); + } + + public MultiBurst(String name, IntSupplier parallelism) { + this(name, Thread.MIN_PRIORITY, parallelism); + } + + public MultiBurst(String name, int priority, IntSupplier parallelism) { + super(name, priority, parallelism, IrisSettings::getThreadCount, M::ms, Iris::reportError, Iris::info, Iris::warn, TIMEOUT); + } + + public CoroutineDispatcher getDispatcher() { + ExecutorService service = service(); + if (dispatcherService != service || dispatcher == null) { + synchronized (this) { + if (dispatcherService != service || dispatcher == null) { + dispatcher = ExecutorsKt.from(service); + dispatcherService = service; + } + } + } + + return dispatcher; + } + + @Override + public BurstExecutor burst(int estimate) { + return new BurstExecutor(service(), estimate); + } + + @Override + public BurstExecutor burst() { + return burst(16); + } + + @Override + public BurstExecutor burst(boolean multicore) { + BurstExecutor b = burst(); + b.setMulticore(multicore); + return b; + } + + public static void close(ExecutorService service) { + MultiBurstSupport.close(service, M::ms, Iris::info, Iris::warn, Iris::reportError, TIMEOUT); + } +} diff --git a/core/src/main/java/art/arcane/iris/util/common/parallel/NOOPGridLock.java b/core/src/main/java/art/arcane/iris/util/common/parallel/NOOPGridLock.java new file mode 100644 index 000000000..a1d55ee1e --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/parallel/NOOPGridLock.java @@ -0,0 +1,9 @@ +package art.arcane.iris.util.parallel; + +import art.arcane.volmlib.util.parallel.NoopGridLockSupport; + +public class NOOPGridLock extends NoopGridLockSupport { + public NOOPGridLock(int x, int z) { + super(x, z); + } +} diff --git a/core/src/main/java/art/arcane/iris/util/common/parallel/StreamUtils.java b/core/src/main/java/art/arcane/iris/util/common/parallel/StreamUtils.java new file mode 100644 index 000000000..e78e18ac4 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/parallel/StreamUtils.java @@ -0,0 +1,29 @@ +package art.arcane.iris.util.parallel; + +import art.arcane.volmlib.util.parallel.StreamUtilsSupport; +import art.arcane.iris.util.math.Position2; +import org.jetbrains.annotations.Nullable; + +import java.util.function.Consumer; +import java.util.function.Function; +import java.util.stream.Stream; + +public class StreamUtils { + + public static Stream streamRadius(int x, int z, int radius) { + return streamRadius(x, z, radius, radius); + } + + public static Stream streamRadius(int x, int z, int radiusX, int radiusZ) { + return StreamUtilsSupport.streamRadius(x, z, radiusX, radiusZ) + .map(p -> new Position2(p.getX(), p.getZ())); + } + + public static void forEach(Stream stream, Function> mapper, Consumer consumer, @Nullable MultiBurst burst) { + StreamUtilsSupport.forEach(stream, mapper, consumer, burst == null ? null : burst::burst); + } + + public static void forEach(Stream stream, Consumer task, @Nullable MultiBurst burst) { + StreamUtilsSupport.forEach(stream, task, burst == null ? null : burst::burst); + } +} diff --git a/core/src/main/java/art/arcane/iris/util/common/parallel/SyncExecutor.java b/core/src/main/java/art/arcane/iris/util/common/parallel/SyncExecutor.java new file mode 100644 index 000000000..9e7c9a3b9 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/parallel/SyncExecutor.java @@ -0,0 +1,20 @@ +package art.arcane.iris.util.parallel; + +import art.arcane.volmlib.util.parallel.SyncExecutorSupport; +import art.arcane.volmlib.util.math.M; +import art.arcane.volmlib.util.scheduling.SR; + +public class SyncExecutor extends SyncExecutorSupport { + public SyncExecutor(int msPerTick) { + super(msPerTick, M::ms, task -> { + SR sr = new SR() { + @Override + public void run() { + task.run(); + } + }; + + return sr::cancel; + }); + } +} diff --git a/core/src/main/java/com/volmit/iris/util/plugin/Chunks.java b/core/src/main/java/art/arcane/iris/util/common/plugin/Chunks.java similarity index 97% rename from core/src/main/java/com/volmit/iris/util/plugin/Chunks.java rename to core/src/main/java/art/arcane/iris/util/common/plugin/Chunks.java index f6454dafd..e0b7743da 100644 --- a/core/src/main/java/com/volmit/iris/util/plugin/Chunks.java +++ b/core/src/main/java/art/arcane/iris/util/common/plugin/Chunks.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.plugin; +package art.arcane.iris.util.plugin; import org.bukkit.Location; import org.bukkit.World; diff --git a/core/src/main/java/com/volmit/iris/util/plugin/Command.java b/core/src/main/java/art/arcane/iris/util/common/plugin/Command.java similarity index 93% rename from core/src/main/java/com/volmit/iris/util/plugin/Command.java rename to core/src/main/java/art/arcane/iris/util/common/plugin/Command.java index c223c84b4..6ab6c27d7 100644 --- a/core/src/main/java/com/volmit/iris/util/plugin/Command.java +++ b/core/src/main/java/art/arcane/iris/util/common/plugin/Command.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.plugin; +package art.arcane.iris.util.plugin; -import com.volmit.iris.util.format.C; +import art.arcane.iris.util.format.C; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/com/volmit/iris/util/plugin/CommandDummy.java b/core/src/main/java/art/arcane/iris/util/common/plugin/CommandDummy.java similarity index 98% rename from core/src/main/java/com/volmit/iris/util/plugin/CommandDummy.java rename to core/src/main/java/art/arcane/iris/util/common/plugin/CommandDummy.java index c46289bf6..9c46d5000 100644 --- a/core/src/main/java/com/volmit/iris/util/plugin/CommandDummy.java +++ b/core/src/main/java/art/arcane/iris/util/common/plugin/CommandDummy.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.plugin; +package art.arcane.iris.util.plugin; import org.bukkit.Server; import org.bukkit.command.CommandSender; diff --git a/core/src/main/java/com/volmit/iris/util/plugin/Control.java b/core/src/main/java/art/arcane/iris/util/common/plugin/Control.java similarity index 96% rename from core/src/main/java/com/volmit/iris/util/plugin/Control.java rename to core/src/main/java/art/arcane/iris/util/common/plugin/Control.java index ed71caad8..d31915f5e 100644 --- a/core/src/main/java/com/volmit/iris/util/plugin/Control.java +++ b/core/src/main/java/art/arcane/iris/util/common/plugin/Control.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.plugin; +package art.arcane.iris.util.plugin; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/com/volmit/iris/util/plugin/Controller.java b/core/src/main/java/art/arcane/iris/util/common/plugin/Controller.java similarity index 96% rename from core/src/main/java/com/volmit/iris/util/plugin/Controller.java rename to core/src/main/java/art/arcane/iris/util/common/plugin/Controller.java index 0aa777552..a612a4a60 100644 --- a/core/src/main/java/com/volmit/iris/util/plugin/Controller.java +++ b/core/src/main/java/art/arcane/iris/util/common/plugin/Controller.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.plugin; +package art.arcane.iris.util.plugin; -import com.volmit.iris.Iris; +import art.arcane.iris.Iris; public abstract class Controller implements IController { private final String name; diff --git a/core/src/main/java/com/volmit/iris/util/plugin/ICommand.java b/core/src/main/java/art/arcane/iris/util/common/plugin/ICommand.java similarity index 95% rename from core/src/main/java/com/volmit/iris/util/plugin/ICommand.java rename to core/src/main/java/art/arcane/iris/util/common/plugin/ICommand.java index 067198766..20f43e0cb 100644 --- a/core/src/main/java/com/volmit/iris/util/plugin/ICommand.java +++ b/core/src/main/java/art/arcane/iris/util/common/plugin/ICommand.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.plugin; +package art.arcane.iris.util.plugin; -import com.volmit.iris.util.collection.KList; +import art.arcane.volmlib.util.collection.KList; /** * Represents a pawn command diff --git a/core/src/main/java/com/volmit/iris/util/plugin/IController.java b/core/src/main/java/art/arcane/iris/util/common/plugin/IController.java similarity index 96% rename from core/src/main/java/com/volmit/iris/util/plugin/IController.java rename to core/src/main/java/art/arcane/iris/util/common/plugin/IController.java index 401780733..bc1ded134 100644 --- a/core/src/main/java/com/volmit/iris/util/plugin/IController.java +++ b/core/src/main/java/art/arcane/iris/util/common/plugin/IController.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.plugin; +package art.arcane.iris.util.plugin; import org.bukkit.event.Listener; diff --git a/core/src/main/java/com/volmit/iris/util/plugin/Instance.java b/core/src/main/java/art/arcane/iris/util/common/plugin/Instance.java similarity index 96% rename from core/src/main/java/com/volmit/iris/util/plugin/Instance.java rename to core/src/main/java/art/arcane/iris/util/common/plugin/Instance.java index 9eac62fc7..74b91d1a8 100644 --- a/core/src/main/java/com/volmit/iris/util/plugin/Instance.java +++ b/core/src/main/java/art/arcane/iris/util/common/plugin/Instance.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.plugin; +package art.arcane.iris.util.plugin; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/com/volmit/iris/util/plugin/IrisService.java b/core/src/main/java/art/arcane/iris/util/common/plugin/IrisService.java similarity index 93% rename from core/src/main/java/com/volmit/iris/util/plugin/IrisService.java rename to core/src/main/java/art/arcane/iris/util/common/plugin/IrisService.java index a0850418c..f2c613456 100644 --- a/core/src/main/java/com/volmit/iris/util/plugin/IrisService.java +++ b/core/src/main/java/art/arcane/iris/util/common/plugin/IrisService.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.plugin; +package art.arcane.iris.util.plugin; -import com.volmit.iris.Iris; +import art.arcane.iris.Iris; import org.bukkit.event.Listener; public interface IrisService extends Listener { diff --git a/core/src/main/java/com/volmit/iris/util/plugin/MortarCommand.java b/core/src/main/java/art/arcane/iris/util/common/plugin/MortarCommand.java similarity index 96% rename from core/src/main/java/com/volmit/iris/util/plugin/MortarCommand.java rename to core/src/main/java/art/arcane/iris/util/common/plugin/MortarCommand.java index 8e30d0186..e7474b84a 100644 --- a/core/src/main/java/com/volmit/iris/util/plugin/MortarCommand.java +++ b/core/src/main/java/art/arcane/iris/util/common/plugin/MortarCommand.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.plugin; +package art.arcane.iris.util.plugin; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.format.C; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.iris.util.format.C; import org.bukkit.Sound; import java.lang.reflect.Field; diff --git a/core/src/main/java/com/volmit/iris/util/plugin/MortarPermission.java b/core/src/main/java/art/arcane/iris/util/common/plugin/MortarPermission.java similarity index 96% rename from core/src/main/java/com/volmit/iris/util/plugin/MortarPermission.java rename to core/src/main/java/art/arcane/iris/util/common/plugin/MortarPermission.java index 3466db3c9..c8ce8ed24 100644 --- a/core/src/main/java/com/volmit/iris/util/plugin/MortarPermission.java +++ b/core/src/main/java/art/arcane/iris/util/common/plugin/MortarPermission.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.plugin; +package art.arcane.iris.util.plugin; -import com.volmit.iris.Iris; -import com.volmit.iris.util.collection.KList; +import art.arcane.iris.Iris; +import art.arcane.volmlib.util.collection.KList; import org.bukkit.command.CommandSender; import java.lang.reflect.Field; diff --git a/core/src/main/java/com/volmit/iris/util/plugin/Permission.java b/core/src/main/java/art/arcane/iris/util/common/plugin/Permission.java similarity index 96% rename from core/src/main/java/com/volmit/iris/util/plugin/Permission.java rename to core/src/main/java/art/arcane/iris/util/common/plugin/Permission.java index e13a18a3a..fb8a20c5a 100644 --- a/core/src/main/java/com/volmit/iris/util/plugin/Permission.java +++ b/core/src/main/java/art/arcane/iris/util/common/plugin/Permission.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.plugin; +package art.arcane.iris.util.plugin; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/core/src/main/java/com/volmit/iris/util/plugin/PluginRegistry.java b/core/src/main/java/art/arcane/iris/util/common/plugin/PluginRegistry.java similarity index 92% rename from core/src/main/java/com/volmit/iris/util/plugin/PluginRegistry.java rename to core/src/main/java/art/arcane/iris/util/common/plugin/PluginRegistry.java index a762f2ed9..c6db2dafe 100644 --- a/core/src/main/java/com/volmit/iris/util/plugin/PluginRegistry.java +++ b/core/src/main/java/art/arcane/iris/util/common/plugin/PluginRegistry.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.plugin; +package art.arcane.iris.util.plugin; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; import lombok.Getter; import lombok.RequiredArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/util/plugin/PluginRegistryGroup.java b/core/src/main/java/art/arcane/iris/util/common/plugin/PluginRegistryGroup.java similarity index 92% rename from core/src/main/java/com/volmit/iris/util/plugin/PluginRegistryGroup.java rename to core/src/main/java/art/arcane/iris/util/common/plugin/PluginRegistryGroup.java index f6de8db3e..fbe08b73c 100644 --- a/core/src/main/java/com/volmit/iris/util/plugin/PluginRegistryGroup.java +++ b/core/src/main/java/art/arcane/iris/util/common/plugin/PluginRegistryGroup.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.plugin; +package art.arcane.iris.util.plugin; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; public class PluginRegistryGroup { private final KMap> registries = new KMap<>(); diff --git a/core/src/main/java/com/volmit/iris/util/plugin/RouterCommand.java b/core/src/main/java/art/arcane/iris/util/common/plugin/RouterCommand.java similarity index 97% rename from core/src/main/java/com/volmit/iris/util/plugin/RouterCommand.java rename to core/src/main/java/art/arcane/iris/util/common/plugin/RouterCommand.java index e412a3ddc..4a9fcfb3f 100644 --- a/core/src/main/java/com/volmit/iris/util/plugin/RouterCommand.java +++ b/core/src/main/java/art/arcane/iris/util/common/plugin/RouterCommand.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.plugin; +package art.arcane.iris.util.plugin; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; diff --git a/core/src/main/java/com/volmit/iris/util/plugin/VirtualCommand.java b/core/src/main/java/art/arcane/iris/util/common/plugin/VirtualCommand.java similarity index 95% rename from core/src/main/java/com/volmit/iris/util/plugin/VirtualCommand.java rename to core/src/main/java/art/arcane/iris/util/common/plugin/VirtualCommand.java index 789c88661..81e88a80a 100644 --- a/core/src/main/java/com/volmit/iris/util/plugin/VirtualCommand.java +++ b/core/src/main/java/art/arcane/iris/util/common/plugin/VirtualCommand.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.plugin; +package art.arcane.iris.util.plugin; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.reflect.V; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.format.C; +import art.arcane.volmlib.util.reflect.V; import org.bukkit.Bukkit; import org.bukkit.Sound; import org.bukkit.command.CommandSender; diff --git a/core/src/main/java/com/volmit/iris/util/plugin/VolmitPlugin.java b/core/src/main/java/art/arcane/iris/util/common/plugin/VolmitPlugin.java similarity index 97% rename from core/src/main/java/com/volmit/iris/util/plugin/VolmitPlugin.java rename to core/src/main/java/art/arcane/iris/util/common/plugin/VolmitPlugin.java index 130f8b686..bac02d157 100644 --- a/core/src/main/java/com/volmit/iris/util/plugin/VolmitPlugin.java +++ b/core/src/main/java/art/arcane/iris/util/common/plugin/VolmitPlugin.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.plugin; +package art.arcane.iris.util.plugin; -import com.volmit.iris.Iris; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.io.IO; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.reflect.V; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.io.IO; +import art.arcane.volmlib.util.math.M; +import art.arcane.volmlib.util.reflect.V; +import art.arcane.iris.util.scheduling.J; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.*; @@ -317,11 +317,11 @@ public abstract class VolmitPlugin extends JavaPlugin implements Listener { commandCache = new KList<>(); for (Field i : getClass().getDeclaredFields()) { - if (i.isAnnotationPresent(com.volmit.iris.util.plugin.Command.class)) { + if (i.isAnnotationPresent(art.arcane.iris.util.plugin.Command.class)) { try { i.setAccessible(true); MortarCommand pc = (MortarCommand) i.getType().getConstructor().newInstance(); - com.volmit.iris.util.plugin.Command c = i.getAnnotation(com.volmit.iris.util.plugin.Command.class); + art.arcane.iris.util.plugin.Command c = i.getAnnotation(art.arcane.iris.util.plugin.Command.class); registerCommand(pc, c.value()); commandCache.add(pc); v("Registered Commands /" + pc.getNode() + " (" + i.getName() + ")"); diff --git a/core/src/main/java/com/volmit/iris/util/plugin/VolmitSender.java b/core/src/main/java/art/arcane/iris/util/common/plugin/VolmitSender.java similarity index 97% rename from core/src/main/java/com/volmit/iris/util/plugin/VolmitSender.java rename to core/src/main/java/art/arcane/iris/util/common/plugin/VolmitSender.java index dccb95ce7..7f9121d26 100644 --- a/core/src/main/java/com/volmit/iris/util/plugin/VolmitSender.java +++ b/core/src/main/java/art/arcane/iris/util/common/plugin/VolmitSender.java @@ -16,19 +16,19 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.plugin; +package art.arcane.iris.util.plugin; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.decree.DecreeParameter; -import com.volmit.iris.util.decree.virtual.VirtualDecreeCommand; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.decree.DecreeParameter; +import art.arcane.iris.util.decree.virtual.VirtualDecreeCommand; +import art.arcane.iris.util.format.C; +import art.arcane.volmlib.util.format.Form; +import art.arcane.volmlib.util.math.M; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.scheduling.J; import lombok.Getter; import lombok.Setter; import net.kyori.adventure.text.Component; diff --git a/core/src/main/java/com/volmit/iris/util/plugin/chunk/ChunkTickets.java b/core/src/main/java/art/arcane/iris/util/common/plugin/chunk/ChunkTickets.java similarity index 95% rename from core/src/main/java/com/volmit/iris/util/plugin/chunk/ChunkTickets.java rename to core/src/main/java/art/arcane/iris/util/common/plugin/chunk/ChunkTickets.java index 320c74436..e846c0f96 100644 --- a/core/src/main/java/com/volmit/iris/util/plugin/chunk/ChunkTickets.java +++ b/core/src/main/java/art/arcane/iris/util/common/plugin/chunk/ChunkTickets.java @@ -1,6 +1,6 @@ -package com.volmit.iris.util.plugin.chunk; +package art.arcane.iris.util.plugin.chunk; -import com.volmit.iris.Iris; +import art.arcane.iris.Iris; import lombok.NonNull; import org.bukkit.Bukkit; import org.bukkit.Chunk; diff --git a/core/src/main/java/com/volmit/iris/util/plugin/chunk/TicketHolder.java b/core/src/main/java/art/arcane/iris/util/common/plugin/chunk/TicketHolder.java similarity index 87% rename from core/src/main/java/com/volmit/iris/util/plugin/chunk/TicketHolder.java rename to core/src/main/java/art/arcane/iris/util/common/plugin/chunk/TicketHolder.java index abf521c91..0b4a2c53a 100644 --- a/core/src/main/java/com/volmit/iris/util/plugin/chunk/TicketHolder.java +++ b/core/src/main/java/art/arcane/iris/util/common/plugin/chunk/TicketHolder.java @@ -1,8 +1,8 @@ -package com.volmit.iris.util.plugin.chunk; +package art.arcane.iris.util.plugin.chunk; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.data.cache.Cache; -import com.volmit.iris.util.collection.KMap; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.data.cache.Cache; +import art.arcane.volmlib.util.collection.KMap; import lombok.NonNull; import org.bukkit.Chunk; import org.bukkit.World; diff --git a/core/src/main/java/com/volmit/iris/util/reflect/KeyedType.java b/core/src/main/java/art/arcane/iris/util/common/reflect/KeyedType.java similarity index 89% rename from core/src/main/java/com/volmit/iris/util/reflect/KeyedType.java rename to core/src/main/java/art/arcane/iris/util/common/reflect/KeyedType.java index 1316e7c15..312bc711d 100644 --- a/core/src/main/java/com/volmit/iris/util/reflect/KeyedType.java +++ b/core/src/main/java/art/arcane/iris/util/common/reflect/KeyedType.java @@ -1,10 +1,10 @@ -package com.volmit.iris.util.reflect; +package art.arcane.iris.util.reflect; import com.google.gson.Gson; import com.google.gson.TypeAdapter; import com.google.gson.reflect.TypeToken; -import com.volmit.iris.util.data.registry.RegistryTypeAdapter; -import com.volmit.iris.util.data.registry.RegistryUtil; +import art.arcane.iris.util.data.registry.RegistryTypeAdapter; +import art.arcane.iris.util.data.registry.RegistryUtil; import org.bukkit.Keyed; public class KeyedType { diff --git a/core/src/main/java/com/volmit/iris/util/reflect/OldEnum.java b/core/src/main/java/art/arcane/iris/util/common/reflect/OldEnum.java similarity index 98% rename from core/src/main/java/com/volmit/iris/util/reflect/OldEnum.java rename to core/src/main/java/art/arcane/iris/util/common/reflect/OldEnum.java index 7a7500915..64be15859 100644 --- a/core/src/main/java/com/volmit/iris/util/reflect/OldEnum.java +++ b/core/src/main/java/art/arcane/iris/util/common/reflect/OldEnum.java @@ -1,4 +1,4 @@ -package com.volmit.iris.util.reflect; +package art.arcane.iris.util.reflect; import com.google.gson.TypeAdapter; import com.google.gson.stream.JsonReader; diff --git a/core/src/main/java/com/volmit/iris/util/reflect/W.java b/core/src/main/java/art/arcane/iris/util/common/reflect/W.java similarity index 81% rename from core/src/main/java/com/volmit/iris/util/reflect/W.java rename to core/src/main/java/art/arcane/iris/util/common/reflect/W.java index 7febb0611..3a6d9afd4 100644 --- a/core/src/main/java/com/volmit/iris/util/reflect/W.java +++ b/core/src/main/java/art/arcane/iris/util/common/reflect/W.java @@ -1,4 +1,4 @@ -package com.volmit.iris.util.reflect; +package art.arcane.iris.util.reflect; import lombok.Getter; diff --git a/core/src/main/java/com/volmit/iris/util/reflect/WrappedField.java b/core/src/main/java/art/arcane/iris/util/common/reflect/WrappedField.java similarity index 92% rename from core/src/main/java/com/volmit/iris/util/reflect/WrappedField.java rename to core/src/main/java/art/arcane/iris/util/common/reflect/WrappedField.java index 0aad874ad..be316a7d9 100644 --- a/core/src/main/java/com/volmit/iris/util/reflect/WrappedField.java +++ b/core/src/main/java/art/arcane/iris/util/common/reflect/WrappedField.java @@ -1,6 +1,6 @@ -package com.volmit.iris.util.reflect; +package art.arcane.iris.util.reflect; -import com.volmit.iris.Iris; +import art.arcane.iris.Iris; import java.lang.reflect.Field; diff --git a/core/src/main/java/com/volmit/iris/util/reflect/WrappedReturningMethod.java b/core/src/main/java/art/arcane/iris/util/common/reflect/WrappedReturningMethod.java similarity index 92% rename from core/src/main/java/com/volmit/iris/util/reflect/WrappedReturningMethod.java rename to core/src/main/java/art/arcane/iris/util/common/reflect/WrappedReturningMethod.java index 338044781..dd06d59da 100644 --- a/core/src/main/java/com/volmit/iris/util/reflect/WrappedReturningMethod.java +++ b/core/src/main/java/art/arcane/iris/util/common/reflect/WrappedReturningMethod.java @@ -1,6 +1,6 @@ -package com.volmit.iris.util.reflect; +package art.arcane.iris.util.reflect; -import com.volmit.iris.Iris; +import art.arcane.iris.Iris; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; diff --git a/core/src/main/java/com/volmit/iris/util/scheduling/J.java b/core/src/main/java/art/arcane/iris/util/common/scheduling/J.java similarity index 78% rename from core/src/main/java/com/volmit/iris/util/scheduling/J.java rename to core/src/main/java/art/arcane/iris/util/common/scheduling/J.java index 550b94092..827c68022 100644 --- a/core/src/main/java/com/volmit/iris/util/scheduling/J.java +++ b/core/src/main/java/art/arcane/iris/util/common/scheduling/J.java @@ -16,16 +16,21 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.scheduling; +package art.arcane.iris.util.scheduling; -import com.volmit.iris.Iris; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.function.NastyFunction; -import com.volmit.iris.util.function.NastyFuture; -import com.volmit.iris.util.function.NastyRunnable; -import com.volmit.iris.util.function.NastySupplier; -import com.volmit.iris.util.math.FinalInteger; -import com.volmit.iris.util.parallel.MultiBurst; +import art.arcane.iris.Iris; +import art.arcane.iris.core.service.PreservationSVC; +import art.arcane.volmlib.util.function.NastyFunction; +import art.arcane.volmlib.util.function.NastyFuture; +import art.arcane.volmlib.util.function.NastyRunnable; +import art.arcane.volmlib.util.function.NastySupplier; +import art.arcane.volmlib.util.scheduling.AR; +import art.arcane.volmlib.util.scheduling.JSupport; +import art.arcane.volmlib.util.scheduling.SR; +import art.arcane.volmlib.util.scheduling.SchedulerBridge; +import art.arcane.volmlib.util.scheduling.StartupQueueSupport; +import art.arcane.volmlib.util.math.FinalInteger; +import art.arcane.iris.util.parallel.MultiBurst; import org.bukkit.Bukkit; import java.util.concurrent.Callable; @@ -38,29 +43,36 @@ import java.util.function.Supplier; @SuppressWarnings("ALL") public class J { private static int tid = 0; - private static KList afterStartup = new KList<>(); - private static KList afterStartupAsync = new KList<>(); - private static boolean started = false; + private static final StartupQueueSupport STARTUP_QUEUE = new StartupQueueSupport(); + + static { + SchedulerBridge.setSyncScheduler(J::s); + SchedulerBridge.setDelayedSyncScheduler(J::s); + SchedulerBridge.setAsyncScheduler(J::a); + SchedulerBridge.setDelayedAsyncScheduler(J::a); + SchedulerBridge.setSyncRepeatingScheduler(J::sr); + SchedulerBridge.setAsyncRepeatingScheduler(J::ar); + SchedulerBridge.setCancelScheduler(J::car); + SchedulerBridge.setErrorHandler(e -> { + Iris.reportError(e); + e.printStackTrace(); + }); + SchedulerBridge.setInfoLogger(Iris::debug); + SchedulerBridge.setThreadRegistrar(thread -> { + try { + Iris.service(PreservationSVC.class).register(thread); + } catch (Throwable e) { + Iris.reportError(e); + } + }); + } public static void dofor(int a, Function c, int ch, Consumer d) { - for (int i = a; c.apply(i); i += ch) { - c.apply(i); - } + JSupport.dofor(a, c, ch, d); } public static boolean doif(Supplier c, Runnable g) { - try { - if (c.get()) { - g.run(); - return true; - } - } catch (NullPointerException e) { - Iris.reportError(e); - // TODO: Fix this because this is just a suppression for an NPE on g - return false; - } - - return false; + return JSupport.doif(c, g, Iris::reportError); } public static void arun(Runnable a) { @@ -99,86 +111,42 @@ public class J { } public static void attemptAsync(NastyRunnable r) { - J.a(() -> J.attempt(r)); + JSupport.attemptAsync(r::run, J::a); } public static R attemptResult(NastyFuture r, R onError) { - try { - return r.run(); - } catch (Throwable e) { - Iris.reportError(e); - - } - - return onError; + return JSupport.attemptResult(r::run, onError, Iris::reportError); } public static R attemptFunction(NastyFunction r, T param, R onError) { - try { - return r.run(param); - } catch (Throwable e) { - Iris.reportError(e); - - } - - return onError; + return JSupport.attemptFunction(r::run, param, onError, Iris::reportError); } public static boolean sleep(long ms) { - return J.attempt(() -> Thread.sleep(ms)); + return JSupport.sleep(ms); } public static boolean attempt(NastyRunnable r) { - return attemptCatch(r) == null; + return JSupport.attempt(r::run); } public static T attemptResult(NastySupplier r) { - try { - return r.get(); - } catch (Throwable e) { - return null; - } + return JSupport.attemptNullable(r::get); } public static Throwable attemptCatch(NastyRunnable r) { - try { - r.run(); - } catch (Throwable e) { - return e; - } - - return null; + return JSupport.attemptCatch(r::run); } public static T attempt(Supplier t, T i) { - try { - return t.get(); - } catch (Throwable e) { - Iris.reportError(e); - return i; - } + return JSupport.attempt(t::get, i, Iris::reportError); } /** * Dont call this unless you know what you are doing! */ public static void executeAfterStartupQueue() { - if (started) { - return; - } - - started = true; - - for (Runnable r : afterStartup) { - s(r); - } - - for (Runnable r : afterStartupAsync) { - a(r); - } - - afterStartup = null; - afterStartupAsync = null; + JSupport.executeAfterStartupQueue(STARTUP_QUEUE, J::s, J::a); } /** @@ -191,11 +159,7 @@ public class J { * @param r the runnable */ public static void ass(Runnable r) { - if (started) { - s(r); - } else { - afterStartup.add(r); - } + JSupport.enqueueAfterStartupSync(STARTUP_QUEUE, r, J::s); } /** @@ -208,11 +172,7 @@ public class J { * @param r the runnable */ public static void asa(Runnable r) { - if (started) { - a(r); - } else { - afterStartupAsync.add(r); - } + JSupport.enqueueAfterStartupAsync(STARTUP_QUEUE, r, J::a); } /** @@ -327,7 +287,7 @@ public class J { public static void sr(Runnable r, int interval, int intervals) { FinalInteger fi = new FinalInteger(0); - new SR() { + new SR(interval) { @Override public void run() { fi.add(1); @@ -387,7 +347,7 @@ public class J { public static void ar(Runnable r, int interval, int intervals) { FinalInteger fi = new FinalInteger(0); - new AR() { + new AR(interval) { @Override public void run() { fi.add(1); diff --git a/core/src/main/java/com/volmit/iris/util/scheduling/jobs/DownloadJob.java b/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/DownloadJob.java similarity index 94% rename from core/src/main/java/com/volmit/iris/util/scheduling/jobs/DownloadJob.java rename to core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/DownloadJob.java index e4b922529..21bb09b96 100644 --- a/core/src/main/java/com/volmit/iris/util/scheduling/jobs/DownloadJob.java +++ b/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/DownloadJob.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.scheduling.jobs; +package art.arcane.iris.util.scheduling.jobs; -import com.volmit.iris.util.network.DL; -import com.volmit.iris.util.network.DownloadMonitor; +import art.arcane.volmlib.util.network.DL; +import art.arcane.volmlib.util.network.DownloadMonitor; import java.io.File; import java.io.IOException; diff --git a/core/src/main/java/com/volmit/iris/util/scheduling/jobs/Job.java b/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/Job.java similarity index 88% rename from core/src/main/java/com/volmit/iris/util/scheduling/jobs/Job.java rename to core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/Job.java index a378770b5..9d0ca75c6 100644 --- a/core/src/main/java/com/volmit/iris/util/scheduling/jobs/Job.java +++ b/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/Job.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.scheduling.jobs; +package art.arcane.iris.util.scheduling.jobs; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.plugin.VolmitSender; -import com.volmit.iris.util.scheduling.J; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.util.format.C; +import art.arcane.volmlib.util.format.Form; +import art.arcane.iris.util.plugin.VolmitSender; +import art.arcane.iris.util.scheduling.J; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import java.util.concurrent.CompletableFuture; diff --git a/core/src/main/java/com/volmit/iris/util/scheduling/jobs/JobCollection.java b/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/JobCollection.java similarity index 94% rename from core/src/main/java/com/volmit/iris/util/scheduling/jobs/JobCollection.java rename to core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/JobCollection.java index 6b8fde875..9ac378f86 100644 --- a/core/src/main/java/com/volmit/iris/util/scheduling/jobs/JobCollection.java +++ b/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/JobCollection.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.scheduling.jobs; +package art.arcane.iris.util.scheduling.jobs; -import com.volmit.iris.util.collection.KList; +import art.arcane.volmlib.util.collection.KList; public class JobCollection implements Job { private final String name; diff --git a/core/src/main/java/com/volmit/iris/util/scheduling/jobs/ParallelQueueJob.java b/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/ParallelQueueJob.java similarity index 86% rename from core/src/main/java/com/volmit/iris/util/scheduling/jobs/ParallelQueueJob.java rename to core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/ParallelQueueJob.java index 8fd80e9c2..1f80d2a62 100644 --- a/core/src/main/java/com/volmit/iris/util/scheduling/jobs/ParallelQueueJob.java +++ b/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/ParallelQueueJob.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.scheduling.jobs; +package art.arcane.iris.util.scheduling.jobs; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.parallel.BurstExecutor; -import com.volmit.iris.util.parallel.MultiBurst; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.iris.util.parallel.BurstExecutor; +import art.arcane.iris.util.parallel.MultiBurst; public abstract class ParallelQueueJob extends QueueJob { @Override diff --git a/core/src/main/java/com/volmit/iris/util/scheduling/jobs/ParallelRadiusJob.java b/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/ParallelRadiusJob.java similarity index 94% rename from core/src/main/java/com/volmit/iris/util/scheduling/jobs/ParallelRadiusJob.java rename to core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/ParallelRadiusJob.java index 71df2a3f5..3a879cc3f 100644 --- a/core/src/main/java/com/volmit/iris/util/scheduling/jobs/ParallelRadiusJob.java +++ b/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/ParallelRadiusJob.java @@ -1,7 +1,7 @@ -package com.volmit.iris.util.scheduling.jobs; +package art.arcane.iris.util.scheduling.jobs; -import com.volmit.iris.util.math.Spiraler; -import com.volmit.iris.util.parallel.MultiBurst; +import art.arcane.volmlib.util.math.Spiraler; +import art.arcane.iris.util.parallel.MultiBurst; import lombok.SneakyThrows; import lombok.Synchronized; diff --git a/core/src/main/java/com/volmit/iris/util/scheduling/jobs/QueueJob.java b/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/QueueJob.java similarity index 95% rename from core/src/main/java/com/volmit/iris/util/scheduling/jobs/QueueJob.java rename to core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/QueueJob.java index f62cb2d0a..d140fa706 100644 --- a/core/src/main/java/com/volmit/iris/util/scheduling/jobs/QueueJob.java +++ b/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/QueueJob.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.scheduling.jobs; +package art.arcane.iris.util.scheduling.jobs; -import com.volmit.iris.util.collection.KList; +import art.arcane.volmlib.util.collection.KList; import java.util.concurrent.atomic.AtomicInteger; diff --git a/core/src/main/java/com/volmit/iris/util/scheduling/jobs/SingleJob.java b/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/SingleJob.java similarity index 96% rename from core/src/main/java/com/volmit/iris/util/scheduling/jobs/SingleJob.java rename to core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/SingleJob.java index 43c4c2d81..4ce2437be 100644 --- a/core/src/main/java/com/volmit/iris/util/scheduling/jobs/SingleJob.java +++ b/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/SingleJob.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.scheduling.jobs; +package art.arcane.iris.util.scheduling.jobs; public class SingleJob implements Job { private final String name; diff --git a/core/src/main/java/com/volmit/iris/util/agent/Agent.java b/core/src/main/java/art/arcane/iris/util/project/agent/Agent.java similarity index 92% rename from core/src/main/java/com/volmit/iris/util/agent/Agent.java rename to core/src/main/java/art/arcane/iris/util/project/agent/Agent.java index 5f823fc30..0b98ce2e0 100644 --- a/core/src/main/java/com/volmit/iris/util/agent/Agent.java +++ b/core/src/main/java/art/arcane/iris/util/project/agent/Agent.java @@ -1,6 +1,6 @@ -package com.volmit.iris.util.agent; +package art.arcane.iris.util.agent; -import com.volmit.iris.Iris; +import art.arcane.iris.Iris; import net.bytebuddy.agent.ByteBuddyAgent; import net.bytebuddy.dynamic.loading.ClassReloadingStrategy; @@ -10,7 +10,7 @@ import java.nio.file.Files; import java.nio.file.StandardCopyOption; public class Agent { - private static final String NAME = "com.volmit.iris.util.agent.Installer"; + private static final String NAME = "art.arcane.iris.util.agent.Installer"; public static final File AGENT_JAR = new File(Iris.instance.getDataFolder(), "agent.jar"); public static ClassReloadingStrategy installed() { diff --git a/core/src/main/java/com/volmit/iris/util/context/IrisContext.java b/core/src/main/java/art/arcane/iris/util/project/context/IrisContext.java similarity index 91% rename from core/src/main/java/com/volmit/iris/util/context/IrisContext.java rename to core/src/main/java/art/arcane/iris/util/project/context/IrisContext.java index 43423e3be..5448cbe0b 100644 --- a/core/src/main/java/com/volmit/iris/util/context/IrisContext.java +++ b/core/src/main/java/art/arcane/iris/util/project/context/IrisContext.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.context; +package art.arcane.iris.util.context; -import com.volmit.iris.Iris; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.IrisComplex; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.scheduling.ChronoLatch; +import art.arcane.iris.Iris; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.engine.IrisComplex; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.scheduling.ChronoLatch; import lombok.Data; @Data diff --git a/core/src/main/java/com/volmit/iris/util/hunk/Hunk.java b/core/src/main/java/art/arcane/iris/util/project/hunk/Hunk.java similarity index 67% rename from core/src/main/java/com/volmit/iris/util/hunk/Hunk.java rename to core/src/main/java/art/arcane/iris/util/project/hunk/Hunk.java index 125268e57..5cc553ca6 100644 --- a/core/src/main/java/com/volmit/iris/util/hunk/Hunk.java +++ b/core/src/main/java/art/arcane/iris/util/project/hunk/Hunk.java @@ -16,21 +16,25 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.hunk; +package art.arcane.iris.util.hunk; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.object.IrisPosition; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.function.*; -import com.volmit.iris.util.hunk.storage.*; -import com.volmit.iris.util.hunk.view.*; -import com.volmit.iris.util.interpolation.InterpolationMethod; -import com.volmit.iris.util.interpolation.InterpolationMethod3D; -import com.volmit.iris.util.interpolation.IrisInterpolation; -import com.volmit.iris.util.math.BlockPosition; -import com.volmit.iris.util.parallel.BurstExecutor; -import com.volmit.iris.util.parallel.MultiBurst; -import com.volmit.iris.util.stream.interpolation.Interpolated; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.object.IrisPosition; +import art.arcane.volmlib.util.function.*; +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.HunkLike; +import art.arcane.iris.util.hunk.storage.*; +import art.arcane.iris.util.hunk.view.*; +import art.arcane.iris.util.interpolation.InterpolationMethod; +import art.arcane.iris.util.interpolation.InterpolationMethod3D; +import art.arcane.iris.util.interpolation.IrisInterpolation; +import art.arcane.volmlib.util.math.BlockPosition; +import art.arcane.iris.util.parallel.MultiBurst; +import art.arcane.iris.util.stream.interpolation.Interpolated; import org.bukkit.Chunk; import org.bukkit.block.Biome; import org.bukkit.block.data.BlockData; @@ -45,7 +49,27 @@ import java.util.function.Function; import java.util.function.Predicate; @SuppressWarnings("ALL") -public interface Hunk { +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. @@ -55,19 +79,19 @@ public interface Hunk { * @return the hunk view */ static Hunk view(Hunk src) { - return new HunkView(src); + return adapt(new art.arcane.volmlib.util.hunk.view.HunkView<>(unwrap(src))); } static Hunk convertedReadView(Hunk src, Function reader) { - return new FunctionalHunkView(src, reader, null); + return adapt(new art.arcane.volmlib.util.hunk.view.FunctionalHunkView<>(unwrap(src), reader, null)); } static Hunk convertedWriteView(Hunk src, Function writer) { - return new FunctionalHunkView(src, null, 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 new FunctionalHunkView(src, reader, writer); + return adapt(new art.arcane.volmlib.util.hunk.view.FunctionalHunkView<>(unwrap(src), reader, writer)); } static Hunk view(BiomeGrid biome, int minHeight, int maxHeight) { @@ -75,7 +99,7 @@ public interface Hunk { } static Hunk fringe(Hunk i, Hunk o) { - return new FringedHunkView<>(i, o); + return adapt(new art.arcane.volmlib.util.hunk.view.FringedHunkView<>(unwrap(i), unwrap(o))); } static Hunk view(ChunkData src) { @@ -118,11 +142,11 @@ public interface Hunk { } static Hunk newMappedHunk(int w, int h, int d) { - return new MappedHunk<>(w, h, d); + return adapt(new art.arcane.volmlib.util.hunk.storage.MappedHunk<>(w, h, d)); } static Hunk newMappedHunkSynced(int w, int h, int d) { - return new MappedHunk(w, h, d).synchronize(); + return adapt(new art.arcane.volmlib.util.hunk.storage.MappedSyncHunk<>(w, h, d)); } @SafeVarargs @@ -205,23 +229,15 @@ public interface Hunk { return; } - BurstExecutor e = MultiBurst.burst.burst(parallelism); - KList rq = new KList(parallelism); - getDualSections2D(parallelism, a, b, (xx, yy, zz, ha, hr, r) -> e.queue(() -> - { - v.accept(xx, yy, zz, ha, hr); - - synchronized (rq) { - rq.add(r); - } - }), (x, y, z, hax, hbx) -> - { - a.insert(x, y, z, hax); - b.insert(x, y, z, hbx); - }); - e.complete(); - rq.forEach(Runnable::run); - 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) { @@ -229,29 +245,8 @@ public interface Hunk { throw new RuntimeException("Hunk sizes must match!"); } - int dim = a.get2DDimension(sections); - - if (sections <= 1) { - getDualSection(0, 0, 0, a.getWidth(), a.getHeight(), a.getDepth(), a, b, (ha, hr, r) -> v.accept(0, 0, 0, ha, hr, r), inserterAB); - return; - } - - int w = a.getWidth() / dim; - int wr = a.getWidth() - (w * dim); - int d = a.getDepth() / dim; - int dr = a.getDepth() - (d * dim); - int i, j; - - for (i = 0; i < a.getWidth(); i += w) { - int ii = i; - - for (j = 0; j < a.getDepth(); j += d) { - int jj = j; - getDualSection(i, 0, j, i + w + (i == 0 ? wr : 0), a.getHeight(), j + d + (j == 0 ? dr : 0), a, b, (ha, hr, r) -> v.accept(ii, 0, jj, ha, hr, r), inserterAB); - i = i == 0 ? i + wr : i; - j = j == 0 ? j + dr : j; - } - } + 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) { @@ -297,84 +292,44 @@ public interface Hunk { } static IrisPosition rotatedBounding(int w, int h, int d, double x, double y, double z) { - int[] iii = {0, 0, 0}; - int[] aaa = {w, h, d}; - int[] aai = {w, h, 0}; - int[] iaa = {0, h, d}; - int[] aia = {w, 0, d}; - int[] iai = {0, h, 0}; - int[] iia = {0, 0, d}; - int[] aii = {w, 0, 0}; - rotate(x, y, z, iii); - rotate(x, y, z, aaa); - rotate(x, y, z, aai); - rotate(x, y, z, iaa); - rotate(x, y, z, aia); - rotate(x, y, z, iai); - rotate(x, y, z, iia); - rotate(x, y, z, aii); - int maxX = max(iii[0], aaa[0], aai[0], iaa[0], aia[0], iai[0], iia[0], aii[0]); - int minX = min(iii[0], aaa[0], aai[0], iaa[0], aia[0], iai[0], iia[0], aii[0]); - int maxY = max(iii[1], aaa[1], aai[1], iaa[1], aia[1], iai[1], iia[1], aii[1]); - int minY = min(iii[1], aaa[1], aai[1], iaa[1], aia[1], iai[1], iia[1], aii[1]); - int maxZ = max(iii[2], aaa[2], aai[2], iaa[2], aia[2], iai[2], iia[2], aii[2]); - int minZ = min(iii[2], aaa[2], aai[2], iaa[2], aia[2], iai[2], iia[2], aii[2]); - return new IrisPosition(maxX - minX, maxY - minY, maxZ - minZ); + 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 Math.max(Math.max(Math.max(a5, a6), Math.max(a7, a8)), Math.max(Math.max(a1, a2), Math.max(a3, a4))); + 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 Math.min(Math.min(Math.min(a5, a6), Math.min(a7, a8)), Math.min(Math.min(a1, a2), Math.min(a3, a4))); + return HunkCoreSupport.min8(a1, a2, a3, a4, a5, a6, a7, a8); } static void rotate(double x, double y, double z, int[] c) { - if (x % 360 != 0) { - rotateAroundX(Math.toRadians(x), c); - } - - if (y % 360 != 0) { - rotateAroundY(Math.toRadians(y), c); - } - - if (z % 360 != 0) { - rotateAroundZ(Math.toRadians(z), c); - } + HunkCoreSupport.rotate(x, y, z, c); } static void rotateAroundX(double a, int[] c) { - rotateAroundX(Math.cos(a), Math.sin(a), c); + HunkCoreSupport.rotateAroundX(a, c); } static void rotateAroundX(double cos, double sin, int[] c) { - int y = (int) Math.floor(cos * (double) (c[1] + 0.5) - sin * (double) (c[2] + 0.5)); - int z = (int) Math.floor(sin * (double) (c[1] + 0.5) + cos * (double) (c[2] + 0.5)); - c[1] = y; - c[2] = z; + HunkCoreSupport.rotateAroundX(cos, sin, c); } static void rotateAroundY(double a, int[] c) { - rotateAroundY(Math.cos(a), Math.sin(a), c); + HunkCoreSupport.rotateAroundY(a, c); } static void rotateAroundY(double cos, double sin, int[] c) { - int x = (int) Math.floor(cos * (double) (c[0] + 0.5) + sin * (double) (c[2] + 0.5)); - int z = (int) Math.floor(-sin * (double) (c[0] + 0.5) + cos * (double) (c[2] + 0.5)); - c[0] = x; - c[2] = z; + HunkCoreSupport.rotateAroundY(cos, sin, c); } static void rotateAroundZ(double a, int[] c) { - rotateAroundZ(Math.cos(a), Math.sin(a), c); + HunkCoreSupport.rotateAroundZ(a, c); } static void rotateAroundZ(double cos, double sin, int[] c) { - int x = (int) Math.floor(cos * (double) (c[0] + 0.5) - sin * (double) (c[1] + 0.5)); - int y = (int) Math.floor(sin * (double) (c[0] + 0.5) + cos * (double) (c[1] + 0.5)); - c[0] = x; - c[1] = y; + HunkCoreSupport.rotateAroundZ(cos, sin, c); } default boolean isMapped() { @@ -386,19 +341,19 @@ public interface Hunk { } default Hunk listen(Consumer4 l) { - return new ListeningHunk<>(this, l); + return adapt(new art.arcane.volmlib.util.hunk.view.ListeningHunk<>(unwrap(this), l)); } default Hunk synchronize() { - return new SynchronizedHunkView<>(this); + return adapt(new art.arcane.volmlib.util.hunk.view.SynchronizedHunkView<>(unwrap(this))); } default Hunk trackWrite(AtomicBoolean b) { - return new WriteTrackHunk(this, b); + return adapt(new art.arcane.volmlib.util.hunk.view.WriteTrackHunk<>(unwrap(this), b)); } default Hunk readOnly() { - return new ReadOnlyHunk<>(this); + return adapt(new art.arcane.volmlib.util.hunk.view.ReadOnlyHunk<>(unwrap(this))); } default int getNonNullEntries() { @@ -413,11 +368,11 @@ public interface Hunk { } default Hunk invertY() { - return new InvertedHunkView(this); + return adapt(new art.arcane.volmlib.util.hunk.view.InvertedHunkView<>(unwrap(this))); } default int getMaximumDimension() { - return Math.max(getWidth(), Math.max(getHeight(), getDepth())); + return HunkCoreSupport.getMaximumDimension(this); } default int getIdeal2DParallelism() { @@ -429,49 +384,27 @@ public interface Hunk { } default int getMinimumDimension() { - return Math.min(getWidth(), Math.min(getHeight(), getDepth())); + return HunkCoreSupport.getMinimumDimension(this); } default int getMax2DParallelism() { - return (int) Math.pow(getMinimumDimension() / 2f, 2); + return HunkCoreSupport.getMax2DParallelism(this); } default int getMax3DParallelism() { - return (int) Math.pow(getMinimumDimension() / 2f, 3); + return HunkCoreSupport.getMax3DParallelism(this); } default int filterDimension(int dim) { - if (dim <= 1) { - return 1; - } - - dim = dim % 2 != 0 ? dim + 1 : dim; - - if (dim > getMinimumDimension() / 2) { - if (dim <= 2) { - return 1; - } - - dim -= 2; - } - - return dim; + return HunkCoreSupport.filterDimension(dim, getMinimumDimension()); } default int get2DDimension(int sections) { - if (sections <= 1) { - return 1; - } - - return filterDimension((int) Math.ceil(Math.sqrt(sections))); + return HunkCoreSupport.get2DDimension(sections, getMinimumDimension()); } default int get3DDimension(int sections) { - if (sections <= 1) { - return 1; - } - - return filterDimension((int) Math.ceil(Math.cbrt(sections))); + return HunkCoreSupport.get3DDimension(sections, getMinimumDimension()); } /** @@ -637,7 +570,7 @@ public interface Hunk { } default Hunk drift(int x, int y, int z) { - return new DriftHunkView<>(this, x, y, z); + return adapt(new art.arcane.volmlib.util.hunk.view.DriftHunkView<>(unwrap(this), x, y, z)); } /** @@ -790,29 +723,18 @@ public interface Hunk { return this; } - BurstExecutor e = MultiBurst.burst.burst(parallelism); - if (isAtomic()) { - getSectionsAtomic2D(parallelism, (xx, yy, zz, h) -> e.queue(() -> - { - v.accept(xx, yy, zz, h); - })); - - e.complete(); + HunkComputeSupport.computeAtomic( + parallelism, + p -> MultiBurst.burst.burst(p), + sections -> getSectionsAtomic2D(parallelism, sections), + v); } else { - KList rq = new KList(parallelism); - - getSections2D(parallelism, (xx, yy, zz, h, r) -> e.queue(() -> - { - v.accept(xx, yy, zz, h); - - synchronized (rq) { - rq.add(r); - } - }), this::insert); - - e.complete(); - rq.forEach(Runnable::run); + HunkComputeSupport.computeMerged( + parallelism, + p -> MultiBurst.burst.burst(p), + sections -> getSections2D(parallelism, sections, this::insert), + v); } return this; @@ -824,18 +746,11 @@ public interface Hunk { return this; } - BurstExecutor e = MultiBurst.burst.burst(parallelism); - KList rq = new KList(parallelism); - getSections2DYLimit(parallelism, ymin, ymax, (xx, yy, zz, h, r) -> e.queue(() -> - { - v.accept(xx, yy, zz, h); - - synchronized (rq) { - rq.add(r); - } - }), this::insert); - e.complete(); - rq.forEach(Runnable::run); + HunkComputeSupport.computeMerged( + parallelism, + p -> MultiBurst.burst.burst(p), + sections -> getSections2DYLimit(parallelism, ymin, ymax, sections, this::insert), + v); return this; } @@ -849,17 +764,11 @@ public interface Hunk { return this; } - BurstExecutor e = MultiBurst.burst.burst(parallelism); - KList rq = new KList(parallelism); - getSections3D(parallelism, (xx, yy, zz, h, r) -> e.queue(() -> - { - v.accept(xx, yy, zz, h); - synchronized (rq) { - rq.add(r); - } - }), this::insert); - e.complete(); - rq.forEach(Runnable::run); + HunkComputeSupport.computeMerged( + parallelism, + p -> MultiBurst.burst.burst(p), + sections -> getSections3D(parallelism, sections, this::insert), + v); return this; } @@ -868,86 +777,20 @@ public interface Hunk { } default Hunk getSectionsAtomic2D(int sections, Consumer4> v) { - int dim = get2DDimension(sections); - - if (sections <= 1) { - getAtomicSection(0, 0, 0, getWidth(), getHeight(), getDepth(), (hh) -> v.accept(0, 0, 0, hh)); - return this; - } - - int w = getWidth() / dim; - int wr = getWidth() - (w * dim); - int d = getDepth() / dim; - int dr = getDepth() - (d * dim); - int i, j; - - for (i = 0; i < getWidth(); i += w) { - int ii = i; - - for (j = 0; j < getDepth(); j += d) { - int jj = j; - getAtomicSection(i, 0, j, i + w + (i == 0 ? wr : 0), getHeight(), j + d + (j == 0 ? dr : 0), (h) -> v.accept(ii, 0, jj, h)); - i = i == 0 ? i + wr : i; - j = j == 0 ? j + dr : j; - } - } - + 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) { - int dim = get2DDimension(sections); - - if (sections <= 1) { - getSection(0, 0, 0, getWidth(), getHeight(), getDepth(), (hh, r) -> v.accept(0, 0, 0, hh, r), inserter); - return this; - } - - int w = getWidth() / dim; - int wr = getWidth() - (w * dim); - int d = getDepth() / dim; - int dr = getDepth() - (d * dim); - int i, j; - - for (i = 0; i < getWidth(); i += w) { - int ii = i; - - for (j = 0; j < getDepth(); j += d) { - int jj = j; - getSection(i, 0, j, i + w + (i == 0 ? wr : 0), getHeight(), j + d + (j == 0 ? dr : 0), (h, r) -> v.accept(ii, 0, jj, h, r), inserter); - i = i == 0 ? i + wr : i; - j = j == 0 ? j + dr : j; - } - } - + 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) { - int dim = get2DDimension(sections); - - if (sections <= 1) { - getSection(0, 0, 0, getWidth(), getHeight(), getDepth(), (hh, r) -> v.accept(0, 0, 0, hh, r), inserter); - return this; - } - - int w = getWidth() / dim; - int wr = getWidth() - (w * dim); - int d = getDepth() / dim; - int dr = getDepth() - (d * dim); - int i, j; - - for (i = 0; i < getWidth(); i += w) { - int ii = i; - - for (j = 0; j < getDepth(); j += d) { - int jj = j; - getSection(i, ymin, j, i + w + (i == 0 ? wr : 0), ymax, j + d + (j == 0 ? dr : 0), (h, r) -> v.accept(ii, ymin, jj, h, r), inserter); - i = i == 0 ? i + wr : i; - j = j == 0 ? j + dr : j; - } - } - + 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; } @@ -956,37 +799,8 @@ public interface Hunk { } default Hunk getSections3D(int sections, Consumer5, Runnable> v, Consumer4> inserter) { - int dim = get3DDimension(sections); - - if (sections <= 1) { - getSection(0, 0, 0, getWidth(), getHeight(), getDepth(), (hh, r) -> v.accept(0, 0, 0, hh, r), inserter); - return this; - } - - int w = getWidth() / dim; - int h = getHeight() / dim; - int d = getDepth() / dim; - int wr = getWidth() - (w * dim); - int hr = getHeight() - (h * dim); - int dr = getDepth() - (d * dim); - int i, j, k; - - for (i = 0; i < getWidth(); i += w) { - int ii = i; - - for (j = 0; j < getHeight(); j += d) { - int jj = j; - - for (k = 0; k < getDepth(); k += d) { - int kk = k; - getSection(ii, jj, kk, i + w + (i == 0 ? wr : 0), j + h + (j == 0 ? hr : 0), k + d + (k == 0 ? dr : 0), (hh, r) -> v.accept(ii, jj, kk, hh, r), inserter); - i = i == 0 ? i + wr : i; - j = j == 0 ? j + hr : j; - k = k == 0 ? k + dr : k; - } - } - } - + 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; } @@ -1044,7 +858,7 @@ public interface Hunk { * @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 new HunkView(this, x2 - x1, y2 - y1, z2 - z1, x1, y1, z1); + return adapt(new art.arcane.volmlib.util.hunk.view.HunkView<>(unwrap(this), x2 - x1, y2 - y1, z2 - z1, x1, y1, z1)); } /** @@ -1074,13 +888,7 @@ public interface Hunk { * @param t the value to set */ default void set(int x1, int y1, int z1, int x2, int y2, int z2, T t) { - for (int i = x1; i <= x2; i++) { - for (int j = y1; j <= y2; j++) { - for (int k = z1; k <= z2; k++) { - setRaw(i, j, k, t); - } - } - } + HunkMutationSupport.setRangeInclusive(this, x1, y1, z1, x2, y2, z2, t); } /** @@ -1092,7 +900,7 @@ public interface Hunk { * @return the value closest to the border of the hunk */ default T getClosest(int x, int y, int z) { - return getRaw(x >= getWidth() ? getWidth() - 1 : x < 0 ? 0 : x, y >= getHeight() ? getHeight() - 1 : y < 0 ? 0 : y, z >= getDepth() ? getDepth() - 1 : z < 0 ? 0 : z); + return HunkMutationSupport.getClosest(this, x, y, z); } default BlockPosition getCenter() { @@ -1112,7 +920,7 @@ public interface Hunk { } default void fill(T t) { - set(0, 0, 0, getWidth() - 1, getHeight() - 1, getDepth() - 1, t); + HunkMutationSupport.fill(this, t); } /** @@ -1187,19 +995,11 @@ public interface Hunk { } default void setIfExists(int x, int y, int z, T t) { - if (x < 0 || x >= getWidth() || y < 0 || y >= getHeight() || z < 0 || z >= getDepth()) { - return; - } - - setRaw(x, y, z, t); + HunkMutationSupport.setIfExists(this, x, y, z, t); } default T getIfExists(int x, int y, int z, T t) { - if (x < 0 || x >= getWidth() || y < 0 || y >= getHeight() || z < 0 || z >= getDepth()) { - return t; - } - - return getOr(x, y, z, t); + return HunkMutationSupport.getIfExists(this, x, y, z, t); } default T getIfExists(int x, int y, int z) { @@ -1239,13 +1039,7 @@ public interface Hunk { } default T getOr(int x, int y, int z, T t) { - T v = getRaw(x, y, z); - - if (v == null) { - return t; - } - - return v; + return HunkMutationSupport.getOr(this, x, y, z, t); } /** @@ -1305,13 +1099,7 @@ public interface Hunk { * @param invertY should the inserted hunk be inverted */ default void insert(int offX, int offY, int offZ, Hunk hunk, boolean invertY) { - for (int i = offX; i < offX + hunk.getWidth(); i++) { - for (int j = offY; j < offY + hunk.getHeight(); j++) { - for (int k = offZ; k < offZ + hunk.getDepth(); k++) { - setRaw(i, j, k, hunk.getRaw(i - offX, j - offY, k - offZ)); - } - } - } + HunkMutationSupport.insert(this, offX, offY, offZ, hunk); } /** @@ -1326,15 +1114,7 @@ public interface Hunk { * @param invertY should the inserted hunk be inverted */ default void insertSoftly(int offX, int offY, int offZ, Hunk hunk, boolean invertY, Predicate shouldOverwrite) { - for (int i = offX; i < offX + hunk.getWidth(); i++) { - for (int j = offY; j < offY + hunk.getHeight(); j++) { - for (int k = offZ; k < offZ + hunk.getDepth(); k++) { - if (shouldOverwrite.test(getRaw(i, j, k))) { - setRaw(i, j, k, hunk.getRaw(i - offX, j - offY, k - offZ)); - } - } - } - } + HunkMutationSupport.insertSoftly(this, offX, offY, offZ, hunk, shouldOverwrite); } /** @@ -1355,21 +1135,13 @@ public interface Hunk { * @return the new hunk */ default Hunk interpolate3D(double scale, InterpolationMethod3D d, Interpolated interpolated) { - Hunk t = Hunk.newArrayHunk((int) (getWidth() * scale), (int) (getHeight() * scale), (int) (getDepth() * scale)); - NoiseProvider3 n3 = (x, y, z) -> interpolated.toDouble( - t.get((int) (x / scale), - (int) (y / scale), - (int) (z / scale))); - - for (int i = 0; i < t.getWidth(); i++) { - for (int j = 0; j < t.getHeight(); j++) { - for (int k = 0; k < t.getDepth(); k++) { - t.set(i, j, k, interpolated.fromDouble(IrisInterpolation.getNoise3D(d, i, j, k, scale, n3))); - } - } - } - - return t; + return HunkInterpolationSupport.interpolate3D( + this, + scale, + Hunk::newArrayHunk, + interpolated::toDouble, + interpolated::fromDouble, + (x, y, z, s, noise) -> IrisInterpolation.getNoise3D(d, x, y, z, s, noise)); } /** @@ -1382,71 +1154,17 @@ public interface Hunk { * @return the new hunk */ default Hunk interpolate2D(double scale, InterpolationMethod d, Interpolated interpolated) { - Hunk t = Hunk.newArrayHunk((int) (getWidth() * scale), 1, (int) (getDepth() * scale)); - NoiseProvider n2 = (x, z) -> interpolated.toDouble( - t.get((int) (x / scale), - 0, - (int) (z / scale))); - - for (int i = 0; i < t.getWidth(); i++) { - for (int j = 0; j < t.getDepth(); j++) { - t.set(i, 0, j, interpolated.fromDouble(IrisInterpolation.getNoise(d, i, j, scale, n2))); - } - } - - return t; + 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) { - int w = getWidth(); - int h = getHeight(); - int d = getDepth(); - int i, j, k; - int[] c = {w / 2, h / 2, d / 2}; - int[] b = {0, 0, 0}; - int[] iii = {0, 0, 0}; - int[] aaa = {w, h, d}; - int[] aai = {w, h, 0}; - int[] iaa = {0, h, d}; - int[] aia = {w, 0, d}; - int[] iai = {0, h, 0}; - int[] iia = {0, 0, d}; - int[] aii = {w, 0, 0}; - rotate(x, y, z, iii); - rotate(x, y, z, aaa); - rotate(x, y, z, aai); - rotate(x, y, z, iaa); - rotate(x, y, z, aia); - rotate(x, y, z, iai); - rotate(x, y, z, iia); - rotate(x, y, z, aii); - int maxX = max(iii[0], aaa[0], aai[0], iaa[0], aia[0], iai[0], iia[0], aii[0]); - int minX = min(iii[0], aaa[0], aai[0], iaa[0], aia[0], iai[0], iia[0], aii[0]); - int maxY = max(iii[1], aaa[1], aai[1], iaa[1], aia[1], iai[1], iia[1], aii[1]); - int minY = min(iii[1], aaa[1], aai[1], iaa[1], aia[1], iai[1], iia[1], aii[1]); - int maxZ = max(iii[2], aaa[2], aai[2], iaa[2], aia[2], iai[2], iia[2], aii[2]); - int minZ = min(iii[2], aaa[2], aai[2], iaa[2], aia[2], iai[2], iia[2], aii[2]); - Hunk r = builder.get(maxX - minX, maxY - minY, maxZ - minZ); - int[] cr = {(maxX - minX) / 2, (maxY - minY) / 2, (maxZ - minZ) / 2}; - - for (i = 0; i < w; i++) { - for (j = 0; j < h; j++) { - for (k = 0; k < d; k++) { - b[0] = i - c[0]; - b[1] = j - c[1]; - b[2] = k - c[2]; - rotate(x, y, z, b); - - try { - r.set(b[0] + cr[0], b[1] + cr[1], b[2] + cr[2], get(i, j, k)); - } catch (Throwable e) { - - } - } - } - } - - return r; + return HunkCoreSupport.rotate(this, x, y, z, builder::get); } default boolean isEmpty() { @@ -1454,10 +1172,10 @@ public interface Hunk { } default boolean contains(int x, int y, int z) { - return x < getWidth() && x >= 0 && y < getHeight() && y >= 0 && z < getDepth() && z >= 0; + return HunkCoreSupport.contains(this, x, y, z); } default int volume() { - return getWidth() * getDepth() * getHeight(); + return HunkCoreSupport.volume(this); } } diff --git a/core/src/main/java/com/volmit/iris/util/hunk/HunkFace.java b/core/src/main/java/art/arcane/iris/util/project/hunk/HunkFace.java similarity index 51% rename from core/src/main/java/com/volmit/iris/util/hunk/HunkFace.java rename to core/src/main/java/art/arcane/iris/util/project/hunk/HunkFace.java index 8a245c7fc..181eb9584 100644 --- a/core/src/main/java/com/volmit/iris/util/hunk/HunkFace.java +++ b/core/src/main/java/art/arcane/iris/util/project/hunk/HunkFace.java @@ -16,13 +16,27 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.hunk; +package art.arcane.iris.util.hunk; public enum HunkFace { - TOP, - BOTTOM, - EAST, - WEST, - NORTH, - SOUTH + TOP(art.arcane.volmlib.util.hunk.HunkFace.TOP), + BOTTOM(art.arcane.volmlib.util.hunk.HunkFace.BOTTOM), + EAST(art.arcane.volmlib.util.hunk.HunkFace.EAST), + WEST(art.arcane.volmlib.util.hunk.HunkFace.WEST), + NORTH(art.arcane.volmlib.util.hunk.HunkFace.NORTH), + SOUTH(art.arcane.volmlib.util.hunk.HunkFace.SOUTH); + + private final art.arcane.volmlib.util.hunk.HunkFace shared; + + HunkFace(art.arcane.volmlib.util.hunk.HunkFace shared) { + this.shared = shared; + } + + public art.arcane.volmlib.util.hunk.HunkFace shared() { + return shared; + } + + public static HunkFace fromShared(art.arcane.volmlib.util.hunk.HunkFace shared) { + return HunkFace.valueOf(shared.name()); + } } 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 new file mode 100644 index 000000000..67c2e71b9 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/project/hunk/SharedHunkAdapter.java @@ -0,0 +1,64 @@ +package art.arcane.iris.util.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/com/volmit/iris/util/hunk/storage/ArrayHunk.java b/core/src/main/java/art/arcane/iris/util/project/hunk/storage/ArrayHunk.java similarity index 92% rename from core/src/main/java/com/volmit/iris/util/hunk/storage/ArrayHunk.java rename to core/src/main/java/art/arcane/iris/util/project/hunk/storage/ArrayHunk.java index fa213ef5f..b0db71292 100644 --- a/core/src/main/java/com/volmit/iris/util/hunk/storage/ArrayHunk.java +++ b/core/src/main/java/art/arcane/iris/util/project/hunk/storage/ArrayHunk.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.hunk.storage; +package art.arcane.iris.util.hunk.storage; -import com.volmit.iris.engine.data.cache.Cache; -import com.volmit.iris.util.hunk.Hunk; +import art.arcane.iris.engine.data.cache.Cache; +import art.arcane.iris.util.hunk.Hunk; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/util/hunk/storage/AtomicDoubleHunk.java b/core/src/main/java/art/arcane/iris/util/project/hunk/storage/AtomicDoubleHunk.java similarity index 95% rename from core/src/main/java/com/volmit/iris/util/hunk/storage/AtomicDoubleHunk.java rename to core/src/main/java/art/arcane/iris/util/project/hunk/storage/AtomicDoubleHunk.java index 7df375a1d..3f7cb1bff 100644 --- a/core/src/main/java/com/volmit/iris/util/hunk/storage/AtomicDoubleHunk.java +++ b/core/src/main/java/art/arcane/iris/util/project/hunk/storage/AtomicDoubleHunk.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.hunk.storage; +package art.arcane.iris.util.hunk.storage; import com.google.common.util.concurrent.AtomicDoubleArray; -import com.volmit.iris.util.hunk.Hunk; +import art.arcane.iris.util.hunk.Hunk; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/util/hunk/storage/AtomicHunk.java b/core/src/main/java/art/arcane/iris/util/project/hunk/storage/AtomicHunk.java similarity index 95% rename from core/src/main/java/com/volmit/iris/util/hunk/storage/AtomicHunk.java rename to core/src/main/java/art/arcane/iris/util/project/hunk/storage/AtomicHunk.java index b2297fa98..149ad23d1 100644 --- a/core/src/main/java/com/volmit/iris/util/hunk/storage/AtomicHunk.java +++ b/core/src/main/java/art/arcane/iris/util/project/hunk/storage/AtomicHunk.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.hunk.storage; +package art.arcane.iris.util.hunk.storage; -import com.volmit.iris.util.hunk.Hunk; +import art.arcane.iris.util.hunk.Hunk; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/util/hunk/storage/AtomicIntegerHunk.java b/core/src/main/java/art/arcane/iris/util/project/hunk/storage/AtomicIntegerHunk.java similarity index 95% rename from core/src/main/java/com/volmit/iris/util/hunk/storage/AtomicIntegerHunk.java rename to core/src/main/java/art/arcane/iris/util/project/hunk/storage/AtomicIntegerHunk.java index 833d3c50e..d828e8105 100644 --- a/core/src/main/java/com/volmit/iris/util/hunk/storage/AtomicIntegerHunk.java +++ b/core/src/main/java/art/arcane/iris/util/project/hunk/storage/AtomicIntegerHunk.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.hunk.storage; +package art.arcane.iris.util.hunk.storage; -import com.volmit.iris.util.hunk.Hunk; +import art.arcane.iris.util.hunk.Hunk; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/com/volmit/iris/util/hunk/storage/AtomicLongHunk.java b/core/src/main/java/art/arcane/iris/util/project/hunk/storage/AtomicLongHunk.java similarity index 95% rename from core/src/main/java/com/volmit/iris/util/hunk/storage/AtomicLongHunk.java rename to core/src/main/java/art/arcane/iris/util/project/hunk/storage/AtomicLongHunk.java index 98b452584..2718f5106 100644 --- a/core/src/main/java/com/volmit/iris/util/hunk/storage/AtomicLongHunk.java +++ b/core/src/main/java/art/arcane/iris/util/project/hunk/storage/AtomicLongHunk.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.hunk.storage; +package art.arcane.iris.util.hunk.storage; -import com.volmit.iris.util.hunk.Hunk; +import art.arcane.iris.util.hunk.Hunk; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/art/arcane/iris/util/project/hunk/storage/PaletteOrHunk.java b/core/src/main/java/art/arcane/iris/util/project/hunk/storage/PaletteOrHunk.java new file mode 100644 index 000000000..3da0956dc --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/project/hunk/storage/PaletteOrHunk.java @@ -0,0 +1,38 @@ +package art.arcane.iris.util.hunk.storage; + +import art.arcane.volmlib.util.function.Consumer4; +import art.arcane.volmlib.util.function.Consumer4IO; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.volmlib.util.hunk.bits.DataContainer; +import art.arcane.volmlib.util.hunk.bits.Writable; + +import java.io.IOException; +import java.util.function.Supplier; + +public abstract class PaletteOrHunk extends art.arcane.volmlib.util.hunk.storage.PaletteOrHunk implements Hunk, Writable { + public PaletteOrHunk(int width, int height, int depth, boolean allow, Supplier> factory) { + super(width, height, depth, allow, factory::get); + } + + @Override + @SuppressWarnings("unchecked") + public DataContainer palette() { + return (DataContainer) super.palette(); + } + + public void setPalette(DataContainer c) { + super.setPalette(c); + } + + @Override + public PaletteOrHunk iterateSync(Consumer4 c) { + super.iterateSync(c); + return this; + } + + @Override + public PaletteOrHunk iterateSyncIO(Consumer4IO c) throws IOException { + super.iterateSyncIO(c); + return this; + } +} diff --git a/core/src/main/java/com/volmit/iris/util/hunk/storage/StorageHunk.java b/core/src/main/java/art/arcane/iris/util/project/hunk/storage/StorageHunk.java similarity index 94% rename from core/src/main/java/com/volmit/iris/util/hunk/storage/StorageHunk.java rename to core/src/main/java/art/arcane/iris/util/project/hunk/storage/StorageHunk.java index 52764ca42..26a5f9472 100644 --- a/core/src/main/java/com/volmit/iris/util/hunk/storage/StorageHunk.java +++ b/core/src/main/java/art/arcane/iris/util/project/hunk/storage/StorageHunk.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.hunk.storage; +package art.arcane.iris.util.hunk.storage; -import com.volmit.iris.util.hunk.Hunk; +import art.arcane.iris.util.hunk.Hunk; import lombok.Data; @Data diff --git a/core/src/main/java/com/volmit/iris/util/hunk/storage/SynchronizedArrayHunk.java b/core/src/main/java/art/arcane/iris/util/project/hunk/storage/SynchronizedArrayHunk.java similarity index 95% rename from core/src/main/java/com/volmit/iris/util/hunk/storage/SynchronizedArrayHunk.java rename to core/src/main/java/art/arcane/iris/util/project/hunk/storage/SynchronizedArrayHunk.java index bf0ebe3d6..ebe844563 100644 --- a/core/src/main/java/com/volmit/iris/util/hunk/storage/SynchronizedArrayHunk.java +++ b/core/src/main/java/art/arcane/iris/util/project/hunk/storage/SynchronizedArrayHunk.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.hunk.storage; +package art.arcane.iris.util.hunk.storage; -import com.volmit.iris.util.hunk.Hunk; +import art.arcane.iris.util.hunk.Hunk; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/core/src/main/java/art/arcane/iris/util/project/hunk/view/BiomeGridHunkHolder.java b/core/src/main/java/art/arcane/iris/util/project/hunk/view/BiomeGridHunkHolder.java new file mode 100644 index 000000000..224a72b61 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/project/hunk/view/BiomeGridHunkHolder.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.util.hunk.view; + +import art.arcane.iris.core.nms.INMS; +import art.arcane.iris.engine.data.chunk.LinkedTerrainChunk; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.volmlib.util.hunk.view.BiomeGridForceSupport; +import org.bukkit.block.Biome; +import org.bukkit.generator.ChunkGenerator.BiomeGrid; + +@SuppressWarnings("ClassCanBeRecord") +public class BiomeGridHunkHolder extends art.arcane.volmlib.util.hunk.view.BiomeGridHunkHolder implements Hunk { + public BiomeGridHunkHolder(BiomeGrid chunk, int minHeight, int maxHeight) { + super(chunk, minHeight, maxHeight); + } + + public void forceBiomeBaseInto(int x, int y, int z, Object somethingVeryDirty) { + BiomeGridForceSupport.forceBiomeBaseInto( + getChunk(), + getMinHeight(), + x, + y, + z, + somethingVeryDirty, + chunk -> chunk instanceof LinkedTerrainChunk ? ((LinkedTerrainChunk) chunk).getRawBiome() : chunk, + (wx, wy, wz, dirty, target) -> INMS.get().forceBiomeInto(wx, wy, wz, dirty, target)); + } +} diff --git a/core/src/main/java/art/arcane/iris/util/project/hunk/view/BiomeGridHunkView.java b/core/src/main/java/art/arcane/iris/util/project/hunk/view/BiomeGridHunkView.java new file mode 100644 index 000000000..bca18cd0d --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/project/hunk/view/BiomeGridHunkView.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.util.hunk.view; + +import art.arcane.iris.core.nms.INMS; +import art.arcane.iris.engine.data.chunk.LinkedTerrainChunk; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.volmlib.util.hunk.view.BiomeGridForceSupport; +import org.bukkit.block.Biome; +import org.bukkit.generator.ChunkGenerator.BiomeGrid; + +@SuppressWarnings("ClassCanBeRecord") +public class BiomeGridHunkView extends art.arcane.volmlib.util.hunk.view.BiomeGridHunkView implements Hunk { + public BiomeGridHunkView(BiomeGrid chunk, int minHeight, int maxHeight) { + super(chunk, minHeight, maxHeight); + } + + public void forceBiomeBaseInto(int x, int y, int z, Object somethingVeryDirty) { + BiomeGridForceSupport.forceBiomeBaseInto( + getChunk(), + getMinHeight(), + x, + y, + z, + somethingVeryDirty, + chunk -> chunk instanceof LinkedTerrainChunk ? ((LinkedTerrainChunk) chunk).getRawBiome() : chunk, + (wx, wy, wz, dirty, target) -> INMS.get().forceBiomeInto(wx, wy, wz, dirty, target)); + } +} diff --git a/core/src/main/java/com/volmit/iris/util/board/BoardSettings.java b/core/src/main/java/art/arcane/iris/util/project/hunk/view/ChunkBiomeHunkView.java similarity index 55% rename from core/src/main/java/com/volmit/iris/util/board/BoardSettings.java rename to core/src/main/java/art/arcane/iris/util/project/hunk/view/ChunkBiomeHunkView.java index 8ca30503c..29da8e789 100644 --- a/core/src/main/java/com/volmit/iris/util/board/BoardSettings.java +++ b/core/src/main/java/art/arcane/iris/util/project/hunk/view/ChunkBiomeHunkView.java @@ -16,19 +16,20 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.board; - -import lombok.Builder; -import lombok.Getter; +package art.arcane.iris.util.hunk.view; +import art.arcane.iris.Iris; +import art.arcane.iris.core.service.EditSVC; +import art.arcane.iris.util.hunk.Hunk; +import org.bukkit.Chunk; +import org.bukkit.block.Biome; @SuppressWarnings("ClassCanBeRecord") -@Getter -@Builder -public class BoardSettings { - - private final BoardProvider boardProvider; - - - private final ScoreDirection scoreDirection; +public class ChunkBiomeHunkView extends art.arcane.volmlib.util.hunk.view.ChunkWorldHunkView implements Hunk { + public ChunkBiomeHunkView(Chunk chunk) { + super(chunk, + chunk.getWorld().getMaxHeight(), + (wx, y, wz, t) -> Iris.service(EditSVC.class).setBiome(chunk.getWorld(), wx, y, wz, t), + (wx, y, wz) -> Iris.service(EditSVC.class).getBiome(chunk.getWorld(), wx, y, wz)); + } } diff --git a/core/src/main/java/com/volmit/iris/util/hunk/view/ChunkDataHunkHolder.java b/core/src/main/java/art/arcane/iris/util/project/hunk/view/ChunkDataHunkHolder.java similarity index 95% rename from core/src/main/java/com/volmit/iris/util/hunk/view/ChunkDataHunkHolder.java rename to core/src/main/java/art/arcane/iris/util/project/hunk/view/ChunkDataHunkHolder.java index 37529d0c7..b0a8cd3bf 100644 --- a/core/src/main/java/com/volmit/iris/util/hunk/view/ChunkDataHunkHolder.java +++ b/core/src/main/java/art/arcane/iris/util/project/hunk/view/ChunkDataHunkHolder.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.hunk.view; +package art.arcane.iris.util.hunk.view; -import com.volmit.iris.util.hunk.storage.AtomicHunk; +import art.arcane.iris.util.hunk.storage.AtomicHunk; import org.bukkit.Material; 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/util/project/hunk/view/ChunkDataHunkView.java new file mode 100644 index 000000000..81327b43a --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/project/hunk/view/ChunkDataHunkView.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.util.hunk.view; + +import art.arcane.iris.util.data.B; +import art.arcane.iris.util.data.IrisCustomData; +import art.arcane.iris.util.hunk.Hunk; +import org.bukkit.block.data.BlockData; +import org.bukkit.generator.ChunkGenerator.ChunkData; + +@SuppressWarnings("ClassCanBeRecord") +public class ChunkDataHunkView extends art.arcane.volmlib.util.hunk.view.ChunkDataHunkView implements Hunk { + private static final BlockData AIR = B.getAir(); + + public ChunkDataHunkView(ChunkData chunk) { + super(chunk, AIR, (data) -> data instanceof IrisCustomData d ? d.getBase() : data); + } + + @Override + public void set(int x1, int y1, int z1, int x2, int y2, int z2, BlockData t) { + setRegion(x1, y1, z1, x2, y2, z2, t); + } + + public BlockData get(int x, int y, int z) { + return super.get(x, y, z); + } + + public void set(int x, int y, int z, BlockData t) { + super.set(x, y, z, t); + } +} diff --git a/core/src/main/java/com/volmit/iris/util/api/APIAwareBlock.java b/core/src/main/java/art/arcane/iris/util/project/hunk/view/ChunkHunkView.java similarity index 55% rename from core/src/main/java/com/volmit/iris/util/api/APIAwareBlock.java rename to core/src/main/java/art/arcane/iris/util/project/hunk/view/ChunkHunkView.java index 4e0881db5..d384f3162 100644 --- a/core/src/main/java/com/volmit/iris/util/api/APIAwareBlock.java +++ b/core/src/main/java/art/arcane/iris/util/project/hunk/view/ChunkHunkView.java @@ -16,11 +16,20 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.api; +package art.arcane.iris.util.hunk.view; +import art.arcane.iris.Iris; +import art.arcane.iris.core.service.EditSVC; +import art.arcane.iris.util.hunk.Hunk; +import org.bukkit.Chunk; import org.bukkit.block.data.BlockData; -@FunctionalInterface -public interface APIAwareBlock { - void onPlaced(BlockData block, String namespace, String key, int x, int y, int z); +@SuppressWarnings("ClassCanBeRecord") +public class ChunkHunkView extends art.arcane.volmlib.util.hunk.view.ChunkWorldHunkView implements Hunk { + public ChunkHunkView(Chunk chunk) { + super(chunk, + chunk.getWorld().getMaxHeight(), + (wx, y, wz, t) -> Iris.service(EditSVC.class).set(chunk.getWorld(), wx, y, wz, t), + (wx, y, wz) -> Iris.service(EditSVC.class).get(chunk.getWorld(), wx, y, wz)); + } } diff --git a/core/src/main/java/com/volmit/iris/util/interpolation/InterpolationMethod.java b/core/src/main/java/art/arcane/iris/util/project/interpolation/InterpolationMethod.java similarity index 98% rename from core/src/main/java/com/volmit/iris/util/interpolation/InterpolationMethod.java rename to core/src/main/java/art/arcane/iris/util/project/interpolation/InterpolationMethod.java index 715a094f0..bdbeb3e4e 100644 --- a/core/src/main/java/com/volmit/iris/util/interpolation/InterpolationMethod.java +++ b/core/src/main/java/art/arcane/iris/util/project/interpolation/InterpolationMethod.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.interpolation; +package art.arcane.iris.util.interpolation; -import com.volmit.iris.engine.object.annotations.Desc; +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 { diff --git a/core/src/main/java/com/volmit/iris/util/interpolation/InterpolationMethod3D.java b/core/src/main/java/art/arcane/iris/util/project/interpolation/InterpolationMethod3D.java similarity index 93% rename from core/src/main/java/com/volmit/iris/util/interpolation/InterpolationMethod3D.java rename to core/src/main/java/art/arcane/iris/util/project/interpolation/InterpolationMethod3D.java index 08c36729f..b48696ff2 100644 --- a/core/src/main/java/com/volmit/iris/util/interpolation/InterpolationMethod3D.java +++ b/core/src/main/java/art/arcane/iris/util/project/interpolation/InterpolationMethod3D.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.interpolation; +package art.arcane.iris.util.interpolation; -import com.volmit.iris.engine.object.annotations.Desc; +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 { diff --git a/core/src/main/java/com/volmit/iris/util/interpolation/InterpolationType.java b/core/src/main/java/art/arcane/iris/util/project/interpolation/InterpolationType.java similarity index 95% rename from core/src/main/java/com/volmit/iris/util/interpolation/InterpolationType.java rename to core/src/main/java/art/arcane/iris/util/project/interpolation/InterpolationType.java index c7aa23e09..c01fc5e63 100644 --- a/core/src/main/java/com/volmit/iris/util/interpolation/InterpolationType.java +++ b/core/src/main/java/art/arcane/iris/util/project/interpolation/InterpolationType.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.interpolation; +package art.arcane.iris.util.interpolation; public enum InterpolationType { LINEAR, diff --git a/core/src/main/java/com/volmit/iris/util/interpolation/IrisInterpolation.java b/core/src/main/java/art/arcane/iris/util/project/interpolation/IrisInterpolation.java similarity index 98% rename from core/src/main/java/com/volmit/iris/util/interpolation/IrisInterpolation.java rename to core/src/main/java/art/arcane/iris/util/project/interpolation/IrisInterpolation.java index a2f1ef134..9209ce313 100644 --- a/core/src/main/java/com/volmit/iris/util/interpolation/IrisInterpolation.java +++ b/core/src/main/java/art/arcane/iris/util/project/interpolation/IrisInterpolation.java @@ -16,18 +16,19 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.interpolation; +package art.arcane.iris.util.interpolation; import com.google.common.util.concurrent.AtomicDouble; -import com.volmit.iris.engine.object.NoiseStyle; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.function.Consumer2; -import com.volmit.iris.util.function.NoiseProvider; -import com.volmit.iris.util.function.NoiseProvider3; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.CNG; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; +import art.arcane.volmlib.util.interpolation.Starcast; +import art.arcane.iris.engine.object.NoiseStyle; +import art.arcane.volmlib.util.format.Form; +import art.arcane.volmlib.util.function.Consumer2; +import art.arcane.volmlib.util.function.NoiseProvider; +import art.arcane.volmlib.util.function.NoiseProvider3; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.CNG; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import java.math.BigDecimal; import java.util.HashMap; @@ -1064,4 +1065,4 @@ public class IrisInterpolation { public record NoiseKey(double x, double z) { } -} \ No newline at end of file +} diff --git a/core/src/main/java/com/volmit/iris/util/matter/IrisMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/IrisMatter.java similarity index 89% rename from core/src/main/java/com/volmit/iris/util/matter/IrisMatter.java rename to core/src/main/java/art/arcane/iris/util/project/matter/IrisMatter.java index 233a9173e..56a426dd7 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/IrisMatter.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/IrisMatter.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.matter; +package art.arcane.iris.util.matter; -import com.volmit.iris.Iris; -import com.volmit.iris.core.loader.IrisRegistrant; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.plugin.VolmitSender; +import art.arcane.iris.Iris; +import art.arcane.iris.core.loader.IrisRegistrant; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.iris.util.plugin.VolmitSender; import lombok.Getter; import java.util.Objects; @@ -59,7 +59,7 @@ public class IrisMatter extends IrisRegistrant implements Matter { private static KMap, MatterSlice> buildSlicers() { KMap, MatterSlice> c = new KMap<>(); - for (Object i : Iris.initialize("com.volmit.iris.util.matter.slices", Sliced.class)) { + for (Object i : Iris.initialize("art.arcane.iris.util.matter.slices", Sliced.class)) { MatterSlice s = (MatterSlice) i; c.put(s.getType(), s); } diff --git a/core/src/main/java/com/volmit/iris/util/matter/Matter.java b/core/src/main/java/art/arcane/iris/util/project/matter/Matter.java similarity index 96% rename from core/src/main/java/com/volmit/iris/util/matter/Matter.java rename to core/src/main/java/art/arcane/iris/util/project/matter/Matter.java index 384835bbf..d4695e2d2 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/Matter.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/Matter.java @@ -16,16 +16,16 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.matter; +package art.arcane.iris.util.matter; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.object.IrisObject; -import com.volmit.iris.engine.object.IrisPosition; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.io.CountingDataInputStream; -import com.volmit.iris.util.mantle.TectonicPlate; -import com.volmit.iris.util.math.BlockPosition; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.object.IrisObject; +import art.arcane.iris.engine.object.IrisPosition; +import art.arcane.volmlib.util.collection.KSet; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.volmlib.util.io.CountingDataInputStream; +import art.arcane.iris.util.mantle.TectonicPlate; +import art.arcane.volmlib.util.math.BlockPosition; import org.bukkit.World; import org.bukkit.block.data.BlockData; import org.bukkit.entity.Entity; diff --git a/core/src/main/java/com/volmit/iris/util/matter/MatterBiomeInject.java b/core/src/main/java/art/arcane/iris/util/project/matter/MatterBiomeInject.java similarity index 96% rename from core/src/main/java/com/volmit/iris/util/matter/MatterBiomeInject.java rename to core/src/main/java/art/arcane/iris/util/project/matter/MatterBiomeInject.java index 038dad4ba..e1b91de14 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/MatterBiomeInject.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/MatterBiomeInject.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.matter; +package art.arcane.iris.util.matter; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/core/src/main/java/com/volmit/iris/util/matter/MatterEntityGroup.java b/core/src/main/java/art/arcane/iris/util/project/matter/MatterEntityGroup.java similarity index 86% rename from core/src/main/java/com/volmit/iris/util/matter/MatterEntityGroup.java rename to core/src/main/java/art/arcane/iris/util/project/matter/MatterEntityGroup.java index c04ec7166..3a5523fb6 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/MatterEntityGroup.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/MatterEntityGroup.java @@ -16,9 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.matter; +package art.arcane.iris.util.matter; -import com.volmit.iris.util.collection.KList; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.matter.MatterEntity; import lombok.Data; @Data diff --git a/core/src/main/java/com/volmit/iris/util/matter/MatterHeader.java b/core/src/main/java/art/arcane/iris/util/project/matter/MatterHeader.java similarity index 94% rename from core/src/main/java/com/volmit/iris/util/matter/MatterHeader.java rename to core/src/main/java/art/arcane/iris/util/project/matter/MatterHeader.java index 73fc78d16..8d79bad22 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/MatterHeader.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/MatterHeader.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.matter; +package art.arcane.iris.util.matter; -import com.volmit.iris.util.math.M; +import art.arcane.volmlib.util.math.M; import lombok.Data; import java.io.DataInputStream; diff --git a/core/src/main/java/com/volmit/iris/util/matter/MatterPalette.java b/core/src/main/java/art/arcane/iris/util/project/matter/MatterPalette.java similarity index 91% rename from core/src/main/java/com/volmit/iris/util/matter/MatterPalette.java rename to core/src/main/java/art/arcane/iris/util/project/matter/MatterPalette.java index a06e636d1..144282808 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/MatterPalette.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/MatterPalette.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.matter; +package art.arcane.iris.util.matter; -import com.volmit.iris.util.data.DataPalette; -import com.volmit.iris.util.data.IOAdapter; -import com.volmit.iris.util.data.Varint; +import art.arcane.volmlib.util.data.DataPalette; +import art.arcane.volmlib.util.data.IOAdapter; +import art.arcane.volmlib.util.data.Varint; import java.io.DataInputStream; import java.io.DataOutputStream; diff --git a/core/src/main/java/com/volmit/iris/util/matter/MatterPlacer.java b/core/src/main/java/art/arcane/iris/util/project/matter/MatterPlacer.java similarity index 95% rename from core/src/main/java/com/volmit/iris/util/matter/MatterPlacer.java rename to core/src/main/java/art/arcane/iris/util/project/matter/MatterPlacer.java index 55b9b1b13..49e4a954d 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/MatterPlacer.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/MatterPlacer.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.matter; +package art.arcane.iris.util.matter; -import com.volmit.iris.util.mantle.Mantle; +import art.arcane.iris.util.mantle.Mantle; public interface MatterPlacer { int getHeight(int x, int z, boolean ignoreFluid); diff --git a/core/src/main/java/com/volmit/iris/util/matter/MatterSlice.java b/core/src/main/java/art/arcane/iris/util/project/matter/MatterSlice.java similarity index 91% rename from core/src/main/java/com/volmit/iris/util/matter/MatterSlice.java rename to core/src/main/java/art/arcane/iris/util/project/matter/MatterSlice.java index 9f77edc86..dc1cf7f78 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/MatterSlice.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/MatterSlice.java @@ -16,16 +16,19 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.matter; +package art.arcane.iris.util.matter; -import com.volmit.iris.engine.data.cache.Cache; -import com.volmit.iris.util.data.Varint; -import com.volmit.iris.util.data.palette.Palette; -import com.volmit.iris.util.data.palette.PaletteType; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.hunk.bits.DataContainer; -import com.volmit.iris.util.hunk.bits.Writable; -import com.volmit.iris.util.hunk.storage.PaletteOrHunk; +import art.arcane.volmlib.util.matter.MatterFilter; +import art.arcane.volmlib.util.matter.MatterReader; +import art.arcane.volmlib.util.matter.MatterWriter; +import art.arcane.iris.engine.data.cache.Cache; +import art.arcane.volmlib.util.data.Varint; +import art.arcane.iris.util.data.palette.Palette; +import art.arcane.iris.util.data.palette.PaletteType; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.volmlib.util.hunk.bits.DataContainer; +import art.arcane.volmlib.util.hunk.bits.Writable; +import art.arcane.iris.util.hunk.storage.PaletteOrHunk; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.block.data.BlockData; diff --git a/core/src/main/java/com/volmit/iris/util/matter/MatterStructurePOI.java b/core/src/main/java/art/arcane/iris/util/project/matter/MatterStructurePOI.java similarity index 94% rename from core/src/main/java/com/volmit/iris/util/matter/MatterStructurePOI.java rename to core/src/main/java/art/arcane/iris/util/project/matter/MatterStructurePOI.java index 45f844fc7..29e685bcf 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/MatterStructurePOI.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/MatterStructurePOI.java @@ -1,4 +1,4 @@ -package com.volmit.iris.util.matter; +package art.arcane.iris.util.matter; import lombok.Data; diff --git a/core/src/main/java/com/volmit/iris/util/matter/Sliced.java b/core/src/main/java/art/arcane/iris/util/project/matter/Sliced.java similarity index 96% rename from core/src/main/java/com/volmit/iris/util/matter/Sliced.java rename to core/src/main/java/art/arcane/iris/util/project/matter/Sliced.java index d310a1081..6e33cd0ec 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/Sliced.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/Sliced.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.matter; +package art.arcane.iris.util.matter; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; diff --git a/core/src/main/java/com/volmit/iris/util/matter/TileWrapper.java b/core/src/main/java/art/arcane/iris/util/project/matter/TileWrapper.java similarity index 91% rename from core/src/main/java/com/volmit/iris/util/matter/TileWrapper.java rename to core/src/main/java/art/arcane/iris/util/project/matter/TileWrapper.java index 0fa14eab6..751e4497a 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/TileWrapper.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/TileWrapper.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.matter; +package art.arcane.iris.util.matter; -import com.volmit.iris.engine.object.TileData; +import art.arcane.iris.engine.object.TileData; import lombok.Data; @Data diff --git a/core/src/main/java/com/volmit/iris/util/matter/WorldMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/WorldMatter.java similarity index 92% rename from core/src/main/java/com/volmit/iris/util/matter/WorldMatter.java rename to core/src/main/java/art/arcane/iris/util/project/matter/WorldMatter.java index 40ff187d0..f209ba4df 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/WorldMatter.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/WorldMatter.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.matter; +package art.arcane.iris.util.matter; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.object.TileData; -import com.volmit.iris.util.data.Cuboid; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.object.TileData; +import art.arcane.volmlib.util.data.Cuboid; import org.bukkit.Location; import org.bukkit.block.data.BlockData; diff --git a/core/src/main/java/com/volmit/iris/util/matter/slices/BiomeInjectMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/BiomeInjectMatter.java similarity index 92% rename from core/src/main/java/com/volmit/iris/util/matter/slices/BiomeInjectMatter.java rename to core/src/main/java/art/arcane/iris/util/project/matter/slices/BiomeInjectMatter.java index 68879a545..2ff7ceb5b 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/slices/BiomeInjectMatter.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/slices/BiomeInjectMatter.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.matter.slices; +package art.arcane.iris.util.matter.slices; -import com.volmit.iris.util.data.palette.Palette; -import com.volmit.iris.util.matter.MatterBiomeInject; -import com.volmit.iris.util.matter.Sliced; +import art.arcane.iris.util.data.palette.Palette; +import art.arcane.iris.util.matter.MatterBiomeInject; +import art.arcane.iris.util.matter.Sliced; import org.bukkit.block.Biome; import java.io.DataInputStream; diff --git a/core/src/main/java/com/volmit/iris/util/matter/slices/BlockMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/BlockMatter.java similarity index 90% rename from core/src/main/java/com/volmit/iris/util/matter/slices/BlockMatter.java rename to core/src/main/java/art/arcane/iris/util/project/matter/slices/BlockMatter.java index 15afb4376..b1a0a3174 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/slices/BlockMatter.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/slices/BlockMatter.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.matter.slices; +package art.arcane.iris.util.matter.slices; -import com.volmit.iris.util.data.B; -import com.volmit.iris.util.data.IrisCustomData; -import com.volmit.iris.util.data.palette.Palette; -import com.volmit.iris.util.matter.Sliced; +import art.arcane.iris.util.data.B; +import art.arcane.iris.util.data.IrisCustomData; +import art.arcane.iris.util.data.palette.Palette; +import art.arcane.iris.util.matter.Sliced; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.block.data.BlockData; diff --git a/core/src/main/java/com/volmit/iris/util/matter/slices/BooleanMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/BooleanMatter.java similarity index 91% rename from core/src/main/java/com/volmit/iris/util/matter/slices/BooleanMatter.java rename to core/src/main/java/art/arcane/iris/util/project/matter/slices/BooleanMatter.java index 643c953a5..194c88d39 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/slices/BooleanMatter.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/slices/BooleanMatter.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.matter.slices; +package art.arcane.iris.util.matter.slices; -import com.volmit.iris.util.data.palette.Palette; -import com.volmit.iris.util.matter.Sliced; +import art.arcane.iris.util.data.palette.Palette; +import art.arcane.iris.util.matter.Sliced; import java.io.DataInputStream; import java.io.DataOutputStream; diff --git a/core/src/main/java/com/volmit/iris/util/matter/slices/CavernMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/CavernMatter.java similarity index 91% rename from core/src/main/java/com/volmit/iris/util/matter/slices/CavernMatter.java rename to core/src/main/java/art/arcane/iris/util/project/matter/slices/CavernMatter.java index eb0acfd81..d91abe241 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/slices/CavernMatter.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/slices/CavernMatter.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.matter.slices; +package art.arcane.iris.util.matter.slices; -import com.volmit.iris.util.data.palette.Palette; -import com.volmit.iris.util.matter.MatterCavern; -import com.volmit.iris.util.matter.Sliced; +import art.arcane.iris.util.data.palette.Palette; +import art.arcane.volmlib.util.matter.MatterCavern; +import art.arcane.iris.util.matter.Sliced; import java.io.DataInputStream; import java.io.DataOutputStream; diff --git a/core/src/main/java/com/volmit/iris/util/matter/slices/CompoundMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/CompoundMatter.java similarity index 88% rename from core/src/main/java/com/volmit/iris/util/matter/slices/CompoundMatter.java rename to core/src/main/java/art/arcane/iris/util/project/matter/slices/CompoundMatter.java index 288f2d332..6d2316e95 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/slices/CompoundMatter.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/slices/CompoundMatter.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.matter.slices; +package art.arcane.iris.util.matter.slices; -import com.volmit.iris.util.matter.Sliced; -import com.volmit.iris.util.nbt.tag.CompoundTag; +import art.arcane.iris.util.matter.Sliced; +import art.arcane.volmlib.util.nbt.tag.CompoundTag; @Sliced public class CompoundMatter extends NBTMatter { diff --git a/core/src/main/java/com/volmit/iris/util/matter/slices/EntityMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/EntityMatter.java similarity index 89% rename from core/src/main/java/com/volmit/iris/util/matter/slices/EntityMatter.java rename to core/src/main/java/art/arcane/iris/util/project/matter/slices/EntityMatter.java index 23c0e0495..3b814a967 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/slices/EntityMatter.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/slices/EntityMatter.java @@ -16,20 +16,20 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.matter.slices; +package art.arcane.iris.util.matter.slices; -import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.engine.object.IrisPosition; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.data.Varint; -import com.volmit.iris.util.data.palette.Palette; -import com.volmit.iris.util.matter.MatterEntity; -import com.volmit.iris.util.matter.MatterEntityGroup; -import com.volmit.iris.util.matter.MatterReader; -import com.volmit.iris.util.matter.Sliced; -import com.volmit.iris.util.nbt.io.NBTUtil; -import com.volmit.iris.util.nbt.tag.CompoundTag; +import art.arcane.iris.core.nms.INMS; +import art.arcane.iris.engine.object.IrisPosition; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.data.Varint; +import art.arcane.iris.util.data.palette.Palette; +import art.arcane.volmlib.util.matter.MatterEntity; +import art.arcane.iris.util.matter.MatterEntityGroup; +import art.arcane.volmlib.util.matter.MatterReader; +import art.arcane.iris.util.matter.Sliced; +import art.arcane.volmlib.util.nbt.io.NBTUtil; +import art.arcane.volmlib.util.nbt.tag.CompoundTag; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.entity.Entity; diff --git a/core/src/main/java/com/volmit/iris/util/matter/slices/IdentifierMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/IdentifierMatter.java similarity index 78% rename from core/src/main/java/com/volmit/iris/util/matter/slices/IdentifierMatter.java rename to core/src/main/java/art/arcane/iris/util/project/matter/slices/IdentifierMatter.java index 5777c6320..93c1a1b24 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/slices/IdentifierMatter.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/slices/IdentifierMatter.java @@ -1,8 +1,8 @@ -package com.volmit.iris.util.matter.slices; +package art.arcane.iris.util.matter.slices; -import com.volmit.iris.core.link.Identifier; -import com.volmit.iris.util.data.palette.Palette; -import com.volmit.iris.util.matter.Sliced; +import art.arcane.iris.core.link.Identifier; +import art.arcane.iris.util.data.palette.Palette; +import art.arcane.iris.util.matter.Sliced; import java.io.DataInputStream; import java.io.DataOutputStream; diff --git a/core/src/main/java/com/volmit/iris/util/matter/slices/IntMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/IntMatter.java similarity index 89% rename from core/src/main/java/com/volmit/iris/util/matter/slices/IntMatter.java rename to core/src/main/java/art/arcane/iris/util/project/matter/slices/IntMatter.java index c655cb158..eb3ce286e 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/slices/IntMatter.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/slices/IntMatter.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.matter.slices; +package art.arcane.iris.util.matter.slices; -import com.volmit.iris.util.data.Varint; -import com.volmit.iris.util.data.palette.Palette; -import com.volmit.iris.util.matter.Sliced; +import art.arcane.volmlib.util.data.Varint; +import art.arcane.iris.util.data.palette.Palette; +import art.arcane.iris.util.matter.Sliced; import java.io.DataInputStream; import java.io.DataOutputStream; diff --git a/core/src/main/java/com/volmit/iris/util/matter/slices/JigsawPieceMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/JigsawPieceMatter.java similarity index 79% rename from core/src/main/java/com/volmit/iris/util/matter/slices/JigsawPieceMatter.java rename to core/src/main/java/art/arcane/iris/util/project/matter/slices/JigsawPieceMatter.java index 05cc08385..ae6bcbb2a 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/slices/JigsawPieceMatter.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/slices/JigsawPieceMatter.java @@ -1,8 +1,8 @@ -package com.volmit.iris.util.matter.slices; +package art.arcane.iris.util.matter.slices; -import com.volmit.iris.util.data.palette.Palette; -import com.volmit.iris.util.matter.Sliced; -import com.volmit.iris.util.matter.slices.container.JigsawPieceContainer; +import art.arcane.iris.util.data.palette.Palette; +import art.arcane.iris.util.matter.Sliced; +import art.arcane.iris.util.matter.slices.container.JigsawPieceContainer; import java.io.DataInputStream; import java.io.DataOutputStream; diff --git a/core/src/main/java/com/volmit/iris/util/matter/slices/JigsawStructureMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/JigsawStructureMatter.java similarity index 80% rename from core/src/main/java/com/volmit/iris/util/matter/slices/JigsawStructureMatter.java rename to core/src/main/java/art/arcane/iris/util/project/matter/slices/JigsawStructureMatter.java index 0e573945e..228ed49a6 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/slices/JigsawStructureMatter.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/slices/JigsawStructureMatter.java @@ -1,8 +1,8 @@ -package com.volmit.iris.util.matter.slices; +package art.arcane.iris.util.matter.slices; -import com.volmit.iris.util.data.palette.Palette; -import com.volmit.iris.util.matter.Sliced; -import com.volmit.iris.util.matter.slices.container.JigsawStructureContainer; +import art.arcane.iris.util.data.palette.Palette; +import art.arcane.iris.util.matter.Sliced; +import art.arcane.iris.util.matter.slices.container.JigsawStructureContainer; import java.io.DataInputStream; import java.io.DataOutputStream; diff --git a/core/src/main/java/com/volmit/iris/util/matter/slices/JigsawStructuresMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/JigsawStructuresMatter.java similarity index 80% rename from core/src/main/java/com/volmit/iris/util/matter/slices/JigsawStructuresMatter.java rename to core/src/main/java/art/arcane/iris/util/project/matter/slices/JigsawStructuresMatter.java index 55803b946..0594baabe 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/slices/JigsawStructuresMatter.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/slices/JigsawStructuresMatter.java @@ -1,8 +1,8 @@ -package com.volmit.iris.util.matter.slices; +package art.arcane.iris.util.matter.slices; -import com.volmit.iris.util.data.palette.Palette; -import com.volmit.iris.util.matter.Sliced; -import com.volmit.iris.util.matter.slices.container.JigsawStructuresContainer; +import art.arcane.iris.util.data.palette.Palette; +import art.arcane.iris.util.matter.Sliced; +import art.arcane.iris.util.matter.slices.container.JigsawStructuresContainer; import java.io.DataInputStream; import java.io.DataOutputStream; diff --git a/core/src/main/java/com/volmit/iris/util/matter/slices/LongMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/LongMatter.java similarity index 88% rename from core/src/main/java/com/volmit/iris/util/matter/slices/LongMatter.java rename to core/src/main/java/art/arcane/iris/util/project/matter/slices/LongMatter.java index 3cd175015..904cdf340 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/slices/LongMatter.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/slices/LongMatter.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.matter.slices; +package art.arcane.iris.util.matter.slices; -import com.volmit.iris.util.data.Varint; -import com.volmit.iris.util.data.palette.Palette; -import com.volmit.iris.util.matter.Sliced; +import art.arcane.volmlib.util.data.Varint; +import art.arcane.iris.util.data.palette.Palette; +import art.arcane.iris.util.matter.Sliced; import java.io.DataInputStream; import java.io.DataOutputStream; diff --git a/core/src/main/java/com/volmit/iris/util/matter/slices/MarkerMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/MarkerMatter.java similarity index 88% rename from core/src/main/java/com/volmit/iris/util/matter/slices/MarkerMatter.java rename to core/src/main/java/art/arcane/iris/util/project/matter/slices/MarkerMatter.java index 60e44edbd..c8d2cf562 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/slices/MarkerMatter.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/slices/MarkerMatter.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.matter.slices; +package art.arcane.iris.util.matter.slices; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.data.palette.Palette; -import com.volmit.iris.util.matter.MatterMarker; -import com.volmit.iris.util.matter.Sliced; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.data.palette.Palette; +import art.arcane.volmlib.util.matter.MatterMarker; +import art.arcane.iris.util.matter.Sliced; import java.io.DataInputStream; import java.io.DataOutputStream; diff --git a/core/src/main/java/com/volmit/iris/util/matter/slices/NBTMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/NBTMatter.java similarity index 88% rename from core/src/main/java/com/volmit/iris/util/matter/slices/NBTMatter.java rename to core/src/main/java/art/arcane/iris/util/project/matter/slices/NBTMatter.java index 81bd0f6bb..9e57a0754 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/slices/NBTMatter.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/slices/NBTMatter.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.matter.slices; +package art.arcane.iris.util.matter.slices; -import com.volmit.iris.util.data.palette.Palette; -import com.volmit.iris.util.nbt.io.NBTUtil; -import com.volmit.iris.util.nbt.tag.Tag; +import art.arcane.iris.util.data.palette.Palette; +import art.arcane.volmlib.util.nbt.io.NBTUtil; +import art.arcane.volmlib.util.nbt.tag.Tag; import java.io.DataInputStream; import java.io.DataOutputStream; diff --git a/core/src/main/java/com/volmit/iris/util/matter/slices/RawMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/RawMatter.java similarity index 81% rename from core/src/main/java/com/volmit/iris/util/matter/slices/RawMatter.java rename to core/src/main/java/art/arcane/iris/util/project/matter/slices/RawMatter.java index 746b2e338..2c7628b7d 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/slices/RawMatter.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/slices/RawMatter.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.matter.slices; +package art.arcane.iris.util.matter.slices; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.hunk.storage.MappedHunk; -import com.volmit.iris.util.hunk.storage.PaletteOrHunk; -import com.volmit.iris.util.matter.MatterReader; -import com.volmit.iris.util.matter.MatterSlice; -import com.volmit.iris.util.matter.MatterWriter; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.iris.util.hunk.storage.PaletteOrHunk; +import art.arcane.volmlib.util.matter.MatterReader; +import art.arcane.iris.util.matter.MatterSlice; +import art.arcane.volmlib.util.matter.MatterWriter; import lombok.Getter; import java.io.DataInputStream; @@ -37,7 +37,7 @@ public abstract class RawMatter extends PaletteOrHunk implements MatterSli private final Class type; public RawMatter(int width, int height, int depth, Class type) { - super(width, height, depth, true, () -> new MappedHunk<>(width, height, depth)); + super(width, height, depth, true, () -> Hunk.adapt(new art.arcane.volmlib.util.hunk.storage.MappedHunk<>(width, height, depth))); writers = new KMap<>(); readers = new KMap<>(); this.type = type; diff --git a/core/src/main/java/com/volmit/iris/util/matter/slices/RegistryMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/RegistryMatter.java similarity index 88% rename from core/src/main/java/com/volmit/iris/util/matter/slices/RegistryMatter.java rename to core/src/main/java/art/arcane/iris/util/project/matter/slices/RegistryMatter.java index d61773049..0e7ed8704 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/slices/RegistryMatter.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/slices/RegistryMatter.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.matter.slices; +package art.arcane.iris.util.matter.slices; -import com.volmit.iris.core.loader.IrisRegistrant; -import com.volmit.iris.util.context.IrisContext; -import com.volmit.iris.util.data.palette.Palette; +import art.arcane.iris.core.loader.IrisRegistrant; +import art.arcane.iris.util.context.IrisContext; +import art.arcane.iris.util.data.palette.Palette; import java.io.DataInputStream; import java.io.DataOutputStream; diff --git a/core/src/main/java/com/volmit/iris/util/matter/slices/SpawnerMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/SpawnerMatter.java similarity index 88% rename from core/src/main/java/com/volmit/iris/util/matter/slices/SpawnerMatter.java rename to core/src/main/java/art/arcane/iris/util/project/matter/slices/SpawnerMatter.java index 75ec22257..c607d1f7f 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/slices/SpawnerMatter.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/slices/SpawnerMatter.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.matter.slices; +package art.arcane.iris.util.matter.slices; -import com.volmit.iris.engine.object.IrisSpawner; -import com.volmit.iris.util.matter.Sliced; +import art.arcane.iris.engine.object.IrisSpawner; +import art.arcane.iris.util.matter.Sliced; @Sliced public class SpawnerMatter extends RegistryMatter { diff --git a/core/src/main/java/com/volmit/iris/util/matter/slices/StringMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/StringMatter.java similarity index 91% rename from core/src/main/java/com/volmit/iris/util/matter/slices/StringMatter.java rename to core/src/main/java/art/arcane/iris/util/project/matter/slices/StringMatter.java index 5039bd96b..8e0f6b954 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/slices/StringMatter.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/slices/StringMatter.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.matter.slices; +package art.arcane.iris.util.matter.slices; -import com.volmit.iris.util.data.palette.Palette; -import com.volmit.iris.util.matter.Sliced; +import art.arcane.iris.util.data.palette.Palette; +import art.arcane.iris.util.matter.Sliced; import java.io.DataInputStream; import java.io.DataOutputStream; diff --git a/core/src/main/java/com/volmit/iris/util/matter/slices/StructurePOIMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/StructurePOIMatter.java similarity index 81% rename from core/src/main/java/com/volmit/iris/util/matter/slices/StructurePOIMatter.java rename to core/src/main/java/art/arcane/iris/util/project/matter/slices/StructurePOIMatter.java index a91dc172d..64b2c8aed 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/slices/StructurePOIMatter.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/slices/StructurePOIMatter.java @@ -1,7 +1,7 @@ -package com.volmit.iris.util.matter.slices; +package art.arcane.iris.util.matter.slices; -import com.volmit.iris.util.data.palette.Palette; -import com.volmit.iris.util.matter.MatterStructurePOI; +import art.arcane.iris.util.data.palette.Palette; +import art.arcane.iris.util.matter.MatterStructurePOI; import java.io.DataInputStream; import java.io.DataOutputStream; diff --git a/core/src/main/java/com/volmit/iris/util/matter/slices/TileMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/TileMatter.java similarity index 88% rename from core/src/main/java/com/volmit/iris/util/matter/slices/TileMatter.java rename to core/src/main/java/art/arcane/iris/util/project/matter/slices/TileMatter.java index c5febf50b..25177bbd6 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/slices/TileMatter.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/slices/TileMatter.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.matter.slices; +package art.arcane.iris.util.matter.slices; -import com.volmit.iris.engine.object.TileData; -import com.volmit.iris.util.data.palette.Palette; -import com.volmit.iris.util.matter.Sliced; -import com.volmit.iris.util.matter.TileWrapper; +import art.arcane.iris.engine.object.TileData; +import art.arcane.iris.util.data.palette.Palette; +import art.arcane.iris.util.matter.Sliced; +import art.arcane.iris.util.matter.TileWrapper; import org.bukkit.Location; import org.bukkit.World; diff --git a/core/src/main/java/com/volmit/iris/util/matter/slices/UpdateMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/UpdateMatter.java similarity index 87% rename from core/src/main/java/com/volmit/iris/util/matter/slices/UpdateMatter.java rename to core/src/main/java/art/arcane/iris/util/project/matter/slices/UpdateMatter.java index 3c1b7ba6c..1ee9254cb 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/slices/UpdateMatter.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/slices/UpdateMatter.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.matter.slices; +package art.arcane.iris.util.matter.slices; -import com.volmit.iris.util.data.palette.GlobalPalette; -import com.volmit.iris.util.data.palette.Palette; -import com.volmit.iris.util.matter.MatterUpdate; -import com.volmit.iris.util.matter.Sliced; +import art.arcane.iris.util.data.palette.GlobalPalette; +import art.arcane.iris.util.data.palette.Palette; +import art.arcane.volmlib.util.matter.MatterUpdate; +import art.arcane.iris.util.matter.Sliced; import java.io.DataInputStream; import java.io.DataOutputStream; diff --git a/core/src/main/java/com/volmit/iris/util/matter/slices/container/JigsawPieceContainer.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/container/JigsawPieceContainer.java similarity index 75% rename from core/src/main/java/com/volmit/iris/util/matter/slices/container/JigsawPieceContainer.java rename to core/src/main/java/art/arcane/iris/util/project/matter/slices/container/JigsawPieceContainer.java index 08e569d5f..08df33c88 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/slices/container/JigsawPieceContainer.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/slices/container/JigsawPieceContainer.java @@ -1,6 +1,6 @@ -package com.volmit.iris.util.matter.slices.container; +package art.arcane.iris.util.matter.slices.container; -import com.volmit.iris.engine.object.IrisJigsawPiece; +import art.arcane.iris.engine.object.IrisJigsawPiece; public class JigsawPieceContainer extends RegistrantContainer { public JigsawPieceContainer(String loadKey) { diff --git a/core/src/main/java/com/volmit/iris/util/matter/slices/container/JigsawStructureContainer.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/container/JigsawStructureContainer.java similarity index 76% rename from core/src/main/java/com/volmit/iris/util/matter/slices/container/JigsawStructureContainer.java rename to core/src/main/java/art/arcane/iris/util/project/matter/slices/container/JigsawStructureContainer.java index bd581ede3..940e21413 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/slices/container/JigsawStructureContainer.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/slices/container/JigsawStructureContainer.java @@ -1,6 +1,6 @@ -package com.volmit.iris.util.matter.slices.container; +package art.arcane.iris.util.matter.slices.container; -import com.volmit.iris.engine.object.IrisJigsawStructure; +import art.arcane.iris.engine.object.IrisJigsawStructure; public class JigsawStructureContainer extends RegistrantContainer { public JigsawStructureContainer(String loadKey) { diff --git a/core/src/main/java/com/volmit/iris/util/matter/slices/container/JigsawStructuresContainer.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/container/JigsawStructuresContainer.java similarity index 84% rename from core/src/main/java/com/volmit/iris/util/matter/slices/container/JigsawStructuresContainer.java rename to core/src/main/java/art/arcane/iris/util/project/matter/slices/container/JigsawStructuresContainer.java index 68d0f388f..39c6195aa 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/slices/container/JigsawStructuresContainer.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/slices/container/JigsawStructuresContainer.java @@ -1,10 +1,10 @@ -package com.volmit.iris.util.matter.slices.container; +package art.arcane.iris.util.matter.slices.container; -import com.volmit.iris.engine.object.IrisJigsawStructure; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.documentation.ChunkCoordinates; -import com.volmit.iris.util.math.Position2; +import art.arcane.iris.engine.object.IrisJigsawStructure; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.documentation.ChunkCoordinates; +import art.arcane.iris.util.math.Position2; import org.jetbrains.annotations.Unmodifiable; import java.io.DataInputStream; diff --git a/core/src/main/java/com/volmit/iris/util/matter/slices/container/RegistrantContainer.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/container/RegistrantContainer.java similarity index 74% rename from core/src/main/java/com/volmit/iris/util/matter/slices/container/RegistrantContainer.java rename to core/src/main/java/art/arcane/iris/util/project/matter/slices/container/RegistrantContainer.java index 0ab161e57..c61f7fc48 100644 --- a/core/src/main/java/com/volmit/iris/util/matter/slices/container/RegistrantContainer.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/slices/container/RegistrantContainer.java @@ -1,7 +1,7 @@ -package com.volmit.iris.util.matter.slices.container; +package art.arcane.iris.util.matter.slices.container; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.core.loader.IrisRegistrant; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.core.loader.IrisRegistrant; public abstract class RegistrantContainer { private final Class type; diff --git a/core/src/main/java/com/volmit/iris/util/noise/CNG.java b/core/src/main/java/art/arcane/iris/util/project/noise/CNG.java similarity index 95% rename from core/src/main/java/com/volmit/iris/util/noise/CNG.java rename to core/src/main/java/art/arcane/iris/util/project/noise/CNG.java index a17fee3f0..31beeb569 100644 --- a/core/src/main/java/com/volmit/iris/util/noise/CNG.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/CNG.java @@ -16,21 +16,21 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.noise; +package art.arcane.iris.util.noise; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.object.IRare; -import com.volmit.iris.engine.object.NoiseStyle; -import com.volmit.iris.util.cache.FloatCache; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.function.NoiseInjector; -import com.volmit.iris.util.interpolation.IrisInterpolation; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; -import com.volmit.iris.util.stream.ProceduralStream; -import com.volmit.iris.util.stream.arithmetic.FittedStream; -import com.volmit.iris.util.stream.sources.CNGStream; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.object.IRare; +import art.arcane.iris.engine.object.NoiseStyle; +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.interpolation.IrisInterpolation; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.stream.arithmetic.FittedStream; +import art.arcane.iris.util.stream.sources.CNGStream; import lombok.Data; import java.io.DataOutputStream; diff --git a/core/src/main/java/com/volmit/iris/util/noise/CNGFactory.java b/core/src/main/java/art/arcane/iris/util/project/noise/CNGFactory.java similarity index 91% rename from core/src/main/java/com/volmit/iris/util/noise/CNGFactory.java rename to core/src/main/java/art/arcane/iris/util/project/noise/CNGFactory.java index ccb9f249e..03936b918 100644 --- a/core/src/main/java/com/volmit/iris/util/noise/CNGFactory.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/CNGFactory.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.noise; +package art.arcane.iris.util.noise; -import com.volmit.iris.util.math.RNG; +import art.arcane.volmlib.util.math.RNG; @FunctionalInterface public interface CNGFactory { diff --git a/core/src/main/java/com/volmit/iris/util/noise/CachedNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/CachedNoise.java similarity index 97% rename from core/src/main/java/com/volmit/iris/util/noise/CachedNoise.java rename to core/src/main/java/art/arcane/iris/util/project/noise/CachedNoise.java index 44ca3c1ef..36130a488 100644 --- a/core/src/main/java/com/volmit/iris/util/noise/CachedNoise.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/CachedNoise.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.noise; +package art.arcane.iris.util.noise; public class CachedNoise implements NoiseGenerator { private final CachedNoiseMap n; diff --git a/core/src/main/java/com/volmit/iris/util/noise/CachedNoiseMap.java b/core/src/main/java/art/arcane/iris/util/project/noise/CachedNoiseMap.java similarity index 90% rename from core/src/main/java/com/volmit/iris/util/noise/CachedNoiseMap.java rename to core/src/main/java/art/arcane/iris/util/project/noise/CachedNoiseMap.java index 2fae085b3..c685169ee 100644 --- a/core/src/main/java/com/volmit/iris/util/noise/CachedNoiseMap.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/CachedNoiseMap.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.noise; +package art.arcane.iris.util.noise; -import com.volmit.iris.util.hunk.bits.Writable; -import com.volmit.iris.util.matter.IrisMatter; -import com.volmit.iris.util.matter.Matter; -import com.volmit.iris.util.matter.MatterSlice; +import art.arcane.volmlib.util.hunk.bits.Writable; +import art.arcane.iris.util.matter.IrisMatter; +import art.arcane.iris.util.matter.Matter; +import art.arcane.iris.util.matter.MatterSlice; import java.io.DataInputStream; import java.io.DataOutputStream; diff --git a/core/src/main/java/com/volmit/iris/util/noise/CellGenerator.java b/core/src/main/java/art/arcane/iris/util/project/noise/CellGenerator.java similarity index 97% rename from core/src/main/java/com/volmit/iris/util/noise/CellGenerator.java rename to core/src/main/java/art/arcane/iris/util/project/noise/CellGenerator.java index 9cd0fbc7e..75e9f9524 100644 --- a/core/src/main/java/com/volmit/iris/util/noise/CellGenerator.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/CellGenerator.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.noise; +package art.arcane.iris.util.noise; -import com.volmit.iris.util.math.RNG; +import art.arcane.volmlib.util.math.RNG; import lombok.Getter; import lombok.Setter; diff --git a/core/src/main/java/com/volmit/iris/util/noise/CellHeightNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/CellHeightNoise.java similarity index 93% rename from core/src/main/java/com/volmit/iris/util/noise/CellHeightNoise.java rename to core/src/main/java/art/arcane/iris/util/project/noise/CellHeightNoise.java index 62e3d1761..481e63cdb 100644 --- a/core/src/main/java/com/volmit/iris/util/noise/CellHeightNoise.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/CellHeightNoise.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.noise; +package art.arcane.iris.util.noise; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.math.RNG; +import art.arcane.volmlib.util.math.M; +import art.arcane.volmlib.util.math.RNG; public class CellHeightNoise implements NoiseGenerator { private final FastNoiseDouble n; diff --git a/core/src/main/java/com/volmit/iris/util/noise/CellularNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/CellularNoise.java similarity index 95% rename from core/src/main/java/com/volmit/iris/util/noise/CellularNoise.java rename to core/src/main/java/art/arcane/iris/util/project/noise/CellularNoise.java index 740c1c4c4..40cd31db4 100644 --- a/core/src/main/java/com/volmit/iris/util/noise/CellularNoise.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/CellularNoise.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.noise; +package art.arcane.iris.util.noise; -import com.volmit.iris.util.math.RNG; +import art.arcane.volmlib.util.math.RNG; public class CellularNoise implements NoiseGenerator { private final FastNoise n; diff --git a/core/src/main/java/com/volmit/iris/util/noise/CloverNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/CloverNoise.java similarity index 99% rename from core/src/main/java/com/volmit/iris/util/noise/CloverNoise.java rename to core/src/main/java/art/arcane/iris/util/project/noise/CloverNoise.java index c2171e2b1..17bdd6f69 100644 --- a/core/src/main/java/com/volmit/iris/util/noise/CloverNoise.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/CloverNoise.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.noise; +package art.arcane.iris.util.noise; public class CloverNoise implements NoiseGenerator { private final Noise2D n2; diff --git a/core/src/main/java/com/volmit/iris/util/noise/CubicNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/CubicNoise.java similarity index 94% rename from core/src/main/java/com/volmit/iris/util/noise/CubicNoise.java rename to core/src/main/java/art/arcane/iris/util/project/noise/CubicNoise.java index 485ea08b8..0d6c76821 100644 --- a/core/src/main/java/com/volmit/iris/util/noise/CubicNoise.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/CubicNoise.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.noise; +package art.arcane.iris.util.noise; -import com.volmit.iris.util.math.RNG; +import art.arcane.volmlib.util.math.RNG; public class CubicNoise implements NoiseGenerator { private final FastNoiseDouble n; diff --git a/core/src/main/java/com/volmit/iris/util/noise/ExpressionNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/ExpressionNoise.java similarity index 91% rename from core/src/main/java/com/volmit/iris/util/noise/ExpressionNoise.java rename to core/src/main/java/art/arcane/iris/util/project/noise/ExpressionNoise.java index 7052d9dd2..ea809aa68 100644 --- a/core/src/main/java/com/volmit/iris/util/noise/ExpressionNoise.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/ExpressionNoise.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.noise; +package art.arcane.iris.util.noise; -import com.volmit.iris.engine.object.IrisExpression; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.engine.object.IrisExpression; +import art.arcane.volmlib.util.math.RNG; public class ExpressionNoise implements NoiseGenerator { private final RNG rng; diff --git a/core/src/main/java/com/volmit/iris/util/noise/FastNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/FastNoise.java similarity index 99% rename from core/src/main/java/com/volmit/iris/util/noise/FastNoise.java rename to core/src/main/java/art/arcane/iris/util/project/noise/FastNoise.java index 4538c772c..fcaae1c98 100644 --- a/core/src/main/java/com/volmit/iris/util/noise/FastNoise.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/FastNoise.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.noise; +package art.arcane.iris.util.noise; -import com.volmit.iris.util.math.Vector2f; -import com.volmit.iris.util.math.Vector3f; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.volmlib.util.math.Vector2f; +import art.arcane.volmlib.util.math.Vector3f; +import art.arcane.iris.util.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), diff --git a/core/src/main/java/com/volmit/iris/util/noise/FastNoiseDouble.java b/core/src/main/java/art/arcane/iris/util/project/noise/FastNoiseDouble.java similarity index 99% rename from core/src/main/java/com/volmit/iris/util/noise/FastNoiseDouble.java rename to core/src/main/java/art/arcane/iris/util/project/noise/FastNoiseDouble.java index 6bc67528c..b9bbf31b7 100644 --- a/core/src/main/java/com/volmit/iris/util/noise/FastNoiseDouble.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/FastNoiseDouble.java @@ -15,10 +15,10 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package com.volmit.iris.util.noise; +package art.arcane.iris.util.noise; -import com.volmit.iris.util.math.Vector2f; -import com.volmit.iris.util.math.Vector3f; +import art.arcane.volmlib.util.math.Vector2f; +import art.arcane.volmlib.util.math.Vector3f; public class FastNoiseDouble { private static final Double2[] GRAD_2D = {new Double2(-1, -1), new Double2(1, -1), new Double2(-1, 1), new Double2(1, 1), new Double2(0, -1), new Double2(-1, 0), new Double2(0, 1), new Double2(1, 0), diff --git a/core/src/main/java/com/volmit/iris/util/noise/FlatNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/FlatNoise.java similarity index 96% rename from core/src/main/java/com/volmit/iris/util/noise/FlatNoise.java rename to core/src/main/java/art/arcane/iris/util/project/noise/FlatNoise.java index e7a92b8d8..8ccb8a951 100644 --- a/core/src/main/java/com/volmit/iris/util/noise/FlatNoise.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/FlatNoise.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.noise; +package art.arcane.iris.util.noise; public class FlatNoise implements NoiseGenerator { public FlatNoise(long seed) { diff --git a/core/src/main/java/com/volmit/iris/util/noise/FractalBillowPerlinNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/FractalBillowPerlinNoise.java similarity index 91% rename from core/src/main/java/com/volmit/iris/util/noise/FractalBillowPerlinNoise.java rename to core/src/main/java/art/arcane/iris/util/project/noise/FractalBillowPerlinNoise.java index 06c92b12f..1526e98c6 100644 --- a/core/src/main/java/com/volmit/iris/util/noise/FractalBillowPerlinNoise.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/FractalBillowPerlinNoise.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.noise; +package art.arcane.iris.util.noise; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.FastNoiseDouble.FractalType; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.FastNoiseDouble.FractalType; public class FractalBillowPerlinNoise implements NoiseGenerator, OctaveNoise { private final FastNoiseDouble n; diff --git a/core/src/main/java/com/volmit/iris/util/noise/FractalBillowSimplexNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/FractalBillowSimplexNoise.java similarity index 91% rename from core/src/main/java/com/volmit/iris/util/noise/FractalBillowSimplexNoise.java rename to core/src/main/java/art/arcane/iris/util/project/noise/FractalBillowSimplexNoise.java index 1641bb4b7..ed5deb3e7 100644 --- a/core/src/main/java/com/volmit/iris/util/noise/FractalBillowSimplexNoise.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/FractalBillowSimplexNoise.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.noise; +package art.arcane.iris.util.noise; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.FastNoiseDouble.FractalType; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.FastNoiseDouble.FractalType; public class FractalBillowSimplexNoise implements NoiseGenerator, OctaveNoise { private final FastNoiseDouble n; diff --git a/core/src/main/java/com/volmit/iris/util/noise/FractalCubicNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/FractalCubicNoise.java similarity index 91% rename from core/src/main/java/com/volmit/iris/util/noise/FractalCubicNoise.java rename to core/src/main/java/art/arcane/iris/util/project/noise/FractalCubicNoise.java index 76db22118..a3efdb13d 100644 --- a/core/src/main/java/com/volmit/iris/util/noise/FractalCubicNoise.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/FractalCubicNoise.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.noise; +package art.arcane.iris.util.noise; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.FastNoiseDouble.FractalType; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.FastNoiseDouble.FractalType; public class FractalCubicNoise implements NoiseGenerator { private final FastNoiseDouble n; diff --git a/core/src/main/java/com/volmit/iris/util/noise/FractalFBMSimplexNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/FractalFBMSimplexNoise.java similarity index 91% rename from core/src/main/java/com/volmit/iris/util/noise/FractalFBMSimplexNoise.java rename to core/src/main/java/art/arcane/iris/util/project/noise/FractalFBMSimplexNoise.java index af3e68d64..e6903e1b0 100644 --- a/core/src/main/java/com/volmit/iris/util/noise/FractalFBMSimplexNoise.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/FractalFBMSimplexNoise.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.noise; +package art.arcane.iris.util.noise; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.FastNoiseDouble.FractalType; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.FastNoiseDouble.FractalType; public class FractalFBMSimplexNoise implements NoiseGenerator, OctaveNoise { private final FastNoiseDouble n; diff --git a/core/src/main/java/com/volmit/iris/util/noise/FractalRigidMultiSimplexNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/FractalRigidMultiSimplexNoise.java similarity index 91% rename from core/src/main/java/com/volmit/iris/util/noise/FractalRigidMultiSimplexNoise.java rename to core/src/main/java/art/arcane/iris/util/project/noise/FractalRigidMultiSimplexNoise.java index 150975da2..9e869f596 100644 --- a/core/src/main/java/com/volmit/iris/util/noise/FractalRigidMultiSimplexNoise.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/FractalRigidMultiSimplexNoise.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.noise; +package art.arcane.iris.util.noise; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.FastNoiseDouble.FractalType; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.FastNoiseDouble.FractalType; public class FractalRigidMultiSimplexNoise implements NoiseGenerator, OctaveNoise { private final FastNoiseDouble n; diff --git a/core/src/main/java/com/volmit/iris/util/noise/GlobNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/GlobNoise.java similarity index 95% rename from core/src/main/java/com/volmit/iris/util/noise/GlobNoise.java rename to core/src/main/java/art/arcane/iris/util/project/noise/GlobNoise.java index 0443f51c1..03b7fdbfc 100644 --- a/core/src/main/java/com/volmit/iris/util/noise/GlobNoise.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/GlobNoise.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.noise; +package art.arcane.iris.util.noise; -import com.volmit.iris.util.math.RNG; +import art.arcane.volmlib.util.math.RNG; public class GlobNoise implements NoiseGenerator { private final FastNoiseDouble n; diff --git a/core/src/main/java/com/volmit/iris/util/noise/ImageNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/ImageNoise.java similarity index 91% rename from core/src/main/java/com/volmit/iris/util/noise/ImageNoise.java rename to core/src/main/java/art/arcane/iris/util/project/noise/ImageNoise.java index 2bd790fd5..3ae0d10e0 100644 --- a/core/src/main/java/com/volmit/iris/util/noise/ImageNoise.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/ImageNoise.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.noise; +package art.arcane.iris.util.noise; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.object.IrisImageMap; +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.engine.object.IrisImageMap; public class ImageNoise implements NoiseGenerator { private final IrisImageMap expression; diff --git a/core/src/main/java/com/volmit/iris/util/noise/InterpolatedNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/InterpolatedNoise.java similarity index 87% rename from core/src/main/java/com/volmit/iris/util/noise/InterpolatedNoise.java rename to core/src/main/java/art/arcane/iris/util/project/noise/InterpolatedNoise.java index f146fa483..96fd11bcb 100644 --- a/core/src/main/java/com/volmit/iris/util/noise/InterpolatedNoise.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/InterpolatedNoise.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.noise; +package art.arcane.iris.util.noise; -import com.volmit.iris.util.function.NoiseProvider; -import com.volmit.iris.util.interpolation.InterpolationMethod; -import com.volmit.iris.util.interpolation.IrisInterpolation; +import art.arcane.volmlib.util.function.NoiseProvider; +import art.arcane.iris.util.interpolation.InterpolationMethod; +import art.arcane.iris.util.interpolation.IrisInterpolation; public class InterpolatedNoise implements NoiseGenerator { private final InterpolationMethod method; diff --git a/core/src/main/java/com/volmit/iris/util/noise/NoiseFactory.java b/core/src/main/java/art/arcane/iris/util/project/noise/NoiseFactory.java similarity index 95% rename from core/src/main/java/com/volmit/iris/util/noise/NoiseFactory.java rename to core/src/main/java/art/arcane/iris/util/project/noise/NoiseFactory.java index fac5399d4..98aa46e90 100644 --- a/core/src/main/java/com/volmit/iris/util/noise/NoiseFactory.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/NoiseFactory.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.noise; +package art.arcane.iris.util.noise; @FunctionalInterface public interface NoiseFactory { diff --git a/core/src/main/java/com/volmit/iris/util/noise/NoiseGenerator.java b/core/src/main/java/art/arcane/iris/util/project/noise/NoiseGenerator.java similarity index 89% rename from core/src/main/java/com/volmit/iris/util/noise/NoiseGenerator.java rename to core/src/main/java/art/arcane/iris/util/project/noise/NoiseGenerator.java index 4574e9eb1..9dbb0907f 100644 --- a/core/src/main/java/com/volmit/iris/util/noise/NoiseGenerator.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/NoiseGenerator.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.noise; +package art.arcane.iris.util.noise; -import com.volmit.iris.util.stream.ProceduralStream; -import com.volmit.iris.util.stream.interpolation.Interpolated; +import art.arcane.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.stream.interpolation.Interpolated; public interface NoiseGenerator { double noise(double x); diff --git a/core/src/main/java/com/volmit/iris/util/noise/NoiseType.java b/core/src/main/java/art/arcane/iris/util/project/noise/NoiseType.java similarity index 97% rename from core/src/main/java/com/volmit/iris/util/noise/NoiseType.java rename to core/src/main/java/art/arcane/iris/util/project/noise/NoiseType.java index 20f89ca8b..6443503dc 100644 --- a/core/src/main/java/com/volmit/iris/util/noise/NoiseType.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/NoiseType.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.noise; +package art.arcane.iris.util.noise; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.util.interpolation.InterpolationMethod; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.util.interpolation.InterpolationMethod; public enum NoiseType { WHITE(WhiteNoise::new), diff --git a/core/src/main/java/com/volmit/iris/util/noise/OctaveNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/OctaveNoise.java similarity index 95% rename from core/src/main/java/com/volmit/iris/util/noise/OctaveNoise.java rename to core/src/main/java/art/arcane/iris/util/project/noise/OctaveNoise.java index a868f0738..e80bd74a8 100644 --- a/core/src/main/java/com/volmit/iris/util/noise/OctaveNoise.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/OctaveNoise.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.noise; +package art.arcane.iris.util.noise; public interface OctaveNoise { void setOctaves(int o); diff --git a/core/src/main/java/com/volmit/iris/util/noise/OffsetNoiseGenerator.java b/core/src/main/java/art/arcane/iris/util/project/noise/OffsetNoiseGenerator.java similarity index 92% rename from core/src/main/java/com/volmit/iris/util/noise/OffsetNoiseGenerator.java rename to core/src/main/java/art/arcane/iris/util/project/noise/OffsetNoiseGenerator.java index 97e3088c0..e417bcb29 100644 --- a/core/src/main/java/com/volmit/iris/util/noise/OffsetNoiseGenerator.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/OffsetNoiseGenerator.java @@ -1,7 +1,7 @@ -package com.volmit.iris.util.noise; +package art.arcane.iris.util.noise; -import com.volmit.iris.util.math.RNG; +import art.arcane.volmlib.util.math.RNG; import org.jetbrains.annotations.NotNull; diff --git a/core/src/main/java/com/volmit/iris/util/noise/PerlinNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/PerlinNoise.java similarity index 97% rename from core/src/main/java/com/volmit/iris/util/noise/PerlinNoise.java rename to core/src/main/java/art/arcane/iris/util/project/noise/PerlinNoise.java index 7681f99c5..4250a6a40 100644 --- a/core/src/main/java/com/volmit/iris/util/noise/PerlinNoise.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/PerlinNoise.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.noise; +package art.arcane.iris.util.noise; -import com.volmit.iris.util.math.RNG; +import art.arcane.volmlib.util.math.RNG; public class PerlinNoise implements NoiseGenerator, OctaveNoise { private final FastNoiseDouble n; diff --git a/core/src/main/java/com/volmit/iris/util/noise/RarityCellGenerator.java b/core/src/main/java/art/arcane/iris/util/project/noise/RarityCellGenerator.java similarity index 92% rename from core/src/main/java/com/volmit/iris/util/noise/RarityCellGenerator.java rename to core/src/main/java/art/arcane/iris/util/project/noise/RarityCellGenerator.java index 268f2bfde..2eadd65cd 100644 --- a/core/src/main/java/com/volmit/iris/util/noise/RarityCellGenerator.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/RarityCellGenerator.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.noise; +package art.arcane.iris.util.noise; -import com.volmit.iris.engine.object.IRare; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.engine.object.IRare; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.math.RNG; public class RarityCellGenerator extends CellGenerator { public RarityCellGenerator(RNG rng) { diff --git a/core/src/main/java/com/volmit/iris/util/noise/SimplexNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/SimplexNoise.java similarity index 96% rename from core/src/main/java/com/volmit/iris/util/noise/SimplexNoise.java rename to core/src/main/java/art/arcane/iris/util/project/noise/SimplexNoise.java index 5ad097b4f..bb6d82b1b 100644 --- a/core/src/main/java/com/volmit/iris/util/noise/SimplexNoise.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/SimplexNoise.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.noise; +package art.arcane.iris.util.noise; -import com.volmit.iris.util.math.RNG; +import art.arcane.volmlib.util.math.RNG; public class SimplexNoise implements NoiseGenerator, OctaveNoise { private final FastNoiseDouble n; diff --git a/core/src/main/java/com/volmit/iris/util/noise/VascularNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/VascularNoise.java similarity index 93% rename from core/src/main/java/com/volmit/iris/util/noise/VascularNoise.java rename to core/src/main/java/art/arcane/iris/util/project/noise/VascularNoise.java index 6a979d08c..aadc98332 100644 --- a/core/src/main/java/com/volmit/iris/util/noise/VascularNoise.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/VascularNoise.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.noise; +package art.arcane.iris.util.noise; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.math.RNG; +import art.arcane.volmlib.util.math.M; +import art.arcane.volmlib.util.math.RNG; public class VascularNoise implements NoiseGenerator { private final FastNoiseDouble n; diff --git a/core/src/main/java/com/volmit/iris/util/noise/WhiteNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/WhiteNoise.java similarity index 95% rename from core/src/main/java/com/volmit/iris/util/noise/WhiteNoise.java rename to core/src/main/java/art/arcane/iris/util/project/noise/WhiteNoise.java index 3ce0bccc4..4b2fcb6c8 100644 --- a/core/src/main/java/com/volmit/iris/util/noise/WhiteNoise.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/WhiteNoise.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.noise; +package art.arcane.iris.util.noise; -import com.volmit.iris.util.math.RNG; +import art.arcane.volmlib.util.math.RNG; public class WhiteNoise implements NoiseGenerator { private final FastNoise n; diff --git a/core/src/main/java/com/volmit/iris/util/profile/LoadBalancer.java b/core/src/main/java/art/arcane/iris/util/project/profile/LoadBalancer.java similarity index 92% rename from core/src/main/java/com/volmit/iris/util/profile/LoadBalancer.java rename to core/src/main/java/art/arcane/iris/util/project/profile/LoadBalancer.java index c92f57a2f..a8883e55b 100644 --- a/core/src/main/java/com/volmit/iris/util/profile/LoadBalancer.java +++ b/core/src/main/java/art/arcane/iris/util/project/profile/LoadBalancer.java @@ -1,9 +1,9 @@ -package com.volmit.iris.util.profile; +package art.arcane.iris.util.profile; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.util.math.M; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.volmlib.util.math.M; import lombok.Getter; import lombok.Setter; diff --git a/core/src/main/java/com/volmit/iris/util/profile/MsptTimings.java b/core/src/main/java/art/arcane/iris/util/project/profile/MsptTimings.java similarity index 92% rename from core/src/main/java/com/volmit/iris/util/profile/MsptTimings.java rename to core/src/main/java/art/arcane/iris/util/project/profile/MsptTimings.java index 2d098e1e7..d94eaa27d 100644 --- a/core/src/main/java/com/volmit/iris/util/profile/MsptTimings.java +++ b/core/src/main/java/art/arcane/iris/util/project/profile/MsptTimings.java @@ -1,8 +1,8 @@ -package com.volmit.iris.util.profile; +package art.arcane.iris.util.profile; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.scheduling.J; -import com.volmit.iris.util.scheduling.Looper; +import art.arcane.volmlib.util.math.M; +import art.arcane.iris.util.scheduling.J; +import art.arcane.volmlib.util.scheduling.Looper; import org.bukkit.Bukkit; import java.util.concurrent.atomic.AtomicInteger; diff --git a/core/src/main/java/com/volmit/iris/util/sentry/Attachments.java b/core/src/main/java/art/arcane/iris/util/project/sentry/Attachments.java similarity index 92% rename from core/src/main/java/com/volmit/iris/util/sentry/Attachments.java rename to core/src/main/java/art/arcane/iris/util/project/sentry/Attachments.java index d6dbcccfa..eb19f41d4 100644 --- a/core/src/main/java/com/volmit/iris/util/sentry/Attachments.java +++ b/core/src/main/java/art/arcane/iris/util/project/sentry/Attachments.java @@ -1,9 +1,9 @@ -package com.volmit.iris.util.sentry; +package art.arcane.iris.util.sentry; import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import com.volmit.iris.core.safeguard.IrisSafeguard; -import com.volmit.iris.util.collection.KMap; +import art.arcane.iris.core.safeguard.IrisSafeguard; +import art.arcane.volmlib.util.collection.KMap; import io.sentry.Attachment; import org.bukkit.Bukkit; diff --git a/core/src/main/java/com/volmit/iris/util/sentry/IrisLogger.java b/core/src/main/java/art/arcane/iris/util/project/sentry/IrisLogger.java similarity index 95% rename from core/src/main/java/com/volmit/iris/util/sentry/IrisLogger.java rename to core/src/main/java/art/arcane/iris/util/project/sentry/IrisLogger.java index e51d407c5..e77d6660c 100644 --- a/core/src/main/java/com/volmit/iris/util/sentry/IrisLogger.java +++ b/core/src/main/java/art/arcane/iris/util/project/sentry/IrisLogger.java @@ -1,6 +1,6 @@ -package com.volmit.iris.util.sentry; +package art.arcane.iris.util.sentry; -import com.volmit.iris.Iris; +import art.arcane.iris.Iris; import io.sentry.ILogger; import io.sentry.SentryLevel; import org.jetbrains.annotations.NotNull; diff --git a/core/src/main/java/com/volmit/iris/util/sentry/ServerID.java b/core/src/main/java/art/arcane/iris/util/project/sentry/ServerID.java similarity index 95% rename from core/src/main/java/com/volmit/iris/util/sentry/ServerID.java rename to core/src/main/java/art/arcane/iris/util/project/sentry/ServerID.java index da766574e..4b090a9ab 100644 --- a/core/src/main/java/com/volmit/iris/util/sentry/ServerID.java +++ b/core/src/main/java/art/arcane/iris/util/project/sentry/ServerID.java @@ -1,6 +1,6 @@ -package com.volmit.iris.util.sentry; +package art.arcane.iris.util.sentry; -import com.volmit.iris.util.io.IO; +import art.arcane.volmlib.util.io.IO; import io.sentry.protocol.User; import lombok.SneakyThrows; import org.bukkit.Bukkit; diff --git a/core/src/main/java/com/volmit/iris/util/stream/BasicStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/BasicStream.java similarity index 94% rename from core/src/main/java/com/volmit/iris/util/stream/BasicStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/BasicStream.java index b23ba9801..19d42f407 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/BasicStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/BasicStream.java @@ -16,7 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream; +package art.arcane.iris.util.stream; + +import art.arcane.volmlib.util.stream.BasicLayer; public abstract class BasicStream extends BasicLayer implements ProceduralStream { private final ProceduralStream source; diff --git a/core/src/main/java/com/volmit/iris/util/stream/ProceduralStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/ProceduralStream.java similarity index 94% rename from core/src/main/java/com/volmit/iris/util/stream/ProceduralStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/ProceduralStream.java index 539a0f224..b0add8ea3 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/ProceduralStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/ProceduralStream.java @@ -16,28 +16,30 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream; +package art.arcane.iris.util.stream; -import com.volmit.iris.Iris; -import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.data.cache.Cache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IRare; -import com.volmit.iris.engine.object.IrisStyledRange; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.context.ChunkContext; -import com.volmit.iris.util.function.Function2; -import com.volmit.iris.util.function.Function3; -import com.volmit.iris.util.function.Function4; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.parallel.BurstExecutor; -import com.volmit.iris.util.parallel.MultiBurst; -import com.volmit.iris.util.stream.arithmetic.*; -import com.volmit.iris.util.stream.convert.*; -import com.volmit.iris.util.stream.interpolation.Interpolated; -import com.volmit.iris.util.stream.sources.FunctionStream; -import com.volmit.iris.util.stream.utility.*; +import art.arcane.iris.Iris; +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.volmlib.util.collection.KList; +import art.arcane.volmlib.util.stream.ProceduralLayer; +import art.arcane.volmlib.util.stream.Significance; +import art.arcane.iris.util.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.hunk.Hunk; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.parallel.BurstExecutor; +import art.arcane.iris.util.parallel.MultiBurst; +import art.arcane.iris.util.stream.arithmetic.*; +import art.arcane.iris.util.stream.convert.*; +import art.arcane.iris.util.stream.interpolation.Interpolated; +import art.arcane.iris.util.stream.sources.FunctionStream; +import art.arcane.iris.util.stream.utility.*; import java.util.ArrayList; import java.util.List; diff --git a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/AddingStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/AddingStream.java similarity index 87% rename from core/src/main/java/com/volmit/iris/util/stream/arithmetic/AddingStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/AddingStream.java index 273e107ca..185c65aa4 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/AddingStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/AddingStream.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.arithmetic; +package art.arcane.iris.util.stream.arithmetic; -import com.volmit.iris.util.function.Function2; -import com.volmit.iris.util.function.Function3; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.volmlib.util.function.Function2; +import art.arcane.volmlib.util.function.Function3; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class AddingStream extends BasicStream { private final Function3 add; diff --git a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/ClampedStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ClampedStream.java similarity index 91% rename from core/src/main/java/com/volmit/iris/util/stream/arithmetic/ClampedStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ClampedStream.java index 34f5a5f8a..e7542129f 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/ClampedStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ClampedStream.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.arithmetic; +package art.arcane.iris.util.stream.arithmetic; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class ClampedStream extends BasicStream implements ProceduralStream { private final double min; diff --git a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/CoordinateBitShiftLeftStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/CoordinateBitShiftLeftStream.java similarity index 91% rename from core/src/main/java/com/volmit/iris/util/stream/arithmetic/CoordinateBitShiftLeftStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/CoordinateBitShiftLeftStream.java index 14925fe75..00f1d3af7 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/CoordinateBitShiftLeftStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/CoordinateBitShiftLeftStream.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.arithmetic; +package art.arcane.iris.util.stream.arithmetic; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class CoordinateBitShiftLeftStream extends BasicStream implements ProceduralStream { private final int amount; diff --git a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/CoordinateBitShiftRightStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/CoordinateBitShiftRightStream.java similarity index 91% rename from core/src/main/java/com/volmit/iris/util/stream/arithmetic/CoordinateBitShiftRightStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/CoordinateBitShiftRightStream.java index 948a690e8..4aada456c 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/CoordinateBitShiftRightStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/CoordinateBitShiftRightStream.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.arithmetic; +package art.arcane.iris.util.stream.arithmetic; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class CoordinateBitShiftRightStream extends BasicStream implements ProceduralStream { private final int amount; diff --git a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/DividingStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/DividingStream.java similarity index 88% rename from core/src/main/java/com/volmit/iris/util/stream/arithmetic/DividingStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/DividingStream.java index 881af02e8..1c36dbcaa 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/DividingStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/DividingStream.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.arithmetic; +package art.arcane.iris.util.stream.arithmetic; -import com.volmit.iris.util.function.Function2; -import com.volmit.iris.util.function.Function3; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.volmlib.util.function.Function2; +import art.arcane.volmlib.util.function.Function3; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class DividingStream extends BasicStream implements ProceduralStream { private final Function3 add; diff --git a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/FittedStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/FittedStream.java similarity index 92% rename from core/src/main/java/com/volmit/iris/util/stream/arithmetic/FittedStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/FittedStream.java index 045039e9f..157601a14 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/FittedStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/FittedStream.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.arithmetic; +package art.arcane.iris.util.stream.arithmetic; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class FittedStream extends BasicStream implements ProceduralStream { private final double min; diff --git a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/MaxingStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MaxingStream.java similarity index 87% rename from core/src/main/java/com/volmit/iris/util/stream/arithmetic/MaxingStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MaxingStream.java index 513f09ea2..4ad2a44c9 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/MaxingStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MaxingStream.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.arithmetic; +package art.arcane.iris.util.stream.arithmetic; -import com.volmit.iris.util.function.Function2; -import com.volmit.iris.util.function.Function3; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.volmlib.util.function.Function2; +import art.arcane.volmlib.util.function.Function3; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class MaxingStream extends BasicStream { private final Function3 add; diff --git a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/MinningStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MinningStream.java similarity index 87% rename from core/src/main/java/com/volmit/iris/util/stream/arithmetic/MinningStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MinningStream.java index 369856432..e646f8600 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/MinningStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MinningStream.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.arithmetic; +package art.arcane.iris.util.stream.arithmetic; -import com.volmit.iris.util.function.Function2; -import com.volmit.iris.util.function.Function3; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.volmlib.util.function.Function2; +import art.arcane.volmlib.util.function.Function3; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class MinningStream extends BasicStream { private final Function3 add; diff --git a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/ModuloStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ModuloStream.java similarity index 87% rename from core/src/main/java/com/volmit/iris/util/stream/arithmetic/ModuloStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ModuloStream.java index c8c0664b5..fe9b80b9c 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/ModuloStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ModuloStream.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.arithmetic; +package art.arcane.iris.util.stream.arithmetic; -import com.volmit.iris.util.function.Function2; -import com.volmit.iris.util.function.Function3; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.volmlib.util.function.Function2; +import art.arcane.volmlib.util.function.Function3; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class ModuloStream extends BasicStream { private final Function3 add; diff --git a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/MultiplyingStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MultiplyingStream.java similarity index 87% rename from core/src/main/java/com/volmit/iris/util/stream/arithmetic/MultiplyingStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MultiplyingStream.java index 4e1a8e4fc..b584df2cf 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/MultiplyingStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MultiplyingStream.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.arithmetic; +package art.arcane.iris.util.stream.arithmetic; -import com.volmit.iris.util.function.Function2; -import com.volmit.iris.util.function.Function3; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.volmlib.util.function.Function2; +import art.arcane.volmlib.util.function.Function3; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class MultiplyingStream extends BasicStream { private final Function3 add; diff --git a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/OffsetStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/OffsetStream.java similarity index 91% rename from core/src/main/java/com/volmit/iris/util/stream/arithmetic/OffsetStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/OffsetStream.java index ace5be403..52e398a8f 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/OffsetStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/OffsetStream.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.arithmetic; +package art.arcane.iris.util.stream.arithmetic; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class OffsetStream extends BasicStream implements ProceduralStream { private final double ox; diff --git a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/RadialStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/RadialStream.java similarity index 91% rename from core/src/main/java/com/volmit/iris/util/stream/arithmetic/RadialStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/RadialStream.java index be20cdc40..18e85057c 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/RadialStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/RadialStream.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.arithmetic; +package art.arcane.iris.util.stream.arithmetic; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class RadialStream extends BasicStream implements ProceduralStream { private final double scale; diff --git a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/RoundingDoubleStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/RoundingDoubleStream.java similarity index 90% rename from core/src/main/java/com/volmit/iris/util/stream/arithmetic/RoundingDoubleStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/RoundingDoubleStream.java index 7b24faf0e..fe233dcfe 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/RoundingDoubleStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/RoundingDoubleStream.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.arithmetic; +package art.arcane.iris.util.stream.arithmetic; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class RoundingDoubleStream extends BasicStream { private final ProceduralStream stream; diff --git a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/SlopeStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/SlopeStream.java similarity index 92% rename from core/src/main/java/com/volmit/iris/util/stream/arithmetic/SlopeStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/SlopeStream.java index eb60f804b..bcfc4903e 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/SlopeStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/SlopeStream.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.arithmetic; +package art.arcane.iris.util.stream.arithmetic; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class SlopeStream extends BasicStream { private final int range; diff --git a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/SubtractingStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/SubtractingStream.java similarity index 87% rename from core/src/main/java/com/volmit/iris/util/stream/arithmetic/SubtractingStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/SubtractingStream.java index 8dd76be80..7c14b6089 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/SubtractingStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/SubtractingStream.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.arithmetic; +package art.arcane.iris.util.stream.arithmetic; -import com.volmit.iris.util.function.Function2; -import com.volmit.iris.util.function.Function3; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.volmlib.util.function.Function2; +import art.arcane.volmlib.util.function.Function3; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class SubtractingStream extends BasicStream { private final Function3 add; diff --git a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/ZoomStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ZoomStream.java similarity index 91% rename from core/src/main/java/com/volmit/iris/util/stream/arithmetic/ZoomStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ZoomStream.java index ea2e5c5b0..641085987 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/arithmetic/ZoomStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ZoomStream.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.arithmetic; +package art.arcane.iris.util.stream.arithmetic; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class ZoomStream extends BasicStream { private final double ox; diff --git a/core/src/main/java/com/volmit/iris/util/stream/convert/AwareConversionStream2D.java b/core/src/main/java/art/arcane/iris/util/project/stream/convert/AwareConversionStream2D.java similarity index 89% rename from core/src/main/java/com/volmit/iris/util/stream/convert/AwareConversionStream2D.java rename to core/src/main/java/art/arcane/iris/util/project/stream/convert/AwareConversionStream2D.java index 2ddecb93b..6d4a5f6da 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/convert/AwareConversionStream2D.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/convert/AwareConversionStream2D.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.convert; +package art.arcane.iris.util.stream.convert; -import com.volmit.iris.util.function.Function3; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.volmlib.util.function.Function3; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class AwareConversionStream2D extends BasicStream { private final ProceduralStream stream; diff --git a/core/src/main/java/com/volmit/iris/util/stream/convert/AwareConversionStream3D.java b/core/src/main/java/art/arcane/iris/util/project/stream/convert/AwareConversionStream3D.java similarity index 89% rename from core/src/main/java/com/volmit/iris/util/stream/convert/AwareConversionStream3D.java rename to core/src/main/java/art/arcane/iris/util/project/stream/convert/AwareConversionStream3D.java index fefbc2a6c..5579d3b28 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/convert/AwareConversionStream3D.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/convert/AwareConversionStream3D.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.convert; +package art.arcane.iris.util.stream.convert; -import com.volmit.iris.util.function.Function4; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.volmlib.util.function.Function4; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class AwareConversionStream3D extends BasicStream { private final ProceduralStream stream; diff --git a/core/src/main/java/com/volmit/iris/util/stream/convert/CachedConversionStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/convert/CachedConversionStream.java similarity index 90% rename from core/src/main/java/com/volmit/iris/util/stream/convert/CachedConversionStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/convert/CachedConversionStream.java index b056a9cce..e9ab19b28 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/convert/CachedConversionStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/convert/CachedConversionStream.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.convert; +package art.arcane.iris.util.stream.convert; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.stream.BasicLayer; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.stream.BasicLayer; +import art.arcane.iris.util.stream.ProceduralStream; import java.util.function.Function; diff --git a/core/src/main/java/com/volmit/iris/util/stream/convert/ConversionStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/convert/ConversionStream.java similarity index 92% rename from core/src/main/java/com/volmit/iris/util/stream/convert/ConversionStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/convert/ConversionStream.java index 9aae8e741..c1922f975 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/convert/ConversionStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/convert/ConversionStream.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.convert; +package art.arcane.iris.util.stream.convert; -import com.volmit.iris.util.stream.BasicLayer; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.volmlib.util.stream.BasicLayer; +import art.arcane.iris.util.stream.ProceduralStream; import java.util.function.Function; diff --git a/core/src/main/java/com/volmit/iris/util/stream/convert/ForceDoubleStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/convert/ForceDoubleStream.java similarity index 90% rename from core/src/main/java/com/volmit/iris/util/stream/convert/ForceDoubleStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/convert/ForceDoubleStream.java index f9c28cb10..95145d56f 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/convert/ForceDoubleStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/convert/ForceDoubleStream.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.convert; +package art.arcane.iris.util.stream.convert; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class ForceDoubleStream extends BasicStream { private final ProceduralStream stream; diff --git a/core/src/main/java/com/volmit/iris/util/stream/convert/RoundingStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/convert/RoundingStream.java similarity index 91% rename from core/src/main/java/com/volmit/iris/util/stream/convert/RoundingStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/convert/RoundingStream.java index 272a3d691..ce28f9b8b 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/convert/RoundingStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/convert/RoundingStream.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.convert; +package art.arcane.iris.util.stream.convert; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class RoundingStream extends BasicStream { private final ProceduralStream stream; diff --git a/core/src/main/java/com/volmit/iris/util/stream/convert/SelectionStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/convert/SelectionStream.java similarity index 92% rename from core/src/main/java/com/volmit/iris/util/stream/convert/SelectionStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/convert/SelectionStream.java index d4ee0038a..97e168a92 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/convert/SelectionStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/convert/SelectionStream.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.convert; +package art.arcane.iris.util.stream.convert; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; import java.util.List; diff --git a/core/src/main/java/com/volmit/iris/util/stream/convert/SignificanceStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/convert/SignificanceStream.java similarity index 88% rename from core/src/main/java/com/volmit/iris/util/stream/convert/SignificanceStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/convert/SignificanceStream.java index 2353cb641..0a17d95f0 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/convert/SignificanceStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/convert/SignificanceStream.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.convert; +package art.arcane.iris.util.stream.convert; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.stream.ArraySignificance; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; -import com.volmit.iris.util.stream.Significance; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.stream.ArraySignificance; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; +import art.arcane.volmlib.util.stream.Significance; public class SignificanceStream, T> extends BasicStream { private final ProceduralStream stream; diff --git a/core/src/main/java/com/volmit/iris/util/stream/convert/To3DStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/convert/To3DStream.java similarity index 90% rename from core/src/main/java/com/volmit/iris/util/stream/convert/To3DStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/convert/To3DStream.java index 969211ae4..e3158be64 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/convert/To3DStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/convert/To3DStream.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.convert; +package art.arcane.iris.util.stream.convert; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class To3DStream extends BasicStream { public To3DStream(ProceduralStream stream) { diff --git a/core/src/main/java/com/volmit/iris/util/stream/interpolation/BiHermiteStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BiHermiteStream.java similarity index 93% rename from core/src/main/java/com/volmit/iris/util/stream/interpolation/BiHermiteStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BiHermiteStream.java index 97350b912..49c388ca1 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/interpolation/BiHermiteStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BiHermiteStream.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.interpolation; +package art.arcane.iris.util.stream.interpolation; -import com.volmit.iris.util.interpolation.IrisInterpolation; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.interpolation.IrisInterpolation; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class BiHermiteStream extends BasicStream implements Interpolator { private final int rx; diff --git a/core/src/main/java/com/volmit/iris/util/stream/interpolation/BiStarcastStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BiStarcastStream.java similarity index 92% rename from core/src/main/java/com/volmit/iris/util/stream/interpolation/BiStarcastStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BiStarcastStream.java index d9529a9e9..5a3b9ba19 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/interpolation/BiStarcastStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BiStarcastStream.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.interpolation; +package art.arcane.iris.util.stream.interpolation; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class BiStarcastStream extends BasicStream implements Interpolator { private final int rad; diff --git a/core/src/main/java/com/volmit/iris/util/stream/interpolation/BicubicStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BicubicStream.java similarity index 93% rename from core/src/main/java/com/volmit/iris/util/stream/interpolation/BicubicStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BicubicStream.java index 3b9302bcb..5f3228b0f 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/interpolation/BicubicStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BicubicStream.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.interpolation; +package art.arcane.iris.util.stream.interpolation; -import com.volmit.iris.util.interpolation.IrisInterpolation; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.interpolation.IrisInterpolation; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class BicubicStream extends BasicStream implements Interpolator { private final int rx; diff --git a/core/src/main/java/com/volmit/iris/util/stream/interpolation/BilinearStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BilinearStream.java similarity index 91% rename from core/src/main/java/com/volmit/iris/util/stream/interpolation/BilinearStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BilinearStream.java index e92d9f53a..ed0a879f2 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/interpolation/BilinearStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BilinearStream.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.interpolation; +package art.arcane.iris.util.stream.interpolation; -import com.volmit.iris.util.interpolation.IrisInterpolation; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.interpolation.IrisInterpolation; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class BilinearStream extends BasicStream implements Interpolator { private final int rx; diff --git a/core/src/main/java/com/volmit/iris/util/stream/interpolation/Interpolated.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/Interpolated.java similarity index 89% rename from core/src/main/java/com/volmit/iris/util/stream/interpolation/Interpolated.java rename to core/src/main/java/art/arcane/iris/util/project/stream/interpolation/Interpolated.java index 9833c58ce..4ff915183 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/interpolation/Interpolated.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/Interpolated.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.interpolation; +package art.arcane.iris.util.stream.interpolation; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.object.CaveResult; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.object.CaveResult; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.stream.ProceduralStream; import org.bukkit.block.data.BlockData; import java.util.UUID; diff --git a/core/src/main/java/com/volmit/iris/util/stream/interpolation/InterpolatingStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/InterpolatingStream.java similarity index 84% rename from core/src/main/java/com/volmit/iris/util/stream/interpolation/InterpolatingStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/interpolation/InterpolatingStream.java index 12ef7a078..02d6fcd67 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/interpolation/InterpolatingStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/InterpolatingStream.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.interpolation; +package art.arcane.iris.util.stream.interpolation; -import com.volmit.iris.util.function.NoiseProvider; -import com.volmit.iris.util.interpolation.InterpolationMethod; -import com.volmit.iris.util.interpolation.IrisInterpolation; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.volmlib.util.function.NoiseProvider; +import art.arcane.iris.util.interpolation.InterpolationMethod; +import art.arcane.iris.util.interpolation.IrisInterpolation; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class InterpolatingStream extends BasicStream implements Interpolator { private final InterpolationMethod type; diff --git a/core/src/main/java/com/volmit/iris/util/stream/interpolation/Interpolator.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/Interpolator.java similarity index 90% rename from core/src/main/java/com/volmit/iris/util/stream/interpolation/Interpolator.java rename to core/src/main/java/art/arcane/iris/util/project/stream/interpolation/Interpolator.java index 22e600a93..22bc53838 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/interpolation/Interpolator.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/Interpolator.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.interpolation; +package art.arcane.iris.util.stream.interpolation; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.stream.ProceduralStream; public interface Interpolator { @SuppressWarnings("unchecked") diff --git a/core/src/main/java/com/volmit/iris/util/stream/interpolation/InterpolatorFactory.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/InterpolatorFactory.java similarity index 95% rename from core/src/main/java/com/volmit/iris/util/stream/interpolation/InterpolatorFactory.java rename to core/src/main/java/art/arcane/iris/util/project/stream/interpolation/InterpolatorFactory.java index 8ed1ee315..09f3bea48 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/interpolation/InterpolatorFactory.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/InterpolatorFactory.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.interpolation; +package art.arcane.iris.util.stream.interpolation; -import com.volmit.iris.util.interpolation.InterpolationMethod; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.interpolation.InterpolationMethod; +import art.arcane.iris.util.stream.ProceduralStream; @SuppressWarnings("ClassCanBeRecord") public class InterpolatorFactory { diff --git a/core/src/main/java/com/volmit/iris/util/stream/interpolation/TriHermiteStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TriHermiteStream.java similarity index 96% rename from core/src/main/java/com/volmit/iris/util/stream/interpolation/TriHermiteStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TriHermiteStream.java index 079675397..3e6534de5 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/interpolation/TriHermiteStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TriHermiteStream.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.interpolation; +package art.arcane.iris.util.stream.interpolation; -import com.volmit.iris.util.interpolation.IrisInterpolation; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.interpolation.IrisInterpolation; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class TriHermiteStream extends BasicStream implements Interpolator { private final int rx; diff --git a/core/src/main/java/com/volmit/iris/util/stream/interpolation/TriStarcastStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TriStarcastStream.java similarity index 93% rename from core/src/main/java/com/volmit/iris/util/stream/interpolation/TriStarcastStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TriStarcastStream.java index 5c91ef598..bbab3df5f 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/interpolation/TriStarcastStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TriStarcastStream.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.interpolation; +package art.arcane.iris.util.stream.interpolation; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class TriStarcastStream extends BasicStream implements Interpolator { private final int rad; diff --git a/core/src/main/java/com/volmit/iris/util/stream/interpolation/TricubicStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TricubicStream.java similarity index 96% rename from core/src/main/java/com/volmit/iris/util/stream/interpolation/TricubicStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TricubicStream.java index bbb007aba..85cb4846a 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/interpolation/TricubicStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TricubicStream.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.interpolation; +package art.arcane.iris.util.stream.interpolation; -import com.volmit.iris.util.interpolation.IrisInterpolation; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.interpolation.IrisInterpolation; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class TricubicStream extends BasicStream implements Interpolator { private final int rx; diff --git a/core/src/main/java/com/volmit/iris/util/stream/interpolation/TrilinearStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TrilinearStream.java similarity index 92% rename from core/src/main/java/com/volmit/iris/util/stream/interpolation/TrilinearStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TrilinearStream.java index bfbd78110..882b73a90 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/interpolation/TrilinearStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TrilinearStream.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.interpolation; +package art.arcane.iris.util.stream.interpolation; -import com.volmit.iris.util.interpolation.IrisInterpolation; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.interpolation.IrisInterpolation; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class TrilinearStream extends BasicStream implements Interpolator { private final int rx; diff --git a/core/src/main/java/com/volmit/iris/util/stream/sources/CNGStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/sources/CNGStream.java similarity index 91% rename from core/src/main/java/com/volmit/iris/util/stream/sources/CNGStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/sources/CNGStream.java index 4878a5e58..12d3a2cf7 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/sources/CNGStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/sources/CNGStream.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.sources; +package art.arcane.iris.util.stream.sources; -import com.volmit.iris.util.noise.CNG; -import com.volmit.iris.util.stream.BasicLayer; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.noise.CNG; +import art.arcane.volmlib.util.stream.BasicLayer; +import art.arcane.iris.util.stream.ProceduralStream; public class CNGStream extends BasicLayer implements ProceduralStream { private final CNG cng; diff --git a/core/src/main/java/com/volmit/iris/util/stream/sources/FunctionStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/sources/FunctionStream.java similarity index 85% rename from core/src/main/java/com/volmit/iris/util/stream/sources/FunctionStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/sources/FunctionStream.java index 66a1ce506..eed93eb45 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/sources/FunctionStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/sources/FunctionStream.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.sources; +package art.arcane.iris.util.stream.sources; -import com.volmit.iris.util.function.Function2; -import com.volmit.iris.util.function.Function3; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.interpolation.Interpolated; +import art.arcane.volmlib.util.function.Function2; +import art.arcane.volmlib.util.function.Function3; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.interpolation.Interpolated; public class FunctionStream extends BasicStream { private final Function2 f2; diff --git a/core/src/main/java/com/volmit/iris/util/stream/utility/CachedStream2D.java b/core/src/main/java/art/arcane/iris/util/project/stream/utility/CachedStream2D.java similarity index 83% rename from core/src/main/java/com/volmit/iris/util/stream/utility/CachedStream2D.java rename to core/src/main/java/art/arcane/iris/util/project/stream/utility/CachedStream2D.java index b5f3bedd2..56df77685 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/utility/CachedStream2D.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/utility/CachedStream2D.java @@ -16,16 +16,16 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.utility; +package art.arcane.iris.util.stream.utility; -import com.volmit.iris.Iris; -import com.volmit.iris.core.service.PreservationSVC; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.MeteredCache; -import com.volmit.iris.util.cache.WorldCache2D; -import com.volmit.iris.util.data.KCache; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.Iris; +import art.arcane.iris.core.service.PreservationSVC; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.framework.MeteredCache; +import art.arcane.iris.util.cache.WorldCache2D; +import art.arcane.volmlib.util.data.KCache; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class CachedStream2D extends BasicStream implements ProceduralStream, MeteredCache { private final ProceduralStream stream; diff --git a/core/src/main/java/com/volmit/iris/util/stream/utility/CachedStream3D.java b/core/src/main/java/art/arcane/iris/util/project/stream/utility/CachedStream3D.java similarity index 83% rename from core/src/main/java/com/volmit/iris/util/stream/utility/CachedStream3D.java rename to core/src/main/java/art/arcane/iris/util/project/stream/utility/CachedStream3D.java index 7c1b66407..47f2ffe0c 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/utility/CachedStream3D.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/utility/CachedStream3D.java @@ -16,16 +16,16 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.utility; +package art.arcane.iris.util.stream.utility; -import com.volmit.iris.Iris; -import com.volmit.iris.core.service.PreservationSVC; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.MeteredCache; -import com.volmit.iris.util.data.KCache; -import com.volmit.iris.util.math.BlockPosition; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.Iris; +import art.arcane.iris.core.service.PreservationSVC; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.framework.MeteredCache; +import art.arcane.volmlib.util.data.KCache; +import art.arcane.volmlib.util.math.BlockPosition; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class CachedStream3D extends BasicStream implements ProceduralStream, MeteredCache { private final ProceduralStream stream; diff --git a/core/src/main/java/com/volmit/iris/util/stream/utility/ContextInjectingStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/utility/ContextInjectingStream.java similarity index 80% rename from core/src/main/java/com/volmit/iris/util/stream/utility/ContextInjectingStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/utility/ContextInjectingStream.java index 5e0ae3bb8..39b65582b 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/utility/ContextInjectingStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/utility/ContextInjectingStream.java @@ -1,10 +1,10 @@ -package com.volmit.iris.util.stream.utility; +package art.arcane.iris.util.stream.utility; -import com.volmit.iris.util.context.ChunkContext; -import com.volmit.iris.util.context.IrisContext; -import com.volmit.iris.util.function.Function3; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.context.ChunkContext; +import art.arcane.iris.util.context.IrisContext; +import art.arcane.volmlib.util.function.Function3; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class ContextInjectingStream extends BasicStream { private final Function3 contextAccessor; diff --git a/core/src/main/java/com/volmit/iris/util/stream/utility/NullSafeStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/utility/NullSafeStream.java similarity index 91% rename from core/src/main/java/com/volmit/iris/util/stream/utility/NullSafeStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/utility/NullSafeStream.java index b17dd0076..22a6245f5 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/utility/NullSafeStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/utility/NullSafeStream.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.utility; +package art.arcane.iris.util.stream.utility; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class NullSafeStream extends BasicStream implements ProceduralStream { private final ProceduralStream stream; diff --git a/core/src/main/java/com/volmit/iris/util/stream/utility/ProfiledStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/utility/ProfiledStream.java similarity index 92% rename from core/src/main/java/com/volmit/iris/util/stream/utility/ProfiledStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/utility/ProfiledStream.java index e1002e545..03be9c8b1 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/utility/ProfiledStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/utility/ProfiledStream.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.utility; +package art.arcane.iris.util.stream.utility; -import com.volmit.iris.Iris; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.math.RollingSequence; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.Iris; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.format.Form; +import art.arcane.volmlib.util.math.RollingSequence; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; import lombok.Data; import java.util.concurrent.atomic.AtomicInteger; diff --git a/core/src/main/java/com/volmit/iris/util/stream/utility/SemaphoreStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/utility/SemaphoreStream.java similarity index 92% rename from core/src/main/java/com/volmit/iris/util/stream/utility/SemaphoreStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/utility/SemaphoreStream.java index fb3800c9c..baf1ca09d 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/utility/SemaphoreStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/utility/SemaphoreStream.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.utility; +package art.arcane.iris.util.stream.utility; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; import java.util.concurrent.Semaphore; diff --git a/core/src/main/java/com/volmit/iris/util/stream/utility/SynchronizedStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/utility/SynchronizedStream.java similarity index 90% rename from core/src/main/java/com/volmit/iris/util/stream/utility/SynchronizedStream.java rename to core/src/main/java/art/arcane/iris/util/project/stream/utility/SynchronizedStream.java index ff0c4a0be..41c6f84fa 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/utility/SynchronizedStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/utility/SynchronizedStream.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package com.volmit.iris.util.stream.utility; +package art.arcane.iris.util.stream.utility; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; public class SynchronizedStream extends BasicStream { public SynchronizedStream(ProceduralStream stream) { diff --git a/core/src/main/java/com/volmit/iris/util/stream/utility/WasteDetector.java b/core/src/main/java/art/arcane/iris/util/project/stream/utility/WasteDetector.java similarity index 89% rename from core/src/main/java/com/volmit/iris/util/stream/utility/WasteDetector.java rename to core/src/main/java/art/arcane/iris/util/project/stream/utility/WasteDetector.java index 498a93d03..b6319f3af 100644 --- a/core/src/main/java/com/volmit/iris/util/stream/utility/WasteDetector.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/utility/WasteDetector.java @@ -1,10 +1,10 @@ -package com.volmit.iris.util.stream.utility; +package art.arcane.iris.util.stream.utility; -import com.volmit.iris.Iris; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.stream.BasicStream; -import com.volmit.iris.util.stream.ProceduralStream; +import art.arcane.iris.Iris; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.stream.BasicStream; +import art.arcane.iris.util.stream.ProceduralStream; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; diff --git a/core/src/main/java/com/volmit/iris/util/uniques/U.java b/core/src/main/java/art/arcane/iris/util/project/uniques/U.java similarity index 87% rename from core/src/main/java/com/volmit/iris/util/uniques/U.java rename to core/src/main/java/art/arcane/iris/util/project/uniques/U.java index 738c186f4..5f064405d 100644 --- a/core/src/main/java/com/volmit/iris/util/uniques/U.java +++ b/core/src/main/java/art/arcane/iris/util/project/uniques/U.java @@ -1,4 +1,4 @@ -package com.volmit.iris.util.uniques; +package art.arcane.iris.util.uniques; import java.io.File; diff --git a/core/src/main/java/com/volmit/iris/util/uniques/UBufferedImage.java b/core/src/main/java/art/arcane/iris/util/project/uniques/UBufferedImage.java similarity index 96% rename from core/src/main/java/com/volmit/iris/util/uniques/UBufferedImage.java rename to core/src/main/java/art/arcane/iris/util/project/uniques/UBufferedImage.java index 21c5df154..32801632f 100644 --- a/core/src/main/java/com/volmit/iris/util/uniques/UBufferedImage.java +++ b/core/src/main/java/art/arcane/iris/util/project/uniques/UBufferedImage.java @@ -1,4 +1,4 @@ -package com.volmit.iris.util.uniques; +package art.arcane.iris.util.uniques; import java.awt.*; import java.awt.image.BufferedImage; diff --git a/core/src/main/java/com/volmit/iris/util/uniques/UFeature.java b/core/src/main/java/art/arcane/iris/util/project/uniques/UFeature.java similarity index 90% rename from core/src/main/java/com/volmit/iris/util/uniques/UFeature.java rename to core/src/main/java/art/arcane/iris/util/project/uniques/UFeature.java index 1da6de733..0abbbfcf8 100644 --- a/core/src/main/java/com/volmit/iris/util/uniques/UFeature.java +++ b/core/src/main/java/art/arcane/iris/util/project/uniques/UFeature.java @@ -1,9 +1,9 @@ -package com.volmit.iris.util.uniques; +package art.arcane.iris.util.uniques; -import com.volmit.iris.util.function.NoiseInjector; -import com.volmit.iris.util.interpolation.InterpolationMethod; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.CNG; +import art.arcane.volmlib.util.function.NoiseInjector; +import art.arcane.iris.util.interpolation.InterpolationMethod; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.CNG; import java.awt.*; import java.util.List; diff --git a/core/src/main/java/com/volmit/iris/util/uniques/UFeatureMeta.java b/core/src/main/java/art/arcane/iris/util/project/uniques/UFeatureMeta.java similarity index 91% rename from core/src/main/java/com/volmit/iris/util/uniques/UFeatureMeta.java rename to core/src/main/java/art/arcane/iris/util/project/uniques/UFeatureMeta.java index d4cf8e4a5..bd3b77d77 100644 --- a/core/src/main/java/com/volmit/iris/util/uniques/UFeatureMeta.java +++ b/core/src/main/java/art/arcane/iris/util/project/uniques/UFeatureMeta.java @@ -1,10 +1,10 @@ -package com.volmit.iris.util.uniques; +package art.arcane.iris.util.uniques; -import com.volmit.iris.engine.object.NoiseStyle; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.interpolation.InterpolationMethod; -import com.volmit.iris.util.noise.CNG; +import art.arcane.iris.engine.object.NoiseStyle; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.interpolation.InterpolationMethod; +import art.arcane.iris.util.noise.CNG; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/util/uniques/UImage.java b/core/src/main/java/art/arcane/iris/util/project/uniques/UImage.java similarity index 88% rename from core/src/main/java/com/volmit/iris/util/uniques/UImage.java rename to core/src/main/java/art/arcane/iris/util/project/uniques/UImage.java index 0b9b63fe3..4c5bc6cdd 100644 --- a/core/src/main/java/com/volmit/iris/util/uniques/UImage.java +++ b/core/src/main/java/art/arcane/iris/util/project/uniques/UImage.java @@ -1,4 +1,4 @@ -package com.volmit.iris.util.uniques; +package art.arcane.iris.util.uniques; import java.awt.*; diff --git a/core/src/main/java/com/volmit/iris/util/uniques/UMeta.java b/core/src/main/java/art/arcane/iris/util/project/uniques/UMeta.java similarity index 90% rename from core/src/main/java/com/volmit/iris/util/uniques/UMeta.java rename to core/src/main/java/art/arcane/iris/util/project/uniques/UMeta.java index 773f428eb..ea07458a7 100644 --- a/core/src/main/java/com/volmit/iris/util/uniques/UMeta.java +++ b/core/src/main/java/art/arcane/iris/util/project/uniques/UMeta.java @@ -1,8 +1,8 @@ -package com.volmit.iris.util.uniques; +package art.arcane.iris.util.uniques; import com.google.gson.GsonBuilder; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.io.IO; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.io.IO; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/com/volmit/iris/util/uniques/UniqueRenderer.java b/core/src/main/java/art/arcane/iris/util/project/uniques/UniqueRenderer.java similarity index 91% rename from core/src/main/java/com/volmit/iris/util/uniques/UniqueRenderer.java rename to core/src/main/java/art/arcane/iris/util/project/uniques/UniqueRenderer.java index 633b52e1c..b6a348154 100644 --- a/core/src/main/java/com/volmit/iris/util/uniques/UniqueRenderer.java +++ b/core/src/main/java/art/arcane/iris/util/project/uniques/UniqueRenderer.java @@ -1,20 +1,20 @@ -package com.volmit.iris.util.uniques; +package art.arcane.iris.util.uniques; -import com.volmit.iris.engine.object.NoiseStyle; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.function.NoiseProvider; -import com.volmit.iris.util.interpolation.InterpolationMethod; -import com.volmit.iris.util.interpolation.IrisInterpolation; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.CNG; -import com.volmit.iris.util.parallel.BurstExecutor; -import com.volmit.iris.util.scheduling.ChronoLatch; -import com.volmit.iris.util.scheduling.J; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; -import com.volmit.iris.util.stream.ProceduralStream; -import com.volmit.iris.util.uniques.features.*; +import art.arcane.iris.engine.object.NoiseStyle; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.format.Form; +import art.arcane.volmlib.util.function.NoiseProvider; +import art.arcane.iris.util.interpolation.InterpolationMethod; +import art.arcane.iris.util.interpolation.IrisInterpolation; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.CNG; +import art.arcane.iris.util.parallel.BurstExecutor; +import art.arcane.volmlib.util.scheduling.ChronoLatch; +import art.arcane.iris.util.scheduling.J; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.uniques.features.*; import java.awt.image.BufferedImage; import java.io.File; diff --git a/core/src/main/java/com/volmit/iris/util/uniques/features/UFInterpolator.java b/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFInterpolator.java similarity index 83% rename from core/src/main/java/com/volmit/iris/util/uniques/features/UFInterpolator.java rename to core/src/main/java/art/arcane/iris/util/project/uniques/features/UFInterpolator.java index 6a8d3fa86..854cb528a 100644 --- a/core/src/main/java/com/volmit/iris/util/uniques/features/UFInterpolator.java +++ b/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFInterpolator.java @@ -1,13 +1,13 @@ -package com.volmit.iris.util.uniques.features; +package art.arcane.iris.util.uniques.features; -import com.volmit.iris.util.function.NoiseProvider; -import com.volmit.iris.util.interpolation.InterpolationMethod; -import com.volmit.iris.util.interpolation.IrisInterpolation; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.CNG; -import com.volmit.iris.util.uniques.UFeature; -import com.volmit.iris.util.uniques.UFeatureMeta; -import com.volmit.iris.util.uniques.UImage; +import art.arcane.volmlib.util.function.NoiseProvider; +import art.arcane.iris.util.interpolation.InterpolationMethod; +import art.arcane.iris.util.interpolation.IrisInterpolation; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.CNG; +import art.arcane.iris.util.uniques.UFeature; +import art.arcane.iris.util.uniques.UFeatureMeta; +import art.arcane.iris.util.uniques.UImage; import java.awt.*; import java.util.function.Consumer; diff --git a/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFNOOP.java b/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFNOOP.java new file mode 100644 index 000000000..89811371a --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFNOOP.java @@ -0,0 +1,14 @@ +package art.arcane.iris.util.uniques.features; + +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.uniques.UFeature; +import art.arcane.iris.util.uniques.UFeatureMeta; +import art.arcane.iris.util.uniques.UImage; + +import java.util.function.Consumer; + +public class UFNOOP implements UFeature { + @Override + public void render(UImage image, RNG rng, double t, Consumer progressor, UFeatureMeta meta) { + } +} diff --git a/core/src/main/java/com/volmit/iris/util/uniques/features/UFWarpedBackground.java b/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedBackground.java similarity index 76% rename from core/src/main/java/com/volmit/iris/util/uniques/features/UFWarpedBackground.java rename to core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedBackground.java index e16f1dced..80b3e2406 100644 --- a/core/src/main/java/com/volmit/iris/util/uniques/features/UFWarpedBackground.java +++ b/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedBackground.java @@ -1,10 +1,10 @@ -package com.volmit.iris.util.uniques.features; +package art.arcane.iris.util.uniques.features; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.CNG; -import com.volmit.iris.util.uniques.UFeature; -import com.volmit.iris.util.uniques.UFeatureMeta; -import com.volmit.iris.util.uniques.UImage; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.CNG; +import art.arcane.iris.util.uniques.UFeature; +import art.arcane.iris.util.uniques.UFeatureMeta; +import art.arcane.iris.util.uniques.UImage; import java.util.function.Consumer; diff --git a/core/src/main/java/com/volmit/iris/util/uniques/features/UFWarpedCircle.java b/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedCircle.java similarity index 85% rename from core/src/main/java/com/volmit/iris/util/uniques/features/UFWarpedCircle.java rename to core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedCircle.java index e8c4df9c9..3f3639a69 100644 --- a/core/src/main/java/com/volmit/iris/util/uniques/features/UFWarpedCircle.java +++ b/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedCircle.java @@ -1,10 +1,10 @@ -package com.volmit.iris.util.uniques.features; +package art.arcane.iris.util.uniques.features; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.CNG; -import com.volmit.iris.util.uniques.UFeature; -import com.volmit.iris.util.uniques.UFeatureMeta; -import com.volmit.iris.util.uniques.UImage; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.CNG; +import art.arcane.iris.util.uniques.UFeature; +import art.arcane.iris.util.uniques.UFeatureMeta; +import art.arcane.iris.util.uniques.UImage; import java.util.function.Consumer; diff --git a/core/src/main/java/com/volmit/iris/util/uniques/features/UFWarpedDisc.java b/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedDisc.java similarity index 82% rename from core/src/main/java/com/volmit/iris/util/uniques/features/UFWarpedDisc.java rename to core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedDisc.java index 83e9b24d8..c31aa0f7c 100644 --- a/core/src/main/java/com/volmit/iris/util/uniques/features/UFWarpedDisc.java +++ b/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedDisc.java @@ -1,10 +1,10 @@ -package com.volmit.iris.util.uniques.features; +package art.arcane.iris.util.uniques.features; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.CNG; -import com.volmit.iris.util.uniques.UFeature; -import com.volmit.iris.util.uniques.UFeatureMeta; -import com.volmit.iris.util.uniques.UImage; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.CNG; +import art.arcane.iris.util.uniques.UFeature; +import art.arcane.iris.util.uniques.UFeatureMeta; +import art.arcane.iris.util.uniques.UImage; import java.util.function.Consumer; diff --git a/core/src/main/java/com/volmit/iris/util/uniques/features/UFWarpedDots.java b/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedDots.java similarity index 87% rename from core/src/main/java/com/volmit/iris/util/uniques/features/UFWarpedDots.java rename to core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedDots.java index 55e933015..90ba85d45 100644 --- a/core/src/main/java/com/volmit/iris/util/uniques/features/UFWarpedDots.java +++ b/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedDots.java @@ -1,10 +1,10 @@ -package com.volmit.iris.util.uniques.features; +package art.arcane.iris.util.uniques.features; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.CNG; -import com.volmit.iris.util.uniques.UFeature; -import com.volmit.iris.util.uniques.UFeatureMeta; -import com.volmit.iris.util.uniques.UImage; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.CNG; +import art.arcane.iris.util.uniques.UFeature; +import art.arcane.iris.util.uniques.UFeatureMeta; +import art.arcane.iris.util.uniques.UImage; import java.awt.*; import java.util.function.Consumer; diff --git a/core/src/main/java/com/volmit/iris/util/uniques/features/UFWarpedLines.java b/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedLines.java similarity index 87% rename from core/src/main/java/com/volmit/iris/util/uniques/features/UFWarpedLines.java rename to core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedLines.java index 640610b72..2a112bc1e 100644 --- a/core/src/main/java/com/volmit/iris/util/uniques/features/UFWarpedLines.java +++ b/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedLines.java @@ -1,10 +1,10 @@ -package com.volmit.iris.util.uniques.features; +package art.arcane.iris.util.uniques.features; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.CNG; -import com.volmit.iris.util.uniques.UFeature; -import com.volmit.iris.util.uniques.UFeatureMeta; -import com.volmit.iris.util.uniques.UImage; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.iris.util.noise.CNG; +import art.arcane.iris.util.uniques.UFeature; +import art.arcane.iris.util.uniques.UFeatureMeta; +import art.arcane.iris.util.uniques.UImage; import java.util.function.Consumer; diff --git a/core/src/main/java/com/volmit/iris/core/scripting/func/BiomeLookup.java b/core/src/main/java/com/volmit/iris/core/scripting/func/BiomeLookup.java deleted file mode 100644 index d27247b1a..000000000 --- a/core/src/main/java/com/volmit/iris/core/scripting/func/BiomeLookup.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.volmit.iris.core.scripting.func; - -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.util.documentation.BlockCoordinates; - -@FunctionalInterface -public interface BiomeLookup { - @BlockCoordinates - IrisBiome at(int x, int z); -} diff --git a/core/src/main/java/com/volmit/iris/util/api/APIWorldBlock.java b/core/src/main/java/com/volmit/iris/util/api/APIWorldBlock.java deleted file mode 100644 index 8eec1385a..000000000 --- a/core/src/main/java/com/volmit/iris/util/api/APIWorldBlock.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 com.volmit.iris.util.api; - -import org.bukkit.block.Block; - -@FunctionalInterface -public interface APIWorldBlock { - void onWorldPlaced(Block block, String namespace, String key); -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/atomics/AtomicAverage.java b/core/src/main/java/com/volmit/iris/util/atomics/AtomicAverage.java deleted file mode 100644 index f3574db1d..000000000 --- a/core/src/main/java/com/volmit/iris/util/atomics/AtomicAverage.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 com.volmit.iris.util.atomics; - -import com.google.common.util.concurrent.AtomicDoubleArray; -import com.volmit.iris.Iris; -import com.volmit.iris.util.data.DoubleArrayUtils; - -/** - * Provides an incredibly fast averaging object. It swaps values from a sum - * using an array. Averages do not use any form of looping. An average of 10,000 - * entries is the same speed as an average with 5 entries. - * - * @author cyberpwn - */ -public class AtomicAverage { - protected final AtomicDoubleArray values; - protected transient int cursor; - private transient double average; - private transient double lastSum; - private transient boolean dirty; - private transient boolean brandNew; - - /** - * Create an average holder - * - * @param size the size of entries to keep - */ - public AtomicAverage(int size) { - values = new AtomicDoubleArray(size); - DoubleArrayUtils.fill(values, 0); - brandNew = true; - average = 0; - cursor = 0; - lastSum = 0; - dirty = false; - } - - /** - * Put a value into the average (rolls over if full) - * - * @param i the value - */ - public synchronized void put(double i) { - - try { - dirty = true; - - if (brandNew) { - DoubleArrayUtils.fill(values, i); - lastSum = size() * i; - brandNew = false; - return; - } - - double current = values.get(cursor); - lastSum = (lastSum - current) + i; - values.set(cursor, i); - cursor = cursor + 1 < size() ? cursor + 1 : 0; - } catch (Throwable e) { - Iris.reportError(e); - - } - } - - /** - * Get the current average - * - * @return the average - */ - public double getAverage() { - if (dirty) { - calculateAverage(); - return getAverage(); - } - - return average; - } - - private void calculateAverage() { - average = lastSum / (double) size(); - dirty = false; - } - - public int size() { - return values.length(); - } - - public boolean isDirty() { - return dirty; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/atomics/AtomicRollingSequence.java b/core/src/main/java/com/volmit/iris/util/atomics/AtomicRollingSequence.java deleted file mode 100644 index 821f52eaf..000000000 --- a/core/src/main/java/com/volmit/iris/util/atomics/AtomicRollingSequence.java +++ /dev/null @@ -1,107 +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 com.volmit.iris.util.atomics; - -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.math.M; - -public class AtomicRollingSequence extends AtomicAverage { - private double median; - private double max; - private double min; - private boolean dirtyMedian; - private int dirtyExtremes; - private boolean precision; - - public AtomicRollingSequence(int size) { - super(size); - median = 0; - min = 0; - max = 0; - setPrecision(false); - } - - public double addLast(int amt) { - double f = 0; - - for (int i = 0; i < Math.min(values.length(), amt); i++) { - f += values.get(i); - } - - return f; - } - - public boolean isPrecision() { - return precision; - } - - public void setPrecision(boolean p) { - this.precision = p; - } - - public double getMin() { - if (dirtyExtremes > (isPrecision() ? 0 : values.length())) { - resetExtremes(); - } - - return min; - } - - public double getMax() { - if (dirtyExtremes > (isPrecision() ? 0 : values.length())) { - resetExtremes(); - } - - return max; - } - - public double getMedian() { - if (dirtyMedian) { - recalculateMedian(); - } - - return median; - } - - private void recalculateMedian() { - median = new KList().forceAdd(values).sort().middleValue(); - dirtyMedian = false; - } - - public void resetExtremes() { - max = Integer.MIN_VALUE; - min = Integer.MAX_VALUE; - - for (int i = 0; i < values.length(); i++) { - double v = values.get(i); - max = M.max(max, v); - min = M.min(min, v); - } - - dirtyExtremes = 0; - } - - public void put(double i) { - super.put(i); - dirtyMedian = true; - dirtyExtremes++; - max = M.max(max, i); - min = M.min(min, i); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/board/Board.java b/core/src/main/java/com/volmit/iris/util/board/Board.java deleted file mode 100644 index eecbac731..000000000 --- a/core/src/main/java/com/volmit/iris/util/board/Board.java +++ /dev/null @@ -1,142 +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 com.volmit.iris.util.board; - -import com.volmit.iris.util.format.C; -import lombok.NonNull; -import lombok.Setter; -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; -import org.bukkit.scoreboard.*; - -import java.util.Collections; -import java.util.List; -import java.util.function.UnaryOperator; -import java.util.stream.IntStream; - -/** - * @author Missionary (missionarymc@gmail.com) - * @since 3/23/2018 - */ -public class Board { - - private static final String[] CACHED_ENTRIES = new String[C.values().length]; - - private static final UnaryOperator APPLY_COLOR_TRANSLATION = s -> C.translateAlternateColorCodes('&', s); - - static { - IntStream.range(0, 15).forEach(i -> CACHED_ENTRIES[i] = C.values()[i].toString() + C.RESET); - } - - private final Player player; - private final Objective objective; - @Setter - private BoardSettings boardSettings; - private boolean ready; - - public Board(@NonNull final Player player, final BoardSettings boardSettings) { - this.player = player; - this.boardSettings = boardSettings; - var obj = getScoreboard().getObjective("board"); - this.objective = obj == null ? this.getScoreboard().registerNewObjective("board", Criteria.DUMMY, "Iris") : obj; - this.objective.setDisplaySlot(DisplaySlot.SIDEBAR); - Team team = getScoreboard().getTeam("board"); - team = team == null ? getScoreboard().registerNewTeam("board") : team; - team.setAllowFriendlyFire(true); - team.setCanSeeFriendlyInvisibles(false); - team.setPrefix(""); - team.setSuffix(""); - this.ready = true; - } - - public Scoreboard getScoreboard() { - return (player != null) ? player.getScoreboard() : null; - } - - public void remove() { - this.resetScoreboard(); - } - - public void update() { - // Checking if we are ready to start updating the Scoreboard. - if (!ready) { - return; - } - - // Making sure the player is connected. - if (!player.isOnline()) { - remove(); - return; - } - - // Making sure the Scoreboard Provider is set. - if (boardSettings == null) { - return; - } - - // Getting their Scoreboard display from the Scoreboard Provider. - final List entries = boardSettings.getBoardProvider().getLines(player); - entries.replaceAll(APPLY_COLOR_TRANSLATION); - - if (boardSettings.getScoreDirection() == ScoreDirection.UP) { - Collections.reverse(entries); - } - - // Setting the Scoreboard title - String title = boardSettings.getBoardProvider().getTitle(player); - if (title.length() > 32) { - Bukkit.getLogger().warning("The title " + title + " is over 32 characters in length, substringing to prevent errors."); - title = title.substring(0, 32); - } - objective.setDisplayName(C.translateAlternateColorCodes('&', title)); - - // Clearing previous Scoreboard values if entry sizes don't match. - if (this.getScoreboard().getEntries().size() != entries.size()) - this.getScoreboard().getEntries().forEach(this::removeEntry); - - // Setting Scoreboard lines. - for (int i = 0; i < entries.size(); i++) { - String str = entries.get(i); - BoardEntry entry = BoardEntry.translateToEntry(str); - Team team = getScoreboard().getTeam(CACHED_ENTRIES[i]); - - if (team == null) { - team = this.getScoreboard().registerNewTeam(CACHED_ENTRIES[i]); - team.addEntry(team.getName()); - } - - team.setPrefix(entry.getPrefix()); - team.setSuffix(entry.getSuffix()); - - switch (boardSettings.getScoreDirection()) { - case UP -> objective.getScore(team.getName()).setScore(1 + i); - case DOWN -> objective.getScore(team.getName()).setScore(15 - i); - } - } - } - - public void removeEntry(String id) { - this.getScoreboard().resetScores(id); - } - - public void resetScoreboard() { - ready = false; - player.setScoreboard(Bukkit.getScoreboardManager().getMainScoreboard()); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/board/BoardEntry.java b/core/src/main/java/com/volmit/iris/util/board/BoardEntry.java deleted file mode 100644 index 14b7f3d71..000000000 --- a/core/src/main/java/com/volmit/iris/util/board/BoardEntry.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 com.volmit.iris.util.board; - -import com.volmit.iris.util.format.C; -import lombok.Getter; -import org.apache.commons.lang.StringUtils; - -/** - * @author Missionary (missionarymc@gmail.com) - * @since 3/29/2018 - */ -@SuppressWarnings("ClassCanBeRecord") -public class BoardEntry { - - @Getter - private final String prefix, suffix; - - private BoardEntry(final String prefix, final String suffix) { - this.prefix = prefix; - this.suffix = suffix; - } - - public static BoardEntry translateToEntry(String input) { - if (input.isEmpty()) { - return new BoardEntry("", ""); - } - if (input.length() <= 16) { - return new BoardEntry(input, ""); - } else { - String prefix = input.substring(0, 16); - String suffix = ""; - - if (prefix.endsWith("\u00a7")) { - prefix = prefix.substring(0, prefix.length() - 1); - suffix = "\u00a7" + suffix; - } - - suffix = StringUtils.left(C.getLastColors(prefix) + suffix + input.substring(16), 16); - return new BoardEntry(prefix, suffix); - } - } -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/board/BoardManager.java b/core/src/main/java/com/volmit/iris/util/board/BoardManager.java deleted file mode 100644 index fe61666de..000000000 --- a/core/src/main/java/com/volmit/iris/util/board/BoardManager.java +++ /dev/null @@ -1,90 +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 com.volmit.iris.util.board; - -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; -import org.bukkit.plugin.java.JavaPlugin; -import org.bukkit.scheduler.BukkitTask; - -import java.util.Collections; -import java.util.Map; -import java.util.Optional; -import java.util.UUID; -import java.util.concurrent.ConcurrentHashMap; - - -public class BoardManager { - - private final JavaPlugin plugin; - private final Map scoreboards; - private final BukkitTask updateTask; - private BoardSettings boardSettings; - - - public BoardManager(JavaPlugin plugin, BoardSettings boardSettings) { - this.plugin = plugin; - this.boardSettings = boardSettings; - this.scoreboards = new ConcurrentHashMap<>(); - this.updateTask = new BoardUpdateTask(this).runTaskTimer(plugin, 2L, 20L); - plugin.getServer().getOnlinePlayers().forEach(this::setup); - } - - - public void setBoardSettings(BoardSettings boardSettings) { - this.boardSettings = boardSettings; - scoreboards.values().forEach(board -> board.setBoardSettings(boardSettings)); - } - - - public boolean hasBoard(Player player) { - return scoreboards.containsKey(player.getUniqueId()); - } - - - public Optional getBoard(Player player) { - return Optional.ofNullable(scoreboards.get(player.getUniqueId())); - } - - - public void setup(Player player) { - Optional.ofNullable(scoreboards.remove(player.getUniqueId())).ifPresent(Board::resetScoreboard); - if (player.getScoreboard().equals(Bukkit.getScoreboardManager().getMainScoreboard())) { - player.setScoreboard(Bukkit.getScoreboardManager().getNewScoreboard()); - } - scoreboards.put(player.getUniqueId(), new Board(player, boardSettings)); - } - - - public void remove(Player player) { - Optional.ofNullable(scoreboards.remove(player.getUniqueId())).ifPresent(Board::remove); - } - - - public Map getScoreboards() { - return Collections.unmodifiableMap(scoreboards); - } - - - public void onDisable() { - updateTask.cancel(); - plugin.getServer().getOnlinePlayers().forEach(this::remove); - scoreboards.clear(); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/board/BoardUpdateTask.java b/core/src/main/java/com/volmit/iris/util/board/BoardUpdateTask.java deleted file mode 100644 index 1a54bf498..000000000 --- a/core/src/main/java/com/volmit/iris/util/board/BoardUpdateTask.java +++ /dev/null @@ -1,49 +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 com.volmit.iris.util.board; - -import lombok.RequiredArgsConstructor; -import org.bukkit.Bukkit; -import org.bukkit.scheduler.BukkitRunnable; - -import java.util.UUID; -import java.util.function.Predicate; - -/** - * @author Missionary (missionarymc@gmail.com) - * @since 5/31/2018 - */ -@RequiredArgsConstructor -public class BoardUpdateTask extends BukkitRunnable { - - private static final Predicate PLAYER_IS_ONLINE = uuid -> Bukkit.getPlayer(uuid) != null; - - private final BoardManager boardManager; - - @Override - public void run() { - for (var entry : boardManager.getScoreboards().entrySet()) { - if (!PLAYER_IS_ONLINE.test(entry.getKey())) { - continue; - } - - entry.getValue().update(); - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/board/ScoreDirection.java b/core/src/main/java/com/volmit/iris/util/board/ScoreDirection.java deleted file mode 100644 index ab8610b93..000000000 --- a/core/src/main/java/com/volmit/iris/util/board/ScoreDirection.java +++ /dev/null @@ -1,32 +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 com.volmit.iris.util.board; - -/** - * @author Missionary (missionarymc@gmail.com) - * @since 5/31/2018 - */ - -public enum ScoreDirection { - - UP, - - - DOWN -} diff --git a/core/src/main/java/com/volmit/iris/util/cache/ArrayCache.java b/core/src/main/java/com/volmit/iris/util/cache/ArrayCache.java deleted file mode 100644 index e8d73dd62..000000000 --- a/core/src/main/java/com/volmit/iris/util/cache/ArrayCache.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 com.volmit.iris.util.cache; - -import com.volmit.iris.util.hunk.bits.Writable; - -import java.io.DataOutputStream; -import java.io.IOException; - -public interface ArrayCache extends Writable { - static int zigZag(int coord, int size) { - if (coord < 0) { - coord = Math.abs(coord); - } - - if (coord % (size * 2) >= size) { - return (size) - (coord % size) - 1; - } else { - return coord % size; - } - } - - T get(int i); - - void set(int i, T t); - - void iset(int i, int v); - - int getWidth(); - - int getHeight(); - - void writeCache(DataOutputStream dos) throws IOException; - - default void set(int x, int y, T v) { - set((zigZag(y, getHeight()) * getWidth()) + zigZag(x, getWidth()), v); - } - - default T get(int x, int y) { - try { - return get((zigZag(y, getHeight()) * getWidth()) + zigZag(x, getWidth())); - } catch (Throwable e) { - e.printStackTrace(); - throw e; - } - } - - default void iset(int x, int y, int v) { - iset((zigZag(y, getHeight()) * getWidth()) + zigZag(x, getWidth()), v); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/cache/ByteBitCache.java b/core/src/main/java/com/volmit/iris/util/cache/ByteBitCache.java deleted file mode 100644 index eb701973f..000000000 --- a/core/src/main/java/com/volmit/iris/util/cache/ByteBitCache.java +++ /dev/null @@ -1,44 +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 com.volmit.iris.util.cache; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -public class ByteBitCache extends DataBitCache { - public ByteBitCache(int width, int height) { - super(width, height); - } - - @Override - public Integer readNodeData(DataInputStream din) throws IOException { - return (int) din.readByte(); - } - - @Override - public void writeNodeData(DataOutputStream dos, Integer integer) throws IOException { - dos.writeByte(integer); - } - - @Override - public void iset(int i, int v) { - set(i, v); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/cache/ByteCache.java b/core/src/main/java/com/volmit/iris/util/cache/ByteCache.java deleted file mode 100644 index 6aba0b88a..000000000 --- a/core/src/main/java/com/volmit/iris/util/cache/ByteCache.java +++ /dev/null @@ -1,72 +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 com.volmit.iris.util.cache; - -import lombok.Getter; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -public class ByteCache implements ArrayCache { - @Getter - private final int width; - @Getter - private final int height; - private final byte[] cache; - - public ByteCache(int width, int height) { - this.width = width; - this.height = height; - cache = new byte[width * height]; - } - - public void set(int i, Integer v) { - cache[i] = v.byteValue(); - } - - public Integer get(int i) { - return (int) cache[i]; - } - - @Override - public void writeCache(DataOutputStream dos) throws IOException { - dos.writeInt(width); - dos.writeInt(height); - - for (int i = 0; i < width * height; i++) { - dos.writeByte(get(i)); - } - } - - @Override - public Integer readNodeData(DataInputStream din) throws IOException { - return (int) din.readByte(); - } - - @Override - public void writeNodeData(DataOutputStream dos, Integer integer) throws IOException { - dos.writeByte(integer); - } - - @Override - public void iset(int i, int v) { - set(i, v); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/cache/ChunkCache2D.java b/core/src/main/java/com/volmit/iris/util/cache/ChunkCache2D.java deleted file mode 100644 index f68dff1bf..000000000 --- a/core/src/main/java/com/volmit/iris/util/cache/ChunkCache2D.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.volmit.iris.util.cache; - -import com.volmit.iris.util.function.Function2; - -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; - -public class ChunkCache2D { - private static final boolean FAST = Boolean.getBoolean("iris.cache.fast"); - private static final boolean DYNAMIC = Boolean.getBoolean("iris.cache.dynamic"); - private static final VarHandle AA = MethodHandles.arrayElementVarHandle(Entry[].class); - - private final Entry[] cache; - - @SuppressWarnings({"unchecked"}) - public ChunkCache2D() { - this.cache = new Entry[256]; - if (DYNAMIC) return; - for (int i = 0; i < cache.length; i++) { - cache[i] = FAST ? new FastEntry<>() : new Entry<>(); - } - } - - @SuppressWarnings({"unchecked"}) - public T get(int x, int z, Function2 resolver) { - int key = ((z & 15) * 16) + (x & 15); - var entry = cache[key]; - if (entry == null) { - entry = FAST ? new FastEntry<>() : new Entry<>(); - if (!AA.compareAndSet(cache, key, null, entry)) { - entry = (Entry) AA.getVolatile(cache, key); - } - } - return entry.compute(x, z, resolver); - } - - private static class Entry { - protected volatile T t; - - protected T compute(int x, int z, Function2 resolver) { - if (t != null) return t; - synchronized (this) { - if (t == null) t = resolver.apply(x, z); - return t; - } - } - } - - private static class FastEntry extends Entry { - @Override - protected T compute(int x, int z, Function2 resolver) { - if (t != null) return t; - return t = resolver.apply(x, z); - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/cache/DataBitCache.java b/core/src/main/java/com/volmit/iris/util/cache/DataBitCache.java deleted file mode 100644 index ee334dff0..000000000 --- a/core/src/main/java/com/volmit/iris/util/cache/DataBitCache.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 com.volmit.iris.util.cache; - -import com.volmit.iris.util.hunk.bits.DataContainer; -import lombok.Getter; - -import java.io.DataOutputStream; -import java.io.IOException; - -public abstract class DataBitCache implements ArrayCache { - @Getter - private final int width; - @Getter - private final int height; - private final DataContainer cache; - - public DataBitCache(int width, int height) { - this.width = width; - this.height = height; - cache = new DataContainer<>(this, width * height); - } - - public void set(int i, T v) { - cache.set(i, v); - } - - public T get(int i) { - return cache.get(i); - } - - @Override - public void writeCache(DataOutputStream dos) throws IOException { - dos.writeInt(width); - dos.writeInt(height); - cache.writeDos(dos); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/cache/FloatBitCache.java b/core/src/main/java/com/volmit/iris/util/cache/FloatBitCache.java deleted file mode 100644 index 3c2849191..000000000 --- a/core/src/main/java/com/volmit/iris/util/cache/FloatBitCache.java +++ /dev/null @@ -1,44 +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 com.volmit.iris.util.cache; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -public class FloatBitCache extends DataBitCache { - public FloatBitCache(int width, int height) { - super(width, height); - } - - @Override - public Float readNodeData(DataInputStream din) throws IOException { - return din.readFloat(); - } - - @Override - public void writeNodeData(DataOutputStream dos, Float integer) throws IOException { - dos.writeFloat(integer); - } - - @Override - public void iset(int i, int v) { - set(i, (float) v); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/cache/FloatCache.java b/core/src/main/java/com/volmit/iris/util/cache/FloatCache.java deleted file mode 100644 index a41d8f605..000000000 --- a/core/src/main/java/com/volmit/iris/util/cache/FloatCache.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 com.volmit.iris.util.cache; - -import lombok.Getter; - -import java.io.*; - -public class FloatCache implements ArrayCache { - @Getter - private final int width; - @Getter - private final int height; - private final float[] cache; - - - public FloatCache(File file) throws IOException { - this(new DataInputStream(new FileInputStream(file))); - } - - public FloatCache(DataInputStream din) throws IOException { - this(din.readInt(), din.readInt()); - for (int i = 0; i < width * height; i++) { - cache[i] = din.readFloat(); - } - din.close(); - } - - public FloatCache(int width, int height) { - this.width = width; - this.height = height; - cache = new float[width * height]; - } - - public void set(int i, Float v) { - cache[i] = v; - } - - public Float get(int i) { - return cache[i]; - } - - @Override - public void writeCache(DataOutputStream dos) throws IOException { - dos.writeInt(width); - dos.writeInt(height); - - for (int i = 0; i < width * height; i++) { - dos.writeFloat(get(i)); - } - } - - @Override - public Float readNodeData(DataInputStream din) throws IOException { - return din.readFloat(); - } - - @Override - public void writeNodeData(DataOutputStream dos, Float integer) throws IOException { - dos.writeFloat(integer); - } - - @Override - public void iset(int i, int v) { - set(i, (float) v); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/cache/IntBitCache.java b/core/src/main/java/com/volmit/iris/util/cache/IntBitCache.java deleted file mode 100644 index c06e62682..000000000 --- a/core/src/main/java/com/volmit/iris/util/cache/IntBitCache.java +++ /dev/null @@ -1,44 +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 com.volmit.iris.util.cache; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -public class IntBitCache extends DataBitCache { - public IntBitCache(int width, int height) { - super(width, height); - } - - @Override - public Integer readNodeData(DataInputStream din) throws IOException { - return din.readInt(); - } - - @Override - public void writeNodeData(DataOutputStream dos, Integer integer) throws IOException { - dos.writeInt(integer); - } - - @Override - public void iset(int i, int v) { - set(i, v); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/cache/IntCache.java b/core/src/main/java/com/volmit/iris/util/cache/IntCache.java deleted file mode 100644 index 7e97484a3..000000000 --- a/core/src/main/java/com/volmit/iris/util/cache/IntCache.java +++ /dev/null @@ -1,72 +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 com.volmit.iris.util.cache; - -import lombok.Getter; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -public class IntCache implements ArrayCache { - @Getter - private final int width; - @Getter - private final int height; - private final int[] cache; - - public IntCache(int width, int height) { - this.width = width; - this.height = height; - cache = new int[width * height]; - } - - public void set(int i, Integer v) { - cache[i] = v; - } - - public Integer get(int i) { - return cache[i]; - } - - @Override - public void writeCache(DataOutputStream dos) throws IOException { - dos.writeInt(width); - dos.writeInt(height); - - for (int i = 0; i < width * height; i++) { - dos.writeInt(get(i)); - } - } - - @Override - public Integer readNodeData(DataInputStream din) throws IOException { - return din.readInt(); - } - - @Override - public void writeNodeData(DataOutputStream dos, Integer integer) throws IOException { - dos.writeInt(integer); - } - - @Override - public void iset(int i, int v) { - set(i, v); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/cache/ShortBitCache.java b/core/src/main/java/com/volmit/iris/util/cache/ShortBitCache.java deleted file mode 100644 index 4bb01d053..000000000 --- a/core/src/main/java/com/volmit/iris/util/cache/ShortBitCache.java +++ /dev/null @@ -1,44 +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 com.volmit.iris.util.cache; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -public class ShortBitCache extends DataBitCache { - public ShortBitCache(int width, int height) { - super(width, height); - } - - @Override - public Short readNodeData(DataInputStream din) throws IOException { - return din.readShort(); - } - - @Override - public void writeNodeData(DataOutputStream dos, Short integer) throws IOException { - dos.writeShort(integer); - } - - @Override - public void iset(int i, int v) { - set(i, (short) v); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/cache/ShortCache.java b/core/src/main/java/com/volmit/iris/util/cache/ShortCache.java deleted file mode 100644 index 4b0ee84bf..000000000 --- a/core/src/main/java/com/volmit/iris/util/cache/ShortCache.java +++ /dev/null @@ -1,72 +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 com.volmit.iris.util.cache; - -import lombok.Getter; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -public class ShortCache implements ArrayCache { - @Getter - private final int width; - @Getter - private final int height; - private final short[] cache; - - public ShortCache(int width, int height) { - this.width = width; - this.height = height; - cache = new short[width * height]; - } - - public void set(int i, Short v) { - cache[i] = v; - } - - public Short get(int i) { - return cache[i]; - } - - @Override - public void writeCache(DataOutputStream dos) throws IOException { - dos.writeInt(width); - dos.writeInt(height); - - for (int i = 0; i < width * height; i++) { - dos.writeShort(get(i)); - } - } - - @Override - public Short readNodeData(DataInputStream din) throws IOException { - return din.readShort(); - } - - @Override - public void writeNodeData(DataOutputStream dos, Short integer) throws IOException { - dos.writeShort(integer); - } - - @Override - public void iset(int i, int v) { - set(i, (short) v); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/cache/UByteBitCache.java b/core/src/main/java/com/volmit/iris/util/cache/UByteBitCache.java deleted file mode 100644 index 4a1309f7b..000000000 --- a/core/src/main/java/com/volmit/iris/util/cache/UByteBitCache.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 com.volmit.iris.util.cache; - -public class UByteBitCache extends ByteBitCache { - public UByteBitCache(int width, int height) { - super(width, height); - } - - @Override - public void set(int i, Integer v) { - super.set(i, v + Byte.MIN_VALUE); - } - - @Override - public Integer get(int i) { - return super.get(i) - Byte.MIN_VALUE; - } - - @Override - public void iset(int i, int v) { - set(i, v); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/cache/UByteCache.java b/core/src/main/java/com/volmit/iris/util/cache/UByteCache.java deleted file mode 100644 index 81f5c23cc..000000000 --- a/core/src/main/java/com/volmit/iris/util/cache/UByteCache.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 com.volmit.iris.util.cache; - -public class UByteCache extends ByteCache { - public UByteCache(int width, int height) { - super(width, height); - } - - @Override - public void set(int i, Integer v) { - super.set(i, v + Byte.MIN_VALUE); - } - - @Override - public Integer get(int i) { - return super.get(i) - Byte.MIN_VALUE; - } - - @Override - public void iset(int i, int v) { - set(i, v); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/collection/GBiset.java b/core/src/main/java/com/volmit/iris/util/collection/GBiset.java deleted file mode 100644 index 80a252ee2..000000000 --- a/core/src/main/java/com/volmit/iris/util/collection/GBiset.java +++ /dev/null @@ -1,81 +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 com.volmit.iris.util.collection; - - -import java.io.Serializable; - -/** - * A Biset - * - * @param the first object type - * @param the second object type - * @author cyberpwn - */ -@SuppressWarnings("hiding") -public class GBiset implements Serializable { - private static final long serialVersionUID = 1L; - private A a; - private B b; - - /** - * Create a new Biset - * - * @param a the first object - * @param b the second object - */ - public GBiset(A a, B b) { - this.a = a; - this.b = b; - } - - /** - * Get the object of the type A - * - * @return the first object - */ - public A getA() { - return a; - } - - /** - * Set the first object - * - * @param a the first object A - */ - public void setA(A a) { - this.a = a; - } - - /** - * Get the second object - * - * @return the second object - */ - public B getB() { - return b; - } - - /** - * Set the second object - */ - public void setB(B b) { - this.b = b; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/collection/GListAdapter.java b/core/src/main/java/com/volmit/iris/util/collection/GListAdapter.java deleted file mode 100644 index 9869f4859..000000000 --- a/core/src/main/java/com/volmit/iris/util/collection/GListAdapter.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 com.volmit.iris.util.collection; - - -import java.util.List; - -/** - * Adapts a list of objects into a list of other objects - * - * @param the from object in lists (the item INSIDE the list) - * @param the to object in lists (the item INSIDE the list) - * @author cyberpwn - */ -public abstract class GListAdapter { - /** - * Adapts a list of FROM to a list of TO - * - * @param from the from list - * @return the to list - */ - public List adapt(List from) { - List adapted = new KList<>(); - - for (FROM i : from) { - TO t = onAdapt(i); - - if (t != null) { - adapted.add(onAdapt(i)); - } - } - - return adapted; - } - - /** - * Adapts a list object FROM to TO for use with the adapt method - * - * @param from the from object - * @return the to object - */ - public abstract TO onAdapt(FROM from); -} diff --git a/core/src/main/java/com/volmit/iris/util/collection/KList.java b/core/src/main/java/com/volmit/iris/util/collection/KList.java deleted file mode 100644 index a22c562db..000000000 --- a/core/src/main/java/com/volmit/iris/util/collection/KList.java +++ /dev/null @@ -1,709 +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 com.volmit.iris.util.collection; - -import com.google.common.util.concurrent.AtomicDoubleArray; -import com.volmit.iris.util.function.NastyFunction; -import com.volmit.iris.util.json.JSONArray; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.math.RNG; - -import java.util.*; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.stream.Collector; -import java.util.stream.Collectors; - -@SuppressWarnings("ALL") -public class KList extends ArrayList implements List { - private static final long serialVersionUID = -2892550695744823337L; - - @SafeVarargs - public KList(T... ts) { - super(); - add(ts); - } - - public KList() { - super(); - } - - public KList(int cap) { - super(cap); - } - - public KList(Collection values) { - super(); - add(values); - } - - public KList(Enumeration e) { - super(); - add(e); - } - - public static KList fromJSONAny(JSONArray oo) { - KList s = new KList(); - - for (int i = 0; i < oo.length(); i++) { - s.add(oo.get(i).toString()); - } - - return s; - } - - public static Collector> collector() { - return Collectors.toCollection(KList::new); - } - - public static KList asStringList(List oo) { - KList s = new KList(); - - for (Object i : oo) { - s.add(i.toString()); - } - - return s; - } - - public int indexOfAddIfNeeded(T v) { - addIfMissing(v); - return indexOf(v); - } - - public void addMultiple(T t, int c) { - for (int i = 0; i < c; i++) { - add(t); - } - } - - private KList add(Enumeration e) { - while (e.hasMoreElements()) { - add(e.nextElement()); - } - - return this; - } - - public KList add(Collection values) { - addAll(values); - return this; - } - - /** - * Create a Map out of this list where this list becomes the values of the - * returned map. You must specify each key for each value in this list. In the - * function, returning null will not add the keyval pair. - * - * @param the inferred key type - * @param f the function - * @return the new map - */ - public KMap asValues(Function f) { - KMap m = new KMap(); - forEach((i) -> m.putNonNull(f.apply(i), i)); - return m; - } - - /** - * Create a Map out of this list where this list becomes the keys of the - * returned map. You must specify each value for each key in this list. In the - * function, returning null will not add the keyval pair. - * - * @param the inferred value type - * @param f the function - * @return the new map - */ - public KMap asKeys(Function f) { - KMap m = new KMap(); - forEach((i) -> m.putNonNull(i, f.apply(i))); - return m; - } - - /** - * Cut this list into targetCount sublists - * - * @param targetCount the target count of sublists - * @return the list of sublists - */ - public KList> divide(int targetCount) { - return split(size() / targetCount); - } - - /** - * Split this list into a list of sublists with roughly targetSize elements of T - * per sublist - * - * @param targetSize the target size - * @return the list of sublists - */ - public KList> split(int targetSize) { - targetSize = targetSize < 1 ? 1 : targetSize; - KList> gg = new KList<>(); - KList b = new KList<>(); - - for (T i : this) { - if (b.size() >= targetSize) { - gg.add(b.copy()); - b.clear(); - } - - b.add(i); - } - - if (!b.isEmpty()) { - gg.add(b); - } - - return gg; - } - - /** - * Rewrite this list by checking each value and changing the value (or not). - * Return null to remove the element in the function - * - * @param t the function - * @return the same list (not a copy) - */ - public KList rewrite(Function t) { - KList m = copy(); - clear(); - - for (T i : m) { - addNonNull(t.apply(i)); - } - - return this; - } - - /** - * To array - * - * @return the array - */ - @SuppressWarnings("unchecked") - public T[] array() { - return (T[]) toArray(); - } - - /** - * Return a copy of this list - * - * @return the copy - */ - public KList copy() { - return new KList().add(this); - } - - /** - * Shuffle the list - * - * @return the same list - */ - public KList shuffle() { - Collections.shuffle(this); - return this; - } - - public KList shuffle(Random rng) { - Collections.shuffle(this, rng); - return this; - } - - /** - * Sort the list (based on toString comparison) - * - * @return the same list - */ - public KList sort() { - Collections.sort(this, (a, b) -> a.toString().compareTo(b.toString())); - return this; - } - - /** - * Reverse this list - * - * @return the same list - */ - public KList reverse() { - Collections.reverse(this); - return this; - } - - @Override - public String toString() { - return "[" + toString(", ") + "]"; - } - - /** - * Tostring with a seperator for each item in the list - * - * @param split the seperator - * @return the string representing this object - */ - public String toString(String split) { - if (isEmpty()) { - return ""; - } - - if (size() == 1) { - return get(0) + ""; - } - - StringBuilder b = new StringBuilder(); - - for (String i : toStringList()) { - b.append(split).append(i == null ? "null" : i); - } - - return b.substring(split.length()); - } - - /** - * Invoke tostring on each value in the list into a string list - * - * @return the string list - */ - public KList toStringList() { - return convert((t) -> t + ""); - } - - /** - * Add the contents of the given list (v) into this list using a converter - * - * @param the type of the forign list - * @param v the forign (given) list - * @param converter the converter that converts the forign type into this list type - * @return this list (builder) - */ - public KList addFrom(List v, Function converter) { - v.forEach((g) -> add(converter.apply(g))); - return this; - } - - /** - * Convert this list into another list type. Such as GList to - * GList. list.convert((i) -> "" + i); - */ - public KList convert(Function converter) { - KList v = new KList(); - forEach((t) -> v.addNonNull(converter.apply(t))); - return v; - } - - /** - * Convert this list into another list type. Such as GList to - * GList. list.convertNasty((i) -> "" + i); - */ - public KList convertNasty(NastyFunction converter) throws Throwable { - KList v = new KList(size()); - for (final var t : this) { - v.addNonNull(converter.run(t)); - } - return v; - } - - public KList removeWhere(Predicate t) { - for (T i : copy()) { - if (t.test(i)) { - remove(i); - } - } - - return this; - } - - /** - * Adds T to the list, ignores if null - * - * @param t the value to add - * @return the same list - */ - public KList addNonNull(T t) { - if (t != null) { - super.add(t); - } - - return this; - } - - /** - * Swaps the values of index a and b. For example "hello", "world", "!" swap(1, - * 2) would change the list to "hello", "!", "world" - * - * @param a the first index - * @param b the second index - * @return the same list (builder), not a copy - */ - public KList swapIndexes(int a, int b) { - T aa = remove(a); - T bb = get(b); - add(a, bb); - remove(b); - add(b, aa); - - return this; - } - - /** - * Remove a number of elements from the list - * - * @param t the elements - * @return this list - */ - @SuppressWarnings("unchecked") - public KList remove(T... t) { - for (T i : t) { - super.remove(i); - } - - return this; - } - - /** - * Add another glist's contents to this one (addall builder) - * - * @param t the list - * @return the same list - */ - public KList add(KList t) { - super.addAll(t); - return this; - } - - /** - * Add a number of values to this list - * - * @param t the list - * @return this list - */ - @SuppressWarnings("unchecked") - public KList add(T... t) { - for (T i : t) { - super.add(i); - } - - return this; - } - - /** - * Check if this list has an index at the given index - * - * @param index the given index - * @return true if size > index - */ - public boolean hasIndex(int index) { - return size() > index && index >= 0; - } - - /** - * Get the last index of this list (size - 1) - * - * @return the last index of this list - */ - public int last() { - return size() - 1; - } - - /** - * Deduplicate this list by converting to linked hash set and back - * - * @return the deduplicated list - */ - public KList dedupe() { - LinkedHashSet lhs = new LinkedHashSet(this); - return qclear().add(lhs); - } - - /** - * Clear this list (and return it) - * - * @return the same list - */ - public KList qclear() { - super.clear(); - return this; - } - - /** - * Simply !isEmpty() - * - * @return true if this list has 1 or more element(s) - */ - public boolean hasElements() { - return !isEmpty(); - } - - /** - * Simply !isEmpty() - * - * @return true if this list has 1 or more element(s) - */ - public boolean isNotEmpty() { - return !isEmpty(); - } - - /** - * Pop the first item off this list and return it - * - * @return the popped off item or null if the list is empty - */ - public T pop() { - if (isEmpty()) { - return null; - } - - return remove(0); - } - - /** - * Pop the last item off this list and return it - * - * @return the popped off item or null if the list is empty - */ - public T popLast() { - if (isEmpty()) { - return null; - } - - return remove(last()); - } - - public T popRandom() { - if (isEmpty()) { - return null; - } - - if (size() == 1) { - return pop(); - } - - return remove(M.irand(0, last())); - } - - public T popRandom(RNG rng) { - if (isEmpty()) { - return null; - } - - if (size() == 1) { - return pop(); - } - - return remove(rng.i(0, last())); - } - - public KList sub(int f, int t) { - KList g = new KList<>(); - - for (int i = f; i < M.min(size(), t); i++) { - g.add(get(i)); - } - - return g; - } - - public JSONArray toJSONStringArray() { - JSONArray j = new JSONArray(); - - for (Object i : this) { - j.put(i.toString()); - } - - return j; - } - - @SuppressWarnings("unchecked") - public KList forceAdd(Object[] values) { - for (Object i : values) { - add((T) i); - } - - return this; - } - - @SuppressWarnings("unchecked") - public KList forceAdd(int[] values) { - for (Object i : values) { - add((T) i); - } - - return this; - } - - @SuppressWarnings("unchecked") - public KList forceAdd(double[] values) { - for (Object i : values) { - add((T) i); - } - - return this; - } - - @SuppressWarnings("unchecked") - public KList forceAdd(AtomicDoubleArray values) { - for (int i = 0; i < values.length(); i++) { - add((T) ((Object) values.get(i))); - } - - return this; - } - - @SuppressWarnings("unchecked") - public KList forceAdd(float[] values) { - for (Object i : values) { - add((T) i); - } - - return this; - } - - @SuppressWarnings("unchecked") - public KList forceAdd(byte[] values) { - for (Object i : values) { - add((T) i); - } - - return this; - } - - @SuppressWarnings("unchecked") - public KList forceAdd(short[] values) { - for (Object i : values) { - add((T) i); - } - - return this; - } - - @SuppressWarnings("unchecked") - public KList forceAdd(long[] values) { - for (Object i : values) { - add((T) i); - } - - return this; - } - - @SuppressWarnings("unchecked") - public KList forceAdd(boolean[] values) { - for (Object i : values) { - add((T) i); - } - - return this; - } - - public T middleValue() { - return get(middleIndex()); - } - - private int middleIndex() { - return size() % 2 == 0 ? (size() / 2) : ((size() / 2) + 1); - } - - public T getRandom() { - if (isEmpty()) { - return null; - } - - if (size() == 1) { - return get(0); - } - - return get(M.irand(0, last())); - } - - public KList popRandom(RNG rng, int c) { - KList m = new KList<>(); - - for (int i = 0; i < c; i++) { - if (isEmpty()) { - break; - } - - m.add(popRandom()); - } - - return m; - } - - public T getRandom(RNG rng) { - if (isEmpty()) { - return null; - } - - if (size() == 1) { - return get(0); - } - - return get(rng.i(0, last())); - } - - public KList qdel(T t) { - remove(t); - return this; - } - - public KList qadd(T t) { - add(t); - return this; - } - - public KList qaddIfMissing(T t) { - addIfMissing(t); - return this; - } - - public KList removeDuplicates() { - KSet v = new KSet<>(); - v.addAll(this); - KList m = new KList<>(); - m.addAll(v); - return m; - } - - public boolean addIfMissing(T t) { - if (!contains(t)) { - add(t); - return true; - } - - return false; - } - - public void addAllIfMissing(KList t) { - for (T i : t) { - if (!contains(i)) { - add(i); - } - } - } - - public KList shuffleCopy(Random rng) { - KList t = copy(); - t.shuffle(rng); - return t; - } - - public KList qdrop() { - pop(); - return this; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/collection/KMap.java b/core/src/main/java/com/volmit/iris/util/collection/KMap.java deleted file mode 100644 index 4657b431f..000000000 --- a/core/src/main/java/com/volmit/iris/util/collection/KMap.java +++ /dev/null @@ -1,422 +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 com.volmit.iris.util.collection; - -import com.volmit.iris.Iris; -import com.volmit.iris.util.function.Consumer2; -import com.volmit.iris.util.function.Consumer3; -import com.volmit.iris.util.scheduling.Queue; - -import java.util.*; -import java.util.concurrent.ConcurrentHashMap; -import java.util.function.BiConsumer; -import java.util.function.BiFunction; - -@SuppressWarnings("ALL") -public class KMap extends ConcurrentHashMap { - private static final long serialVersionUID = 7288942695300448163L; - - public KMap() { - this(16); - } - - public KMap(int initialCapacity) { - this(initialCapacity, 0.75f, 1); - } - - public KMap(int initialCapacity, float loadFactor, int concurrencyLevel) { - super(initialCapacity, loadFactor, concurrencyLevel); - } - - public KMap(Map gMap) { - this(); - put(gMap); - } - - public K getKey(V value) { - for (KeyPair i : keypair()) { - if (i.getV().equals(value)) { - return i.getK(); - } - } - - return null; - } - - /** - * Puts a value into a map-value-list based on the key such that if GMap> where V is GList - * - * @param the list type in the value type - * @param k the key to look for - * @param vs the values to put into the list of the given key - * @return the same list (builder) - */ - @SuppressWarnings("unchecked") - public KMap putValueList(K k, S... vs) { - try { - KMap> s = (KMap>) this; - - if (!s.containsKey(k)) { - s.put(k, new KList()); - } - - s.get(k).add(vs); - } catch (Throwable e) { - Iris.reportError(e); - - } - - return this; - } - - /** - * Returns a sorted list of keys from this map, based on the sorting order of - * the values. - * - * @return the value-sorted key list - */ - public KList sortK() { - KList k = new KList(); - KList v = v(); - - Collections.sort(v, new Comparator() { - @Override - public int compare(V v, V t1) { - return v.toString().compareTo(t1.toString()); - } - }); - - for (V i : v) { - for (K j : k()) { - if (get(j).equals(i)) { - k.add(j); - } - } - } - - k.dedupe(); - return k; - } - - /** - * Returns a sorted list of keys from this map, based on the sorting order of - * the values. Sorting is based on numerical values - * - * @return the value-sorted key list - */ - public KList sortKNumber() { - KList k = new KList(); - KList v = v(); - - Collections.sort(v, new Comparator() { - @Override - public int compare(V v, V t1) { - Number n1 = (Number) v; - Number n2 = (Number) t1; - - return (int) ((n1.doubleValue() - n2.doubleValue()) * 1000); - } - }); - - for (V i : v) { - for (K j : k()) { - if (get(j).equals(i)) { - k.add(j); - } - } - } - - k.dedupe(); - return k; - } - - /** - * Put another map's values into this map - * - * @param m the map to insert - * @return this map (builder) - */ - public KMap put(Map m) { - putAll(m); - return this; - } - - /** - * Merge with another map - * - * @param m the map to merge - * @return this map (builder) - */ - public KMap merge(KMap m, BiFunction merger) { - m.forEach((k, v) -> merge(k, v, merger)); - return this; - } - - /** - * Return a copy of this map - * - * @return the copied map - */ - public KMap copy() { - return new KMap(this); - } - - /** - * Loop through each keyvalue set (copy of it) with the map parameter - * - * @param f the function - * @return the same gmap - */ - public KMap rewrite(Consumer3> f) { - KMap m = copy(); - - for (K i : m.k()) { - f.accept(i, get(i), this); - } - - return this; - } - - /** - * Loop through each keyvalue set (copy of it) - * - * @param f the function - * @return the same gmap - */ - public KMap each(Consumer2 f) { - for (K i : k()) { - f.accept(i, get(i)); - } - - return this; - } - - /** - * Flip the hashmap and flatten the value list even if there are multiple keys - * - * @return the flipped and flattened hashmap - */ - public KMap flipFlatten() { - KMap> f = flip(); - KMap m = new KMap<>(); - - for (V i : f.k()) { - m.putNonNull(i, m.isEmpty() ? null : m.get(0)); - } - - return m; - } - - /** - * Flip the hashmap so keys are now list-keys in the value position - * - * @return the flipped hashmap - */ - public KMap> flip() { - KMap> flipped = new KMap>(); - - for (K i : keySet()) { - if (i == null) { - continue; - } - - if (!flipped.containsKey(get(i))) { - flipped.put(get(i), new KList()); - } - - flipped.get(get(i)).add(i); - } - - return flipped; - } - - /** - * Sort values based on the keys sorting order - * - * @return the values (sorted) - */ - public KList sortV() { - KList v = new KList(); - KList k = k(); - - Collections.sort(k, new Comparator() { - @Override - public int compare(K v, K t1) { - return v.toString().compareTo(t1.toString()); - } - }); - - for (K i : k) { - for (V j : v()) { - if (get(i).equals(j)) { - v.add(j); - } - } - } - - v.dedupe(); - return v; - } - - public KList sortVNoDedupe() { - KList v = new KList(); - KList k = k(); - - Collections.sort(k, new Comparator() { - @Override - public int compare(K v, K t1) { - return v.toString().compareTo(t1.toString()); - } - }); - - for (K i : k) { - for (V j : v()) { - if (get(i).equals(j)) { - v.add(j); - } - } - } - - return v; - } - - /** - * Get a copy of this maps keys - * - * @return the keys - */ - public KList k() { - KList k = new KList(); - Enumeration kk = keys(); - - while (kk.hasMoreElements()) { - K kkk = kk.nextElement(); - k.add(kkk); - } - - return k; - } - - /** - * Get a copy of this maps values - * - * @return the values - */ - public KList v() { - return new KList(values()); - } - - /** - * Still works as it normally should except it returns itself (builder) - * - * @param key the key - * @param value the value (single only supported) - */ - public KMap qput(K key, V value) { - super.put(key, value); - return this; - } - - /** - * Works just like put, except it wont put anything unless the key and value are - * nonnull - * - * @param key the nonnull key - * @param value the nonnull value - * @return the same map - */ - public KMap putNonNull(K key, V value) { - if (key != null || value != null) { - put(key, value); - } - - return this; - } - - public V putThen(K key, V valueIfKeyNotPresent) { - if (!containsKey(key)) { - put(key, valueIfKeyNotPresent); - } - - return get(key); - } - - /** - * Clear this map and return it - * - * @return the cleared map - */ - public KMap qclear() { - super.clear(); - return this; - } - - /** - * Convert this map to keypairs - * - * @return the keypair list - */ - public KList> keypair() { - KList> g = new KList<>(); - each((k, v) -> g.add(new KeyPair(k, v))); - return g; - } - - public KMap qclear(BiConsumer action) { - final Iterator> it = entrySet().iterator(); - while (it.hasNext()) { - final Map.Entry entry = it.next(); - it.remove(); - try { - action.accept(entry.getKey(), entry.getValue()); - } catch (Throwable e) { - Iris.reportError(e); - } - } - return this; - } - - /** - * Create a keypair queue - * - * @return the queue - */ - public Queue> enqueue() { - return Queue.create(keypair()); - } - - /** - * Create a key queue - * - * @return the queue - */ - public Queue enqueueKeys() { - return Queue.create(k()); - } - - /** - * Create a value queue - * - * @return the queue - */ - public Queue enqueueValues() { - return Queue.create(v()); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/collection/KSet.java b/core/src/main/java/com/volmit/iris/util/collection/KSet.java deleted file mode 100644 index b695b0fd3..000000000 --- a/core/src/main/java/com/volmit/iris/util/collection/KSet.java +++ /dev/null @@ -1,94 +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 com.volmit.iris.util.collection; - -import org.jetbrains.annotations.NotNull; - -import java.io.Serializable; -import java.util.AbstractSet; -import java.util.Arrays; -import java.util.Collection; -import java.util.Iterator; -import java.util.concurrent.ConcurrentHashMap; - -public class KSet extends AbstractSet implements Serializable { - private static final long serialVersionUID = 1L; - private final ConcurrentHashMap map; - - public KSet(Collection c) { - this(c.size()); - addAll(c); - } - - @SafeVarargs - public KSet(T... values) { - this(values.length); - addAll(Arrays.asList(values)); - } - - public KSet(int initialCapacity, float loadFactor) { - map = new ConcurrentHashMap<>(initialCapacity, loadFactor); - } - - public KSet(int initialCapacity) { - map = new ConcurrentHashMap<>(initialCapacity); - } - - public static KSet merge(Collection first, Collection second) { - var set = new KSet(); - set.addAll(first); - set.addAll(second); - return set; - } - - @Override - public int size() { - return map.size(); - } - - @Override - public boolean contains(Object o) { - return map.containsKey(o); - } - - @Override - public boolean add(T t) { - return map.putIfAbsent(t, Boolean.TRUE) == null; - } - - @Override - public boolean remove(Object o) { - return map.remove(o) != null; - } - - @Override - public void clear() { - map.clear(); - } - - @NotNull - @Override - public Iterator iterator() { - return map.keySet().iterator(); - } - - public KSet copy() { - return new KSet<>(this); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/collection/KeyPair.java b/core/src/main/java/com/volmit/iris/util/collection/KeyPair.java deleted file mode 100644 index 2dd2377c3..000000000 --- a/core/src/main/java/com/volmit/iris/util/collection/KeyPair.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 com.volmit.iris.util.collection; - -/** - * Represents a keypair - * - * @param the key type - * @param the value type - * @author cyberpwn - */ -@SuppressWarnings("hiding") -public class KeyPair { - private K k; - private V v; - - /** - * Create a keypair - * - * @param k the key - * @param v the value - */ - public KeyPair(K k, V v) { - this.k = k; - this.v = v; - } - - public K getK() { - return k; - } - - public void setK(K k) { - this.k = k; - } - - public V getV() { - return v; - } - - public void setV(V v) { - this.v = v; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/collection/StateList.java b/core/src/main/java/com/volmit/iris/util/collection/StateList.java deleted file mode 100644 index b1a28997e..000000000 --- a/core/src/main/java/com/volmit/iris/util/collection/StateList.java +++ /dev/null @@ -1,104 +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 com.volmit.iris.util.collection; - -public class StateList { - private final KList states; - - public StateList(String... states) { - this.states = new KList(states); - - if (getBits() > 64) { - throw new RuntimeException("StateLists cannot exceed 64 bits! You are trying to use " + getBits() + " bits!"); - } - } - - public StateList(Enum... states) { - this.states = new KList>().convert(Enum::name); - - if (getBits() > 64) { - throw new RuntimeException("StateLists cannot exceed 64 bits! You are trying to use " + getBits() + " bits!"); - } - } - - public long max() { - return (long) (Math.pow(2, getBits()) - 1); - } - - public KList getEnabled(long list) { - KList f = new KList<>(); - - for (String i : states) { - if (is(list, i)) { - f.add(i); - } - } - - return f; - } - - public long of(String... enabledStates) { - long b = 0; - - for (String i : enabledStates) { - b |= getBit(i); - } - - return b; - } - - public long set(long list, String state, boolean enabled) { - long bit = getBit(state); - boolean is = is(list, state); - - if (enabled && !is) { - return list | bit; - } else if (!enabled && is) { - return list ^ bit; - } - - return list; - } - - public boolean is(long list, String state) { - long bit = getBit(state); - - return bit > 0 && (list & bit) == bit; - } - - public boolean hasBit(String state) { - return getBit(state) > 0; - } - - public long getBit(String state) { - return getBit(states.indexOf(state)); - } - - public long getBit(int index) { - return (long) (index < 0 ? -1 : Math.pow(2, index)); - } - - public int getBytes() { - return getBits() == 0 ? 0 : ((getBits() >> 2) + 1); - } - - public int getBits() { - return states.size(); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/data/B.java b/core/src/main/java/com/volmit/iris/util/data/B.java deleted file mode 100644 index fa401fa44..000000000 --- a/core/src/main/java/com/volmit/iris/util/data/B.java +++ /dev/null @@ -1,734 +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 com.volmit.iris.util.data; - -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.link.Identifier; -import com.volmit.iris.core.link.data.DataType; -import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.core.nms.container.BlockProperty; -import com.volmit.iris.core.service.ExternalDataSVC; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.data.registry.Materials; -import com.volmit.iris.util.scheduling.ChronoLatch; -import it.unimi.dsi.fastutil.ints.*; -import org.bukkit.Bukkit; -import org.bukkit.Material; -import org.bukkit.block.data.BlockData; -import org.bukkit.block.data.Waterlogged; -import org.bukkit.block.data.type.Leaves; -import org.bukkit.block.data.type.PointedDripstone; - -import java.util.*; -import java.util.stream.Collectors; - -import static org.bukkit.Material.*; - -public class B { - private static final KMap custom = new KMap<>(); - - private static final Material AIR_MATERIAL = Material.AIR; - private static final Material SHORT_GRASS = Materials.GRASS; - private static final BlockData AIR = AIR_MATERIAL.createBlockData(); - private static final IntSet foliageCache = buildFoliageCache(); - private static final IntSet deepslateCache = buildDeepslateCache(); - private static final Int2IntMap normal2DeepslateCache = buildNormal2DeepslateCache(); - private static final Int2IntMap deepslate2NormalCache = buildDeepslate2NormalCache(); - private static final IntSet decorantCache = buildDecorantCache(); - private static final IntSet storageCache = buildStorageCache(); - private static final IntSet storageChestCache = buildStorageChestCache(); - private static final IntSet litCache = buildLitCache(); - private static final ChronoLatch clw = new ChronoLatch(1000); - - private static IntSet buildFoliageCache() { - IntSet b = new IntOpenHashSet(); - Arrays.stream(new Material[]{ - POPPY, - DANDELION, - CORNFLOWER, - SWEET_BERRY_BUSH, - CRIMSON_ROOTS, - WARPED_ROOTS, - NETHER_SPROUTS, - ALLIUM, - AZURE_BLUET, - BLUE_ORCHID, - OXEYE_DAISY, - LILY_OF_THE_VALLEY, - WITHER_ROSE, - DARK_OAK_SAPLING, - ACACIA_SAPLING, - JUNGLE_SAPLING, - BIRCH_SAPLING, - SPRUCE_SAPLING, - OAK_SAPLING, - ORANGE_TULIP, - PINK_TULIP, - RED_TULIP, - WHITE_TULIP, - FERN, - LARGE_FERN, - SHORT_GRASS, - TALL_GRASS - }).forEach((i) -> b.add(i.ordinal())); - - return IntSets.unmodifiable(b); - } - - private static IntSet buildDeepslateCache() { - IntSet b = new IntOpenHashSet(); - Arrays.stream(new Material[]{ - DEEPSLATE, - DEEPSLATE_BRICKS, - DEEPSLATE_BRICK_SLAB, - DEEPSLATE_BRICK_STAIRS, - DEEPSLATE_BRICK_WALL, - DEEPSLATE_TILE_SLAB, - DEEPSLATE_TILES, - DEEPSLATE_TILE_STAIRS, - DEEPSLATE_TILE_WALL, - CRACKED_DEEPSLATE_TILES, - DEEPSLATE_COAL_ORE, - DEEPSLATE_IRON_ORE, - DEEPSLATE_COPPER_ORE, - DEEPSLATE_DIAMOND_ORE, - DEEPSLATE_EMERALD_ORE, - DEEPSLATE_GOLD_ORE, - DEEPSLATE_LAPIS_ORE, - DEEPSLATE_REDSTONE_ORE, - }).forEach((i) -> b.add(i.ordinal())); - - return IntSets.unmodifiable(b); - } - - private static Int2IntMap buildNormal2DeepslateCache() { - Int2IntMap b = new Int2IntOpenHashMap(); - - b.put(COAL_ORE.ordinal(), DEEPSLATE_COAL_ORE.ordinal()); - b.put(EMERALD_ORE.ordinal(), DEEPSLATE_EMERALD_ORE.ordinal()); - b.put(DIAMOND_ORE.ordinal(), DEEPSLATE_DIAMOND_ORE.ordinal()); - b.put(COPPER_ORE.ordinal(), DEEPSLATE_COPPER_ORE.ordinal()); - b.put(GOLD_ORE.ordinal(), DEEPSLATE_GOLD_ORE.ordinal()); - b.put(IRON_ORE.ordinal(), DEEPSLATE_IRON_ORE.ordinal()); - b.put(LAPIS_ORE.ordinal(), DEEPSLATE_LAPIS_ORE.ordinal()); - b.put(REDSTONE_ORE.ordinal(), DEEPSLATE_REDSTONE_ORE.ordinal()); - - return b; - } - - private static Int2IntMap buildDeepslate2NormalCache() { - Int2IntMap b = new Int2IntOpenHashMap(); - - b.put(DEEPSLATE_COAL_ORE.ordinal(), COAL_ORE.ordinal()); - b.put(DEEPSLATE_EMERALD_ORE.ordinal(), EMERALD_ORE.ordinal()); - b.put(DEEPSLATE_DIAMOND_ORE.ordinal(), DIAMOND_ORE.ordinal()); - b.put(DEEPSLATE_COPPER_ORE.ordinal(), COPPER_ORE.ordinal()); - b.put(DEEPSLATE_GOLD_ORE.ordinal(), GOLD_ORE.ordinal()); - b.put(DEEPSLATE_IRON_ORE.ordinal(), IRON_ORE.ordinal()); - b.put(DEEPSLATE_LAPIS_ORE.ordinal(), LAPIS_ORE.ordinal()); - b.put(DEEPSLATE_REDSTONE_ORE.ordinal(), REDSTONE_ORE.ordinal()); - - return b; - } - - private static IntSet buildDecorantCache() { - IntSet b = new IntOpenHashSet(); - Arrays.stream(new Material[]{ - SHORT_GRASS, - TALL_GRASS, - TALL_SEAGRASS, - FERN, - LARGE_FERN, - CORNFLOWER, - SUNFLOWER, - CHORUS_FLOWER, - POPPY, - DANDELION, - OXEYE_DAISY, - ORANGE_TULIP, - PINK_TULIP, - RED_TULIP, - WHITE_TULIP, - LILAC, - DEAD_BUSH, - SWEET_BERRY_BUSH, - ROSE_BUSH, - WITHER_ROSE, - ALLIUM, - BLUE_ORCHID, - LILY_OF_THE_VALLEY, - CRIMSON_FUNGUS, - WARPED_FUNGUS, - RED_MUSHROOM, - BROWN_MUSHROOM, - CRIMSON_ROOTS, - AZURE_BLUET, - WEEPING_VINES, - WEEPING_VINES_PLANT, - WARPED_ROOTS, - NETHER_SPROUTS, - TWISTING_VINES, - TWISTING_VINES_PLANT, - SUGAR_CANE, - WHEAT, - POTATOES, - CARROTS, - BEETROOTS, - NETHER_WART, - SEA_PICKLE, - SEAGRASS, - ACACIA_BUTTON, - BIRCH_BUTTON, - CRIMSON_BUTTON, - DARK_OAK_BUTTON, - JUNGLE_BUTTON, - OAK_BUTTON, - POLISHED_BLACKSTONE_BUTTON, - SPRUCE_BUTTON, - STONE_BUTTON, - WARPED_BUTTON, - TORCH, - SOUL_TORCH, - GLOW_LICHEN, - VINE, - SCULK_VEIN - }).forEach((i) -> b.add(i.ordinal())); - b.addAll(foliageCache); - - return IntSets.unmodifiable(b); - } - - private static IntSet buildLitCache() { - IntSet b = new IntOpenHashSet(); - Arrays.stream(new Material[]{ - GLOWSTONE, - AMETHYST_CLUSTER, - SMALL_AMETHYST_BUD, - MEDIUM_AMETHYST_BUD, - LARGE_AMETHYST_BUD, - END_ROD, - SOUL_SAND, - TORCH, - REDSTONE_TORCH, - SOUL_TORCH, - REDSTONE_WALL_TORCH, - WALL_TORCH, - SOUL_WALL_TORCH, - LANTERN, - CANDLE, - JACK_O_LANTERN, - REDSTONE_LAMP, - MAGMA_BLOCK, - LIGHT, - SHROOMLIGHT, - SEA_LANTERN, - SOUL_LANTERN, - FIRE, - SOUL_FIRE, - SEA_PICKLE, - BREWING_STAND, - REDSTONE_ORE, - }).forEach((i) -> b.add(i.ordinal())); - - return IntSets.unmodifiable(b); - } - - private static IntSet buildStorageCache() { - IntSet b = new IntOpenHashSet(); - Arrays.stream(new Material[]{ - CHEST, - SMOKER, - TRAPPED_CHEST, - SHULKER_BOX, - WHITE_SHULKER_BOX, - ORANGE_SHULKER_BOX, - MAGENTA_SHULKER_BOX, - LIGHT_BLUE_SHULKER_BOX, - YELLOW_SHULKER_BOX, - LIME_SHULKER_BOX, - PINK_SHULKER_BOX, - GRAY_SHULKER_BOX, - LIGHT_GRAY_SHULKER_BOX, - CYAN_SHULKER_BOX, - PURPLE_SHULKER_BOX, - BLUE_SHULKER_BOX, - BROWN_SHULKER_BOX, - GREEN_SHULKER_BOX, - RED_SHULKER_BOX, - BLACK_SHULKER_BOX, - BARREL, - DISPENSER, - DROPPER, - HOPPER, - FURNACE, - BLAST_FURNACE - }).forEach((i) -> b.add(i.ordinal())); - - return IntSets.unmodifiable(b); - } - - public static BlockData toDeepSlateOre(BlockData block, BlockData ore) { - int key = ore.getMaterial().ordinal(); - - if (isDeepSlate(block)) { - if (normal2DeepslateCache.containsKey(key)) { - return Material.values()[normal2DeepslateCache.get(key)].createBlockData(); - } - } else { - if (deepslate2NormalCache.containsKey(key)) { - return Material.values()[deepslate2NormalCache.get(key)].createBlockData(); - } - } - - return ore; - } - - public static boolean isDeepSlate(BlockData blockData) { - return deepslateCache.contains(blockData.getMaterial().ordinal()); - } - - public static boolean isOre(BlockData blockData) { - return blockData.getMaterial().name().endsWith("_ORE"); - } - - private static IntSet buildStorageChestCache() { - IntSet b = new IntOpenHashSet(storageCache); - b.remove(SMOKER.ordinal()); - b.remove(FURNACE.ordinal()); - b.remove(BLAST_FURNACE.ordinal()); - - return IntSets.unmodifiable(b); - } - - public static boolean canPlaceOnto(Material mat, Material onto) { - if ((onto.equals(CRIMSON_NYLIUM) || onto.equals(WARPED_NYLIUM)) && - (mat.equals(CRIMSON_FUNGUS) || mat.equals(CRIMSON_ROOTS) || mat.equals(WARPED_FUNGUS) || mat.equals(WARPED_ROOTS))) { - return true; - } - - if (isFoliage(mat)) { - if (!isFoliagePlantable(onto)) { - return false; - } - } - - if (onto.equals(Material.AIR) || - onto.equals(B.getMaterial("CAVE_AIR")) - || onto.equals(B.getMaterial("VOID_AIR"))) { - return false; - } - - if (onto.equals(Material.GRASS_BLOCK) && mat.equals(Material.DEAD_BUSH)) { - return false; - } - - if (onto.equals(Material.DIRT_PATH)) { - if (!mat.isSolid()) { - return false; - } - } - - if (onto.equals(Material.ACACIA_LEAVES) - || onto.equals(Material.BIRCH_LEAVES) - || onto.equals(Material.DARK_OAK_LEAVES) - || onto.equals(Material.JUNGLE_LEAVES) - || onto.equals(Material.OAK_LEAVES) - || onto.equals(Material.SPRUCE_LEAVES)) { - return mat.isSolid(); - } - - return true; - } - - public static boolean isFoliagePlantable(BlockData d) { - return d.getMaterial().equals(Material.GRASS_BLOCK) - || d.getMaterial().equals(Material.MOSS_BLOCK) - || d.getMaterial().equals(Material.ROOTED_DIRT) - || d.getMaterial().equals(Material.DIRT) - || d.getMaterial().equals(Material.COARSE_DIRT) - || d.getMaterial().equals(Material.PODZOL); - } - - public static boolean isFoliagePlantable(Material d) { - return d.equals(Material.GRASS_BLOCK) - || d.equals(Material.MOSS_BLOCK) - || d.equals(Material.DIRT) - || d.equals(TALL_GRASS) - || d.equals(TALL_SEAGRASS) - || d.equals(LARGE_FERN) - || d.equals(SUNFLOWER) - || d.equals(PEONY) - || d.equals(LILAC) - || d.equals(ROSE_BUSH) - || d.equals(Material.ROOTED_DIRT) - || d.equals(Material.COARSE_DIRT) - || d.equals(Material.PODZOL); - } - - public static boolean isWater(BlockData b) { - return b.getMaterial().equals(Material.WATER); - } - - public static BlockData getAir() { - return AIR; - } - - public static Material getMaterialOrNull(String bdx) { - try { - return Material.valueOf(bdx.trim().toUpperCase()); - } catch (Throwable e) { - Iris.reportError(e); - if (clw.flip()) { - Iris.warn("Unknown Material: " + bdx); - } - return null; - } - } - - public static Material getMaterial(String bdx) { - Material m = getMaterialOrNull(bdx); - - if (m == null) { - return AIR_MATERIAL; - } - - return m; - } - - public static boolean isSolid(BlockData mat) { - if (mat == null) - return false; - return mat.getMaterial().isSolid(); - } - - public static BlockData getOrNull(String bdxf, boolean warn) { - try { - String bd = bdxf.trim(); - - if (!custom.isEmpty() && custom.containsKey(bd)) { - return custom.get(bd); - } - - if (bd.startsWith("minecraft:cauldron[level=")) { - bd = bd.replaceAll("\\Q:cauldron[\\E", ":water_cauldron["); - } - - if (bd.equals("minecraft:grass_path")) { - return DIRT_PATH.createBlockData(); - } - - BlockData bdx = parseBlockData(bd, warn); - - if (bdx == null && warn) { - if (clw.flip()) { - Iris.warn("Unknown Block Data '" + bd + "'"); - } - return AIR; - } - - return bdx; - } catch (Throwable e) { - Iris.reportError(e); - - if (clw.flip()) { - Iris.warn("Unknown Block Data '" + bdxf + "'"); - } - } - - return null; - } - - public static BlockData getNoCompat(String bdxf) { - BlockData bd = getOrNull(bdxf, true); - - if (bd != null) { - return bd; - } - - return AIR; - } - - public static BlockData get(String bdxf) { - if (bdxf.contains(":")) { - if (bdxf.startsWith("minecraft:")) { - return Iris.compat.getBlock(bdxf); - } else { - return getNoCompat(bdxf); - } - } else { - return Iris.compat.getBlock(bdxf); - } - } - - private static synchronized BlockData createBlockData(String s, boolean warn) { - try { - return Bukkit.createBlockData(s); - } catch (IllegalArgumentException e) { - if (s.contains("[")) { - return createBlockData(s.split("\\Q[\\E")[0], warn); - } - } - - if (warn) { - Iris.error("Can't find block data for " + s); - } - return null; - } - - private static BlockData parseBlockData(String ix, boolean warn) { - try { - BlockData bx = null; - - if (!ix.startsWith("minecraft:") && ix.contains(":")) { - Identifier key = Identifier.fromString(ix); - Optional bd = Iris.service(ExternalDataSVC.class).getBlockData(key); - Iris.debug("Loading block data " + key); - if (bd.isPresent()) - bx = bd.get(); - } - - if (bx == null) { - try { - bx = createBlockData(ix.toLowerCase(), warn); - } catch (Throwable e) { - e.printStackTrace(); - } - } - - if (bx == null) { - try { - bx = createBlockData("minecraft:" + ix.toLowerCase(), warn); - } catch (Throwable e) { - - } - } - - if (bx == null) { - try { - bx = Material.valueOf(ix.toUpperCase()).createBlockData(); - } catch (Throwable e) { - - } - } - - if (bx == null) { - return null; - } - - if (bx instanceof Leaves && IrisSettings.get().getGenerator().isPreventLeafDecay()) { - ((Leaves) bx).setPersistent(true); - } else if (bx instanceof Leaves) { - ((Leaves) bx).setPersistent(false); - } - - return bx; - } catch (Throwable e) { - if (clw.flip()) { - Iris.warn("Unknown Block Data: " + ix); - } - - String block = ix.contains(":") ? ix.split(":")[1].toLowerCase() : ix.toLowerCase(); - String state = block.contains("[") ? block.split("\\Q[\\E")[1].split("\\Q]\\E")[0] : ""; - Map stateMap = new HashMap<>(); - if (!state.equals("")) { - Arrays.stream(state.split(",")).forEach(s -> stateMap.put(s.split("=")[0], s.split("=")[1])); - } - block = block.split("\\Q[\\E")[0]; - - switch (block) { - case "cauldron" -> block = "water_cauldron"; - case "grass_path" -> block = "dirt_path"; - case "concrete" -> block = "white_concrete"; - case "wool" -> block = "white_wool"; - case "beetroots" -> { - if (stateMap.containsKey("age")) { - String updated = stateMap.get("age"); - switch (updated) { - case "7" -> updated = "3"; - case "3", "4", "5" -> updated = "2"; - case "1", "2" -> updated = "1"; - } - stateMap.put("age", updated); - } - } - } - - Map newStates = new HashMap<>(); - for (String key : stateMap.keySet()) { //Iterate through every state and check if its valid - try { - String newState = block + "[" + key + "=" + stateMap.get(key) + "]"; - createBlockData(newState, warn); - newStates.put(key, stateMap.get(key)); - - } catch (IllegalArgumentException ignored) { - } - } - - //Combine all the "good" states again - state = newStates.entrySet().stream().map(entry -> entry.getKey() + "=" + entry.getValue()).collect(Collectors.joining(",")); - if (!state.equals("")) state = "[" + state + "]"; - String newBlock = block + state; - Iris.debug("Converting " + ix + " to " + newBlock); - - try { - return createBlockData(newBlock, warn); - } catch (Throwable e1) { - Iris.reportError(e1); - } - - return null; - } - } - - public static boolean isStorage(BlockData mat) { - return storageCache.contains(mat.getMaterial().ordinal()); - } - - public static boolean isStorageChest(BlockData mat) { - return storageChestCache.contains(mat.getMaterial().ordinal()); - } - - public static boolean isLit(BlockData mat) { - return litCache.contains(mat.getMaterial().ordinal()); - } - - public static boolean isUpdatable(BlockData mat) { - return isStorage(mat) - || (mat instanceof PointedDripstone - && ((PointedDripstone) mat).getThickness().equals(PointedDripstone.Thickness.TIP)); - } - - public static boolean isFoliage(Material d) { - return foliageCache.contains(d.ordinal()); - } - - public static boolean isFoliage(BlockData d) { - return isFoliage(d.getMaterial()); - } - - public static boolean isDecorant(BlockData m) { - return decorantCache.contains(m.getMaterial().ordinal()); - } - - public static KList get(KList find) { - KList b = new KList<>(); - - for (String i : find) { - BlockData bd = get(i); - - if (bd != null) { - b.add(bd); - } - } - - return b; - } - - public static boolean isFluid(BlockData d) { - return d.getMaterial().equals(Material.WATER) || d.getMaterial().equals(Material.LAVA); - } - - public static boolean isAirOrFluid(BlockData d) { - return isAir(d) || isFluid(d); - } - - public static boolean isAir(BlockData d) { - if (d == null) { - return true; - } - - return d.getMaterial().equals(Material.AIR) || d.getMaterial().equals(Material.CAVE_AIR) || d.getMaterial().equals(Material.VOID_AIR); - } - - - public synchronized static String[] getBlockTypes() { - KList bt = new KList<>(); - - for (Material i : Material.values()) { - if (i.isBlock()) { - String v = i.createBlockData().getAsString(true); - - if (v.contains("[")) { - v = v.split("\\Q[\\E")[0]; - } - - bt.add(v); - } - } - - for (Identifier id : Iris.service(ExternalDataSVC.class).getAllIdentifiers(DataType.BLOCK)) - bt.add(id.toString()); - bt.addAll(custom.k()); - - return bt.toArray(new String[0]); - } - - public synchronized static KMap, List> getBlockStates() { - KMap, List> flipped = new KMap<>(); - INMS.get().getBlockProperties().forEach((k, v) -> { - flipped.computeIfAbsent(v, $ -> new KList<>()).add(k.getKey().toString()); - }); - - var emptyStates = flipped.computeIfAbsent(new KList<>(0), $ -> new KList<>()); - for (var pair : Iris.service(ExternalDataSVC.class).getAllBlockProperties()) { - if (pair.getB().isEmpty()) emptyStates.add(pair.getA().toString()); - else flipped.computeIfAbsent(pair.getB(), $ -> new KList<>()).add(pair.getA().toString()); - } - emptyStates.addAll(custom.k()); - - KMap, List> states = new KMap<>(); - flipped.forEach((k, v) -> { - var old = states.put(v, k); - if (old != null) Iris.error("Duplicate block state: " + v + " (" + old + " and " + k + ")"); - }); - - return states; - } - - public static String[] getItemTypes() { - KList bt = new KList<>(); - - for (Material i : Material.values()) { - String v = i.name().toLowerCase().trim(); - bt.add(v); - } - - for (Identifier id : Iris.service(ExternalDataSVC.class).getAllIdentifiers(DataType.ITEM)) - bt.add(id.toString()); - - return bt.toArray(new String[0]); - } - - public static boolean isWaterLogged(BlockData b) { - return (b instanceof Waterlogged) && ((Waterlogged) b).isWaterlogged(); - } - - public static void registerCustomBlockData(String namespace, String key, BlockData blockData) { - custom.put(namespace + ":" + key, blockData); - } - - public static boolean isVineBlock(BlockData data) { - return switch (data.getMaterial()) { - case VINE, SCULK_VEIN, GLOW_LICHEN -> true; - default -> false; - }; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/data/ChunkCache.java b/core/src/main/java/com/volmit/iris/util/data/ChunkCache.java deleted file mode 100644 index 9fb9dac5a..000000000 --- a/core/src/main/java/com/volmit/iris/util/data/ChunkCache.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 com.volmit.iris.util.data; - -import com.volmit.iris.util.function.Function2; - -import java.util.concurrent.atomic.AtomicReferenceArray; - -public class ChunkCache { - private final AtomicReferenceArray cache; - - public ChunkCache() { - cache = new AtomicReferenceArray<>(256); - } - - public T compute(int x, int z, Function2 function) { - T t = get(x & 15, z & 15); - - if (t == null) { - t = function.apply(x, z); - set(x & 15, z & 15, t); - } - - return t; - } - - private void set(int x, int z, T t) { - cache.set(x * 16 + z, t); - } - - private T get(int x, int z) { - return cache.get(x * 16 + z); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/data/ComplexCache.java b/core/src/main/java/com/volmit/iris/util/data/ComplexCache.java deleted file mode 100644 index 8478db011..000000000 --- a/core/src/main/java/com/volmit/iris/util/data/ComplexCache.java +++ /dev/null @@ -1,42 +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 com.volmit.iris.util.data; - -import com.volmit.iris.engine.data.cache.Cache; -import com.volmit.iris.util.collection.KMap; - -public class ComplexCache { - private final KMap> chunks; - - public ComplexCache() { - chunks = new KMap<>(); - } - - public boolean has(int x, int z) { - return chunks.containsKey(Cache.key(x, z)); - } - - public void invalidate(int x, int z) { - chunks.remove(Cache.key(x, z)); - } - - public ChunkCache chunk(int x, int z) { - return chunks.computeIfAbsent(Cache.key(x, z), (f) -> new ChunkCache<>()); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/data/Cuboid.java b/core/src/main/java/com/volmit/iris/util/data/Cuboid.java deleted file mode 100644 index ccd837eb2..000000000 --- a/core/src/main/java/com/volmit/iris/util/data/Cuboid.java +++ /dev/null @@ -1,832 +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 com.volmit.iris.util.data; - -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.math.Direction; -import com.volmit.iris.util.math.Position2; -import org.bukkit.*; -import org.bukkit.block.Block; -import org.bukkit.configuration.serialization.ConfigurationSerializable; -import org.bukkit.entity.Entity; - -import java.util.*; - -/** - * Cuboids - * - * @author cyberpwn - */ -public class Cuboid implements Iterable, Cloneable, ConfigurationSerializable { - protected final String worldName; - protected int x1, y1, z1; - protected int x2, y2, z2; - - /** - * Construct a Cuboid given two Location objects which represent any two corners - * of the Cuboid. - * - * @param l1 one of the corners - * @param l2 the other corner - */ - public Cuboid(Location l1, Location l2) { - if (!l1.getWorld().equals(l2.getWorld())) { - throw new IllegalArgumentException("locations must be on the same world"); - } - - worldName = l1.getWorld().getName(); - x1 = Math.min(l1.getBlockX(), l2.getBlockX()); - y1 = Math.min(l1.getBlockY(), l2.getBlockY()); - z1 = Math.min(l1.getBlockZ(), l2.getBlockZ()); - x2 = Math.max(l1.getBlockX(), l2.getBlockX()); - y2 = Math.max(l1.getBlockY(), l2.getBlockY()); - z2 = Math.max(l1.getBlockZ(), l2.getBlockZ()); - } - - /** - * Construct a one-block Cuboid at the given Location of the Cuboid. - * - * @param l1 location of the Cuboid - */ - public Cuboid(Location l1) { - this(l1, l1); - } - - /** - * Copy constructor. - * - * @param other the Cuboid to copy - */ - public Cuboid(Cuboid other) { - this(other.getWorld().getName(), other.x1, other.y1, other.z1, other.x2, other.y2, other.z2); - } - - /** - * Construct a Cuboid in the given World and xyz co-ordinates - * - * @param world the Cuboid's world - * @param x1 X co-ordinate of corner 1 - * @param y1 Y co-ordinate of corner 1 - * @param z1 Z co-ordinate of corner 1 - * @param x2 X co-ordinate of corner 2 - * @param y2 Y co-ordinate of corner 2 - * @param z2 Z co-ordinate of corner 2 - */ - public Cuboid(World world, int x1, int y1, int z1, int x2, int y2, int z2) { - this.worldName = world.getName(); - this.x1 = Math.min(x1, x2); - this.x2 = Math.max(x1, x2); - this.y1 = Math.min(y1, y2); - this.y2 = Math.max(y1, y2); - this.z1 = Math.min(z1, z2); - this.z2 = Math.max(z1, z2); - } - - /** - * Construct a Cuboid in the given world name and xyz co-ordinates. - * - * @param worldName the Cuboid's world name - * @param x1 X co-ordinate of corner 1 - * @param y1 Y co-ordinate of corner 1 - * @param z1 Z co-ordinate of corner 1 - * @param x2 X co-ordinate of corner 2 - * @param y2 Y co-ordinate of corner 2 - * @param z2 Z co-ordinate of corner 2 - */ - private Cuboid(String worldName, int x1, int y1, int z1, int x2, int y2, int z2) { - this.worldName = worldName; - this.x1 = Math.min(x1, x2); - this.x2 = Math.max(x1, x2); - this.y1 = Math.min(y1, y2); - this.y2 = Math.max(y1, y2); - this.z1 = Math.min(z1, z2); - this.z2 = Math.max(z1, z2); - } - - public Cuboid(Map map) { - worldName = (String) map.get("worldName"); - x1 = (Integer) map.get("x1"); - x2 = (Integer) map.get("x2"); - y1 = (Integer) map.get("y1"); - y2 = (Integer) map.get("y2"); - z1 = (Integer) map.get("z1"); - z2 = (Integer) map.get("z2"); - } - - public KList getEntities() { - KList en = new KList<>(); - - for (Chunk i : getChunks()) { - for (Entity j : i.getEntities()) { - if (contains(j.getLocation())) { - en.add(j); - } - } - } - - return en; - } - - /** - * Set the locations - * - * @param l1 a - * @param l2 b - */ - public void set(Location l1, Location l2) { - x1 = Math.min(l1.getBlockX(), l2.getBlockX()); - y1 = Math.min(l1.getBlockY(), l2.getBlockY()); - z1 = Math.min(l1.getBlockZ(), l2.getBlockZ()); - x2 = Math.max(l1.getBlockX(), l2.getBlockX()); - y2 = Math.max(l1.getBlockY(), l2.getBlockY()); - z2 = Math.max(l1.getBlockZ(), l2.getBlockZ()); - } - - @Override - public Map serialize() { - Map map = new HashMap<>(); - map.put("worldName", worldName); - map.put("x1", x1); - map.put("y1", y1); - map.put("z1", z1); - map.put("x2", x2); - map.put("y2", y2); - map.put("z2", z2); - return map; - } - - public Cuboid flatten(int level) { - return new Cuboid(getWorld(), x1, level, z1, x2, level, z2); - } - - /** - * Get the Location of the lower northeast corner of the Cuboid (minimum XYZ - * co-ordinates). - * - * @return Location of the lower northeast corner - */ - public Location getLowerNE() { - return new Location(getWorld(), x1, y1, z1); - } - - /** - * Get the Location of the upper southwest corner of the Cuboid (maximum XYZ - * co-ordinates). - * - * @return Location of the upper southwest corner - */ - public Location getUpperSW() { - return new Location(getWorld(), x2, y2, z2); - } - - /** - * Get the the centre of the Cuboid - * - * @return Location at the centre of the Cuboid - */ - public Location getCenter() { - int x1 = getUpperX() + 1; - int y1 = getUpperY() + 1; - int z1 = getUpperZ() + 1; - return new Location(getWorld(), getLowerX() + (x1 - getLowerX()) / 2.0, getLowerY() + (y1 - getLowerY()) / 2.0, getLowerZ() + (z1 - getLowerZ()) / 2.0); - } - - /** - * Get the Cuboid's world. - * - * @return the World object representing this Cuboid's world - * @throws IllegalStateException if the world is not loaded - */ - public World getWorld() { - World world = Bukkit.getWorld(worldName); - if (world == null) { - throw new IllegalStateException("world '" + worldName + "' is not loaded"); - } - return world; - } - - /** - * Get the size of this Cuboid along the X axis - * - * @return Size of Cuboid along the X axis - */ - public int getSizeX() { - return (x2 - x1) + 1; - } - - /** - * Get the size of this Cuboid along the Y axis - * - * @return Size of Cuboid along the Y axis - */ - public int getSizeY() { - return (y2 - y1) + 1; - } - - /** - * Get the size of this Cuboid along the Z axis - * - * @return Size of Cuboid along the Z axis - */ - public int getSizeZ() { - return (z2 - z1) + 1; - } - - /** - * Get the cuboid dimensions - * - * @return the dimensions - */ - public Dimension getDimension() { - return new Dimension(getSizeX(), getSizeY(), getSizeZ()); - } - - /** - * Get the minimum X co-ordinate of this Cuboid - * - * @return the minimum X co-ordinate - */ - public int getLowerX() { - return x1; - } - - /** - * Get the minimum Y co-ordinate of this Cuboid - * - * @return the minimum Y co-ordinate - */ - public int getLowerY() { - return y1; - } - - /** - * Get the minimum Z co-ordinate of this Cuboid - * - * @return the minimum Z co-ordinate - */ - public int getLowerZ() { - return z1; - } - - /** - * Get the maximum X co-ordinate of this Cuboid - * - * @return the maximum X co-ordinate - */ - public int getUpperX() { - return x2; - } - - /** - * Get the maximum Y co-ordinate of this Cuboid - * - * @return the maximum Y co-ordinate - */ - public int getUpperY() { - return y2; - } - - /** - * Get the maximum Z co-ordinate of this Cuboid - * - * @return the maximum Z co-ordinate - */ - public int getUpperZ() { - return z2; - } - - /** - * Get the Blocks at the eight corners of the Cuboid. - * - * @return array of Block objects representing the Cuboid corners - */ - public Block[] corners() { - Block[] res = new Block[8]; - World w = getWorld(); - res[0] = w.getBlockAt(x1, y1, z1); - res[1] = w.getBlockAt(x1, y1, z2); - res[2] = w.getBlockAt(x1, y2, z1); - res[3] = w.getBlockAt(x1, y2, z2); - res[4] = w.getBlockAt(x2, y1, z1); - res[5] = w.getBlockAt(x2, y1, z2); - res[6] = w.getBlockAt(x2, y2, z1); - res[7] = w.getBlockAt(x2, y2, z2); - return res; - } - - /** - * Expand the Cuboid in the given direction by the given amount. Negative - * amounts will shrink the Cuboid in the given direction. Shrinking a cuboid's - * face past the opposite face is not an error and will return a valid Cuboid. - * - * @param dir the direction in which to expand - * @param amount the number of blocks by which to expand - * @return a new Cuboid expanded by the given direction and amount - */ - public Cuboid expand(CuboidDirection dir, int amount) { - return switch (dir) { - case North -> new Cuboid(worldName, x1 - amount, y1, z1, x2, y2, z2); - case South -> new Cuboid(worldName, x1, y1, z1, x2 + amount, y2, z2); - case East -> new Cuboid(worldName, x1, y1, z1 - amount, x2, y2, z2); - case West -> new Cuboid(worldName, x1, y1, z1, x2, y2, z2 + amount); - case Down -> new Cuboid(worldName, x1, y1 - amount, z1, x2, y2, z2); - case Up -> new Cuboid(worldName, x1, y1, z1, x2, y2 + amount, z2); - default -> throw new IllegalArgumentException("invalid direction " + dir); - }; - } - - public Cuboid expand(Direction dir, int amount) { - int ax = dir.toVector().getBlockX() == 1 ? amount : 0; - int sx = dir.toVector().getBlockX() == -1 ? -amount : 0; - int ay = dir.toVector().getBlockY() == 1 ? amount : 0; - int sy = dir.toVector().getBlockY() == -1 ? -amount : 0; - int az = dir.toVector().getBlockZ() == 1 ? amount : 0; - int sz = dir.toVector().getBlockZ() == -1 ? -amount : 0; - return new Cuboid(worldName, x1 + sx, y1 + sy, z1 + sz, x2 + ax, y2 + ay, z2 + az); - } - - /** - * Shift the Cuboid in the given direction by the given amount. - * - * @param dir the direction in which to shift - * @param amount the number of blocks by which to shift - * @return a new Cuboid shifted by the given direction and amount - */ - public Cuboid shift(CuboidDirection dir, int amount) { - return expand(dir, amount).expand(dir.opposite(), -amount); - } - - /** - * Outset (grow) the Cuboid in the given direction by the given amount. - * - * @param dir the direction in which to outset (must be Horizontal, Vertical, or - * Both) - * @param amount the number of blocks by which to outset - * @return a new Cuboid outset by the given direction and amount - */ - public Cuboid outset(CuboidDirection dir, int amount) { - Cuboid c = switch (dir) { - case Horizontal -> - expand(CuboidDirection.North, amount).expand(CuboidDirection.South, amount).expand(CuboidDirection.East, amount).expand(CuboidDirection.West, amount); - case Vertical -> expand(CuboidDirection.Down, amount).expand(CuboidDirection.Up, amount); - case Both -> outset(CuboidDirection.Horizontal, amount).outset(CuboidDirection.Vertical, amount); - default -> throw new IllegalArgumentException("invalid direction " + dir); - }; - return c; - } - - /** - * Inset (shrink) the Cuboid in the given direction by the given amount. - * Equivalent to calling outset() with a negative amount. - * - * @param dir the direction in which to inset (must be Horizontal, Vertical, or - * Both) - * @param amount the number of blocks by which to inset - * @return a new Cuboid inset by the given direction and amount - */ - public Cuboid inset(CuboidDirection dir, int amount) { - return outset(dir, -amount); - } - - /** - * Return true if the point at (x,y,z) is contained within this Cuboid. - * - * @param x the X co-ordinate - * @param y the Y co-ordinate - * @param z the Z co-ordinate - * @return true if the given point is within this Cuboid, false otherwise - */ - public boolean contains(int x, int y, int z) { - return x >= x1 && x <= x2 && y >= y1 && y <= y2 && z >= z1 && z <= z2; - } - - /** - * Check if the given Block is contained within this Cuboid. - * - * @param b the Block to check for - * @return true if the Block is within this Cuboid, false otherwise - */ - public boolean contains(Block b) { - return contains(b.getLocation()); - } - - /** - * Check if the given Location is contained within this Cuboid. - * - * @param l the Location to check for - * @return true if the Location is within this Cuboid, false otherwise - */ - public boolean contains(Location l) { - return worldName.equals(l.getWorld().getName()) && contains(l.getBlockX(), l.getBlockY(), l.getBlockZ()); - } - - /** - * Get the volume of this Cuboid. - * - * @return the Cuboid volume, in blocks - */ - public int volume() { - return getSizeX() * getSizeY() * getSizeZ(); - } - - /** - * Get the average light level of all empty (air) blocks in the Cuboid. Returns - * 0 if there are no empty blocks. - * - * @return the average light level of this Cuboid - */ - public byte averageLightLevel() { - long total = 0; - int n = 0; - for (Block b : this) { - if (b.isEmpty()) { - total += b.getLightLevel(); - ++n; - } - } - return n > 0 ? (byte) (total / n) : 0; - } - - /** - * Contract the Cuboid, returning a Cuboid with any air around the edges - * removed, just large enough to include all non-air blocks. - * - * @return a new Cuboid with no external air blocks - */ - public Cuboid contract() { - return this.contract(CuboidDirection.Down).contract(CuboidDirection.South).contract(CuboidDirection.East).contract(CuboidDirection.Up).contract(CuboidDirection.North).contract(CuboidDirection.West); - } - - /** - * Contract the Cuboid in the given direction, returning a new Cuboid which has - * no exterior empty space. E.g. a direction of Down will push the top face - * downwards as much as possible. - * - * @param dir the direction in which to contract - * @return a new Cuboid contracted in the given direction - */ - public Cuboid contract(CuboidDirection dir) { - Cuboid face = getFace(dir.opposite()); - switch (dir) { - case Down -> { - while (face.containsOnly(Material.AIR) && face.getLowerY() > this.getLowerY()) { - face = face.shift(CuboidDirection.Down, 1); - } - return new Cuboid(worldName, x1, y1, z1, x2, face.getUpperY(), z2); - } - case Up -> { - while (face.containsOnly(Material.AIR) && face.getUpperY() < this.getUpperY()) { - face = face.shift(CuboidDirection.Up, 1); - } - return new Cuboid(worldName, x1, face.getLowerY(), z1, x2, y2, z2); - } - case North -> { - while (face.containsOnly(Material.AIR) && face.getLowerX() > this.getLowerX()) { - face = face.shift(CuboidDirection.North, 1); - } - return new Cuboid(worldName, x1, y1, z1, face.getUpperX(), y2, z2); - } - case South -> { - while (face.containsOnly(Material.AIR) && face.getUpperX() < this.getUpperX()) { - face = face.shift(CuboidDirection.South, 1); - } - return new Cuboid(worldName, face.getLowerX(), y1, z1, x2, y2, z2); - } - case East -> { - while (face.containsOnly(Material.AIR) && face.getLowerZ() > this.getLowerZ()) { - face = face.shift(CuboidDirection.East, 1); - } - return new Cuboid(worldName, x1, y1, z1, x2, y2, face.getUpperZ()); - } - case West -> { - while (face.containsOnly(Material.AIR) && face.getUpperZ() < this.getUpperZ()) { - face = face.shift(CuboidDirection.West, 1); - } - return new Cuboid(worldName, x1, y1, face.getLowerZ(), x2, y2, z2); - } - default -> throw new IllegalArgumentException("Invalid direction " + dir); - } - } - - /** - * Get the Cuboid representing the face of this Cuboid. The resulting Cuboid - * will be one block thick in the axis perpendicular to the requested face. - * - * @param dir which face of the Cuboid to get - * @return the Cuboid representing this Cuboid's requested face - */ - public Cuboid getFace(CuboidDirection dir) { - return switch (dir) { - case Down -> new Cuboid(worldName, x1, y1, z1, x2, y1, z2); - case Up -> new Cuboid(worldName, x1, y2, z1, x2, y2, z2); - case North -> new Cuboid(worldName, x1, y1, z1, x1, y2, z2); - case South -> new Cuboid(worldName, x2, y1, z1, x2, y2, z2); - case East -> new Cuboid(worldName, x1, y1, z1, x2, y2, z1); - case West -> new Cuboid(worldName, x1, y1, z2, x2, y2, z2); - default -> throw new IllegalArgumentException("Invalid direction " + dir); - }; - } - - /** - * Check if the Cuboid contains only blocks of the given type - * - * @param material the material to check for - * @return true if this Cuboid contains only blocks of the given type - */ - public boolean containsOnly(Material material) { - for (Block b : this) { - if (b.getType() != material) { - return false; - } - } - return true; - } - - /** - * Get the Cuboid big enough to hold both this Cuboid and the given one. - * - * @param other the other Cuboid to include - * @return a new Cuboid large enough to hold this Cuboid and the given Cuboid - */ - public Cuboid getBoundingCuboid(Cuboid other) { - if (other == null) { - return this; - } - - int xMin = Math.min(getLowerX(), other.getLowerX()); - int yMin = Math.min(getLowerY(), other.getLowerY()); - int zMin = Math.min(getLowerZ(), other.getLowerZ()); - int xMax = Math.max(getUpperX(), other.getUpperX()); - int yMax = Math.max(getUpperY(), other.getUpperY()); - int zMax = Math.max(getUpperZ(), other.getUpperZ()); - - return new Cuboid(worldName, xMin, yMin, zMin, xMax, yMax, zMax); - } - - /** - * Get a block relative to the lower NE point of the Cuboid. - * - * @param x the X co-ordinate - * @param y the Y co-ordinate - * @param z the Z co-ordinate - * @return the block at the given position - */ - public Block getRelativeBlock(int x, int y, int z) { - return getWorld().getBlockAt(x1 + x, y1 + y, z1 + z); - } - - /** - * Get a block relative to the lower NE point of the Cuboid in the given World. - * This version of getRelativeBlock() should be used if being called many times, - * to avoid excessive calls to getWorld(). - * - * @param w the World - * @param x the X co-ordinate - * @param y the Y co-ordinate - * @param z the Z co-ordinate - * @return the block at the given position - */ - public Block getRelativeBlock(World w, int x, int y, int z) { - return w.getBlockAt(x1 + x, y1 + y, z1 + z); - } - - /** - * Get a list of the chunks which are fully or partially contained in this - * cuboid. - * - * @return a list of Chunk objects - */ - public List getChunks() { - List res = new ArrayList<>(); - - World w = getWorld(); - int x1 = getLowerX() & ~0xf; - int x2 = getUpperX() & ~0xf; - int z1 = getLowerZ() & ~0xf; - int z2 = getUpperZ() & ~0xf; - for (int x = x1; x <= x2; x += 16) { - for (int z = z1; z <= z2; z += 16) { - res.add(w.getChunkAt(x >> 4, z >> 4)); - } - } - return res; - } - - /* - Set all the blocks within the Cuboid to the given MaterialData, using a - MassBlockUpdate object for fast updates. - - @param mat - * the MaterialData to set - * @param mbu - * the MassBlockUpdate object - */ - - /** - * Reset the light level of all blocks within this Cuboid. - */ - - /* - * (non-Javadoc) - * - * @see java.lang.Iterable#iterator() - */ - @Override - public Iterator iterator() { - return new CuboidIterator(getWorld(), x1, y1, z1, x2, y2, z2); - } - - public Iterator chunkedIterator() { - return new ChunkedCuboidIterator(getWorld(), x1, y1, z1, x2, y2, z2); - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#clone() - */ - @SuppressWarnings("MethodDoesntCallSuperMethod") - @Override - public Cuboid clone() { - return new Cuboid(this); - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "Cuboid: " + worldName + "," + x1 + "," + y1 + "," + z1 + "=>" + x2 + "," + y2 + "," + z2; - } - - public enum CuboidDirection { - - North, - East, - South, - West, - Up, - Down, - Horizontal, - Vertical, - Both, - Unknown; - - public CuboidDirection opposite() { - return switch (this) { - case North -> South; - case East -> West; - case South -> North; - case West -> East; - case Horizontal -> Vertical; - case Vertical -> Horizontal; - case Up -> Down; - case Down -> Up; - case Both -> Both; - default -> Unknown; - }; - } - } - - public static class CuboidIterator implements Iterator { - private final World w; - private final int baseX; - private final int baseY; - private final int baseZ; - private final int sizeX; - private final int sizeY; - private final int sizeZ; - private int x, y, z; - - public CuboidIterator(World w, int x1, int y1, int z1, int x2, int y2, int z2) { - this.w = w; - baseX = x1; - baseY = y1; - baseZ = z1; - sizeX = Math.abs(x2 - x1) + 1; - sizeY = Math.abs(y2 - y1) + 1; - sizeZ = Math.abs(z2 - z1) + 1; - x = y = z = 0; - } - - @Override - public boolean hasNext() { - return x < sizeX && y < sizeY && z < sizeZ; - } - - @Override - public Block next() { - Block b = w.getBlockAt(baseX + x, baseY + y, baseZ + z); - if (++x >= sizeX) { - x = 0; - if (++y >= sizeY) { - y = 0; - ++z; - } - } - return b; - } - - @Override - public void remove() { - // nop - } - } - - public static class ChunkedCuboidIterator implements Iterator { - private final World w; - private final int minRX, minY, minRZ, maxRX, maxY, maxRZ; - private final int minCX, minCZ, maxCX, maxCZ; - private int mX, mZ, bX, rX, rZ, y; - - private Position2 chunk; - private int cX, cZ; - - public ChunkedCuboidIterator(World w, int x1, int y1, int z1, int x2, int y2, int z2) { - this.w = w; - minY = Math.min(y1, y2); - maxY = Math.max(y1, y2); - int minX = Math.min(x1, x2); - int minZ = Math.min(z1, z2); - int maxX = Math.max(x1, x2); - int maxZ = Math.max(z1, z2); - minRX = minX & 15; - minRZ = minZ & 15; - maxRX = maxX & 15; - maxRZ = maxZ & 15; - - minCX = minX >> 4; - minCZ = minZ >> 4; - maxCX = maxX >> 4; - maxCZ = maxZ >> 4; - cX = minCX; - cZ = minCZ; - - rX = minX & 15; - rZ = minZ & 15; - y = minY; - } - - @Override - public boolean hasNext() { - return chunk != null || hasNextChunk(); - } - - public boolean hasNextChunk() { - return cX <= maxCX && cZ <= maxCZ; - } - - @Override - public Block next() { - if (chunk == null) { - chunk = new Position2(cX, cZ); - if (++cX > maxCX) { - cX = minCX; - cZ++; - } - - mX = chunk.getX() == maxCX ? maxRX : 15; - mZ = chunk.getZ() == maxCZ ? maxRZ : 15; - rX = bX = chunk.getX() == minCX ? minRX : 0; - rZ = chunk.getZ() == minCZ ? minRZ : 0; - } - - var b = w.getBlockAt((chunk.getX() << 4) + rX, y, (chunk.getZ() << 4) + rZ); - if (++y > maxY) { - y = minY; - if (++rX > mX) { - if (++rZ > mZ) { - chunk = null; - return b; - } - rX = bX; - } - } - - return b; - } - - @Override - public void remove() { - // nop - } - } -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/data/CuboidException.java b/core/src/main/java/com/volmit/iris/util/data/CuboidException.java deleted file mode 100644 index 990cefd45..000000000 --- a/core/src/main/java/com/volmit/iris/util/data/CuboidException.java +++ /dev/null @@ -1,32 +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 com.volmit.iris.util.data; - -/** - * Represents a cuboid exception - * - * @author cyberpwn - */ -public class CuboidException extends Exception { - private static final long serialVersionUID = 1L; - - public CuboidException(String string) { - super(string); - } -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/data/DUTF.java b/core/src/main/java/com/volmit/iris/util/data/DUTF.java deleted file mode 100644 index b48bb7e7e..000000000 --- a/core/src/main/java/com/volmit/iris/util/data/DUTF.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 com.volmit.iris.util.data; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; -import java.nio.charset.StandardCharsets; - -/** - * - *

- *

Signed values are further encoded using so-called zig-zag encoding - * in order to make them "compatible" with variable-length encoding.

- */ -public final class DUTF { - - private DUTF() { - } - - public static void write(String s, DataOutputStream dos) throws IOException { - byte[] b = s.getBytes(StandardCharsets.UTF_8); - dos.writeShort(b.length); - dos.write(b); - } - - public static String read(DataInputStream din) throws IOException { - byte[] d = new byte[din.readShort()]; - din.read(d); - return new String(d, StandardCharsets.UTF_8); - } -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/data/DataPalette.java b/core/src/main/java/com/volmit/iris/util/data/DataPalette.java deleted file mode 100644 index dcdfc546c..000000000 --- a/core/src/main/java/com/volmit/iris/util/data/DataPalette.java +++ /dev/null @@ -1,87 +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 com.volmit.iris.util.data; - -import com.volmit.iris.util.collection.KList; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -public class DataPalette { - private final KList palette; - - public DataPalette() { - this(new KList<>(16)); - } - - public DataPalette(KList palette) { - this.palette = palette; - } - - public static DataPalette getPalette(IOAdapter adapter, DataInputStream din) throws IOException { - KList palette = new KList<>(); - int s = din.readShort() - Short.MIN_VALUE; - - for (int i = 0; i < s; i++) { - palette.add(adapter.read(din)); - } - - return new DataPalette<>(palette); - } - - public KList getPalette() { - return palette; - } - - public T get(int index) { - synchronized (palette) { - if (!palette.hasIndex(index)) { - return null; - } - - return palette.get(index); - } - } - - public int getIndex(T t) { - int v = 0; - - synchronized (palette) { - v = palette.indexOf(t); - - if (v == -1) { - v = palette.size(); - palette.add(t); - } - } - - return v; - } - - public void write(IOAdapter adapter, DataOutputStream dos) throws IOException { - synchronized (palette) { - dos.writeShort(getPalette().size() + Short.MIN_VALUE); - - for (T t : palette) { - adapter.write(t, dos); - } - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/data/Dimension.java b/core/src/main/java/com/volmit/iris/util/data/Dimension.java deleted file mode 100644 index fac2bcb7f..000000000 --- a/core/src/main/java/com/volmit/iris/util/data/Dimension.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 com.volmit.iris.util.data; - -/** - * Dimensions - * - * @author cyberpwn - */ -public class Dimension { - private final int width; - private final int height; - private final int depth; - - /** - * Make a dimension - * - * @param width width of this (X) - * @param height the height (Y) - * @param depth the depth (Z) - */ - public Dimension(int width, int height, int depth) { - this.width = width; - this.height = height; - this.depth = depth; - } - - /** - * Make a dimension - * - * @param width width of this (X) - * @param height the height (Y) - */ - public Dimension(int width, int height) { - this.width = width; - this.height = height; - this.depth = 0; - } - - /** - * Get the direction of the flat part of this dimension (null if no thin - * face) - * - * @return the direction of the flat pane or null - */ - public DimensionFace getPane() { - if (width == 1) { - return DimensionFace.X; - } - - if (height == 1) { - return DimensionFace.Y; - } - - if (depth == 1) { - return DimensionFace.Z; - } - - return null; - } - - public int getWidth() { - return width; - } - - public int getHeight() { - return height; - } - - public int getDepth() { - return depth; - } -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/data/DimensionFace.java b/core/src/main/java/com/volmit/iris/util/data/DimensionFace.java deleted file mode 100644 index 500c76526..000000000 --- a/core/src/main/java/com/volmit/iris/util/data/DimensionFace.java +++ /dev/null @@ -1,41 +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 com.volmit.iris.util.data; - -/** - * Represents a dimension (coordinates not worlds) - * - * @author cyberpwn - */ -public enum DimensionFace { - /** - * The X dimension (width) - */ - X, - - /** - * The Y dimension (height) - */ - Y, - - /** - * The Z dimension (depth) - */ - Z -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/data/DoubleArrayUtils.java b/core/src/main/java/com/volmit/iris/util/data/DoubleArrayUtils.java deleted file mode 100644 index 11de75200..000000000 --- a/core/src/main/java/com/volmit/iris/util/data/DoubleArrayUtils.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 com.volmit.iris.util.data; - - -import com.google.common.util.concurrent.AtomicDoubleArray; - -import java.util.Arrays; - -public class DoubleArrayUtils { - public static void shiftRight(double[] values, double push) { - if (values.length - 2 + 1 >= 0) System.arraycopy(values, 0, values, 1, values.length - 2 + 1); - - values[0] = push; - } - - public static void wrapRight(double[] values) { - double last = values[values.length - 1]; - shiftRight(values, last); - } - - public static void fill(double[] values, double value) { - Arrays.fill(values, value); - } - - public static void fill(AtomicDoubleArray values, double value) { - for (int i = 0; i < values.length(); i++) { - values.set(i, value); - } - } - -} diff --git a/core/src/main/java/com/volmit/iris/util/data/Heafty.java b/core/src/main/java/com/volmit/iris/util/data/Heafty.java deleted file mode 100644 index 4e0cce01e..000000000 --- a/core/src/main/java/com/volmit/iris/util/data/Heafty.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 com.volmit.iris.util.data; - -@FunctionalInterface -public interface Heafty { - int getHeaft(); -} diff --git a/core/src/main/java/com/volmit/iris/util/data/HeightMap.java b/core/src/main/java/com/volmit/iris/util/data/HeightMap.java deleted file mode 100644 index 5b0a78f08..000000000 --- a/core/src/main/java/com/volmit/iris/util/data/HeightMap.java +++ /dev/null @@ -1,38 +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 com.volmit.iris.util.data; - -import java.util.Arrays; - -public class HeightMap { - private final int[] height; - - public HeightMap() { - height = new int[256]; - Arrays.fill(height, 0); - } - - public void setHeight(int x, int z, int h) { - height[x * 16 + z] = (h); - } - - public int getHeight(int x, int z) { - return height[x * 16 + z]; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/data/IOAdapter.java b/core/src/main/java/com/volmit/iris/util/data/IOAdapter.java deleted file mode 100644 index 6d9903ff8..000000000 --- a/core/src/main/java/com/volmit/iris/util/data/IOAdapter.java +++ /dev/null @@ -1,29 +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 com.volmit.iris.util.data; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -public interface IOAdapter { - void write(T t, DataOutputStream dos) throws IOException; - - T read(DataInputStream din) throws IOException; -} diff --git a/core/src/main/java/com/volmit/iris/util/data/InvertedBiomeGrid.java b/core/src/main/java/com/volmit/iris/util/data/InvertedBiomeGrid.java deleted file mode 100644 index 27e5d110b..000000000 --- a/core/src/main/java/com/volmit/iris/util/data/InvertedBiomeGrid.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 com.volmit.iris.util.data; - -import org.bukkit.block.Biome; -import org.bukkit.generator.ChunkGenerator.BiomeGrid; - -public class InvertedBiomeGrid implements BiomeGrid { - private final BiomeGrid grid; - - public InvertedBiomeGrid(BiomeGrid real) { - this.grid = real; - } - - - @SuppressWarnings("deprecation") - @Override - public Biome getBiome(int arg0, int arg1) { - return grid.getBiome(arg0, arg1); - } - - - @Override - public Biome getBiome(int arg0, int arg1, int arg2) { - return grid.getBiome(arg0, 255 - arg1, arg2); - } - - @SuppressWarnings("deprecation") - @Override - public void setBiome(int arg0, int arg1, Biome arg2) { - grid.setBiome(arg0, arg1, arg2); - } - - @Override - public void setBiome(int arg0, int arg1, int arg2, Biome arg3) { - grid.setBiome(arg0, 255 - arg1, arg2, arg3); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/data/IrisBiomeStorage.java b/core/src/main/java/com/volmit/iris/util/data/IrisBiomeStorage.java deleted file mode 100644 index 2dc81c542..000000000 --- a/core/src/main/java/com/volmit/iris/util/data/IrisBiomeStorage.java +++ /dev/null @@ -1,96 +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 com.volmit.iris.util.data; - -import com.volmit.iris.util.math.IrisMathHelper; -import org.bukkit.block.Biome; -import org.bukkit.generator.ChunkGenerator.BiomeGrid; -import org.jetbrains.annotations.NotNull; - -public class IrisBiomeStorage implements BiomeGrid { - public static final int a; - public static final int b; - public static final int c; - private static final int e; - private static final int f; - - static { - e = (int) Math.round(Math.log(16.0) / Math.log(2.0)) - 2; - f = (int) Math.round(Math.log(256.0) / Math.log(2.0)) - 2; // TODO: WARNING HEIGHT - a = 1 << IrisBiomeStorage.e + IrisBiomeStorage.e + IrisBiomeStorage.f; - b = (1 << IrisBiomeStorage.e) - 1; - c = (1 << IrisBiomeStorage.f) - 1; - } - - private final Biome[] g; - - public IrisBiomeStorage(final Biome[] aBiome) { - this.g = aBiome; - } - - public IrisBiomeStorage() { - this(new Biome[IrisBiomeStorage.a]); - } - - public IrisBiomeStorage b() { - return new IrisBiomeStorage(this.g.clone()); - } - - public void inject(BiomeGrid grid) { - // TODO: WARNING HEIGHT - for (int i = 0; i < 256; i++) { - for (int j = 0; j < 16; j++) { - for (int k = 0; k < 16; k++) { - Biome b = getBiome(j, i, k); - - if (b == null || b.equals(Biome.THE_VOID)) { - continue; - } - - grid.setBiome(j, i, k, b); - } - } - } - } - - @NotNull - @Override - public Biome getBiome(int x, int z) { - return null; - } - - public Biome getBiome(final int x, final int y, final int z) { - final int l = x & IrisBiomeStorage.b; - final int i2 = IrisMathHelper.clamp(y, 0, IrisBiomeStorage.c); - final int j2 = z & IrisBiomeStorage.b; - return this.g[i2 << IrisBiomeStorage.e + IrisBiomeStorage.e | j2 << IrisBiomeStorage.e | l]; - } - - @Override - public void setBiome(int x, int z, @NotNull Biome bio) { - - } - - public void setBiome(final int x, final int y, final int z, final Biome biome) { - final int l = x & IrisBiomeStorage.b; - final int i2 = IrisMathHelper.clamp(y, 0, IrisBiomeStorage.c); - final int j2 = z & IrisBiomeStorage.b; - this.g[i2 << IrisBiomeStorage.e + IrisBiomeStorage.e | j2 << IrisBiomeStorage.e | l] = biome; - } -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/data/KCache.java b/core/src/main/java/com/volmit/iris/util/data/KCache.java deleted file mode 100644 index 0226dedb7..000000000 --- a/core/src/main/java/com/volmit/iris/util/data/KCache.java +++ /dev/null @@ -1,101 +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 com.volmit.iris.util.data; - -import com.github.benmanes.caffeine.cache.CacheLoader; -import com.github.benmanes.caffeine.cache.Caffeine; -import com.github.benmanes.caffeine.cache.LoadingCache; -import com.github.benmanes.caffeine.cache.Scheduler; -import com.volmit.iris.engine.framework.MeteredCache; -import com.volmit.iris.util.math.RollingSequence; - -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; - -public class KCache implements MeteredCache { - public static final ExecutorService EXECUTOR = Executors.newVirtualThreadPerTaskExecutor(); - - private final long max; - private final LoadingCache cache; - private final boolean fastDump; - private final RollingSequence msu = new RollingSequence(100); - private CacheLoader loader; - - public KCache(CacheLoader loader, long max) { - this(loader, max, false); - } - - public KCache(CacheLoader loader, long max, boolean fastDump) { - this.max = max; - this.fastDump = fastDump; - this.loader = loader; - this.cache = create(loader); - } - - private LoadingCache create(CacheLoader loader) { - return Caffeine - .newBuilder() - .maximumSize(max) - .scheduler(Scheduler.systemScheduler()) - .executor(EXECUTOR) - .initialCapacity((int) (max)) - .build((k) -> loader == null ? null : loader.load(k)); - } - - - public void setLoader(CacheLoader loader) { - this.loader = loader; - } - - public void invalidate(K k) { - cache.invalidate(k); - } - - public void invalidate() { - cache.invalidateAll(); - } - - public V get(K k) { - return cache.get(k); - } - - @Override - public long getSize() { - return cache.estimatedSize(); - } - - @Override - public KCache getRawCache() { - return this; - } - - @Override - public long getMaxSize() { - return max; - } - - @Override - public boolean isClosed() { - return false; - } - - public boolean contains(K next) { - return cache.getIfPresent(next) != null; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/data/MaterialBlock.java b/core/src/main/java/com/volmit/iris/util/data/MaterialBlock.java deleted file mode 100644 index dd6a3b580..000000000 --- a/core/src/main/java/com/volmit/iris/util/data/MaterialBlock.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 com.volmit.iris.util.data; - -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.block.BlockState; - -/** - * Material blocks - * - * @author cyberpwn - */ -@SuppressWarnings("deprecation") -public class MaterialBlock { - private Material material; - private Byte data; - - /** - * Create a materialblock - * - * @param material the material - * @param data the data - */ - public MaterialBlock(Material material, Byte data) { - this.material = material; - this.data = data; - } - - public MaterialBlock(Material material) { - this.material = material; - data = 0; - } - - public MaterialBlock(Location location) { - this(location.getBlock()); - } - - public MaterialBlock(BlockState state) { - material = state.getType(); - data = state.getData().getData(); - } - - public MaterialBlock(Block block) { - material = block.getType(); - data = block.getData(); - } - - public MaterialBlock() { - material = Material.AIR; - data = 0; - } - - public Material getMaterial() { - return material; - } - - public void setMaterial(Material material) { - this.material = material; - } - - public Byte getData() { - return data; - } - - public void setData(Byte data) { - this.data = data; - } - - @Override - public String toString() { - if (getData() == 0) { - return getMaterial().toString(); - } - - return getMaterial().toString() + ":" + getData(); - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((data == null) ? 0 : data.hashCode()); - result = prime * result + ((material == null) ? 0 : material.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - MaterialBlock other = (MaterialBlock) obj; - if (data == null) { - if (other.data != null) { - return false; - } - } else if (!data.equals(other.data)) { - return false; - } - return material == other.material; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/data/NibbleArray.java b/core/src/main/java/com/volmit/iris/util/data/NibbleArray.java deleted file mode 100644 index 33dcc6585..000000000 --- a/core/src/main/java/com/volmit/iris/util/data/NibbleArray.java +++ /dev/null @@ -1,194 +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 com.volmit.iris.util.data; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; -import java.nio.ByteOrder; -import java.util.Arrays; -import java.util.StringJoiner; - -public class NibbleArray implements Writable { - private static final int[] MASKS = new int[8]; - - static { - for (int i = 0; i < MASKS.length; i++) { - MASKS[i] = maskFor(i); - } - } - - private final int size; - private final Object lock = new Object(); - private byte[] data; - private int depth; - private byte mask; - private transient int bitIndex, byteIndex, bitInByte; - - public NibbleArray(int capacity, DataInputStream in) throws IOException { - size = capacity; - read(in); - } - - public NibbleArray(int nibbleDepth, int capacity) { - if (nibbleDepth > 8 || nibbleDepth < 1) { - throw new IllegalArgumentException(); - } - - int neededBits = nibbleDepth * capacity; - - size = capacity; - depth = nibbleDepth; - data = new byte[(neededBits + neededBits % 8) / 8]; - mask = (byte) maskFor(nibbleDepth); - } - - public NibbleArray(int nibbleDepth, int capacity, NibbleArray existing) { - if (nibbleDepth > 8 || nibbleDepth < 1) { - throw new IllegalArgumentException(); - } - - int neededBits = nibbleDepth * capacity; - size = capacity; - depth = nibbleDepth; - data = new byte[(neededBits + neededBits % 8) / 8]; - mask = (byte) maskFor(nibbleDepth); - - for (int i = 0; i < Math.min(size, existing.size()); i++) { - set(i, existing.get(i)); - } - } - - public static int maskFor(int amountOfBits) { - return powerOfTwo(amountOfBits) - 1; - } - - public static int powerOfTwo(int power) { - int result = 1; - - for (int i = 0; i < power; i++) { - result *= 2; - } - - return result; - } - - public static String binaryString(byte b, ByteOrder byteOrder) { - String str = String.format("%8s", Integer.toBinaryString(b & 0xff)).replace(' ', '0'); - - return byteOrder.equals(ByteOrder.BIG_ENDIAN) ? str : reverse(str); - } - - public static String reverse(String str) { - return new StringBuilder(str).reverse().toString(); - } - - @Override - public void write(DataOutputStream o) throws IOException { - o.writeByte(depth + Byte.MIN_VALUE); - o.write(data); - } - - @Override - public void read(DataInputStream i) throws IOException { - depth = i.readByte() - Byte.MIN_VALUE; - int neededBits = depth * size; - data = new byte[(neededBits + neededBits % 8) / 8]; - mask = (byte) maskFor(depth); - i.read(data); - } - - public int size() { - return size; - } - - public byte get(int index) { - synchronized (lock) { - bitIndex = index * depth; - byteIndex = bitIndex >> 3; - bitInByte = bitIndex & 7; - int value = data[byteIndex] >> bitInByte; - - if (bitInByte + depth > 8) { - value |= data[byteIndex + 1] << bitInByte; - } - - return (byte) (value & mask); - } - } - - public byte get(int x, int y, int z) { - return get(index(x, y, z)); - } - - public int index(int x, int y, int z) { - return y << 8 | z << 4 | x; - } - - public void set(int x, int y, int z, int nibble) { - set(index(x, y, z), nibble); - } - - public void set(int index, int nibble) { - set(index, (byte) nibble); - } - - public void set(int index, byte nybble) { - synchronized (lock) { - bitIndex = index * depth; - byteIndex = bitIndex >> 3; - bitInByte = bitIndex & 7; - data[byteIndex] = (byte) (((~(data[byteIndex] & (mask << bitInByte)) & data[byteIndex]) | ((nybble & mask) << bitInByte)) & 0xff); - - if (bitInByte + depth > 8) { - data[byteIndex + 1] = (byte) (((~(data[byteIndex + 1] & MASKS[bitInByte + depth - 8]) & data[byteIndex + 1]) | ((nybble & mask) >> (8 - bitInByte))) & 0xff); - } - } - } - - public String toBitsString() { - return toBitsString(ByteOrder.BIG_ENDIAN); - } - - public String toBitsString(ByteOrder byteOrder) { - StringJoiner joiner = new StringJoiner(" "); - - for (byte datum : data) { - joiner.add(binaryString(datum, byteOrder)); - } - - return joiner.toString(); - } - - public void clear() { - Arrays.fill(data, (byte) 0); - } - - public void setAll(byte nibble) { - for (int i = 0; i < size; i++) { - set(i, nibble); - } - } - - public void setAll(int nibble) { - for (int i = 0; i < size; i++) { - set(i, (byte) nibble); - } - } -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/data/NibbleDataPalette.java b/core/src/main/java/com/volmit/iris/util/data/NibbleDataPalette.java deleted file mode 100644 index 09fb3954a..000000000 --- a/core/src/main/java/com/volmit/iris/util/data/NibbleDataPalette.java +++ /dev/null @@ -1,124 +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 com.volmit.iris.util.data; - -import com.volmit.iris.util.collection.KList; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -public abstract class NibbleDataPalette implements Writable { - private static final int DEFAULT_BITS_PER_BLOCK = 4; - private static final int CAPACITY = 4096; - private int bpb; - private NibbleArray data; - private KList palette; - - public NibbleDataPalette(T defaultValue) { - palette = new KList<>(); - bpb = DEFAULT_BITS_PER_BLOCK; - data = new NibbleArray(bpb, CAPACITY); - data.setAll(Byte.MIN_VALUE); - getPaletteId(defaultValue); - } - - public abstract T readType(DataInputStream i) throws IOException; - - public abstract void writeType(T t, DataOutputStream o) throws IOException; - - @Override - public void write(DataOutputStream o) throws IOException { - o.writeByte(bpb + Byte.MIN_VALUE); - o.writeByte(palette.size() + Byte.MIN_VALUE); - - for (T i : palette) { - writeType(i, o); - } - - data.write(o); - } - - @Override - public void read(DataInputStream i) throws IOException { - bpb = i.readByte() - Byte.MIN_VALUE; - palette = new KList<>(); - int v = i.readByte() - Byte.MIN_VALUE; - - for (int j = 0; j < v; j++) { - palette.add(readType(i)); - } - - data = new NibbleArray(CAPACITY, i); - } - - private void expand() { - if (bpb < 8) { - changeBitsPerBlock(bpb + 1); - } else { - throw new IndexOutOfBoundsException("The Data Palette can only handle at most 256 block types per 16x16x16 region. We cannot use more than 8 bits per block!"); - } - } - - public final void optimize() { - int targetBits = bpb; - int needed = palette.size(); - - for (int i = 1; i < bpb; i++) { - if (Math.pow(2, i) > needed) { - targetBits = i; - break; - } - } - - changeBitsPerBlock(targetBits); - } - - private void changeBitsPerBlock(int bits) { - bpb = bits; - data = new NibbleArray(bpb, CAPACITY, data); - } - - public final void set(int x, int y, int z, T d) { - data.set(getCoordinateIndex(x, y, z), getPaletteId(d)); - } - - public final T get(int x, int y, int z) { - return palette.get(data.get(getCoordinateIndex(x, y, z))); - } - - private int getPaletteId(T d) { - int index = palette.indexOf(d); - - if (index == -1) { - index = palette.size(); - palette.add(d); - - if (palette.size() > Math.pow(2, bpb)) { - expand(); - } - } - - return index + Byte.MIN_VALUE; - } - - private int getCoordinateIndex(int x, int y, int z) { - return y << 8 | z << 4 | x; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/data/Recycler.java b/core/src/main/java/com/volmit/iris/util/data/Recycler.java deleted file mode 100644 index fc1455607..000000000 --- a/core/src/main/java/com/volmit/iris/util/data/Recycler.java +++ /dev/null @@ -1,151 +0,0 @@ -package com.volmit.iris.util.data; - -import java.util.List; -import java.util.concurrent.CopyOnWriteArrayList; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.function.Supplier; - -public class Recycler { - private final List> pool; - private final Supplier factory; - - public Recycler(Supplier factory) { - pool = new CopyOnWriteArrayList<>(); - this.factory = factory; - } - - public int getFreeObjects() { - int m = 0; - RecycledObject o; - for (RecycledObject tRecycledObject : pool) { - o = tRecycledObject; - - if (!o.isUsed()) { - m++; - } - } - - return m; - } - - public int getUsedOjects() { - int m = 0; - RecycledObject o; - for (RecycledObject tRecycledObject : pool) { - o = tRecycledObject; - - if (o.isUsed()) { - m++; - } - } - - return m; - } - - public void dealloc(T t) { - RecycledObject o; - - for (RecycledObject tRecycledObject : pool) { - o = tRecycledObject; - if (o.isUsed() && System.identityHashCode(t) == System.identityHashCode(o.getObject())) { - o.dealloc(); - return; - } - } - } - - public T alloc() { - RecycledObject o; - - for (RecycledObject tRecycledObject : pool) { - o = tRecycledObject; - if (o.alloc()) { - return o.getObject(); - } - } - - expand(); - - return alloc(); - } - - public boolean contract() { - return contract(Math.max(getFreeObjects() / 2, Runtime.getRuntime().availableProcessors())); - } - - public boolean contract(int maxFree) { - int remove = getFreeObjects() - maxFree; - - if (remove > 0) { - RecycledObject o; - - for (int i = pool.size() - 1; i > 0; i--) { - o = pool.get(i); - if (!o.isUsed()) { - pool.remove(i); - remove--; - - if (remove <= 0) { - return true; - } - } - } - } - - return false; - } - - public void expand() { - if (pool.isEmpty()) { - expand(Runtime.getRuntime().availableProcessors()); - return; - } - - expand(getUsedOjects() + Runtime.getRuntime().availableProcessors()); - } - - public void expand(int by) { - for (int i = 0; i < by; i++) { - pool.add(new RecycledObject<>(factory.get())); - } - } - - public int size() { - return pool.size(); - } - - public void deallocAll() { - pool.clear(); - } - - public static class RecycledObject { - private final T object; - private final AtomicBoolean used; - - public RecycledObject(T object) { - this.object = object; - used = new AtomicBoolean(false); - } - - public T getObject() { - return object; - } - - public boolean isUsed() { - return used.get(); - } - - public void dealloc() { - used.set(false); - } - - public boolean alloc() { - if (used.get()) { - return false; - } - - used.set(true); - return true; - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/data/Shrinkwrap.java b/core/src/main/java/com/volmit/iris/util/data/Shrinkwrap.java deleted file mode 100644 index 32d247767..000000000 --- a/core/src/main/java/com/volmit/iris/util/data/Shrinkwrap.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 com.volmit.iris.util.data; - -public class Shrinkwrap { - private T t; - - public Shrinkwrap(T t) { - set(t); - } - - public Shrinkwrap() { - this(null); - } - - public T get() { - return t; - } - - public void set(T t) { - this.t = t; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/data/VanillaBiomeMap.java b/core/src/main/java/com/volmit/iris/util/data/VanillaBiomeMap.java deleted file mode 100644 index bd1db8325..000000000 --- a/core/src/main/java/com/volmit/iris/util/data/VanillaBiomeMap.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 com.volmit.iris.util.data; - -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.inventorygui.RandomColor.Color; -import com.volmit.iris.util.inventorygui.RandomColor.Luminosity; -import com.volmit.iris.util.inventorygui.RandomColor.SaturationType; -import org.bukkit.block.Biome; - -public class VanillaBiomeMap { - - private static final KMap BIOME_HEX = new KMap<>(); - private static final KMap BIOME_COLOR = new KMap<>(); - private static final KMap BIOME_LUMINOSITY = new KMap<>(); - private static final KMap BIOME_SATURATION = new KMap<>(); - private static final KMap BIOME_IDs = new KMap<>(); - - static { - add(Biome.OCEAN, 0x000070, Color.BLUE, Luminosity.BRIGHT, SaturationType.MEDIUM); - add(Biome.PLAINS, 0x8DB360, Color.GREEN, Luminosity.LIGHT, SaturationType.MEDIUM); - add(Biome.DESERT, 0xFA9418, Color.YELLOW, Luminosity.LIGHT, SaturationType.MEDIUM); - add(Biome.WINDSWEPT_HILLS, 0x606060, Color.MONOCHROME, Luminosity.BRIGHT, null); - add(Biome.FOREST, 0x056621, Color.GREEN, Luminosity.BRIGHT, null); - add(Biome.TAIGA, 0x0B6659, Color.GREEN, Luminosity.BRIGHT, SaturationType.MEDIUM); - add(Biome.SWAMP, 0x07F9B2, Color.ORANGE, Luminosity.DARK, SaturationType.MEDIUM); - add(Biome.RIVER, 0x0000FF, Color.BLUE, Luminosity.LIGHT, SaturationType.LOW); - add(Biome.NETHER_WASTES, 0xBF3B3B, Color.RED, Luminosity.LIGHT, SaturationType.MEDIUM); - add(Biome.THE_END, 0x8080FF, Color.PURPLE, Luminosity.LIGHT, SaturationType.LOW); - add(Biome.FROZEN_OCEAN, 0x7070D6, Color.BLUE, Luminosity.BRIGHT, SaturationType.MEDIUM); - add(Biome.FROZEN_RIVER, 0xA0A0FF, Color.BLUE, Luminosity.BRIGHT, SaturationType.MEDIUM); - add(Biome.SNOWY_PLAINS, 0xFFFFFF, Color.MONOCHROME, Luminosity.LIGHT, null); - add(Biome.MUSHROOM_FIELDS, 0xFF00FF, Color.PURPLE, Luminosity.BRIGHT, null); - add(Biome.BEACH, 0xFADE55, Color.YELLOW, Luminosity.LIGHT, SaturationType.LOW); - add(Biome.JUNGLE, 0x537B09, Color.GREEN, Luminosity.BRIGHT, SaturationType.HIGH); - add(Biome.SPARSE_JUNGLE, 0x628B17, Color.GREEN, Luminosity.BRIGHT, SaturationType.HIGH); - add(Biome.DEEP_OCEAN, 0x000030, Color.BLUE, Luminosity.DARK, null); - add(Biome.STONY_SHORE, 0xA2A284, Color.GREEN, Luminosity.DARK, null); - add(Biome.SNOWY_BEACH, 0xFAF0C0, Color.YELLOW, Luminosity.LIGHT, null); - add(Biome.BIRCH_FOREST, 0x307444, Color.GREEN, Luminosity.LIGHT, null); - add(Biome.DARK_FOREST, 0x40511A, Color.GREEN, Luminosity.DARK, null); - add(Biome.SNOWY_TAIGA, 0x31554A, Color.BLUE, Luminosity.LIGHT, null); - add(Biome.OLD_GROWTH_PINE_TAIGA, 0x596651, Color.ORANGE, Luminosity.LIGHT, null); - add(Biome.WINDSWEPT_FOREST, 0x507050, Color.MONOCHROME, Luminosity.BRIGHT, null); - add(Biome.SAVANNA, 0xBDB25F, Color.GREEN, Luminosity.LIGHT, null); - add(Biome.SAVANNA_PLATEAU, 0xA79D64, Color.GREEN, Luminosity.LIGHT, null); - add(Biome.BADLANDS, 0xD94515, Color.ORANGE, Luminosity.BRIGHT, SaturationType.MEDIUM); - add(Biome.WOODED_BADLANDS, 0xB09765, Color.ORANGE, Luminosity.BRIGHT, SaturationType.HIGH); - add(Biome.SMALL_END_ISLANDS, 0xff1a8c, Color.PURPLE, Luminosity.BRIGHT, SaturationType.MEDIUM); - add(Biome.END_MIDLANDS, 0x8080FF, Color.YELLOW, Luminosity.LIGHT, SaturationType.LOW); - add(Biome.END_HIGHLANDS, 0x8080FF, Color.PURPLE, Luminosity.LIGHT, SaturationType.LOW); - add(Biome.END_BARRENS, 0x8080FF, Color.PURPLE, Luminosity.LIGHT, SaturationType.MEDIUM); - add(Biome.WARM_OCEAN, 0x0000AC, Color.BLUE, Luminosity.BRIGHT, SaturationType.LOW); - add(Biome.LUKEWARM_OCEAN, 0x000090, Color.BLUE, Luminosity.BRIGHT, SaturationType.MEDIUM); - add(Biome.COLD_OCEAN, 0x202070, Color.BLUE, Luminosity.BRIGHT, SaturationType.HIGH); - add(Biome.DEEP_LUKEWARM_OCEAN, 0x000040, Color.BLUE, Luminosity.DARK, SaturationType.MEDIUM); - add(Biome.DEEP_COLD_OCEAN, 0x202038, Color.BLUE, Luminosity.DARK, SaturationType.HIGH); - add(Biome.DEEP_FROZEN_OCEAN, 0x404090, Color.BLUE, Luminosity.LIGHT, SaturationType.LOW); - add(Biome.THE_VOID, 0x000000, Color.MONOCHROME, Luminosity.DARK, null); - add(Biome.SUNFLOWER_PLAINS, 0xB5DB88, Color.GREEN, Luminosity.LIGHT, SaturationType.LOW); - add(Biome.WINDSWEPT_GRAVELLY_HILLS, 0x789878, Color.MONOCHROME, Luminosity.LIGHT, null); - add(Biome.FLOWER_FOREST, 0x2D8E49, Color.RED, Luminosity.LIGHT, SaturationType.LOW); - add(Biome.ICE_SPIKES, 0xB4DCDC, Color.BLUE, Luminosity.LIGHT, SaturationType.LOW); - add(Biome.OLD_GROWTH_BIRCH_FOREST, 0x589C6C, Color.GREEN, Luminosity.LIGHT, null); - add(Biome.OLD_GROWTH_SPRUCE_TAIGA, 0x818E79, Color.ORANGE, Luminosity.DARK, SaturationType.HIGH); - add(Biome.WINDSWEPT_SAVANNA, 0xE5DA87, Color.ORANGE, Luminosity.LIGHT, SaturationType.HIGH); - add(Biome.ERODED_BADLANDS, 0xFF6D3D, Color.ORANGE, Luminosity.LIGHT, SaturationType.HIGH); - add(Biome.BAMBOO_JUNGLE, 0x768E14, Color.GREEN, Luminosity.BRIGHT, SaturationType.HIGH); - add(Biome.SOUL_SAND_VALLEY, 0x5E3830, Color.BLUE, Luminosity.BRIGHT, SaturationType.MEDIUM); - add(Biome.CRIMSON_FOREST, 0xDD0808, Color.RED, Luminosity.DARK, SaturationType.HIGH); - add(Biome.WARPED_FOREST, 0x49907B, Color.BLUE, Luminosity.BRIGHT, null); - add(Biome.BASALT_DELTAS, 0x403636, Color.MONOCHROME, Luminosity.DARK, null); - add(Biome.DRIPSTONE_CAVES, 0xcc6600, Color.ORANGE, Luminosity.BRIGHT, SaturationType.MEDIUM); - add(Biome.LUSH_CAVES, 0x003300, Color.GREEN, Luminosity.BRIGHT, SaturationType.MEDIUM); - add(Biome.MEADOW, 0xff00ff, Color.BLUE, Luminosity.BRIGHT, SaturationType.LOW); - add(Biome.GROVE, 0x80ff80, Color.GREEN, Luminosity.BRIGHT, SaturationType.MEDIUM); - add(Biome.SNOWY_SLOPES, 0x00ffff, Color.BLUE, Luminosity.BRIGHT, SaturationType.MEDIUM); - add(Biome.FROZEN_PEAKS, 0xA0A0A0, Color.MONOCHROME, Luminosity.LIGHT, null); - add(Biome.JAGGED_PEAKS, 0x3d7bc2, Color.MONOCHROME, Luminosity.BRIGHT, SaturationType.MEDIUM); - add(Biome.STONY_PEAKS, 0x888888, Color.MONOCHROME, Luminosity.LIGHT, null); - add(Biome.CUSTOM, 0xffffff, Color.MONOCHROME, Luminosity.DARK, SaturationType.MONOCHROME); - - } - - - private static void add(Biome biome, int color, Color randomColor, Luminosity luminosity, SaturationType saturation) { - BIOME_HEX.put(biome, color); - BIOME_COLOR.put(biome, randomColor); - if (luminosity != null) BIOME_LUMINOSITY.put(biome, luminosity); - if (saturation != null) BIOME_SATURATION.put(biome, saturation); - BIOME_IDs.put(biome, (short) biome.ordinal()); - } - - private static void add(Biome biome, int color, Color randomColor, Luminosity luminosity) { - add(biome, color, randomColor, luminosity, null); - } - - public static int getColor(Biome biome) { - return BIOME_HEX.get(biome); - } - - public static Color getColorType(Biome biome) { - return BIOME_COLOR.get(biome); - } - - public static Luminosity getColorLuminosity(Biome biome) { - return BIOME_LUMINOSITY.get(biome); - } - - public static SaturationType getColorSaturatiom(Biome biome) { - return BIOME_SATURATION.get(biome); - } - - public static short getId(Biome biome) { - return BIOME_IDs.get(biome); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/data/Varint.java b/core/src/main/java/com/volmit/iris/util/data/Varint.java deleted file mode 100644 index 9a276e68d..000000000 --- a/core/src/main/java/com/volmit/iris/util/data/Varint.java +++ /dev/null @@ -1,224 +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 com.volmit.iris.util.data; - -import java.io.DataInput; -import java.io.DataOutput; -import java.io.IOException; - -/** - *

Encodes signed and unsigned values using a common variable-length - * scheme, found for example in - * - * Google's Protocol Buffers. It uses fewer bytes to encode smaller values, - * but will use slightly more bytes to encode large values.

- *

- *

Signed values are further encoded using so-called zig-zag encoding - * in order to make them "compatible" with variable-length encoding.

- */ -public final class Varint { - - private Varint() { - } - - /** - * Encodes a value using the variable-length encoding from - * - * Google Protocol Buffers. It uses zig-zag encoding to efficiently - * encode signed values. If values are known to be nonnegative, - * {@link #writeUnsignedVarLong(long, DataOutput)} should be used. - * - * @param value value to encode - * @param out to writeNodeData bytes to - * @throws IOException if {@link DataOutput} throws {@link IOException} - */ - public static void writeSignedVarLong(long value, DataOutput out) throws IOException { - // Great trick from http://code.google.com/apis/protocolbuffers/docs/encoding.html#types - writeUnsignedVarLong((value << 1) ^ (value >> 63), out); - } - - /** - * Encodes a value using the variable-length encoding from - * - * Google Protocol Buffers. Zig-zag is not used, so input must not be negative. - * If values can be negative, use {@link #writeSignedVarLong(long, DataOutput)} - * instead. This method treats negative input as like a large unsigned value. - * - * @param value value to encode - * @param out to writeNodeData bytes to - * @throws IOException if {@link DataOutput} throws {@link IOException} - */ - public static void writeUnsignedVarLong(long value, DataOutput out) throws IOException { - while ((value & 0xFFFFFFFFFFFFFF80L) != 0L) { - out.writeByte(((int) value & 0x7F) | 0x80); - value >>>= 7; - } - out.writeByte((int) value & 0x7F); - } - - /** - * @see #writeSignedVarLong(long, DataOutput) - */ - public static void writeSignedVarInt(int value, DataOutput out) throws IOException { - // Great trick from http://code.google.com/apis/protocolbuffers/docs/encoding.html#types - writeUnsignedVarInt((value << 1) ^ (value >> 31), out); - } - - /** - * @see #writeUnsignedVarLong(long, DataOutput) - */ - public static void writeUnsignedVarInt(int value, DataOutput out) throws IOException { - while ((value & 0xFFFFFF80) != 0L) { - out.writeByte((value & 0x7F) | 0x80); - value >>>= 7; - } - out.writeByte(value & 0x7F); - } - - public static byte[] writeSignedVarInt(int value) { - // Great trick from http://code.google.com/apis/protocolbuffers/docs/encoding.html#types - return writeUnsignedVarInt((value << 1) ^ (value >> 31)); - } - - /** - * @see #writeUnsignedVarLong(long, DataOutput) - *

- * This one does not use streams and is much faster. - * Makes a single object each time, and that object is a primitive array. - */ - public static byte[] writeUnsignedVarInt(int value) { - byte[] byteArrayList = new byte[10]; - int i = 0; - while ((value & 0xFFFFFF80) != 0L) { - byteArrayList[i++] = ((byte) ((value & 0x7F) | 0x80)); - value >>>= 7; - } - byteArrayList[i] = ((byte) (value & 0x7F)); - byte[] out = new byte[i + 1]; - for (; i >= 0; i--) { - out[i] = byteArrayList[i]; - } - return out; - } - - /** - * @param in to read bytes from - * @return decode value - * @throws IOException if {@link DataInput} throws {@link IOException} - * @throws IllegalArgumentException if variable-length value does not terminate - * after 9 bytes have been read - * @see #writeSignedVarLong(long, DataOutput) - */ - public static long readSignedVarLong(DataInput in) throws IOException { - long raw = readUnsignedVarLong(in); - // This undoes the trick in writeSignedVarLong() - long temp = (((raw << 63) >> 63) ^ raw) >> 1; - // This extra step lets us deal with the largest signed values by treating - // negative results from read unsigned methods as like unsigned values - // Must re-flip the top bit if the original read value had it set. - return temp ^ (raw & (1L << 63)); - } - - /** - * @param in to read bytes from - * @return decode value - * @throws IOException if {@link DataInput} throws {@link IOException} - * @throws IllegalArgumentException if variable-length value does not terminate - * after 9 bytes have been read - * @see #writeUnsignedVarLong(long, DataOutput) - */ - public static long readUnsignedVarLong(DataInput in) throws IOException { - long value = 0L; - int i = 0; - long b; - while (((b = in.readByte()) & 0x80L) != 0) { - value |= (b & 0x7F) << i; - i += 7; - if (i > 63) { - throw new IllegalArgumentException("Variable length quantity is too long"); - } - } - return value | (b << i); - } - - /** - * @throws IllegalArgumentException if variable-length value does not terminate - * after 5 bytes have been read - * @throws IOException if {@link DataInput} throws {@link IOException} - * @see #readSignedVarLong(DataInput) - */ - public static int readSignedVarInt(DataInput in) throws IOException { - int raw = readUnsignedVarInt(in); - // This undoes the trick in writeSignedVarInt() - int temp = (((raw << 31) >> 31) ^ raw) >> 1; - // This extra step lets us deal with the largest signed values by treating - // negative results from read unsigned methods as like unsigned values. - // Must re-flip the top bit if the original read value had it set. - return temp ^ (raw & (1 << 31)); - } - - /** - * @throws IllegalArgumentException if variable-length value does not terminate - * after 5 bytes have been read - * @throws IOException if {@link DataInput} throws {@link IOException} - * @see #readUnsignedVarLong(DataInput) - */ - public static int readUnsignedVarInt(DataInput in) throws IOException { - int value = 0; - int i = 0; - int b; - while (((b = in.readByte()) & 0x80) != 0) { - value |= (b & 0x7F) << i; - i += 7; - if (i > 35) { - throw new IllegalArgumentException("Variable length quantity is too long"); - } - } - return value | (b << i); - } - - public static int readSignedVarInt(byte[] bytes) { - int raw = readUnsignedVarInt(bytes); - // This undoes the trick in writeSignedVarInt() - int temp = (((raw << 31) >> 31) ^ raw) >> 1; - // This extra step lets us deal with the largest signed values by treating - // negative results from read unsigned methods as like unsigned values. - // Must re-flip the top bit if the original read value had it set. - return temp ^ (raw & (1 << 31)); - } - - public static int readUnsignedVarInt(byte[] bytes) { - int value = 0; - int i = 0; - byte rb = Byte.MIN_VALUE; - for (byte b : bytes) { - rb = b; - if ((b & 0x80) == 0) { - break; - } - value |= (b & 0x7f) << i; - i += 7; - if (i > 35) { - throw new IllegalArgumentException("Variable length quantity is too long"); - } - } - return value | (rb << i); - } - -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/data/WeightMap.java b/core/src/main/java/com/volmit/iris/util/data/WeightMap.java deleted file mode 100644 index 7ab3d0a6f..000000000 --- a/core/src/main/java/com/volmit/iris/util/data/WeightMap.java +++ /dev/null @@ -1,63 +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 com.volmit.iris.util.data; - -import com.volmit.iris.util.collection.KMap; - -public class WeightMap extends KMap { - private static final long serialVersionUID = 87558033900969389L; - private boolean modified = false; - private double lastWeight = 0; - - public double getPercentChance(T t) { - if (totalWeight() <= 0) { - return 0; - } - - return getWeight(t) / totalWeight(); - } - - public void clear() { - modified = true; - } - - public WeightMap setWeight(T t, double weight) { - modified = true; - put(t, weight); - - return this; - } - - public double getWeight(T t) { - return get(t); - } - - public double totalWeight() { - if (!modified) { - return lastWeight; - } - - modified = false; - Shrinkwrap s = new Shrinkwrap<>(0D); - forEachKey(Integer.MAX_VALUE, (d) -> s.set(s.get() + 1)); - lastWeight = s.get(); - - return lastWeight; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/data/WeightedRandom.java b/core/src/main/java/com/volmit/iris/util/data/WeightedRandom.java deleted file mode 100644 index ba6cf07a6..000000000 --- a/core/src/main/java/com/volmit/iris/util/data/WeightedRandom.java +++ /dev/null @@ -1,69 +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 com.volmit.iris.util.data; - -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KeyPair; - -import java.util.Random; - -public class WeightedRandom { - - private final KList> weightedObjects = new KList<>(); - private final Random random; - private int totalWeight = 0; - - public WeightedRandom(Random random) { - this.random = random; - } - - public WeightedRandom() { - this.random = new Random(); - } - - public void put(T object, int weight) { - weightedObjects.add(new KeyPair<>(object, weight)); - totalWeight += weight; - } - - public WeightedRandom merge(WeightedRandom other) { - weightedObjects.addAll(other.weightedObjects); - totalWeight += other.totalWeight; - return this; - } - - public T pullRandom() { - int pull = random.nextInt(totalWeight); - int index = 0; - while (pull > 0) { - pull -= weightedObjects.get(index).getV(); - if (pull <= 0) break; - index++; - } - return weightedObjects.get(index).getK(); - } - - public int getSize() { - return weightedObjects.size(); - } - - public void shuffle() { - weightedObjects.shuffle(random); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/data/Writable.java b/core/src/main/java/com/volmit/iris/util/data/Writable.java deleted file mode 100644 index 9386e0fac..000000000 --- a/core/src/main/java/com/volmit/iris/util/data/Writable.java +++ /dev/null @@ -1,29 +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 com.volmit.iris.util.data; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -public interface Writable { - void write(DataOutputStream o) throws IOException; - - void read(DataInputStream i) throws IOException; -} diff --git a/core/src/main/java/com/volmit/iris/util/decree/DecreeContext.java b/core/src/main/java/com/volmit/iris/util/decree/DecreeContext.java deleted file mode 100644 index b19fe32f4..000000000 --- a/core/src/main/java/com/volmit/iris/util/decree/DecreeContext.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 com.volmit.iris.util.decree; - -import com.volmit.iris.util.plugin.VolmitSender; - -public class DecreeContext { - private static final ThreadLocal context = new ThreadLocal<>(); - - public static VolmitSender get() { - return context.get(); - } - - public static void touch(VolmitSender c) { - context.set(c); - } - - public static void remove() { - context.remove(); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/decree/DecreeContextHandler.java b/core/src/main/java/com/volmit/iris/util/decree/DecreeContextHandler.java deleted file mode 100644 index faa2a29b3..000000000 --- a/core/src/main/java/com/volmit/iris/util/decree/DecreeContextHandler.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 com.volmit.iris.util.decree; - -import com.volmit.iris.Iris; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.plugin.VolmitSender; - -public interface DecreeContextHandler { - KMap, DecreeContextHandler> contextHandlers = buildContextHandlers(); - - static KMap, DecreeContextHandler> buildContextHandlers() { - KMap, DecreeContextHandler> contextHandlers = new KMap<>(); - - try { - Iris.initialize("com.volmit.iris.util.decree.context").forEach((i) - -> contextHandlers.put(((DecreeContextHandler) i).getType(), (DecreeContextHandler) i)); - } catch (Throwable e) { - Iris.reportError(e); - e.printStackTrace(); - } - - return contextHandlers; - } - - Class getType(); - - T handle(VolmitSender sender); -} diff --git a/core/src/main/java/com/volmit/iris/util/decree/DecreeNode.java b/core/src/main/java/com/volmit/iris/util/decree/DecreeNode.java deleted file mode 100644 index 488108699..000000000 --- a/core/src/main/java/com/volmit/iris/util/decree/DecreeNode.java +++ /dev/null @@ -1,99 +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 com.volmit.iris.util.decree; - -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.decree.annotations.Decree; -import com.volmit.iris.util.decree.annotations.Param; -import lombok.Data; - -import java.lang.reflect.Method; -import java.lang.reflect.Parameter; - -@Data -public class DecreeNode { - private final Method method; - private final Object instance; - private final Decree decree; - - public DecreeNode(Object instance, Method method) { - this.instance = instance; - this.method = method; - this.decree = method.getDeclaredAnnotation(Decree.class); - if (decree == null) { - throw new RuntimeException("Cannot instantiate DecreeNode on method " + method.getName() + " in " + method.getDeclaringClass().getCanonicalName() + " not annotated by @Decree"); - } - } - - /** - * Get the parameters of this decree node - * - * @return The list of parameters if ALL are annotated by @{@link Param}, else null - */ - public KList getParameters() { - KList required = new KList<>(); - KList optional = new KList<>(); - - for (Parameter i : method.getParameters()) { - DecreeParameter p = new DecreeParameter(i); - if (p.isRequired()) { - required.add(p); - } else { - optional.add(p); - } - } - - required.addAll(optional); - - return required; - } - - public String getName() { - return decree.name().isEmpty() ? method.getName() : decree.name(); - } - - public DecreeOrigin getOrigin() { - return decree.origin(); - } - - public String getDescription() { - return decree.description().isEmpty() ? Decree.DEFAULT_DESCRIPTION : decree.description(); - } - - public KList getNames() { - KList d = new KList<>(); - d.add(getName()); - - for (String i : decree.aliases()) { - if (i.isEmpty()) { - continue; - } - - d.add(i); - } - - - d.removeDuplicates(); - return d; - } - - public boolean isSync() { - return decree.sync(); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/decree/DecreeOrigin.java b/core/src/main/java/com/volmit/iris/util/decree/DecreeOrigin.java deleted file mode 100644 index 5c09e0790..000000000 --- a/core/src/main/java/com/volmit/iris/util/decree/DecreeOrigin.java +++ /dev/null @@ -1,44 +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 com.volmit.iris.util.decree; - -import com.volmit.iris.util.plugin.VolmitSender; - -public enum DecreeOrigin { - PLAYER, - CONSOLE, - /** - * Both the player and the console - */ - BOTH; - - /** - * Check if the origin is valid for a sender - * - * @param sender The sender to check - * @return True if valid for origin - */ - public boolean validFor(VolmitSender sender) { - if (sender.isPlayer()) { - return this.equals(PLAYER) || this.equals(BOTH); - } else { - return this.equals(CONSOLE) || this.equals(BOTH); - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/decree/DecreeParameter.java b/core/src/main/java/com/volmit/iris/util/decree/DecreeParameter.java deleted file mode 100644 index 3a977f87b..000000000 --- a/core/src/main/java/com/volmit/iris/util/decree/DecreeParameter.java +++ /dev/null @@ -1,116 +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 com.volmit.iris.util.decree; - -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.decree.annotations.Param; -import com.volmit.iris.util.decree.exceptions.DecreeParsingException; -import com.volmit.iris.util.decree.specialhandlers.DummyHandler; -import lombok.Data; - -import java.lang.reflect.Parameter; - -@Data -public class DecreeParameter { - private final Parameter parameter; - private final Param param; - private transient final AtomicCache> handlerCache = new AtomicCache<>(); - - public DecreeParameter(Parameter parameter) { - this.parameter = parameter; - this.param = parameter.getDeclaredAnnotation(Param.class); - if (param == null) { - throw new RuntimeException("Cannot instantiate DecreeParameter on " + parameter.getName() + " in method " + parameter.getDeclaringExecutable().getName() + "(...) in class " + parameter.getDeclaringExecutable().getDeclaringClass().getCanonicalName() + " not annotated by @Param"); - } - } - - public DecreeParameterHandler getHandler() { - return handlerCache.aquire(() -> { - try { - if (param.customHandler().equals(DummyHandler.class)) { - return DecreeSystem.getHandler(getType()); - } - - return param.customHandler().getConstructor().newInstance(); - } catch (Throwable e) { - e.printStackTrace(); - } - - return null; - }); - } - - public Class getType() { - return parameter.getType(); - } - - public String getName() { - return param.name().isEmpty() ? parameter.getName() : param.name(); - } - - public String getDescription() { - return param.description().isEmpty() ? Param.DEFAULT_DESCRIPTION : param.description(); - } - - public boolean isRequired() { - return !hasDefault(); - } - - public KList getNames() { - KList d = new KList<>(); - - for (String i : param.aliases()) { - if (i.isEmpty()) { - continue; - } - - d.add(i); - } - - d.add(getName()); - d.removeDuplicates(); - - return d; - } - - public Object getDefaultValue() throws DecreeParsingException { - return param.defaultValue().trim().isEmpty() ? null : getHandler().parse(param.defaultValue().trim(), true); - } - - public boolean hasDefault() { - return !param.defaultValue().trim().isEmpty(); - } - - public String example() { - KList ff = getHandler().getPossibilities(); - ff = ff != null ? ff : new KList<>(); - KList f = ff.convert((i) -> getHandler().toStringForce(i)); - if (f.isEmpty()) { - f = new KList<>(); - f.add(getHandler().getRandomDefault()); - } - - return f.getRandom(); - } - - public boolean isContextual() { - return param.contextual(); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/decree/DecreeParameterHandler.java b/core/src/main/java/com/volmit/iris/util/decree/DecreeParameterHandler.java deleted file mode 100644 index 097361799..000000000 --- a/core/src/main/java/com/volmit/iris/util/decree/DecreeParameterHandler.java +++ /dev/null @@ -1,162 +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 com.volmit.iris.util.decree; - -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.decree.exceptions.DecreeParsingException; - -import java.util.concurrent.atomic.AtomicReference; - -public interface DecreeParameterHandler extends DecreeExecutor { - /** - * Should return the possible values for this type - * - * @return Possibilities for this type. - */ - KList getPossibilities(); - - default boolean isDummy() { - return false; - } - - /** - * Converting the type back to a string (inverse of the {@link #parse(String) parse} method) - * - * @param t The input of the designated type to convert to a String - * @return The resulting string - */ - String toString(T t); - - /** - * Forces conversion to the designated type before converting to a string using {@link #toString(T t)} - * - * @param t The object to convert to string (that should be of this type) - * @return The resulting string. - */ - default String toStringForce(Object t) { - return toString((T) t); - } - - /** - * Should parse a String into the designated type - * - * @param in The string to parse - * @return The value extracted from the string, of the designated type - * @throws DecreeParsingException Thrown when the parsing fails (ex: "oop" translated to an integer throws this) - */ - default T parse(String in) throws DecreeParsingException { - return parse(in, false); - } - - /** - * Should parse a String into the designated type. You can force it to not throw a whichexception - * - * @param in The string to parse - * @param force force an option instead of throwing decreewhich - * @return The value extracted from the string, of the designated type - * @throws DecreeParsingException Thrown when the parsing fails (ex: "oop" translated to an integer throws this) - */ - T parse(String in, boolean force) throws DecreeParsingException; - - /** - * Returns whether a certain type is supported by this handler
- * - * @param type The type to check - * @return True if supported, false if not - */ - boolean supports(Class type); - - /** - * The possible entries for the inputted string (support for autocomplete on partial entries) - * - * @param input The inputted string to check against - * @return A {@link KList} of possibilities - */ - default KList getPossibilities(String input) { - if (input.trim().isEmpty()) { - KList f = getPossibilities(); - return f == null ? new KList<>() : f; - } - - input = input.trim(); - KList possible = getPossibilities(); - KList matches = new KList<>(); - - if (possible == null || possible.isEmpty()) { - return matches; - } - - if (input.isEmpty()) { - return getPossibilities(); - } - - KList converted = possible.convert(v -> toString(v).trim()); - - for (int i = 0; i < converted.size(); i++) { - String g = converted.get(i); - // if - // G == I or - // I in G or - // G in I - if (g.equalsIgnoreCase(input) || g.toLowerCase().contains(input.toLowerCase()) || input.toLowerCase().contains(g.toLowerCase())) { - matches.add(possible.get(i)); - } - } - - return matches; - } - - default String getRandomDefault() { - return "NOEXAMPLE"; - } - - default double getMultiplier(AtomicReference g) { - double multiplier = 1; - String in = g.get(); - boolean valid = true; - while (valid) { - boolean trim = false; - if (in.toLowerCase().endsWith("k")) { - multiplier *= 1000; - trim = true; - } else if (in.toLowerCase().endsWith("m")) { - multiplier *= 1000000; - trim = true; - } else if (in.toLowerCase().endsWith("h")) { - multiplier *= 100; - trim = true; - } else if (in.toLowerCase().endsWith("c")) { - multiplier *= 16; - trim = true; - } else if (in.toLowerCase().endsWith("r")) { - multiplier *= (16 * 32); - trim = true; - } else { - valid = false; - } - - if (trim) { - in = in.substring(0, in.length() - 1); - } - } - - g.set(in); - return multiplier; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/decree/annotations/Decree.java b/core/src/main/java/com/volmit/iris/util/decree/annotations/Decree.java deleted file mode 100644 index 37b6324ef..000000000 --- a/core/src/main/java/com/volmit/iris/util/decree/annotations/Decree.java +++ /dev/null @@ -1,72 +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 com.volmit.iris.util.decree.annotations; - -import com.volmit.iris.util.decree.DecreeOrigin; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Retention(RetentionPolicy.RUNTIME) -@Target({ElementType.METHOD, ElementType.TYPE}) -public @interface Decree { - - String DEFAULT_DESCRIPTION = "No Description Provided"; - - /** - * The name of this command, which is the Method's name by default - */ - String name() default ""; - - /** - * Only allow if studio mode is enabled - * - * @return defaults to false - */ - boolean studio() default false; - - /** - * If the node's functions MUST be run in sync, set this to true.
- * Defaults to false - */ - boolean sync() default false; - - /** - * The description of this command.
- * Is {@link #DEFAULT_DESCRIPTION} by default - */ - String description() default DEFAULT_DESCRIPTION; - - /** - * The origin this command must come from.
- * Must be elements of the {@link DecreeOrigin} enum
- * By default, is {@link DecreeOrigin#BOTH}, meaning both console & player can send the command - */ - DecreeOrigin origin() default DecreeOrigin.BOTH; - - /** - * The aliases of this parameter (instead of just the {@link #name() name} (if specified) or Method Name (name of - * method))
- * Can be initialized as just a string (ex. "alias") or as an array (ex. {"alias1", "alias2"})
- * If someone uses /plugin foo and you specify alias="f" here, /plugin f will do the exact same. - */ - String[] aliases() default ""; -} diff --git a/core/src/main/java/com/volmit/iris/util/decree/annotations/Param.java b/core/src/main/java/com/volmit/iris/util/decree/annotations/Param.java deleted file mode 100644 index 382cc42f3..000000000 --- a/core/src/main/java/com/volmit/iris/util/decree/annotations/Param.java +++ /dev/null @@ -1,69 +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 com.volmit.iris.util.decree.annotations; - -import com.volmit.iris.util.decree.DecreeParameterHandler; -import com.volmit.iris.util.decree.specialhandlers.DummyHandler; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Retention(RetentionPolicy.RUNTIME) -@Target(ElementType.PARAMETER) -public @interface Param { - String DEFAULT_DESCRIPTION = "No Description Provided"; - - /** - * The main name of this command.
- * Required parameter.
- * This is what is used in game, alongside any (if specified) {@link #aliases() aliases} - */ - String name() default ""; - - /** - * The description of this parameter, used in help-popups in game.
- * The default value is {@link #DEFAULT_DESCRIPTION} - */ - String description() default DEFAULT_DESCRIPTION; - - /** - * The default value for this argument.
- * The entered string is parsed to the value similarly to how commandline-text would be.
- * Which indicates the variable MUST be defined by the person running the command.
- * If you define this, the variable automatically becomes non-required, but can still be set. - */ - String defaultValue() default ""; - - /** - * The aliases of this parameter (instead of just the {@link #name() name} (if specified) or Method Name (name of - * method))
- * Can be initialized as just a string (ex. "alias") or as an array (ex. {"alias1", "alias2"})
- * If someone uses /plugin foo bar=baz and you specify alias="b" here, /plugin foo b=baz will do the exact same. - */ - String[] aliases() default ""; - - /** - * Attempts to dynamically pull context from the player, default data or something else for supported types - */ - boolean contextual() default false; - - Class> customHandler() default DummyHandler.class; -} diff --git a/core/src/main/java/com/volmit/iris/util/decree/context/WorldContextHandler.java b/core/src/main/java/com/volmit/iris/util/decree/context/WorldContextHandler.java deleted file mode 100644 index f340b716d..000000000 --- a/core/src/main/java/com/volmit/iris/util/decree/context/WorldContextHandler.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 com.volmit.iris.util.decree.context; - -import com.volmit.iris.util.decree.DecreeContextHandler; -import com.volmit.iris.util.plugin.VolmitSender; -import org.bukkit.World; - -public class WorldContextHandler implements DecreeContextHandler { - public Class getType() { - return World.class; - } - - public World handle(VolmitSender sender) { - return sender.isPlayer() ? sender.player().getWorld() : null; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/decree/exceptions/DecreeParsingException.java b/core/src/main/java/com/volmit/iris/util/decree/exceptions/DecreeParsingException.java deleted file mode 100644 index 01c02c231..000000000 --- a/core/src/main/java/com/volmit/iris/util/decree/exceptions/DecreeParsingException.java +++ /dev/null @@ -1,28 +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 com.volmit.iris.util.decree.exceptions; - -/** - * Thrown when a decree parameter is parsed, but parsing fails - */ -public class DecreeParsingException extends Exception { - public DecreeParsingException(String message) { - super(message); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/decree/handlers/BlockVectorHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/BlockVectorHandler.java deleted file mode 100644 index 468050126..000000000 --- a/core/src/main/java/com/volmit/iris/util/decree/handlers/BlockVectorHandler.java +++ /dev/null @@ -1,110 +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 com.volmit.iris.util.decree.handlers; - -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.decree.DecreeContext; -import com.volmit.iris.util.decree.DecreeParameterHandler; -import com.volmit.iris.util.decree.DecreeSystem; -import com.volmit.iris.util.decree.exceptions.DecreeParsingException; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.plugin.VolmitSender; -import org.bukkit.FluidCollisionMode; -import org.bukkit.entity.Player; -import org.bukkit.util.BlockVector; - -public class BlockVectorHandler implements DecreeParameterHandler { - @Override - public KList getPossibilities() { - KList vx = new KList<>(); - VolmitSender s = DecreeContext.get(); - - if (s.isPlayer()) { - vx.add(s.player().getLocation().toVector().toBlockVector()); - } - - return vx; - } - - @Override - public String toString(BlockVector v) { - if (v.getY() == 0) { - return Form.f(v.getBlockX(), 2) + "," + Form.f(v.getBlockZ(), 2); - } - - return Form.f(v.getBlockX(), 2) + "," + Form.f(v.getBlockY(), 2) + "," + Form.f(v.getBlockZ(), 2); - } - - @Override - public BlockVector parse(String in, boolean force) throws DecreeParsingException { - try { - if (in.contains(",")) { - String[] comp = in.split("\\Q,\\E"); - - if (comp.length == 2) { - return new BlockVector(Integer.parseInt(comp[0].trim()), 0, Integer.parseInt(comp[1].trim())); - } else if (comp.length == 3) { - return new BlockVector(Integer.parseInt(comp[0].trim()), - Integer.parseInt(comp[1].trim()), - Integer.parseInt(comp[2].trim())); - } else { - throw new DecreeParsingException("Could not parse components for vector. You have " + comp.length + " components. Expected 2 or 3."); - } - } else if (in.equalsIgnoreCase("here") || in.equalsIgnoreCase("me") || in.equalsIgnoreCase("self")) { - if (!DecreeContext.get().isPlayer()) { - throw new DecreeParsingException("You cannot specify me,self,here as a console."); - } - - return DecreeContext.get().player().getLocation().toVector().toBlockVector(); - } else if (in.equalsIgnoreCase("look") || in.equalsIgnoreCase("cursor") || in.equalsIgnoreCase("crosshair")) { - if (!DecreeContext.get().isPlayer()) { - throw new DecreeParsingException("You cannot specify look,cursor,crosshair as a console."); - } - - return DecreeContext.get().player().getTargetBlockExact(256, FluidCollisionMode.NEVER).getLocation().toVector().toBlockVector(); - } else if (in.trim().toLowerCase().startsWith("player:")) { - String v = in.trim().split("\\Q:\\E")[1]; - - - KList px = DecreeSystem.getHandler(Player.class).getPossibilities(v); - - if (px != null && px.isNotEmpty()) { - return ((Player) px.get(0)).getLocation().toVector().toBlockVector(); - } else if (px == null || px.isEmpty()) { - throw new DecreeParsingException("Cannot find player: " + v); - } - } - } catch (Throwable e) { - throw new DecreeParsingException("Unable to get Vector for \"" + in + "\" because of an uncaught exception: " + e); - } - - return null; - } - - @Override - public boolean supports(Class type) { - return type.equals(BlockVector.class); - } - - @Override - public String getRandomDefault() { - return M.r(0.5) ? "0,0" : "0,0,0"; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/decree/handlers/BooleanHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/BooleanHandler.java deleted file mode 100644 index 5109425d9..000000000 --- a/core/src/main/java/com/volmit/iris/util/decree/handlers/BooleanHandler.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 com.volmit.iris.util.decree.handlers; - -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.decree.DecreeParameterHandler; -import com.volmit.iris.util.decree.exceptions.DecreeParsingException; -import com.volmit.iris.util.math.M; - -public class BooleanHandler implements DecreeParameterHandler { - @Override - public KList getPossibilities() { - return null; - } - - @Override - public String toString(Boolean aByte) { - return aByte.toString(); - } - - @Override - public Boolean parse(String in, boolean force) throws DecreeParsingException { - try { - if (in.equals("null") || in.equals("other") || in.equals("flip")) { - return null; - } - return Boolean.parseBoolean(in); - } catch (Throwable e) { - throw new DecreeParsingException("Unable to parse boolean \"" + in + "\""); - } - } - - @Override - public boolean supports(Class type) { - return type.equals(Boolean.class) || type.equals(boolean.class); - } - - @Override - public String getRandomDefault() { - return M.r(0.5) + ""; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/decree/handlers/ByteHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/ByteHandler.java deleted file mode 100644 index 9c4257529..000000000 --- a/core/src/main/java/com/volmit/iris/util/decree/handlers/ByteHandler.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 com.volmit.iris.util.decree.handlers; - -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.decree.DecreeParameterHandler; -import com.volmit.iris.util.decree.exceptions.DecreeParsingException; -import com.volmit.iris.util.math.RNG; - -public class ByteHandler implements DecreeParameterHandler { - @Override - public KList getPossibilities() { - return null; - } - - @Override - public String toString(Byte aByte) { - return aByte.toString(); - } - - @Override - public Byte parse(String in, boolean force) throws DecreeParsingException { - try { - return Byte.parseByte(in); - } catch (Throwable e) { - throw new DecreeParsingException("Unable to parse byte \"" + in + "\""); - } - } - - @Override - public boolean supports(Class type) { - return type.equals(Byte.class) || type.equals(byte.class); - } - - @Override - public String getRandomDefault() { - return RNG.r.i(0, Byte.MAX_VALUE) + ""; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/decree/handlers/DoubleHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/DoubleHandler.java deleted file mode 100644 index 1918c6292..000000000 --- a/core/src/main/java/com/volmit/iris/util/decree/handlers/DoubleHandler.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 com.volmit.iris.util.decree.handlers; - -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.decree.DecreeParameterHandler; -import com.volmit.iris.util.decree.exceptions.DecreeParsingException; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.math.RNG; - -import java.util.concurrent.atomic.AtomicReference; - -public class DoubleHandler implements DecreeParameterHandler { - @Override - public KList getPossibilities() { - return null; - } - - @Override - public Double parse(String in, boolean force) throws DecreeParsingException { - try { - AtomicReference r = new AtomicReference<>(in); - double m = getMultiplier(r); - return Double.parseDouble(r.get()) * m; - } catch (Throwable e) { - throw new DecreeParsingException("Unable to parse double \"" + in + "\""); - } - } - - @Override - public boolean supports(Class type) { - return type.equals(Double.class) || type.equals(double.class); - } - - @Override - public String toString(Double f) { - return f.toString(); - } - - @Override - public String getRandomDefault() { - return Form.f(RNG.r.d(0, 99.99), 1) + ""; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/decree/handlers/FloatHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/FloatHandler.java deleted file mode 100644 index f4085e64f..000000000 --- a/core/src/main/java/com/volmit/iris/util/decree/handlers/FloatHandler.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 com.volmit.iris.util.decree.handlers; - -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.decree.DecreeParameterHandler; -import com.volmit.iris.util.decree.exceptions.DecreeParsingException; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.math.RNG; - -import java.util.concurrent.atomic.AtomicReference; - -public class FloatHandler implements DecreeParameterHandler { - @Override - public KList getPossibilities() { - return null; - } - - @Override - public Float parse(String in, boolean force) throws DecreeParsingException { - try { - AtomicReference r = new AtomicReference<>(in); - double m = getMultiplier(r); - return (float) (Float.parseFloat(r.get()) * m); - } catch (Throwable e) { - throw new DecreeParsingException("Unable to parse float \"" + in + "\""); - } - } - - @Override - public boolean supports(Class type) { - return type.equals(Float.class) || type.equals(float.class); - } - - @Override - public String toString(Float f) { - return f.toString(); - } - - @Override - public String getRandomDefault() { - return Form.f(RNG.r.d(0, 99.99), 1) + ""; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/decree/handlers/IntegerHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/IntegerHandler.java deleted file mode 100644 index c8579b9b0..000000000 --- a/core/src/main/java/com/volmit/iris/util/decree/handlers/IntegerHandler.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 com.volmit.iris.util.decree.handlers; - -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.decree.DecreeParameterHandler; -import com.volmit.iris.util.decree.exceptions.DecreeParsingException; -import com.volmit.iris.util.math.RNG; - -import java.util.concurrent.atomic.AtomicReference; - -public class IntegerHandler implements DecreeParameterHandler { - @Override - public KList getPossibilities() { - return null; - } - - @Override - public Integer parse(String in, boolean force) throws DecreeParsingException { - try { - AtomicReference r = new AtomicReference<>(in); - double m = getMultiplier(r); - return (int) (Integer.valueOf(r.get()).doubleValue() * m); - } catch (Throwable e) { - throw new DecreeParsingException("Unable to parse integer \"" + in + "\""); - } - } - - @Override - public boolean supports(Class type) { - return type.equals(Integer.class) || type.equals(int.class); - } - - @Override - public String toString(Integer f) { - return f.toString(); - } - - @Override - public String getRandomDefault() { - return RNG.r.i(0, 99) + ""; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/decree/handlers/LongHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/LongHandler.java deleted file mode 100644 index d973bc7ea..000000000 --- a/core/src/main/java/com/volmit/iris/util/decree/handlers/LongHandler.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 com.volmit.iris.util.decree.handlers; - -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.decree.DecreeParameterHandler; -import com.volmit.iris.util.decree.exceptions.DecreeParsingException; -import com.volmit.iris.util.math.RNG; - -import java.util.concurrent.atomic.AtomicReference; - -public class LongHandler implements DecreeParameterHandler { - @Override - public KList getPossibilities() { - return null; - } - - @Override - public Long parse(String in, boolean force) throws DecreeParsingException { - try { - AtomicReference r = new AtomicReference<>(in); - double m = getMultiplier(r); - if (m == 1) - return Long.parseLong(r.get()); - else - return (long) (Long.valueOf(r.get()).doubleValue() * m); - } catch (Throwable e) { - throw new DecreeParsingException("Unable to parse long \"" + in + "\""); - } - } - - @Override - public boolean supports(Class type) { - return type.equals(Long.class) || type.equals(long.class); - } - - @Override - public String toString(Long f) { - return f.toString(); - } - - @Override - public String getRandomDefault() { - return RNG.r.i(0, 99) + ""; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/decree/handlers/PlayerHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/PlayerHandler.java deleted file mode 100644 index b0ff00ec8..000000000 --- a/core/src/main/java/com/volmit/iris/util/decree/handlers/PlayerHandler.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 com.volmit.iris.util.decree.handlers; - -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.decree.DecreeParameterHandler; -import com.volmit.iris.util.decree.exceptions.DecreeParsingException; -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; - -import java.util.ArrayList; -import java.util.stream.Collectors; - -public class PlayerHandler implements DecreeParameterHandler { - @Override - public KList getPossibilities() { - return new KList<>(new ArrayList<>(Bukkit.getOnlinePlayers())); - } - - @Override - public String toString(Player player) { - return player.getName(); - } - - @Override - public Player parse(String in, boolean force) throws DecreeParsingException { - KList options = getPossibilities(in); - - if (options.isEmpty()) { - throw new DecreeParsingException("Unable to find Player \"" + in + "\""); - } - try { - return options.stream().filter((i) -> toString(i).equalsIgnoreCase(in)).collect(Collectors.toList()).get(0); - } catch (Throwable e) { - throw new DecreeParsingException("Unable to filter which Player \"" + in + "\""); - } - } - - @Override - public boolean supports(Class type) { - return type.equals(Player.class); - } - - @Override - public String getRandomDefault() { - return "playername"; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/decree/handlers/ShortHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/ShortHandler.java deleted file mode 100644 index 5d7cb6eaa..000000000 --- a/core/src/main/java/com/volmit/iris/util/decree/handlers/ShortHandler.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 com.volmit.iris.util.decree.handlers; - -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.decree.DecreeParameterHandler; -import com.volmit.iris.util.decree.exceptions.DecreeParsingException; -import com.volmit.iris.util.math.RNG; - -import java.util.concurrent.atomic.AtomicReference; - -public class ShortHandler implements DecreeParameterHandler { - @Override - public KList getPossibilities() { - return null; - } - - @Override - public Short parse(String in, boolean force) throws DecreeParsingException { - try { - AtomicReference r = new AtomicReference<>(in); - double m = getMultiplier(r); - return (short) (Short.valueOf(r.get()).doubleValue() * m); - } catch (Throwable e) { - throw new DecreeParsingException("Unable to parse short \"" + in + "\""); - } - } - - @Override - public boolean supports(Class type) { - return type.equals(Short.class) || type.equals(short.class); - } - - @Override - public String toString(Short f) { - return f.toString(); - } - - @Override - public String getRandomDefault() { - return RNG.r.i(0, 99) + ""; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/decree/handlers/StringHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/StringHandler.java deleted file mode 100644 index c4c6bf236..000000000 --- a/core/src/main/java/com/volmit/iris/util/decree/handlers/StringHandler.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 com.volmit.iris.util.decree.handlers; - -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.decree.DecreeParameterHandler; -import com.volmit.iris.util.decree.exceptions.DecreeParsingException; - -/** - * Abstraction can sometimes breed stupidity - */ -public class StringHandler implements DecreeParameterHandler { - @Override - public KList getPossibilities() { - return null; - } - - @Override - public String toString(String s) { - return s; - } - - @Override - public String parse(String in, boolean force) throws DecreeParsingException { - return in; - } - - @Override - public boolean supports(Class type) { - return type.equals(String.class); - } - - @Override - public String getRandomDefault() { - return new KList().qadd("text").qadd("string") - .qadd("blah").qadd("derp").qadd("yolo").getRandom(); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/decree/handlers/VectorHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/VectorHandler.java deleted file mode 100644 index b8c63c853..000000000 --- a/core/src/main/java/com/volmit/iris/util/decree/handlers/VectorHandler.java +++ /dev/null @@ -1,111 +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 com.volmit.iris.util.decree.handlers; - -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.decree.DecreeContext; -import com.volmit.iris.util.decree.DecreeParameterHandler; -import com.volmit.iris.util.decree.DecreeSystem; -import com.volmit.iris.util.decree.exceptions.DecreeParsingException; -import com.volmit.iris.util.format.Form; -import org.bukkit.FluidCollisionMode; -import org.bukkit.entity.Player; -import org.bukkit.util.BlockVector; -import org.bukkit.util.Vector; - -public class VectorHandler implements DecreeParameterHandler { - - private static final KList randoms = new KList<>( - "here", - "0,0,0", - "0,0", - "look", - "player:" - ); - - @Override - public KList getPossibilities() { - return null; - } - - @Override - public String toString(Vector v) { - if (v.getY() == 0) { - return Form.f(v.getX(), 2) + "," + Form.f(v.getZ(), 2); - } - - return Form.f(v.getX(), 2) + "," + Form.f(v.getY(), 2) + "," + Form.f(v.getZ(), 2); - } - - @Override - public Vector parse(String in, boolean force) throws DecreeParsingException { - try { - if (in.contains(",")) { - String[] comp = in.split("\\Q,\\E"); - - if (comp.length == 2) { - return new BlockVector(Double.parseDouble(comp[0].trim()), 0, Double.parseDouble(comp[1].trim())); - } else if (comp.length == 3) { - return new BlockVector(Double.parseDouble(comp[0].trim()), - Double.parseDouble(comp[1].trim()), - Double.parseDouble(comp[2].trim())); - } else { - throw new DecreeParsingException("Could not parse components for vector. You have " + comp.length + " components. Expected 2 or 3."); - } - } else if (in.equalsIgnoreCase("here") || in.equalsIgnoreCase("me") || in.equalsIgnoreCase("self")) { - if (!DecreeContext.get().isPlayer()) { - throw new DecreeParsingException("You cannot specify me,self,here as a console."); - } - - return DecreeContext.get().player().getLocation().toVector(); - } else if (in.equalsIgnoreCase("look") || in.equalsIgnoreCase("cursor") || in.equalsIgnoreCase("crosshair")) { - if (!DecreeContext.get().isPlayer()) { - throw new DecreeParsingException("You cannot specify look,cursor,crosshair as a console."); - } - - return DecreeContext.get().player().getTargetBlockExact(256, FluidCollisionMode.NEVER).getLocation().toVector(); - } else if (in.trim().toLowerCase().startsWith("player:")) { - String v = in.trim().split("\\Q:\\E")[1]; - - - KList px = DecreeSystem.getHandler(Player.class).getPossibilities(v); - - if (px != null && px.isNotEmpty()) { - return ((Player) px.get(0)).getLocation().toVector(); - } else if (px == null || px.isEmpty()) { - throw new DecreeParsingException("Cannot find player: " + v); - } - } - } catch (Throwable e) { - throw new DecreeParsingException("Unable to get Vector for \"" + in + "\" because of an uncaught exception: " + e); - } - - return null; - } - - @Override - public boolean supports(Class type) { - return type.equals(Vector.class); - } - - @Override - public String getRandomDefault() { - return randoms.getRandom(); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/decree/handlers/WorldHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/WorldHandler.java deleted file mode 100644 index 658ba6939..000000000 --- a/core/src/main/java/com/volmit/iris/util/decree/handlers/WorldHandler.java +++ /dev/null @@ -1,69 +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 com.volmit.iris.util.decree.handlers; - -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.decree.DecreeParameterHandler; -import com.volmit.iris.util.decree.exceptions.DecreeParsingException; -import org.bukkit.Bukkit; -import org.bukkit.World; - -import java.util.stream.Collectors; - -public class WorldHandler implements DecreeParameterHandler { - @Override - public KList getPossibilities() { - KList options = new KList<>(); - for (World world : Bukkit.getWorlds()) { - if (!world.getName().toLowerCase().startsWith("iris/")) { - options.add(world); - } - } - return options; - } - - @Override - public String toString(World world) { - return world.getName(); - } - - @Override - public World parse(String in, boolean force) throws DecreeParsingException { - KList options = getPossibilities(in); - - if (options.isEmpty()) { - throw new DecreeParsingException("Unable to find World \"" + in + "\""); - } - try { - return options.stream().filter((i) -> toString(i).equalsIgnoreCase(in)).collect(Collectors.toList()).get(0); - } catch (Throwable e) { - throw new DecreeParsingException("Unable to filter which World \"" + in + "\""); - } - } - - @Override - public boolean supports(Class type) { - return type.equals(World.class); - } - - @Override - public String getRandomDefault() { - return "world"; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/decree/specialhandlers/DummyHandler.java b/core/src/main/java/com/volmit/iris/util/decree/specialhandlers/DummyHandler.java deleted file mode 100644 index 9491f7588..000000000 --- a/core/src/main/java/com/volmit/iris/util/decree/specialhandlers/DummyHandler.java +++ /dev/null @@ -1,49 +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 com.volmit.iris.util.decree.specialhandlers; - -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.decree.DecreeParameterHandler; -import com.volmit.iris.util.decree.exceptions.DecreeParsingException; - -public class DummyHandler implements DecreeParameterHandler { - @Override - public KList getPossibilities() { - return null; - } - - public boolean isDummy() { - return true; - } - - @Override - public String toString(Object o) { - return null; - } - - @Override - public Object parse(String in, boolean force) throws DecreeParsingException { - return null; - } - - @Override - public boolean supports(Class type) { - return false; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/decree/specialhandlers/NullablePlayerHandler.java b/core/src/main/java/com/volmit/iris/util/decree/specialhandlers/NullablePlayerHandler.java deleted file mode 100644 index 3c7567140..000000000 --- a/core/src/main/java/com/volmit/iris/util/decree/specialhandlers/NullablePlayerHandler.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.volmit.iris.util.decree.specialhandlers; - -import com.volmit.iris.util.decree.exceptions.DecreeParsingException; -import com.volmit.iris.util.decree.handlers.PlayerHandler; -import org.bukkit.entity.Player; - -public class NullablePlayerHandler extends PlayerHandler { - - @Override - public Player parse(String in, boolean force) throws DecreeParsingException { - return getPossibilities(in).stream().filter((i) -> toString(i).equalsIgnoreCase(in)).findFirst().orElse(null); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/documentation/BlockCoordinates.java b/core/src/main/java/com/volmit/iris/util/documentation/BlockCoordinates.java deleted file mode 100644 index e0e6b66e6..000000000 --- a/core/src/main/java/com/volmit/iris/util/documentation/BlockCoordinates.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 com.volmit.iris.util.documentation; - -/** - * This method expects coords in block - */ -public @interface BlockCoordinates { - -} diff --git a/core/src/main/java/com/volmit/iris/util/documentation/ChunkCoordinates.java b/core/src/main/java/com/volmit/iris/util/documentation/ChunkCoordinates.java deleted file mode 100644 index 64a1a38b4..000000000 --- a/core/src/main/java/com/volmit/iris/util/documentation/ChunkCoordinates.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 com.volmit.iris.util.documentation; - -/** - * This method expects blocks in chunk coordinates - */ -public @interface ChunkCoordinates { - -} diff --git a/core/src/main/java/com/volmit/iris/util/documentation/ChunkRelativeBlockCoordinates.java b/core/src/main/java/com/volmit/iris/util/documentation/ChunkRelativeBlockCoordinates.java deleted file mode 100644 index e5d86a9f9..000000000 --- a/core/src/main/java/com/volmit/iris/util/documentation/ChunkRelativeBlockCoordinates.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 com.volmit.iris.util.documentation; - -/** - * This method expects coords in block - */ -public @interface ChunkRelativeBlockCoordinates { - -} diff --git a/core/src/main/java/com/volmit/iris/util/documentation/Exclusive.java b/core/src/main/java/com/volmit/iris/util/documentation/Exclusive.java deleted file mode 100644 index c7202aab4..000000000 --- a/core/src/main/java/com/volmit/iris/util/documentation/Exclusive.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.volmit.iris.util.documentation; - -/** - * This Argument is exclusive - */ -public @interface Exclusive { -} diff --git a/core/src/main/java/com/volmit/iris/util/documentation/Inclusive.java b/core/src/main/java/com/volmit/iris/util/documentation/Inclusive.java deleted file mode 100644 index 5e4f27599..000000000 --- a/core/src/main/java/com/volmit/iris/util/documentation/Inclusive.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.volmit.iris.util.documentation; - -/** - * This Argument is inclusive - */ -public @interface Inclusive { -} diff --git a/core/src/main/java/com/volmit/iris/util/documentation/RegionCoordinates.java b/core/src/main/java/com/volmit/iris/util/documentation/RegionCoordinates.java deleted file mode 100644 index 9d07a39e1..000000000 --- a/core/src/main/java/com/volmit/iris/util/documentation/RegionCoordinates.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 com.volmit.iris.util.documentation; - -/** - * This method expects coordinates in region coords - */ -public @interface RegionCoordinates { - -} diff --git a/core/src/main/java/com/volmit/iris/util/exceptions/IrisException.java b/core/src/main/java/com/volmit/iris/util/exceptions/IrisException.java deleted file mode 100644 index 187bcc3d0..000000000 --- a/core/src/main/java/com/volmit/iris/util/exceptions/IrisException.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 com.volmit.iris.util.exceptions; - -public class IrisException extends Exception { - public IrisException() { - super(); - } - - public IrisException(String message) { - super(message); - } - - public IrisException(Throwable message) { - super(message); - } - - public IrisException(String message, Throwable e) { - super(message, e); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/exceptions/MissingDimensionException.java b/core/src/main/java/com/volmit/iris/util/exceptions/MissingDimensionException.java deleted file mode 100644 index 368d2d09d..000000000 --- a/core/src/main/java/com/volmit/iris/util/exceptions/MissingDimensionException.java +++ /dev/null @@ -1,29 +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 com.volmit.iris.util.exceptions; - -public class MissingDimensionException extends IrisException { - public MissingDimensionException() { - super(); - } - - public MissingDimensionException(String message) { - super(message); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/format/Form.java b/core/src/main/java/com/volmit/iris/util/format/Form.java deleted file mode 100644 index bb2e7ec27..000000000 --- a/core/src/main/java/com/volmit/iris/util/format/Form.java +++ /dev/null @@ -1,1233 +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 com.volmit.iris.util.format; - -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.math.RollingSequence; - -import java.math.BigInteger; -import java.text.DecimalFormat; -import java.text.NumberFormat; -import java.util.*; -import java.util.Map.Entry; -import java.util.concurrent.TimeUnit; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -public class Form { - private static final String[] NAMES = new String[]{"Thousand", "Million", "Billion", "Trillion", "Quadrillion", "Quintillion", "Sextillion", "Septillion", "Octillion", "Nonillion", "Decillion", "Undecillion", "Duodecillion", "Tredecillion", "Quattuordecillion", "Quindecillion", "Sexdecillion", "Septendecillion", "Octodecillion", "Novemdecillion", "Vigintillion",}; - private static final BigInteger THOUSAND = BigInteger.valueOf(1000); - private static final NavigableMap MAP; - private static NumberFormat NF; - private static DecimalFormat DF; - - static { - MAP = new TreeMap<>(); - for (int i = 0; i < NAMES.length; i++) { - MAP.put(THOUSAND.pow(i + 1), NAMES[i]); - } - } - - public static String getNumberSuffixThStRd(int day) { - if (day >= 11 && day <= 13) { - return Form.f(day) + "th"; - } - return switch (day % 10) { - case 1 -> Form.f(day) + "st"; - case 2 -> Form.f(day) + "nd"; - case 3 -> Form.f(day) + "rd"; - default -> Form.f(day) + "th"; - }; - } - - private static void instantiate() { - if (NF == null) { - NF = NumberFormat.getInstance(Locale.US); - } - } - - /** - * Scroll text - * - * @param smx the text - * @param viewport the viewport length - * @param time the timeline value - */ - public static String scroll(String smx, int viewport, long time) { - String src = Form.repeat(" ", viewport) + smx + Form.repeat(" ", viewport); - int len = src.length(); - int walk = (int) (time % (len - viewport)); - String base = src.substring(walk, M.min(walk + viewport, len - 1)); - base = base.length() < viewport ? base + Form.repeat(" ", (viewport - base.length()) - 3) : base; - - return base; - } - - /** - * Capitalize the first letter - * - * @param s the string - * @return the capitalized string - */ - public static String capitalize(String s) { - StringBuilder roll = new StringBuilder(); - boolean f = true; - - for (Character i : s.trim().toCharArray()) { - if (f) { - roll.append(Character.toUpperCase(i)); - f = false; - } else { - roll.append(i); - } - } - - return roll.toString(); - } - - /** - * Capitalize all words in the string - * - * @param s the string - * @return the capitalized string - */ - public static String capitalizeWords(String s) { - StringBuilder rollx = new StringBuilder(); - - for (String i : s.trim().split(" ")) { - rollx.append(" ").append(capitalize(i.trim())); - } - - return rollx.substring(1); - } - - /** - * Hard word wrap - * - * @param s the words - * @param len the length per line - * @return the wrapped string - */ - public static String wrap(String s, int len) { - return wrap(s, len, null, false); - } - - /** - * Soft Word wrap - * - * @param s the string - * @param len the length to wrap - * @return the wrapped string - */ - public static String wrapWords(String s, int len) { - return wrap(s, len, null, true); - } - - /** - * Wrap words - * - * @param s the string - * @param len the wrap length - * @param newLineSep the new line seperator - * @param soft should it be soft wrapped or hard wrapped? - * @return the wrapped words - */ - public static String wrap(String s, int len, String newLineSep, boolean soft) { - return wrap(s, len, newLineSep, soft, " "); - } - - public static String hardWrap(String s, int len) { - StringBuilder ss = new StringBuilder(); - - for (int i = 0; i < s.length(); i += len) { - if (i + len > s.length()) { - ss.append(s, i, s.length()); - break; - } - - ss.append(s, i, i + len).append("\n"); - } - - return ss.toString(); - } - - public static List hardWrapList(String s, int len) { - List l = new ArrayList<>(); - for (int i = 0; i < s.length(); i += len) { - if (i + len > s.length()) { - l.add(s.substring(i)); - break; - } - - l.add(s.substring(i, i + len)); - } - - return l; - } - - - /** - * Wrap words - * - * @param s the string - * @param len the length - * @param newLineSep the new line seperator - * @param soft soft or hard wrapping - * @param regex the regex - * @return the wrapped string - */ - public static String wrap(String s, int len, String newLineSep, boolean soft, String regex) { - if (s == null) { - return null; - } else { - if (newLineSep == null) { - newLineSep = "\n"; - } - - if (len < 1) { - len = 1; - } - - if (regex.trim().equals("")) { - regex = " "; - } - - Pattern arg4 = Pattern.compile(regex); - int arg5 = s.length(); - int arg6 = 0; - StringBuilder arg7 = new StringBuilder(arg5 + 32); - - while (arg6 < arg5) { - int arg8 = -1; - Matcher arg9 = arg4.matcher(s.substring(arg6, Math.min(arg6 + len + 1, arg5))); - if (arg9.find()) { - if (arg9.start() == 0) { - arg6 += arg9.end(); - continue; - } - - arg8 = arg9.start(); - } - - if (arg5 - arg6 <= len) { - break; - } - - while (arg9.find()) { - arg8 = arg9.start() + arg6; - } - - if (arg8 >= arg6) { - arg7.append(s, arg6, arg8); - arg7.append(newLineSep); - arg6 = arg8 + 1; - } else if (soft) { - arg7.append(s, arg6, len + arg6); - arg7.append(newLineSep); - arg6 += len; - } else { - arg9 = arg4.matcher(s.substring(arg6 + len)); - if (arg9.find()) { - arg8 = arg9.start() + arg6 + len; - } - - if (arg8 >= 0) { - arg7.append(s, arg6, arg8); - arg7.append(newLineSep); - arg6 = arg8 + 1; - } else { - arg7.append(s.substring(arg6)); - arg6 = arg5; - } - } - } - - arg7.append(s.substring(arg6)); - return arg7.toString(); - } - } - - /** - * Returns a fancy duration up to Years - * - * @param duration the duration in ms - * @return the fancy duration - */ - public static String duration(RollingSequence rollingSequence, long duration) { - String suffix = "Millisecond"; - double phantom = duration; - int div = 1000; - - if (phantom > div) { - phantom /= div; - suffix = "Second"; - div = 60; - - if (phantom > div) { - phantom /= div; - suffix = "Minute"; - - if (phantom > div) { - phantom /= div; - suffix = "Hour"; - div = 24; - - if (phantom > 24) { - phantom /= div; - suffix = "Day"; - div = 7; - - if (phantom > div) { - phantom /= div; - suffix = "Week"; - div = 4; - - if (phantom > div) { - phantom /= div; - suffix = "Month"; - div = 12; - - //noinspection IfStatementWithIdenticalBranches - if (phantom > div) { - phantom /= div; - suffix = "Year"; - return Form.fd(phantom, 0) + " " + suffix + ((int) phantom == 1 ? "" : "s"); - } else { - return Form.fd(phantom, 0) + " " + suffix + ((int) phantom == 1 ? "" : "s"); - } - } else { - return Form.fd(phantom, 0) + " " + suffix + ((int) phantom == 1 ? "" : "s"); - } - } else { - return Form.fd(phantom, 0) + " " + suffix + ((int) phantom == 1 ? "" : "s"); - } - } else { - return Form.fd(phantom, 0) + " " + suffix + ((int) phantom == 1 ? "" : "s"); - } - } else { - return Form.fd(phantom, 0) + " " + suffix + ((int) phantom == 1 ? "" : "s"); - } - } else { - return Form.fd(phantom, 0) + " " + suffix + ((int) phantom == 1 ? "" : "s"); - } - } else { - return "Under a Second"; - } - } - - /** - * Fixes the minute issue with formatting - * - * @param c the calendar - * @return the minute string - */ - public static String fmin(Calendar c) { - String s = c.get(Calendar.MINUTE) + ""; - if (s.length() == 1) { - return "0" + s; - } - - return s; - } - - /** - * Get a fancy time stamp - * - * @param time the stamp in time (ago) - * @return the fancy stamp in time (ago) - */ - public static String ago(long time) { - long current = M.ms(); - - if (time > current - TimeUnit.SECONDS.toMillis(30) && time < current) { - return "Just Now"; - } else if (time > current - TimeUnit.SECONDS.toMillis(60) && time < current) { - return "Seconds Ago"; - } else if (time > current - TimeUnit.MINUTES.toMillis(10) && time < current) { - return "Minutes Ago"; - } else { - Calendar now = Calendar.getInstance(); - Calendar c = Calendar.getInstance(); - c.setTimeInMillis(time); - boolean sameYear = now.get(Calendar.YEAR) == c.get(Calendar.YEAR); - boolean sameDay = now.get(Calendar.DAY_OF_YEAR) == c.get(Calendar.DAY_OF_YEAR); - - if (sameDay) { - int h = c.get(Calendar.HOUR); - h = h == 0 ? 12 : h; - - return "Today at " + h + ":" + fmin(c) + " " + (c.get(Calendar.AM_PM) == Calendar.PM ? "PM" : "AM"); - } else if (sameYear) { - boolean yesterday = now.get(Calendar.DAY_OF_YEAR) - 1 == c.get(Calendar.DAY_OF_YEAR); - - if (yesterday) { - int h = c.get(Calendar.HOUR); - h = h == 0 ? 12 : h; - - return "Yesterday at " + h + ":" + fmin(c) + " " + (c.get(Calendar.AM_PM) == Calendar.PM ? "PM" : "AM"); - } else { - int h = c.get(Calendar.HOUR); - h = h == 0 ? 12 : h; - String dow = switch (c.get(Calendar.DAY_OF_WEEK)) { - case Calendar.SUNDAY -> "Sunday"; - case Calendar.MONDAY -> "Monday"; - case Calendar.TUESDAY -> "Tuesday"; - case Calendar.WEDNESDAY -> "Wednesday"; - case Calendar.THURSDAY -> "Thursday"; - case Calendar.FRIDAY -> "Friday"; - case Calendar.SATURDAY -> "Saturday"; - default -> "Error Day"; - }; - - String monthName = "Error Month"; - int month = c.get(Calendar.MONTH); - - switch (month) { - case Calendar.JANUARY -> monthName = "Jan"; - case Calendar.FEBRUARY -> monthName = "Feb"; - case Calendar.MARCH -> monthName = "Mar"; - case Calendar.APRIL -> monthName = "Apr"; - case Calendar.MAY -> monthName = "May"; - case Calendar.JUNE -> monthName = "Jun"; - case Calendar.JULY -> monthName = "Jul"; - case Calendar.AUGUST -> monthName = "Aug"; - case Calendar.SEPTEMBER -> monthName = "Sep"; - case Calendar.OCTOBER -> monthName = "Oct"; - case Calendar.NOVEMBER -> monthName = "Nov"; - case Calendar.DECEMBER -> monthName = "Dec"; - } - - int dayOfMonth = c.get(Calendar.DAY_OF_MONTH); - String suffix = numberSuffix(dayOfMonth); - - return dow + ", " + monthName + " " + suffix + " at " + h + ":" + fmin(c) + " " + (c.get(Calendar.AM_PM) == Calendar.PM ? "PM" : "AM"); - } - } else { - int h = c.get(Calendar.HOUR); - h = h == 0 ? 12 : h; - String dow = switch (c.get(Calendar.DAY_OF_WEEK)) { - case Calendar.SUNDAY -> "Sunday"; - case Calendar.MONDAY -> "Monday"; - case Calendar.TUESDAY -> "Tuesday"; - case Calendar.WEDNESDAY -> "Wednesday"; - case Calendar.THURSDAY -> "Thursday"; - case Calendar.FRIDAY -> "Friday"; - case Calendar.SATURDAY -> "Saturday"; - default -> "Error Day"; - }; - - String monthName = "Error Month"; - int month = c.get(Calendar.MONTH); - - switch (month) { - case Calendar.JANUARY -> monthName = "Jan"; - case Calendar.FEBRUARY -> monthName = "Feb"; - case Calendar.MARCH -> monthName = "Mar"; - case Calendar.APRIL -> monthName = "Apr"; - case Calendar.MAY -> monthName = "May"; - case Calendar.JUNE -> monthName = "Jun"; - case Calendar.JULY -> monthName = "Jul"; - case Calendar.AUGUST -> monthName = "Aug"; - case Calendar.SEPTEMBER -> monthName = "Sep"; - case Calendar.OCTOBER -> monthName = "Oct"; - case Calendar.NOVEMBER -> monthName = "Nov"; - case Calendar.DECEMBER -> monthName = "Dec"; - } - - int dayOfMonth = c.get(Calendar.DAY_OF_MONTH); - String suffix = numberSuffix(dayOfMonth); - int year = c.get(Calendar.YEAR); - - return year + ", " + dow + ", " + monthName + " " + suffix + " at " + h + ":" + fmin(c) + " " + (c.get(Calendar.AM_PM) == Calendar.PM ? "PM" : "AM"); - } - } - } - - /** - * Get the suffix for a number i.e. 1st 2nd 3rd - * - * @param i the number - * @return the suffix - */ - public static String numberSuffix(int i) { - String[] sufixes = new String[]{"th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th"}; - return switch (i % 100) { - case 11, 12, 13 -> i + "th"; - default -> i + sufixes[i % 10]; - }; - } - - /** - * Get a high accuracy but limited range duration (accurate up to a couple - * minutes) - * - * @param ms the milliseconds (double) - * @param prec the precision (decimal format) - * @return the formatted string - */ - public static String duration(double ms, int prec) { - if (ms < 1000.0) { - return Form.f(ms, prec) + "ms"; - } - - if (ms / 1000.0 < 60.0) { - return Form.f(ms / 1000.0, prec) + "s"; - } - - if (ms / 1000.0 / 60.0 < 60.0) { - return Form.f(ms / 1000.0 / 60.0, prec) + "m"; - } - - if (ms / 1000.0 / 60.0 / 60.0 < 24.0) { - return Form.f(ms / 1000.0 / 60.0 / 60.0, prec) + " hours"; - } - - if (ms / 1000.0 / 60.0 / 60.0 / 24.0 < 7) { - return Form.f(ms / 1000.0 / 60.0 / 24.0, prec) + " days"; - } - - return Form.f(ms, prec) + "ms"; - } - - public static String duration(long ms) { - return duration(ms, 0); - } - - /** - * Get a duration from milliseconds up to days - * - * @param ms the ms - * @param prec the precision (decimal format) - * @return the formatted string - */ - public static String duration(long ms, int prec) { - if (ms < 1000.0) { - return Form.f(ms, prec) + "ms"; - } - - if (ms / 1000.0 < 60.0) { - return Form.f(ms / 1000.0, prec) + " seconds"; - } - - if (ms / 1000.0 / 60.0 < 60.0) { - return Form.f(ms / 1000.0 / 60.0, prec) + " minutes"; - } - - if (ms / 1000.0 / 60.0 / 60.0 < 24.0) { - return Form.f(ms / 1000.0 / 60.0 / 60.0, prec) + " hours"; - } - - if (ms / 1000.0 / 60.0 / 60.0 / 24.0 < 7) { - return Form.f(ms / 1000.0 / 60.0 / 60.0 / 24.0, prec) + " days"; - } - - return Form.f(ms, prec) + "ms"; - } - - /** - * Format a big value - * - * @param i the number - * @return the full value in string - */ - public static String b(int i) { - return b(new BigInteger(String.valueOf(i))); - } - - /** - * Format a big value - * - * @param i the number - * @return the full value in string - */ - public static String b(long i) { - return b(new BigInteger(String.valueOf(i))); - } - - /** - * Format a big value - * - * @param i the number - * @return the full value in string - */ - public static String b(double i) { - return b(new BigInteger(String.valueOf((long) i))); - } - - /** - * Format a big number - * - * @param number the big number - * @return the value in string - */ - public static String b(BigInteger number) { - Entry entry = MAP.floorEntry(number); - if (entry == null) { - return "Nearly nothing"; - } - - BigInteger key = entry.getKey(); - BigInteger d = key.divide(THOUSAND); - BigInteger m = number.divide(d); - float f = m.floatValue() / 1000.0f; - float rounded = ((int) (f * 100.0)) / 100.0f; - - if (rounded % 1 == 0) { - return ((int) rounded) + " " + entry.getValue(); - } - - return rounded + " " + entry.getValue(); - } - - /** - * Calculate a fancy string representation of a file size. Adds a suffix of B, - * KB, MB, GB, or TB - * - * @param s the size (in bytes) - * @return the string - */ - public static String fileSize(long s) { - return ofSize(s, 1000); - } - - /** - * ":", "a", "b", "c" -> a:b:c - * - * @param splitter the splitter that goes in between - * @param strings the strings - * @return the result - */ - public static String split(String splitter, String... strings) { - StringBuilder b = new StringBuilder(); - - for (String i : strings) { - b.append(splitter); - b.append(i); - } - - return b.substring(splitter.length()); - } - - /** - * Calculate a fancy string representation of a file size. Adds a suffix of B, - * KB, MB, GB, or TB - * - * @param s the size (in bytes) - * @return the string - */ - public static String memSize(long s) { - return ofSize(s, 1024); - } - - public static String memSize(long s, int dec) { - return ofSize(s, 1024, dec); - } - - /** - * Get the timestamp of the time t (ms since 1970) - * - * @param t the time - * @return the stamp - */ - @SuppressWarnings("deprecation") - public static String stamp(long t) { - Date d = new Date(t); - return d.getMonth() + "-" + d.getDate() + "-" + (d.getYear() + 1900) + " " + d.getHours() + "h " + d.getMinutes() + "m " + d.getSeconds() + "s "; - } - - @SuppressWarnings("deprecation") - public static String stampTime(long t) { - Date d = new Date(t); - - return Calendar.getInstance().get(Calendar.HOUR_OF_DAY) + ":" + forceDoubleDigit(d.getMinutes()) + ":" + forceDoubleDigit(d.getSeconds()); - } - - public static String forceDoubleDigit(int dig) { - if (dig < 10) { - return "0" + dig; - } - - return dig + ""; - } - - @SuppressWarnings("deprecation") - public static String stampDay(long t) { - Date d = new Date(t); - return d.getMonth() + "-" + d.getDate() + "-" + (d.getYear() + 1900); - } - - /** - * Calculate a fancy string representation of a size in B, KB, MB, GB, or TB - * with a special divisor. The divisor decides how much goes up in the suffix - * chain. - * - * @param s the size (in bytes) - * @param div the divisor - * @return the string - */ - public static String ofSize(long s, int div) { - double d = (double) s; - String sub = " Bytes"; - - if (d > div - 1) { - d /= div; - sub = " KB"; - - if (d > div - 1) { - d /= div; - sub = " MB"; - - if (d > div - 1) { - d /= div; - sub = " GB"; - - if (d > div - 1) { - d /= div; - sub = " TB"; - } - } - } - } - - if (sub.equals("GB") || sub.equals("TB")) { - return Form.f(d, 1) + sub; - } else { - return Form.f(d, 0) + sub; - } - } - - /** - * Calculate a fancy string representation of a size in B, KB, MB, GB, or TB - * with a special divisor. The divisor decides how much goes up in the suffix - * chain. - * - * @param s the size (in bytes) - * @param div the divisor - * @param dec the decimal places - * @return the string - */ - public static String ofSize(long s, int div, int dec) { - double d = (double) s; - String sub = "Bytes"; - - if (d > div - 1) { - d /= div; - sub = "KB"; - - if (d > div - 1) { - d /= div; - sub = "MB"; - - if (d > div - 1) { - d /= div; - sub = "GB"; - - if (d > div - 1) { - d /= div; - sub = "TB"; - } - } - } - } - - return Form.f(d, dec) + " " + sub; - } - - /** - * Calculate a fancy string representation of a size in Grams, KG, MG, GG, TG - * with a special divisor. The divisor decides how much goes up in the suffix - * chain. - * - * @param s the size (in bytes) - * @param div the divisor - * @param dec the decimal places - * @return the string - */ - public static String ofSizeMetricWeight(long s, int div, int dec) { - boolean neg = s < 0; - if (neg) { - s = -s; - } - double d = (double) s; - String sub = "Grams"; - - if (d > div - 1) { - d /= div; - sub = "KG"; - - if (d > div - 1) { - d /= div; - sub = "MG"; - - if (d > div - 1) { - d /= div; - sub = "GG"; - - if (d > div - 1) { - d /= div; - sub = "TG"; - } - } - } - } - - return (neg ? "-" : "") + Form.f(d, dec) + " " + sub; - } - - /** - * Trim a string to a length, then append ... at the end if it extends the limit - * - * @param s the string - * @param l the limit - * @return the modified string - */ - public static String trim(String s, int l) { - if (s.length() <= l) { - return s; - } - - return s.substring(0, l) + "..."; - } - - /** - * Get a class name into a configuration/filename key For example, - * PhantomController.class is converted to phantom-controller - * - * @param clazz the class - * @return the string representation - */ - public static String cname(String clazz) { - StringBuilder codeName = new StringBuilder(); - - for (Character i : clazz.toCharArray()) { - if (Character.isUpperCase(i)) { - codeName.append("-").append(Character.toLowerCase(i)); - } else { - codeName.append(i); - } - } - - if (codeName.toString().startsWith("-")) { - codeName = new StringBuilder(codeName.substring(1)); - } - - return codeName.toString(); - } - - /** - * Get a formatted representation of the memory given in megabytes - * - * @param mb the megabytes - * @return the string representation with suffixes - */ - public static String mem(long mb) { - if (mb < 1024) { - return f(mb) + " MB"; - } else { - return f(((double) mb / (double) 1024), 1) + " GB"; - } - } - - /** - * Get a formatted representation of the memory given in kilobytes - * - * @return the string representation with suffixes - */ - public static String memx(long kb) { - if (kb < 1024) { - return fd(kb, 2) + " KB"; - } else { - double mb = (double) kb / 1024.0; - - if (mb < 1024) { - return fd(mb, 2) + " MB"; - } else { - double gb = mb / 1024.0; - - return fd(gb, 2) + " GB"; - } - } - } - - /** - * Format a long. Changes -10334 into -10,334 - * - * @param i the number - * @return the string representation of the number - */ - public static String f(long i) { - instantiate(); - return NF.format(i); - } - - /** - * Format a number. Changes -10334 into -10,334 - * - * @param i the number - * @return the string representation of the number - */ - public static String f(int i) { - instantiate(); - return NF.format(i); - } - - /** - * Formats a double's decimals to a limit - * - * @param i the double - * @param p the number of decimal places to use - * @return the formated string - */ - public static String f(double i, int p) { - String form = "#"; - - if (p > 0) { - form = form + "." + repeat("#", p); - } - - DF = new DecimalFormat(form); - - return DF.format(i).replaceAll("\\Q,\\E", "."); - } - - /** - * Formats a double's decimals to a limit, however, this will add zeros to the - * decimal places that dont need to be placed down. 2.4343 formatted with 6 - * decimals gets returned as 2.434300 - * - * @param i the double - * @param p the number of decimal places to use - * @return the formated string - */ - public static String fd(double i, int p) { - String form = "0"; - - if (p > 0) { - form = form + "." + repeat("0", p); - } - - DF = new DecimalFormat(form); - - return DF.format(i); - } - - /** - * Formats a float's decimals to a limit - * - * @param i the float - * @param p the number of decimal places to use - * @return the formated string - */ - public static String f(float i, int p) { - String form = "#"; - - if (p > 0) { - form = form + "." + repeat("#", p); - } - - DF = new DecimalFormat(form); - - return DF.format(i); - } - - /** - * Formats a double's decimals (one decimal point) - * - * @param i the double - */ - public static String f(double i) { - return f(i, 1); - } - - /** - * Formats a float's decimals (one decimal point) - * - * @param i the float - */ - public static String f(float i) { - return f(i, 1); - } - - /** - * Get a percent representation of a double and decimal places (0.53) would - * return 53% - * - * @param i the double - * @param p the number of decimal points - * @return a string - */ - public static String pc(double i, int p) { - return f(i * 100.0, p) + "%"; - } - - /** - * Get a percent representation of a float and decimal places (0.53) would - * return 53% - * - * @param i the float - * @param p the number of decimal points - * @return a string - */ - public static String pc(float i, int p) { - return f(i * 100, p) + "%"; - } - - /** - * Get a percent representation of a double and zero decimal places (0.53) would - * return 53% - * - * @param i the double - * @return a string - */ - public static String pc(double i) { - return f(i * 100, 0) + "%"; - } - - /** - * Get a percent representation of a float and zero decimal places (0.53) would - * return 53% - * - * @param i the double - * @return a string - */ - public static String pc(float i) { - return f(i * 100, 0) + "%"; - } - - /** - * Get a percent as the percent of i out of "of" with custom decimal places - * - * @param i the percent out of - * @param of of of - * @param p the decimal places - * @return the string - */ - public static String pc(int i, int of, int p) { - return f(100.0 * (((double) i) / ((double) of)), p) + "%"; - } - - /** - * Get a percent as the percent of i out of "of" - * - * @param i the percent out of - * @param of of of - * @return the string - */ - public static String pc(int i, int of) { - return pc(i, of, 0); - } - - /** - * Get a percent as the percent of i out of "of" with custom decimal places - * - * @param i the percent out of - * @param of of of - * @param p the decimal places - * @return the string - */ - public static String pc(long i, long of, int p) { - return f(100.0 * (((double) i) / ((double) of)), p) + "%"; - } - - /** - * Get a percent as the percent of i out of "of" - * - * @param i the percent out of - * @param of of of - * @return the string - */ - public static String pc(long i, long of) { - return pc(i, of, 0); - } - - /** - * Milliseconds to seconds (double) - * - * @param ms the milliseconds - * @return a formatted string to milliseconds - */ - public static String msSeconds(long ms) { - return f((double) ms / 1000.0); - } - - /** - * Milliseconds to seconds (double) custom decimals - * - * @param ms the milliseconds - * @param p number of decimal points - * @return a formatted string to milliseconds - */ - public static String msSeconds(long ms, int p) { - return f((double) ms / 1000.0, p); - } - - /** - * nanoseconds to seconds (double) - * - * @return a formatted string to nanoseconds - */ - public static String nsMs(long ns) { - return f((double) ns / 1000000.0); - } - - /** - * nanoseconds to seconds (double) custom decimals - * - * @param p number of decimal points - * @return a formatted string to nanoseconds - */ - public static String nsMs(long ns, int p) { - return f((double) ns / 1000000.0, p); - } - - /** - * nanoseconds to seconds (double) custom decimals - * - * @param p number of decimal points - * @return a formatted string to nanoseconds - */ - public static String nsMsd(long ns, int p) { - return fd((double) ns / 1000000.0, p); - } - - /** - * Get roman numeral representation of the int - * - * @param num the int - * @return the numerals - */ - public static String toRoman(int num) { - LinkedHashMap roman_numerals = new LinkedHashMap<>(); - - roman_numerals.put("M", 1000); - roman_numerals.put("CM", 900); - roman_numerals.put("D", 500); - roman_numerals.put("CD", 400); - roman_numerals.put("C", 100); - roman_numerals.put("XC", 90); - roman_numerals.put("L", 50); - roman_numerals.put("XL", 40); - roman_numerals.put("X", 10); - roman_numerals.put("IX", 9); - roman_numerals.put("V", 5); - roman_numerals.put("IV", 4); - roman_numerals.put("I", 1); - - StringBuilder res = new StringBuilder(); - - for (Map.Entry entry : roman_numerals.entrySet()) { - int matches = num / entry.getValue(); - - res.append(repeat(entry.getKey(), matches)); - num = num % entry.getValue(); - } - - return res.toString(); - } - - /** - * Get the number representation from roman numerals. - * - * @param number the roman number - * @return the int representation - */ - public static int fromRoman(String number) { - if (number.isEmpty()) { - return 0; - } - - number = number.toUpperCase(); - - if (number.startsWith("M")) { - return 1000 + fromRoman(number.substring(1)); - } - - if (number.startsWith("CM")) { - return 900 + fromRoman(number.substring(2)); - } - - if (number.startsWith("D")) { - return 500 + fromRoman(number.substring(1)); - } - - if (number.startsWith("CD")) { - return 400 + fromRoman(number.substring(2)); - } - - if (number.startsWith("C")) { - return 100 + fromRoman(number.substring(1)); - } - - if (number.startsWith("XC")) { - return 90 + fromRoman(number.substring(2)); - } - - if (number.startsWith("L")) { - return 50 + fromRoman(number.substring(1)); - } - - if (number.startsWith("XL")) { - return 40 + fromRoman(number.substring(2)); - } - - if (number.startsWith("X")) { - return 10 + fromRoman(number.substring(1)); - } - - if (number.startsWith("IX")) { - return 9 + fromRoman(number.substring(2)); - } - - if (number.startsWith("V")) { - return 5 + fromRoman(number.substring(1)); - } - - if (number.startsWith("IV")) { - return 4 + fromRoman(number.substring(2)); - } - - if (number.startsWith("I")) { - return 1 + fromRoman(number.substring(1)); - } - - return 0; - } - - /** - * Repeat a string - * - * @param s the string - * @param n the amount of times to repeat - * @return the repeated string - */ - @SuppressWarnings("StringRepeatCanBeUsed") - public static String repeat(String s, int n) { - if (s == null) { - return null; - } - - final StringBuilder sb = new StringBuilder(); - - for (int i = 0; i < n; i++) { - sb.append(s); - } - - return sb.toString(); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/format/MemoryMonitor.java b/core/src/main/java/com/volmit/iris/util/format/MemoryMonitor.java deleted file mode 100644 index 63f175651..000000000 --- a/core/src/main/java/com/volmit/iris/util/format/MemoryMonitor.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 com.volmit.iris.util.format; - -import com.volmit.iris.util.math.RollingSequence; -import com.volmit.iris.util.scheduling.ChronoLatch; -import com.volmit.iris.util.scheduling.Looper; - -public class MemoryMonitor { - private final ChronoLatch cl; - private final RollingSequence pressureAvg; - private final Runtime runtime; - private Looper looper; - private long usedMemory; - private long garbageMemory; - private long garbageLast; - private long garbageBin; - private long pressure; - - public MemoryMonitor(int sampleDelay) { - this.runtime = Runtime.getRuntime(); - usedMemory = -1; - pressureAvg = new RollingSequence(Math.max(Math.min(100, 1000 / sampleDelay), 3)); - garbageBin = 0; - garbageMemory = -1; - cl = new ChronoLatch(1000); - garbageLast = 0; - pressure = 0; - - looper = new Looper() { - @Override - protected long loop() { - sample(); - return sampleDelay; - } - }; - looper.setPriority(Thread.MIN_PRIORITY); - looper.setName("Memory Monitor"); - looper.start(); - } - - public long getGarbageBytes() { - return garbageMemory; - } - - public long getUsedBytes() { - return usedMemory; - } - - public long getMaxBytes() { - return runtime.maxMemory(); - } - - public long getPressure() { - return (long) pressureAvg.getAverage(); - } - - public double getUsagePercent() { - return usedMemory / (double) getMaxBytes(); - } - - @SuppressWarnings("IfStatementWithIdenticalBranches") - private void sample() { - long used = getVMUse(); - if (usedMemory == -1) { - usedMemory = used; - garbageMemory = 0; - return; - } - - if (used < usedMemory) { - usedMemory = used; - } else { - garbageMemory = used - usedMemory; - } - - long g = garbageMemory - garbageLast; - - if (g >= 0) { - garbageBin += g; - garbageLast = garbageMemory; - } else { - garbageMemory = 0; - garbageLast = 0; - } - - if (cl.flip()) { - if (garbageMemory > 0) { - pressure = garbageBin; - garbageBin = 0; - } else { - pressure = 0; - garbageBin = 0; - } - } - - pressureAvg.put(pressure); - } - - private long getVMUse() { - return runtime.totalMemory() - runtime.freeMemory(); - } - - public void close() { - if (looper != null) { - looper.interrupt(); - looper = null; - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/function/Consumer2.java b/core/src/main/java/com/volmit/iris/util/function/Consumer2.java deleted file mode 100644 index c068da44a..000000000 --- a/core/src/main/java/com/volmit/iris/util/function/Consumer2.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 com.volmit.iris.util.function; - -@SuppressWarnings({"hiding", "RedundantSuppression"}) -@FunctionalInterface -public interface Consumer2 { - void accept(A a, B b); -} diff --git a/core/src/main/java/com/volmit/iris/util/function/Consumer2IO.java b/core/src/main/java/com/volmit/iris/util/function/Consumer2IO.java deleted file mode 100644 index 1ce4f7590..000000000 --- a/core/src/main/java/com/volmit/iris/util/function/Consumer2IO.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 com.volmit.iris.util.function; - -import java.io.IOException; - -@SuppressWarnings({"hiding", "RedundantSuppression"}) -@FunctionalInterface -public interface Consumer2IO { - void accept(A a, B b) throws IOException; -} diff --git a/core/src/main/java/com/volmit/iris/util/function/Consumer3.java b/core/src/main/java/com/volmit/iris/util/function/Consumer3.java deleted file mode 100644 index a6748afd6..000000000 --- a/core/src/main/java/com/volmit/iris/util/function/Consumer3.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 com.volmit.iris.util.function; - -@SuppressWarnings("ALL") -@FunctionalInterface -public interface Consumer3 { - void accept(A a, B b, C c); -} diff --git a/core/src/main/java/com/volmit/iris/util/function/Consumer4.java b/core/src/main/java/com/volmit/iris/util/function/Consumer4.java deleted file mode 100644 index 3a96b10b1..000000000 --- a/core/src/main/java/com/volmit/iris/util/function/Consumer4.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 com.volmit.iris.util.function; - -@FunctionalInterface -public interface Consumer4 { - void accept(A a, B b, C c, D d); -} diff --git a/core/src/main/java/com/volmit/iris/util/function/Consumer4IO.java b/core/src/main/java/com/volmit/iris/util/function/Consumer4IO.java deleted file mode 100644 index 4a3246e1c..000000000 --- a/core/src/main/java/com/volmit/iris/util/function/Consumer4IO.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 com.volmit.iris.util.function; - -import java.io.IOException; - -@FunctionalInterface -public interface Consumer4IO { - void accept(A a, B b, C c, D d) throws IOException; -} diff --git a/core/src/main/java/com/volmit/iris/util/function/Consumer5.java b/core/src/main/java/com/volmit/iris/util/function/Consumer5.java deleted file mode 100644 index 2101f8f0d..000000000 --- a/core/src/main/java/com/volmit/iris/util/function/Consumer5.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 com.volmit.iris.util.function; - -@FunctionalInterface -public interface Consumer5 { - void accept(A a, B b, C c, D d, E e); -} diff --git a/core/src/main/java/com/volmit/iris/util/function/Consumer6.java b/core/src/main/java/com/volmit/iris/util/function/Consumer6.java deleted file mode 100644 index b852bd97e..000000000 --- a/core/src/main/java/com/volmit/iris/util/function/Consumer6.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 com.volmit.iris.util.function; - -@FunctionalInterface -public interface Consumer6 { - void accept(A a, B b, C c, D d, E e, F f); -} diff --git a/core/src/main/java/com/volmit/iris/util/function/Consumer8.java b/core/src/main/java/com/volmit/iris/util/function/Consumer8.java deleted file mode 100644 index 996031e04..000000000 --- a/core/src/main/java/com/volmit/iris/util/function/Consumer8.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 com.volmit.iris.util.function; - -@FunctionalInterface -public interface Consumer8 { - void accept(A a, B b, C c, D d, E e, F f, G g, H h); -} diff --git a/core/src/main/java/com/volmit/iris/util/function/Function2.java b/core/src/main/java/com/volmit/iris/util/function/Function2.java deleted file mode 100644 index 94c0215ad..000000000 --- a/core/src/main/java/com/volmit/iris/util/function/Function2.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 com.volmit.iris.util.function; - -@FunctionalInterface -public interface Function2 { - R apply(A a, B b); -} diff --git a/core/src/main/java/com/volmit/iris/util/function/Function3.java b/core/src/main/java/com/volmit/iris/util/function/Function3.java deleted file mode 100644 index 9801bc068..000000000 --- a/core/src/main/java/com/volmit/iris/util/function/Function3.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 com.volmit.iris.util.function; - -@FunctionalInterface -public interface Function3 { - R apply(A a, B b, C c); -} diff --git a/core/src/main/java/com/volmit/iris/util/function/Function4.java b/core/src/main/java/com/volmit/iris/util/function/Function4.java deleted file mode 100644 index 5e0351b31..000000000 --- a/core/src/main/java/com/volmit/iris/util/function/Function4.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 com.volmit.iris.util.function; - -@FunctionalInterface -public interface Function4 { - R apply(A a, B b, C c, D d); -} diff --git a/core/src/main/java/com/volmit/iris/util/function/NastyFunction.java b/core/src/main/java/com/volmit/iris/util/function/NastyFunction.java deleted file mode 100644 index dd056c169..000000000 --- a/core/src/main/java/com/volmit/iris/util/function/NastyFunction.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 com.volmit.iris.util.function; - -@FunctionalInterface -public interface NastyFunction { - R run(T t) throws Throwable; -} diff --git a/core/src/main/java/com/volmit/iris/util/function/NastyFuture.java b/core/src/main/java/com/volmit/iris/util/function/NastyFuture.java deleted file mode 100644 index 51db74ba1..000000000 --- a/core/src/main/java/com/volmit/iris/util/function/NastyFuture.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 com.volmit.iris.util.function; - -public interface NastyFuture { - R run(); -} diff --git a/core/src/main/java/com/volmit/iris/util/function/NastyRunnable.java b/core/src/main/java/com/volmit/iris/util/function/NastyRunnable.java deleted file mode 100644 index 816080153..000000000 --- a/core/src/main/java/com/volmit/iris/util/function/NastyRunnable.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 com.volmit.iris.util.function; - -public interface NastyRunnable { - void run() throws Throwable; -} diff --git a/core/src/main/java/com/volmit/iris/util/function/NastySupplier.java b/core/src/main/java/com/volmit/iris/util/function/NastySupplier.java deleted file mode 100644 index a8b753d33..000000000 --- a/core/src/main/java/com/volmit/iris/util/function/NastySupplier.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 com.volmit.iris.util.function; - -public interface NastySupplier { - T get() throws Throwable; -} diff --git a/core/src/main/java/com/volmit/iris/util/function/NoiseInjector.java b/core/src/main/java/com/volmit/iris/util/function/NoiseInjector.java deleted file mode 100644 index 6a0135929..000000000 --- a/core/src/main/java/com/volmit/iris/util/function/NoiseInjector.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 com.volmit.iris.util.function; - -@FunctionalInterface -public interface NoiseInjector { - double[] combine(double src, double value); -} diff --git a/core/src/main/java/com/volmit/iris/util/function/NoiseProvider.java b/core/src/main/java/com/volmit/iris/util/function/NoiseProvider.java deleted file mode 100644 index fe881fc2e..000000000 --- a/core/src/main/java/com/volmit/iris/util/function/NoiseProvider.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 com.volmit.iris.util.function; - -@FunctionalInterface -public interface NoiseProvider { - double noise(double x, double z); -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/function/NoiseProvider3.java b/core/src/main/java/com/volmit/iris/util/function/NoiseProvider3.java deleted file mode 100644 index 7120c0910..000000000 --- a/core/src/main/java/com/volmit/iris/util/function/NoiseProvider3.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 com.volmit.iris.util.function; - -@FunctionalInterface -public interface NoiseProvider3 { - double noise(double x, double y, double z); -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/function/Supplier2.java b/core/src/main/java/com/volmit/iris/util/function/Supplier2.java deleted file mode 100644 index fbe4c5d9b..000000000 --- a/core/src/main/java/com/volmit/iris/util/function/Supplier2.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 com.volmit.iris.util.function; - -public interface Supplier2 { - void get(T t, TT tt); -} diff --git a/core/src/main/java/com/volmit/iris/util/function/Supplier3.java b/core/src/main/java/com/volmit/iris/util/function/Supplier3.java deleted file mode 100644 index f79aed6da..000000000 --- a/core/src/main/java/com/volmit/iris/util/function/Supplier3.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 com.volmit.iris.util.function; - -public interface Supplier3 { - void get(T t, TT tt, TTT ttt); -} diff --git a/core/src/main/java/com/volmit/iris/util/function/Supplier3R.java b/core/src/main/java/com/volmit/iris/util/function/Supplier3R.java deleted file mode 100644 index 77e8c9128..000000000 --- a/core/src/main/java/com/volmit/iris/util/function/Supplier3R.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 com.volmit.iris.util.function; - -public interface Supplier3R { - TTTT get(T t, TT tt, TTT ttt); -} diff --git a/core/src/main/java/com/volmit/iris/util/hunk/HunkFactory.java b/core/src/main/java/com/volmit/iris/util/hunk/HunkFactory.java deleted file mode 100644 index a120cb454..000000000 --- a/core/src/main/java/com/volmit/iris/util/hunk/HunkFactory.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 com.volmit.iris.util.hunk; - -@FunctionalInterface -public interface HunkFactory { - Hunk create(int w, int h, int d); -} diff --git a/core/src/main/java/com/volmit/iris/util/hunk/bits/DataBits.java b/core/src/main/java/com/volmit/iris/util/hunk/bits/DataBits.java deleted file mode 100644 index 4ed18fa2d..000000000 --- a/core/src/main/java/com/volmit/iris/util/hunk/bits/DataBits.java +++ /dev/null @@ -1,187 +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 com.volmit.iris.util.hunk.bits; - -import com.volmit.iris.util.data.Varint; -import lombok.Getter; -import org.apache.commons.lang3.Validate; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; -import java.util.concurrent.atomic.AtomicLongArray; -import java.util.function.IntConsumer; - -public class DataBits { - private static final int[] MAGIC = new int[]{ - -1, -1, 0, Integer.MIN_VALUE, 0, 0, 1431655765, 1431655765, 0, Integer.MIN_VALUE, - 0, 1, 858993459, 858993459, 0, 715827882, 715827882, 0, 613566756, 613566756, - 0, Integer.MIN_VALUE, 0, 2, 477218588, 477218588, 0, 429496729, 429496729, 0, - 390451572, 390451572, 0, 357913941, 357913941, 0, 330382099, 330382099, 0, 306783378, - 306783378, 0, 286331153, 286331153, 0, Integer.MIN_VALUE, 0, 3, 252645135, 252645135, - 0, 238609294, 238609294, 0, 226050910, 226050910, 0, 214748364, 214748364, 0, - 204522252, 204522252, 0, 195225786, 195225786, 0, 186737708, 186737708, 0, 178956970, - 178956970, 0, 171798691, 171798691, 0, 165191049, 165191049, 0, 159072862, 159072862, - 0, 153391689, 153391689, 0, 148102320, 148102320, 0, 143165576, 143165576, 0, - 138547332, 138547332, 0, Integer.MIN_VALUE, 0, 4, 130150524, 130150524, 0, 126322567, - 126322567, 0, 122713351, 122713351, 0, 119304647, 119304647, 0, 116080197, 116080197, - 0, 113025455, 113025455, 0, 110127366, 110127366, 0, 107374182, 107374182, 0, - 104755299, 104755299, 0, 102261126, 102261126, 0, 99882960, 99882960, 0, 97612893, - 97612893, 0, 95443717, 95443717, 0, 93368854, 93368854, 0, 91382282, 91382282, - 0, 89478485, 89478485, 0, 87652393, 87652393, 0, 85899345, 85899345, 0, - 84215045, 84215045, 0, 82595524, 82595524, 0, 81037118, 81037118, 0, 79536431, - 79536431, 0, 78090314, 78090314, 0, 76695844, 76695844, 0, 75350303, 75350303, - 0, 74051160, 74051160, 0, 72796055, 72796055, 0, 71582788, 71582788, 0, - 70409299, 70409299, 0, 69273666, 69273666, 0, 68174084, 68174084, 0, Integer.MIN_VALUE, - 0, 5}; - - private final AtomicLongArray data; - @Getter - private final int bits; - private final long mask; - @Getter - private final int size; - private final int valuesPerLong; - private final int divideMul; - private final int divideAdd; - private final int divideShift; - - public DataBits(int bits, int length) { - this(bits, length, (AtomicLongArray) null); - } - - public DataBits(int bits, int length, DataInputStream din) throws IOException { - this(bits, length, longs(din, dataLength(bits, length))); - } - - public DataBits(int bits, int length, AtomicLongArray data) { - Validate.inclusiveBetween(1L, 32L, bits); - this.size = length; - this.bits = bits; - this.mask = (1L << bits) - 1L; - this.valuesPerLong = (char) (64 / bits); - int var3 = 3 * (valuesPerLong - 1); - this.divideMul = MAGIC[var3]; - this.divideAdd = MAGIC[var3 + 1]; - this.divideShift = MAGIC[var3 + 2]; - int var4 = (length + valuesPerLong - 1) / valuesPerLong; - - if (data != null) { - if (data.length() != var4) { - throw new RuntimeException("NO! Trying to load " + data.length() + " into actual size of " + var4 + " because length: " + length + " (bits: " + bits + ")"); - } - this.data = data; - } else { - this.data = new AtomicLongArray(var4); - } - } - - private static int dataLength(int bits, int length) { - return (length + ((char) (64 / bits)) - 1) / ((char) (64 / bits)); - } - - private static AtomicLongArray longs(DataInputStream din, int longSize) throws IOException { - AtomicLongArray a = new AtomicLongArray(longSize); - - for (int i = 0; i < a.length(); i++) { - a.set(i, Varint.readUnsignedVarLong(din)); - } - - return a; - } - - public String toString() { - return "DBits: " + size + "/" + bits + "[" + data.length() + "]"; - } - - private int cellIndex(int var0) { - long var1 = Integer.toUnsignedLong(this.divideMul); - long var3 = Integer.toUnsignedLong(this.divideAdd); - return (int) (var0 * var1 + var3 >> 32L >> this.divideShift); - } - - @SuppressWarnings("PointlessBitwiseExpression") - public int getAndSet(int var0, int var1) { - Validate.inclusiveBetween(0L, (this.size - 1), var0); - Validate.inclusiveBetween(0L, this.mask, var1); - int var2 = cellIndex(var0); - long var3 = this.data.get(var2); - int var5 = (var0 - var2 * this.valuesPerLong) * this.bits; - int var6 = (int) (var3 >> var5 & this.mask); - this.data.set(var2, var3 & (this.mask << var5 ^ 0xFFFFFFFFFFFFFFFFL) | (var1 & this.mask) << var5); - return var6; - } - - @SuppressWarnings("PointlessBitwiseExpression") - public void set(int var0, int var1) { - Validate.inclusiveBetween(0L, (this.size - 1), var0); - Validate.inclusiveBetween(0L, this.mask, var1); - int var2 = cellIndex(var0); - long var3 = this.data.get(var2); - int var5 = (var0 - var2 * this.valuesPerLong) * this.bits; - - this.data.set(var2, var3 & (this.mask << var5 ^ 0xFFFFFFFFFFFFFFFFL) | (var1 & this.mask) << var5); - } - - public int get(int var0) { - Validate.inclusiveBetween(0L, (size - 1), var0); - int var1 = cellIndex(var0); - long var2 = this.data.get(var1); - int var4 = (var0 - var1 * valuesPerLong) * this.bits; - return (int) (var2 >> var4 & mask); - } - - public AtomicLongArray getRaw() { - return data; - } - - public DataBits setBits(int newBits) { - if (bits != newBits) { - DataBits newData = new DataBits(newBits, size); - - for (int i = 0; i < size; i++) { - newData.set(i, get(i)); - } - - return newData; - } - - return this; - } - - public void getAll(IntConsumer var0) { - int var1 = 0; - for (int i = 0; i < data.length(); i++) { - long var5 = data.get(i); - for (int var7 = 0; var7 < valuesPerLong; var7++) { - var0.accept((int) (var5 & mask)); - var5 >>= bits; - if (++var1 >= size) { - return; - } - } - } - } - - public void write(DataOutputStream dos) throws IOException { - for (int i = 0; i < data.length(); i++) { - Varint.writeUnsignedVarLong(data.get(i), dos); - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/hunk/bits/DataContainer.java b/core/src/main/java/com/volmit/iris/util/hunk/bits/DataContainer.java deleted file mode 100644 index 2d02875fa..000000000 --- a/core/src/main/java/com/volmit/iris/util/hunk/bits/DataContainer.java +++ /dev/null @@ -1,211 +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 com.volmit.iris.util.hunk.bits; - -import com.volmit.iris.util.data.Varint; -import it.unimi.dsi.fastutil.ints.*; - -import java.io.*; -import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReentrantReadWriteLock; - -public class DataContainer { - private static final boolean TRIM = Boolean.getBoolean("iris.trim-palette"); - protected static final int INITIAL_BITS = 3; - protected static final int LINEAR_BITS_LIMIT = 4; - protected static final int LINEAR_INITIAL_LENGTH = (int) Math.pow(2, LINEAR_BITS_LIMIT) + 2; - protected static final int[] BIT = computeBitLimits(); - private final Lock read, write; - - private volatile Palette palette; - private volatile DataBits data; - private final int length; - private final Writable writer; - - public DataContainer(Writable writer, int length) { - var lock = new ReentrantReadWriteLock(); - this.read = lock.readLock(); - this.write = lock.writeLock(); - - this.writer = writer; - this.length = length; - this.data = new DataBits(INITIAL_BITS, length); - this.palette = newPalette(INITIAL_BITS); - } - - public DataContainer(DataInputStream din, Writable writer) throws IOException { - var lock = new ReentrantReadWriteLock(); - this.read = lock.readLock(); - this.write = lock.writeLock(); - - this.writer = writer; - this.length = Varint.readUnsignedVarInt(din); - this.palette = newPalette(din); - this.data = new DataBits(palette.bits(), length, din); - trim(); - } - - private static int[] computeBitLimits() { - int[] m = new int[16]; - - for (int i = 0; i < m.length; i++) { - m[i] = (int) Math.pow(2, i); - } - - return m; - } - - protected static int bits(int size) { - if (DataContainer.BIT[INITIAL_BITS] >= size) { - return INITIAL_BITS; - } - - for (int i = 0; i < DataContainer.BIT.length; i++) { - if (DataContainer.BIT[i] >= size) { - return i; - } - } - - return DataContainer.BIT.length - 1; - } - - public String toString() { - return "DataContainer <" + length + " x " + data.getBits() + " bits> -> Palette<" + palette.getClass().getSimpleName().replaceAll("\\QPalette\\E", "") + ">: " + palette.size() + - " " + data.toString() + " PalBit: " + palette.bits(); - } - - public byte[] write() throws IOException { - ByteArrayOutputStream boas = new ByteArrayOutputStream(); - write(boas); - return boas.toByteArray(); - } - - public void write(OutputStream out) throws IOException { - writeDos(new DataOutputStream(out)); - } - - public void writeDos(DataOutputStream dos) throws IOException { - write.lock(); - try { - trim(); - Varint.writeUnsignedVarInt(length, dos); - Varint.writeUnsignedVarInt(palette.size(), dos); - palette.iterateIO((data, __) -> writer.writeNodeData(dos, data)); - data.write(dos); - dos.flush(); - } finally { - write.unlock(); - } - } - - private Palette newPalette(DataInputStream din) throws IOException { - int paletteSize = Varint.readUnsignedVarInt(din); - Palette d = newPalette(bits(paletteSize + 1)); - d.from(paletteSize, writer, din); - return d; - } - - private Palette newPalette(int bits) { - if (bits <= LINEAR_BITS_LIMIT) { - return new LinearPalette<>(LINEAR_INITIAL_LENGTH); - } - - return new HashPalette<>(); - } - - public void set(int position, T t) { - int id; - - read.lock(); - try { - id = palette.id(t); - if (id == -1) { - id = palette.add(t); - if (palette.bits() == data.getBits()) { - data.set(position, id); - return; - } - } - } finally { - read.unlock(); - } - - write.lock(); - try { - updateBits(); - data.set(position, id); - } finally { - write.unlock(); - } - } - - @SuppressWarnings("NonAtomicOperationOnVolatileField") - private void updateBits() { - int bits = palette.bits(); - if (bits == data.getBits()) - return; - - if (data.getBits() <= LINEAR_BITS_LIMIT != bits <= LINEAR_BITS_LIMIT) { - palette = newPalette(bits).from(palette); - } - - data = data.setBits(bits); - } - - public T get(int position) { - read.lock(); - try { - int id = data.get(position); - - if (id <= 0) { - return null; - } - - return palette.get(id); - } finally { - read.unlock(); - } - } - - public int size() { - return data.getSize(); - } - - private void trim() { - var ints = new Int2IntRBTreeMap(); - for (int i = 0; i < length; i++) { - int x = data.get(i); - if (x <= 0) continue; - ints.put(x, x); - } - if (ints.size() == palette.size()) - return; - - int bits = bits(ints.size() + 1); - var trimmed = newPalette(bits); - ints.replaceAll((k, v) -> trimmed.add(palette.get(k))); - var tBits = new DataBits(bits, length); - for (int i = 0; i < length; i++) { - tBits.set(i, ints.get(data.get(i))); - } - - data = tBits; - palette = trimmed; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/hunk/bits/HashPalette.java b/core/src/main/java/com/volmit/iris/util/hunk/bits/HashPalette.java deleted file mode 100644 index cf31e6c37..000000000 --- a/core/src/main/java/com/volmit/iris/util/hunk/bits/HashPalette.java +++ /dev/null @@ -1,111 +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 com.volmit.iris.util.hunk.bits; - -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.function.Consumer2; - -import java.io.DataInputStream; -import java.io.IOException; -import java.util.LinkedHashMap; -import java.util.concurrent.atomic.AtomicInteger; - -public class HashPalette implements Palette { - private final Object lock = new Object(); - private final KMap palette; - private final KMap lookup; - private final AtomicInteger size; - - public HashPalette() { - this.size = new AtomicInteger(1); - this.palette = new KMap<>(); - this.lookup = new KMap<>(); - } - - @Override - public T get(int id) { - if (id <= 0 || id >= size.get()) { - return null; - } - - return lookup.get(id); - } - - @Override - public int add(T t) { - if (t == null) { - return 0; - } - - return palette.computeIfAbsent(t, $ -> { - synchronized (lock) { - int index = size.getAndIncrement(); - lookup.put(index, t); - return index; - } - }); - } - - @Override - public int id(T t) { - if (t == null) { - return 0; - } - - Integer v = palette.get(t); - return v != null ? v : -1; - } - - @Override - public int size() { - return size.get() - 1; - } - - @Override - public void iterate(Consumer2 c) { - synchronized (lock) { - for (int i = 1; i < size.get(); i++) { - c.accept(lookup.get(i), i); - } - } - } - - @Override - public Palette from(Palette oldPalette) { - oldPalette.iterate((t, i) -> { - if (t == null) throw new NullPointerException("Null palette entries are not allowed!"); - lookup.put(i, t); - palette.put(t, i); - }); - size.set(oldPalette.size() + 1); - return this; - } - - @Override - public Palette from(int size, Writable writable, DataInputStream in) throws IOException { - for (int i = 1; i <= size; i++) { - T t = writable.readNodeData(in); - if (t == null) throw new NullPointerException("Null palette entries are not allowed!"); - lookup.put(i, t); - palette.put(t, i); - } - this.size.set(size + 1); - return this; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/hunk/bits/LinearPalette.java b/core/src/main/java/com/volmit/iris/util/hunk/bits/LinearPalette.java deleted file mode 100644 index a93b4887c..000000000 --- a/core/src/main/java/com/volmit/iris/util/hunk/bits/LinearPalette.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 com.volmit.iris.util.hunk.bits; - -import com.volmit.iris.util.function.Consumer2; -import lombok.Synchronized; - -import java.util.concurrent.atomic.AtomicInteger; -import java.util.concurrent.atomic.AtomicReferenceArray; - -public class LinearPalette implements Palette { - private volatile AtomicReferenceArray palette; - private final AtomicInteger size; - - public LinearPalette(int initialSize) { - this.size = new AtomicInteger(1); - this.palette = new AtomicReferenceArray<>(initialSize); - palette.set(0, null); - } - - @Override - public T get(int id) { - if (id < 0 || id >= size.get()) { - return null; - } - - return palette.get(id); - } - - @Override - public int add(T t) { - int index = size.getAndIncrement(); - if (palette.length() <= index) - grow(index); - palette.set(index, t); - return index; - } - - private synchronized void grow(int lastIndex) { - if (palette.length() > lastIndex) - return; - - AtomicReferenceArray a = new AtomicReferenceArray<>(lastIndex + 1); - for (int i = 0; i < palette.length(); i++) { - a.set(i, palette.get(i)); - } - - palette = a; - } - - @Override - public int id(T t) { - if (t == null) { - return 0; - } - - for (int i = 1; i < size.get(); i++) { - if (t.equals(palette.get(i))) { - return i; - } - } - - return -1; - } - - @Override - public int size() { - return size.get() - 1; - } - - @Override - public void iterate(Consumer2 c) { - for (int i = 1; i <= size(); i++) { - c.accept(palette.get(i), i); - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/hunk/bits/Palette.java b/core/src/main/java/com/volmit/iris/util/hunk/bits/Palette.java deleted file mode 100644 index 92a190576..000000000 --- a/core/src/main/java/com/volmit/iris/util/hunk/bits/Palette.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 com.volmit.iris.util.hunk.bits; - -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.function.Consumer2; -import com.volmit.iris.util.function.Consumer2IO; - -import java.io.DataInputStream; -import java.io.IOException; - -public interface Palette { - T get(int id); - - int add(T t); - - int id(T t); - - int size(); - - default int bits() { - return DataContainer.bits(size() + 1); - } - - void iterate(Consumer2 c); - - default void iterateIO(Consumer2IO c) { - iterate((a, b) -> { - try { - c.accept(a, b); - } catch (IOException e) { - e.printStackTrace(); - } - }); - } - - default Palette from(int size, Writable writable, DataInputStream in) throws IOException { - for (int i = 0; i < size; i++) { - add(writable.readNodeData(in)); - } - - return this; - } - - default Palette from(Palette oldPalette) { - oldPalette.iterate((k, v) -> add(k)); - return this; - } - - default KList list() { - KList t = new KList<>(); - iterate((tx, __) -> t.add(tx)); - return t; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/hunk/bits/Writable.java b/core/src/main/java/com/volmit/iris/util/hunk/bits/Writable.java deleted file mode 100644 index 45523f248..000000000 --- a/core/src/main/java/com/volmit/iris/util/hunk/bits/Writable.java +++ /dev/null @@ -1,29 +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 com.volmit.iris.util.hunk.bits; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -public interface Writable { - T readNodeData(DataInputStream din) throws IOException; - - void writeNodeData(DataOutputStream dos, T t) throws IOException; -} diff --git a/core/src/main/java/com/volmit/iris/util/hunk/storage/MappedHunk.java b/core/src/main/java/com/volmit/iris/util/hunk/storage/MappedHunk.java deleted file mode 100644 index 553f8c9c6..000000000 --- a/core/src/main/java/com/volmit/iris/util/hunk/storage/MappedHunk.java +++ /dev/null @@ -1,105 +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 com.volmit.iris.util.hunk.storage; - -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.function.Consumer4; -import com.volmit.iris.util.function.Consumer4IO; -import com.volmit.iris.util.hunk.Hunk; -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.io.IOException; -import java.util.Map; - -@SuppressWarnings({"Lombok"}) -@Data -@EqualsAndHashCode(callSuper = false) -public class MappedHunk extends StorageHunk implements Hunk { - private final Map data; - - public MappedHunk(int w, int h, int d) { - super(w, h, d); - data = new KMap<>(); - } - - public int getEntryCount() { - return data.size(); - } - - public boolean isMapped() { - return true; - } - - public boolean isEmpty() { - return data.isEmpty(); - } - - @Override - public void setRaw(int x, int y, int z, T t) { - if (t == null) { - data.remove(index(x, y, z)); - return; - } - - data.put(index(x, y, z), t); - } - - private Integer index(int x, int y, int z) { - return (z * getWidth() * getHeight()) + (y * getWidth()) + x; - } - - @Override - public synchronized Hunk iterateSync(Consumer4 c) { - int idx, z; - - for (Map.Entry g : data.entrySet()) { - idx = g.getKey(); - z = idx / (getWidth() * getHeight()); - idx -= (z * getWidth() * getHeight()); - c.accept(idx % getWidth(), idx / getWidth(), z, g.getValue()); - } - - return this; - } - - @Override - public synchronized Hunk iterateSyncIO(Consumer4IO c) throws IOException { - int idx, z; - - for (Map.Entry g : data.entrySet()) { - idx = g.getKey(); - z = idx / (getWidth() * getHeight()); - idx -= (z * getWidth() * getHeight()); - c.accept(idx % getWidth(), idx / getWidth(), z, g.getValue()); - } - - return this; - } - - @Override - public void empty(T b) { - data.clear(); - } - - @Override - public T getRaw(int x, int y, int z) { - return data.get(index(x, y, z)); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/hunk/storage/MappedSyncHunk.java b/core/src/main/java/com/volmit/iris/util/hunk/storage/MappedSyncHunk.java deleted file mode 100644 index 947ec77b3..000000000 --- a/core/src/main/java/com/volmit/iris/util/hunk/storage/MappedSyncHunk.java +++ /dev/null @@ -1,117 +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 com.volmit.iris.util.hunk.storage; - -import com.volmit.iris.util.function.Consumer4; -import com.volmit.iris.util.function.Consumer4IO; -import com.volmit.iris.util.hunk.Hunk; -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; - -@SuppressWarnings({"Lombok"}) -@Data -@EqualsAndHashCode(callSuper = false) -public class MappedSyncHunk extends StorageHunk implements Hunk { - private final Map data; - - public MappedSyncHunk(int w, int h, int d) { - super(w, h, d); - data = new HashMap<>(); - } - - public int getEntryCount() { - return data.size(); - } - - public boolean isMapped() { - return true; - } - - public boolean isEmpty() { - synchronized (data) { - return data.isEmpty(); - } - } - - @Override - public void setRaw(int x, int y, int z, T t) { - synchronized (data) { - if (t == null) { - data.remove(index(x, y, z)); - return; - } - - data.put(index(x, y, z), t); - } - } - - private Integer index(int x, int y, int z) { - return (z * getWidth() * getHeight()) + (y * getWidth()) + x; - } - - @Override - public synchronized Hunk iterateSync(Consumer4 c) { - synchronized (data) { - int idx, z; - - for (Map.Entry g : data.entrySet()) { - idx = g.getKey(); - z = idx / (getWidth() * getHeight()); - idx -= (z * getWidth() * getHeight()); - c.accept(idx % getWidth(), idx / getWidth(), z, g.getValue()); - } - - return this; - } - } - - @Override - public synchronized Hunk iterateSyncIO(Consumer4IO c) throws IOException { - synchronized (data) { - int idx, z; - - for (Map.Entry g : data.entrySet()) { - idx = g.getKey(); - z = idx / (getWidth() * getHeight()); - idx -= (z * getWidth() * getHeight()); - c.accept(idx % getWidth(), idx / getWidth(), z, g.getValue()); - } - - return this; - } - } - - @Override - public void empty(T b) { - synchronized (data) { - data.clear(); - } - } - - @Override - public T getRaw(int x, int y, int z) { - synchronized (data) { - return data.get(index(x, y, z)); - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/hunk/storage/PaletteHunk.java b/core/src/main/java/com/volmit/iris/util/hunk/storage/PaletteHunk.java deleted file mode 100644 index ee9b13c0a..000000000 --- a/core/src/main/java/com/volmit/iris/util/hunk/storage/PaletteHunk.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 com.volmit.iris.util.hunk.storage; - -import com.volmit.iris.util.function.Consumer4; -import com.volmit.iris.util.function.Consumer4IO; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.hunk.bits.DataContainer; -import com.volmit.iris.util.hunk.bits.Writable; -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.io.IOException; - -@SuppressWarnings({"Lombok"}) -@Data -@EqualsAndHashCode(callSuper = false) -public class PaletteHunk extends StorageHunk implements Hunk { - private DataContainer data; - - public PaletteHunk(int w, int h, int d, Writable writer) { - super(w, h, d); - data = new DataContainer<>(writer, w * h * d); - } - - public void setPalette(DataContainer c) { - data = c; - } - - public boolean isMapped() { - return false; - } - - private int index(int x, int y, int z) { - return (z * getWidth() * getHeight()) + (y * getWidth()) + x; - } - - @Override - public synchronized 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++) { - T t = getRaw(i, j, k); - if (t != null) { - c.accept(i, j, k, t); - } - } - } - } - return this; - } - - @Override - public synchronized 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++) { - T t = getRaw(i, j, k); - if (t != null) { - c.accept(i, j, k, t); - } - } - } - } - return this; - } - - @Override - public void setRaw(int x, int y, int z, T t) { - data.set(index(x, y, z), t); - } - - @Override - public T getRaw(int x, int y, int z) { - return data.get(index(x, y, z)); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/hunk/storage/PaletteOrHunk.java b/core/src/main/java/com/volmit/iris/util/hunk/storage/PaletteOrHunk.java deleted file mode 100644 index ea7c4e30e..000000000 --- a/core/src/main/java/com/volmit/iris/util/hunk/storage/PaletteOrHunk.java +++ /dev/null @@ -1,90 +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 com.volmit.iris.util.hunk.storage; - -import com.volmit.iris.util.function.Consumer4; -import com.volmit.iris.util.function.Consumer4IO; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.hunk.bits.DataContainer; -import com.volmit.iris.util.hunk.bits.Writable; - -import java.io.IOException; -import java.util.function.Supplier; - -public abstract class PaletteOrHunk extends StorageHunk implements Hunk, Writable { - private final Hunk hunk; - - public PaletteOrHunk(int width, int height, int depth, boolean allow, Supplier> factory) { - super(width, height, depth); - hunk = (allow && (width * height * depth <= 4096)) ? new PaletteHunk<>(width, height, depth, this) : factory.get(); - } - - public DataContainer palette() { - return isPalette() ? ((PaletteHunk) hunk).getData() : null; - } - - public boolean isPalette() { - return hunk instanceof PaletteHunk; - } - - public void setPalette(DataContainer c) { - if (isPalette()) { - ((PaletteHunk) hunk).setPalette(c); - } - } - - @Override - public void setRaw(int x, int y, int z, T t) { - hunk.setRaw(x, y, z, t); - } - - @Override - public T getRaw(int x, int y, int z) { - return hunk.getRaw(x, y, z); - } - - public int getEntryCount() { - return hunk.getEntryCount(); - } - - public boolean isMapped() { - return hunk.isMapped(); - } - - public boolean isEmpty() { - return hunk.isMapped(); - } - - @Override - public synchronized Hunk iterateSync(Consumer4 c) { - hunk.iterateSync(c); - return this; - } - - @Override - public synchronized Hunk iterateSyncIO(Consumer4IO c) throws IOException { - hunk.iterateSyncIO(c); - return this; - } - - @Override - public void empty(T b) { - hunk.empty(b); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/hunk/view/BiomeGridHunkHolder.java b/core/src/main/java/com/volmit/iris/util/hunk/view/BiomeGridHunkHolder.java deleted file mode 100644 index 99faeeeec..000000000 --- a/core/src/main/java/com/volmit/iris/util/hunk/view/BiomeGridHunkHolder.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 com.volmit.iris.util.hunk.view; - -import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.engine.data.chunk.LinkedTerrainChunk; -import com.volmit.iris.util.hunk.storage.AtomicHunk; -import lombok.Getter; -import org.bukkit.block.Biome; -import org.bukkit.generator.ChunkGenerator.BiomeGrid; - -@SuppressWarnings("ClassCanBeRecord") -public class BiomeGridHunkHolder extends AtomicHunk { - @Getter - private final BiomeGrid chunk; - private final int minHeight; - private final int maxHeight; - - public BiomeGridHunkHolder(BiomeGrid chunk, int minHeight, int maxHeight) { - super(16, maxHeight - minHeight, 16); - this.chunk = chunk; - this.minHeight = minHeight; - this.maxHeight = maxHeight; - } - - @Override - public int getWidth() { - return 16; - } - - @Override - public int getDepth() { - return 16; - } - - @Override - public int getHeight() { - return maxHeight - minHeight; - } - - public void apply() { - for (int i = 0; i < getHeight(); i++) { - for (int j = 0; j < getWidth(); j++) { - for (int k = 0; k < getDepth(); k++) { - Biome b = super.getRaw(j, i, k); - - if (b != null) { - chunk.setBiome(j, i + minHeight, k, b); - } - } - } - } - } - - @Override - public Biome getRaw(int x, int y, int z) { - Biome b = super.getRaw(x, y, z); - - return b != null ? b : Biome.PLAINS; - } - - public void forceBiomeBaseInto(int x, int y, int z, Object somethingVeryDirty) { - if (chunk instanceof LinkedTerrainChunk) { - INMS.get().forceBiomeInto(x, y + minHeight, z, somethingVeryDirty, ((LinkedTerrainChunk) chunk).getRawBiome()); - return; - } - INMS.get().forceBiomeInto(x, y + minHeight, z, somethingVeryDirty, chunk); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/hunk/view/BiomeGridHunkView.java b/core/src/main/java/com/volmit/iris/util/hunk/view/BiomeGridHunkView.java deleted file mode 100644 index 19007c184..000000000 --- a/core/src/main/java/com/volmit/iris/util/hunk/view/BiomeGridHunkView.java +++ /dev/null @@ -1,78 +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 com.volmit.iris.util.hunk.view; - -import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.engine.data.chunk.LinkedTerrainChunk; -import com.volmit.iris.util.hunk.Hunk; -import lombok.Getter; -import org.bukkit.block.Biome; -import org.bukkit.generator.ChunkGenerator.BiomeGrid; - -@SuppressWarnings("ClassCanBeRecord") -public class BiomeGridHunkView implements Hunk { - @Getter - private final BiomeGrid chunk; - private final int minHeight; - private final int maxHeight; - private int highest = -1000; - - public BiomeGridHunkView(BiomeGrid chunk, int minHeight, int maxHeight) { - this.chunk = chunk; - this.minHeight = minHeight; - this.maxHeight = maxHeight; - } - - @Override - public int getWidth() { - return 16; - } - - @Override - public int getDepth() { - return 16; - } - - @Override - public int getHeight() { - return maxHeight - minHeight; - } - - @Override - public void setRaw(int x, int y, int z, Biome t) { - chunk.setBiome(x, y + minHeight, z, t); - - if (y > highest) { - highest = y; - } - } - - @Override - public Biome getRaw(int x, int y, int z) { - return chunk.getBiome(x, y + minHeight, z); - } - - public void forceBiomeBaseInto(int x, int y, int z, Object somethingVeryDirty) { - if (chunk instanceof LinkedTerrainChunk) { - INMS.get().forceBiomeInto(x, y + minHeight, z, somethingVeryDirty, ((LinkedTerrainChunk) chunk).getRawBiome()); - return; - } - INMS.get().forceBiomeInto(x, y + minHeight, z, somethingVeryDirty, chunk); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/hunk/view/ChunkBiomeHunkView.java b/core/src/main/java/com/volmit/iris/util/hunk/view/ChunkBiomeHunkView.java deleted file mode 100644 index 97c732eeb..000000000 --- a/core/src/main/java/com/volmit/iris/util/hunk/view/ChunkBiomeHunkView.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 com.volmit.iris.util.hunk.view; - -import com.volmit.iris.Iris; -import com.volmit.iris.core.service.EditSVC; -import com.volmit.iris.util.hunk.Hunk; -import org.bukkit.Chunk; -import org.bukkit.block.Biome; - -@SuppressWarnings("ClassCanBeRecord") -public class ChunkBiomeHunkView implements Hunk { - private final Chunk chunk; - - public ChunkBiomeHunkView(Chunk chunk) { - this.chunk = chunk; - } - - @Override - public int getWidth() { - return 16; - } - - @Override - public int getDepth() { - return 16; - } - - @Override - public int getHeight() { - return chunk.getWorld().getMaxHeight(); - } - - @Override - public void setRaw(int x, int y, int z, Biome t) { - if (t == null) { - return; - } - - Iris.service(EditSVC.class).setBiome(chunk.getWorld(), x + (chunk.getX() * 16), y, z + (chunk.getZ() * 16), t); - } - - @Override - public Biome getRaw(int x, int y, int z) { - return Iris.service(EditSVC.class) - .getBiome(chunk.getWorld(), x + (chunk.getX() * 16), y, z + (chunk.getZ() * 16)); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/hunk/view/ChunkDataHunkView.java b/core/src/main/java/com/volmit/iris/util/hunk/view/ChunkDataHunkView.java deleted file mode 100644 index b27c22fa1..000000000 --- a/core/src/main/java/com/volmit/iris/util/hunk/view/ChunkDataHunkView.java +++ /dev/null @@ -1,95 +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 com.volmit.iris.util.hunk.view; - -import com.volmit.iris.util.data.B; -import com.volmit.iris.util.data.IrisCustomData; -import com.volmit.iris.util.hunk.Hunk; -import org.bukkit.block.data.BlockData; -import org.bukkit.generator.ChunkGenerator.ChunkData; - -@SuppressWarnings("ClassCanBeRecord") -public class ChunkDataHunkView implements Hunk { - private static final BlockData AIR = B.getAir(); - private final ChunkData chunk; - - public ChunkDataHunkView(ChunkData chunk) { - this.chunk = chunk; - } - - @Override - public int getWidth() { - return 16; - } - - @Override - public int getDepth() { - return 16; - } - - @Override - public int getHeight() { - return chunk.getMaxHeight() - chunk.getMinHeight(); - } - - @Override - public void set(int x1, int y1, int z1, int x2, int y2, int z2, BlockData t) { - if (t == null) { - return; - } - - chunk.setRegion(x1, y1 + chunk.getMinHeight(), z1, x2, y2 + chunk.getMinHeight(), z2, t); - } - - - public BlockData get(int x, int y, int z) { - return getRaw(x, y, z); - } - - public void set(int x, int y, int z, BlockData t) { - setRaw(x, y, z, t); - } - - @Override - public void setRaw(int x, int y, int z, BlockData t) { - if (t == null) { - return; - } - - try { - if (t instanceof IrisCustomData d) - t = d.getBase(); - chunk.setBlock(x, y + chunk.getMinHeight(), z, t); - } catch (Throwable ignored) { - - } - } - - @Override - public BlockData getRaw(int x, int y, int z) { - try { - - return chunk.getBlockData(x, y + chunk.getMinHeight(), z); - } catch (Throwable e) { - - } - - return AIR; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/hunk/view/ChunkHunkView.java b/core/src/main/java/com/volmit/iris/util/hunk/view/ChunkHunkView.java deleted file mode 100644 index f5d1df9f2..000000000 --- a/core/src/main/java/com/volmit/iris/util/hunk/view/ChunkHunkView.java +++ /dev/null @@ -1,63 +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 com.volmit.iris.util.hunk.view; - -import com.volmit.iris.Iris; -import com.volmit.iris.core.service.EditSVC; -import com.volmit.iris.util.hunk.Hunk; -import org.bukkit.Chunk; -import org.bukkit.block.data.BlockData; - -@SuppressWarnings("ClassCanBeRecord") -public class ChunkHunkView implements Hunk { - private final Chunk chunk; - - public ChunkHunkView(Chunk chunk) { - this.chunk = chunk; - } - - @Override - public int getWidth() { - return 16; - } - - @Override - public int getDepth() { - return 16; - } - - @Override - public int getHeight() { - return chunk.getWorld().getMaxHeight(); - } - - @Override - public void setRaw(int x, int y, int z, BlockData t) { - if (t == null) { - return; - } - - Iris.service(EditSVC.class).set(chunk.getWorld(), x + (chunk.getX() * 16), y, z + (chunk.getZ() * 16), t); - } - - @Override - public BlockData getRaw(int x, int y, int z) { - return Iris.service(EditSVC.class).get(chunk.getWorld(), x + (chunk.getX() * 16), y, z + (chunk.getZ() * 16)); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/hunk/view/DriftHunkView.java b/core/src/main/java/com/volmit/iris/util/hunk/view/DriftHunkView.java deleted file mode 100644 index 4c1242aef..000000000 --- a/core/src/main/java/com/volmit/iris/util/hunk/view/DriftHunkView.java +++ /dev/null @@ -1,66 +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 com.volmit.iris.util.hunk.view; - -import com.volmit.iris.util.hunk.Hunk; - -@SuppressWarnings("ClassCanBeRecord") -public class DriftHunkView implements Hunk { - private final int ox; - private final int oy; - private final int oz; - private final Hunk src; - - public DriftHunkView(Hunk src, int ox, int oy, int oz) { - this.src = src; - this.ox = ox; - this.oy = oy; - this.oz = oz; - } - - @Override - public void setRaw(int x, int y, int z, T t) { - src.setRaw(x + ox, y + oy, z + oz, t); - } - - @Override - public T getRaw(int x, int y, int z) { - return src.getRaw(x + ox, y + oy, z + oz); - } - - @Override - public int getWidth() { - return src.getWidth(); - } - - @Override - public int getHeight() { - return src.getHeight(); - } - - @Override - public int getDepth() { - return src.getDepth(); - } - - @Override - public Hunk getSource() { - return src; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/hunk/view/FringedHunkView.java b/core/src/main/java/com/volmit/iris/util/hunk/view/FringedHunkView.java deleted file mode 100644 index 2349d3646..000000000 --- a/core/src/main/java/com/volmit/iris/util/hunk/view/FringedHunkView.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 com.volmit.iris.util.hunk.view; - -import com.volmit.iris.util.hunk.Hunk; - -@SuppressWarnings("ClassCanBeRecord") -public class FringedHunkView implements Hunk { - private final Hunk src; - private final Hunk out; - - public FringedHunkView(Hunk src, Hunk out) { - this.src = src; - this.out = out; - } - - @Override - public void setRaw(int x, int y, int z, T t) { - out.setRaw(x, y, z, t); - } - - @Override - public T getRaw(int x, int y, int z) { - return src.getRaw(x, y, z); - } - - @Override - public int getWidth() { - return src.getWidth(); - } - - @Override - public int getHeight() { - return src.getHeight(); - } - - @Override - public int getDepth() { - return src.getDepth(); - } - - @Override - public Hunk getSource() { - return src; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/hunk/view/FunctionalHunkView.java b/core/src/main/java/com/volmit/iris/util/hunk/view/FunctionalHunkView.java deleted file mode 100644 index 86a4c281f..000000000 --- a/core/src/main/java/com/volmit/iris/util/hunk/view/FunctionalHunkView.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 com.volmit.iris.util.hunk.view; - -import com.volmit.iris.util.hunk.Hunk; - -import java.util.function.Function; - -public class FunctionalHunkView implements Hunk { - private final Hunk src; - private final Function converter; - private final Function backConverter; - - public FunctionalHunkView(Hunk src, Function converter, Function backConverter) { - this.src = src; - this.converter = converter; - this.backConverter = backConverter; - } - - @Override - public void setRaw(int x, int y, int z, T t) { - if (backConverter == null) { - throw new UnsupportedOperationException("You cannot writeNodeData to this hunk (Read Only)"); - } - - src.setRaw(x, y, z, backConverter.apply(t)); - } - - @Override - public T getRaw(int x, int y, int z) { - if (converter == null) { - throw new UnsupportedOperationException("You cannot read this hunk (Write Only)"); - } - - return converter.apply(src.getRaw(x, y, z)); - } - - @Override - public int getWidth() { - return src.getWidth(); - } - - @Override - public int getDepth() { - return src.getDepth(); - } - - @Override - public int getHeight() { - return src.getHeight(); - } - - @Override - public Hunk getSource() { - throw new UnsupportedOperationException("You cannot read this hunk's source because it's a different type."); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/hunk/view/HunkView.java b/core/src/main/java/com/volmit/iris/util/hunk/view/HunkView.java deleted file mode 100644 index ca4cf4dc2..000000000 --- a/core/src/main/java/com/volmit/iris/util/hunk/view/HunkView.java +++ /dev/null @@ -1,79 +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 com.volmit.iris.util.hunk.view; - -import com.volmit.iris.util.hunk.Hunk; - -public class HunkView implements Hunk { - private final int ox; - private final int oy; - private final int oz; - private final int w; - private final int h; - private final int d; - private final Hunk src; - - public HunkView(Hunk src) { - this(src, src.getWidth(), src.getHeight(), src.getDepth()); - } - - public HunkView(Hunk src, int w, int h, int d) { - this(src, w, h, d, 0, 0, 0); - } - - public HunkView(Hunk src, int w, int h, int d, int ox, int oy, int oz) { - this.src = src; - this.w = w; - this.h = h; - this.d = d; - this.ox = ox; - this.oy = oy; - this.oz = oz; - } - - @Override - public void setRaw(int x, int y, int z, T t) { - src.setRaw(x + ox, y + oy, z + oz, t); - } - - @Override - public T getRaw(int x, int y, int z) { - return src.getRaw(x + ox, y + oy, z + oz); - } - - @Override - public int getWidth() { - return w; - } - - @Override - public int getDepth() { - return d; - } - - @Override - public int getHeight() { - return h; - } - - @Override - public Hunk getSource() { - return src; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/hunk/view/InvertedHunkView.java b/core/src/main/java/com/volmit/iris/util/hunk/view/InvertedHunkView.java deleted file mode 100644 index fc45ab195..000000000 --- a/core/src/main/java/com/volmit/iris/util/hunk/view/InvertedHunkView.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 com.volmit.iris.util.hunk.view; - -import com.volmit.iris.util.hunk.Hunk; - -@SuppressWarnings("ClassCanBeRecord") -public class InvertedHunkView implements Hunk { - private final Hunk src; - - public InvertedHunkView(Hunk src) { - this.src = src; - } - - @Override - public void setRaw(int x, int y, int z, T t) { - src.setRaw(x, (getHeight() - 1) - y, z, t); - } - - @Override - public T getRaw(int x, int y, int z) { - return src.getRaw(x, y, z); - } - - @Override - public int getWidth() { - return src.getWidth(); - } - - @Override - public int getDepth() { - return src.getDepth(); - } - - @Override - public int getHeight() { - return src.getHeight(); - } - - @Override - public Hunk getSource() { - return src; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/hunk/view/ListeningHunk.java b/core/src/main/java/com/volmit/iris/util/hunk/view/ListeningHunk.java deleted file mode 100644 index f33fb5734..000000000 --- a/core/src/main/java/com/volmit/iris/util/hunk/view/ListeningHunk.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 com.volmit.iris.util.hunk.view; - -import com.volmit.iris.util.function.Consumer4; -import com.volmit.iris.util.hunk.Hunk; - -@SuppressWarnings("ClassCanBeRecord") -public class ListeningHunk implements Hunk { - private final Hunk src; - private final Consumer4 listener; - - public ListeningHunk(Hunk src, Consumer4 listener) { - this.src = src; - this.listener = listener; - } - - @Override - public void setRaw(int x, int y, int z, T t) { - listener.accept(x, y, z, t); - src.setRaw(x, y, z, t); - } - - @Override - public T getRaw(int x, int y, int z) { - return src.getRaw(x, y, z); - } - - @Override - public int getWidth() { - return src.getWidth(); - } - - @Override - public int getHeight() { - return src.getHeight(); - } - - @Override - public int getDepth() { - return src.getDepth(); - } - - @Override - public Hunk getSource() { - return src; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/hunk/view/ReadOnlyHunk.java b/core/src/main/java/com/volmit/iris/util/hunk/view/ReadOnlyHunk.java deleted file mode 100644 index 8448b0468..000000000 --- a/core/src/main/java/com/volmit/iris/util/hunk/view/ReadOnlyHunk.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 com.volmit.iris.util.hunk.view; - -import com.volmit.iris.util.hunk.Hunk; - -@SuppressWarnings("ClassCanBeRecord") -public class ReadOnlyHunk implements Hunk { - private final Hunk src; - - public ReadOnlyHunk(Hunk src) { - this.src = src; - } - - @Override - public void setRaw(int x, int y, int z, T t) { - throw new IllegalStateException("This hunk is read only!"); - } - - @Override - public T getRaw(int x, int y, int z) { - return src.getRaw(x, y, z); - } - - @Override - public void set(int x1, int y1, int z1, int x2, int y2, int z2, T t) { - throw new IllegalStateException("This hunk is read only!"); - } - - @Override - public void fill(T t) { - throw new IllegalStateException("This hunk is read only!"); - } - - @Override - public int getWidth() { - return src.getWidth(); - } - - @Override - public int getHeight() { - return src.getHeight(); - } - - @Override - public int getDepth() { - return src.getDepth(); - } - - @Override - public Hunk getSource() { - return src; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/hunk/view/RotatedXHunkView.java b/core/src/main/java/com/volmit/iris/util/hunk/view/RotatedXHunkView.java deleted file mode 100644 index b18fa3a93..000000000 --- a/core/src/main/java/com/volmit/iris/util/hunk/view/RotatedXHunkView.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 com.volmit.iris.util.hunk.view; - -import com.volmit.iris.util.hunk.Hunk; - -public class RotatedXHunkView implements Hunk { - private final Hunk src; - private final double sin; - private final double cos; - - public RotatedXHunkView(Hunk src, double deg) { - this.src = src; - this.sin = Math.sin(Math.toRadians(deg)); - this.cos = Math.cos(Math.toRadians(deg)); - } - - @Override - public void setRaw(int x, int y, int z, T t) { - int yc = (int) Math.round(cos * (getHeight() / 2f) - sin * (getDepth() / 2f)); - int zc = (int) Math.round(sin * (getHeight() / 2f) + cos * (getDepth() / 2f)); - src.setIfExists(x, - (int) Math.round(cos * (y - yc) - sin * (z - zc)) - yc, - (int) Math.round(sin * y - yc + cos * (z - zc)) - zc, - t); - } - - @Override - public T getRaw(int x, int y, int z) { - int yc = (int) Math.round(cos * (getHeight() / 2f) - sin * (getDepth() / 2f)); - int zc = (int) Math.round(sin * (getHeight() / 2f) + cos * (getDepth() / 2f)); - return src.getIfExists(x, - (int) Math.round(cos * (y - yc) - sin * (z - zc)) - yc, - (int) Math.round(sin * y - yc + cos * (z - zc)) - zc - ); - } - - @Override - public int getWidth() { - return src.getWidth(); - } - - @Override - public int getDepth() { - return src.getDepth(); - } - - @Override - public int getHeight() { - return src.getHeight(); - } - - @Override - public Hunk getSource() { - return src; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/hunk/view/RotatedYHunkView.java b/core/src/main/java/com/volmit/iris/util/hunk/view/RotatedYHunkView.java deleted file mode 100644 index 566cdc2b4..000000000 --- a/core/src/main/java/com/volmit/iris/util/hunk/view/RotatedYHunkView.java +++ /dev/null @@ -1,74 +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 com.volmit.iris.util.hunk.view; - -import com.volmit.iris.util.hunk.Hunk; - -public class RotatedYHunkView implements Hunk { - private final Hunk src; - private final double sin; - private final double cos; - - public RotatedYHunkView(Hunk src, double deg) { - this.src = src; - this.sin = Math.sin(Math.toRadians(deg)); - this.cos = Math.cos(Math.toRadians(deg)); - } - - @Override - public void setRaw(int x, int y, int z, T t) { - int xc = (int) Math.round(cos * (getWidth() / 2f) + sin * (getDepth() / 2f)); - int zc = (int) Math.round(-sin * (getWidth() / 2f) + cos * (getDepth() / 2f)); - src.setIfExists((int) - Math.round(cos * (x - xc) + sin * (z - zc)) - xc, - y, - (int) Math.round(-sin * (x - xc) + cos * (z - zc)) - zc, t); - } - - @Override - public T getRaw(int x, int y, int z) { - int xc = (int) Math.round(cos * (getWidth() / 2f) + sin * (getDepth() / 2f)); - int zc = (int) Math.round(-sin * (getWidth() / 2f) + cos * (getDepth() / 2f)); - return src.getIfExists( - (int) Math.round(cos * (x - xc) + sin * (z - zc)) - xc, - y, - (int) Math.round(-sin * (x - xc) + cos * (z - zc)) - zc - ); - } - - @Override - public int getWidth() { - return src.getWidth(); - } - - @Override - public int getDepth() { - return src.getDepth(); - } - - @Override - public int getHeight() { - return src.getHeight(); - } - - @Override - public Hunk getSource() { - return src; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/hunk/view/RotatedZHunkView.java b/core/src/main/java/com/volmit/iris/util/hunk/view/RotatedZHunkView.java deleted file mode 100644 index ff68d26cf..000000000 --- a/core/src/main/java/com/volmit/iris/util/hunk/view/RotatedZHunkView.java +++ /dev/null @@ -1,69 +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 com.volmit.iris.util.hunk.view; - -import com.volmit.iris.util.hunk.Hunk; - -public class RotatedZHunkView implements Hunk { - private final Hunk src; - private final double sin; - private final double cos; - - public RotatedZHunkView(Hunk src, double deg) { - this.src = src; - this.sin = Math.sin(Math.toRadians(deg)); - this.cos = Math.cos(Math.toRadians(deg)); - } - - @Override - public void setRaw(int x, int y, int z, T t) { - int xc = (int) Math.round(cos * (getWidth() / 2f) - sin * (getHeight() / 2f)); - int yc = (int) Math.round(sin * (getWidth() / 2f) + cos * (getHeight() / 2f)); - src.setIfExists((int) Math.round(cos * (x - xc) - sin * (y - yc)) - xc, (int) Math.round(sin * (x - xc) + cos * (y - yc)) - yc, z, t); - } - - @Override - public T getRaw(int x, int y, int z) { - int xc = (int) Math.round(cos * (getWidth() / 2f) - sin * (getHeight() / 2f)); - int yc = (int) Math.round(sin * (getWidth() / 2f) + cos * (getHeight() / 2f)); - return src.getIfExists((int) Math.round(cos * (x - xc) - sin * (y - yc)) - xc, - (int) Math.round(sin * (x - xc) + cos * (y - yc)) - yc - , z); - } - - @Override - public int getWidth() { - return src.getWidth(); - } - - @Override - public int getDepth() { - return src.getDepth(); - } - - @Override - public int getHeight() { - return src.getHeight(); - } - - @Override - public Hunk getSource() { - return src; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/hunk/view/SynchronizedHunkView.java b/core/src/main/java/com/volmit/iris/util/hunk/view/SynchronizedHunkView.java deleted file mode 100644 index 5198c0c5a..000000000 --- a/core/src/main/java/com/volmit/iris/util/hunk/view/SynchronizedHunkView.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 com.volmit.iris.util.hunk.view; - -import com.volmit.iris.util.hunk.Hunk; - -@SuppressWarnings("ClassCanBeRecord") -public class SynchronizedHunkView implements Hunk { - private final Hunk src; - - public SynchronizedHunkView(Hunk src) { - this.src = src; - } - - @Override - public void setRaw(int x, int y, int z, T t) { - synchronized (src) { - src.setRaw(x, y, z, t); - } - } - - @Override - public T getRaw(int x, int y, int z) { - return src.getRaw(x, y, z); - } - - @Override - public int getWidth() { - return src.getWidth(); - } - - @Override - public int getHeight() { - return src.getHeight(); - } - - @Override - public int getDepth() { - return src.getDepth(); - } - - @Override - public Hunk getSource() { - return src; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/hunk/view/WriteTrackHunk.java b/core/src/main/java/com/volmit/iris/util/hunk/view/WriteTrackHunk.java deleted file mode 100644 index ee7b68c33..000000000 --- a/core/src/main/java/com/volmit/iris/util/hunk/view/WriteTrackHunk.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 com.volmit.iris.util.hunk.view; - -import com.volmit.iris.util.hunk.Hunk; - -import java.util.concurrent.atomic.AtomicBoolean; - -@SuppressWarnings("ClassCanBeRecord") -public class WriteTrackHunk implements Hunk { - private final Hunk src; - private final AtomicBoolean b; - - public WriteTrackHunk(Hunk src, AtomicBoolean b) { - this.src = src; - this.b = b; - } - - @Override - public void setRaw(int x, int y, int z, T t) { - if (!b.get()) { - b.set(true); - } - - src.setRaw(x, y, z, t); - } - - @Override - public T getRaw(int x, int y, int z) { - return src.getRaw(x, y, z); - } - - @Override - public int getWidth() { - return src.getWidth(); - } - - @Override - public int getHeight() { - return src.getHeight(); - } - - @Override - public int getDepth() { - return src.getDepth(); - } - - @Override - public Hunk getSource() { - return src; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/interpolation/CompiledStarcast.java b/core/src/main/java/com/volmit/iris/util/interpolation/CompiledStarcast.java deleted file mode 100644 index b466ffd8c..000000000 --- a/core/src/main/java/com/volmit/iris/util/interpolation/CompiledStarcast.java +++ /dev/null @@ -1,10289 +0,0 @@ -package com.volmit.iris.util.interpolation; - -import com.volmit.iris.util.function.NoiseProvider; - -public class CompiledStarcast { - private static final float[] MAGIC = {0.0F, 1.0F, 1.2246469E-16F, -1.0F - , 0.8660254F, -0.5F, -0.8660254F, 6.123234E-17F - , -1.8369701E-16F, 0.95105654F, 0.309017F, 0.58778524F - , -0.809017F, -0.58778524F, -0.95105654F, 0.5F - , 0.777146F, 0.6293204F, 0.9781476F, -0.20791169F - , 0.4539905F, -0.8910065F, -0.40673664F, -0.9135454F - , -0.9659258F, -0.25881904F, -0.052335955F, 0.9986295F - , 0.70710677F, -0.70710677F, 0.64278764F, 0.76604444F - , 0.9848077F, 0.17364818F, 0.34202015F, -0.9396926F - , -0.34202015F, -0.9848077F, -0.64278764F, 0.809017F - , -0.309017F, 0.52991927F, 0.8480481F, 0.89879405F - , 0.43837115F, 0.9945219F, -0.104528464F, 0.7880108F - , -0.6156615F, -0.9781476F, -0.6946584F, -0.7193398F - , -0.9702957F, -0.2419219F, -0.1391731F, 0.99026805F - , 0.8910065F, 0.98768836F, 0.15643446F, -0.15643446F - , -0.98768836F, -0.4539905F, 0.42261827F, 0.9063078F - , 0.9659258F, 0.25881904F, -0.17364818F, 0.81915206F - , -0.57357645F, 0.087155744F, -0.9961947F, 0.40673664F - , 0.9135454F, 0.7431448F, 0.6691306F, 0.20791169F - , -0.9945219F, -0.7431448F, 0.37460658F, 0.92718387F - , 0.6946584F, 0.7193398F, 0.99939084F, 0.034899496F - , 0.9396926F, -0.6691306F, -0.89879405F, 0.06975647F - , -0.9975641F, -0.76604444F, -0.88294756F, -0.46947157F - , -0.9612617F, 0.27563736F, -0.7880108F, 0.6156615F - , 0.35836795F, 0.9335804F, 0.104528464F, 0.54463905F - , -0.83867055F, -0.777146F, -0.6293204F, -0.9986295F - , 0.052335955F, 0.2923717F, 0.9563047F, 0.5591929F - , 0.82903755F, 0.9961947F, 0.8746197F, -0.4848096F - , -0.12186934F, -0.99254614F, -0.656059F, -0.7547096F - , -0.8480481F, -0.52991927F, -0.99939084F, -0.94551855F - , 0.32556817F, -0.60181504F, 0.7986355F, 0.9612617F - , -0.37460658F, -0.82903755F, 0.2419219F, 0.9702957F - , 0.46947157F, 0.88294756F, -0.034899496F, -0.27563736F - , -0.06975647F, 0.22495106F, 0.97437006F, 0.9998477F - , -0.017452406F, 0.60181504F, -0.7986355F, 0.190809F - , -0.98162717F, -0.92050487F, -0.39073113F, -0.8746197F - , 0.4848096F, 0.98162717F, 0.83867055F, 0.57357645F - , 0.8571673F, -0.5150381F, -0.9563047F, -0.2923717F - , 0.7547096F, -0.32556817F, 0.94551855F, 0.1391731F - , -0.92718387F, 0.12186934F, 0.99254614F, 0.656059F - , 0.7313537F, -0.6819984F, -0.9063078F, -0.42261827F - , -0.190809F, -0.8571673F, 0.5150381F, -0.087155744F - , -0.81915206F, 0.9975641F, -0.43837115F, -0.5591929F - , -0.99026805F, -0.35836795F, -0.54463905F, -0.9335804F}; - - public static float getStarcast(float x, float z, float r, float checks, NoiseProvider n) { - if (checks >= 1 && checks <= 128) { - if (checks < 2) { - return sc1(x, z, r, n); - } - if (checks < 3) { - return sc2(x, z, r, n); - } - if (checks < 4) { - return sc3(x, z, r, n); - } - if (checks < 5) { - return sc4(x, z, r, n); - } - if (checks < 6) { - return sc5(x, z, r, n); - } - if (checks < 7) { - return sc6(x, z, r, n); - } - if (checks < 8) { - return sc7(x, z, r, n); - } - if (checks < 9) { - return sc8(x, z, r, n); - } - if (checks < 10) { - return sc9(x, z, r, n); - } - if (checks < 11) { - return sc10(x, z, r, n); - } - if (checks < 12) { - return sc11(x, z, r, n); - } - if (checks < 13) { - return sc12(x, z, r, n); - } - if (checks < 14) { - return sc13(x, z, r, n); - } - if (checks < 15) { - return sc14(x, z, r, n); - } - if (checks < 16) { - return sc15(x, z, r, n); - } - if (checks < 17) { - return sc16(x, z, r, n); - } - if (checks < 18) { - return sc17(x, z, r, n); - } - if (checks < 19) { - return sc18(x, z, r, n); - } - if (checks < 20) { - return sc19(x, z, r, n); - } - if (checks < 21) { - return sc20(x, z, r, n); - } - if (checks < 22) { - return sc21(x, z, r, n); - } - if (checks < 23) { - return sc22(x, z, r, n); - } - if (checks < 24) { - return sc23(x, z, r, n); - } - if (checks < 25) { - return sc24(x, z, r, n); - } - if (checks < 26) { - return sc25(x, z, r, n); - } - if (checks < 27) { - return sc26(x, z, r, n); - } - if (checks < 28) { - return sc27(x, z, r, n); - } - if (checks < 29) { - return sc28(x, z, r, n); - } - if (checks < 30) { - return sc29(x, z, r, n); - } - if (checks < 31) { - return sc30(x, z, r, n); - } - if (checks < 32) { - return sc31(x, z, r, n); - } - if (checks < 33) { - return sc32(x, z, r, n); - } - if (checks < 34) { - return sc33(x, z, r, n); - } - if (checks < 35) { - return sc34(x, z, r, n); - } - if (checks < 36) { - return sc35(x, z, r, n); - } - if (checks < 37) { - return sc36(x, z, r, n); - } - if (checks < 38) { - return sc37(x, z, r, n); - } - if (checks < 39) { - return sc38(x, z, r, n); - } - if (checks < 40) { - return sc39(x, z, r, n); - } - if (checks < 41) { - return sc40(x, z, r, n); - } - if (checks < 42) { - return sc41(x, z, r, n); - } - if (checks < 43) { - return sc42(x, z, r, n); - } - if (checks < 44) { - return sc43(x, z, r, n); - } - if (checks < 45) { - return sc44(x, z, r, n); - } - if (checks < 46) { - return sc45(x, z, r, n); - } - if (checks < 47) { - return sc46(x, z, r, n); - } - if (checks < 48) { - return sc47(x, z, r, n); - } - if (checks < 49) { - return sc48(x, z, r, n); - } - if (checks < 50) { - return sc49(x, z, r, n); - } - if (checks < 51) { - return sc50(x, z, r, n); - } - if (checks < 52) { - return sc51(x, z, r, n); - } - if (checks < 53) { - return sc52(x, z, r, n); - } - if (checks < 54) { - return sc53(x, z, r, n); - } - if (checks < 55) { - return sc54(x, z, r, n); - } - if (checks < 56) { - return sc55(x, z, r, n); - } - if (checks < 57) { - return sc56(x, z, r, n); - } - if (checks < 58) { - return sc57(x, z, r, n); - } - if (checks < 59) { - return sc58(x, z, r, n); - } - if (checks < 60) { - return sc59(x, z, r, n); - } - if (checks < 61) { - return sc60(x, z, r, n); - } - if (checks < 62) { - return sc61(x, z, r, n); - } - if (checks < 63) { - return sc62(x, z, r, n); - } - if (checks < 64) { - return sc63(x, z, r, n); - } - if (checks < 65) { - return sc64(x, z, r, n); - } - if (checks < 66) { - return sc65(x, z, r, n); - } - if (checks < 67) { - return sc66(x, z, r, n); - } - if (checks < 68) { - return sc67(x, z, r, n); - } - if (checks < 69) { - return sc68(x, z, r, n); - } - if (checks < 70) { - return sc69(x, z, r, n); - } - if (checks < 71) { - return sc70(x, z, r, n); - } - if (checks < 72) { - return sc71(x, z, r, n); - } - if (checks < 73) { - return sc72(x, z, r, n); - } - if (checks < 74) { - return sc73(x, z, r, n); - } - if (checks < 75) { - return sc74(x, z, r, n); - } - if (checks < 76) { - return sc75(x, z, r, n); - } - if (checks < 77) { - return sc76(x, z, r, n); - } - if (checks < 78) { - return sc77(x, z, r, n); - } - if (checks < 79) { - return sc78(x, z, r, n); - } - if (checks < 80) { - return sc79(x, z, r, n); - } - if (checks < 81) { - return sc80(x, z, r, n); - } - if (checks < 82) { - return sc81(x, z, r, n); - } - if (checks < 83) { - return sc82(x, z, r, n); - } - if (checks < 84) { - return sc83(x, z, r, n); - } - if (checks < 85) { - return sc84(x, z, r, n); - } - if (checks < 86) { - return sc85(x, z, r, n); - } - if (checks < 87) { - return sc86(x, z, r, n); - } - if (checks < 88) { - return sc87(x, z, r, n); - } - if (checks < 89) { - return sc88(x, z, r, n); - } - if (checks < 90) { - return sc89(x, z, r, n); - } - if (checks < 91) { - return sc90(x, z, r, n); - } - if (checks < 92) { - return sc91(x, z, r, n); - } - if (checks < 93) { - return sc92(x, z, r, n); - } - if (checks < 94) { - return sc93(x, z, r, n); - } - if (checks < 95) { - return sc94(x, z, r, n); - } - if (checks < 96) { - return sc95(x, z, r, n); - } - if (checks < 97) { - return sc96(x, z, r, n); - } - if (checks < 98) { - return sc97(x, z, r, n); - } - if (checks < 99) { - return sc98(x, z, r, n); - } - if (checks < 100) { - return sc99(x, z, r, n); - } - if (checks < 101) { - return sc100(x, z, r, n); - } - if (checks < 102) { - return sc101(x, z, r, n); - } - if (checks < 103) { - return sc102(x, z, r, n); - } - if (checks < 104) { - return sc103(x, z, r, n); - } - if (checks < 105) { - return sc104(x, z, r, n); - } - if (checks < 106) { - return sc105(x, z, r, n); - } - if (checks < 107) { - return sc106(x, z, r, n); - } - if (checks < 108) { - return sc107(x, z, r, n); - } - if (checks < 109) { - return sc108(x, z, r, n); - } - if (checks < 110) { - return sc109(x, z, r, n); - } - if (checks < 111) { - return sc110(x, z, r, n); - } - if (checks < 112) { - return sc111(x, z, r, n); - } - if (checks < 113) { - return sc112(x, z, r, n); - } - if (checks < 114) { - return sc113(x, z, r, n); - } - if (checks < 115) { - return sc114(x, z, r, n); - } - if (checks < 116) { - return sc115(x, z, r, n); - } - if (checks < 117) { - return sc116(x, z, r, n); - } - if (checks < 118) { - return sc117(x, z, r, n); - } - if (checks < 119) { - return sc118(x, z, r, n); - } - if (checks < 120) { - return sc119(x, z, r, n); - } - if (checks < 121) { - return sc120(x, z, r, n); - } - if (checks < 122) { - return sc121(x, z, r, n); - } - if (checks < 123) { - return sc122(x, z, r, n); - } - if (checks < 124) { - return sc123(x, z, r, n); - } - if (checks < 125) { - return sc124(x, z, r, n); - } - if (checks < 126) { - return sc125(x, z, r, n); - } - if (checks < 127) { - return sc126(x, z, r, n); - } - if (checks < 128) { - return sc127(x, z, r, n); - } - return sc128(x, z, r, n); - } - - float m = 360F / checks; - float v = 0; - - for (int i = 0; i < 360; i += m) { - float sin = (float) Math.sin(Math.toRadians(i)); - float cos = (float) Math.cos(Math.toRadians(i)); - float cx = x + ((r * cos) - (r * sin)); - float cz = z + ((r * sin) + (r * cos)); - v += n.noise(cx, cz); - } - - return v / checks; - } - - private static float sc1(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1]))))) * 1.0F; - } - - private static float sc2(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3]))))) * 0.5F; - } - - private static float sc3(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5]))))) * 0.33333334F; - } - - private static float sc4(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8]))))) * 0.25F; - } - - private static float sc5(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10]))))) * 0.2F; - } - - private static float sc6(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15]))))) * 0.16666667F; - } - - private static float sc7(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.14285715F; - } - - private static float sc8(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28]))))) * 0.125F; - } - - private static float sc9(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31]))))) * 0.11111111F; - } - - private static float sc10(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39]))))) * 0.1F; - } - - private static float sc11(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55]))))) * 0.09090909F; - } - - private static float sc12(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4]))))) * 0.083333336F; - } - - private static float sc13(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57]))))) * 0.07692308F; - } - - private static float sc14(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[63]) - (r * MAGIC[62])), z + ((r * MAGIC[62]) + (r * MAGIC[63])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[68]) - (r * MAGIC[67])), z + ((r * MAGIC[67]) + (r * MAGIC[68])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[70]) - (r * MAGIC[69])), z + ((r * MAGIC[69]) + (r * MAGIC[70])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[69]) - (r * MAGIC[70])), z + ((r * MAGIC[70]) + (r * MAGIC[69])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[68])), z + ((r * MAGIC[68]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32]))))) * 0.071428575F; - } - - private static float sc15(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72]))))) * 0.06666667F; - } - - private static float sc16(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[79]) - (r * MAGIC[78])), z + ((r * MAGIC[78]) + (r * MAGIC[79])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[86]) - (r * MAGIC[44])), z + ((r * MAGIC[44]) + (r * MAGIC[86])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[91]) - (r * MAGIC[90])), z + ((r * MAGIC[90]) + (r * MAGIC[91])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[93]) - (r * MAGIC[92])), z + ((r * MAGIC[92]) + (r * MAGIC[93])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55]))))) * 0.0625F; - } - - private static float sc17(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.05882353F; - } - - private static float sc18(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84]))))) * 0.055555556F; - } - - private static float sc19(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9]))))) * 0.05263158F; - } - - private static float sc20(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9]))))) * 0.05F; - } - - private static float sc21(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[106]) - (r * MAGIC[105])), z + ((r * MAGIC[105]) + (r * MAGIC[106])))) - + ((float) n.noise(x + ((r * MAGIC[108]) - (r * MAGIC[107])), z + ((r * MAGIC[107]) + (r * MAGIC[108])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[69]) - (r * MAGIC[109])), z + ((r * MAGIC[109]) + (r * MAGIC[69])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[111]) - (r * MAGIC[110])), z + ((r * MAGIC[110]) + (r * MAGIC[111])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[113]) - (r * MAGIC[112])), z + ((r * MAGIC[112]) + (r * MAGIC[113])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[115]) - (r * MAGIC[114])), z + ((r * MAGIC[114]) + (r * MAGIC[115])))) - + ((float) n.noise(x + ((r * MAGIC[117]) - (r * MAGIC[116])), z + ((r * MAGIC[116]) + (r * MAGIC[117])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[120]) - (r * MAGIC[119])), z + ((r * MAGIC[119]) + (r * MAGIC[120])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[122]) - (r * MAGIC[121])), z + ((r * MAGIC[121]) + (r * MAGIC[122])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.04761905F; - } - - private static float sc22(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55]))))) * 0.045454547F; - } - - private static float sc23(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64]))))) * 0.04347826F; - } - - private static float sc24(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64]))))) * 0.041666668F; - } - - private static float sc25(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[127]) - (r * MAGIC[126])), z + ((r * MAGIC[126]) + (r * MAGIC[127])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[54]) - (r * MAGIC[55])), z + ((r * MAGIC[55]) + (r * MAGIC[54])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[86]) - (r * MAGIC[44])), z + ((r * MAGIC[44]) + (r * MAGIC[86])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[118]) - (r * MAGIC[130])), z + ((r * MAGIC[130]) + (r * MAGIC[118])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[117]) - (r * MAGIC[116])), z + ((r * MAGIC[116]) + (r * MAGIC[117])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[132]) - (r * MAGIC[88])), z + ((r * MAGIC[88]) + (r * MAGIC[132])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[47]) - (r * MAGIC[48])), z + ((r * MAGIC[48]) + (r * MAGIC[47])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32]))))) * 0.04F; - } - - private static float sc26(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[134]) - (r * MAGIC[133])), z + ((r * MAGIC[133]) + (r * MAGIC[134])))) - + ((float) n.noise(x + ((r * MAGIC[43]) - (r * MAGIC[44])), z + ((r * MAGIC[44]) + (r * MAGIC[43])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[62]) - (r * MAGIC[63])), z + ((r * MAGIC[63]) + (r * MAGIC[62])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[136]) - (r * MAGIC[135])), z + ((r * MAGIC[135]) + (r * MAGIC[136])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[138]) - (r * MAGIC[137])), z + ((r * MAGIC[137]) + (r * MAGIC[138])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[140]) - (r * MAGIC[139])), z + ((r * MAGIC[139]) + (r * MAGIC[140])))) - + ((float) n.noise(x + ((r * MAGIC[118]) - (r * MAGIC[130])), z + ((r * MAGIC[130]) + (r * MAGIC[118])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[115]) - (r * MAGIC[114])), z + ((r * MAGIC[114]) + (r * MAGIC[115])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[142]) - (r * MAGIC[141])), z + ((r * MAGIC[141]) + (r * MAGIC[142])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[93]) - (r * MAGIC[92])), z + ((r * MAGIC[92]) + (r * MAGIC[93])))) - + ((float) n.noise(x + ((r * MAGIC[144]) - (r * MAGIC[143])), z + ((r * MAGIC[143]) + (r * MAGIC[144])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[68])), z + ((r * MAGIC[68]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[79]) - (r * MAGIC[124])), z + ((r * MAGIC[124]) + (r * MAGIC[79])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57]))))) * 0.03846154F; - } - - private static float sc27(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[134]) - (r * MAGIC[133])), z + ((r * MAGIC[133]) + (r * MAGIC[134])))) - + ((float) n.noise(x + ((r * MAGIC[43]) - (r * MAGIC[44])), z + ((r * MAGIC[44]) + (r * MAGIC[43])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[62]) - (r * MAGIC[63])), z + ((r * MAGIC[63]) + (r * MAGIC[62])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[136]) - (r * MAGIC[135])), z + ((r * MAGIC[135]) + (r * MAGIC[136])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[138]) - (r * MAGIC[137])), z + ((r * MAGIC[137]) + (r * MAGIC[138])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[140]) - (r * MAGIC[139])), z + ((r * MAGIC[139]) + (r * MAGIC[140])))) - + ((float) n.noise(x + ((r * MAGIC[118]) - (r * MAGIC[130])), z + ((r * MAGIC[130]) + (r * MAGIC[118])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[115]) - (r * MAGIC[114])), z + ((r * MAGIC[114]) + (r * MAGIC[115])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[142]) - (r * MAGIC[141])), z + ((r * MAGIC[141]) + (r * MAGIC[142])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[93]) - (r * MAGIC[92])), z + ((r * MAGIC[92]) + (r * MAGIC[93])))) - + ((float) n.noise(x + ((r * MAGIC[144]) - (r * MAGIC[143])), z + ((r * MAGIC[143]) + (r * MAGIC[144])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[68])), z + ((r * MAGIC[68]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[79]) - (r * MAGIC[124])), z + ((r * MAGIC[124]) + (r * MAGIC[79])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57]))))) * 0.037037037F; - } - - private static float sc28(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18]))))) * 0.035714287F; - } - - private static float sc29(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18]))))) * 0.03448276F; - } - - private static float sc30(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18]))))) * 0.033333335F; - } - - private static float sc31(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[145]) - (r * MAGIC[139])), z + ((r * MAGIC[139]) + (r * MAGIC[145])))) - + ((float) n.noise(x + ((r * MAGIC[79]) - (r * MAGIC[78])), z + ((r * MAGIC[78]) + (r * MAGIC[79])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[147]) - (r * MAGIC[67])), z + ((r * MAGIC[67]) + (r * MAGIC[147])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[133]) - (r * MAGIC[134])), z + ((r * MAGIC[134]) + (r * MAGIC[133])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[149]) - (r * MAGIC[148])), z + ((r * MAGIC[148]) + (r * MAGIC[149])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[138]) - (r * MAGIC[137])), z + ((r * MAGIC[137]) + (r * MAGIC[138])))) - + ((float) n.noise(x + ((r * MAGIC[86]) - (r * MAGIC[44])), z + ((r * MAGIC[44]) + (r * MAGIC[86])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[113]) - (r * MAGIC[112])), z + ((r * MAGIC[112]) + (r * MAGIC[113])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[143]) - (r * MAGIC[111])), z + ((r * MAGIC[111]) + (r * MAGIC[143])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[91]) - (r * MAGIC[90])), z + ((r * MAGIC[90]) + (r * MAGIC[91])))) - + ((float) n.noise(x + ((r * MAGIC[151]) - (r * MAGIC[150])), z + ((r * MAGIC[150]) + (r * MAGIC[151])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[69]) - (r * MAGIC[70])), z + ((r * MAGIC[70]) + (r * MAGIC[69])))) - + ((float) n.noise(x + ((r * MAGIC[93]) - (r * MAGIC[92])), z + ((r * MAGIC[92]) + (r * MAGIC[93])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[152]) - (r * MAGIC[114])), z + ((r * MAGIC[114]) + (r * MAGIC[152])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[154]) - (r * MAGIC[153])), z + ((r * MAGIC[153]) + (r * MAGIC[154])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55]))))) * 0.032258064F; - } - - private static float sc32(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[145]) - (r * MAGIC[139])), z + ((r * MAGIC[139]) + (r * MAGIC[145])))) - + ((float) n.noise(x + ((r * MAGIC[79]) - (r * MAGIC[78])), z + ((r * MAGIC[78]) + (r * MAGIC[79])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[147]) - (r * MAGIC[67])), z + ((r * MAGIC[67]) + (r * MAGIC[147])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[133]) - (r * MAGIC[134])), z + ((r * MAGIC[134]) + (r * MAGIC[133])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[149]) - (r * MAGIC[148])), z + ((r * MAGIC[148]) + (r * MAGIC[149])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[138]) - (r * MAGIC[137])), z + ((r * MAGIC[137]) + (r * MAGIC[138])))) - + ((float) n.noise(x + ((r * MAGIC[86]) - (r * MAGIC[44])), z + ((r * MAGIC[44]) + (r * MAGIC[86])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[113]) - (r * MAGIC[112])), z + ((r * MAGIC[112]) + (r * MAGIC[113])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[143]) - (r * MAGIC[111])), z + ((r * MAGIC[111]) + (r * MAGIC[143])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[91]) - (r * MAGIC[90])), z + ((r * MAGIC[90]) + (r * MAGIC[91])))) - + ((float) n.noise(x + ((r * MAGIC[151]) - (r * MAGIC[150])), z + ((r * MAGIC[150]) + (r * MAGIC[151])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[69]) - (r * MAGIC[70])), z + ((r * MAGIC[70]) + (r * MAGIC[69])))) - + ((float) n.noise(x + ((r * MAGIC[93]) - (r * MAGIC[92])), z + ((r * MAGIC[92]) + (r * MAGIC[93])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[152]) - (r * MAGIC[114])), z + ((r * MAGIC[114]) + (r * MAGIC[152])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[154]) - (r * MAGIC[153])), z + ((r * MAGIC[153]) + (r * MAGIC[154])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55]))))) * 0.03125F; - } - - private static float sc33(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32]))))) * 0.030303031F; - } - - private static float sc34(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32]))))) * 0.029411765F; - } - - private static float sc35(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32]))))) * 0.028571429F; - } - - private static float sc36(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32]))))) * 0.027777778F; - } - - private static float sc37(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57]))))) * 0.027027028F; - } - - private static float sc38(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57]))))) * 0.02631579F; - } - - private static float sc39(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57]))))) * 0.025641026F; - } - - private static float sc40(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57]))))) * 0.025F; - } - - private static float sc41(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55]))))) * 0.024390243F; - } - - private static float sc42(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55]))))) * 0.023809524F; - } - - private static float sc43(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55]))))) * 0.023255814F; - } - - private static float sc44(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55]))))) * 0.022727273F; - } - - private static float sc45(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55]))))) * 0.022222223F; - } - - private static float sc46(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[158]) - (r * MAGIC[157])), z + ((r * MAGIC[157]) + (r * MAGIC[158])))) - + ((float) n.noise(x + ((r * MAGIC[127]) - (r * MAGIC[126])), z + ((r * MAGIC[126]) + (r * MAGIC[127])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[147])), z + ((r * MAGIC[147]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[159]) - (r * MAGIC[152])), z + ((r * MAGIC[152]) + (r * MAGIC[159])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[133]) - (r * MAGIC[134])), z + ((r * MAGIC[134]) + (r * MAGIC[133])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[136]) - (r * MAGIC[135])), z + ((r * MAGIC[135]) + (r * MAGIC[136])))) - + ((float) n.noise(x + ((r * MAGIC[54]) - (r * MAGIC[55])), z + ((r * MAGIC[55]) + (r * MAGIC[54])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[111]) - (r * MAGIC[110])), z + ((r * MAGIC[110]) + (r * MAGIC[111])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[161]) - (r * MAGIC[160])), z + ((r * MAGIC[160]) + (r * MAGIC[161])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[86]) - (r * MAGIC[44])), z + ((r * MAGIC[44]) + (r * MAGIC[86])))) - + ((float) n.noise(x + ((r * MAGIC[119]) - (r * MAGIC[120])), z + ((r * MAGIC[120]) + (r * MAGIC[119])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[70]) - (r * MAGIC[69])), z + ((r * MAGIC[69]) + (r * MAGIC[70])))) - + ((float) n.noise(x + ((r * MAGIC[118]) - (r * MAGIC[130])), z + ((r * MAGIC[130]) + (r * MAGIC[118])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[141]) - (r * MAGIC[142])), z + ((r * MAGIC[142]) + (r * MAGIC[141])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[138]) - (r * MAGIC[121])), z + ((r * MAGIC[121]) + (r * MAGIC[138])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[117]) - (r * MAGIC[116])), z + ((r * MAGIC[116]) + (r * MAGIC[117])))) - + ((float) n.noise(x + ((r * MAGIC[163]) - (r * MAGIC[162])), z + ((r * MAGIC[162]) + (r * MAGIC[163])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[164]) - (r * MAGIC[140])), z + ((r * MAGIC[140]) + (r * MAGIC[164])))) - + ((float) n.noise(x + ((r * MAGIC[132]) - (r * MAGIC[88])), z + ((r * MAGIC[88]) + (r * MAGIC[132])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[105]) - (r * MAGIC[150])), z + ((r * MAGIC[150]) + (r * MAGIC[105])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[166]) - (r * MAGIC[165])), z + ((r * MAGIC[165]) + (r * MAGIC[166])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[47]) - (r * MAGIC[48])), z + ((r * MAGIC[48]) + (r * MAGIC[47])))) - + ((float) n.noise(x + ((r * MAGIC[148]) - (r * MAGIC[149])), z + ((r * MAGIC[149]) + (r * MAGIC[148])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[106]) - (r * MAGIC[151])), z + ((r * MAGIC[151]) + (r * MAGIC[106])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.02173913F; - } - - private static float sc47(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[158]) - (r * MAGIC[157])), z + ((r * MAGIC[157]) + (r * MAGIC[158])))) - + ((float) n.noise(x + ((r * MAGIC[127]) - (r * MAGIC[126])), z + ((r * MAGIC[126]) + (r * MAGIC[127])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[147])), z + ((r * MAGIC[147]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[159]) - (r * MAGIC[152])), z + ((r * MAGIC[152]) + (r * MAGIC[159])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[133]) - (r * MAGIC[134])), z + ((r * MAGIC[134]) + (r * MAGIC[133])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[136]) - (r * MAGIC[135])), z + ((r * MAGIC[135]) + (r * MAGIC[136])))) - + ((float) n.noise(x + ((r * MAGIC[54]) - (r * MAGIC[55])), z + ((r * MAGIC[55]) + (r * MAGIC[54])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[111]) - (r * MAGIC[110])), z + ((r * MAGIC[110]) + (r * MAGIC[111])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[161]) - (r * MAGIC[160])), z + ((r * MAGIC[160]) + (r * MAGIC[161])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[86]) - (r * MAGIC[44])), z + ((r * MAGIC[44]) + (r * MAGIC[86])))) - + ((float) n.noise(x + ((r * MAGIC[119]) - (r * MAGIC[120])), z + ((r * MAGIC[120]) + (r * MAGIC[119])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[70]) - (r * MAGIC[69])), z + ((r * MAGIC[69]) + (r * MAGIC[70])))) - + ((float) n.noise(x + ((r * MAGIC[118]) - (r * MAGIC[130])), z + ((r * MAGIC[130]) + (r * MAGIC[118])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[141]) - (r * MAGIC[142])), z + ((r * MAGIC[142]) + (r * MAGIC[141])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[138]) - (r * MAGIC[121])), z + ((r * MAGIC[121]) + (r * MAGIC[138])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[117]) - (r * MAGIC[116])), z + ((r * MAGIC[116]) + (r * MAGIC[117])))) - + ((float) n.noise(x + ((r * MAGIC[163]) - (r * MAGIC[162])), z + ((r * MAGIC[162]) + (r * MAGIC[163])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[164]) - (r * MAGIC[140])), z + ((r * MAGIC[140]) + (r * MAGIC[164])))) - + ((float) n.noise(x + ((r * MAGIC[132]) - (r * MAGIC[88])), z + ((r * MAGIC[88]) + (r * MAGIC[132])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[105]) - (r * MAGIC[150])), z + ((r * MAGIC[150]) + (r * MAGIC[105])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[166]) - (r * MAGIC[165])), z + ((r * MAGIC[165]) + (r * MAGIC[166])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[47]) - (r * MAGIC[48])), z + ((r * MAGIC[48]) + (r * MAGIC[47])))) - + ((float) n.noise(x + ((r * MAGIC[148]) - (r * MAGIC[149])), z + ((r * MAGIC[149]) + (r * MAGIC[148])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[106]) - (r * MAGIC[151])), z + ((r * MAGIC[151]) + (r * MAGIC[106])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.021276595F; - } - - private static float sc48(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[158]) - (r * MAGIC[157])), z + ((r * MAGIC[157]) + (r * MAGIC[158])))) - + ((float) n.noise(x + ((r * MAGIC[127]) - (r * MAGIC[126])), z + ((r * MAGIC[126]) + (r * MAGIC[127])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[147])), z + ((r * MAGIC[147]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[159]) - (r * MAGIC[152])), z + ((r * MAGIC[152]) + (r * MAGIC[159])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[133]) - (r * MAGIC[134])), z + ((r * MAGIC[134]) + (r * MAGIC[133])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[136]) - (r * MAGIC[135])), z + ((r * MAGIC[135]) + (r * MAGIC[136])))) - + ((float) n.noise(x + ((r * MAGIC[54]) - (r * MAGIC[55])), z + ((r * MAGIC[55]) + (r * MAGIC[54])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[111]) - (r * MAGIC[110])), z + ((r * MAGIC[110]) + (r * MAGIC[111])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[161]) - (r * MAGIC[160])), z + ((r * MAGIC[160]) + (r * MAGIC[161])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[86]) - (r * MAGIC[44])), z + ((r * MAGIC[44]) + (r * MAGIC[86])))) - + ((float) n.noise(x + ((r * MAGIC[119]) - (r * MAGIC[120])), z + ((r * MAGIC[120]) + (r * MAGIC[119])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[70]) - (r * MAGIC[69])), z + ((r * MAGIC[69]) + (r * MAGIC[70])))) - + ((float) n.noise(x + ((r * MAGIC[118]) - (r * MAGIC[130])), z + ((r * MAGIC[130]) + (r * MAGIC[118])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[141]) - (r * MAGIC[142])), z + ((r * MAGIC[142]) + (r * MAGIC[141])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[138]) - (r * MAGIC[121])), z + ((r * MAGIC[121]) + (r * MAGIC[138])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[117]) - (r * MAGIC[116])), z + ((r * MAGIC[116]) + (r * MAGIC[117])))) - + ((float) n.noise(x + ((r * MAGIC[163]) - (r * MAGIC[162])), z + ((r * MAGIC[162]) + (r * MAGIC[163])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[164]) - (r * MAGIC[140])), z + ((r * MAGIC[140]) + (r * MAGIC[164])))) - + ((float) n.noise(x + ((r * MAGIC[132]) - (r * MAGIC[88])), z + ((r * MAGIC[88]) + (r * MAGIC[132])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[105]) - (r * MAGIC[150])), z + ((r * MAGIC[150]) + (r * MAGIC[105])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[166]) - (r * MAGIC[165])), z + ((r * MAGIC[165]) + (r * MAGIC[166])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[47]) - (r * MAGIC[48])), z + ((r * MAGIC[48]) + (r * MAGIC[47])))) - + ((float) n.noise(x + ((r * MAGIC[148]) - (r * MAGIC[149])), z + ((r * MAGIC[149]) + (r * MAGIC[148])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[106]) - (r * MAGIC[151])), z + ((r * MAGIC[151]) + (r * MAGIC[106])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.020833334F; - } - - private static float sc49(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[158]) - (r * MAGIC[157])), z + ((r * MAGIC[157]) + (r * MAGIC[158])))) - + ((float) n.noise(x + ((r * MAGIC[127]) - (r * MAGIC[126])), z + ((r * MAGIC[126]) + (r * MAGIC[127])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[147])), z + ((r * MAGIC[147]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[159]) - (r * MAGIC[152])), z + ((r * MAGIC[152]) + (r * MAGIC[159])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[133]) - (r * MAGIC[134])), z + ((r * MAGIC[134]) + (r * MAGIC[133])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[136]) - (r * MAGIC[135])), z + ((r * MAGIC[135]) + (r * MAGIC[136])))) - + ((float) n.noise(x + ((r * MAGIC[54]) - (r * MAGIC[55])), z + ((r * MAGIC[55]) + (r * MAGIC[54])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[111]) - (r * MAGIC[110])), z + ((r * MAGIC[110]) + (r * MAGIC[111])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[161]) - (r * MAGIC[160])), z + ((r * MAGIC[160]) + (r * MAGIC[161])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[86]) - (r * MAGIC[44])), z + ((r * MAGIC[44]) + (r * MAGIC[86])))) - + ((float) n.noise(x + ((r * MAGIC[119]) - (r * MAGIC[120])), z + ((r * MAGIC[120]) + (r * MAGIC[119])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[70]) - (r * MAGIC[69])), z + ((r * MAGIC[69]) + (r * MAGIC[70])))) - + ((float) n.noise(x + ((r * MAGIC[118]) - (r * MAGIC[130])), z + ((r * MAGIC[130]) + (r * MAGIC[118])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[141]) - (r * MAGIC[142])), z + ((r * MAGIC[142]) + (r * MAGIC[141])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[138]) - (r * MAGIC[121])), z + ((r * MAGIC[121]) + (r * MAGIC[138])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[117]) - (r * MAGIC[116])), z + ((r * MAGIC[116]) + (r * MAGIC[117])))) - + ((float) n.noise(x + ((r * MAGIC[163]) - (r * MAGIC[162])), z + ((r * MAGIC[162]) + (r * MAGIC[163])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[164]) - (r * MAGIC[140])), z + ((r * MAGIC[140]) + (r * MAGIC[164])))) - + ((float) n.noise(x + ((r * MAGIC[132]) - (r * MAGIC[88])), z + ((r * MAGIC[88]) + (r * MAGIC[132])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[105]) - (r * MAGIC[150])), z + ((r * MAGIC[150]) + (r * MAGIC[105])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[166]) - (r * MAGIC[165])), z + ((r * MAGIC[165]) + (r * MAGIC[166])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[47]) - (r * MAGIC[48])), z + ((r * MAGIC[48]) + (r * MAGIC[47])))) - + ((float) n.noise(x + ((r * MAGIC[148]) - (r * MAGIC[149])), z + ((r * MAGIC[149]) + (r * MAGIC[148])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[106]) - (r * MAGIC[151])), z + ((r * MAGIC[151]) + (r * MAGIC[106])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.020408163F; - } - - private static float sc50(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[158]) - (r * MAGIC[157])), z + ((r * MAGIC[157]) + (r * MAGIC[158])))) - + ((float) n.noise(x + ((r * MAGIC[127]) - (r * MAGIC[126])), z + ((r * MAGIC[126]) + (r * MAGIC[127])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[147])), z + ((r * MAGIC[147]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[159]) - (r * MAGIC[152])), z + ((r * MAGIC[152]) + (r * MAGIC[159])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[133]) - (r * MAGIC[134])), z + ((r * MAGIC[134]) + (r * MAGIC[133])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[136]) - (r * MAGIC[135])), z + ((r * MAGIC[135]) + (r * MAGIC[136])))) - + ((float) n.noise(x + ((r * MAGIC[54]) - (r * MAGIC[55])), z + ((r * MAGIC[55]) + (r * MAGIC[54])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[111]) - (r * MAGIC[110])), z + ((r * MAGIC[110]) + (r * MAGIC[111])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[161]) - (r * MAGIC[160])), z + ((r * MAGIC[160]) + (r * MAGIC[161])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[86]) - (r * MAGIC[44])), z + ((r * MAGIC[44]) + (r * MAGIC[86])))) - + ((float) n.noise(x + ((r * MAGIC[119]) - (r * MAGIC[120])), z + ((r * MAGIC[120]) + (r * MAGIC[119])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[70]) - (r * MAGIC[69])), z + ((r * MAGIC[69]) + (r * MAGIC[70])))) - + ((float) n.noise(x + ((r * MAGIC[118]) - (r * MAGIC[130])), z + ((r * MAGIC[130]) + (r * MAGIC[118])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[141]) - (r * MAGIC[142])), z + ((r * MAGIC[142]) + (r * MAGIC[141])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[138]) - (r * MAGIC[121])), z + ((r * MAGIC[121]) + (r * MAGIC[138])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[117]) - (r * MAGIC[116])), z + ((r * MAGIC[116]) + (r * MAGIC[117])))) - + ((float) n.noise(x + ((r * MAGIC[163]) - (r * MAGIC[162])), z + ((r * MAGIC[162]) + (r * MAGIC[163])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[164]) - (r * MAGIC[140])), z + ((r * MAGIC[140]) + (r * MAGIC[164])))) - + ((float) n.noise(x + ((r * MAGIC[132]) - (r * MAGIC[88])), z + ((r * MAGIC[88]) + (r * MAGIC[132])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[105]) - (r * MAGIC[150])), z + ((r * MAGIC[150]) + (r * MAGIC[105])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[166]) - (r * MAGIC[165])), z + ((r * MAGIC[165]) + (r * MAGIC[166])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[47]) - (r * MAGIC[48])), z + ((r * MAGIC[48]) + (r * MAGIC[47])))) - + ((float) n.noise(x + ((r * MAGIC[148]) - (r * MAGIC[149])), z + ((r * MAGIC[149]) + (r * MAGIC[148])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[106]) - (r * MAGIC[151])), z + ((r * MAGIC[151]) + (r * MAGIC[106])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.02F; - } - - private static float sc51(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[158]) - (r * MAGIC[157])), z + ((r * MAGIC[157]) + (r * MAGIC[158])))) - + ((float) n.noise(x + ((r * MAGIC[127]) - (r * MAGIC[126])), z + ((r * MAGIC[126]) + (r * MAGIC[127])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[147])), z + ((r * MAGIC[147]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[159]) - (r * MAGIC[152])), z + ((r * MAGIC[152]) + (r * MAGIC[159])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[133]) - (r * MAGIC[134])), z + ((r * MAGIC[134]) + (r * MAGIC[133])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[136]) - (r * MAGIC[135])), z + ((r * MAGIC[135]) + (r * MAGIC[136])))) - + ((float) n.noise(x + ((r * MAGIC[54]) - (r * MAGIC[55])), z + ((r * MAGIC[55]) + (r * MAGIC[54])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[111]) - (r * MAGIC[110])), z + ((r * MAGIC[110]) + (r * MAGIC[111])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[161]) - (r * MAGIC[160])), z + ((r * MAGIC[160]) + (r * MAGIC[161])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[86]) - (r * MAGIC[44])), z + ((r * MAGIC[44]) + (r * MAGIC[86])))) - + ((float) n.noise(x + ((r * MAGIC[119]) - (r * MAGIC[120])), z + ((r * MAGIC[120]) + (r * MAGIC[119])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[70]) - (r * MAGIC[69])), z + ((r * MAGIC[69]) + (r * MAGIC[70])))) - + ((float) n.noise(x + ((r * MAGIC[118]) - (r * MAGIC[130])), z + ((r * MAGIC[130]) + (r * MAGIC[118])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[141]) - (r * MAGIC[142])), z + ((r * MAGIC[142]) + (r * MAGIC[141])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[138]) - (r * MAGIC[121])), z + ((r * MAGIC[121]) + (r * MAGIC[138])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[117]) - (r * MAGIC[116])), z + ((r * MAGIC[116]) + (r * MAGIC[117])))) - + ((float) n.noise(x + ((r * MAGIC[163]) - (r * MAGIC[162])), z + ((r * MAGIC[162]) + (r * MAGIC[163])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[164]) - (r * MAGIC[140])), z + ((r * MAGIC[140]) + (r * MAGIC[164])))) - + ((float) n.noise(x + ((r * MAGIC[132]) - (r * MAGIC[88])), z + ((r * MAGIC[88]) + (r * MAGIC[132])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[105]) - (r * MAGIC[150])), z + ((r * MAGIC[150]) + (r * MAGIC[105])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[166]) - (r * MAGIC[165])), z + ((r * MAGIC[165]) + (r * MAGIC[166])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[47]) - (r * MAGIC[48])), z + ((r * MAGIC[48]) + (r * MAGIC[47])))) - + ((float) n.noise(x + ((r * MAGIC[148]) - (r * MAGIC[149])), z + ((r * MAGIC[149]) + (r * MAGIC[148])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[106]) - (r * MAGIC[151])), z + ((r * MAGIC[151]) + (r * MAGIC[106])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.019607844F; - } - - private static float sc52(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45]))))) * 0.01923077F; - } - - private static float sc53(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45]))))) * 0.018867925F; - } - - private static float sc54(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45]))))) * 0.018518519F; - } - - private static float sc55(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45]))))) * 0.018181818F; - } - - private static float sc56(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45]))))) * 0.017857144F; - } - - private static float sc57(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45]))))) * 0.01754386F; - } - - private static float sc58(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45]))))) * 0.01724138F; - } - - private static float sc59(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45]))))) * 0.016949153F; - } - - private static float sc60(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45]))))) * 0.016666668F; - } - - private static float sc61(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[109]) - (r * MAGIC[69])), z + ((r * MAGIC[69]) + (r * MAGIC[109])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[63]) - (r * MAGIC[62])), z + ((r * MAGIC[62]) + (r * MAGIC[63])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[147])), z + ((r * MAGIC[147]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[147]) - (r * MAGIC[67])), z + ((r * MAGIC[67]) + (r * MAGIC[147])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[62]) - (r * MAGIC[63])), z + ((r * MAGIC[63]) + (r * MAGIC[62])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[69]) - (r * MAGIC[109])), z + ((r * MAGIC[109]) + (r * MAGIC[69])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[167]) - (r * MAGIC[109])), z + ((r * MAGIC[109]) + (r * MAGIC[167])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[163]) - (r * MAGIC[63])), z + ((r * MAGIC[63]) + (r * MAGIC[163])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[68]) - (r * MAGIC[67])), z + ((r * MAGIC[67]) + (r * MAGIC[68])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[168]) - (r * MAGIC[147])), z + ((r * MAGIC[147]) + (r * MAGIC[168])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[162]) - (r * MAGIC[62])), z + ((r * MAGIC[62]) + (r * MAGIC[162])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[70]) - (r * MAGIC[69])), z + ((r * MAGIC[69]) + (r * MAGIC[70])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[70]) - (r * MAGIC[167])), z + ((r * MAGIC[167]) + (r * MAGIC[70])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[162]) - (r * MAGIC[163])), z + ((r * MAGIC[163]) + (r * MAGIC[162])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[168]) - (r * MAGIC[68])), z + ((r * MAGIC[68]) + (r * MAGIC[168])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[68]) - (r * MAGIC[168])), z + ((r * MAGIC[168]) + (r * MAGIC[68])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[163]) - (r * MAGIC[162])), z + ((r * MAGIC[162]) + (r * MAGIC[163])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[167]) - (r * MAGIC[70])), z + ((r * MAGIC[70]) + (r * MAGIC[167])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[69]) - (r * MAGIC[70])), z + ((r * MAGIC[70]) + (r * MAGIC[69])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[62]) - (r * MAGIC[162])), z + ((r * MAGIC[162]) + (r * MAGIC[62])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[147]) - (r * MAGIC[168])), z + ((r * MAGIC[168]) + (r * MAGIC[147])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[68])), z + ((r * MAGIC[68]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[63]) - (r * MAGIC[163])), z + ((r * MAGIC[163]) + (r * MAGIC[63])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[109]) - (r * MAGIC[167])), z + ((r * MAGIC[167]) + (r * MAGIC[109]))))) * 0.016393442F; - } - - private static float sc62(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[109]) - (r * MAGIC[69])), z + ((r * MAGIC[69]) + (r * MAGIC[109])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[63]) - (r * MAGIC[62])), z + ((r * MAGIC[62]) + (r * MAGIC[63])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[147])), z + ((r * MAGIC[147]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[147]) - (r * MAGIC[67])), z + ((r * MAGIC[67]) + (r * MAGIC[147])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[62]) - (r * MAGIC[63])), z + ((r * MAGIC[63]) + (r * MAGIC[62])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[69]) - (r * MAGIC[109])), z + ((r * MAGIC[109]) + (r * MAGIC[69])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[167]) - (r * MAGIC[109])), z + ((r * MAGIC[109]) + (r * MAGIC[167])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[163]) - (r * MAGIC[63])), z + ((r * MAGIC[63]) + (r * MAGIC[163])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[68]) - (r * MAGIC[67])), z + ((r * MAGIC[67]) + (r * MAGIC[68])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[168]) - (r * MAGIC[147])), z + ((r * MAGIC[147]) + (r * MAGIC[168])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[162]) - (r * MAGIC[62])), z + ((r * MAGIC[62]) + (r * MAGIC[162])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[70]) - (r * MAGIC[69])), z + ((r * MAGIC[69]) + (r * MAGIC[70])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[70]) - (r * MAGIC[167])), z + ((r * MAGIC[167]) + (r * MAGIC[70])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[162]) - (r * MAGIC[163])), z + ((r * MAGIC[163]) + (r * MAGIC[162])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[168]) - (r * MAGIC[68])), z + ((r * MAGIC[68]) + (r * MAGIC[168])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[68]) - (r * MAGIC[168])), z + ((r * MAGIC[168]) + (r * MAGIC[68])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[163]) - (r * MAGIC[162])), z + ((r * MAGIC[162]) + (r * MAGIC[163])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[167]) - (r * MAGIC[70])), z + ((r * MAGIC[70]) + (r * MAGIC[167])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[69]) - (r * MAGIC[70])), z + ((r * MAGIC[70]) + (r * MAGIC[69])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[62]) - (r * MAGIC[162])), z + ((r * MAGIC[162]) + (r * MAGIC[62])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[147]) - (r * MAGIC[168])), z + ((r * MAGIC[168]) + (r * MAGIC[147])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[68])), z + ((r * MAGIC[68]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[63]) - (r * MAGIC[163])), z + ((r * MAGIC[163]) + (r * MAGIC[63])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[109]) - (r * MAGIC[167])), z + ((r * MAGIC[167]) + (r * MAGIC[109]))))) * 0.016129032F; - } - - private static float sc63(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[109]) - (r * MAGIC[69])), z + ((r * MAGIC[69]) + (r * MAGIC[109])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[63]) - (r * MAGIC[62])), z + ((r * MAGIC[62]) + (r * MAGIC[63])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[147])), z + ((r * MAGIC[147]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[147]) - (r * MAGIC[67])), z + ((r * MAGIC[67]) + (r * MAGIC[147])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[62]) - (r * MAGIC[63])), z + ((r * MAGIC[63]) + (r * MAGIC[62])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[69]) - (r * MAGIC[109])), z + ((r * MAGIC[109]) + (r * MAGIC[69])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[167]) - (r * MAGIC[109])), z + ((r * MAGIC[109]) + (r * MAGIC[167])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[163]) - (r * MAGIC[63])), z + ((r * MAGIC[63]) + (r * MAGIC[163])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[68]) - (r * MAGIC[67])), z + ((r * MAGIC[67]) + (r * MAGIC[68])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[168]) - (r * MAGIC[147])), z + ((r * MAGIC[147]) + (r * MAGIC[168])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[162]) - (r * MAGIC[62])), z + ((r * MAGIC[62]) + (r * MAGIC[162])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[70]) - (r * MAGIC[69])), z + ((r * MAGIC[69]) + (r * MAGIC[70])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[70]) - (r * MAGIC[167])), z + ((r * MAGIC[167]) + (r * MAGIC[70])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[162]) - (r * MAGIC[163])), z + ((r * MAGIC[163]) + (r * MAGIC[162])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[168]) - (r * MAGIC[68])), z + ((r * MAGIC[68]) + (r * MAGIC[168])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[68]) - (r * MAGIC[168])), z + ((r * MAGIC[168]) + (r * MAGIC[68])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[163]) - (r * MAGIC[162])), z + ((r * MAGIC[162]) + (r * MAGIC[163])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[167]) - (r * MAGIC[70])), z + ((r * MAGIC[70]) + (r * MAGIC[167])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[69]) - (r * MAGIC[70])), z + ((r * MAGIC[70]) + (r * MAGIC[69])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[62]) - (r * MAGIC[162])), z + ((r * MAGIC[162]) + (r * MAGIC[62])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[147]) - (r * MAGIC[168])), z + ((r * MAGIC[168]) + (r * MAGIC[147])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[68])), z + ((r * MAGIC[68]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[63]) - (r * MAGIC[163])), z + ((r * MAGIC[163]) + (r * MAGIC[63])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[109]) - (r * MAGIC[167])), z + ((r * MAGIC[167]) + (r * MAGIC[109]))))) * 0.015873017F; - } - - private static float sc64(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[109]) - (r * MAGIC[69])), z + ((r * MAGIC[69]) + (r * MAGIC[109])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[63]) - (r * MAGIC[62])), z + ((r * MAGIC[62]) + (r * MAGIC[63])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[147])), z + ((r * MAGIC[147]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[147]) - (r * MAGIC[67])), z + ((r * MAGIC[67]) + (r * MAGIC[147])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[62]) - (r * MAGIC[63])), z + ((r * MAGIC[63]) + (r * MAGIC[62])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[69]) - (r * MAGIC[109])), z + ((r * MAGIC[109]) + (r * MAGIC[69])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[167]) - (r * MAGIC[109])), z + ((r * MAGIC[109]) + (r * MAGIC[167])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[163]) - (r * MAGIC[63])), z + ((r * MAGIC[63]) + (r * MAGIC[163])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[68]) - (r * MAGIC[67])), z + ((r * MAGIC[67]) + (r * MAGIC[68])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[168]) - (r * MAGIC[147])), z + ((r * MAGIC[147]) + (r * MAGIC[168])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[162]) - (r * MAGIC[62])), z + ((r * MAGIC[62]) + (r * MAGIC[162])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[70]) - (r * MAGIC[69])), z + ((r * MAGIC[69]) + (r * MAGIC[70])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[70]) - (r * MAGIC[167])), z + ((r * MAGIC[167]) + (r * MAGIC[70])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[162]) - (r * MAGIC[163])), z + ((r * MAGIC[163]) + (r * MAGIC[162])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[168]) - (r * MAGIC[68])), z + ((r * MAGIC[68]) + (r * MAGIC[168])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[68]) - (r * MAGIC[168])), z + ((r * MAGIC[168]) + (r * MAGIC[68])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[163]) - (r * MAGIC[162])), z + ((r * MAGIC[162]) + (r * MAGIC[163])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[167]) - (r * MAGIC[70])), z + ((r * MAGIC[70]) + (r * MAGIC[167])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[69]) - (r * MAGIC[70])), z + ((r * MAGIC[70]) + (r * MAGIC[69])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[62]) - (r * MAGIC[162])), z + ((r * MAGIC[162]) + (r * MAGIC[62])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[147]) - (r * MAGIC[168])), z + ((r * MAGIC[168]) + (r * MAGIC[147])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[68])), z + ((r * MAGIC[68]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[63]) - (r * MAGIC[163])), z + ((r * MAGIC[163]) + (r * MAGIC[63])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[109]) - (r * MAGIC[167])), z + ((r * MAGIC[167]) + (r * MAGIC[109]))))) * 0.015625F; - } - - private static float sc65(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[109]) - (r * MAGIC[69])), z + ((r * MAGIC[69]) + (r * MAGIC[109])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[63]) - (r * MAGIC[62])), z + ((r * MAGIC[62]) + (r * MAGIC[63])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[147])), z + ((r * MAGIC[147]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[147]) - (r * MAGIC[67])), z + ((r * MAGIC[67]) + (r * MAGIC[147])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[62]) - (r * MAGIC[63])), z + ((r * MAGIC[63]) + (r * MAGIC[62])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[69]) - (r * MAGIC[109])), z + ((r * MAGIC[109]) + (r * MAGIC[69])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[167]) - (r * MAGIC[109])), z + ((r * MAGIC[109]) + (r * MAGIC[167])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[163]) - (r * MAGIC[63])), z + ((r * MAGIC[63]) + (r * MAGIC[163])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[68]) - (r * MAGIC[67])), z + ((r * MAGIC[67]) + (r * MAGIC[68])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[168]) - (r * MAGIC[147])), z + ((r * MAGIC[147]) + (r * MAGIC[168])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[162]) - (r * MAGIC[62])), z + ((r * MAGIC[62]) + (r * MAGIC[162])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[70]) - (r * MAGIC[69])), z + ((r * MAGIC[69]) + (r * MAGIC[70])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[70]) - (r * MAGIC[167])), z + ((r * MAGIC[167]) + (r * MAGIC[70])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[162]) - (r * MAGIC[163])), z + ((r * MAGIC[163]) + (r * MAGIC[162])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[168]) - (r * MAGIC[68])), z + ((r * MAGIC[68]) + (r * MAGIC[168])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[68]) - (r * MAGIC[168])), z + ((r * MAGIC[168]) + (r * MAGIC[68])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[163]) - (r * MAGIC[162])), z + ((r * MAGIC[162]) + (r * MAGIC[163])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[167]) - (r * MAGIC[70])), z + ((r * MAGIC[70]) + (r * MAGIC[167])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[69]) - (r * MAGIC[70])), z + ((r * MAGIC[70]) + (r * MAGIC[69])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[62]) - (r * MAGIC[162])), z + ((r * MAGIC[162]) + (r * MAGIC[62])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[147]) - (r * MAGIC[168])), z + ((r * MAGIC[168]) + (r * MAGIC[147])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[68])), z + ((r * MAGIC[68]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[63]) - (r * MAGIC[163])), z + ((r * MAGIC[163]) + (r * MAGIC[63])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[109]) - (r * MAGIC[167])), z + ((r * MAGIC[167]) + (r * MAGIC[109]))))) * 0.015384615F; - } - - private static float sc66(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[109]) - (r * MAGIC[69])), z + ((r * MAGIC[69]) + (r * MAGIC[109])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[63]) - (r * MAGIC[62])), z + ((r * MAGIC[62]) + (r * MAGIC[63])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[147])), z + ((r * MAGIC[147]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[147]) - (r * MAGIC[67])), z + ((r * MAGIC[67]) + (r * MAGIC[147])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[62]) - (r * MAGIC[63])), z + ((r * MAGIC[63]) + (r * MAGIC[62])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[69]) - (r * MAGIC[109])), z + ((r * MAGIC[109]) + (r * MAGIC[69])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[167]) - (r * MAGIC[109])), z + ((r * MAGIC[109]) + (r * MAGIC[167])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[163]) - (r * MAGIC[63])), z + ((r * MAGIC[63]) + (r * MAGIC[163])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[68]) - (r * MAGIC[67])), z + ((r * MAGIC[67]) + (r * MAGIC[68])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[168]) - (r * MAGIC[147])), z + ((r * MAGIC[147]) + (r * MAGIC[168])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[162]) - (r * MAGIC[62])), z + ((r * MAGIC[62]) + (r * MAGIC[162])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[70]) - (r * MAGIC[69])), z + ((r * MAGIC[69]) + (r * MAGIC[70])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[70]) - (r * MAGIC[167])), z + ((r * MAGIC[167]) + (r * MAGIC[70])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[162]) - (r * MAGIC[163])), z + ((r * MAGIC[163]) + (r * MAGIC[162])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[168]) - (r * MAGIC[68])), z + ((r * MAGIC[68]) + (r * MAGIC[168])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[68]) - (r * MAGIC[168])), z + ((r * MAGIC[168]) + (r * MAGIC[68])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[163]) - (r * MAGIC[162])), z + ((r * MAGIC[162]) + (r * MAGIC[163])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[167]) - (r * MAGIC[70])), z + ((r * MAGIC[70]) + (r * MAGIC[167])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[69]) - (r * MAGIC[70])), z + ((r * MAGIC[70]) + (r * MAGIC[69])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[62]) - (r * MAGIC[162])), z + ((r * MAGIC[162]) + (r * MAGIC[62])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[147]) - (r * MAGIC[168])), z + ((r * MAGIC[168]) + (r * MAGIC[147])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[68])), z + ((r * MAGIC[68]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[63]) - (r * MAGIC[163])), z + ((r * MAGIC[163]) + (r * MAGIC[63])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[109]) - (r * MAGIC[167])), z + ((r * MAGIC[167]) + (r * MAGIC[109]))))) * 0.015151516F; - } - - private static float sc67(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[109]) - (r * MAGIC[69])), z + ((r * MAGIC[69]) + (r * MAGIC[109])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[63]) - (r * MAGIC[62])), z + ((r * MAGIC[62]) + (r * MAGIC[63])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[147])), z + ((r * MAGIC[147]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[147]) - (r * MAGIC[67])), z + ((r * MAGIC[67]) + (r * MAGIC[147])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[62]) - (r * MAGIC[63])), z + ((r * MAGIC[63]) + (r * MAGIC[62])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[69]) - (r * MAGIC[109])), z + ((r * MAGIC[109]) + (r * MAGIC[69])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[167]) - (r * MAGIC[109])), z + ((r * MAGIC[109]) + (r * MAGIC[167])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[163]) - (r * MAGIC[63])), z + ((r * MAGIC[63]) + (r * MAGIC[163])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[68]) - (r * MAGIC[67])), z + ((r * MAGIC[67]) + (r * MAGIC[68])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[168]) - (r * MAGIC[147])), z + ((r * MAGIC[147]) + (r * MAGIC[168])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[162]) - (r * MAGIC[62])), z + ((r * MAGIC[62]) + (r * MAGIC[162])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[70]) - (r * MAGIC[69])), z + ((r * MAGIC[69]) + (r * MAGIC[70])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[70]) - (r * MAGIC[167])), z + ((r * MAGIC[167]) + (r * MAGIC[70])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[162]) - (r * MAGIC[163])), z + ((r * MAGIC[163]) + (r * MAGIC[162])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[168]) - (r * MAGIC[68])), z + ((r * MAGIC[68]) + (r * MAGIC[168])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[68]) - (r * MAGIC[168])), z + ((r * MAGIC[168]) + (r * MAGIC[68])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[163]) - (r * MAGIC[162])), z + ((r * MAGIC[162]) + (r * MAGIC[163])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[167]) - (r * MAGIC[70])), z + ((r * MAGIC[70]) + (r * MAGIC[167])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[69]) - (r * MAGIC[70])), z + ((r * MAGIC[70]) + (r * MAGIC[69])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[62]) - (r * MAGIC[162])), z + ((r * MAGIC[162]) + (r * MAGIC[62])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[147]) - (r * MAGIC[168])), z + ((r * MAGIC[168]) + (r * MAGIC[147])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[68])), z + ((r * MAGIC[68]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[63]) - (r * MAGIC[163])), z + ((r * MAGIC[163]) + (r * MAGIC[63])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[109]) - (r * MAGIC[167])), z + ((r * MAGIC[167]) + (r * MAGIC[109]))))) * 0.014925373F; - } - - private static float sc68(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[109]) - (r * MAGIC[69])), z + ((r * MAGIC[69]) + (r * MAGIC[109])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[63]) - (r * MAGIC[62])), z + ((r * MAGIC[62]) + (r * MAGIC[63])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[147])), z + ((r * MAGIC[147]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[147]) - (r * MAGIC[67])), z + ((r * MAGIC[67]) + (r * MAGIC[147])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[62]) - (r * MAGIC[63])), z + ((r * MAGIC[63]) + (r * MAGIC[62])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[69]) - (r * MAGIC[109])), z + ((r * MAGIC[109]) + (r * MAGIC[69])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[167]) - (r * MAGIC[109])), z + ((r * MAGIC[109]) + (r * MAGIC[167])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[163]) - (r * MAGIC[63])), z + ((r * MAGIC[63]) + (r * MAGIC[163])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[68]) - (r * MAGIC[67])), z + ((r * MAGIC[67]) + (r * MAGIC[68])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[168]) - (r * MAGIC[147])), z + ((r * MAGIC[147]) + (r * MAGIC[168])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[162]) - (r * MAGIC[62])), z + ((r * MAGIC[62]) + (r * MAGIC[162])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[70]) - (r * MAGIC[69])), z + ((r * MAGIC[69]) + (r * MAGIC[70])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[70]) - (r * MAGIC[167])), z + ((r * MAGIC[167]) + (r * MAGIC[70])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[162]) - (r * MAGIC[163])), z + ((r * MAGIC[163]) + (r * MAGIC[162])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[168]) - (r * MAGIC[68])), z + ((r * MAGIC[68]) + (r * MAGIC[168])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[68]) - (r * MAGIC[168])), z + ((r * MAGIC[168]) + (r * MAGIC[68])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[163]) - (r * MAGIC[162])), z + ((r * MAGIC[162]) + (r * MAGIC[163])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[167]) - (r * MAGIC[70])), z + ((r * MAGIC[70]) + (r * MAGIC[167])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[69]) - (r * MAGIC[70])), z + ((r * MAGIC[70]) + (r * MAGIC[69])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[62]) - (r * MAGIC[162])), z + ((r * MAGIC[162]) + (r * MAGIC[62])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[147]) - (r * MAGIC[168])), z + ((r * MAGIC[168]) + (r * MAGIC[147])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[68])), z + ((r * MAGIC[68]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[63]) - (r * MAGIC[163])), z + ((r * MAGIC[163]) + (r * MAGIC[63])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[109]) - (r * MAGIC[167])), z + ((r * MAGIC[167]) + (r * MAGIC[109]))))) * 0.014705882F; - } - - private static float sc69(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[109]) - (r * MAGIC[69])), z + ((r * MAGIC[69]) + (r * MAGIC[109])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[63]) - (r * MAGIC[62])), z + ((r * MAGIC[62]) + (r * MAGIC[63])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[147])), z + ((r * MAGIC[147]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[147]) - (r * MAGIC[67])), z + ((r * MAGIC[67]) + (r * MAGIC[147])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[62]) - (r * MAGIC[63])), z + ((r * MAGIC[63]) + (r * MAGIC[62])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[69]) - (r * MAGIC[109])), z + ((r * MAGIC[109]) + (r * MAGIC[69])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[167]) - (r * MAGIC[109])), z + ((r * MAGIC[109]) + (r * MAGIC[167])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[163]) - (r * MAGIC[63])), z + ((r * MAGIC[63]) + (r * MAGIC[163])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[68]) - (r * MAGIC[67])), z + ((r * MAGIC[67]) + (r * MAGIC[68])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[168]) - (r * MAGIC[147])), z + ((r * MAGIC[147]) + (r * MAGIC[168])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[162]) - (r * MAGIC[62])), z + ((r * MAGIC[62]) + (r * MAGIC[162])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[70]) - (r * MAGIC[69])), z + ((r * MAGIC[69]) + (r * MAGIC[70])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[70]) - (r * MAGIC[167])), z + ((r * MAGIC[167]) + (r * MAGIC[70])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[162]) - (r * MAGIC[163])), z + ((r * MAGIC[163]) + (r * MAGIC[162])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[168]) - (r * MAGIC[68])), z + ((r * MAGIC[68]) + (r * MAGIC[168])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[68]) - (r * MAGIC[168])), z + ((r * MAGIC[168]) + (r * MAGIC[68])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[163]) - (r * MAGIC[162])), z + ((r * MAGIC[162]) + (r * MAGIC[163])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[167]) - (r * MAGIC[70])), z + ((r * MAGIC[70]) + (r * MAGIC[167])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[69]) - (r * MAGIC[70])), z + ((r * MAGIC[70]) + (r * MAGIC[69])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[62]) - (r * MAGIC[162])), z + ((r * MAGIC[162]) + (r * MAGIC[62])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[147]) - (r * MAGIC[168])), z + ((r * MAGIC[168]) + (r * MAGIC[147])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[68])), z + ((r * MAGIC[68]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[63]) - (r * MAGIC[163])), z + ((r * MAGIC[163]) + (r * MAGIC[63])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[109]) - (r * MAGIC[167])), z + ((r * MAGIC[167]) + (r * MAGIC[109]))))) * 0.014492754F; - } - - private static float sc70(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[109]) - (r * MAGIC[69])), z + ((r * MAGIC[69]) + (r * MAGIC[109])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[63]) - (r * MAGIC[62])), z + ((r * MAGIC[62]) + (r * MAGIC[63])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[147])), z + ((r * MAGIC[147]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[147]) - (r * MAGIC[67])), z + ((r * MAGIC[67]) + (r * MAGIC[147])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[62]) - (r * MAGIC[63])), z + ((r * MAGIC[63]) + (r * MAGIC[62])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[69]) - (r * MAGIC[109])), z + ((r * MAGIC[109]) + (r * MAGIC[69])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[167]) - (r * MAGIC[109])), z + ((r * MAGIC[109]) + (r * MAGIC[167])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[163]) - (r * MAGIC[63])), z + ((r * MAGIC[63]) + (r * MAGIC[163])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[68]) - (r * MAGIC[67])), z + ((r * MAGIC[67]) + (r * MAGIC[68])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[168]) - (r * MAGIC[147])), z + ((r * MAGIC[147]) + (r * MAGIC[168])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[162]) - (r * MAGIC[62])), z + ((r * MAGIC[62]) + (r * MAGIC[162])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[70]) - (r * MAGIC[69])), z + ((r * MAGIC[69]) + (r * MAGIC[70])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[70]) - (r * MAGIC[167])), z + ((r * MAGIC[167]) + (r * MAGIC[70])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[162]) - (r * MAGIC[163])), z + ((r * MAGIC[163]) + (r * MAGIC[162])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[168]) - (r * MAGIC[68])), z + ((r * MAGIC[68]) + (r * MAGIC[168])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[68]) - (r * MAGIC[168])), z + ((r * MAGIC[168]) + (r * MAGIC[68])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[163]) - (r * MAGIC[162])), z + ((r * MAGIC[162]) + (r * MAGIC[163])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[167]) - (r * MAGIC[70])), z + ((r * MAGIC[70]) + (r * MAGIC[167])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[69]) - (r * MAGIC[70])), z + ((r * MAGIC[70]) + (r * MAGIC[69])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[62]) - (r * MAGIC[162])), z + ((r * MAGIC[162]) + (r * MAGIC[62])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[147]) - (r * MAGIC[168])), z + ((r * MAGIC[168]) + (r * MAGIC[147])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[68])), z + ((r * MAGIC[68]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[63]) - (r * MAGIC[163])), z + ((r * MAGIC[163]) + (r * MAGIC[63])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[109]) - (r * MAGIC[167])), z + ((r * MAGIC[167]) + (r * MAGIC[109]))))) * 0.014285714F; - } - - private static float sc71(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[109]) - (r * MAGIC[69])), z + ((r * MAGIC[69]) + (r * MAGIC[109])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[63]) - (r * MAGIC[62])), z + ((r * MAGIC[62]) + (r * MAGIC[63])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[147])), z + ((r * MAGIC[147]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[147]) - (r * MAGIC[67])), z + ((r * MAGIC[67]) + (r * MAGIC[147])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[62]) - (r * MAGIC[63])), z + ((r * MAGIC[63]) + (r * MAGIC[62])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[69]) - (r * MAGIC[109])), z + ((r * MAGIC[109]) + (r * MAGIC[69])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[167]) - (r * MAGIC[109])), z + ((r * MAGIC[109]) + (r * MAGIC[167])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[163]) - (r * MAGIC[63])), z + ((r * MAGIC[63]) + (r * MAGIC[163])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[68]) - (r * MAGIC[67])), z + ((r * MAGIC[67]) + (r * MAGIC[68])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[168]) - (r * MAGIC[147])), z + ((r * MAGIC[147]) + (r * MAGIC[168])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[162]) - (r * MAGIC[62])), z + ((r * MAGIC[62]) + (r * MAGIC[162])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[70]) - (r * MAGIC[69])), z + ((r * MAGIC[69]) + (r * MAGIC[70])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[70]) - (r * MAGIC[167])), z + ((r * MAGIC[167]) + (r * MAGIC[70])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[162]) - (r * MAGIC[163])), z + ((r * MAGIC[163]) + (r * MAGIC[162])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[168]) - (r * MAGIC[68])), z + ((r * MAGIC[68]) + (r * MAGIC[168])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[68]) - (r * MAGIC[168])), z + ((r * MAGIC[168]) + (r * MAGIC[68])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[163]) - (r * MAGIC[162])), z + ((r * MAGIC[162]) + (r * MAGIC[163])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[167]) - (r * MAGIC[70])), z + ((r * MAGIC[70]) + (r * MAGIC[167])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[69]) - (r * MAGIC[70])), z + ((r * MAGIC[70]) + (r * MAGIC[69])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[62]) - (r * MAGIC[162])), z + ((r * MAGIC[162]) + (r * MAGIC[62])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[147]) - (r * MAGIC[168])), z + ((r * MAGIC[168]) + (r * MAGIC[147])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[68])), z + ((r * MAGIC[68]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[63]) - (r * MAGIC[163])), z + ((r * MAGIC[163]) + (r * MAGIC[63])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[109]) - (r * MAGIC[167])), z + ((r * MAGIC[167]) + (r * MAGIC[109]))))) * 0.014084507F; - } - - private static float sc72(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[109]) - (r * MAGIC[69])), z + ((r * MAGIC[69]) + (r * MAGIC[109])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[63]) - (r * MAGIC[62])), z + ((r * MAGIC[62]) + (r * MAGIC[63])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[147])), z + ((r * MAGIC[147]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[147]) - (r * MAGIC[67])), z + ((r * MAGIC[67]) + (r * MAGIC[147])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[62]) - (r * MAGIC[63])), z + ((r * MAGIC[63]) + (r * MAGIC[62])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[69]) - (r * MAGIC[109])), z + ((r * MAGIC[109]) + (r * MAGIC[69])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[167]) - (r * MAGIC[109])), z + ((r * MAGIC[109]) + (r * MAGIC[167])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[163]) - (r * MAGIC[63])), z + ((r * MAGIC[63]) + (r * MAGIC[163])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[68]) - (r * MAGIC[67])), z + ((r * MAGIC[67]) + (r * MAGIC[68])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[168]) - (r * MAGIC[147])), z + ((r * MAGIC[147]) + (r * MAGIC[168])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[162]) - (r * MAGIC[62])), z + ((r * MAGIC[62]) + (r * MAGIC[162])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[70]) - (r * MAGIC[69])), z + ((r * MAGIC[69]) + (r * MAGIC[70])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[70]) - (r * MAGIC[167])), z + ((r * MAGIC[167]) + (r * MAGIC[70])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[162]) - (r * MAGIC[163])), z + ((r * MAGIC[163]) + (r * MAGIC[162])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[168]) - (r * MAGIC[68])), z + ((r * MAGIC[68]) + (r * MAGIC[168])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[68]) - (r * MAGIC[168])), z + ((r * MAGIC[168]) + (r * MAGIC[68])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[163]) - (r * MAGIC[162])), z + ((r * MAGIC[162]) + (r * MAGIC[163])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[167]) - (r * MAGIC[70])), z + ((r * MAGIC[70]) + (r * MAGIC[167])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[69]) - (r * MAGIC[70])), z + ((r * MAGIC[70]) + (r * MAGIC[69])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[62]) - (r * MAGIC[162])), z + ((r * MAGIC[162]) + (r * MAGIC[62])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[147]) - (r * MAGIC[168])), z + ((r * MAGIC[168]) + (r * MAGIC[147])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[67]) - (r * MAGIC[68])), z + ((r * MAGIC[68]) + (r * MAGIC[67])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[63]) - (r * MAGIC[163])), z + ((r * MAGIC[163]) + (r * MAGIC[63])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[109]) - (r * MAGIC[167])), z + ((r * MAGIC[167]) + (r * MAGIC[109]))))) * 0.013888889F; - } - - private static float sc73(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[169]))))) * 0.01369863F; - } - - private static float sc74(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[169]))))) * 0.013513514F; - } - - private static float sc75(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[169]))))) * 0.013333334F; - } - - private static float sc76(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[169]))))) * 0.013157895F; - } - - private static float sc77(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[169]))))) * 0.012987013F; - } - - private static float sc78(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[169]))))) * 0.012820513F; - } - - private static float sc79(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[169]))))) * 0.012658228F; - } - - private static float sc80(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[169]))))) * 0.0125F; - } - - private static float sc81(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[169]))))) * 0.012345679F; - } - - private static float sc82(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[169]))))) * 0.0121951215F; - } - - private static float sc83(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[169]))))) * 0.012048192F; - } - - private static float sc84(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[169]))))) * 0.011904762F; - } - - private static float sc85(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[169]))))) * 0.011764706F; - } - - private static float sc86(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[169]))))) * 0.011627907F; - } - - private static float sc87(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[169]))))) * 0.011494253F; - } - - private static float sc88(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[169]))))) * 0.011363637F; - } - - private static float sc89(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[169]))))) * 0.011235955F; - } - - private static float sc90(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[169]))))) * 0.011111111F; - } - - private static float sc91(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[27])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.010989011F; - } - - private static float sc92(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[27])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.010869565F; - } - - private static float sc93(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[27])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.010752688F; - } - - private static float sc94(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[27])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.010638298F; - } - - private static float sc95(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[27])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.010526316F; - } - - private static float sc96(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[27])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.010416667F; - } - - private static float sc97(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[27])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.010309278F; - } - - private static float sc98(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[27])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.010204081F; - } - - private static float sc99(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[27])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.01010101F; - } - - private static float sc100(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[27])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.01F; - } - - private static float sc101(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[27])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.00990099F; - } - - private static float sc102(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[27])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.009803922F; - } - - private static float sc103(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[27])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.009708738F; - } - - private static float sc104(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[27])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.009615385F; - } - - private static float sc105(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[27])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.00952381F; - } - - private static float sc106(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[27])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.009433962F; - } - - private static float sc107(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[27])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.009345794F; - } - - private static float sc108(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[27])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.009259259F; - } - - private static float sc109(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[27])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.0091743115F; - } - - private static float sc110(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[27])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.009090909F; - } - - private static float sc111(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[27])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.009009009F; - } - - private static float sc112(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[27])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.008928572F; - } - - private static float sc113(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[27])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.0088495575F; - } - - private static float sc114(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[27])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.00877193F; - } - - private static float sc115(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[27])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.008695652F; - } - - private static float sc116(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[27])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.00862069F; - } - - private static float sc117(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[27])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.008547009F; - } - - private static float sc118(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[27])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.008474576F; - } - - private static float sc119(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[27])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.008403362F; - } - - private static float sc120(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[27])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[27])), z + ((r * MAGIC[27]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[64])), z + ((r * MAGIC[64]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[97])), z + ((r * MAGIC[97]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[146])), z + ((r * MAGIC[146]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[16])), z + ((r * MAGIC[16]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[17])), z + ((r * MAGIC[17]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[96])), z + ((r * MAGIC[96]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[104])), z + ((r * MAGIC[104]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[103]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[103])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[24]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[24])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[175]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[175])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[100]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[100])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[101]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[101])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[174]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[174])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[173]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[173])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[25]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[25])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[26]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[26])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[104]) - (r * MAGIC[103])), z + ((r * MAGIC[103]) + (r * MAGIC[104])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[65]) - (r * MAGIC[24])), z + ((r * MAGIC[24]) + (r * MAGIC[65])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[96]) - (r * MAGIC[175])), z + ((r * MAGIC[175]) + (r * MAGIC[96])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[99]) - (r * MAGIC[100])), z + ((r * MAGIC[100]) + (r * MAGIC[99])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[17]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[17])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[16]) - (r * MAGIC[102])), z + ((r * MAGIC[102]) + (r * MAGIC[16])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[146]) - (r * MAGIC[174])), z + ((r * MAGIC[174]) + (r * MAGIC[146])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[97]) - (r * MAGIC[173])), z + ((r * MAGIC[173]) + (r * MAGIC[97])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[64]) - (r * MAGIC[25])), z + ((r * MAGIC[25]) + (r * MAGIC[64])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[27]) - (r * MAGIC[26])), z + ((r * MAGIC[26]) + (r * MAGIC[27]))))) * 0.008333334F; - } - - private static float sc121(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[82]) - (r * MAGIC[83])), z + ((r * MAGIC[83]) + (r * MAGIC[82])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[127]) - (r * MAGIC[126])), z + ((r * MAGIC[126]) + (r * MAGIC[127])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[79]) - (r * MAGIC[78])), z + ((r * MAGIC[78]) + (r * MAGIC[79])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[43]) - (r * MAGIC[44])), z + ((r * MAGIC[44]) + (r * MAGIC[43])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[108]) - (r * MAGIC[107])), z + ((r * MAGIC[107]) + (r * MAGIC[108])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[47]) - (r * MAGIC[95])), z + ((r * MAGIC[95]) + (r * MAGIC[47])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[80]) - (r * MAGIC[81])), z + ((r * MAGIC[81]) + (r * MAGIC[80])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[41]) - (r * MAGIC[42])), z + ((r * MAGIC[42]) + (r * MAGIC[41])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[128]) - (r * MAGIC[129])), z + ((r * MAGIC[129]) + (r * MAGIC[128])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[93]) - (r * MAGIC[123])), z + ((r * MAGIC[123]) + (r * MAGIC[93])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[155]) - (r * MAGIC[55])), z + ((r * MAGIC[55]) + (r * MAGIC[155])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[87]) - (r * MAGIC[169])), z + ((r * MAGIC[169]) + (r * MAGIC[87])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[132]) - (r * MAGIC[169])), z + ((r * MAGIC[169]) + (r * MAGIC[132])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[54]) - (r * MAGIC[55])), z + ((r * MAGIC[55]) + (r * MAGIC[54])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[131]) - (r * MAGIC[123])), z + ((r * MAGIC[123]) + (r * MAGIC[131])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[91]) - (r * MAGIC[129])), z + ((r * MAGIC[129]) + (r * MAGIC[91])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[117]) - (r * MAGIC[42])), z + ((r * MAGIC[42]) + (r * MAGIC[117])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[50]) - (r * MAGIC[81])), z + ((r * MAGIC[81]) + (r * MAGIC[50])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[94]) - (r * MAGIC[95])), z + ((r * MAGIC[95]) + (r * MAGIC[94])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[125]) - (r * MAGIC[107])), z + ((r * MAGIC[107]) + (r * MAGIC[125])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[86]) - (r * MAGIC[44])), z + ((r * MAGIC[44]) + (r * MAGIC[86])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[156]) - (r * MAGIC[78])), z + ((r * MAGIC[78]) + (r * MAGIC[156])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[52]) - (r * MAGIC[126])), z + ((r * MAGIC[126]) + (r * MAGIC[52])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[118]) - (r * MAGIC[83])), z + ((r * MAGIC[83]) + (r * MAGIC[118])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[118]) - (r * MAGIC[130])), z + ((r * MAGIC[130]) + (r * MAGIC[118])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[52]) - (r * MAGIC[53])), z + ((r * MAGIC[53]) + (r * MAGIC[52])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[156]) - (r * MAGIC[124])), z + ((r * MAGIC[124]) + (r * MAGIC[156])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[86]) - (r * MAGIC[170])), z + ((r * MAGIC[170]) + (r * MAGIC[86])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[125]) - (r * MAGIC[171])), z + ((r * MAGIC[171]) + (r * MAGIC[125])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[94]) - (r * MAGIC[48])), z + ((r * MAGIC[48]) + (r * MAGIC[94])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[50]) - (r * MAGIC[51])), z + ((r * MAGIC[51]) + (r * MAGIC[50])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[117]) - (r * MAGIC[116])), z + ((r * MAGIC[116]) + (r * MAGIC[117])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[91]) - (r * MAGIC[90])), z + ((r * MAGIC[90]) + (r * MAGIC[91])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[131]) - (r * MAGIC[92])), z + ((r * MAGIC[92]) + (r * MAGIC[131])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[54]) - (r * MAGIC[172])), z + ((r * MAGIC[172]) + (r * MAGIC[54])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[132]) - (r * MAGIC[88])), z + ((r * MAGIC[88]) + (r * MAGIC[132])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[87]) - (r * MAGIC[88])), z + ((r * MAGIC[88]) + (r * MAGIC[87])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[155]) - (r * MAGIC[172])), z + ((r * MAGIC[172]) + (r * MAGIC[155])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[93]) - (r * MAGIC[92])), z + ((r * MAGIC[92]) + (r * MAGIC[93])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[128]) - (r * MAGIC[90])), z + ((r * MAGIC[90]) + (r * MAGIC[128])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[41]) - (r * MAGIC[116])), z + ((r * MAGIC[116]) + (r * MAGIC[41])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[80]) - (r * MAGIC[51])), z + ((r * MAGIC[51]) + (r * MAGIC[80])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[47]) - (r * MAGIC[48])), z + ((r * MAGIC[48]) + (r * MAGIC[47])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[108]) - (r * MAGIC[171])), z + ((r * MAGIC[171]) + (r * MAGIC[108])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[43]) - (r * MAGIC[170])), z + ((r * MAGIC[170]) + (r * MAGIC[43])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[79]) - (r * MAGIC[124])), z + ((r * MAGIC[124]) + (r * MAGIC[79])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[127]) - (r * MAGIC[53])), z + ((r * MAGIC[53]) + (r * MAGIC[127])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[82]) - (r * MAGIC[130])), z + ((r * MAGIC[130]) + (r * MAGIC[82]))))) * 0.008264462F; - } - - private static float sc122(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[82]) - (r * MAGIC[83])), z + ((r * MAGIC[83]) + (r * MAGIC[82])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[127]) - (r * MAGIC[126])), z + ((r * MAGIC[126]) + (r * MAGIC[127])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[79]) - (r * MAGIC[78])), z + ((r * MAGIC[78]) + (r * MAGIC[79])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[43]) - (r * MAGIC[44])), z + ((r * MAGIC[44]) + (r * MAGIC[43])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[108]) - (r * MAGIC[107])), z + ((r * MAGIC[107]) + (r * MAGIC[108])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[47]) - (r * MAGIC[95])), z + ((r * MAGIC[95]) + (r * MAGIC[47])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[80]) - (r * MAGIC[81])), z + ((r * MAGIC[81]) + (r * MAGIC[80])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[41]) - (r * MAGIC[42])), z + ((r * MAGIC[42]) + (r * MAGIC[41])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[128]) - (r * MAGIC[129])), z + ((r * MAGIC[129]) + (r * MAGIC[128])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[93]) - (r * MAGIC[123])), z + ((r * MAGIC[123]) + (r * MAGIC[93])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[155]) - (r * MAGIC[55])), z + ((r * MAGIC[55]) + (r * MAGIC[155])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[87]) - (r * MAGIC[169])), z + ((r * MAGIC[169]) + (r * MAGIC[87])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[132]) - (r * MAGIC[169])), z + ((r * MAGIC[169]) + (r * MAGIC[132])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[54]) - (r * MAGIC[55])), z + ((r * MAGIC[55]) + (r * MAGIC[54])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[131]) - (r * MAGIC[123])), z + ((r * MAGIC[123]) + (r * MAGIC[131])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[91]) - (r * MAGIC[129])), z + ((r * MAGIC[129]) + (r * MAGIC[91])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[117]) - (r * MAGIC[42])), z + ((r * MAGIC[42]) + (r * MAGIC[117])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[50]) - (r * MAGIC[81])), z + ((r * MAGIC[81]) + (r * MAGIC[50])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[94]) - (r * MAGIC[95])), z + ((r * MAGIC[95]) + (r * MAGIC[94])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[125]) - (r * MAGIC[107])), z + ((r * MAGIC[107]) + (r * MAGIC[125])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[86]) - (r * MAGIC[44])), z + ((r * MAGIC[44]) + (r * MAGIC[86])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[156]) - (r * MAGIC[78])), z + ((r * MAGIC[78]) + (r * MAGIC[156])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[52]) - (r * MAGIC[126])), z + ((r * MAGIC[126]) + (r * MAGIC[52])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[118]) - (r * MAGIC[83])), z + ((r * MAGIC[83]) + (r * MAGIC[118])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[118]) - (r * MAGIC[130])), z + ((r * MAGIC[130]) + (r * MAGIC[118])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[52]) - (r * MAGIC[53])), z + ((r * MAGIC[53]) + (r * MAGIC[52])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[156]) - (r * MAGIC[124])), z + ((r * MAGIC[124]) + (r * MAGIC[156])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[86]) - (r * MAGIC[170])), z + ((r * MAGIC[170]) + (r * MAGIC[86])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[125]) - (r * MAGIC[171])), z + ((r * MAGIC[171]) + (r * MAGIC[125])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[94]) - (r * MAGIC[48])), z + ((r * MAGIC[48]) + (r * MAGIC[94])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[50]) - (r * MAGIC[51])), z + ((r * MAGIC[51]) + (r * MAGIC[50])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[117]) - (r * MAGIC[116])), z + ((r * MAGIC[116]) + (r * MAGIC[117])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[91]) - (r * MAGIC[90])), z + ((r * MAGIC[90]) + (r * MAGIC[91])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[131]) - (r * MAGIC[92])), z + ((r * MAGIC[92]) + (r * MAGIC[131])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[54]) - (r * MAGIC[172])), z + ((r * MAGIC[172]) + (r * MAGIC[54])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[132]) - (r * MAGIC[88])), z + ((r * MAGIC[88]) + (r * MAGIC[132])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[87]) - (r * MAGIC[88])), z + ((r * MAGIC[88]) + (r * MAGIC[87])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[155]) - (r * MAGIC[172])), z + ((r * MAGIC[172]) + (r * MAGIC[155])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[93]) - (r * MAGIC[92])), z + ((r * MAGIC[92]) + (r * MAGIC[93])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[128]) - (r * MAGIC[90])), z + ((r * MAGIC[90]) + (r * MAGIC[128])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[41]) - (r * MAGIC[116])), z + ((r * MAGIC[116]) + (r * MAGIC[41])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[80]) - (r * MAGIC[51])), z + ((r * MAGIC[51]) + (r * MAGIC[80])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[47]) - (r * MAGIC[48])), z + ((r * MAGIC[48]) + (r * MAGIC[47])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[108]) - (r * MAGIC[171])), z + ((r * MAGIC[171]) + (r * MAGIC[108])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[43]) - (r * MAGIC[170])), z + ((r * MAGIC[170]) + (r * MAGIC[43])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[79]) - (r * MAGIC[124])), z + ((r * MAGIC[124]) + (r * MAGIC[79])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[127]) - (r * MAGIC[53])), z + ((r * MAGIC[53]) + (r * MAGIC[127])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[82]) - (r * MAGIC[130])), z + ((r * MAGIC[130]) + (r * MAGIC[82]))))) * 0.008196721F; - } - - private static float sc123(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[82]) - (r * MAGIC[83])), z + ((r * MAGIC[83]) + (r * MAGIC[82])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[127]) - (r * MAGIC[126])), z + ((r * MAGIC[126]) + (r * MAGIC[127])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[79]) - (r * MAGIC[78])), z + ((r * MAGIC[78]) + (r * MAGIC[79])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[43]) - (r * MAGIC[44])), z + ((r * MAGIC[44]) + (r * MAGIC[43])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[108]) - (r * MAGIC[107])), z + ((r * MAGIC[107]) + (r * MAGIC[108])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[47]) - (r * MAGIC[95])), z + ((r * MAGIC[95]) + (r * MAGIC[47])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[80]) - (r * MAGIC[81])), z + ((r * MAGIC[81]) + (r * MAGIC[80])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[41]) - (r * MAGIC[42])), z + ((r * MAGIC[42]) + (r * MAGIC[41])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[128]) - (r * MAGIC[129])), z + ((r * MAGIC[129]) + (r * MAGIC[128])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[93]) - (r * MAGIC[123])), z + ((r * MAGIC[123]) + (r * MAGIC[93])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[155]) - (r * MAGIC[55])), z + ((r * MAGIC[55]) + (r * MAGIC[155])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[87]) - (r * MAGIC[169])), z + ((r * MAGIC[169]) + (r * MAGIC[87])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[132]) - (r * MAGIC[169])), z + ((r * MAGIC[169]) + (r * MAGIC[132])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[54]) - (r * MAGIC[55])), z + ((r * MAGIC[55]) + (r * MAGIC[54])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[131]) - (r * MAGIC[123])), z + ((r * MAGIC[123]) + (r * MAGIC[131])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[91]) - (r * MAGIC[129])), z + ((r * MAGIC[129]) + (r * MAGIC[91])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[117]) - (r * MAGIC[42])), z + ((r * MAGIC[42]) + (r * MAGIC[117])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[50]) - (r * MAGIC[81])), z + ((r * MAGIC[81]) + (r * MAGIC[50])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[94]) - (r * MAGIC[95])), z + ((r * MAGIC[95]) + (r * MAGIC[94])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[125]) - (r * MAGIC[107])), z + ((r * MAGIC[107]) + (r * MAGIC[125])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[86]) - (r * MAGIC[44])), z + ((r * MAGIC[44]) + (r * MAGIC[86])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[156]) - (r * MAGIC[78])), z + ((r * MAGIC[78]) + (r * MAGIC[156])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[52]) - (r * MAGIC[126])), z + ((r * MAGIC[126]) + (r * MAGIC[52])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[118]) - (r * MAGIC[83])), z + ((r * MAGIC[83]) + (r * MAGIC[118])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[118]) - (r * MAGIC[130])), z + ((r * MAGIC[130]) + (r * MAGIC[118])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[52]) - (r * MAGIC[53])), z + ((r * MAGIC[53]) + (r * MAGIC[52])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[156]) - (r * MAGIC[124])), z + ((r * MAGIC[124]) + (r * MAGIC[156])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[86]) - (r * MAGIC[170])), z + ((r * MAGIC[170]) + (r * MAGIC[86])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[125]) - (r * MAGIC[171])), z + ((r * MAGIC[171]) + (r * MAGIC[125])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[94]) - (r * MAGIC[48])), z + ((r * MAGIC[48]) + (r * MAGIC[94])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[50]) - (r * MAGIC[51])), z + ((r * MAGIC[51]) + (r * MAGIC[50])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[117]) - (r * MAGIC[116])), z + ((r * MAGIC[116]) + (r * MAGIC[117])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[91]) - (r * MAGIC[90])), z + ((r * MAGIC[90]) + (r * MAGIC[91])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[131]) - (r * MAGIC[92])), z + ((r * MAGIC[92]) + (r * MAGIC[131])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[54]) - (r * MAGIC[172])), z + ((r * MAGIC[172]) + (r * MAGIC[54])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[132]) - (r * MAGIC[88])), z + ((r * MAGIC[88]) + (r * MAGIC[132])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[87]) - (r * MAGIC[88])), z + ((r * MAGIC[88]) + (r * MAGIC[87])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[155]) - (r * MAGIC[172])), z + ((r * MAGIC[172]) + (r * MAGIC[155])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[93]) - (r * MAGIC[92])), z + ((r * MAGIC[92]) + (r * MAGIC[93])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[128]) - (r * MAGIC[90])), z + ((r * MAGIC[90]) + (r * MAGIC[128])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[41]) - (r * MAGIC[116])), z + ((r * MAGIC[116]) + (r * MAGIC[41])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[80]) - (r * MAGIC[51])), z + ((r * MAGIC[51]) + (r * MAGIC[80])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[47]) - (r * MAGIC[48])), z + ((r * MAGIC[48]) + (r * MAGIC[47])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[108]) - (r * MAGIC[171])), z + ((r * MAGIC[171]) + (r * MAGIC[108])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[43]) - (r * MAGIC[170])), z + ((r * MAGIC[170]) + (r * MAGIC[43])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[79]) - (r * MAGIC[124])), z + ((r * MAGIC[124]) + (r * MAGIC[79])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[127]) - (r * MAGIC[53])), z + ((r * MAGIC[53]) + (r * MAGIC[127])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[82]) - (r * MAGIC[130])), z + ((r * MAGIC[130]) + (r * MAGIC[82]))))) * 0.008130081F; - } - - private static float sc124(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[82]) - (r * MAGIC[83])), z + ((r * MAGIC[83]) + (r * MAGIC[82])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[127]) - (r * MAGIC[126])), z + ((r * MAGIC[126]) + (r * MAGIC[127])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[79]) - (r * MAGIC[78])), z + ((r * MAGIC[78]) + (r * MAGIC[79])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[43]) - (r * MAGIC[44])), z + ((r * MAGIC[44]) + (r * MAGIC[43])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[108]) - (r * MAGIC[107])), z + ((r * MAGIC[107]) + (r * MAGIC[108])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[47]) - (r * MAGIC[95])), z + ((r * MAGIC[95]) + (r * MAGIC[47])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[80]) - (r * MAGIC[81])), z + ((r * MAGIC[81]) + (r * MAGIC[80])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[41]) - (r * MAGIC[42])), z + ((r * MAGIC[42]) + (r * MAGIC[41])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[128]) - (r * MAGIC[129])), z + ((r * MAGIC[129]) + (r * MAGIC[128])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[93]) - (r * MAGIC[123])), z + ((r * MAGIC[123]) + (r * MAGIC[93])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[155]) - (r * MAGIC[55])), z + ((r * MAGIC[55]) + (r * MAGIC[155])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[87]) - (r * MAGIC[169])), z + ((r * MAGIC[169]) + (r * MAGIC[87])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[132]) - (r * MAGIC[169])), z + ((r * MAGIC[169]) + (r * MAGIC[132])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[54]) - (r * MAGIC[55])), z + ((r * MAGIC[55]) + (r * MAGIC[54])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[131]) - (r * MAGIC[123])), z + ((r * MAGIC[123]) + (r * MAGIC[131])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[91]) - (r * MAGIC[129])), z + ((r * MAGIC[129]) + (r * MAGIC[91])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[117]) - (r * MAGIC[42])), z + ((r * MAGIC[42]) + (r * MAGIC[117])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[50]) - (r * MAGIC[81])), z + ((r * MAGIC[81]) + (r * MAGIC[50])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[94]) - (r * MAGIC[95])), z + ((r * MAGIC[95]) + (r * MAGIC[94])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[125]) - (r * MAGIC[107])), z + ((r * MAGIC[107]) + (r * MAGIC[125])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[86]) - (r * MAGIC[44])), z + ((r * MAGIC[44]) + (r * MAGIC[86])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[156]) - (r * MAGIC[78])), z + ((r * MAGIC[78]) + (r * MAGIC[156])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[52]) - (r * MAGIC[126])), z + ((r * MAGIC[126]) + (r * MAGIC[52])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[118]) - (r * MAGIC[83])), z + ((r * MAGIC[83]) + (r * MAGIC[118])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[118]) - (r * MAGIC[130])), z + ((r * MAGIC[130]) + (r * MAGIC[118])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[52]) - (r * MAGIC[53])), z + ((r * MAGIC[53]) + (r * MAGIC[52])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[156]) - (r * MAGIC[124])), z + ((r * MAGIC[124]) + (r * MAGIC[156])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[86]) - (r * MAGIC[170])), z + ((r * MAGIC[170]) + (r * MAGIC[86])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[125]) - (r * MAGIC[171])), z + ((r * MAGIC[171]) + (r * MAGIC[125])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[94]) - (r * MAGIC[48])), z + ((r * MAGIC[48]) + (r * MAGIC[94])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[50]) - (r * MAGIC[51])), z + ((r * MAGIC[51]) + (r * MAGIC[50])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[117]) - (r * MAGIC[116])), z + ((r * MAGIC[116]) + (r * MAGIC[117])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[91]) - (r * MAGIC[90])), z + ((r * MAGIC[90]) + (r * MAGIC[91])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[131]) - (r * MAGIC[92])), z + ((r * MAGIC[92]) + (r * MAGIC[131])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[54]) - (r * MAGIC[172])), z + ((r * MAGIC[172]) + (r * MAGIC[54])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[132]) - (r * MAGIC[88])), z + ((r * MAGIC[88]) + (r * MAGIC[132])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[87]) - (r * MAGIC[88])), z + ((r * MAGIC[88]) + (r * MAGIC[87])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[155]) - (r * MAGIC[172])), z + ((r * MAGIC[172]) + (r * MAGIC[155])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[93]) - (r * MAGIC[92])), z + ((r * MAGIC[92]) + (r * MAGIC[93])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[128]) - (r * MAGIC[90])), z + ((r * MAGIC[90]) + (r * MAGIC[128])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[41]) - (r * MAGIC[116])), z + ((r * MAGIC[116]) + (r * MAGIC[41])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[80]) - (r * MAGIC[51])), z + ((r * MAGIC[51]) + (r * MAGIC[80])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[47]) - (r * MAGIC[48])), z + ((r * MAGIC[48]) + (r * MAGIC[47])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[108]) - (r * MAGIC[171])), z + ((r * MAGIC[171]) + (r * MAGIC[108])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[43]) - (r * MAGIC[170])), z + ((r * MAGIC[170]) + (r * MAGIC[43])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[79]) - (r * MAGIC[124])), z + ((r * MAGIC[124]) + (r * MAGIC[79])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[127]) - (r * MAGIC[53])), z + ((r * MAGIC[53]) + (r * MAGIC[127])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[82]) - (r * MAGIC[130])), z + ((r * MAGIC[130]) + (r * MAGIC[82]))))) * 0.008064516F; - } - - private static float sc125(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[82]) - (r * MAGIC[83])), z + ((r * MAGIC[83]) + (r * MAGIC[82])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[127]) - (r * MAGIC[126])), z + ((r * MAGIC[126]) + (r * MAGIC[127])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[79]) - (r * MAGIC[78])), z + ((r * MAGIC[78]) + (r * MAGIC[79])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[43]) - (r * MAGIC[44])), z + ((r * MAGIC[44]) + (r * MAGIC[43])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[108]) - (r * MAGIC[107])), z + ((r * MAGIC[107]) + (r * MAGIC[108])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[47]) - (r * MAGIC[95])), z + ((r * MAGIC[95]) + (r * MAGIC[47])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[80]) - (r * MAGIC[81])), z + ((r * MAGIC[81]) + (r * MAGIC[80])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[41]) - (r * MAGIC[42])), z + ((r * MAGIC[42]) + (r * MAGIC[41])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[128]) - (r * MAGIC[129])), z + ((r * MAGIC[129]) + (r * MAGIC[128])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[93]) - (r * MAGIC[123])), z + ((r * MAGIC[123]) + (r * MAGIC[93])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[155]) - (r * MAGIC[55])), z + ((r * MAGIC[55]) + (r * MAGIC[155])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[87]) - (r * MAGIC[169])), z + ((r * MAGIC[169]) + (r * MAGIC[87])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[132]) - (r * MAGIC[169])), z + ((r * MAGIC[169]) + (r * MAGIC[132])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[54]) - (r * MAGIC[55])), z + ((r * MAGIC[55]) + (r * MAGIC[54])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[131]) - (r * MAGIC[123])), z + ((r * MAGIC[123]) + (r * MAGIC[131])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[91]) - (r * MAGIC[129])), z + ((r * MAGIC[129]) + (r * MAGIC[91])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[117]) - (r * MAGIC[42])), z + ((r * MAGIC[42]) + (r * MAGIC[117])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[50]) - (r * MAGIC[81])), z + ((r * MAGIC[81]) + (r * MAGIC[50])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[94]) - (r * MAGIC[95])), z + ((r * MAGIC[95]) + (r * MAGIC[94])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[125]) - (r * MAGIC[107])), z + ((r * MAGIC[107]) + (r * MAGIC[125])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[86]) - (r * MAGIC[44])), z + ((r * MAGIC[44]) + (r * MAGIC[86])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[156]) - (r * MAGIC[78])), z + ((r * MAGIC[78]) + (r * MAGIC[156])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[52]) - (r * MAGIC[126])), z + ((r * MAGIC[126]) + (r * MAGIC[52])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[118]) - (r * MAGIC[83])), z + ((r * MAGIC[83]) + (r * MAGIC[118])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[118]) - (r * MAGIC[130])), z + ((r * MAGIC[130]) + (r * MAGIC[118])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[52]) - (r * MAGIC[53])), z + ((r * MAGIC[53]) + (r * MAGIC[52])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[156]) - (r * MAGIC[124])), z + ((r * MAGIC[124]) + (r * MAGIC[156])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[86]) - (r * MAGIC[170])), z + ((r * MAGIC[170]) + (r * MAGIC[86])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[125]) - (r * MAGIC[171])), z + ((r * MAGIC[171]) + (r * MAGIC[125])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[94]) - (r * MAGIC[48])), z + ((r * MAGIC[48]) + (r * MAGIC[94])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[50]) - (r * MAGIC[51])), z + ((r * MAGIC[51]) + (r * MAGIC[50])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[117]) - (r * MAGIC[116])), z + ((r * MAGIC[116]) + (r * MAGIC[117])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[91]) - (r * MAGIC[90])), z + ((r * MAGIC[90]) + (r * MAGIC[91])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[131]) - (r * MAGIC[92])), z + ((r * MAGIC[92]) + (r * MAGIC[131])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[54]) - (r * MAGIC[172])), z + ((r * MAGIC[172]) + (r * MAGIC[54])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[132]) - (r * MAGIC[88])), z + ((r * MAGIC[88]) + (r * MAGIC[132])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[87]) - (r * MAGIC[88])), z + ((r * MAGIC[88]) + (r * MAGIC[87])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[155]) - (r * MAGIC[172])), z + ((r * MAGIC[172]) + (r * MAGIC[155])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[93]) - (r * MAGIC[92])), z + ((r * MAGIC[92]) + (r * MAGIC[93])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[128]) - (r * MAGIC[90])), z + ((r * MAGIC[90]) + (r * MAGIC[128])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[41]) - (r * MAGIC[116])), z + ((r * MAGIC[116]) + (r * MAGIC[41])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[80]) - (r * MAGIC[51])), z + ((r * MAGIC[51]) + (r * MAGIC[80])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[47]) - (r * MAGIC[48])), z + ((r * MAGIC[48]) + (r * MAGIC[47])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[108]) - (r * MAGIC[171])), z + ((r * MAGIC[171]) + (r * MAGIC[108])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[43]) - (r * MAGIC[170])), z + ((r * MAGIC[170]) + (r * MAGIC[43])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[79]) - (r * MAGIC[124])), z + ((r * MAGIC[124]) + (r * MAGIC[79])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[127]) - (r * MAGIC[53])), z + ((r * MAGIC[53]) + (r * MAGIC[127])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[82]) - (r * MAGIC[130])), z + ((r * MAGIC[130]) + (r * MAGIC[82]))))) * 0.008F; - } - - private static float sc126(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[82]) - (r * MAGIC[83])), z + ((r * MAGIC[83]) + (r * MAGIC[82])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[127]) - (r * MAGIC[126])), z + ((r * MAGIC[126]) + (r * MAGIC[127])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[79]) - (r * MAGIC[78])), z + ((r * MAGIC[78]) + (r * MAGIC[79])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[43]) - (r * MAGIC[44])), z + ((r * MAGIC[44]) + (r * MAGIC[43])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[108]) - (r * MAGIC[107])), z + ((r * MAGIC[107]) + (r * MAGIC[108])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[47]) - (r * MAGIC[95])), z + ((r * MAGIC[95]) + (r * MAGIC[47])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[80]) - (r * MAGIC[81])), z + ((r * MAGIC[81]) + (r * MAGIC[80])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[41]) - (r * MAGIC[42])), z + ((r * MAGIC[42]) + (r * MAGIC[41])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[128]) - (r * MAGIC[129])), z + ((r * MAGIC[129]) + (r * MAGIC[128])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[93]) - (r * MAGIC[123])), z + ((r * MAGIC[123]) + (r * MAGIC[93])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[155]) - (r * MAGIC[55])), z + ((r * MAGIC[55]) + (r * MAGIC[155])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[87]) - (r * MAGIC[169])), z + ((r * MAGIC[169]) + (r * MAGIC[87])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[132]) - (r * MAGIC[169])), z + ((r * MAGIC[169]) + (r * MAGIC[132])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[54]) - (r * MAGIC[55])), z + ((r * MAGIC[55]) + (r * MAGIC[54])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[131]) - (r * MAGIC[123])), z + ((r * MAGIC[123]) + (r * MAGIC[131])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[91]) - (r * MAGIC[129])), z + ((r * MAGIC[129]) + (r * MAGIC[91])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[117]) - (r * MAGIC[42])), z + ((r * MAGIC[42]) + (r * MAGIC[117])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[50]) - (r * MAGIC[81])), z + ((r * MAGIC[81]) + (r * MAGIC[50])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[94]) - (r * MAGIC[95])), z + ((r * MAGIC[95]) + (r * MAGIC[94])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[125]) - (r * MAGIC[107])), z + ((r * MAGIC[107]) + (r * MAGIC[125])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[86]) - (r * MAGIC[44])), z + ((r * MAGIC[44]) + (r * MAGIC[86])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[156]) - (r * MAGIC[78])), z + ((r * MAGIC[78]) + (r * MAGIC[156])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[52]) - (r * MAGIC[126])), z + ((r * MAGIC[126]) + (r * MAGIC[52])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[118]) - (r * MAGIC[83])), z + ((r * MAGIC[83]) + (r * MAGIC[118])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[118]) - (r * MAGIC[130])), z + ((r * MAGIC[130]) + (r * MAGIC[118])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[52]) - (r * MAGIC[53])), z + ((r * MAGIC[53]) + (r * MAGIC[52])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[156]) - (r * MAGIC[124])), z + ((r * MAGIC[124]) + (r * MAGIC[156])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[86]) - (r * MAGIC[170])), z + ((r * MAGIC[170]) + (r * MAGIC[86])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[125]) - (r * MAGIC[171])), z + ((r * MAGIC[171]) + (r * MAGIC[125])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[94]) - (r * MAGIC[48])), z + ((r * MAGIC[48]) + (r * MAGIC[94])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[50]) - (r * MAGIC[51])), z + ((r * MAGIC[51]) + (r * MAGIC[50])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[117]) - (r * MAGIC[116])), z + ((r * MAGIC[116]) + (r * MAGIC[117])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[91]) - (r * MAGIC[90])), z + ((r * MAGIC[90]) + (r * MAGIC[91])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[131]) - (r * MAGIC[92])), z + ((r * MAGIC[92]) + (r * MAGIC[131])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[54]) - (r * MAGIC[172])), z + ((r * MAGIC[172]) + (r * MAGIC[54])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[132]) - (r * MAGIC[88])), z + ((r * MAGIC[88]) + (r * MAGIC[132])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[87]) - (r * MAGIC[88])), z + ((r * MAGIC[88]) + (r * MAGIC[87])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[155]) - (r * MAGIC[172])), z + ((r * MAGIC[172]) + (r * MAGIC[155])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[93]) - (r * MAGIC[92])), z + ((r * MAGIC[92]) + (r * MAGIC[93])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[128]) - (r * MAGIC[90])), z + ((r * MAGIC[90]) + (r * MAGIC[128])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[41]) - (r * MAGIC[116])), z + ((r * MAGIC[116]) + (r * MAGIC[41])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[80]) - (r * MAGIC[51])), z + ((r * MAGIC[51]) + (r * MAGIC[80])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[47]) - (r * MAGIC[48])), z + ((r * MAGIC[48]) + (r * MAGIC[47])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[108]) - (r * MAGIC[171])), z + ((r * MAGIC[171]) + (r * MAGIC[108])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[43]) - (r * MAGIC[170])), z + ((r * MAGIC[170]) + (r * MAGIC[43])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[79]) - (r * MAGIC[124])), z + ((r * MAGIC[124]) + (r * MAGIC[79])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[127]) - (r * MAGIC[53])), z + ((r * MAGIC[53]) + (r * MAGIC[127])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[82]) - (r * MAGIC[130])), z + ((r * MAGIC[130]) + (r * MAGIC[82]))))) * 0.007936508F; - } - - private static float sc127(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[82]) - (r * MAGIC[83])), z + ((r * MAGIC[83]) + (r * MAGIC[82])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[127]) - (r * MAGIC[126])), z + ((r * MAGIC[126]) + (r * MAGIC[127])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[79]) - (r * MAGIC[78])), z + ((r * MAGIC[78]) + (r * MAGIC[79])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[43]) - (r * MAGIC[44])), z + ((r * MAGIC[44]) + (r * MAGIC[43])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[108]) - (r * MAGIC[107])), z + ((r * MAGIC[107]) + (r * MAGIC[108])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[47]) - (r * MAGIC[95])), z + ((r * MAGIC[95]) + (r * MAGIC[47])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[80]) - (r * MAGIC[81])), z + ((r * MAGIC[81]) + (r * MAGIC[80])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[41]) - (r * MAGIC[42])), z + ((r * MAGIC[42]) + (r * MAGIC[41])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[128]) - (r * MAGIC[129])), z + ((r * MAGIC[129]) + (r * MAGIC[128])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[93]) - (r * MAGIC[123])), z + ((r * MAGIC[123]) + (r * MAGIC[93])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[155]) - (r * MAGIC[55])), z + ((r * MAGIC[55]) + (r * MAGIC[155])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[87]) - (r * MAGIC[169])), z + ((r * MAGIC[169]) + (r * MAGIC[87])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[132]) - (r * MAGIC[169])), z + ((r * MAGIC[169]) + (r * MAGIC[132])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[54]) - (r * MAGIC[55])), z + ((r * MAGIC[55]) + (r * MAGIC[54])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[131]) - (r * MAGIC[123])), z + ((r * MAGIC[123]) + (r * MAGIC[131])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[91]) - (r * MAGIC[129])), z + ((r * MAGIC[129]) + (r * MAGIC[91])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[117]) - (r * MAGIC[42])), z + ((r * MAGIC[42]) + (r * MAGIC[117])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[50]) - (r * MAGIC[81])), z + ((r * MAGIC[81]) + (r * MAGIC[50])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[94]) - (r * MAGIC[95])), z + ((r * MAGIC[95]) + (r * MAGIC[94])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[125]) - (r * MAGIC[107])), z + ((r * MAGIC[107]) + (r * MAGIC[125])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[86]) - (r * MAGIC[44])), z + ((r * MAGIC[44]) + (r * MAGIC[86])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[156]) - (r * MAGIC[78])), z + ((r * MAGIC[78]) + (r * MAGIC[156])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[52]) - (r * MAGIC[126])), z + ((r * MAGIC[126]) + (r * MAGIC[52])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[118]) - (r * MAGIC[83])), z + ((r * MAGIC[83]) + (r * MAGIC[118])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[118]) - (r * MAGIC[130])), z + ((r * MAGIC[130]) + (r * MAGIC[118])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[52]) - (r * MAGIC[53])), z + ((r * MAGIC[53]) + (r * MAGIC[52])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[156]) - (r * MAGIC[124])), z + ((r * MAGIC[124]) + (r * MAGIC[156])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[86]) - (r * MAGIC[170])), z + ((r * MAGIC[170]) + (r * MAGIC[86])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[125]) - (r * MAGIC[171])), z + ((r * MAGIC[171]) + (r * MAGIC[125])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[94]) - (r * MAGIC[48])), z + ((r * MAGIC[48]) + (r * MAGIC[94])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[50]) - (r * MAGIC[51])), z + ((r * MAGIC[51]) + (r * MAGIC[50])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[117]) - (r * MAGIC[116])), z + ((r * MAGIC[116]) + (r * MAGIC[117])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[91]) - (r * MAGIC[90])), z + ((r * MAGIC[90]) + (r * MAGIC[91])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[131]) - (r * MAGIC[92])), z + ((r * MAGIC[92]) + (r * MAGIC[131])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[54]) - (r * MAGIC[172])), z + ((r * MAGIC[172]) + (r * MAGIC[54])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[132]) - (r * MAGIC[88])), z + ((r * MAGIC[88]) + (r * MAGIC[132])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[87]) - (r * MAGIC[88])), z + ((r * MAGIC[88]) + (r * MAGIC[87])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[155]) - (r * MAGIC[172])), z + ((r * MAGIC[172]) + (r * MAGIC[155])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[93]) - (r * MAGIC[92])), z + ((r * MAGIC[92]) + (r * MAGIC[93])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[128]) - (r * MAGIC[90])), z + ((r * MAGIC[90]) + (r * MAGIC[128])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[41]) - (r * MAGIC[116])), z + ((r * MAGIC[116]) + (r * MAGIC[41])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[80]) - (r * MAGIC[51])), z + ((r * MAGIC[51]) + (r * MAGIC[80])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[47]) - (r * MAGIC[48])), z + ((r * MAGIC[48]) + (r * MAGIC[47])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[108]) - (r * MAGIC[171])), z + ((r * MAGIC[171]) + (r * MAGIC[108])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[43]) - (r * MAGIC[170])), z + ((r * MAGIC[170]) + (r * MAGIC[43])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[79]) - (r * MAGIC[124])), z + ((r * MAGIC[124]) + (r * MAGIC[79])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[127]) - (r * MAGIC[53])), z + ((r * MAGIC[53]) + (r * MAGIC[127])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[82]) - (r * MAGIC[130])), z + ((r * MAGIC[130]) + (r * MAGIC[82]))))) * 0.007874016F; - } - - private static float sc128(float x, float z, float r, NoiseProvider n) { - return (((float) n.noise(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1])))) - + ((float) n.noise(x + ((r * MAGIC[82]) - (r * MAGIC[83])), z + ((r * MAGIC[83]) + (r * MAGIC[82])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[127]) - (r * MAGIC[126])), z + ((r * MAGIC[126]) + (r * MAGIC[127])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[79]) - (r * MAGIC[78])), z + ((r * MAGIC[78]) + (r * MAGIC[79])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[43]) - (r * MAGIC[44])), z + ((r * MAGIC[44]) + (r * MAGIC[43])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[108]) - (r * MAGIC[107])), z + ((r * MAGIC[107]) + (r * MAGIC[108])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[47]) - (r * MAGIC[95])), z + ((r * MAGIC[95]) + (r * MAGIC[47])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[80]) - (r * MAGIC[81])), z + ((r * MAGIC[81]) + (r * MAGIC[80])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[41]) - (r * MAGIC[42])), z + ((r * MAGIC[42]) + (r * MAGIC[41])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[128]) - (r * MAGIC[129])), z + ((r * MAGIC[129]) + (r * MAGIC[128])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[93]) - (r * MAGIC[123])), z + ((r * MAGIC[123]) + (r * MAGIC[93])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[155]) - (r * MAGIC[55])), z + ((r * MAGIC[55]) + (r * MAGIC[155])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[87]) - (r * MAGIC[169])), z + ((r * MAGIC[169]) + (r * MAGIC[87])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[132]) - (r * MAGIC[169])), z + ((r * MAGIC[169]) + (r * MAGIC[132])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[45])), z + ((r * MAGIC[45]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[54]) - (r * MAGIC[55])), z + ((r * MAGIC[55]) + (r * MAGIC[54])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[32])), z + ((r * MAGIC[32]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[18])), z + ((r * MAGIC[18]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[127])), z + ((r * MAGIC[127]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[131]) - (r * MAGIC[123])), z + ((r * MAGIC[123]) + (r * MAGIC[131])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[79])), z + ((r * MAGIC[79]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[43])), z + ((r * MAGIC[43]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[91]) - (r * MAGIC[129])), z + ((r * MAGIC[129]) + (r * MAGIC[91])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[4])), z + ((r * MAGIC[4]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[117]) - (r * MAGIC[42])), z + ((r * MAGIC[42]) + (r * MAGIC[117])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[108])), z + ((r * MAGIC[108]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[47])), z + ((r * MAGIC[47]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[31])), z + ((r * MAGIC[31]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[50]) - (r * MAGIC[81])), z + ((r * MAGIC[81]) + (r * MAGIC[50])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[74])), z + ((r * MAGIC[74]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[30])), z + ((r * MAGIC[30]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[94]) - (r * MAGIC[95])), z + ((r * MAGIC[95]) + (r * MAGIC[94])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[125]) - (r * MAGIC[107])), z + ((r * MAGIC[107]) + (r * MAGIC[125])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[41])), z + ((r * MAGIC[41]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[15])), z + ((r * MAGIC[15]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[128])), z + ((r * MAGIC[128]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[86]) - (r * MAGIC[44])), z + ((r * MAGIC[44]) + (r * MAGIC[86])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[71])), z + ((r * MAGIC[71]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[156]) - (r * MAGIC[78])), z + ((r * MAGIC[78]) + (r * MAGIC[156])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[34])), z + ((r * MAGIC[34]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[93])), z + ((r * MAGIC[93]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[52]) - (r * MAGIC[126])), z + ((r * MAGIC[126]) + (r * MAGIC[52])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[75])), z + ((r * MAGIC[75]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[33])), z + ((r * MAGIC[33]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[155])), z + ((r * MAGIC[155]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[98])), z + ((r * MAGIC[98]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[118]) - (r * MAGIC[83])), z + ((r * MAGIC[83]) + (r * MAGIC[118])))) - + ((float) n.noise(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3])))) - + ((float) n.noise(x + ((r * MAGIC[118]) - (r * MAGIC[130])), z + ((r * MAGIC[130]) + (r * MAGIC[118])))) - + ((float) n.noise(x + ((r * MAGIC[88]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[88])))) - + ((float) n.noise(x + ((r * MAGIC[76]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[76])))) - + ((float) n.noise(x + ((r * MAGIC[172]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[172])))) - + ((float) n.noise(x + ((r * MAGIC[37]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[37])))) - + ((float) n.noise(x + ((r * MAGIC[49]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[49])))) - + ((float) n.noise(x + ((r * MAGIC[52]) - (r * MAGIC[53])), z + ((r * MAGIC[53]) + (r * MAGIC[52])))) - + ((float) n.noise(x + ((r * MAGIC[92]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[92])))) - + ((float) n.noise(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14])))) - + ((float) n.noise(x + ((r * MAGIC[35]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[35])))) - + ((float) n.noise(x + ((r * MAGIC[156]) - (r * MAGIC[124])), z + ((r * MAGIC[124]) + (r * MAGIC[156])))) - + ((float) n.noise(x + ((r * MAGIC[23]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[23])))) - + ((float) n.noise(x + ((r * MAGIC[86]) - (r * MAGIC[170])), z + ((r * MAGIC[170]) + (r * MAGIC[86])))) - + ((float) n.noise(x + ((r * MAGIC[90]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[90])))) - + ((float) n.noise(x + ((r * MAGIC[6]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[6])))) - + ((float) n.noise(x + ((r * MAGIC[116]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[116])))) - + ((float) n.noise(x + ((r * MAGIC[125]) - (r * MAGIC[171])), z + ((r * MAGIC[171]) + (r * MAGIC[125])))) - + ((float) n.noise(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12])))) - + ((float) n.noise(x + ((r * MAGIC[94]) - (r * MAGIC[48])), z + ((r * MAGIC[48]) + (r * MAGIC[94])))) - + ((float) n.noise(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89])))) - + ((float) n.noise(x + ((r * MAGIC[77]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[77])))) - + ((float) n.noise(x + ((r * MAGIC[51]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[51])))) - + ((float) n.noise(x + ((r * MAGIC[50]) - (r * MAGIC[51])), z + ((r * MAGIC[51]) + (r * MAGIC[50])))) - + ((float) n.noise(x + ((r * MAGIC[85]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[85])))) - + ((float) n.noise(x + ((r * MAGIC[38]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[38])))) - + ((float) n.noise(x + ((r * MAGIC[48]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[48])))) - + ((float) n.noise(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13])))) - + ((float) n.noise(x + ((r * MAGIC[171]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[171])))) - + ((float) n.noise(x + ((r * MAGIC[117]) - (r * MAGIC[116])), z + ((r * MAGIC[116]) + (r * MAGIC[117])))) - + ((float) n.noise(x + ((r * MAGIC[5]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[5])))) - + ((float) n.noise(x + ((r * MAGIC[91]) - (r * MAGIC[90])), z + ((r * MAGIC[90]) + (r * MAGIC[91])))) - + ((float) n.noise(x + ((r * MAGIC[170]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[170])))) - + ((float) n.noise(x + ((r * MAGIC[22]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[22])))) - + ((float) n.noise(x + ((r * MAGIC[124]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[124])))) - + ((float) n.noise(x + ((r * MAGIC[36]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[36])))) - + ((float) n.noise(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40])))) - + ((float) n.noise(x + ((r * MAGIC[131]) - (r * MAGIC[92])), z + ((r * MAGIC[92]) + (r * MAGIC[131])))) - + ((float) n.noise(x + ((r * MAGIC[53]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[53])))) - + ((float) n.noise(x + ((r * MAGIC[19]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[19])))) - + ((float) n.noise(x + ((r * MAGIC[66]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[66])))) - + ((float) n.noise(x + ((r * MAGIC[54]) - (r * MAGIC[172])), z + ((r * MAGIC[172]) + (r * MAGIC[54])))) - + ((float) n.noise(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46])))) - + ((float) n.noise(x + ((r * MAGIC[132]) - (r * MAGIC[88])), z + ((r * MAGIC[88]) + (r * MAGIC[132])))) - + ((float) n.noise(x + ((r * MAGIC[130]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[130])))) - + ((float) n.noise(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8])))) - + ((float) n.noise(x + ((r * MAGIC[83]) - (r * MAGIC[118])), z + ((r * MAGIC[118]) + (r * MAGIC[83])))) - + ((float) n.noise(x + ((r * MAGIC[87]) - (r * MAGIC[88])), z + ((r * MAGIC[88]) + (r * MAGIC[87])))) - + ((float) n.noise(x + ((r * MAGIC[98]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[98])))) - + ((float) n.noise(x + ((r * MAGIC[155]) - (r * MAGIC[172])), z + ((r * MAGIC[172]) + (r * MAGIC[155])))) - + ((float) n.noise(x + ((r * MAGIC[33]) - (r * MAGIC[37])), z + ((r * MAGIC[37]) + (r * MAGIC[33])))) - + ((float) n.noise(x + ((r * MAGIC[75]) - (r * MAGIC[49])), z + ((r * MAGIC[49]) + (r * MAGIC[75])))) - + ((float) n.noise(x + ((r * MAGIC[126]) - (r * MAGIC[52])), z + ((r * MAGIC[52]) + (r * MAGIC[126])))) - + ((float) n.noise(x + ((r * MAGIC[93]) - (r * MAGIC[92])), z + ((r * MAGIC[92]) + (r * MAGIC[93])))) - + ((float) n.noise(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10])))) - + ((float) n.noise(x + ((r * MAGIC[34]) - (r * MAGIC[35])), z + ((r * MAGIC[35]) + (r * MAGIC[34])))) - + ((float) n.noise(x + ((r * MAGIC[78]) - (r * MAGIC[156])), z + ((r * MAGIC[156]) + (r * MAGIC[78])))) - + ((float) n.noise(x + ((r * MAGIC[71]) - (r * MAGIC[23])), z + ((r * MAGIC[23]) + (r * MAGIC[71])))) - + ((float) n.noise(x + ((r * MAGIC[44]) - (r * MAGIC[86])), z + ((r * MAGIC[86]) + (r * MAGIC[44])))) - + ((float) n.noise(x + ((r * MAGIC[128]) - (r * MAGIC[90])), z + ((r * MAGIC[90]) + (r * MAGIC[128])))) - + ((float) n.noise(x + ((r * MAGIC[15]) - (r * MAGIC[6])), z + ((r * MAGIC[6]) + (r * MAGIC[15])))) - + ((float) n.noise(x + ((r * MAGIC[41]) - (r * MAGIC[116])), z + ((r * MAGIC[116]) + (r * MAGIC[41])))) - + ((float) n.noise(x + ((r * MAGIC[107]) - (r * MAGIC[125])), z + ((r * MAGIC[125]) + (r * MAGIC[107])))) - + ((float) n.noise(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11])))) - + ((float) n.noise(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95])))) - + ((float) n.noise(x + ((r * MAGIC[30]) - (r * MAGIC[89])), z + ((r * MAGIC[89]) + (r * MAGIC[30])))) - + ((float) n.noise(x + ((r * MAGIC[74]) - (r * MAGIC[77])), z + ((r * MAGIC[77]) + (r * MAGIC[74])))) - + ((float) n.noise(x + ((r * MAGIC[80]) - (r * MAGIC[51])), z + ((r * MAGIC[51]) + (r * MAGIC[80])))) - + ((float) n.noise(x + ((r * MAGIC[81]) - (r * MAGIC[50])), z + ((r * MAGIC[50]) + (r * MAGIC[81])))) - + ((float) n.noise(x + ((r * MAGIC[73]) - (r * MAGIC[85])), z + ((r * MAGIC[85]) + (r * MAGIC[73])))) - + ((float) n.noise(x + ((r * MAGIC[31]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[31])))) - + ((float) n.noise(x + ((r * MAGIC[47]) - (r * MAGIC[48])), z + ((r * MAGIC[48]) + (r * MAGIC[47])))) - + ((float) n.noise(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39])))) - + ((float) n.noise(x + ((r * MAGIC[108]) - (r * MAGIC[171])), z + ((r * MAGIC[171]) + (r * MAGIC[108])))) - + ((float) n.noise(x + ((r * MAGIC[42]) - (r * MAGIC[117])), z + ((r * MAGIC[117]) + (r * MAGIC[42])))) - + ((float) n.noise(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4])))) - + ((float) n.noise(x + ((r * MAGIC[129]) - (r * MAGIC[91])), z + ((r * MAGIC[91]) + (r * MAGIC[129])))) - + ((float) n.noise(x + ((r * MAGIC[43]) - (r * MAGIC[170])), z + ((r * MAGIC[170]) + (r * MAGIC[43])))) - + ((float) n.noise(x + ((r * MAGIC[72]) - (r * MAGIC[22])), z + ((r * MAGIC[22]) + (r * MAGIC[72])))) - + ((float) n.noise(x + ((r * MAGIC[79]) - (r * MAGIC[124])), z + ((r * MAGIC[124]) + (r * MAGIC[79])))) - + ((float) n.noise(x + ((r * MAGIC[84]) - (r * MAGIC[36])), z + ((r * MAGIC[36]) + (r * MAGIC[84])))) - + ((float) n.noise(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9])))) - + ((float) n.noise(x + ((r * MAGIC[123]) - (r * MAGIC[131])), z + ((r * MAGIC[131]) + (r * MAGIC[123])))) - + ((float) n.noise(x + ((r * MAGIC[127]) - (r * MAGIC[53])), z + ((r * MAGIC[53]) + (r * MAGIC[127])))) - + ((float) n.noise(x + ((r * MAGIC[18]) - (r * MAGIC[19])), z + ((r * MAGIC[19]) + (r * MAGIC[18])))) - + ((float) n.noise(x + ((r * MAGIC[32]) - (r * MAGIC[66])), z + ((r * MAGIC[66]) + (r * MAGIC[32])))) - + ((float) n.noise(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55])))) - + ((float) n.noise(x + ((r * MAGIC[45]) - (r * MAGIC[46])), z + ((r * MAGIC[46]) + (r * MAGIC[45])))) - + ((float) n.noise(x + ((r * MAGIC[169]) - (r * MAGIC[132])), z + ((r * MAGIC[132]) + (r * MAGIC[169])))) - + ((float) n.noise(x + ((r * MAGIC[82]) - (r * MAGIC[130])), z + ((r * MAGIC[130]) + (r * MAGIC[82]))))) * 0.0078125F; - } - - -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/interpolation/Starcast.java b/core/src/main/java/com/volmit/iris/util/interpolation/Starcast.java deleted file mode 100644 index e3061d939..000000000 --- a/core/src/main/java/com/volmit/iris/util/interpolation/Starcast.java +++ /dev/null @@ -1,734 +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 com.volmit.iris.util.interpolation; - -import com.volmit.iris.util.function.NoiseProvider; - -public class Starcast { - private static final double F3C0 = 1; - private static final double F3S0 = 0; - private static final double F3C1 = -0.4999999999999997779553950749686919152736663818359375; - private static final double F3S1 = 0.86602540378443870761060452423407696187496185302734375; - private static final double F3C2 = -0.500000000000000444089209850062616169452667236328125; - private static final double F3S2 = -0.86602540378443837454369713668711483478546142578125; - private static final double F5C0 = 1; - private static final double F5S0 = 0; - private static final double F5C1 = 0.30901699437494745126286943559534847736358642578125; - private static final double F5S1 = 0.95105651629515353118193843329208903014659881591796875; - private static final double F5C2 = -0.80901699437494734024056697307969443500041961669921875; - private static final double F5S2 = 0.58778525229247324812575925534474663436412811279296875; - private static final double F5C3 = -0.80901699437494756228517189811100251972675323486328125; - private static final double F5S3 = -0.58778525229247302608115433031343854963779449462890625; - private static final double F5C4 = 0.3090169943749472292182645105640403926372528076171875; - private static final double F5S4 = -0.951056516295153642204240895807743072509765625; - private static final double F6C0 = 1; - private static final double F6S0 = 0; - private static final double F6C1 = 0.50000000000000011102230246251565404236316680908203125; - private static final double F6S1 = 0.8660254037844385965883020617184229195117950439453125; - private static final double F6C2 = -0.4999999999999997779553950749686919152736663818359375; - private static final double F6S2 = 0.86602540378443870761060452423407696187496185302734375; - private static final double F6C3 = -1; - private static final double F6S3 = 0.000000000000000122464679914735320717376402945839660462569212467758006379625612680683843791484832763671875; - private static final double F6C4 = -0.500000000000000444089209850062616169452667236328125; - private static final double F6S4 = -0.86602540378443837454369713668711483478546142578125; - private static final double F6C5 = 0.50000000000000011102230246251565404236316680908203125; - private static final double F6S5 = -0.8660254037844385965883020617184229195117950439453125; - private static final double F7C0 = 1; - private static final double F7S0 = 0; - private static final double F7C1 = 0.6293203910498375019955119569203816354274749755859375; - private static final double F7S1 = 0.77714596145697090179282895405776798725128173828125; - private static final double F7C2 = -0.207911690817759342575499204031075350940227508544921875; - private static final double F7S2 = 0.9781476007338056888329447247087955474853515625; - private static final double F7C3 = -0.891006524188367787786546614370308816432952880859375; - private static final double F7S3 = 0.45399049973954685999188995992881245911121368408203125; - private static final double F7C4 = -0.91354545764260086659902526662335731089115142822265625; - private static final double F7S4 = -0.406736643075800208269043878317461349070072174072265625; - private static final double F7C5 = -0.25881904510252062845410137015278451144695281982421875; - private static final double F7S5 = -0.96592582628906831221371476203785277903079986572265625; - private static final double F7C6 = 0.587785252292472915058851867797784507274627685546875; - private static final double F7S6 = -0.80901699437494756228517189811100251972675323486328125; - private static final double F7C7 = 0.99862953475457383323288240717374719679355621337890625; - private static final double F7S7 = -0.052335956242944368932423770957029773853719234466552734375; - private static final double F9C0 = 1; - private static final double F9S0 = 0; - private static final double F9C1 = 0.76604444311897801345168090847437269985675811767578125; - private static final double F9S1 = 0.642787609686539251896419955301098525524139404296875; - private static final double F9C2 = 0.17364817766693041445336120887077413499355316162109375; - private static final double F9S2 = 0.98480775301220802031565426659653894603252410888671875; - private static final double F9C3 = -0.4999999999999997779553950749686919152736663818359375; - private static final double F9S3 = 0.86602540378443870761060452423407696187496185302734375; - private static final double F9C4 = -0.93969262078590831688273965482949279248714447021484375; - private static final double F9S4 = 0.342020143325668879441536773811094462871551513671875; - private static final double F9C5 = -0.939692620785908427905042117345146834850311279296875; - private static final double F9S5 = -0.3420201433256686573969318487797863781452178955078125; - private static final double F9C6 = -0.500000000000000444089209850062616169452667236328125; - private static final double F9S6 = -0.86602540378443837454369713668711483478546142578125; - private static final double F9C7 = 0.17364817766692997036415135880815796554088592529296875; - private static final double F9S7 = -0.98480775301220813133795672911219298839569091796875; - private static final double F9C8 = 0.76604444311897779140707598344306461513042449951171875; - private static final double F9S8 = -0.64278760968653958496332734284806065261363983154296875; - private static final double F12C0 = 1; - private static final double F12S0 = 0; - private static final double F12C1 = 0.86602540378443870761060452423407696187496185302734375; - private static final double F12S1 = 0.499999999999999944488848768742172978818416595458984375; - private static final double F12C2 = 0.50000000000000011102230246251565404236316680908203125; - private static final double F12S2 = 0.8660254037844385965883020617184229195117950439453125; - private static final double F12C3 = 0.0000000000000000612323399573676603586882014729198302312846062338790031898128063403419218957424163818359375; - private static final double F12S3 = 1; - private static final double F12C4 = -0.4999999999999997779553950749686919152736663818359375; - private static final double F12S4 = 0.86602540378443870761060452423407696187496185302734375; - private static final double F12C5 = -0.86602540378443870761060452423407696187496185302734375; - private static final double F12S5 = 0.499999999999999944488848768742172978818416595458984375; - private static final double F12C6 = -1; - private static final double F12S6 = 0.000000000000000122464679914735320717376402945839660462569212467758006379625612680683843791484832763671875; - private static final double F12C7 = -0.8660254037844385965883020617184229195117950439453125; - private static final double F12S7 = -0.50000000000000011102230246251565404236316680908203125; - private static final double F12C8 = -0.500000000000000444089209850062616169452667236328125; - private static final double F12S8 = -0.86602540378443837454369713668711483478546142578125; - private static final double F12C9 = -0.00000000000000018369701987210296875011296034045003113559498615810217092558787044254131615161895751953125; - private static final double F12S9 = -1; - private static final double F12C10 = 0.50000000000000011102230246251565404236316680908203125; - private static final double F12S10 = -0.8660254037844385965883020617184229195117950439453125; - private static final double F12C11 = 0.86602540378443837454369713668711483478546142578125; - private static final double F12S11 = -0.500000000000000444089209850062616169452667236328125; - private static final double F24C0 = 1; - private static final double F24S0 = 0; - private static final double F24C1 = 0.96592582628906831221371476203785277903079986572265625; - private static final double F24S1 = 0.25881904510252073947640383266843855381011962890625; - private static final double F24C2 = 0.86602540378443870761060452423407696187496185302734375; - private static final double F24S2 = 0.499999999999999944488848768742172978818416595458984375; - private static final double F24C3 = 0.70710678118654757273731092936941422522068023681640625; - private static final double F24S3 = 0.707106781186547461715008466853760182857513427734375; - private static final double F24C4 = 0.50000000000000011102230246251565404236316680908203125; - private static final double F24S4 = 0.8660254037844385965883020617184229195117950439453125; - private static final double F24C5 = 0.25881904510252073947640383266843855381011962890625; - private static final double F24S5 = 0.96592582628906831221371476203785277903079986572265625; - private static final double F24C6 = 0.0000000000000000612323399573676603586882014729198302312846062338790031898128063403419218957424163818359375; - private static final double F24S6 = 1; - private static final double F24C7 = -0.25881904510252085049870629518409259617328643798828125; - private static final double F24S7 = 0.96592582628906831221371476203785277903079986572265625; - private static final double F24C8 = -0.4999999999999997779553950749686919152736663818359375; - private static final double F24S8 = 0.86602540378443870761060452423407696187496185302734375; - private static final double F24C9 = -0.707106781186547461715008466853760182857513427734375; - private static final double F24S9 = 0.70710678118654757273731092936941422522068023681640625; - private static final double F24C10 = -0.86602540378443870761060452423407696187496185302734375; - private static final double F24S10 = 0.499999999999999944488848768742172978818416595458984375; - private static final double F24C11 = -0.965925826289068201191412299522198736667633056640625; - private static final double F24S11 = 0.258819045102521017032159988957573659718036651611328125; - private static final double F24C12 = -1; - private static final double F24S12 = 0.000000000000000122464679914735320717376402945839660462569212467758006379625612680683843791484832763671875; - private static final double F24C13 = -0.96592582628906831221371476203785277903079986572265625; - private static final double F24S13 = -0.258819045102520794987555063926265574991703033447265625; - private static final double F24C14 = -0.8660254037844385965883020617184229195117950439453125; - private static final double F24S14 = -0.50000000000000011102230246251565404236316680908203125; - private static final double F24C15 = -0.7071067811865476837596133918850682675838470458984375; - private static final double F24S15 = -0.707106781186547461715008466853760182857513427734375; - private static final double F24C16 = -0.500000000000000444089209850062616169452667236328125; - private static final double F24S16 = -0.86602540378443837454369713668711483478546142578125; - private static final double F24C17 = -0.25881904510252062845410137015278451144695281982421875; - private static final double F24S17 = -0.96592582628906831221371476203785277903079986572265625; - private static final double F24C18 = -0.00000000000000018369701987210296875011296034045003113559498615810217092558787044254131615161895751953125; - private static final double F24S18 = -1; - private static final double F24C19 = 0.258819045102520295387193982605822384357452392578125; - private static final double F24S19 = -0.9659258262890684232360172245535068213939666748046875; - private static final double F24C20 = 0.50000000000000011102230246251565404236316680908203125; - private static final double F24S20 = -0.8660254037844385965883020617184229195117950439453125; - private static final double F24C21 = 0.70710678118654735069270600433810614049434661865234375; - private static final double F24S21 = -0.7071067811865476837596133918850682675838470458984375; - private static final double F24C22 = 0.86602540378443837454369713668711483478546142578125; - private static final double F24S22 = -0.500000000000000444089209850062616169452667236328125; - private static final double F24C23 = 0.96592582628906831221371476203785277903079986572265625; - private static final double F24S23 = -0.258819045102520683965252601410611532628536224365234375; - private static final double F32C0 = 1; - private static final double F32S0 = 0; - private static final double F32C1 = 0.9816271834476639757127713892259635031223297119140625; - private static final double F32S1 = 0.1908089953765448043565555735767702572047710418701171875; - private static final double F32C2 = 0.92718385456678742428948680753819644451141357421875; - private static final double F32S2 = 0.374606593415912014766178117497474886476993560791015625; - private static final double F32C3 = 0.838670567945424050293468098971061408519744873046875; - private static final double F32S3 = 0.54463903501502708426329490976058878004550933837890625; - private static final double F32C4 = 0.71933980033865119185776393351261503994464874267578125; - private static final double F32S4 = 0.6946583704589972541043607634492218494415283203125; - private static final double F32C5 = 0.57357643635104615942310601894860155880451202392578125; - private static final double F32S5 = 0.81915204428899179855960710483486764132976531982421875; - private static final double F32C6 = 0.406736643075800208269043878317461349070072174072265625; - private static final double F32S6 = 0.91354545764260086659902526662335731089115142822265625; - private static final double F32C7 = 0.224951054343864920159745679484331049025058746337890625; - private static final double F32S7 = 0.97437006478523524588553073044749908149242401123046875; - private static final double F32C8 = 0.034899496702501080214187112460422213189303874969482421875; - private static final double F32S8 = 0.99939082701909576211818375668372027575969696044921875; - private static final double F32C9 = -0.1564344650402308134484741231062798760831356048583984375; - private static final double F32S9 = 0.987688340595137770350220307591371238231658935546875; - private static final double F32C10 = -0.342020143325668712908083080037613399326801300048828125; - private static final double F32S10 = 0.939692620785908427905042117345146834850311279296875; - private static final double F32C11 = -0.515038074910054266553061097511090338230133056640625; - private static final double F32S11 = 0.8571673007021123336102164103067480027675628662109375; - private static final double F32C12 = -0.66913060635885823757007528911344707012176513671875; - private static final double F32S12 = 0.7431448254773942441175904605188407003879547119140625; - private static final double F32C13 = -0.79863551004729294024997443557367660105228424072265625; - private static final double F32S13 = 0.60181502315204815634075430352822877466678619384765625; - private static final double F32C14 = -0.8987940462991670376169395240140147507190704345703125; - private static final double F32S14 = 0.43837114678907729281576166613376699388027191162109375; - private static final double F32C15 = -0.965925826289068201191412299522198736667633056640625; - private static final double F32S15 = 0.258819045102521017032159988957573659718036651611328125; - private static final double F32C16 = -0.9975640502598241976528470331686548888683319091796875; - private static final double F32S16 = 0.06975647374412552448319502218510024249553680419921875; - private static final double F32C17 = -0.992546151641322094150154953240416944026947021484375; - private static final double F32S17 = -0.12186934340514730956694933183825924061238765716552734375; - private static final double F32C18 = -0.951056516295153642204240895807743072509765625; - private static final double F32S18 = -0.309016994374947284729415741821867413818836212158203125; - private static final double F32C19 = -0.87461970713939585220231265338952653110027313232421875; - private static final double F32S19 = -0.484809620246336947513299264755914919078350067138671875; - private static final double F32C20 = -0.76604444311897801345168090847437269985675811767578125; - private static final double F32S20 = -0.642787609686539251896419955301098525524139404296875; - private static final double F32C21 = -0.62932039104983783506241934446734376251697540283203125; - private static final double F32S21 = -0.77714596145697056872592156651080586016178131103515625; - private static final double F32C22 = -0.469471562785890750291173389996401965618133544921875; - private static final double F32S22 = -0.88294759285892698841280434862710535526275634765625; - private static final double F32C23 = -0.29237170472273710242205879694665782153606414794921875; - private static final double F32S23 = -0.9563047559630353244841671767062507569789886474609375; - private static final double F32C24 = -0.104528463267653359825004599770181812345981597900390625; - private static final double F32S24 = -0.99452189536827340088365190240438096225261688232421875; - private static final double F32C25 = 0.0871557427476578883140945208651828579604625701904296875; - private static final double F32S25 = -0.9961946980917455451987052583717741072177886962890625; - private static final double F32C26 = 0.275637355816999385371701691838097758591175079345703125; - private static final double F32S26 = -0.96126169593831878312784056106465868651866912841796875; - private static final double F32C27 = 0.45399049973954663794728503489750437438488006591796875; - private static final double F32S27 = -0.89100652418836789880884907688596285879611968994140625; - private static final double F32C28 = 0.61566147532565851374641852089553140103816986083984375; - private static final double F32S28 = -0.7880107536067217921527117141522467136383056640625; - private static final double F32C29 = 0.7547095802227719030241814834880642592906951904296875; - private static final double F32S29 = -0.65605902899050738685815531425760127604007720947265625; - private static final double F32C30 = 0.86602540378443837454369713668711483478546142578125; - private static final double F32S30 = -0.500000000000000444089209850062616169452667236328125; - private static final double F32C31 = 0.94551857559931684615861513520940206944942474365234375; - private static final double F32S31 = -0.3255681544571566998769185374840162694454193115234375; - private static final double F32C32 = 0.99026806874157025095684048210387118160724639892578125; - private static final double F32S32 = -0.1391731009600658819369556340461713261902332305908203125; - private static final double F48C0 = 1; - private static final double F48S0 = 0; - private static final double F48C1 = 0.99254615164132198312785249072476290166378021240234375; - private static final double F48S1 = 0.12186934340514747610040302561174030415713787078857421875; - private static final double F48C2 = 0.97029572627599647294260876151383854448795318603515625; - private static final double F48S2 = 0.2419218955996677300479547056966111995279788970947265625; - private static final double F48C3 = 0.93358042649720174299687869279296137392520904541015625; - private static final double F48S3 = 0.3583679495453002683547083506709896028041839599609375; - private static final double F48C4 = 0.88294759285892698841280434862710535526275634765625; - private static final double F48S4 = 0.469471562785890805802324621254228986799716949462890625; - private static final double F48C5 = 0.81915204428899179855960710483486764132976531982421875; - private static final double F48S5 = 0.57357643635104604840080355643294751644134521484375; - private static final double F48C6 = 0.7431448254773942441175904605188407003879547119140625; - private static final double F48S6 = 0.66913060635885823757007528911344707012176513671875; - private static final double F48C7 = 0.656059028990507275835852851741947233676910400390625; - private static final double F48S7 = 0.75470958022277201404648394600371830165386199951171875; - private static final double F48C8 = 0.5591929034707467938147829045192338526248931884765625; - private static final double F48S8 = 0.82903757255504173517834942686022259294986724853515625; - private static final double F48C9 = 0.453990499739546804480738728670985437929630279541015625; - private static final double F48S9 = 0.891006524188367787786546614370308816432952880859375; - private static final double F48C10 = 0.342020143325668823930385542553267441689968109130859375; - private static final double F48S10 = 0.93969262078590831688273965482949279248714447021484375; - private static final double F48C11 = 0.224951054343864920159745679484331049025058746337890625; - private static final double F48S11 = 0.97437006478523524588553073044749908149242401123046875; - private static final double F48C12 = 0.10452846326765345696951925447137909941375255584716796875; - private static final double F48S12 = 0.9945218953682732898613494398887269198894500732421875; - private static final double F48C13 = -0.01745240643728347695873281963940826244652271270751953125; - private static final double F48S13 = 0.9998476951563912695775115935248322784900665283203125; - private static final double F48C14 = -0.139173100960065354581018937096814624965190887451171875; - private static final double F48S14 = 0.9902680687415703619791429446195252239704132080078125; - private static final double F48C15 = -0.25881904510252085049870629518409259617328643798828125; - private static final double F48S15 = 0.96592582628906831221371476203785277903079986572265625; - private static final double F48C16 = -0.37460659341591207027732934875530190765857696533203125; - private static final double F48S16 = 0.92718385456678742428948680753819644451141357421875; - private static final double F48C17 = -0.4848096202463370030244504960137419402599334716796875; - private static final double F48S17 = 0.87461970713939585220231265338952653110027313232421875; - private static final double F48C18 = -0.58778525229247302608115433031343854963779449462890625; - private static final double F48S18 = 0.80901699437494745126286943559534847736358642578125; - private static final double F48C19 = -0.6819983600624983655080768585321493446826934814453125; - private static final double F48S19 = 0.73135370161917057085787519099540077149868011474609375; - private static final double F48C20 = -0.76604444311897790242937844595871865749359130859375; - private static final double F48S20 = 0.6427876096865394739410248803324066102504730224609375; - private static final double F48C21 = -0.83867056794542393927116563645540736615657806396484375; - private static final double F48S21 = 0.54463903501502730630789983479189686477184295654296875; - private static final double F48C22 = -0.8987940462991670376169395240140147507190704345703125; - private static final double F48S22 = 0.43837114678907729281576166613376699388027191162109375; - private static final double F48C23 = -0.94551857559931684615861513520940206944942474365234375; - private static final double F48S23 = 0.32556815445715658885461607496836222708225250244140625; - private static final double F48C24 = -0.9781476007338056888329447247087955474853515625; - private static final double F48S24 = 0.2079116908177593148199235884021618403494358062744140625; - private static final double F48C25 = -0.9961946980917455451987052583717741072177886962890625; - private static final double F48S25 = 0.087155742747658193625426292783231474459171295166015625; - private static final double F48C26 = -0.99939082701909576211818375668372027575969696044921875; - private static final double F48S26 = -0.034899496702500899802945610872484394349157810211181640625; - private static final double F48C27 = -0.987688340595137770350220307591371238231658935546875; - private static final double F48S27 = -0.156434465040230730181747276219539344310760498046875; - private static final double F48C28 = -0.9612616959383188941501430235803127288818359375; - private static final double F48S28 = -0.27563735581699899679364307303330861032009124755859375; - private static final double F48C29 = -0.92050485345244037471701403774204663932323455810546875; - private static final double F48S29 = -0.390731128489273549231342030907399021089076995849609375; - private static final double F48C30 = -0.8660254037844385965883020617184229195117950439453125; - private static final double F48S30 = -0.50000000000000011102230246251565404236316680908203125; - private static final double F48C31 = -0.798635510047292829227671973058022558689117431640625; - private static final double F48S31 = -0.60181502315204837838535922855953685939311981201171875; - private static final double F48C32 = -0.71933980033865108083546147099696099758148193359375; - private static final double F48S32 = -0.69465837045899736512666322596487589180469512939453125; - private static final double F48C33 = -0.62932039104983783506241934446734376251697540283203125; - private static final double F48S33 = -0.77714596145697056872592156651080586016178131103515625; - private static final double F48C34 = -0.52991926423320501182701036668731831014156341552734375; - private static final double F48S34 = -0.84804809615642595677087456351728178560733795166015625; - private static final double F48C35 = -0.42261826174069916373099431439186446368694305419921875; - private static final double F48S35 = -0.90630778703665004769618462887592613697052001953125; - private static final double F48C36 = -0.30901699437494756228517189811100251972675323486328125; - private static final double F48S36 = -0.95105651629515353118193843329208903014659881591796875; - private static final double F48C37 = -0.1908089953765446100675262641743756830692291259765625; - private static final double F48S37 = -0.9816271834476639757127713892259635031223297119140625; - private static final double F48C38 = -0.069756473744125579994346253442927263677120208740234375; - private static final double F48S38 = -0.9975640502598241976528470331686548888683319091796875; - private static final double F48C39 = 0.05233595624294394565989563261609873734414577484130859375; - private static final double F48S39 = -0.99862953475457383323288240717374719679355621337890625; - private static final double F48C40 = 0.17364817766692997036415135880815796554088592529296875; - private static final double F48S40 = -0.98480775301220813133795672911219298839569091796875; - private static final double F48C41 = 0.292371704722736713844000178141868673264980316162109375; - private static final double F48S41 = -0.95630475596303543550646963922190479934215545654296875; - private static final double F48C42 = 0.406736643075799764179834028254845179617404937744140625; - private static final double F48S42 = -0.91354545764260108864363019165466539561748504638671875; - private static final double F48C43 = 0.51503807491005415553075863499543629586696624755859375; - private static final double F48S43 = -0.8571673007021123336102164103067480027675628662109375; - private static final double F48C44 = 0.61566147532565851374641852089553140103816986083984375; - private static final double F48S44 = -0.7880107536067217921527117141522467136383056640625; - private static final double F48C45 = 0.70710678118654735069270600433810614049434661865234375; - private static final double F48S45 = -0.7071067811865476837596133918850682675838470458984375; - private static final double F48C46 = 0.7880107536067220141973166391835547983646392822265625; - private static final double F48S46 = -0.61566147532565818067951113334856927394866943359375; - private static final double F48C47 = 0.857167300702112111565611485275439918041229248046875; - private static final double F48S47 = -0.5150380749100544885976660225423984229564666748046875; - private static final double F48C48 = 0.9135454576426009776213277291390113532543182373046875; - private static final double F48S48 = -0.40673664307580015275789264705963432788848876953125; - private static final double F48C49 = 0.9563047559630353244841671767062507569789886474609375; - private static final double F48S49 = -0.292371704722737157933210028204484842717647552490234375; - private static final double F48C50 = 0.98480775301220802031565426659653894603252410888671875; - private static final double F48S50 = -0.1736481776669303866977855932418606244027614593505859375; - private static final double F48C51 = 0.99862953475457383323288240717374719679355621337890625; - private static final double F48S51 = -0.052335956242944368932423770957029773853719234466552734375; - private static final double F64C0 = 1; - private static final double F64S0 = 0; - private static final double F64C1 = 0.9961946980917455451987052583717741072177886962890625; - private static final double F64S1 = 0.0871557427476581658698506771543179638683795928955078125; - private static final double F64C2 = 0.98480775301220802031565426659653894603252410888671875; - private static final double F64S2 = 0.1736481776669303311866343619840336032211780548095703125; - private static final double F64C3 = 0.96592582628906831221371476203785277903079986572265625; - private static final double F64S3 = 0.25881904510252073947640383266843855381011962890625; - private static final double F64C4 = 0.939692620785908427905042117345146834850311279296875; - private static final double F64S4 = 0.342020143325668712908083080037613399326801300048828125; - private static final double F64C5 = 0.90630778703664993667388216636027209460735321044921875; - private static final double F64S5 = 0.422618261740699441286750470680999569594860076904296875; - private static final double F64C6 = 0.86602540378443870761060452423407696187496185302734375; - private static final double F64S6 = 0.499999999999999944488848768742172978818416595458984375; - private static final double F64C7 = 0.81915204428899179855960710483486764132976531982421875; - private static final double F64S7 = 0.57357643635104604840080355643294751644134521484375; - private static final double F64C8 = 0.76604444311897801345168090847437269985675811767578125; - private static final double F64S8 = 0.642787609686539251896419955301098525524139404296875; - private static final double F64C9 = 0.70710678118654757273731092936941422522068023681640625; - private static final double F64S9 = 0.707106781186547461715008466853760182857513427734375; - private static final double F64C10 = 0.64278760968653936291872241781675256788730621337890625; - private static final double F64S10 = 0.76604444311897801345168090847437269985675811767578125; - private static final double F64C11 = 0.57357643635104615942310601894860155880451202392578125; - private static final double F64S11 = 0.81915204428899179855960710483486764132976531982421875; - private static final double F64C12 = 0.50000000000000011102230246251565404236316680908203125; - private static final double F64S12 = 0.8660254037844385965883020617184229195117950439453125; - private static final double F64C13 = 0.422618261740699441286750470680999569594860076904296875; - private static final double F64S13 = 0.90630778703664993667388216636027209460735321044921875; - private static final double F64C14 = 0.342020143325668823930385542553267441689968109130859375; - private static final double F64S14 = 0.93969262078590831688273965482949279248714447021484375; - private static final double F64C15 = 0.25881904510252073947640383266843855381011962890625; - private static final double F64S15 = 0.96592582628906831221371476203785277903079986572265625; - private static final double F64C16 = 0.17364817766693041445336120887077413499355316162109375; - private static final double F64S16 = 0.98480775301220802031565426659653894603252410888671875; - private static final double F64C17 = 0.087155742747658138114275061525404453277587890625; - private static final double F64S17 = 0.9961946980917455451987052583717741072177886962890625; - private static final double F64C18 = 0.0000000000000000612323399573676603586882014729198302312846062338790031898128063403419218957424163818359375; - private static final double F64S18 = 1; - private static final double F64C19 = -0.08715574274765823525878971622660174034535884857177734375; - private static final double F64S19 = 0.9961946980917455451987052583717741072177886962890625; - private static final double F64C20 = -0.1736481776669303034310587463551200926303863525390625; - private static final double F64S20 = 0.98480775301220802031565426659653894603252410888671875; - private static final double F64C21 = -0.25881904510252085049870629518409259617328643798828125; - private static final double F64S21 = 0.96592582628906831221371476203785277903079986572265625; - private static final double F64C22 = -0.342020143325668712908083080037613399326801300048828125; - private static final double F64S22 = 0.939692620785908427905042117345146834850311279296875; - private static final double F64C23 = -0.422618261740699330264448008165345527231693267822265625; - private static final double F64S23 = 0.90630778703665004769618462887592613697052001953125; - private static final double F64C24 = -0.4999999999999997779553950749686919152736663818359375; - private static final double F64S24 = 0.86602540378443870761060452423407696187496185302734375; - private static final double F64C25 = -0.57357643635104615942310601894860155880451202392578125; - private static final double F64S25 = 0.8191520442889916875373046423192135989665985107421875; - private static final double F64C26 = -0.64278760968653936291872241781675256788730621337890625; - private static final double F64S26 = 0.76604444311897801345168090847437269985675811767578125; - private static final double F64C27 = -0.707106781186547461715008466853760182857513427734375; - private static final double F64S27 = 0.70710678118654757273731092936941422522068023681640625; - private static final double F64C28 = -0.76604444311897790242937844595871865749359130859375; - private static final double F64S28 = 0.6427876096865394739410248803324066102504730224609375; - private static final double F64C29 = -0.81915204428899190958190956735052168369293212890625; - private static final double F64S29 = 0.57357643635104593737850109391729347407817840576171875; - private static final double F64C30 = -0.86602540378443870761060452423407696187496185302734375; - private static final double F64S30 = 0.499999999999999944488848768742172978818416595458984375; - private static final double F64C31 = -0.90630778703664993667388216636027209460735321044921875; - private static final double F64S31 = 0.4226182617406994967979017019388265907764434814453125; - private static final double F64C32 = -0.93969262078590831688273965482949279248714447021484375; - private static final double F64S32 = 0.342020143325668879441536773811094462871551513671875; - private static final double F64C33 = -0.965925826289068201191412299522198736667633056640625; - private static final double F64S33 = 0.258819045102521017032159988957573659718036651611328125; - private static final double F64C34 = -0.98480775301220802031565426659653894603252410888671875; - private static final double F64S34 = 0.1736481776669302756754831307262065820395946502685546875; - private static final double F64C35 = -0.9961946980917455451987052583717741072177886962890625; - private static final double F64S35 = 0.087155742747658193625426292783231474459171295166015625; - private static final double F64C36 = -1; - private static final double F64S36 = 0.000000000000000122464679914735320717376402945839660462569212467758006379625612680683843791484832763671875; - private static final double F64C37 = -0.9961946980917455451987052583717741072177886962890625; - private static final double F64S37 = -0.0871557427476579438252457521230098791420459747314453125; - private static final double F64C38 = -0.98480775301220802031565426659653894603252410888671875; - private static final double F64S38 = -0.173648177666930469964512440128601156175136566162109375; - private static final double F64C39 = -0.96592582628906831221371476203785277903079986572265625; - private static final double F64S39 = -0.258819045102520794987555063926265574991703033447265625; - private static final double F64C40 = -0.939692620785908427905042117345146834850311279296875; - private static final double F64S40 = -0.3420201433256686573969318487797863781452178955078125; - private static final double F64C41 = -0.90630778703665004769618462887592613697052001953125; - private static final double F64S41 = -0.42261826174069927475329677690751850605010986328125; - private static final double F64C42 = -0.8660254037844385965883020617184229195117950439453125; - private static final double F64S42 = -0.50000000000000011102230246251565404236316680908203125; - private static final double F64C43 = -0.81915204428899179855960710483486764132976531982421875; - private static final double F64S43 = -0.57357643635104615942310601894860155880451202392578125; - private static final double F64C44 = -0.76604444311897801345168090847437269985675811767578125; - private static final double F64S44 = -0.642787609686539251896419955301098525524139404296875; - private static final double F64C45 = -0.7071067811865476837596133918850682675838470458984375; - private static final double F64S45 = -0.707106781186547461715008466853760182857513427734375; - private static final double F64C46 = -0.6427876096865394739410248803324066102504730224609375; - private static final double F64S46 = -0.76604444311897790242937844595871865749359130859375; - private static final double F64C47 = -0.57357643635104638146771094397990964353084564208984375; - private static final double F64S47 = -0.81915204428899157651500217980355955660343170166015625; - private static final double F64C48 = -0.500000000000000444089209850062616169452667236328125; - private static final double F64S48 = -0.86602540378443837454369713668711483478546142578125; - private static final double F64C49 = -0.42261826174069916373099431439186446368694305419921875; - private static final double F64S49 = -0.90630778703665004769618462887592613697052001953125; - private static final double F64C50 = -0.34202014332566854637462938626413233578205108642578125; - private static final double F64S50 = -0.939692620785908427905042117345146834850311279296875; - private static final double F64C51 = -0.25881904510252062845410137015278451144695281982421875; - private static final double F64S51 = -0.96592582628906831221371476203785277903079986572265625; - private static final double F64C52 = -0.1736481776669303311866343619840336032211780548095703125; - private static final double F64S52 = -0.98480775301220802031565426659653894603252410888671875; - private static final double F64C53 = -0.08715574274765824913657752404105849564075469970703125; - private static final double F64S53 = -0.9961946980917455451987052583717741072177886962890625; - private static final double F64C54 = -0.00000000000000018369701987210296875011296034045003113559498615810217092558787044254131615161895751953125; - private static final double F64S54 = -1; - private static final double F64C55 = 0.0871557427476578883140945208651828579604625701904296875; - private static final double F64S55 = -0.9961946980917455451987052583717741072177886962890625; - private static final double F64C56 = 0.17364817766692997036415135880815796554088592529296875; - private static final double F64S56 = -0.98480775301220813133795672911219298839569091796875; - private static final double F64C57 = 0.258819045102520295387193982605822384357452392578125; - private static final double F64S57 = -0.9659258262890684232360172245535068213939666748046875; - private static final double F64C58 = 0.34202014332566899046383923632674850523471832275390625; - private static final double F64S58 = -0.93969262078590831688273965482949279248714447021484375; - private static final double F64C59 = 0.42261826174069960782020416445448063313961029052734375; - private static final double F64S59 = -0.90630778703664993667388216636027209460735321044921875; - private static final double F64C60 = 0.50000000000000011102230246251565404236316680908203125; - private static final double F64S60 = -0.8660254037844385965883020617184229195117950439453125; - private static final double F64C61 = 0.57357643635104604840080355643294751644134521484375; - private static final double F64S61 = -0.81915204428899179855960710483486764132976531982421875; - private static final double F64C62 = 0.642787609686539251896419955301098525524139404296875; - private static final double F64S62 = -0.7660444431189781244739833709900267422199249267578125; - private static final double F64C63 = 0.70710678118654735069270600433810614049434661865234375; - private static final double F64S63 = -0.7071067811865476837596133918850682675838470458984375; - private static final double F64C64 = 0.76604444311897779140707598344306461513042449951171875; - private static final double F64S64 = -0.64278760968653958496332734284806065261363983154296875; - private static final double F64C65 = 0.81915204428899157651500217980355955660343170166015625; - private static final double F64S65 = -0.573576436351046492490013406495563685894012451171875; - private static final double F64C66 = 0.86602540378443837454369713668711483478546142578125; - private static final double F64S66 = -0.500000000000000444089209850062616169452667236328125; - private static final double F64C67 = 0.90630778703665004769618462887592613697052001953125; - private static final double F64S67 = -0.422618261740699219242145545649691484868526458740234375; - private static final double F64C68 = 0.939692620785908427905042117345146834850311279296875; - private static final double F64S68 = -0.342020143325668601885780617521959356963634490966796875; - private static final double F64C69 = 0.96592582628906831221371476203785277903079986572265625; - private static final double F64S69 = -0.258819045102520683965252601410611532628536224365234375; - private static final double F64C70 = 0.98480775301220802031565426659653894603252410888671875; - private static final double F64S70 = -0.1736481776669303866977855932418606244027614593505859375; - private static final double F64C71 = 0.9961946980917455451987052583717741072177886962890625; - private static final double F64S71 = -0.08715574274765831852551656311334227211773395538330078125; - - public static double starcast(int x, int z, double r, double checks, boolean optimized, NoiseProvider n) { - return CompiledStarcast.getStarcast((float) x, (float) z, (float) r, (float) checks, n); - } - - public static double starcast(int x, int z, double r, double checks, NoiseProvider n) { - return starcast(x, z, r, checks, true, n); - } - - private static double sc3(int x, int z, double r, NoiseProvider n) { - return (n.noise(x + ((r * F3C0) - (r * F3S0)), z + ((r * F3S0) + (r * F3C0))) - + n.noise(x + ((r * F3C1) - (r * F3S1)), z + ((r * F3S1) + (r * F3C1))) - + n.noise(x + ((r * F3C2) - (r * F3S2)), z + ((r * F3S2) + (r * F3C2)))) / 3.0D; - } - - private static double sc5(int x, int z, double r, NoiseProvider n) { - return (n.noise(x + ((r * F5C0) - (r * F5S0)), z + ((r * F5S0) + (r * F5C0))) - + n.noise(x + ((r * F5C1) - (r * F5S1)), z + ((r * F5S1) + (r * F5C1))) - + n.noise(x + ((r * F5C2) - (r * F5S2)), z + ((r * F5S2) + (r * F5C2))) - + n.noise(x + ((r * F5C3) - (r * F5S3)), z + ((r * F5S3) + (r * F5C3))) - + n.noise(x + ((r * F5C4) - (r * F5S4)), z + ((r * F5S4) + (r * F5C4)))) / 5.0D; - } - - private static double sc6(int x, int z, double r, NoiseProvider n) { - return (n.noise(x + ((r * F6C0) - (r * F6S0)), z + ((r * F6S0) + (r * F6C0))) - + n.noise(x + ((r * F6C1) - (r * F6S1)), z + ((r * F6S1) + (r * F6C1))) - + n.noise(x + ((r * F6C2) - (r * F6S2)), z + ((r * F6S2) + (r * F6C2))) - + n.noise(x + ((r * F6C3) - (r * F6S3)), z + ((r * F6S3) + (r * F6C3))) - + n.noise(x + ((r * F6C4) - (r * F6S4)), z + ((r * F6S4) + (r * F6C4))) - + n.noise(x + ((r * F6C5) - (r * F6S5)), z + ((r * F6S5) + (r * F6C5)))) / 6.0D; - } - - private static double sc7(int x, int z, double r, NoiseProvider n) { - return (n.noise(x + ((r * F7C0) - (r * F7S0)), z + ((r * F7S0) + (r * F7C0))) - + n.noise(x + ((r * F7C1) - (r * F7S1)), z + ((r * F7S1) + (r * F7C1))) - + n.noise(x + ((r * F7C2) - (r * F7S2)), z + ((r * F7S2) + (r * F7C2))) - + n.noise(x + ((r * F7C3) - (r * F7S3)), z + ((r * F7S3) + (r * F7C3))) - + n.noise(x + ((r * F7C4) - (r * F7S4)), z + ((r * F7S4) + (r * F7C4))) - + n.noise(x + ((r * F7C5) - (r * F7S5)), z + ((r * F7S5) + (r * F7C5))) - + n.noise(x + ((r * F7C6) - (r * F7S6)), z + ((r * F7S6) + (r * F7C6))) - + n.noise(x + ((r * F7C7) - (r * F7S7)), z + ((r * F7S7) + (r * F7C7)))) / 7.0D; - } - - private static double sc9(int x, int z, double r, NoiseProvider n) { - return (n.noise(x + ((r * F9C0) - (r * F9S0)), z + ((r * F9S0) + (r * F9C0))) - + n.noise(x + ((r * F9C1) - (r * F9S1)), z + ((r * F9S1) + (r * F9C1))) - + n.noise(x + ((r * F9C2) - (r * F9S2)), z + ((r * F9S2) + (r * F9C2))) - + n.noise(x + ((r * F9C3) - (r * F9S3)), z + ((r * F9S3) + (r * F9C3))) - + n.noise(x + ((r * F9C4) - (r * F9S4)), z + ((r * F9S4) + (r * F9C4))) - + n.noise(x + ((r * F9C5) - (r * F9S5)), z + ((r * F9S5) + (r * F9C5))) - + n.noise(x + ((r * F9C6) - (r * F9S6)), z + ((r * F9S6) + (r * F9C6))) - + n.noise(x + ((r * F9C7) - (r * F9S7)), z + ((r * F9S7) + (r * F9C7))) - + n.noise(x + ((r * F9C8) - (r * F9S8)), z + ((r * F9S8) + (r * F9C8)))) / 9.0D; - } - - private static double sc12(int x, int z, double r, NoiseProvider n) { - return (n.noise(x + ((r * F12C0) - (r * F12S0)), z + ((r * F12S0) + (r * F12C0))) - + n.noise(x + ((r * F12C1) - (r * F12S1)), z + ((r * F12S1) + (r * F12C1))) - + n.noise(x + ((r * F12C2) - (r * F12S2)), z + ((r * F12S2) + (r * F12C2))) - + n.noise(x + ((r * F12C3) - (r * F12S3)), z + ((r * F12S3) + (r * F12C3))) - + n.noise(x + ((r * F12C4) - (r * F12S4)), z + ((r * F12S4) + (r * F12C4))) - + n.noise(x + ((r * F12C5) - (r * F12S5)), z + ((r * F12S5) + (r * F12C5))) - + n.noise(x + ((r * F12C6) - (r * F12S6)), z + ((r * F12S6) + (r * F12C6))) - + n.noise(x + ((r * F12C7) - (r * F12S7)), z + ((r * F12S7) + (r * F12C7))) - + n.noise(x + ((r * F12C8) - (r * F12S8)), z + ((r * F12S8) + (r * F12C8))) - + n.noise(x + ((r * F12C9) - (r * F12S9)), z + ((r * F12S9) + (r * F12C9))) - + n.noise(x + ((r * F12C10) - (r * F12S10)), z + ((r * F12S10) + (r * F12C10))) - + n.noise(x + ((r * F12C11) - (r * F12S11)), z + ((r * F12S11) + (r * F12C11)))) / 12.0D; - } - - private static double sc24(int x, int z, double r, NoiseProvider n) { - return (n.noise(x + ((r * F24C0) - (r * F24S0)), z + ((r * F24S0) + (r * F24C0))) - + n.noise(x + ((r * F24C1) - (r * F24S1)), z + ((r * F24S1) + (r * F24C1))) - + n.noise(x + ((r * F24C2) - (r * F24S2)), z + ((r * F24S2) + (r * F24C2))) - + n.noise(x + ((r * F24C3) - (r * F24S3)), z + ((r * F24S3) + (r * F24C3))) - + n.noise(x + ((r * F24C4) - (r * F24S4)), z + ((r * F24S4) + (r * F24C4))) - + n.noise(x + ((r * F24C5) - (r * F24S5)), z + ((r * F24S5) + (r * F24C5))) - + n.noise(x + ((r * F24C6) - (r * F24S6)), z + ((r * F24S6) + (r * F24C6))) - + n.noise(x + ((r * F24C7) - (r * F24S7)), z + ((r * F24S7) + (r * F24C7))) - + n.noise(x + ((r * F24C8) - (r * F24S8)), z + ((r * F24S8) + (r * F24C8))) - + n.noise(x + ((r * F24C9) - (r * F24S9)), z + ((r * F24S9) + (r * F24C9))) - + n.noise(x + ((r * F24C10) - (r * F24S10)), z + ((r * F24S10) + (r * F24C10))) - + n.noise(x + ((r * F24C11) - (r * F24S11)), z + ((r * F24S11) + (r * F24C11))) - + n.noise(x + ((r * F24C12) - (r * F24S12)), z + ((r * F24S12) + (r * F24C12))) - + n.noise(x + ((r * F24C13) - (r * F24S13)), z + ((r * F24S13) + (r * F24C13))) - + n.noise(x + ((r * F24C14) - (r * F24S14)), z + ((r * F24S14) + (r * F24C14))) - + n.noise(x + ((r * F24C15) - (r * F24S15)), z + ((r * F24S15) + (r * F24C15))) - + n.noise(x + ((r * F24C16) - (r * F24S16)), z + ((r * F24S16) + (r * F24C16))) - + n.noise(x + ((r * F24C17) - (r * F24S17)), z + ((r * F24S17) + (r * F24C17))) - + n.noise(x + ((r * F24C18) - (r * F24S18)), z + ((r * F24S18) + (r * F24C18))) - + n.noise(x + ((r * F24C19) - (r * F24S19)), z + ((r * F24S19) + (r * F24C19))) - + n.noise(x + ((r * F24C20) - (r * F24S20)), z + ((r * F24S20) + (r * F24C20))) - + n.noise(x + ((r * F24C21) - (r * F24S21)), z + ((r * F24S21) + (r * F24C21))) - + n.noise(x + ((r * F24C22) - (r * F24S22)), z + ((r * F24S22) + (r * F24C22))) - + n.noise(x + ((r * F24C23) - (r * F24S23)), z + ((r * F24S23) + (r * F24C23)))) / 24.0D; - } - - private static double sc32(int x, int z, double r, NoiseProvider n) { - return (n.noise(x + ((r * F32C0) - (r * F32S0)), z + ((r * F32S0) + (r * F32C0))) - + n.noise(x + ((r * F32C1) - (r * F32S1)), z + ((r * F32S1) + (r * F32C1))) - + n.noise(x + ((r * F32C2) - (r * F32S2)), z + ((r * F32S2) + (r * F32C2))) - + n.noise(x + ((r * F32C3) - (r * F32S3)), z + ((r * F32S3) + (r * F32C3))) - + n.noise(x + ((r * F32C4) - (r * F32S4)), z + ((r * F32S4) + (r * F32C4))) - + n.noise(x + ((r * F32C5) - (r * F32S5)), z + ((r * F32S5) + (r * F32C5))) - + n.noise(x + ((r * F32C6) - (r * F32S6)), z + ((r * F32S6) + (r * F32C6))) - + n.noise(x + ((r * F32C7) - (r * F32S7)), z + ((r * F32S7) + (r * F32C7))) - + n.noise(x + ((r * F32C8) - (r * F32S8)), z + ((r * F32S8) + (r * F32C8))) - + n.noise(x + ((r * F32C9) - (r * F32S9)), z + ((r * F32S9) + (r * F32C9))) - + n.noise(x + ((r * F32C10) - (r * F32S10)), z + ((r * F32S10) + (r * F32C10))) - + n.noise(x + ((r * F32C11) - (r * F32S11)), z + ((r * F32S11) + (r * F32C11))) - + n.noise(x + ((r * F32C12) - (r * F32S12)), z + ((r * F32S12) + (r * F32C12))) - + n.noise(x + ((r * F32C13) - (r * F32S13)), z + ((r * F32S13) + (r * F32C13))) - + n.noise(x + ((r * F32C14) - (r * F32S14)), z + ((r * F32S14) + (r * F32C14))) - + n.noise(x + ((r * F32C15) - (r * F32S15)), z + ((r * F32S15) + (r * F32C15))) - + n.noise(x + ((r * F32C16) - (r * F32S16)), z + ((r * F32S16) + (r * F32C16))) - + n.noise(x + ((r * F32C17) - (r * F32S17)), z + ((r * F32S17) + (r * F32C17))) - + n.noise(x + ((r * F32C18) - (r * F32S18)), z + ((r * F32S18) + (r * F32C18))) - + n.noise(x + ((r * F32C19) - (r * F32S19)), z + ((r * F32S19) + (r * F32C19))) - + n.noise(x + ((r * F32C20) - (r * F32S20)), z + ((r * F32S20) + (r * F32C20))) - + n.noise(x + ((r * F32C21) - (r * F32S21)), z + ((r * F32S21) + (r * F32C21))) - + n.noise(x + ((r * F32C22) - (r * F32S22)), z + ((r * F32S22) + (r * F32C22))) - + n.noise(x + ((r * F32C23) - (r * F32S23)), z + ((r * F32S23) + (r * F32C23))) - + n.noise(x + ((r * F32C24) - (r * F32S24)), z + ((r * F32S24) + (r * F32C24))) - + n.noise(x + ((r * F32C25) - (r * F32S25)), z + ((r * F32S25) + (r * F32C25))) - + n.noise(x + ((r * F32C26) - (r * F32S26)), z + ((r * F32S26) + (r * F32C26))) - + n.noise(x + ((r * F32C27) - (r * F32S27)), z + ((r * F32S27) + (r * F32C27))) - + n.noise(x + ((r * F32C28) - (r * F32S28)), z + ((r * F32S28) + (r * F32C28))) - + n.noise(x + ((r * F32C29) - (r * F32S29)), z + ((r * F32S29) + (r * F32C29))) - + n.noise(x + ((r * F32C30) - (r * F32S30)), z + ((r * F32S30) + (r * F32C30))) - + n.noise(x + ((r * F32C31) - (r * F32S31)), z + ((r * F32S31) + (r * F32C31))) - + n.noise(x + ((r * F32C32) - (r * F32S32)), z + ((r * F32S32) + (r * F32C32)))) / 32.0D; - } - - private static double sc48(int x, int z, double r, NoiseProvider n) { - return (n.noise(x + ((r * F48C0) - (r * F48S0)), z + ((r * F48S0) + (r * F48C0))) - + n.noise(x + ((r * F48C1) - (r * F48S1)), z + ((r * F48S1) + (r * F48C1))) - + n.noise(x + ((r * F48C2) - (r * F48S2)), z + ((r * F48S2) + (r * F48C2))) - + n.noise(x + ((r * F48C3) - (r * F48S3)), z + ((r * F48S3) + (r * F48C3))) - + n.noise(x + ((r * F48C4) - (r * F48S4)), z + ((r * F48S4) + (r * F48C4))) - + n.noise(x + ((r * F48C5) - (r * F48S5)), z + ((r * F48S5) + (r * F48C5))) - + n.noise(x + ((r * F48C6) - (r * F48S6)), z + ((r * F48S6) + (r * F48C6))) - + n.noise(x + ((r * F48C7) - (r * F48S7)), z + ((r * F48S7) + (r * F48C7))) - + n.noise(x + ((r * F48C8) - (r * F48S8)), z + ((r * F48S8) + (r * F48C8))) - + n.noise(x + ((r * F48C9) - (r * F48S9)), z + ((r * F48S9) + (r * F48C9))) - + n.noise(x + ((r * F48C10) - (r * F48S10)), z + ((r * F48S10) + (r * F48C10))) - + n.noise(x + ((r * F48C11) - (r * F48S11)), z + ((r * F48S11) + (r * F48C11))) - + n.noise(x + ((r * F48C12) - (r * F48S12)), z + ((r * F48S12) + (r * F48C12))) - + n.noise(x + ((r * F48C13) - (r * F48S13)), z + ((r * F48S13) + (r * F48C13))) - + n.noise(x + ((r * F48C14) - (r * F48S14)), z + ((r * F48S14) + (r * F48C14))) - + n.noise(x + ((r * F48C15) - (r * F48S15)), z + ((r * F48S15) + (r * F48C15))) - + n.noise(x + ((r * F48C16) - (r * F48S16)), z + ((r * F48S16) + (r * F48C16))) - + n.noise(x + ((r * F48C17) - (r * F48S17)), z + ((r * F48S17) + (r * F48C17))) - + n.noise(x + ((r * F48C18) - (r * F48S18)), z + ((r * F48S18) + (r * F48C18))) - + n.noise(x + ((r * F48C19) - (r * F48S19)), z + ((r * F48S19) + (r * F48C19))) - + n.noise(x + ((r * F48C20) - (r * F48S20)), z + ((r * F48S20) + (r * F48C20))) - + n.noise(x + ((r * F48C21) - (r * F48S21)), z + ((r * F48S21) + (r * F48C21))) - + n.noise(x + ((r * F48C22) - (r * F48S22)), z + ((r * F48S22) + (r * F48C22))) - + n.noise(x + ((r * F48C23) - (r * F48S23)), z + ((r * F48S23) + (r * F48C23))) - + n.noise(x + ((r * F48C24) - (r * F48S24)), z + ((r * F48S24) + (r * F48C24))) - + n.noise(x + ((r * F48C25) - (r * F48S25)), z + ((r * F48S25) + (r * F48C25))) - + n.noise(x + ((r * F48C26) - (r * F48S26)), z + ((r * F48S26) + (r * F48C26))) - + n.noise(x + ((r * F48C27) - (r * F48S27)), z + ((r * F48S27) + (r * F48C27))) - + n.noise(x + ((r * F48C28) - (r * F48S28)), z + ((r * F48S28) + (r * F48C28))) - + n.noise(x + ((r * F48C29) - (r * F48S29)), z + ((r * F48S29) + (r * F48C29))) - + n.noise(x + ((r * F48C30) - (r * F48S30)), z + ((r * F48S30) + (r * F48C30))) - + n.noise(x + ((r * F48C31) - (r * F48S31)), z + ((r * F48S31) + (r * F48C31))) - + n.noise(x + ((r * F48C32) - (r * F48S32)), z + ((r * F48S32) + (r * F48C32))) - + n.noise(x + ((r * F48C33) - (r * F48S33)), z + ((r * F48S33) + (r * F48C33))) - + n.noise(x + ((r * F48C34) - (r * F48S34)), z + ((r * F48S34) + (r * F48C34))) - + n.noise(x + ((r * F48C35) - (r * F48S35)), z + ((r * F48S35) + (r * F48C35))) - + n.noise(x + ((r * F48C36) - (r * F48S36)), z + ((r * F48S36) + (r * F48C36))) - + n.noise(x + ((r * F48C37) - (r * F48S37)), z + ((r * F48S37) + (r * F48C37))) - + n.noise(x + ((r * F48C38) - (r * F48S38)), z + ((r * F48S38) + (r * F48C38))) - + n.noise(x + ((r * F48C39) - (r * F48S39)), z + ((r * F48S39) + (r * F48C39))) - + n.noise(x + ((r * F48C40) - (r * F48S40)), z + ((r * F48S40) + (r * F48C40))) - + n.noise(x + ((r * F48C41) - (r * F48S41)), z + ((r * F48S41) + (r * F48C41))) - + n.noise(x + ((r * F48C42) - (r * F48S42)), z + ((r * F48S42) + (r * F48C42))) - + n.noise(x + ((r * F48C43) - (r * F48S43)), z + ((r * F48S43) + (r * F48C43))) - + n.noise(x + ((r * F48C44) - (r * F48S44)), z + ((r * F48S44) + (r * F48C44))) - + n.noise(x + ((r * F48C45) - (r * F48S45)), z + ((r * F48S45) + (r * F48C45))) - + n.noise(x + ((r * F48C46) - (r * F48S46)), z + ((r * F48S46) + (r * F48C46))) - + n.noise(x + ((r * F48C47) - (r * F48S47)), z + ((r * F48S47) + (r * F48C47))) - + n.noise(x + ((r * F48C48) - (r * F48S48)), z + ((r * F48S48) + (r * F48C48))) - + n.noise(x + ((r * F48C49) - (r * F48S49)), z + ((r * F48S49) + (r * F48C49))) - + n.noise(x + ((r * F48C50) - (r * F48S50)), z + ((r * F48S50) + (r * F48C50))) - + n.noise(x + ((r * F48C51) - (r * F48S51)), z + ((r * F48S51) + (r * F48C51)))) / 48.0D; - } - - private static double sc64(int x, int z, double r, NoiseProvider n) { - return (n.noise(x + ((r * F64C0) - (r * F64S0)), z + ((r * F64S0) + (r * F64C0))) - + n.noise(x + ((r * F64C1) - (r * F64S1)), z + ((r * F64S1) + (r * F64C1))) - + n.noise(x + ((r * F64C2) - (r * F64S2)), z + ((r * F64S2) + (r * F64C2))) - + n.noise(x + ((r * F64C3) - (r * F64S3)), z + ((r * F64S3) + (r * F64C3))) - + n.noise(x + ((r * F64C4) - (r * F64S4)), z + ((r * F64S4) + (r * F64C4))) - + n.noise(x + ((r * F64C5) - (r * F64S5)), z + ((r * F64S5) + (r * F64C5))) - + n.noise(x + ((r * F64C6) - (r * F64S6)), z + ((r * F64S6) + (r * F64C6))) - + n.noise(x + ((r * F64C7) - (r * F64S7)), z + ((r * F64S7) + (r * F64C7))) - + n.noise(x + ((r * F64C8) - (r * F64S8)), z + ((r * F64S8) + (r * F64C8))) - + n.noise(x + ((r * F64C9) - (r * F64S9)), z + ((r * F64S9) + (r * F64C9))) - + n.noise(x + ((r * F64C10) - (r * F64S10)), z + ((r * F64S10) + (r * F64C10))) - + n.noise(x + ((r * F64C11) - (r * F64S11)), z + ((r * F64S11) + (r * F64C11))) - + n.noise(x + ((r * F64C12) - (r * F64S12)), z + ((r * F64S12) + (r * F64C12))) - + n.noise(x + ((r * F64C13) - (r * F64S13)), z + ((r * F64S13) + (r * F64C13))) - + n.noise(x + ((r * F64C14) - (r * F64S14)), z + ((r * F64S14) + (r * F64C14))) - + n.noise(x + ((r * F64C15) - (r * F64S15)), z + ((r * F64S15) + (r * F64C15))) - + n.noise(x + ((r * F64C16) - (r * F64S16)), z + ((r * F64S16) + (r * F64C16))) - + n.noise(x + ((r * F64C17) - (r * F64S17)), z + ((r * F64S17) + (r * F64C17))) - + n.noise(x + ((r * F64C18) - (r * F64S18)), z + ((r * F64S18) + (r * F64C18))) - + n.noise(x + ((r * F64C19) - (r * F64S19)), z + ((r * F64S19) + (r * F64C19))) - + n.noise(x + ((r * F64C20) - (r * F64S20)), z + ((r * F64S20) + (r * F64C20))) - + n.noise(x + ((r * F64C21) - (r * F64S21)), z + ((r * F64S21) + (r * F64C21))) - + n.noise(x + ((r * F64C22) - (r * F64S22)), z + ((r * F64S22) + (r * F64C22))) - + n.noise(x + ((r * F64C23) - (r * F64S23)), z + ((r * F64S23) + (r * F64C23))) - + n.noise(x + ((r * F64C24) - (r * F64S24)), z + ((r * F64S24) + (r * F64C24))) - + n.noise(x + ((r * F64C25) - (r * F64S25)), z + ((r * F64S25) + (r * F64C25))) - + n.noise(x + ((r * F64C26) - (r * F64S26)), z + ((r * F64S26) + (r * F64C26))) - + n.noise(x + ((r * F64C27) - (r * F64S27)), z + ((r * F64S27) + (r * F64C27))) - + n.noise(x + ((r * F64C28) - (r * F64S28)), z + ((r * F64S28) + (r * F64C28))) - + n.noise(x + ((r * F64C29) - (r * F64S29)), z + ((r * F64S29) + (r * F64C29))) - + n.noise(x + ((r * F64C30) - (r * F64S30)), z + ((r * F64S30) + (r * F64C30))) - + n.noise(x + ((r * F64C31) - (r * F64S31)), z + ((r * F64S31) + (r * F64C31))) - + n.noise(x + ((r * F64C32) - (r * F64S32)), z + ((r * F64S32) + (r * F64C32))) - + n.noise(x + ((r * F64C33) - (r * F64S33)), z + ((r * F64S33) + (r * F64C33))) - + n.noise(x + ((r * F64C34) - (r * F64S34)), z + ((r * F64S34) + (r * F64C34))) - + n.noise(x + ((r * F64C35) - (r * F64S35)), z + ((r * F64S35) + (r * F64C35))) - + n.noise(x + ((r * F64C36) - (r * F64S36)), z + ((r * F64S36) + (r * F64C36))) - + n.noise(x + ((r * F64C37) - (r * F64S37)), z + ((r * F64S37) + (r * F64C37))) - + n.noise(x + ((r * F64C38) - (r * F64S38)), z + ((r * F64S38) + (r * F64C38))) - + n.noise(x + ((r * F64C39) - (r * F64S39)), z + ((r * F64S39) + (r * F64C39))) - + n.noise(x + ((r * F64C40) - (r * F64S40)), z + ((r * F64S40) + (r * F64C40))) - + n.noise(x + ((r * F64C41) - (r * F64S41)), z + ((r * F64S41) + (r * F64C41))) - + n.noise(x + ((r * F64C42) - (r * F64S42)), z + ((r * F64S42) + (r * F64C42))) - + n.noise(x + ((r * F64C43) - (r * F64S43)), z + ((r * F64S43) + (r * F64C43))) - + n.noise(x + ((r * F64C44) - (r * F64S44)), z + ((r * F64S44) + (r * F64C44))) - + n.noise(x + ((r * F64C45) - (r * F64S45)), z + ((r * F64S45) + (r * F64C45))) - + n.noise(x + ((r * F64C46) - (r * F64S46)), z + ((r * F64S46) + (r * F64C46))) - + n.noise(x + ((r * F64C47) - (r * F64S47)), z + ((r * F64S47) + (r * F64C47))) - + n.noise(x + ((r * F64C48) - (r * F64S48)), z + ((r * F64S48) + (r * F64C48))) - + n.noise(x + ((r * F64C49) - (r * F64S49)), z + ((r * F64S49) + (r * F64C49))) - + n.noise(x + ((r * F64C50) - (r * F64S50)), z + ((r * F64S50) + (r * F64C50))) - + n.noise(x + ((r * F64C51) - (r * F64S51)), z + ((r * F64S51) + (r * F64C51))) - + n.noise(x + ((r * F64C52) - (r * F64S52)), z + ((r * F64S52) + (r * F64C52))) - + n.noise(x + ((r * F64C53) - (r * F64S53)), z + ((r * F64S53) + (r * F64C53))) - + n.noise(x + ((r * F64C54) - (r * F64S54)), z + ((r * F64S54) + (r * F64C54))) - + n.noise(x + ((r * F64C55) - (r * F64S55)), z + ((r * F64S55) + (r * F64C55))) - + n.noise(x + ((r * F64C56) - (r * F64S56)), z + ((r * F64S56) + (r * F64C56))) - + n.noise(x + ((r * F64C57) - (r * F64S57)), z + ((r * F64S57) + (r * F64C57))) - + n.noise(x + ((r * F64C58) - (r * F64S58)), z + ((r * F64S58) + (r * F64C58))) - + n.noise(x + ((r * F64C59) - (r * F64S59)), z + ((r * F64S59) + (r * F64C59))) - + n.noise(x + ((r * F64C60) - (r * F64S60)), z + ((r * F64S60) + (r * F64C60))) - + n.noise(x + ((r * F64C61) - (r * F64S61)), z + ((r * F64S61) + (r * F64C61))) - + n.noise(x + ((r * F64C62) - (r * F64S62)), z + ((r * F64S62) + (r * F64C62))) - + n.noise(x + ((r * F64C63) - (r * F64S63)), z + ((r * F64S63) + (r * F64C63))) - + n.noise(x + ((r * F64C64) - (r * F64S64)), z + ((r * F64S64) + (r * F64C64))) - + n.noise(x + ((r * F64C65) - (r * F64S65)), z + ((r * F64S65) + (r * F64C65))) - + n.noise(x + ((r * F64C66) - (r * F64S66)), z + ((r * F64S66) + (r * F64C66))) - + n.noise(x + ((r * F64C67) - (r * F64S67)), z + ((r * F64S67) + (r * F64C67))) - + n.noise(x + ((r * F64C68) - (r * F64S68)), z + ((r * F64S68) + (r * F64C68))) - + n.noise(x + ((r * F64C69) - (r * F64S69)), z + ((r * F64S69) + (r * F64C69))) - + n.noise(x + ((r * F64C70) - (r * F64S70)), z + ((r * F64S70) + (r * F64C70))) - + n.noise(x + ((r * F64C71) - (r * F64S71)), z + ((r * F64S71) + (r * F64C71)))) / 64.0D; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/inventorygui/Element.java b/core/src/main/java/com/volmit/iris/util/inventorygui/Element.java deleted file mode 100644 index af0006ed5..000000000 --- a/core/src/main/java/com/volmit/iris/util/inventorygui/Element.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 com.volmit.iris.util.inventorygui; - -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.data.MaterialBlock; -import com.volmit.iris.util.scheduling.Callback; -import org.bukkit.inventory.ItemStack; - -@SuppressWarnings("ALL") -public interface Element { - MaterialBlock getMaterial(); - - Element setMaterial(MaterialBlock b); - - boolean isEnchanted(); - - Element setEnchanted(boolean enchanted); - - String getId(); - - String getName(); - - Element setName(String name); - - double getProgress(); - - Element setProgress(double progress); - - short getEffectiveDurability(); - - int getCount(); - - Element setCount(int c); - - ItemStack computeItemStack(); - - Element setBackground(boolean bg); - - boolean isBackgrond(); - - Element addLore(String loreLine); - - KList getLore(); - - Element call(ElementEvent event, Element context); - - Element onLeftClick(Callback clicked); - - Element onRightClick(Callback clicked); - - Element onShiftLeftClick(Callback clicked); - - Element onShiftRightClick(Callback clicked); - - Element onDraggedInto(Callback into); - - Element onOtherDraggedInto(Callback other); -} diff --git a/core/src/main/java/com/volmit/iris/util/inventorygui/ElementEvent.java b/core/src/main/java/com/volmit/iris/util/inventorygui/ElementEvent.java deleted file mode 100644 index 8c373938a..000000000 --- a/core/src/main/java/com/volmit/iris/util/inventorygui/ElementEvent.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 com.volmit.iris.util.inventorygui; - -/** - * Element Event. - * - * @author cyberpwn - */ -public enum ElementEvent { - LEFT, - RIGHT, - SHIFT_LEFT, - SHIFT_RIGHT, - DRAG_INTO, - OTHER_DRAG_INTO -} diff --git a/core/src/main/java/com/volmit/iris/util/inventorygui/RandomColor.java b/core/src/main/java/com/volmit/iris/util/inventorygui/RandomColor.java deleted file mode 100644 index a143a0aab..000000000 --- a/core/src/main/java/com/volmit/iris/util/inventorygui/RandomColor.java +++ /dev/null @@ -1,527 +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 com.volmit.iris.util.inventorygui; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Random; - -/** - * Credit to https://github.com/lzyzsd/AndroidRandomColor - */ -public class RandomColor { - - public static int hueOffset = 0; - private final Random random; - private final HashMap colors = new HashMap<>(); - - public RandomColor() { - loadColorBounds(); - random = new Random(); - } - - public RandomColor(long seed) { - loadColorBounds(); - random = new Random(); - random.setSeed(seed); - } - - public RandomColor(Random random) { - loadColorBounds(); - this.random = random; - } - - private int getColor(int hue, int saturation, int brightness) { - return java.awt.Color.getHSBColor((float) (hue + hueOffset % 360) / 360, (float) saturation / 100, (float) brightness / 100).getRGB(); - } - - public int randomColor() { - return randomColor(0, null, null); - } - - public int randomColor(int value, SaturationType saturationType, Luminosity luminosity) { - int hue = value; - hue = pickHue(hue); - int saturation = pickSaturation(hue, saturationType, luminosity); - int brightness = pickBrightness(hue, saturation, luminosity); - - return getColor(hue, saturation, brightness); - } - - public int randomColor(Color color, SaturationType saturationType, Luminosity luminosity) { - int hue = pickHue(color.name()); - int saturation = pickSaturation(hue, saturationType, luminosity); - int brightness = pickBrightness(hue, saturation, luminosity); - - return getColor(hue, saturation, brightness); - } - - public int[] randomColor(int count) { - if (count <= 0) { - throw new IllegalArgumentException("count must be greater than 0"); - } - - int[] colors = new int[count]; - for (int i = 0; i < count; i++) { - colors[i] = randomColor(); - } - - return colors; - } - - public int randomColor(Color color) { - int hue = pickHue(color.name()); - int saturation = pickSaturation(color, null, null); - int brightness = pickBrightness(color, saturation, null); - - int colorValue = getColor(hue, saturation, brightness); - return colorValue; - } - - public int[] random(Color color, int count) { - if (count <= 0) { - throw new IllegalArgumentException("count must be greater than 0"); - } - - int[] colors = new int[count]; - for (int i = 0; i < count; i++) { - colors[i] = randomColor(color); - } - - return colors; - } - - private int pickHue(int hue) { - Range hueRange = getHueRange(hue); - return doPickHue(hueRange); - } - - private int doPickHue(Range hueRange) { - int hue = randomWithin(hueRange); - - // Instead of storing red as two seperate ranges, - // we group them, using negative numbers - if (hue < 0) { - hue = 360 + hue; - } - - return hue; - } - - private int pickHue(String name) { - Range hueRange = getHueRange(name); - return doPickHue(hueRange); - } - - private Range getHueRange(int number) { - if (number < 360 && number > 0) { - return new Range(number, number); - } - - return new Range(0, 360); - } - - private Range getHueRange(String name) { - if (colors.containsKey(name)) { - return colors.get(name).getHueRange(); - } - - return new Range(0, 360); - } - - private int pickSaturation(int hue, SaturationType saturationType, Luminosity luminosity) { - return pickSaturation(getColorInfo(hue), saturationType, luminosity); - } - - private int pickSaturation(Color color, SaturationType saturationType, Luminosity luminosity) { - ColorInfo colorInfo = colors.get(color.name()); - return pickSaturation(colorInfo, saturationType, luminosity); - } - - private int pickSaturation(ColorInfo colorInfo, SaturationType saturationType, Luminosity luminosity) { - if (saturationType != null) { - switch (saturationType) { - case RANDOM: - return randomWithin(new Range(0, 100)); - case MONOCHROME: - return 0; - case HIGH: - return randomWithin(new Range(75, 100)); - case MEDIUM: - return randomWithin(new Range(55, 75)); - case LOW: - return randomWithin(new Range(35, 55)); - } - } - - if (colorInfo == null) { - return 0; - } - - Range saturationRange = colorInfo.getSaturationRange(); - - int min = saturationRange.start; - int max = saturationRange.end; - - if (luminosity != null) { - switch (luminosity) { - case LIGHT: - min = 55; - break; - case BRIGHT: - min = max - 10; - break; - case DARK: - max = 55; - break; - } - } - - return randomWithin(new Range(min, max)); - } - - private int pickBrightness(int hue, int saturation, Luminosity luminosity) { - ColorInfo colorInfo = getColorInfo(hue); - - return pickBrightness(colorInfo, saturation, luminosity); - } - - private int pickBrightness(Color color, int saturation, Luminosity luminosity) { - ColorInfo colorInfo = colors.get(color.name()); - - return pickBrightness(colorInfo, saturation, luminosity); - } - - private int pickBrightness(ColorInfo colorInfo, int saturation, Luminosity luminosity) { - int min = getMinimumBrightness(colorInfo, saturation), - max = 100; - - if (luminosity != null) { - switch (luminosity) { - - case DARK: - max = min + 20; - break; - - case LIGHT: - min = (max + min) / 2; - break; - - case RANDOM: - min = 0; - max = 100; - break; - } - } - - return randomWithin(new Range(min, max)); - } - - private int getMinimumBrightness(ColorInfo colorInfo, int saturation) { - if (colorInfo == null) { - return 0; - } - - List lowerBounds = colorInfo.getLowerBounds(); - for (int i = 0; i < lowerBounds.size() - 1; i++) { - - int s1 = lowerBounds.get(i).start, - v1 = lowerBounds.get(i).end; - - if (i == lowerBounds.size() - 1) { - break; - } - int s2 = lowerBounds.get(i + 1).start, - v2 = lowerBounds.get(i + 1).end; - - if (saturation >= s1 && saturation <= s2) { - - float m = (v2 - v1) / (float) (s2 - s1), - b = v1 - m * s1; - - return (int) (m * saturation + b); - } - - } - - return 0; - } - - private ColorInfo getColorInfo(int hue) { - // Maps red colors to make picking hue easier - if (hue >= 334 && hue <= 360) { - hue -= 360; - } - - for (String key : colors.keySet()) { - ColorInfo colorInfo = colors.get(key); - if (colorInfo.getHueRange() != null && colorInfo.getHueRange().contain(hue)) { - return colorInfo; - } - } - - return null; - } - - private int randomWithin(Range range) { - return (int) Math.floor(range.start + random.nextDouble() * (range.end + 1 - range.start)); - } - - public void defineColor(String name, Range hueRange, List lowerBounds) { - int sMin = lowerBounds.get(0).start; - int sMax = lowerBounds.get(lowerBounds.size() - 1).start; - int bMin = lowerBounds.get(lowerBounds.size() - 1).end; - int bMax = lowerBounds.get(0).end; - - colors.put(name, new ColorInfo(hueRange, new Range(sMin, sMax), new Range(bMin, bMax), lowerBounds)); - } - - private void loadColorBounds() { - List lowerBounds1 = new ArrayList<>(); - lowerBounds1.add(new Range(0, 0)); - lowerBounds1.add(new Range(100, 0)); - defineColor( - Color.MONOCHROME.name(), - new Range(0, 0), - lowerBounds1 - ); - - List lowerBounds2 = new ArrayList<>(); - lowerBounds2.add(new Range(20, 100)); - lowerBounds2.add(new Range(30, 92)); - lowerBounds2.add(new Range(40, 89)); - lowerBounds2.add(new Range(50, 85)); - lowerBounds2.add(new Range(60, 78)); - lowerBounds2.add(new Range(70, 70)); - lowerBounds2.add(new Range(80, 60)); - lowerBounds2.add(new Range(90, 55)); - lowerBounds2.add(new Range(100, 50)); - defineColor( - Color.RED.name(), - new Range(-26, 18), - lowerBounds2 - ); - - List lowerBounds3 = new ArrayList(); - lowerBounds3.add(new Range(20, 100)); - lowerBounds3.add(new Range(30, 93)); - lowerBounds3.add(new Range(40, 88)); - lowerBounds3.add(new Range(50, 86)); - lowerBounds3.add(new Range(60, 85)); - lowerBounds3.add(new Range(70, 70)); - lowerBounds3.add(new Range(100, 70)); - defineColor( - Color.ORANGE.name(), - new Range(19, 46), - lowerBounds3 - ); - - List lowerBounds4 = new ArrayList<>(); - lowerBounds4.add(new Range(25, 100)); - lowerBounds4.add(new Range(40, 94)); - lowerBounds4.add(new Range(50, 89)); - lowerBounds4.add(new Range(60, 86)); - lowerBounds4.add(new Range(70, 84)); - lowerBounds4.add(new Range(80, 82)); - lowerBounds4.add(new Range(90, 80)); - lowerBounds4.add(new Range(100, 75)); - - defineColor( - Color.YELLOW.name(), - new Range(47, 62), - lowerBounds4 - ); - - List lowerBounds5 = new ArrayList<>(); - lowerBounds5.add(new Range(30, 100)); - lowerBounds5.add(new Range(40, 90)); - lowerBounds5.add(new Range(50, 85)); - lowerBounds5.add(new Range(60, 81)); - lowerBounds5.add(new Range(70, 74)); - lowerBounds5.add(new Range(80, 64)); - lowerBounds5.add(new Range(90, 50)); - lowerBounds5.add(new Range(100, 40)); - - defineColor( - Color.GREEN.name(), - new Range(63, 178), - lowerBounds5 - ); - - List lowerBounds6 = new ArrayList<>(); - lowerBounds6.add(new Range(20, 100)); - lowerBounds6.add(new Range(30, 86)); - lowerBounds6.add(new Range(40, 80)); - lowerBounds6.add(new Range(50, 74)); - lowerBounds6.add(new Range(60, 60)); - lowerBounds6.add(new Range(70, 52)); - lowerBounds6.add(new Range(80, 44)); - lowerBounds6.add(new Range(90, 39)); - lowerBounds6.add(new Range(100, 35)); - - defineColor( - Color.BLUE.name(), - new Range(179, 257), - lowerBounds6 - ); - - List lowerBounds7 = new ArrayList<>(); - lowerBounds7.add(new Range(20, 100)); - lowerBounds7.add(new Range(30, 87)); - lowerBounds7.add(new Range(40, 79)); - lowerBounds7.add(new Range(50, 70)); - lowerBounds7.add(new Range(60, 65)); - lowerBounds7.add(new Range(70, 59)); - lowerBounds7.add(new Range(80, 52)); - lowerBounds7.add(new Range(90, 45)); - lowerBounds7.add(new Range(100, 42)); - - defineColor( - Color.PURPLE.name(), - new Range(258, 282), - lowerBounds7 - ); - - List lowerBounds8 = new ArrayList<>(); - lowerBounds8.add(new Range(20, 100)); - lowerBounds8.add(new Range(30, 90)); - lowerBounds8.add(new Range(40, 86)); - lowerBounds8.add(new Range(60, 84)); - lowerBounds8.add(new Range(80, 80)); - lowerBounds8.add(new Range(90, 75)); - lowerBounds8.add(new Range(100, 73)); - - defineColor( - Color.PINK.name(), - new Range(283, 334), - lowerBounds8 - ); - } - - public enum SaturationType { - RANDOM, MONOCHROME, HIGH, LOW, MEDIUM - } - - public enum Luminosity { - BRIGHT, LIGHT, DARK, RANDOM - } - - public enum Color { - MONOCHROME, RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE, PINK - } - - public static class ColorInfo { - Range hueRange; - Range saturationRange; - Range brightnessRange; - List lowerBounds; - - public ColorInfo(Range hueRange, Range saturationRange, Range brightnessRange, List lowerBounds) { - this.hueRange = hueRange; - this.saturationRange = saturationRange; - this.brightnessRange = brightnessRange; - this.lowerBounds = lowerBounds; - } - - public Range getHueRange() { - return hueRange; - } - - public void setHueRange(Range hueRange) { - this.hueRange = hueRange; - } - - public Range getSaturationRange() { - return saturationRange; - } - - public void setSaturationRange(Range saturationRange) { - this.saturationRange = saturationRange; - } - - public Range getBrightnessRange() { - return brightnessRange; - } - - public void setBrightnessRange(Range brightnessRange) { - this.brightnessRange = brightnessRange; - } - - public List getLowerBounds() { - return lowerBounds; - } - - public void setLowerBounds(List lowerBounds) { - this.lowerBounds = lowerBounds; - } - } - - public static class Range { - int start; - int end; - - public Range(int start, int end) { - this.start = start; - this.end = end; - } - - public boolean contain(int value) { - return value >= start && value <= end; - } - - @Override - public String toString() { - return "start: " + start + " end: " + end; - } - } - - public static class Options { - int hue; - SaturationType saturationType; - Luminosity luminosity; - - public int getHue() { - return hue; - } - - public void setHue(int hue) { - this.hue = hue; - } - - public SaturationType getSaturationType() { - return saturationType; - } - - public void setSaturationType(SaturationType saturationType) { - this.saturationType = saturationType; - } - - public Luminosity getLuminosity() { - return luminosity; - } - - public void setLuminosity(Luminosity luminosity) { - this.luminosity = luminosity; - } - } - -} - - diff --git a/core/src/main/java/com/volmit/iris/util/inventorygui/UIElement.java b/core/src/main/java/com/volmit/iris/util/inventorygui/UIElement.java deleted file mode 100644 index acadadd37..000000000 --- a/core/src/main/java/com/volmit/iris/util/inventorygui/UIElement.java +++ /dev/null @@ -1,248 +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 com.volmit.iris.util.inventorygui; - -import com.volmit.iris.Iris; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.data.MaterialBlock; -import com.volmit.iris.util.scheduling.Callback; -import org.bukkit.Material; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; - -public class UIElement implements Element { - private final String id; - private final KList lore; - private MaterialBlock material; - private boolean enchanted; - private String name; - private double progress; - private boolean bg; - private Callback eLeft; - private Callback eRight; - private Callback eShiftLeft; - private Callback eShiftRight; - private Callback eDraggedInto; - private Callback eOtherDraggedInto; - private int count; - - public UIElement(String id) { - this.id = id; - lore = new KList<>(); - enchanted = false; - count = 1; - material = new MaterialBlock(Material.AIR); - } - - @Override - public MaterialBlock getMaterial() { - return material; - } - - @Override - public UIElement setMaterial(MaterialBlock material) { - this.material = material; - return this; - } - - public Double clip(double value, double min, double max) { - return Math.min(max, Math.max(min, value)); - } - - @Override - public boolean isEnchanted() { - return enchanted; - } - - @Override - public UIElement setEnchanted(boolean enchanted) { - this.enchanted = enchanted; - return this; - } - - @Override - public String getId() { - return id; - } - - @Override - public String getName() { - return name; - } - - @Override - public UIElement setName(String name) { - this.name = name; - return this; - } - - @Override - public KList getLore() { - return lore; - } - - @Override - public UIElement onLeftClick(Callback clicked) { - eLeft = clicked; - return this; - } - - @Override - public UIElement onRightClick(Callback clicked) { - eRight = clicked; - return this; - } - - @Override - public UIElement onShiftLeftClick(Callback clicked) { - eShiftLeft = clicked; - return this; - } - - @Override - public UIElement onShiftRightClick(Callback clicked) { - eShiftRight = clicked; - return this; - } - - @Override - public UIElement onDraggedInto(Callback into) { - eDraggedInto = into; - return this; - } - - @Override - public UIElement onOtherDraggedInto(Callback other) { - eOtherDraggedInto = other; - return this; - } - - @Override - public Element call(ElementEvent event, Element context) { - try { - switch (event) { - case DRAG_INTO -> { - eDraggedInto.run(context); - return this; - } - case LEFT -> { - eLeft.run(context); - return this; - } - case OTHER_DRAG_INTO -> { - eOtherDraggedInto.run(context); - return this; - } - case RIGHT -> { - eRight.run(context); - return this; - } - case SHIFT_LEFT -> { - eShiftLeft.run(context); - return this; - } - case SHIFT_RIGHT -> { - eShiftRight.run(context); - return this; - } - } - } catch (NullPointerException e) { - Iris.reportError(e); - - } catch (Throwable e) { - Iris.reportError(e); - e.printStackTrace(); - } - - return this; - } - - @Override - public Element addLore(String loreLine) { - getLore().add(loreLine); - return this; - } - - @Override - public Element setBackground(boolean bg) { - this.bg = bg; - return this; - } - - @Override - public boolean isBackgrond() { - return bg; - } - - @Override - public Element setCount(int c) { - count = clip(c, 1, 64).intValue(); - return this; - } - - @Override - public int getCount() { - return count; - } - - @SuppressWarnings("deprecation") - @Override - public ItemStack computeItemStack() { - try { - ItemStack is = new ItemStack(getMaterial().getMaterial(), getCount(), getEffectiveDurability()); - ItemMeta im = is.getItemMeta(); - im.setDisplayName(getName()); - im.setLore(getLore().copy()); - - if (isEnchanted()) { - im.addEnchant(Enchantment.FIRE_ASPECT, 1, true); - } - - is.setItemMeta(im); - return is; - } catch (Throwable e) { - Iris.reportError(e); - e.printStackTrace(); - } - - return null; - } - - @Override - public Element setProgress(double progress) { - this.progress = clip(progress, 0D, 1D); - return this; - } - - @Override - public double getProgress() { - return progress; - } - - @Override - public short getEffectiveDurability() { - if (getMaterial().getMaterial().getMaxDurability() == 0) { - return 0; - } else { - int prog = (int) ((double) getMaterial().getMaterial().getMaxDurability() * (1D - getProgress())); - return clip(prog, 1, (getMaterial().getMaterial().getMaxDurability() - 1)).shortValue(); - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/inventorygui/UIWindow.java b/core/src/main/java/com/volmit/iris/util/inventorygui/UIWindow.java deleted file mode 100644 index e1c17ea1c..000000000 --- a/core/src/main/java/com/volmit/iris/util/inventorygui/UIWindow.java +++ /dev/null @@ -1,457 +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 com.volmit.iris.util.inventorygui; - -import com.volmit.iris.Iris; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.scheduling.Callback; -import com.volmit.iris.util.scheduling.J; -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.HandlerList; -import org.bukkit.event.Listener; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.event.inventory.InventoryCloseEvent; -import org.bukkit.event.inventory.InventoryType; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.ItemStack; - -public class UIWindow implements Window, Listener { - private final Player viewer; - private final KMap elements; - private WindowDecorator decorator; - private Callback eClose; - private WindowResolution resolution; - private String title; - private boolean visible; - private int viewportPosition; - private int viewportSize; - private int highestRow; - private Inventory inventory; - private int clickcheck; - private boolean doubleclicked; - - public UIWindow(Player viewer) { - clickcheck = 0; - doubleclicked = false; - this.viewer = viewer; - this.elements = new KMap<>(); - setTitle(""); - setDecorator(new UIVoidDecorator()); - setResolution(WindowResolution.W9_H6); - setViewportHeight(clip(3, 1, getResolution().getMaxHeight()).intValue()); - setViewportPosition(0); - } - - @EventHandler - public void on(InventoryClickEvent e) { - if (!e.getWhoClicked().equals(viewer)) { - return; - } - - if (!isVisible()) { - return; - } - - // 1.14 bukkit api change, removed getTitle() and getName() from Inventory.class - if (!viewer.getOpenInventory().getTitle().equals(title)) { - return; - } - - if (e.getClickedInventory() == null) { - return; - } - - if (!e.getView().getType().equals(getResolution().getType())) { - return; - } - - if (e.getClickedInventory().getType().equals(getResolution().getType())) { - Element element = getElement(getLayoutPosition(e.getSlot()), getLayoutRow(e.getSlot())); - - switch (e.getAction()) { - case CLONE_STACK: - case UNKNOWN: - case SWAP_WITH_CURSOR: - case PLACE_SOME: - case PLACE_ONE: - case PLACE_ALL: - case PICKUP_SOME: - case PICKUP_ONE: - case PICKUP_HALF: - case PICKUP_ALL: - case NOTHING: - case MOVE_TO_OTHER_INVENTORY: - case HOTBAR_SWAP: - case HOTBAR_MOVE_AND_READD: - case DROP_ONE_SLOT: - case DROP_ONE_CURSOR: - case DROP_ALL_SLOT: - case DROP_ALL_CURSOR: - case COLLECT_TO_CURSOR: - break; - } - - switch (e.getClick()) { - case DOUBLE_CLICK: - doubleclicked = true; - break; - case LEFT: - - clickcheck++; - - if (clickcheck == 1) { - J.s(() -> - { - if (clickcheck == 1) { - clickcheck = 0; - - if (element != null) { - element.call(ElementEvent.LEFT, element); - } - } - }); - } else if (clickcheck == 2) { - J.s(() -> - { - if (doubleclicked) { - doubleclicked = false; - } else { - scroll(1); - } - - clickcheck = 0; - }); - } - - break; - case RIGHT: - if (element != null) { - element.call(ElementEvent.RIGHT, element); - } else { - scroll(-1); - } - break; - case SHIFT_LEFT: - if (element != null) { - element.call(ElementEvent.SHIFT_LEFT, element); - } - break; - case SHIFT_RIGHT: - if (element != null) { - element.call(ElementEvent.SHIFT_RIGHT, element); - } - break; - case SWAP_OFFHAND: - case UNKNOWN: - case WINDOW_BORDER_RIGHT: - case WINDOW_BORDER_LEFT: - case NUMBER_KEY: - case MIDDLE: - case DROP: - case CREATIVE: - case CONTROL_DROP: - default: - break; - } - } - - e.setCancelled(true); - - } - - @EventHandler - public void on(InventoryCloseEvent e) { - if (!e.getPlayer().equals(viewer)) { - return; - } - - if (!e.getPlayer().getOpenInventory().getTitle().equals(title)) { - return; - } - - if (isVisible()) { - close(); - callClosed(); - } - } - - @Override - public WindowDecorator getDecorator() { - return decorator; - } - - @Override - public UIWindow setDecorator(WindowDecorator decorator) { - this.decorator = decorator; - return this; - } - - @Override - public UIWindow close() { - setVisible(false); - return this; - } - - @Override - public UIWindow open() { - setVisible(true); - return this; - } - - @Override - public boolean isVisible() { - return visible; - } - - @Override - public UIWindow setVisible(boolean visible) { - if (isVisible() == visible) { - return this; - } - - if (visible) { - Bukkit.getPluginManager().registerEvents(this, Iris.instance); - - if (getResolution().getType().equals(InventoryType.CHEST)) { - inventory = Bukkit.createInventory(null, getViewportHeight() * 9, getTitle()); - } else { - inventory = Bukkit.createInventory(null, getResolution().getType(), getTitle()); - } - - viewer.openInventory(inventory); - this.visible = visible; - updateInventory(); - } else { - this.visible = visible; - HandlerList.unregisterAll(this); - viewer.closeInventory(); - } - - this.visible = visible; - return this; - } - - @Override - public int getViewportPosition() { - return viewportPosition; - } - - @Override - public UIWindow setViewportPosition(int viewportPosition) { - this.viewportPosition = viewportPosition; - scroll(0); - updateInventory(); - - return this; - } - - @Override - public int getMaxViewportPosition() { - return Math.max(0, highestRow - getViewportHeight()); - } - - @Override - public UIWindow scroll(int direction) { - viewportPosition = (int) clip(viewportPosition + direction, 0, getMaxViewportPosition()).doubleValue(); - updateInventory(); - - return this; - } - - @Override - public int getViewportHeight() { - return viewportSize; - } - - @Override - public UIWindow setViewportHeight(int height) { - viewportSize = (int) clip(height, 1, getResolution().getMaxHeight()).doubleValue(); - - if (isVisible()) { - reopen(); - } - - return this; - } - - @Override - public String getTitle() { - return title; - } - - @Override - public UIWindow setTitle(String title) { - this.title = title; - - if (isVisible()) { - reopen(); - } - - return this; - } - - @Override - public UIWindow setElement(int position, int row, Element e) { - if (row > highestRow) { - highestRow = row; - } - - elements.put(getRealPosition((int) clip(position, -getResolution().getMaxWidthOffset(), getResolution().getMaxWidthOffset()).doubleValue(), row), e); - updateInventory(); - return this; - } - - @Override - public Element getElement(int position, int row) { - return elements.get(getRealPosition((int) clip(position, -getResolution().getMaxWidthOffset(), getResolution().getMaxWidthOffset()).doubleValue(), row)); - } - - @Override - public Player getViewer() { - return viewer; - } - - @Override - public UIWindow onClosed(Callback window) { - eClose = window; - return this; - } - - @Override - public int getViewportSlots() { - return getViewportHeight() * getResolution().getWidth(); - } - - @Override - public int getLayoutRow(int viewportSlottedPosition) { - return getRow(getRealLayoutPosition(viewportSlottedPosition)); - } - - @Override - public int getLayoutPosition(int viewportSlottedPosition) { - return getPosition(viewportSlottedPosition); - } - - @Override - public int getRealLayoutPosition(int viewportSlottedPosition) { - return getRealPosition(getPosition(viewportSlottedPosition), getRow(viewportSlottedPosition) + getViewportPosition()); - } - - @Override - public int getRealPosition(int position, int row) { - return (int) (((row * getResolution().getWidth()) + getResolution().getMaxWidthOffset()) + clip(position, -getResolution().getMaxWidthOffset(), getResolution().getMaxWidthOffset())); - } - - @Override - public int getRow(int realPosition) { - return realPosition / getResolution().getWidth(); - } - - @Override - public int getPosition(int realPosition) { - return (realPosition % getResolution().getWidth()) - getResolution().getMaxWidthOffset(); - } - - @Override - public Window callClosed() { - if (eClose != null) { - eClose.run(this); - } - - return this; - } - - @Override - public boolean hasElement(int position, int row) { - return getElement(position, row) != null; - } - - @Override - public WindowResolution getResolution() { - return resolution; - } - - public Double clip(double value, double min, double max) { - return Math.min(max, Math.max(min, value)); - } - - @Override - public Window setResolution(WindowResolution resolution) { - close(); - this.resolution = resolution; - setViewportHeight((int) clip(getViewportHeight(), 1, getResolution().getMaxHeight()).doubleValue()); - return this; - } - - @Override - public Window clearElements() { - highestRow = 0; - elements.clear(); - updateInventory(); - return this; - } - - @Override - public Window updateInventory() { - if (isVisible()) { - ItemStack[] is = inventory.getContents(); - @SuppressWarnings("MismatchedQueryAndUpdateOfCollection") KSet isf = new KSet<>(); - - for (int i = 0; i < is.length; i++) { - ItemStack isc = is[i]; - ItemStack isx = computeItemStack(i); - int layoutRow = getLayoutRow(i); - int layoutPosition = getLayoutPosition(i); - - if (isx != null && !hasElement(layoutPosition, layoutRow)) { - ItemStack gg = isx.clone(); - gg.setAmount(gg.getAmount() + 1); - isf.add(gg); - } - - if (((isc == null) != (isx == null)) || isx != null && isc != null && !isc.equals(isx)) { - inventory.setItem(i, isx); - } - } - } - - return this; - } - - @Override - public ItemStack computeItemStack(int viewportSlot) { - int layoutRow = getLayoutRow(viewportSlot); - int layoutPosition = getLayoutPosition(viewportSlot); - Element e = hasElement(layoutPosition, layoutRow) ? getElement(layoutPosition, layoutRow) : getDecorator().onDecorateBackground(this, layoutPosition, layoutRow); - - if (e != null) { - return e.computeItemStack(); - } - - return null; - } - - @Override - public Window reopen() { - return this.close().open(); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/inventorygui/WindowDecorator.java b/core/src/main/java/com/volmit/iris/util/inventorygui/WindowDecorator.java deleted file mode 100644 index c0ec1006d..000000000 --- a/core/src/main/java/com/volmit/iris/util/inventorygui/WindowDecorator.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 com.volmit.iris.util.inventorygui; - -public interface WindowDecorator { - Element onDecorateBackground(Window window, int position, int row); -} diff --git a/core/src/main/java/com/volmit/iris/util/inventorygui/WindowResolution.java b/core/src/main/java/com/volmit/iris/util/inventorygui/WindowResolution.java deleted file mode 100644 index 01c8c3d6b..000000000 --- a/core/src/main/java/com/volmit/iris/util/inventorygui/WindowResolution.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 com.volmit.iris.util.inventorygui; - -import org.bukkit.event.inventory.InventoryType; - -public enum WindowResolution { - W9_H6(9, 6, InventoryType.CHEST), - W5_H1(5, 1, InventoryType.HOPPER), - W3_H3(3, 3, InventoryType.DROPPER); - - private final int width; - private final int maxHeight; - private final InventoryType type; - - WindowResolution(int w, int h, InventoryType type) { - this.width = w; - this.maxHeight = h; - this.type = type; - } - - public int getMaxWidthOffset() { - return (getWidth() - 1) / 2; - } - - public int getWidth() { - return width; - } - - public int getMaxHeight() { - return maxHeight; - } - - public InventoryType getType() { - return type; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/io/Converter.java b/core/src/main/java/com/volmit/iris/util/io/Converter.java deleted file mode 100644 index 01e326a44..000000000 --- a/core/src/main/java/com/volmit/iris/util/io/Converter.java +++ /dev/null @@ -1,30 +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 com.volmit.iris.util.io; - -import java.io.File; - -public interface Converter { - String getInExtension(); - - @SuppressWarnings("SameReturnValue") - String getOutExtension(); - - void convert(File in, File out); -} diff --git a/core/src/main/java/com/volmit/iris/util/io/CountingDataInputStream.java b/core/src/main/java/com/volmit/iris/util/io/CountingDataInputStream.java deleted file mode 100644 index 65fe8a36d..000000000 --- a/core/src/main/java/com/volmit/iris/util/io/CountingDataInputStream.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.volmit.iris.util.io; - -import lombok.RequiredArgsConstructor; -import org.jetbrains.annotations.NotNull; - -import java.io.DataInputStream; -import java.io.IOException; -import java.io.InputStream; - -public class CountingDataInputStream extends DataInputStream { - private final Counter counter; - - private CountingDataInputStream(@NotNull InputStream in) { - super(in); - if (!(in instanceof Counter c)) - throw new IllegalArgumentException("Underlying stream must be a Counter"); - this.counter = c; - } - - public static CountingDataInputStream wrap(@NotNull InputStream in) { - return new CountingDataInputStream(new Counter(in)); - } - - public long count() { - return counter.count; - } - - public void skipTo(long target) throws IOException { - skipNBytes(Math.max(target - counter.count, 0)); - } - - @RequiredArgsConstructor - private static class Counter extends InputStream { - private final InputStream in; - private long count; - private long mark = -1; - private int markLimit = 0; - - @Override - public int read() throws IOException { - int i = in.read(); - if (i != -1) count(1); - return i; - } - - @Override - public int read(byte @NotNull [] b, int off, int len) throws IOException { - int i = in.read(b, off, len); - if (i != -1) count(i); - return i; - } - - private void count(int i) { - count = Math.addExact(count, i); - if (mark == -1) - return; - - markLimit -= i; - if (markLimit <= 0) - mark = -1; - } - - @Override - public boolean markSupported() { - return in.markSupported(); - } - - @Override - public synchronized void mark(int readlimit) { - if (!in.markSupported()) return; - in.mark(readlimit); - if (readlimit <= 0) { - mark = -1; - markLimit = 0; - return; - } - - mark = count; - markLimit = readlimit; - } - - @Override - public synchronized void reset() throws IOException { - in.reset(); - count = mark; - } - - @Override - public void close() throws IOException { - in.close(); - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/io/CustomOutputStream.java b/core/src/main/java/com/volmit/iris/util/io/CustomOutputStream.java deleted file mode 100644 index b1cb2a268..000000000 --- a/core/src/main/java/com/volmit/iris/util/io/CustomOutputStream.java +++ /dev/null @@ -1,30 +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 com.volmit.iris.util.io; - -import java.io.IOException; -import java.io.OutputStream; -import java.util.zip.GZIPOutputStream; - -public class CustomOutputStream extends GZIPOutputStream { - public CustomOutputStream(OutputStream out, int level) throws IOException { - super(out); - def.setLevel(level); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/io/FileWatcher.java b/core/src/main/java/com/volmit/iris/util/io/FileWatcher.java deleted file mode 100644 index 8a588d186..000000000 --- a/core/src/main/java/com/volmit/iris/util/io/FileWatcher.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 com.volmit.iris.util.io; - -import java.io.File; - -public class FileWatcher { - protected final File file; - private long lastModified; - private long size; - - public FileWatcher(File file) { - this.file = file; - readProperties(); - } - - protected void readProperties() { - boolean exists = file.exists(); - lastModified = exists ? file.lastModified() : -1; - size = exists ? file.isDirectory() ? -2 : file.length() : -1; - } - - public boolean checkModified() { - long m = lastModified; - long g = size; - boolean mod = false; - readProperties(); - - if (lastModified != m || g != size) { - mod = true; - } - - return mod; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/io/FolderWatcher.java b/core/src/main/java/com/volmit/iris/util/io/FolderWatcher.java deleted file mode 100644 index ec1c2708b..000000000 --- a/core/src/main/java/com/volmit/iris/util/io/FolderWatcher.java +++ /dev/null @@ -1,146 +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 com.volmit.iris.util.io; - -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; - -import java.io.File; - -public class FolderWatcher extends FileWatcher { - private KMap watchers; - private KList changed; - private KList created; - private KList deleted; - - public FolderWatcher(File file) { - super(file); - } - - protected void readProperties() { - if (watchers == null) { - watchers = new KMap<>(); - changed = new KList<>(); - created = new KList<>(); - deleted = new KList<>(); - } - - if (file.isDirectory()) { - for (File i : file.listFiles()) { - if (!watchers.containsKey(i)) { - watchers.put(i, new FolderWatcher(i)); - } - } - - for (File i : watchers.k()) { - if (!i.exists()) { - watchers.remove(i); - } - } - } else { - super.readProperties(); - } - } - - public boolean checkModified() { - changed.clear(); - created.clear(); - deleted.clear(); - - if (file.isDirectory()) { - KMap w = watchers.copy(); - readProperties(); - - for (File i : w.keySet()) { - if (!watchers.containsKey(i)) { - deleted.add(i); - } - } - - for (File i : watchers.keySet()) { - if (!w.containsKey(i)) { - created.add(i); - } else { - FolderWatcher fw = watchers.get(i); - if (fw.checkModified()) { - changed.add(fw.file); - } - - changed.addAll(fw.getChanged()); - created.addAll(fw.getCreated()); - deleted.addAll(fw.getDeleted()); - } - } - - return !changed.isEmpty() || !created.isEmpty() || !deleted.isEmpty(); - } - - return super.checkModified(); - } - - public boolean checkModifiedFast() { - if (watchers == null || watchers.isEmpty()) { - return checkModified(); - } - - changed.clear(); - created.clear(); - deleted.clear(); - - if (file.isDirectory()) { - for (File i : watchers.keySet()) { - FolderWatcher fw = watchers.get(i); - if (fw.checkModifiedFast()) { - changed.add(fw.file); - } - - changed.addAll(fw.getChanged()); - created.addAll(fw.getCreated()); - deleted.addAll(fw.getDeleted()); - } - - return !changed.isEmpty() || !created.isEmpty() || !deleted.isEmpty(); - } - - return super.checkModified(); - } - - public KMap getWatchers() { - return watchers; - } - - public KList getChanged() { - return changed; - } - - public KList getCreated() { - return created; - } - - public KList getDeleted() { - return deleted; - } - - public void clear() { - watchers.clear(); - changed.clear(); - deleted.clear(); - created.clear(); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/io/IO.java b/core/src/main/java/com/volmit/iris/util/io/IO.java deleted file mode 100644 index b4bfe489d..000000000 --- a/core/src/main/java/com/volmit/iris/util/io/IO.java +++ /dev/null @@ -1,1724 +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 com.volmit.iris.util.io; - -import com.google.gson.JsonArray; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; -import com.volmit.iris.Iris; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.scheduling.J; -import org.apache.commons.io.function.IOConsumer; -import org.apache.commons.io.function.IOFunction; -import lombok.SneakyThrows; -import org.dom4j.Document; -import org.dom4j.DocumentHelper; -import org.dom4j.io.OutputFormat; -import org.dom4j.io.SAXReader; -import org.dom4j.io.XMLWriter; - -import java.io.*; -import java.nio.channels.Channels; -import java.nio.channels.FileChannel; -import java.nio.channels.FileLock; -import java.nio.channels.OverlappingFileLockException; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.StandardCopyOption; -import java.nio.file.StandardOpenOption; -import java.security.DigestInputStream; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.util.*; -import java.util.function.Consumer; -import java.util.zip.*; - -@SuppressWarnings("ALL") -public class IO { - /** - * The Unix directory separator character. - */ - public static final char DIR_SEPARATOR_UNIX = '/'; - /** - * The Windows directory separator character. - */ - public static final char DIR_SEPARATOR_WINDOWS = '\\'; - /** - * The system directory separator character. - */ - public static final char DIR_SEPARATOR = File.separatorChar; - /** - * The Unix line separator string. - */ - public static final String LINE_SEPARATOR_UNIX = "\n"; - /** - * The Windows line separator string. - */ - public static final String LINE_SEPARATOR_WINDOWS = "\r\n"; - /** - * The system line separator string. - */ - public static final String LINE_SEPARATOR; - - /** - * The default buffer size to use. - */ - private static final int DEFAULT_BUFFER_SIZE = 1024 * 4; - private final static char[] hexArray = "0123456789ABCDEF".toCharArray(); - - static { - // avoid security issues - StringWriter buf = new StringWriter(4); - PrintWriter out = new PrintWriter(buf); - out.println(); - LINE_SEPARATOR = buf.toString(); - } - - public static String decompress(String gz) throws IOException { - ByteArrayInputStream bin = new ByteArrayInputStream(Base64.getUrlDecoder().decode(gz)); - GZIPInputStream gzi = new GZIPInputStream(bin); - ByteArrayOutputStream boas = new ByteArrayOutputStream(); - IO.fullTransfer(gzi, boas, 256); - gzi.close(); - - return boas.toString(); - } - - public static byte[] sdecompress(String compressed) throws IOException { - ByteArrayInputStream bin = new ByteArrayInputStream(Base64.getUrlDecoder().decode(compressed)); - GZIPInputStream gzi = new GZIPInputStream(bin); - ByteArrayOutputStream boas = new ByteArrayOutputStream(); - IO.fullTransfer(gzi, boas, 256); - gzi.close(); - - return boas.toByteArray(); - } - - public static String encode(byte[] data) { - return Base64.getUrlEncoder().encodeToString(data); - } - - public static byte[] decode(String u) { - return Base64.getUrlDecoder().decode(u); - } - - public static String hash(String b) { - try { - MessageDigest d = MessageDigest.getInstance("SHA-256"); - return bytesToHex(d.digest(b.getBytes(StandardCharsets.UTF_8))); - } catch (NoSuchAlgorithmException e) { - Iris.reportError(e); - e.printStackTrace(); - } - - return "¯\\_(ツ)_/¯"; - } - - public static long hashRecursive(File... bases) { - LinkedList files = new LinkedList<>(); - Set processed = new HashSet<>(); - Arrays.parallelSort(bases, Comparator.comparing(File::getName)); - files.addAll(Arrays.asList(bases)); - - try { - CRC32 crc = new CRC32(); - while (!files.isEmpty()) { - File file = files.removeFirst(); - if (!processed.add(file)) - continue; - - if (file.isDirectory()) { - File[] arr = file.listFiles(); - if (arr == null) - continue; - - Arrays.parallelSort(arr, Comparator.comparing(File::getName)); - files.addAll(Arrays.asList(arr)); - continue; - } - - try (var din = new CheckedInputStream(readDeterministic(file), crc)) { - fullTransfer(din, new VoidOutputStream(), 8192); - } catch (IOException e) { - Iris.reportError(e); - e.printStackTrace(); - } - } - - return crc.getValue(); - } catch (Throwable e) { - Iris.reportError(e); - e.printStackTrace(); - } - - return 0; - } - - public static InputStream readDeterministic(File file) throws IOException { - if (!file.getName().endsWith(".json")) - return new FileInputStream(file); - - JsonElement json; - try (FileReader reader = new FileReader(file)) { - json = JsonParser.parseReader(reader); - } catch (Throwable e) { - throw new IOException("Failed to read json file " + file, e); - } - - var queue = new LinkedList(); - queue.add(json); - - while (!queue.isEmpty()) { - var element = queue.pop(); - Collection add = List.of(); - - if (element instanceof JsonObject obj) { - var map = obj.asMap(); - var sorted = new TreeMap<>(map); - map.clear(); - map.putAll(sorted); - - add = sorted.values(); - } else if (element instanceof JsonArray array) { - add = array.asList(); - } - - add.stream().filter(e -> e.isJsonObject() || e.isJsonArray()).forEach(queue::add); - } - - return toInputStream(json.toString()); - } - - public static String hash(File b) { - try { - MessageDigest d = MessageDigest.getInstance("SHA-256"); - DigestInputStream din = new DigestInputStream(readDeterministic(b), d); - fullTransfer(din, new VoidOutputStream(), 8192); - din.close(); - return bytesToHex(din.getMessageDigest().digest()); - } catch (Throwable e) { - Iris.reportError(e); - e.printStackTrace(); - } - - return "¯\\_(ツ)_/¯"; - } - - public static String bytesToHex(byte[] bytes) { - char[] hexChars = new char[bytes.length * 2]; - for (int j = 0; j < bytes.length; j++) { - int v = bytes[j] & 0xFF; - hexChars[j * 2] = hexArray[v >>> 4]; - hexChars[j * 2 + 1] = hexArray[v & 0x0F]; - } - - return new String(hexChars).toUpperCase(); - } - - public static String print(byte[] bytes) { - return Form.memSize(bytes.length, 2) + "[" + bytesToHex(bytes) + "]"; - } - - public static String longsToHex(long[] bytes) { - byte[] v = new byte[bytes.length * 8]; - - for (int i = 0; i < bytes.length; i++) { - v[i * 8] = (byte) (bytes[i] >>> 56); - v[(i * 8) + 1] = (byte) (bytes[i] >>> 48); - v[(i * 8) + 2] = (byte) (bytes[i] >>> 40); - v[(i * 8) + 3] = (byte) (bytes[i] >>> 32); - v[(i * 8) + 4] = (byte) (bytes[i] >>> 24); - v[(i * 8) + 5] = (byte) (bytes[i] >>> 16); - v[(i * 8) + 6] = (byte) (bytes[i] >>> 8); - v[(i * 8) + 7] = (byte) (bytes[i] >>> 0); - } - - return bytesToHex(v); - } - - /** - * Transfers the length of the buffer amount of data from the input stream to - * the output stream - * - * @param in the input - * @param out the output - * @return the actual transfered amount - * @throws IOException shit happens - */ - public static int transfer(InputStream in, OutputStream out, byte[] buffer) throws IOException { - int r = in.read(buffer); - - if (r != -1) { - out.write(buffer, 0, r); - } - - return r; - } - - /** - * Transfers the length of the buffer amount of data from the input stream to - * the output stream - * - * @param in the input - * @param out the output - * @param targetBuffer the buffer and size to use - * @param totalSize the total amount to transfer - * @return the actual transfered amount - * @throws IOException shit happens - */ - public static long transfer(InputStream in, OutputStream out, int targetBuffer, long totalSize) throws IOException { - long total = totalSize; - long wrote = 0; - byte[] buf = new byte[targetBuffer]; - int r = 0; - - while ((r = in.read(buf, 0, (int) (total < targetBuffer ? total : targetBuffer))) != -1) { - total -= r; - out.write(buf, 0, r); - wrote += r; - - if (total <= 0) { - break; - } - } - - return wrote; - } - - /** - * Fully move data from a finite inputstream to an output stream using a buffer - * size of 8192. This does NOT close streams. - * - * @return total size transfered - */ - public static long fillTransfer(InputStream in, OutputStream out) throws IOException { - return fullTransfer(in, out, 8192); - } - - public static void deleteUp(File f) { - if (f.exists()) { - f.delete(); - - if (f.getParentFile().list().length == 0) { - deleteUp(f.getParentFile()); - } - } - } - - /** - * Fully move data from a finite inputstream to an output stream using a given - * buffer size. This does NOT close streams. - * - * @param in the input stream to read from - * @param out the output stream to writeNodeData to - * @param bufferSize the target buffer size - * @return total size transfered - * @throws IOException shit happens - */ - public static long fullTransfer(InputStream in, OutputStream out, int bufferSize) throws IOException { - long wrote = 0; - byte[] buf = new byte[bufferSize]; - int r = 0; - - while ((r = in.read(buf)) != -1) { - out.write(buf, 0, r); - wrote += r; - } - - return wrote; - } - - /** - * Recursive delete (deleting folders) - * - * @param f the file to delete (and subfiles if folder) - */ - public static void delete(File f) { - if (f == null || !f.exists()) { - return; - } - - if (f.isDirectory()) { - for (File i : f.listFiles()) { - delete(i); - } - } - - f.delete(); - } - - public static long size(File file) { - long s = 0; - - if (file.exists()) { - if (file.isDirectory()) { - for (File i : file.listFiles()) { - s += size(i); - } - } else { - s += file.length(); - } - } - - return s; - } - - public static long count(File file) { - long s = 0; - - if (file.exists()) { - if (file.isDirectory()) { - for (File i : file.listFiles()) { - s += count(i); - } - } else { - s++; - } - } - - return s; - } - - public static long transfer(InputStream in, OutputStream out, byte[] buf, int totalSize) throws IOException { - long total = totalSize; - long wrote = 0; - int r = 0; - - while ((r = in.read(buf, 0, (int) (total < buf.length ? total : buf.length))) != -1) { - total -= r; - out.write(buf, 0, r); - wrote += r; - - if (total <= 0) { - break; - } - } - - return wrote; - } - - public static void readEntry(File zipfile, String entryname, Consumer v) throws IOException { - ZipFile file = new ZipFile(zipfile); - Throwable x = null; - - try { - Enumeration entries = file.entries(); - while (entries.hasMoreElements()) { - ZipEntry entry = entries.nextElement(); - - if (entryname.equals(entry.getName())) { - InputStream in = file.getInputStream(entry); - v.accept(in); - } - } - } catch (Exception ex) { - Iris.reportError(ex); - x = ex.getCause(); - } finally { - file.close(); - } - - if (x != null) { - throw new IOException("Failed to read zip entry, however it has been closed safely.", x); - } - } - - public static void writeAll(File f, Object c) throws IOException { - try { - f.getParentFile().mkdirs(); - } catch (Throwable ignored) { - - } - - PrintWriter pw = new PrintWriter(new FileWriter(f)); - pw.println(c.toString()); - pw.close(); - } - - public static void writeAll(File f, OutputStream c) throws IOException { - f.getParentFile().mkdirs(); - FileInputStream in = new FileInputStream(f); - IO.fullTransfer(in, c, 8192); - in.close(); - } - - public static String readAll(File f) throws IOException { - FileReader fr; - try { - fr = new FileReader(f); - } catch (IOException e) { - Iris.reportError(e); - throw e; - } - BufferedReader bu = new BufferedReader(fr); - StringBuilder c = new StringBuilder(); - String l = ""; - - while ((l = bu.readLine()) != null) { - c.append(l).append("\n"); - } - - bu.close(); - - return c.toString(); - } - - public static String readAll(InputStream in) throws IOException { - BufferedReader bu = new BufferedReader(new InputStreamReader(in)); - StringBuilder c = new StringBuilder(); - String l = ""; - - while ((l = bu.readLine()) != null) { - c.append(l).append("\n"); - } - - bu.close(); - - return c.toString(); - } - - /** - * Implements the same behaviour as the "touch" utility on Unix. It creates a - * new file with size 0 or, if the file exists already, it is opened and closed - * without modifying it, but updating the file date and time. - * - * @param file the File to touch - * @throws IOException If an I/O problem occurs - */ - public static void touch(File file) throws IOException { - if (!file.exists()) { - OutputStream out = new FileOutputStream(file); - out.close(); - } - file.setLastModified(System.currentTimeMillis()); - } - - /** - * Copies a file to a new location preserving the file date. - *

- * This method copies the contents of the specified source file to the specified - * destination file. The directory holding the destination file is created if it - * does not exist. If the destination file exists, then this method will - * overwrite it. - * - * @param srcFile an existing file to copy, must not be null - * @param destFile the new file, must not be null - * @throws NullPointerException if source or destination is null - * @throws IOException if source or destination is invalid - * @throws IOException if an IO error occurs during copying - */ - public static void copyFile(File srcFile, File destFile) throws IOException { - copyFile(srcFile, destFile, true); - } - - /** - * Copies a file to a new location. - *

- * This method copies the contents of the specified source file to the specified - * destination file. The directory holding the destination file is created if it - * does not exist. If the destination file exists, then this method will - * overwrite it. - * - * @param srcFile an existing file to copy, must not be null - * @param destFile the new file, must not be null - * @param preserveFileDate true if the file date of the copy should be the same as the - * original - * @throws NullPointerException if source or destination is null - * @throws IOException if source or destination is invalid - * @throws IOException if an IO error occurs during copying - */ - public static void copyFile(File srcFile, File destFile, boolean preserveFileDate) throws IOException { - if (srcFile == null) { - throw new NullPointerException("Source must not be null"); - } - if (destFile == null) { - throw new NullPointerException("Destination must not be null"); - } - if (!srcFile.exists()) { - throw new FileNotFoundException("Source '" + srcFile + "' does not exist"); - } - if (srcFile.isDirectory()) { - throw new IOException("Source '" + srcFile + "' exists but is a directory"); - } - if (srcFile.getCanonicalPath().equals(destFile.getCanonicalPath())) { - throw new IOException("Source '" + srcFile + "' and destination '" + destFile + "' are the same"); - } - if (destFile.getParentFile() != null && !destFile.getParentFile().exists()) { - if (!destFile.getParentFile().mkdirs()) { - throw new IOException("Destination '" + destFile + "' directory cannot be created"); - } - } - if (destFile.exists() && !destFile.canWrite()) { - throw new IOException("Destination '" + destFile + "' exists but is read-only"); - } - doCopyFile(srcFile, destFile, preserveFileDate); - } - - // ----------------------------------------------------------------------- - - /** - * Internal copy file method. - * - * @param srcFile the validated source file, not null - * @param destFile the validated destination file, not null - * @param preserveFileDate whether to preserve the file date - * @throws IOException if an error occurs - */ - private static void doCopyFile(File srcFile, File destFile, boolean preserveFileDate) throws IOException { - if (destFile.exists() && destFile.isDirectory()) { - throw new IOException("Destination '" + destFile + "' exists but is a directory"); - } - - FileInputStream input = new FileInputStream(srcFile); - try { - FileOutputStream output = new FileOutputStream(destFile); - try { - IO.copy(input, output); - } finally { - output.close(); - } - } finally { - input.close(); - } - - if (srcFile.length() != destFile.length()) { - throw new IOException("Failed to copy full contents from '" + srcFile + "' to '" + destFile + "'"); - } - if (preserveFileDate) { - destFile.setLastModified(srcFile.lastModified()); - } - } - - public static void copyDirectory(Path source, Path target) throws IOException { - Files.walk(source).forEach(sourcePath -> { - Path targetPath = target.resolve(source.relativize(sourcePath)); - - try { - if (Files.isDirectory(sourcePath)) { - if (!Files.exists(targetPath)) { - Files.createDirectories(targetPath); - } - } else { - Files.copy(sourcePath, targetPath, StandardCopyOption.REPLACE_EXISTING, StandardCopyOption.COPY_ATTRIBUTES); - } - } catch (IOException e) { - Iris.error("Failed to copy " + targetPath); - e.printStackTrace(); - } - }); - } - - /** - * Unconditionally close an Reader. - *

- * Equivalent to {@link Reader#close()}, except any exceptions will be ignored. - * This is typically used in finally blocks. - * - * @param input the Reader to close, may be null or already closed - */ - public static void closeQuietly(Reader input) { - try { - if (input != null) { - input.close(); - } - } catch (IOException e) { - Iris.reportError(e); - // ignore - } - } - - /** - * Unconditionally close a Writer. - *

- * Equivalent to {@link Writer#close()}, except any exceptions will be ignored. - * This is typically used in finally blocks. - * - * @param output the Writer to close, may be null or already closed - */ - public static void closeQuietly(Writer output) { - try { - if (output != null) { - output.close(); - } - } catch (IOException e) { - Iris.reportError(e); - // ignore - } - } - - /** - * Unconditionally close an InputStream. - *

- * Equivalent to {@link InputStream#close()}, except any exceptions will be - * ignored. This is typically used in finally blocks. - * - * @param input the InputStream to close, may be null or already closed - */ - public static void closeQuietly(InputStream input) { - try { - if (input != null) { - input.close(); - } - } catch (IOException e) { - Iris.reportError(e); - // ignore - } - } - - // read toByteArray - // ----------------------------------------------------------------------- - - /** - * Unconditionally close an OutputStream. - *

- * Equivalent to {@link OutputStream#close()}, except any exceptions will be - * ignored. This is typically used in finally blocks. - * - * @param output the OutputStream to close, may be null or already closed - */ - public static void closeQuietly(OutputStream output) { - try { - if (output != null) { - output.close(); - } - } catch (IOException e) { - Iris.reportError(e); - // ignore - } - } - - /** - * Get the contents of an InputStream as a byte[]. - *

- * This method buffers the input internally, so there is no need to use a - * BufferedInputStream. - * - * @param input the InputStream to read from - * @return the requested byte array - * @throws NullPointerException if the input is null - * @throws IOException if an I/O error occurs - */ - public static byte[] toByteArray(InputStream input) throws IOException { - ByteArrayOutputStream output = new ByteArrayOutputStream(); - copy(input, output); - return output.toByteArray(); - } - - /** - * Get the contents of a Reader as a byte[] using the - * default character encoding of the platform. - *

- * This method buffers the input internally, so there is no need to use a - * BufferedReader. - * - * @param input the Reader to read from - * @return the requested byte array - * @throws NullPointerException if the input is null - * @throws IOException if an I/O error occurs - */ - public static byte[] toByteArray(Reader input) throws IOException { - ByteArrayOutputStream output = new ByteArrayOutputStream(); - copy(input, output); - return output.toByteArray(); - } - - /** - * Get the contents of a Reader as a byte[] using the - * specified character encoding. - *

- * Character encoding names can be found at - * IANA. - *

- * This method buffers the input internally, so there is no need to use a - * BufferedReader. - * - * @param input the Reader to read from - * @param encoding the encoding to use, null means platform default - * @return the requested byte array - * @throws NullPointerException if the input is null - * @throws IOException if an I/O error occurs - * @since Commons IO 1.1 - */ - public static byte[] toByteArray(Reader input, String encoding) throws IOException { - ByteArrayOutputStream output = new ByteArrayOutputStream(); - copy(input, output, encoding); - return output.toByteArray(); - } - - // read char[] - // ----------------------------------------------------------------------- - - /** - * Get the contents of a String as a byte[] using the - * default character encoding of the platform. - *

- * This is the same as {@link String#getBytes()}. - * - * @param input the String to convert - * @return the requested byte array - * @deprecated Use {@link String#getBytes()} - */ - @Deprecated - public static byte[] toByteArray(String input) { - return input.getBytes(); - } - - /** - * Get the contents of an InputStream as a character array using - * the default character encoding of the platform. - *

- * This method buffers the input internally, so there is no need to use a - * BufferedInputStream. - * - * @param is the InputStream to read from - * @return the requested character array - * @throws NullPointerException if the input is null - * @throws IOException if an I/O error occurs - * @since Commons IO 1.1 - */ - public static char[] toCharArray(InputStream is) throws IOException { - CharArrayWriter output = new CharArrayWriter(); - copy(is, output); - return output.toCharArray(); - } - - /** - * Get the contents of an InputStream as a character array using - * the specified character encoding. - *

- * Character encoding names can be found at - * IANA. - *

- * This method buffers the input internally, so there is no need to use a - * BufferedInputStream. - * - * @param is the InputStream to read from - * @param encoding the encoding to use, null means platform default - * @return the requested character array - * @throws NullPointerException if the input is null - * @throws IOException if an I/O error occurs - * @since Commons IO 1.1 - */ - public static char[] toCharArray(InputStream is, String encoding) throws IOException { - CharArrayWriter output = new CharArrayWriter(); - copy(is, output, encoding); - return output.toCharArray(); - } - - // read toString - // ----------------------------------------------------------------------- - - /** - * Get the contents of a Reader as a character array. - *

- * This method buffers the input internally, so there is no need to use a - * BufferedReader. - * - * @param input the Reader to read from - * @return the requested character array - * @throws NullPointerException if the input is null - * @throws IOException if an I/O error occurs - * @since Commons IO 1.1 - */ - public static char[] toCharArray(Reader input) throws IOException { - CharArrayWriter sw = new CharArrayWriter(); - copy(input, sw); - return sw.toCharArray(); - } - - /** - * Get the contents of an InputStream as a String using the default - * character encoding of the platform. - *

- * This method buffers the input internally, so there is no need to use a - * BufferedInputStream. - * - * @param input the InputStream to read from - * @return the requested String - * @throws NullPointerException if the input is null - * @throws IOException if an I/O error occurs - */ - public static String toString(InputStream input) throws IOException { - StringWriter sw = new StringWriter(); - copy(input, sw); - return sw.toString(); - } - - /** - * Get the contents of an InputStream as a String using the - * specified character encoding. - *

- * Character encoding names can be found at - * IANA. - *

- * This method buffers the input internally, so there is no need to use a - * BufferedInputStream. - * - * @param input the InputStream to read from - * @param encoding the encoding to use, null means platform default - * @return the requested String - * @throws NullPointerException if the input is null - * @throws IOException if an I/O error occurs - */ - public static String toString(InputStream input, String encoding) throws IOException { - StringWriter sw = new StringWriter(); - copy(input, sw, encoding); - return sw.toString(); - } - - /** - * Get the contents of a Reader as a String. - *

- * This method buffers the input internally, so there is no need to use a - * BufferedReader. - * - * @param input the Reader to read from - * @return the requested String - * @throws NullPointerException if the input is null - * @throws IOException if an I/O error occurs - */ - public static String toString(Reader input) throws IOException { - StringWriter sw = new StringWriter(); - copy(input, sw); - return sw.toString(); - } - - /** - * Get the contents of a byte[] as a String using the default - * character encoding of the platform. - * - * @param input the byte array to read from - * @return the requested String - * @deprecated Use {@link String#String(byte[])} - */ - @Deprecated - public static String toString(byte[] input) { - return new String(input); - } - - // readLines - // ----------------------------------------------------------------------- - - /** - * Get the contents of a byte[] as a String using the specified - * character encoding. - *

- * Character encoding names can be found at - * IANA. - * - * @param input the byte array to read from - * @param encoding the encoding to use, null means platform default - * @return the requested String - * @throws NullPointerException if the input is null - * @throws IOException if an I/O error occurs (never occurs) - * @deprecated Use {@link String#String(byte[], String)} - */ - @Deprecated - public static String toString(byte[] input, String encoding) throws IOException { - if (encoding == null) { - return new String(input); - } else { - return new String(input, encoding); - } - } - - /** - * Get the contents of an InputStream as a list of Strings, one - * entry per line, using the default character encoding of the platform. - *

- * This method buffers the input internally, so there is no need to use a - * BufferedInputStream. - * - * @param input the InputStream to read from, not null - * @return the list of Strings, never null - * @throws NullPointerException if the input is null - * @throws IOException if an I/O error occurs - * @since Commons IO 1.1 - */ - public static List readLines(InputStream input) throws IOException { - InputStreamReader reader = new InputStreamReader(input); - return readLines(reader); - } - - /** - * Get the contents of an InputStream as a list of Strings, one - * entry per line, using the specified character encoding. - *

- * Character encoding names can be found at - * IANA. - *

- * This method buffers the input internally, so there is no need to use a - * BufferedInputStream. - * - * @param input the InputStream to read from, not null - * @param encoding the encoding to use, null means platform default - * @return the list of Strings, never null - * @throws NullPointerException if the input is null - * @throws IOException if an I/O error occurs - * @since Commons IO 1.1 - */ - public static List readLines(InputStream input, String encoding) throws IOException { - if (encoding == null) { - return readLines(input); - } else { - InputStreamReader reader = new InputStreamReader(input, encoding); - return readLines(reader); - } - } - - // ----------------------------------------------------------------------- - - /** - * Get the contents of a Reader as a list of Strings, one entry per - * line. - *

- * This method buffers the input internally, so there is no need to use a - * BufferedReader. - * - * @param input the Reader to read from, not null - * @return the list of Strings, never null - * @throws NullPointerException if the input is null - * @throws IOException if an I/O error occurs - * @since Commons IO 1.1 - */ - public static List readLines(Reader input) throws IOException { - BufferedReader reader = new BufferedReader(input); - List list = new ArrayList(); - String line = reader.readLine(); - while (line != null) { - list.add(line); - line = reader.readLine(); - } - return list; - } - - /** - * Convert the specified string to an input stream, encoded as bytes using the - * default character encoding of the platform. - * - * @param input the string to convert - * @return an input stream - * @since Commons IO 1.1 - */ - public static InputStream toInputStream(String input) { - byte[] bytes = input.getBytes(); - return new ByteArrayInputStream(bytes); - } - - // writeNodeData byte[] - // ----------------------------------------------------------------------- - - /** - * Convert the specified string to an input stream, encoded as bytes using the - * specified character encoding. - *

- * Character encoding names can be found at - * IANA. - * - * @param input the string to convert - * @param encoding the encoding to use, null means platform default - * @return an input stream - * @throws IOException if the encoding is invalid - * @since Commons IO 1.1 - */ - public static InputStream toInputStream(String input, String encoding) throws IOException { - byte[] bytes = encoding != null ? input.getBytes(encoding) : input.getBytes(); - return new ByteArrayInputStream(bytes); - } - - /** - * Writes bytes from a byte[] to an OutputStream. - * - * @param data the byte array to writeNodeData, do not modify during output, null ignored - * @param output the OutputStream to writeNodeData to - * @throws NullPointerException if output is null - * @throws IOException if an I/O error occurs - * @since Commons IO 1.1 - */ - public static void write(byte[] data, OutputStream output) throws IOException { - if (data != null) { - output.write(data); - } - } - - /** - * Writes bytes from a byte[] to chars on a Writer - * using the default character encoding of the platform. - *

- * This method uses {@link String#String(byte[])}. - * - * @param data the byte array to writeNodeData, do not modify during output, null ignored - * @param output the Writer to writeNodeData to - * @throws NullPointerException if output is null - * @throws IOException if an I/O error occurs - * @since Commons IO 1.1 - */ - public static void write(byte[] data, Writer output) throws IOException { - if (data != null) { - output.write(new String(data)); - } - } - - // writeNodeData char[] - // ----------------------------------------------------------------------- - - /** - * Writes bytes from a byte[] to chars on a Writer - * using the specified character encoding. - *

- * Character encoding names can be found at - * IANA. - *

- * This method uses {@link String#String(byte[], String)}. - * - * @param data the byte array to writeNodeData, do not modify during output, null ignored - * @param output the Writer to writeNodeData to - * @param encoding the encoding to use, null means platform default - * @throws NullPointerException if output is null - * @throws IOException if an I/O error occurs - * @since Commons IO 1.1 - */ - public static void write(byte[] data, Writer output, String encoding) throws IOException { - if (data != null) { - if (encoding == null) { - write(data, output); - } else { - output.write(new String(data, encoding)); - } - } - } - - /** - * Writes chars from a char[] to a Writer using the - * default character encoding of the platform. - * - * @param data the char array to writeNodeData, do not modify during output, null ignored - * @param output the Writer to writeNodeData to - * @throws NullPointerException if output is null - * @throws IOException if an I/O error occurs - * @since Commons IO 1.1 - */ - public static void write(char[] data, Writer output) throws IOException { - if (data != null) { - output.write(data); - } - } - - /** - * Writes chars from a char[] to bytes on an - * OutputStream. - *

- * This method uses {@link String#String(char[])} and {@link String#getBytes()}. - * - * @param data the char array to writeNodeData, do not modify during output, null ignored - * @param output the OutputStream to writeNodeData to - * @throws NullPointerException if output is null - * @throws IOException if an I/O error occurs - * @since Commons IO 1.1 - */ - public static void write(char[] data, OutputStream output) throws IOException { - if (data != null) { - output.write(new String(data).getBytes()); - } - } - - // writeNodeData String - // ----------------------------------------------------------------------- - - /** - * Writes chars from a char[] to bytes on an - * OutputStream using the specified character encoding. - *

- * Character encoding names can be found at - * IANA. - *

- * This method uses {@link String#String(char[])} and - * {@link String#getBytes(String)}. - * - * @param data the char array to writeNodeData, do not modify during output, null ignored - * @param output the OutputStream to writeNodeData to - * @param encoding the encoding to use, null means platform default - * @throws NullPointerException if output is null - * @throws IOException if an I/O error occurs - * @since Commons IO 1.1 - */ - public static void write(char[] data, OutputStream output, String encoding) throws IOException { - if (data != null) { - if (encoding == null) { - write(data, output); - } else { - output.write(new String(data).getBytes(encoding)); - } - } - } - - /** - * Writes chars from a String to a Writer. - * - * @param data the String to writeNodeData, null ignored - * @param output the Writer to writeNodeData to - * @throws NullPointerException if output is null - * @throws IOException if an I/O error occurs - * @since Commons IO 1.1 - */ - public static void write(String data, Writer output) throws IOException { - if (data != null) { - output.write(data); - } - } - - /** - * Writes chars from a String to bytes on an - * OutputStream using the default character encoding of the - * platform. - *

- * This method uses {@link String#getBytes()}. - * - * @param data the String to writeNodeData, null ignored - * @param output the OutputStream to writeNodeData to - * @throws NullPointerException if output is null - * @throws IOException if an I/O error occurs - * @since Commons IO 1.1 - */ - public static void write(String data, OutputStream output) throws IOException { - if (data != null) { - output.write(data.getBytes()); - } - } - - // writeNodeData StringBuffer - // ----------------------------------------------------------------------- - - /** - * Writes chars from a String to bytes on an - * OutputStream using the specified character encoding. - *

- * Character encoding names can be found at - * IANA. - *

- * This method uses {@link String#getBytes(String)}. - * - * @param data the String to writeNodeData, null ignored - * @param output the OutputStream to writeNodeData to - * @param encoding the encoding to use, null means platform default - * @throws NullPointerException if output is null - * @throws IOException if an I/O error occurs - * @since Commons IO 1.1 - */ - public static void write(String data, OutputStream output, String encoding) throws IOException { - if (data != null) { - if (encoding == null) { - write(data, output); - } else { - output.write(data.getBytes(encoding)); - } - } - } - - /** - * Writes chars from a StringBuffer to a Writer. - * - * @param data the StringBuffer to writeNodeData, null ignored - * @param output the Writer to writeNodeData to - * @throws NullPointerException if output is null - * @throws IOException if an I/O error occurs - * @since Commons IO 1.1 - */ - public static void write(StringBuffer data, Writer output) throws IOException { - if (data != null) { - output.write(data.toString()); - } - } - - /** - * Writes chars from a StringBuffer to bytes on an - * OutputStream using the default character encoding of the - * platform. - *

- * This method uses {@link String#getBytes()}. - * - * @param data the StringBuffer to writeNodeData, null ignored - * @param output the OutputStream to writeNodeData to - * @throws NullPointerException if output is null - * @throws IOException if an I/O error occurs - * @since Commons IO 1.1 - */ - public static void write(StringBuffer data, OutputStream output) throws IOException { - if (data != null) { - output.write(data.toString().getBytes()); - } - } - - // writeLines - // ----------------------------------------------------------------------- - - /** - * Writes chars from a StringBuffer to bytes on an - * OutputStream using the specified character encoding. - *

- * Character encoding names can be found at - * IANA. - *

- * This method uses {@link String#getBytes(String)}. - * - * @param data the StringBuffer to writeNodeData, null ignored - * @param output the OutputStream to writeNodeData to - * @param encoding the encoding to use, null means platform default - * @throws NullPointerException if output is null - * @throws IOException if an I/O error occurs - * @since Commons IO 1.1 - */ - public static void write(StringBuffer data, OutputStream output, String encoding) throws IOException { - if (data != null) { - if (encoding == null) { - write(data, output); - } else { - output.write(data.toString().getBytes(encoding)); - } - } - } - - /** - * Writes the toString() value of each item in a collection to an - * OutputStream line by line, using the default character encoding - * of the platform and the specified line ending. - * - * @param lines the lines to writeNodeData, null entries produce blank lines - * @param lineEnding the line separator to use, null is system default - * @param output the OutputStream to writeNodeData to, not null, not closed - * @throws NullPointerException if the output is null - * @throws IOException if an I/O error occurs - * @since Commons IO 1.1 - */ - public static void writeLines(Collection lines, String lineEnding, OutputStream output) throws IOException { - if (lines == null) { - return; - } - if (lineEnding == null) { - lineEnding = LINE_SEPARATOR; - } - for (Iterator it = lines.iterator(); it.hasNext(); ) { - Object line = it.next(); - if (line != null) { - output.write(line.toString().getBytes()); - } - output.write(lineEnding.getBytes()); - } - } - - /** - * Writes the toString() value of each item in a collection to an - * OutputStream line by line, using the specified character - * encoding and the specified line ending. - *

- * Character encoding names can be found at - * IANA. - * - * @param lines the lines to writeNodeData, null entries produce blank lines - * @param lineEnding the line separator to use, null is system default - * @param output the OutputStream to writeNodeData to, not null, not closed - * @param encoding the encoding to use, null means platform default - * @throws NullPointerException if the output is null - * @throws IOException if an I/O error occurs - * @since Commons IO 1.1 - */ - public static void writeLines(Collection lines, String lineEnding, OutputStream output, String encoding) throws IOException { - if (encoding == null) { - writeLines(lines, lineEnding, output); - } else { - if (lines == null) { - return; - } - if (lineEnding == null) { - lineEnding = LINE_SEPARATOR; - } - for (Iterator it = lines.iterator(); it.hasNext(); ) { - Object line = it.next(); - if (line != null) { - output.write(line.toString().getBytes(encoding)); - } - output.write(lineEnding.getBytes(encoding)); - } - } - } - - // copy from InputStream - // ----------------------------------------------------------------------- - - /** - * Writes the toString() value of each item in a collection to a - * Writer line by line, using the specified line ending. - * - * @param lines the lines to writeNodeData, null entries produce blank lines - * @param lineEnding the line separator to use, null is system default - * @param writer the Writer to writeNodeData to, not null, not closed - * @throws NullPointerException if the input is null - * @throws IOException if an I/O error occurs - * @since Commons IO 1.1 - */ - public static void writeLines(Collection lines, String lineEnding, Writer writer) throws IOException { - if (lines == null) { - return; - } - if (lineEnding == null) { - lineEnding = LINE_SEPARATOR; - } - for (Iterator it = lines.iterator(); it.hasNext(); ) { - Object line = it.next(); - if (line != null) { - writer.write(line.toString()); - } - writer.write(lineEnding); - } - } - - /** - * Copy bytes from an InputStream to an OutputStream. - *

- * This method buffers the input internally, so there is no need to use a - * BufferedInputStream. - *

- * Large streams (over 2GB) will return a bytes copied value of -1 - * after the copy has completed since the correct number of bytes cannot be - * returned as an int. For large streams use the - * copyLarge(InputStream, OutputStream) method. - * - * @param input the InputStream to read from - * @param output the OutputStream to writeNodeData to - * @return the number of bytes copied - * @throws NullPointerException if the input or output is null - * @throws IOException if an I/O error occurs - * @throws ArithmeticException if the byte count is too large - * @since Commons IO 1.1 - */ - public static int copy(InputStream input, OutputStream output) throws IOException { - long count = copyLarge(input, output); - if (count > Integer.MAX_VALUE) { - return -1; - } - return (int) count; - } - - /** - * Copy bytes from a large (over 2GB) InputStream to an - * OutputStream. - *

- * This method buffers the input internally, so there is no need to use a - * BufferedInputStream. - * - * @param input the InputStream to read from - * @param output the OutputStream to writeNodeData to - * @return the number of bytes copied - * @throws NullPointerException if the input or output is null - * @throws IOException if an I/O error occurs - * @since Commons IO 1.3 - */ - public static long copyLarge(InputStream input, OutputStream output) throws IOException { - byte[] buffer = new byte[DEFAULT_BUFFER_SIZE]; - long count = 0; - int n = 0; - while (-1 != (n = input.read(buffer))) { - output.write(buffer, 0, n); - count += n; - } - return count; - } - - /** - * Copy bytes from an InputStream to chars on a Writer - * using the default character encoding of the platform. - *

- * This method buffers the input internally, so there is no need to use a - * BufferedInputStream. - *

- * This method uses {@link InputStreamReader}. - * - * @param input the InputStream to read from - * @param output the Writer to writeNodeData to - * @throws NullPointerException if the input or output is null - * @throws IOException if an I/O error occurs - * @since Commons IO 1.1 - */ - public static void copy(InputStream input, Writer output) throws IOException { - InputStreamReader in = new InputStreamReader(input); - copy(in, output); - } - - // copy from Reader - // ----------------------------------------------------------------------- - - /** - * Copy bytes from an InputStream to chars on a Writer - * using the specified character encoding. - *

- * This method buffers the input internally, so there is no need to use a - * BufferedInputStream. - *

- * Character encoding names can be found at - * IANA. - *

- * This method uses {@link InputStreamReader}. - * - * @param input the InputStream to read from - * @param output the Writer to writeNodeData to - * @param encoding the encoding to use, null means platform default - * @throws NullPointerException if the input or output is null - * @throws IOException if an I/O error occurs - * @since Commons IO 1.1 - */ - public static void copy(InputStream input, Writer output, String encoding) throws IOException { - if (encoding == null) { - copy(input, output); - } else { - InputStreamReader in = new InputStreamReader(input, encoding); - copy(in, output); - } - } - - /** - * Copy chars from a Reader to a Writer. - *

- * This method buffers the input internally, so there is no need to use a - * BufferedReader. - *

- * Large streams (over 2GB) will return a chars copied value of -1 - * after the copy has completed since the correct number of chars cannot be - * returned as an int. For large streams use the - * copyLarge(Reader, Writer) method. - * - * @param input the Reader to read from - * @param output the Writer to writeNodeData to - * @return the number of characters copied - * @throws NullPointerException if the input or output is null - * @throws IOException if an I/O error occurs - * @throws ArithmeticException if the character count is too large - * @since Commons IO 1.1 - */ - public static int copy(Reader input, Writer output) throws IOException { - long count = copyLarge(input, output); - if (count > Integer.MAX_VALUE) { - return -1; - } - return (int) count; - } - - /** - * Copy chars from a large (over 2GB) Reader to a - * Writer. - *

- * This method buffers the input internally, so there is no need to use a - * BufferedReader. - * - * @param input the Reader to read from - * @param output the Writer to writeNodeData to - * @return the number of characters copied - * @throws NullPointerException if the input or output is null - * @throws IOException if an I/O error occurs - * @since Commons IO 1.3 - */ - public static long copyLarge(Reader input, Writer output) throws IOException { - char[] buffer = new char[DEFAULT_BUFFER_SIZE]; - long count = 0; - int n = 0; - while (-1 != (n = input.read(buffer))) { - output.write(buffer, 0, n); - count += n; - } - return count; - } - - /** - * Copy chars from a Reader to bytes on an - * OutputStream using the default character encoding of the - * platform, and calling flush. - *

- * This method buffers the input internally, so there is no need to use a - * BufferedReader. - *

- * Due to the implementation of OutputStreamWriter, this method performs a - * flush. - *

- * This method uses {@link OutputStreamWriter}. - * - * @param input the Reader to read from - * @param output the OutputStream to writeNodeData to - * @throws NullPointerException if the input or output is null - * @throws IOException if an I/O error occurs - * @since Commons IO 1.1 - */ - public static void copy(Reader input, OutputStream output) throws IOException { - OutputStreamWriter out = new OutputStreamWriter(output); - copy(input, out); - // have to flush here. - out.flush(); - } - - // content equals - // ----------------------------------------------------------------------- - - /** - * Copy chars from a Reader to bytes on an - * OutputStream using the specified character encoding, and calling - * flush. - *

- * This method buffers the input internally, so there is no need to use a - * BufferedReader. - *

- * Character encoding names can be found at - * IANA. - *

- * Due to the implementation of OutputStreamWriter, this method performs a - * flush. - *

- * This method uses {@link OutputStreamWriter}. - * - * @param input the Reader to read from - * @param output the OutputStream to writeNodeData to - * @param encoding the encoding to use, null means platform default - * @throws NullPointerException if the input or output is null - * @throws IOException if an I/O error occurs - * @since Commons IO 1.1 - */ - public static void copy(Reader input, OutputStream output, String encoding) throws IOException { - if (encoding == null) { - copy(input, output); - } else { - OutputStreamWriter out = new OutputStreamWriter(output, encoding); - copy(input, out); - // we have to flush here. - out.flush(); - } - } - - /** - * Compare the contents of two Streams to determine if they are equal or not. - *

- * This method buffers the input internally using - * BufferedInputStream if they are not already buffered. - * - * @param input1 the first stream - * @param input2 the second stream - * @return true if the content of the streams are equal or they both don't - * exist, false otherwise - * @throws NullPointerException if either input is null - * @throws IOException if an I/O error occurs - */ - public static boolean contentEquals(InputStream input1, InputStream input2) throws IOException { - if (!(input1 instanceof BufferedInputStream)) { - input1 = new BufferedInputStream(input1); - } - if (!(input2 instanceof BufferedInputStream)) { - input2 = new BufferedInputStream(input2); - } - - int ch = input1.read(); - while (-1 != ch) { - int ch2 = input2.read(); - if (ch != ch2) { - return false; - } - ch = input1.read(); - } - - int ch2 = input2.read(); - return (ch2 == -1); - } - - /** - * Compare the contents of two Readers to determine if they are equal or not. - *

- * This method buffers the input internally using BufferedReader if - * they are not already buffered. - * - * @param input1 the first reader - * @param input2 the second reader - * @return true if the content of the readers are equal or they both don't - * exist, false otherwise - * @throws NullPointerException if either input is null - * @throws IOException if an I/O error occurs - * @since Commons IO 1.1 - */ - public static boolean contentEquals(Reader input1, Reader input2) throws IOException { - if (!(input1 instanceof BufferedReader)) { - input1 = new BufferedReader(input1); - } - if (!(input2 instanceof BufferedReader)) { - input2 = new BufferedReader(input2); - } - - int ch = input1.read(); - while (-1 != ch) { - int ch2 = input2.read(); - if (ch != ch2) { - return false; - } - ch = input1.read(); - } - - int ch2 = input2.read(); - return (ch2 == -1); - } - - @SneakyThrows - public static void write(File file, Document doc) { - file.getParentFile().mkdirs(); - try (var writer = new FileWriter(file)) { - new XMLWriter(writer, OutputFormat.createPrettyPrint()) - .write(doc); - } - } - - @SneakyThrows - public static Document read(File file) { - if (file.exists()) return new SAXReader().read(file); - var doc = DocumentHelper.createDocument(); - doc.addElement("project") - .addAttribute("version", "4"); - return doc; - } - - public static void write(File file, IOFunction builder, IOConsumer action) throws IOException { - File dir = new File(file.getParentFile(), ".tmp"); - dir.mkdirs(); - dir.deleteOnExit(); - File temp = File.createTempFile("iris",".bin", dir); - try (var target = FileChannel.open(file.toPath(), StandardOpenOption.READ, StandardOpenOption.WRITE, StandardOpenOption.CREATE, StandardOpenOption.SYNC)) { - lock(target); - - try (var out = builder.apply(new FileOutputStream(temp))) { - action.accept(out); - } - Files.copy(temp.toPath(), Channels.newOutputStream(target)); - target.truncate(temp.length()); - } finally { - temp.delete(); - } - } - - public static FileLock lock(FileChannel channel) throws IOException { - while (true) { - try { - return channel.lock(); - } catch (OverlappingFileLockException e) {} - J.sleep(1); - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/io/IORunnable.java b/core/src/main/java/com/volmit/iris/util/io/IORunnable.java deleted file mode 100644 index ba2064491..000000000 --- a/core/src/main/java/com/volmit/iris/util/io/IORunnable.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 com.volmit.iris.util.io; - -import java.io.IOException; - -public interface IORunnable { - void run() throws IOException; -} diff --git a/core/src/main/java/com/volmit/iris/util/io/InstanceState.java b/core/src/main/java/com/volmit/iris/util/io/InstanceState.java deleted file mode 100644 index 0b1c0dd48..000000000 --- a/core/src/main/java/com/volmit/iris/util/io/InstanceState.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 com.volmit.iris.util.io; - -import com.volmit.iris.util.math.RNG; - -import java.io.File; -import java.io.IOException; - -public class InstanceState { - public static int getInstanceId() { - try { - return Integer.parseInt(IO.readAll(instanceFile()).trim()); - } catch (Throwable e) { - e.printStackTrace(); - } - - return -1; - } - - public static void updateInstanceId() { - try { - IO.writeAll(instanceFile(), RNG.r.imax() + ""); - } catch (IOException e) { - e.printStackTrace(); - } - } - - private static File instanceFile() { - File f = new File("plugins/Iris/cache/instance"); - f.getParentFile().mkdirs(); - return f; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/io/JarScanner.java b/core/src/main/java/com/volmit/iris/util/io/JarScanner.java deleted file mode 100644 index cf8aa3271..000000000 --- a/core/src/main/java/com/volmit/iris/util/io/JarScanner.java +++ /dev/null @@ -1,125 +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 com.volmit.iris.util.io; - -import com.volmit.iris.Iris; -import com.volmit.iris.util.collection.KSet; - -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.util.zip.ZipEntry; -import java.util.zip.ZipInputStream; - -public class JarScanner { - private final KSet> classes; - private final File jar; - private final String superPackage; - private final boolean report; - - /** - * Create a scanner - * - * @param jar the path to the jar - */ - public JarScanner(File jar, String superPackage, boolean report) { - this.jar = jar; - this.classes = new KSet<>(); - this.superPackage = superPackage; - this.report = report; - } - - public JarScanner(File jar, String superPackage) { - this(jar, superPackage, true); - } - - /** - * Scan the jar - * - * @throws IOException bad things happen - */ - public void scan() throws IOException { - classes.clear(); - FileInputStream fin = new FileInputStream(jar); - ZipInputStream zip = new ZipInputStream(fin); - - for (ZipEntry entry = zip.getNextEntry(); entry != null; entry = zip.getNextEntry()) { - if (!entry.isDirectory() && entry.getName().endsWith(".class")) { - if (entry.getName().contains("$")) { - continue; - } - - String c = entry.getName().replaceAll("/", ".").replace(".class", ""); - - if (c.startsWith(superPackage)) { - try { - Class clazz = Class.forName(c); - classes.add(clazz); - } catch (Throwable e) { - if (!report) continue; - Iris.reportError(e); - e.printStackTrace(); - } - } - } - } - - zip.close(); - } - - public void scanAll() throws IOException { - classes.clear(); - FileInputStream fin = new FileInputStream(jar); - ZipInputStream zip = new ZipInputStream(fin); - for (ZipEntry entry = zip.getNextEntry(); entry != null; entry = zip.getNextEntry()) { - if (!entry.isDirectory() && entry.getName().endsWith(".class")) { - String c = entry.getName().replaceAll("/", ".").replace(".class", ""); - - if (c.startsWith(superPackage)) { - try { - Class clazz = Class.forName(c); - classes.add(clazz); - } catch (Throwable e) { - if (!report) continue; - Iris.reportError(e); - e.printStackTrace(); - } - } - } - } - } - - /** - * Get the scanned clases - * - * @return a gset of classes - */ - public KSet> getClasses() { - return classes; - } - - /** - * Get the file object for the jar - * - * @return a file object representing the jar - */ - public File getJar() { - return jar; - } -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/io/VoidOutputStream.java b/core/src/main/java/com/volmit/iris/util/io/VoidOutputStream.java deleted file mode 100644 index 7855e9908..000000000 --- a/core/src/main/java/com/volmit/iris/util/io/VoidOutputStream.java +++ /dev/null @@ -1,28 +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 com.volmit.iris.util.io; - -import java.io.OutputStream; - -public class VoidOutputStream extends OutputStream { - @Override - public void write(int b) { - // poof - } -} diff --git a/core/src/main/java/com/volmit/iris/util/json/HTTP.java b/core/src/main/java/com/volmit/iris/util/json/HTTP.java deleted file mode 100644 index 2b3099522..000000000 --- a/core/src/main/java/com/volmit/iris/util/json/HTTP.java +++ /dev/null @@ -1,182 +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 com.volmit.iris.util.json; - - -import java.util.Iterator; - -/** - * Convert an HTTP header to a JSONObject and back. - * - * @author JSON.org - * @version 2014-05-03 - */ -public class HTTP { - - /** - * Carriage return/line feed. - */ - public static final String CRLF = "\r\n"; - - /** - * Convert an HTTP header string into a JSONObject. It can be a request - * header or a response header. A request header will contain - * - *

-     * {
-     *    Method: "POST" (for example),
-     *    "Request-URI": "/" (for example),
-     *    "HTTP-Version": "HTTP/1.1" (for example)
-     * }
-     * 
- *

- * A response header will contain - * - *

-     * {
-     *    "HTTP-Version": "HTTP/1.1" (for example),
-     *    "Status-Code": "200" (for example),
-     *    "Reason-Phrase": "OK" (for example)
-     * }
-     * 
- *

- * In addition, the other parameters in the header will be captured, using - * the HTTP field names as JSON names, so that - * - *

-     *    Date: Sun, 26 May 2002 18:06:04 GMT
-     *    Cookie: Q=q2=PPEAsg--; B=677gi6ouf29bn&b=2&f=s
-     *    Cache-Control: no-cache
-     * 
- *

- * become - * - *

-     * {...
-     *    Date: "Sun, 26 May 2002 18:06:04 GMT",
-     *    Cookie: "Q=q2=PPEAsg--; B=677gi6ouf29bn&b=2&f=s",
-     *    "Cache-Control": "no-cache",
-     * ...}
-     * 
- *

- * It does no further checking or conversion. It does not parse dates. It - * does not do '%' transforms on URLs. - * - * @param string An HTTP header string. - * @return A JSONObject containing the elements and attributes of the XML - * string. - */ - public static JSONObject toJSONObject(String string) throws JSONException { - JSONObject jo = new JSONObject(); - HTTPTokener x = new HTTPTokener(string); - String token; - - token = x.nextToken(); - if (token.toUpperCase().startsWith("HTTP")) { - - // Response - - jo.put("HTTP-Version", token); - jo.put("Status-Code", x.nextToken()); - jo.put("Reason-Phrase", x.nextTo('\0')); - x.next(); - - } else { - - // Request - - jo.put("Method", token); - jo.put("Request-URI", x.nextToken()); - jo.put("HTTP-Version", x.nextToken()); - } - - // Fields - - while (x.more()) { - String name = x.nextTo(':'); - x.next(':'); - jo.put(name, x.nextTo('\0')); - x.next(); - } - return jo; - } - - /** - * Convert a JSONObject into an HTTP header. A request header must contain - * - *

-     * {
-     *    Method: "POST" (for example),
-     *    "Request-URI": "/" (for example),
-     *    "HTTP-Version": "HTTP/1.1" (for example)
-     * }
-     * 
- *

- * A response header must contain - * - *

-     * {
-     *    "HTTP-Version": "HTTP/1.1" (for example),
-     *    "Status-Code": "200" (for example),
-     *    "Reason-Phrase": "OK" (for example)
-     * }
-     * 
- *

- * Any other members of the JSONObject will be output as HTTP fields. The - * result will end with two CRLF pairs. - * - * @param jo A JSONObject - * @return An HTTP header string. - * @throws JSONException if the object does not contain enough information. - */ - public static String toString(JSONObject jo) throws JSONException { - Iterator keys = jo.keys(); - String string; - StringBuilder sb = new StringBuilder(); - if (jo.has("Status-Code") && jo.has("Reason-Phrase")) { - sb.append(jo.getString("HTTP-Version")); - sb.append(' '); - sb.append(jo.getString("Status-Code")); - sb.append(' '); - sb.append(jo.getString("Reason-Phrase")); - } else if (jo.has("Method") && jo.has("Request-URI")) { - sb.append(jo.getString("Method")); - sb.append(' '); - sb.append('"'); - sb.append(jo.getString("Request-URI")); - sb.append('"'); - sb.append(' '); - sb.append(jo.getString("HTTP-Version")); - } else { - throw new JSONException("Not enough material for an HTTP header."); - } - sb.append(CRLF); - while (keys.hasNext()) { - string = keys.next(); - if (!"HTTP-Version".equals(string) && !"Status-Code".equals(string) && !"Reason-Phrase".equals(string) && !"Method".equals(string) && !"Request-URI".equals(string) && !jo.isNull(string)) { - sb.append(string); - sb.append(": "); - sb.append(jo.getString(string)); - sb.append(CRLF); - } - } - sb.append(CRLF); - return sb.toString(); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/json/HTTPTokener.java b/core/src/main/java/com/volmit/iris/util/json/HTTPTokener.java deleted file mode 100644 index d2f4a6a64..000000000 --- a/core/src/main/java/com/volmit/iris/util/json/HTTPTokener.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 com.volmit.iris.util.json; - - -/** - * The HTTPTokener extends the JSONTokener to provide additional methods for the - * parsing of HTTP headers. - * - * @author JSON.org - * @version 2014-05-03 - */ -public class HTTPTokener extends JSONTokener { - - /** - * Construct an HTTPTokener from a string. - * - * @param string A source string. - */ - public HTTPTokener(String string) { - super(string); - } - - /** - * Get the next token or string. This is used in parsing HTTP headers. - * - * @return A String. - */ - public String nextToken() throws JSONException { - char c; - char q; - StringBuilder sb = new StringBuilder(); - do { - c = next(); - } while (Character.isWhitespace(c)); - if (c == '"' || c == '\'') { - q = c; - for (; ; ) { - c = next(); - if (c < ' ') { - throw syntaxError("Unterminated string."); - } - if (c == q) { - return sb.toString(); - } - sb.append(c); - } - } - for (; ; ) { - if (c == 0 || Character.isWhitespace(c)) { - return sb.toString(); - } - sb.append(c); - c = next(); - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/json/JSONArray.java b/core/src/main/java/com/volmit/iris/util/json/JSONArray.java deleted file mode 100644 index 62b09b3c8..000000000 --- a/core/src/main/java/com/volmit/iris/util/json/JSONArray.java +++ /dev/null @@ -1,1030 +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 com.volmit.iris.util.json; - - -import com.volmit.iris.Iris; - -import java.io.IOException; -import java.io.StringWriter; -import java.io.Writer; -import java.lang.reflect.Array; -import java.math.BigDecimal; -import java.math.BigInteger; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.Map; - -/** - * A JSONArray is an ordered sequence of values. Its external text form is a - * string wrapped in square brackets with commas separating the values. The - * internal form is an object having get and opt - * methods for accessing the values by index, and put methods for - * adding or replacing values. The values can be any of these types: - * Boolean, JSONArray, JSONObject, - * Number, String, or the - * JSONObject.NULL object. - *

- * The constructor can convert a JSON text into a Java object. The - * toString method converts to JSON text. - *

- * A get method returns a value if one can be found, and throws an - * exception if one cannot be found. An opt method returns a - * default value instead of throwing an exception, and so is useful for - * obtaining optional values. - *

- * The generic get() and opt() methods return an - * object which you can cast or query for type. There are also typed - * get and opt methods that do type checking and type - * coercion for you. - *

- * The texts produced by the toString methods strictly conform to - * JSON syntax rules. The constructors are more forgiving in the texts they will - * accept: - *

    - *
  • An extra , (comma) may appear just - * before the closing bracket.
  • - *
  • The null value will be inserted when there is , - *  (comma) elision.
  • - *
  • Strings may be quoted with ' (single - * quote).
  • - *
  • Strings do not need to be quoted at all if they do not begin with a quote - * or single quote, and if they do not contain leading or trailing spaces, and - * if they do not contain any of these characters: - * { } [ ] / \ : , # and if they do not look like numbers and if - * they are not the reserved words true, false, or - * null.
  • - *
- * - * @author JSON.org - * @version 2015-07-22 - */ -@SuppressWarnings("ALL") -public class JSONArray implements Iterable { - - /** - * The arrayList where the JSONArray's properties are kept. - */ - private final ArrayList myArrayList; - - /** - * Construct an empty JSONArray. - */ - public JSONArray() { - this.myArrayList = new ArrayList(); - } - - /** - * Construct a JSONArray from a JSONTokener. - * - * @param x A JSONTokener - * @throws JSONException If there is a syntax error. - */ - public JSONArray(JSONTokener x) throws JSONException { - this(); - if (x.nextClean() != '[') { - throw x.syntaxError("A JSONArray text must start with '['"); - } - if (x.nextClean() != ']') { - x.back(); - for (; ; ) { - if (x.nextClean() == ',') { - x.back(); - this.myArrayList.add(JSONObject.NULL); - } else { - x.back(); - this.myArrayList.add(x.nextValue()); - } - switch (x.nextClean()) { - case ',': - if (x.nextClean() == ']') { - return; - } - x.back(); - break; - case ']': - return; - default: - throw x.syntaxError("Expected a ',' or ']'"); - } - } - } - } - - /** - * Construct a JSONArray from a source JSON text. - * - * @param source A string that begins with [ (left - * bracket) and ends with ]   - * (right bracket). - * @throws JSONException If there is a syntax error. - */ - public JSONArray(String source) throws JSONException { - this(new JSONTokener(source)); - } - - /** - * Construct a JSONArray from a Collection. - * - * @param collection A Collection. - */ - public JSONArray(Collection collection) { - this.myArrayList = new ArrayList(); - if (collection != null) { - Iterator iter = collection.iterator(); - while (iter.hasNext()) { - this.myArrayList.add(JSONObject.wrap(iter.next())); - } - } - } - - /** - * Construct a JSONArray from an array - * - * @throws JSONException If not an array. - */ - public JSONArray(Object array) throws JSONException { - this(); - if (array.getClass().isArray()) { - int length = Array.getLength(array); - for (int i = 0; i < length; i += 1) { - this.put(JSONObject.wrap(Array.get(array, i))); - } - } else { - throw new JSONException("JSONArray initial value should be a string or collection or array."); - } - } - - @Override - public Iterator iterator() { - return myArrayList.iterator(); - } - - /** - * Get the object value associated with an index. - * - * @param index The index must be between 0 and length() - 1. - * @return An object value. - * @throws JSONException If there is no value for the index. - */ - public Object get(int index) throws JSONException { - Object object = this.opt(index); - if (object == null) { - throw new JSONException("JSONArray[" + index + "] not found."); - } - return object; - } - - /** - * Get the boolean value associated with an index. The string values "true" - * and "false" are converted to boolean. - * - * @param index The index must be between 0 and length() - 1. - * @return The truth. - * @throws JSONException If there is no value for the index or if the value is not - * convertible to boolean. - */ - public boolean getBoolean(int index) throws JSONException { - Object object = this.get(index); - if (object.equals(Boolean.FALSE) || (object instanceof String && ((String) object).equalsIgnoreCase("false"))) { - return false; - } else if (object.equals(Boolean.TRUE) || (object instanceof String && ((String) object).equalsIgnoreCase("true"))) { - return true; - } - throw new JSONException("JSONArray[" + index + "] is not a boolean."); - } - - /** - * Get the double value associated with an index. - * - * @param index The index must be between 0 and length() - 1. - * @return The value. - * @throws JSONException If the key is not found or if the value cannot be converted - * to a number. - */ - public double getDouble(int index) throws JSONException { - Object object = this.get(index); - try { - return object instanceof Number ? ((Number) object).doubleValue() : Double.parseDouble((String) object); - } catch (Exception e) { - Iris.reportError(e); - throw new JSONException("JSONArray[" + index + "] is not a number."); - } - } - - /** - * Get the enum value associated with an index. - * - * @param clazz The type of enum to retrieve. - * @param index The index must be between 0 and length() - 1. - * @return The enum value at the index location - * @throws JSONException if the key is not found or if the value cannot be converted - * to an enum. - */ - public > E getEnum(Class clazz, int index) throws JSONException { - E val = optEnum(clazz, index); - if (val == null) { - // JSONException should really take a throwable argument. - // If it did, I would re-implement this with the Enum.valueOf - // method and place any thrown exception in the JSONException - throw new JSONException("JSONObject[" + JSONObject.quote(Integer.toString(index)) + "] is not an enum of type " + JSONObject.quote(clazz.getSimpleName()) + "."); - } - return val; - } - - /** - * Get the BigDecimal value associated with an index. - * - * @param index The index must be between 0 and length() - 1. - * @return The value. - * @throws JSONException If the key is not found or if the value cannot be converted - * to a BigDecimal. - */ - public BigDecimal getBigDecimal(int index) throws JSONException { - Object object = this.get(index); - try { - return new BigDecimal(object.toString()); - } catch (Exception e) { - Iris.reportError(e); - throw new JSONException("JSONArray[" + index + "] could not convert to BigDecimal."); - } - } - - /** - * Get the BigInteger value associated with an index. - * - * @param index The index must be between 0 and length() - 1. - * @return The value. - * @throws JSONException If the key is not found or if the value cannot be converted - * to a BigInteger. - */ - public BigInteger getBigInteger(int index) throws JSONException { - Object object = this.get(index); - try { - return new BigInteger(object.toString()); - } catch (Exception e) { - Iris.reportError(e); - throw new JSONException("JSONArray[" + index + "] could not convert to BigInteger."); - } - } - - /** - * Get the int value associated with an index. - * - * @param index The index must be between 0 and length() - 1. - * @return The value. - * @throws JSONException If the key is not found or if the value is not a number. - */ - public int getInt(int index) throws JSONException { - Object object = this.get(index); - try { - return object instanceof Number ? ((Number) object).intValue() : Integer.parseInt((String) object); - } catch (Exception e) { - Iris.reportError(e); - throw new JSONException("JSONArray[" + index + "] is not a number."); - } - } - - /** - * Get the JSONArray associated with an index. - * - * @param index The index must be between 0 and length() - 1. - * @return A JSONArray value. - * @throws JSONException If there is no value for the index. or if the value is not a - * JSONArray - */ - public JSONArray getJSONArray(int index) throws JSONException { - Object object = this.get(index); - if (object instanceof JSONArray) { - return (JSONArray) object; - } - throw new JSONException("JSONArray[" + index + "] is not a JSONArray."); - } - - /** - * Get the JSONObject associated with an index. - * - * @param index subscript - * @return A JSONObject value. - * @throws JSONException If there is no value for the index or if the value is not a - * JSONObject - */ - public JSONObject getJSONObject(int index) throws JSONException { - Object object = this.get(index); - if (object instanceof JSONObject) { - return (JSONObject) object; - } - throw new JSONException("JSONArray[" + index + "] is not a JSONObject."); - } - - /** - * Get the long value associated with an index. - * - * @param index The index must be between 0 and length() - 1. - * @return The value. - * @throws JSONException If the key is not found or if the value cannot be converted - * to a number. - */ - public long getLong(int index) throws JSONException { - Object object = this.get(index); - try { - return object instanceof Number ? ((Number) object).longValue() : Long.parseLong((String) object); - } catch (Exception e) { - Iris.reportError(e); - throw new JSONException("JSONArray[" + index + "] is not a number."); - } - } - - /** - * Get the string associated with an index. - * - * @param index The index must be between 0 and length() - 1. - * @return A string value. - * @throws JSONException If there is no string value for the index. - */ - public String getString(int index) throws JSONException { - Object object = this.get(index); - if (object instanceof String) { - return (String) object; - } - throw new JSONException("JSONArray[" + index + "] not a string."); - } - - /** - * Determine if the value is null. - * - * @param index The index must be between 0 and length() - 1. - * @return true if the value at the index is null, or if there is no value. - */ - public boolean isNull(int index) { - return JSONObject.NULL.equals(this.opt(index)); - } - - /** - * Make a string from the contents of this JSONArray. The - * separator string is inserted between each element. Warning: - * This method assumes that the data structure is acyclical. - * - * @param separator A string that will be inserted between the elements. - * @return a string. - * @throws JSONException If the array contains an invalid number. - */ - public String join(String separator) throws JSONException { - int len = this.length(); - StringBuilder sb = new StringBuilder(); - - for (int i = 0; i < len; i += 1) { - if (i > 0) { - sb.append(separator); - } - sb.append(JSONObject.valueToString(this.myArrayList.get(i))); - } - return sb.toString(); - } - - /** - * Get the number of elements in the JSONArray, included nulls. - * - * @return The length (or size). - */ - public int length() { - return this.myArrayList.size(); - } - - /** - * Get the optional object value associated with an index. - * - * @param index The index must be between 0 and length() - 1. - * @return An object value, or null if there is no object at that index. - */ - public Object opt(int index) { - return (index < 0 || index >= this.length()) ? null : this.myArrayList.get(index); - } - - /** - * Get the optional boolean value associated with an index. It returns false - * if there is no value at that index, or if the value is not Boolean.TRUE - * or the String "true". - * - * @param index The index must be between 0 and length() - 1. - * @return The truth. - */ - public boolean optBoolean(int index) { - return this.optBoolean(index, false); - } - - /** - * Get the optional boolean value associated with an index. It returns the - * defaultValue if there is no value at that index or if it is not a Boolean - * or the String "true" or "false" (case insensitive). - * - * @param index The index must be between 0 and length() - 1. - * @param defaultValue A boolean default. - * @return The truth. - */ - public boolean optBoolean(int index, boolean defaultValue) { - try { - return this.getBoolean(index); - } catch (Exception e) { - Iris.reportError(e); - return defaultValue; - } - } - - /** - * Get the optional double value associated with an index. NaN is returned - * if there is no value for the index, or if the value is not a number and - * cannot be converted to a number. - * - * @param index The index must be between 0 and length() - 1. - * @return The value. - */ - public double optDouble(int index) { - return this.optDouble(index, Double.NaN); - } - - /** - * Get the optional double value associated with an index. The defaultValue - * is returned if there is no value for the index, or if the value is not a - * number and cannot be converted to a number. - * - * @param index subscript - * @param defaultValue The default value. - * @return The value. - */ - public double optDouble(int index, double defaultValue) { - try { - return this.getDouble(index); - } catch (Exception e) { - Iris.reportError(e); - return defaultValue; - } - } - - /** - * Get the optional int value associated with an index. Zero is returned if - * there is no value for the index, or if the value is not a number and - * cannot be converted to a number. - * - * @param index The index must be between 0 and length() - 1. - * @return The value. - */ - public int optInt(int index) { - return this.optInt(index, 0); - } - - /** - * Get the optional int value associated with an index. The defaultValue is - * returned if there is no value for the index, or if the value is not a - * number and cannot be converted to a number. - * - * @param index The index must be between 0 and length() - 1. - * @param defaultValue The default value. - * @return The value. - */ - public int optInt(int index, int defaultValue) { - try { - return this.getInt(index); - } catch (Exception e) { - Iris.reportError(e); - return defaultValue; - } - } - - /** - * Get the enum value associated with a key. - * - * @param clazz The type of enum to retrieve. - * @param index The index must be between 0 and length() - 1. - * @return The enum value at the index location or null if not found - */ - public > E optEnum(Class clazz, int index) { - return this.optEnum(clazz, index, null); - } - - /** - * Get the enum value associated with a key. - * - * @param clazz The type of enum to retrieve. - * @param index The index must be between 0 and length() - 1. - * @param defaultValue The default in case the value is not found - * @return The enum value at the index location or defaultValue if the value - * is not found or cannot be assigned to clazz - */ - public > E optEnum(Class clazz, int index, E defaultValue) { - try { - Object val = this.opt(index); - if (JSONObject.NULL.equals(val)) { - return defaultValue; - } - if (clazz.isAssignableFrom(val.getClass())) { - // we just checked it! - @SuppressWarnings("unchecked") - E myE = (E) val; - return myE; - } - return Enum.valueOf(clazz, val.toString()); - } catch (IllegalArgumentException e) { - Iris.reportError(e); - return defaultValue; - } catch (NullPointerException e) { - Iris.reportError(e); - return defaultValue; - } - } - - /** - * Get the optional BigInteger value associated with an index. The - * defaultValue is returned if there is no value for the index, or if the - * value is not a number and cannot be converted to a number. - * - * @param index The index must be between 0 and length() - 1. - * @param defaultValue The default value. - * @return The value. - */ - public BigInteger optBigInteger(int index, BigInteger defaultValue) { - try { - return this.getBigInteger(index); - } catch (Exception e) { - Iris.reportError(e); - return defaultValue; - } - } - - /** - * Get the optional BigDecimal value associated with an index. The - * defaultValue is returned if there is no value for the index, or if the - * value is not a number and cannot be converted to a number. - * - * @param index The index must be between 0 and length() - 1. - * @param defaultValue The default value. - * @return The value. - */ - public BigDecimal optBigDecimal(int index, BigDecimal defaultValue) { - try { - return this.getBigDecimal(index); - } catch (Exception e) { - Iris.reportError(e); - return defaultValue; - } - } - - /** - * Get the optional JSONArray associated with an index. - * - * @param index subscript - * @return A JSONArray value, or null if the index has no value, or if the - * value is not a JSONArray. - */ - public JSONArray optJSONArray(int index) { - Object o = this.opt(index); - return o instanceof JSONArray ? (JSONArray) o : null; - } - - /** - * Get the optional JSONObject associated with an index. Null is returned if - * the key is not found, or null if the index has no value, or if the value - * is not a JSONObject. - * - * @param index The index must be between 0 and length() - 1. - * @return A JSONObject value. - */ - public JSONObject optJSONObject(int index) { - Object o = this.opt(index); - return o instanceof JSONObject ? (JSONObject) o : null; - } - - /** - * Get the optional long value associated with an index. Zero is returned if - * there is no value for the index, or if the value is not a number and - * cannot be converted to a number. - * - * @param index The index must be between 0 and length() - 1. - * @return The value. - */ - public long optLong(int index) { - return this.optLong(index, 0); - } - - /** - * Get the optional long value associated with an index. The defaultValue is - * returned if there is no value for the index, or if the value is not a - * number and cannot be converted to a number. - * - * @param index The index must be between 0 and length() - 1. - * @param defaultValue The default value. - * @return The value. - */ - public long optLong(int index, long defaultValue) { - try { - return this.getLong(index); - } catch (Exception e) { - Iris.reportError(e); - return defaultValue; - } - } - - /** - * Get the optional string value associated with an index. It returns an - * empty string if there is no value at that index. If the value is not a - * string and is not null, then it is coverted to a string. - * - * @param index The index must be between 0 and length() - 1. - * @return A String value. - */ - public String optString(int index) { - return this.optString(index, ""); - } - - /** - * Get the optional string associated with an index. The defaultValue is - * returned if the key is not found. - * - * @param index The index must be between 0 and length() - 1. - * @param defaultValue The default value. - * @return A String value. - */ - public String optString(int index, String defaultValue) { - Object object = this.opt(index); - return JSONObject.NULL.equals(object) ? defaultValue : object.toString(); - } - - /** - * Append a boolean value. This increases the array's length by one. - * - * @param value A boolean value. - * @return this. - */ - public JSONArray put(boolean value) { - this.put(value ? Boolean.TRUE : Boolean.FALSE); - return this; - } - - /** - * Put a value in the JSONArray, where the value will be a JSONArray which - * is produced from a Collection. - * - * @param value A Collection value. - * @return this. - */ - public JSONArray put(Collection value) { - this.put(new JSONArray(value)); - return this; - } - - /** - * Append a double value. This increases the array's length by one. - * - * @param value A double value. - * @return this. - * @throws JSONException if the value is not finite. - */ - public JSONArray put(double value) throws JSONException { - Double d = Double.valueOf(value); - JSONObject.testValidity(d); - this.put(d); - return this; - } - - /** - * Append an int value. This increases the array's length by one. - * - * @param value An int value. - * @return this. - */ - public JSONArray put(int value) { - this.put(Integer.valueOf(value)); - return this; - } - - /** - * Append an long value. This increases the array's length by one. - * - * @param value A long value. - * @return this. - */ - public JSONArray put(long value) { - this.put(Long.valueOf(value)); - return this; - } - - /** - * Put a value in the JSONArray, where the value will be a JSONObject which - * is produced from a Map. - * - * @param value A Map value. - * @return this. - */ - public JSONArray put(Map value) { - this.put(new JSONObject(value)); - return this; - } - - /** - * Append an object value. This increases the array's length by one. - * - * @param value An object value. The value should be a Boolean, Double, - * Integer, JSONArray, JSONObject, Long, or String, or the - * JSONObject.NULL object. - * @return this. - */ - public JSONArray put(Object value) { - this.myArrayList.add(value); - return this; - } - - /** - * Put or replace a boolean value in the JSONArray. If the index is greater - * than the length of the JSONArray, then null elements will be added as - * necessary to pad it out. - * - * @param index The subscript. - * @param value A boolean value. - * @return this. - * @throws JSONException If the index is negative. - */ - public JSONArray put(int index, boolean value) throws JSONException { - this.put(index, value ? Boolean.TRUE : Boolean.FALSE); - return this; - } - - /** - * Put a value in the JSONArray, where the value will be a JSONArray which - * is produced from a Collection. - * - * @param index The subscript. - * @param value A Collection value. - * @return this. - * @throws JSONException If the index is negative or if the value is not finite. - */ - public JSONArray put(int index, Collection value) throws JSONException { - this.put(index, new JSONArray(value)); - return this; - } - - /** - * Put or replace a double value. If the index is greater than the length of - * the JSONArray, then null elements will be added as necessary to pad it - * out. - * - * @param index The subscript. - * @param value A double value. - * @return this. - * @throws JSONException If the index is negative or if the value is not finite. - */ - public JSONArray put(int index, double value) throws JSONException { - this.put(index, Double.valueOf(value)); - return this; - } - - /** - * Put or replace an int value. If the index is greater than the length of - * the JSONArray, then null elements will be added as necessary to pad it - * out. - * - * @param index The subscript. - * @param value An int value. - * @return this. - * @throws JSONException If the index is negative. - */ - public JSONArray put(int index, int value) throws JSONException { - this.put(index, Integer.valueOf(value)); - return this; - } - - /** - * Put or replace a long value. If the index is greater than the length of - * the JSONArray, then null elements will be added as necessary to pad it - * out. - * - * @param index The subscript. - * @param value A long value. - * @return this. - * @throws JSONException If the index is negative. - */ - public JSONArray put(int index, long value) throws JSONException { - this.put(index, Long.valueOf(value)); - return this; - } - - /** - * Put a value in the JSONArray, where the value will be a JSONObject that - * is produced from a Map. - * - * @param index The subscript. - * @param value The Map value. - * @return this. - * @throws JSONException If the index is negative or if the the value is an invalid - * number. - */ - public JSONArray put(int index, Map value) throws JSONException { - this.put(index, new JSONObject(value)); - return this; - } - - /** - * Put or replace an object value in the JSONArray. If the index is greater - * than the length of the JSONArray, then null elements will be added as - * necessary to pad it out. - * - * @param index The subscript. - * @param value The value to put into the array. The value should be a - * Boolean, Double, Integer, JSONArray, JSONObject, Long, or - * String, or the JSONObject.NULL object. - * @return this. - * @throws JSONException If the index is negative or if the the value is an invalid - * number. - */ - public JSONArray put(int index, Object value) throws JSONException { - JSONObject.testValidity(value); - if (index < 0) { - throw new JSONException("JSONArray[" + index + "] not found."); - } - if (index < this.length()) { - this.myArrayList.set(index, value); - } else { - while (index != this.length()) { - this.put(JSONObject.NULL); - } - this.put(value); - } - return this; - } - - /** - * Remove an index and close the hole. - * - * @param index The index of the element to be removed. - * @return The value that was associated with the index, or null if there - * was no value. - */ - public Object remove(int index) { - return index >= 0 && index < this.length() ? this.myArrayList.remove(index) : null; - } - - /** - * Determine if two JSONArrays are similar. They must contain similar - * sequences. - * - * @param other The other JSONArray - * @return true if they are equal - */ - @SuppressWarnings("BooleanMethodIsAlwaysInverted") - public boolean similar(Object other) { - if (!(other instanceof JSONArray)) { - return false; - } - int len = this.length(); - if (len != ((JSONArray) other).length()) { - return false; - } - for (int i = 0; i < len; i += 1) { - Object valueThis = this.get(i); - Object valueOther = ((JSONArray) other).get(i); - if (valueThis instanceof JSONObject) { - if (!((JSONObject) valueThis).similar(valueOther)) { - return false; - } - } else if (valueThis instanceof JSONArray) { - if (!((JSONArray) valueThis).similar(valueOther)) { - return false; - } - } else if (!valueThis.equals(valueOther)) { - return false; - } - } - return true; - } - - /** - * Produce a JSONObject by combining a JSONArray of names with the values of - * this JSONArray. - * - * @param names A JSONArray containing a list of key strings. These will be - * paired with the values. - * @return A JSONObject, or null if there are no names or if this JSONArray - * has no values. - * @throws JSONException If any of the names are null. - */ - public JSONObject toJSONObject(JSONArray names) throws JSONException { - if (names == null || names.length() == 0 || this.length() == 0) { - return null; - } - JSONObject jo = new JSONObject(); - for (int i = 0; i < names.length(); i += 1) { - jo.put(names.getString(i), this.opt(i)); - } - return jo; - } - - /** - * Make a JSON text of this JSONArray. For compactness, no unnecessary - * whitespace is added. If it is not possible to produce a syntactically - * correct JSON text then null will be returned instead. This could occur if - * the array contains an invalid number. - *

- * Warning: This method assumes that the data structure is acyclical. - * - * @return a printable, displayable, transmittable representation of the - * array. - */ - @Override - public String toString() { - try { - return this.toString(0); - } catch (Exception e) { - Iris.reportError(e); - return null; - } - } - - /** - * Make a prettyprinted JSON text of this JSONArray. Warning: This method - * assumes that the data structure is acyclical. - * - * @param indentFactor The number of spaces to add to each level of indentation. - * @return a printable, displayable, transmittable representation of the - * object, beginning with [ (left - * bracket) and ending with ]   - * (right bracket). - */ - public String toString(int indentFactor) throws JSONException { - StringWriter sw = new StringWriter(); - synchronized (sw.getBuffer()) { - return this.write(sw, indentFactor, 0).toString(); - } - } - - /** - * Write the contents of the JSONArray as JSON text to a writer. For - * compactness, no whitespace is added. - *

- * Warning: This method assumes that the data structure is acyclical. - * - * @return The writer. - */ - public Writer write(Writer writer) throws JSONException { - return this.write(writer, 0, 0); - } - - /** - * Write the contents of the JSONArray as JSON text to a writer. For - * compactness, no whitespace is added. - *

- * Warning: This method assumes that the data structure is acyclical. - * - * @param indentFactor The number of spaces to add to each level of indentation. - * @param indent The indention of the top level. - * @return The writer. - */ - Writer write(Writer writer, int indentFactor, int indent) throws JSONException { - try { - boolean commanate = false; - int length = this.length(); - writer.write('['); - - if (length == 1) { - JSONObject.writeValue(writer, this.myArrayList.get(0), indentFactor, indent); - } else if (length != 0) { - final int newindent = indent + indentFactor; - - for (int i = 0; i < length; i += 1) { - if (commanate) { - writer.write(','); - } - if (indentFactor > 0) { - writer.write('\n'); - } - JSONObject.indent(writer, newindent); - JSONObject.writeValue(writer, this.myArrayList.get(i), indentFactor, newindent); - commanate = true; - } - if (indentFactor > 0) { - writer.write('\n'); - } - JSONObject.indent(writer, indent); - } - writer.write(']'); - return writer; - } catch (IOException e) { - throw new JSONException(e); - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/json/JSONException.java b/core/src/main/java/com/volmit/iris/util/json/JSONException.java deleted file mode 100644 index 2f7f5ac8a..000000000 --- a/core/src/main/java/com/volmit/iris/util/json/JSONException.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 com.volmit.iris.util.json; - - -/** - * The JSONException is thrown by the JSON.org classes when things are amiss. - * - * @author JSON.org - * @version 2014-05-03 - */ -public class JSONException extends RuntimeException { - private static final long serialVersionUID = 0; - private Throwable cause; - - /** - * Constructs a JSONException with an explanatory message. - * - * @param message Detail about the reason for the exception. - */ - public JSONException(String message) { - super(message); - } - - /** - * Constructs a new JSONException with the specified cause. - * - * @param cause The cause. - */ - public JSONException(Throwable cause) { - super(cause.getMessage()); - this.cause = cause; - } - - /** - * Returns the cause of this exception or null if the cause is nonexistent - * or unknown. - * - * @return the cause of this exception or null if the cause is nonexistent - * or unknown. - */ - @Override - public Throwable getCause() { - return this.cause; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/json/JSONML.java b/core/src/main/java/com/volmit/iris/util/json/JSONML.java deleted file mode 100644 index 091f7d08b..000000000 --- a/core/src/main/java/com/volmit/iris/util/json/JSONML.java +++ /dev/null @@ -1,447 +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 com.volmit.iris.util.json; - - -import java.util.Iterator; - -/** - * This provides static methods to convert an XML text into a JSONArray or - * JSONObject, and to covert a JSONArray or JSONObject into an XML text using - * the JsonML transform. - * - * @author JSON.org - * @version 2014-05-03 - */ -public class JSONML { - - /** - * Parse XML values and store them in a JSONArray. - * - * @param x The XMLTokener containing the source string. - * @param arrayForm true if array form, false if object form. - * @param ja The JSONArray that is containing the current tag or null if we - * are at the outermost level. - * @return A JSONArray if the value is the outermost tag, otherwise null. - */ - private static Object parse(XMLTokener x, boolean arrayForm, JSONArray ja) throws JSONException { - String attribute; - char c; - String closeTag = null; - int i; - JSONArray newja = null; - JSONObject newjo = null; - Object token; - String tagName = null; - - // Test for and skip past these forms: - // - // - // - // - - while (true) { - if (!x.more()) { - throw x.syntaxError("Bad XML"); - } - token = x.nextContent(); - if (token == XML.LT) { - token = x.nextToken(); - if (token instanceof Character) { - if (token == XML.SLASH) { - - // Close tag "); - } else { - x.back(); - } - } else if (c == '[') { - token = x.nextToken(); - if (token.equals("CDATA") && x.next() == '[') { - if (ja != null) { - ja.put(x.nextCDATA()); - } - } else { - throw x.syntaxError("Expected 'CDATA['"); - } - } else { - i = 1; - do { - token = x.nextMeta(); - if (token == null) { - throw x.syntaxError("Missing '>' after ' 0); - } - } else if (token == XML.QUEST) { - - // "); - } else { - throw x.syntaxError("Misshaped tag"); - } - - // Open tag < - - } else { - if (!(token instanceof String)) { - throw x.syntaxError("Bad tagName '" + token + "'."); - } - tagName = (String) token; - newja = new JSONArray(); - newjo = new JSONObject(); - if (arrayForm) { - newja.put(tagName); - if (ja != null) { - ja.put(newja); - } - } else { - newjo.put("tagName", tagName); - if (ja != null) { - ja.put(newjo); - } - } - token = null; - for (; ; ) { - if (token == null) { - token = x.nextToken(); - } - if (token == null) { - throw x.syntaxError("Misshaped tag"); - } - if (!(token instanceof String)) { - break; - } - - // attribute = value - - attribute = (String) token; - if (!arrayForm && ("tagName".equals(attribute) || "childNode".equals(attribute))) { - throw x.syntaxError("Reserved attribute."); - } - token = x.nextToken(); - if (token == XML.EQ) { - token = x.nextToken(); - if (!(token instanceof String)) { - throw x.syntaxError("Missing value"); - } - newjo.accumulate(attribute, XML.stringToValue((String) token)); - token = null; - } else { - newjo.accumulate(attribute, ""); - } - } - if (arrayForm && newjo.length() > 0) { - newja.put(newjo); - } - - // Empty tag <.../> - - if (token == XML.SLASH) { - if (x.nextToken() != XML.GT) { - throw x.syntaxError("Misshaped tag"); - } - if (ja == null) { - if (arrayForm) { - return newja; - } else { - return newjo; - } - } - - // Content, between <...> and - - } else { - if (token != XML.GT) { - throw x.syntaxError("Misshaped tag"); - } - closeTag = (String) parse(x, arrayForm, newja); - if (closeTag != null) { - if (!closeTag.equals(tagName)) { - throw x.syntaxError("Mismatched '" + tagName + "' and '" + closeTag + "'"); - } - tagName = null; - if (!arrayForm && newja.length() > 0) { - newjo.put("childNodes", newja); - } - if (ja == null) { - if (arrayForm) { - return newja; - } else { - return newjo; - } - } - } - } - } - } else { - if (ja != null) { - ja.put(token instanceof String ? XML.stringToValue((String) token) : token); - } - } - } - } - - /** - * Convert a well-formed (but not necessarily valid) XML string into a - * JSONArray using the JsonML transform. Each XML tag is represented as a - * JSONArray in which the first element is the tag name. If the tag has - * attributes, then the second element will be JSONObject containing the - * name/value pairs. If the tag contains children, then strings and - * JSONArrays will represent the child tags. Comments, prologs, DTDs, and - * <[ [ ]]> are ignored. - * - * @param string The source string. - * @return A JSONArray containing the structured data from the XML string. - */ - public static JSONArray toJSONArray(String string) throws JSONException { - return toJSONArray(new XMLTokener(string)); - } - - /** - * Convert a well-formed (but not necessarily valid) XML string into a - * JSONArray using the JsonML transform. Each XML tag is represented as a - * JSONArray in which the first element is the tag name. If the tag has - * attributes, then the second element will be JSONObject containing the - * name/value pairs. If the tag contains children, then strings and - * JSONArrays will represent the child content and tags. Comments, prologs, - * DTDs, and <[ [ ]]> are ignored. - * - * @param x An XMLTokener. - * @return A JSONArray containing the structured data from the XML string. - */ - public static JSONArray toJSONArray(XMLTokener x) throws JSONException { - return (JSONArray) parse(x, true, null); - } - - /** - * Convert a well-formed (but not necessarily valid) XML string into a - * JSONObject using the JsonML transform. Each XML tag is represented as a - * JSONObject with a "tagName" property. If the tag has attributes, then the - * attributes will be in the JSONObject as properties. If the tag contains - * children, the object will have a "childNodes" property which will be an - * array of strings and JsonML JSONObjects. - *

- * Comments, prologs, DTDs, and <[ [ ]]> are ignored. - * - * @param x An XMLTokener of the XML source text. - * @return A JSONObject containing the structured data from the XML string. - */ - public static JSONObject toJSONObject(XMLTokener x) throws JSONException { - return (JSONObject) parse(x, false, null); - } - - /** - * Convert a well-formed (but not necessarily valid) XML string into a - * JSONObject using the JsonML transform. Each XML tag is represented as a - * JSONObject with a "tagName" property. If the tag has attributes, then the - * attributes will be in the JSONObject as properties. If the tag contains - * children, the object will have a "childNodes" property which will be an - * array of strings and JsonML JSONObjects. - *

- * Comments, prologs, DTDs, and <[ [ ]]> are ignored. - * - * @param string The XML source text. - * @return A JSONObject containing the structured data from the XML string. - */ - public static JSONObject toJSONObject(String string) throws JSONException { - return toJSONObject(new XMLTokener(string)); - } - - /** - * Reverse the JSONML transformation, making an XML text from a JSONArray. - * - * @param ja A JSONArray. - * @return An XML string. - */ - public static String toString(JSONArray ja) throws JSONException { - int i; - JSONObject jo; - String key; - Iterator keys; - int length; - Object object; - StringBuilder sb = new StringBuilder(); - String tagName; - String value; - - // Emit = length) { - sb.append('/'); - } else { - sb.append('>'); - do { - object = ja.get(i); - i += 1; - if (object != null) { - if (object instanceof String) { - sb.append(XML.escape(object.toString())); - } else if (object instanceof JSONObject) { - sb.append(toString((JSONObject) object)); - } else if (object instanceof JSONArray) { - sb.append(toString((JSONArray) object)); - } else { - sb.append(object); - } - } - } while (i < length); - sb.append('<'); - sb.append('/'); - sb.append(tagName); - } - sb.append('>'); - return sb.toString(); - } - - /** - * Reverse the JSONML transformation, making an XML text from a JSONObject. - * The JSONObject must contain a "tagName" property. If it has children, - * then it must have a "childNodes" property containing an array of objects. - * The other properties are attributes with string values. - * - * @param jo A JSONObject. - * @return An XML string. - */ - public static String toString(JSONObject jo) throws JSONException { - StringBuilder sb = new StringBuilder(); - int i; - JSONArray ja; - String key; - Iterator keys; - int length; - Object object; - String tagName; - String value; - - // Emit '); - length = ja.length(); - for (i = 0; i < length; i += 1) { - object = ja.get(i); - if (object != null) { - if (object instanceof String) { - sb.append(XML.escape(object.toString())); - } else if (object instanceof JSONObject) { - sb.append(toString((JSONObject) object)); - } else if (object instanceof JSONArray) { - sb.append(toString((JSONArray) object)); - } else { - sb.append(object); - } - } - } - sb.append('<'); - sb.append('/'); - sb.append(tagName); - } - sb.append('>'); - return sb.toString(); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/json/JSONObject.java b/core/src/main/java/com/volmit/iris/util/json/JSONObject.java deleted file mode 100644 index 05aa7f2bb..000000000 --- a/core/src/main/java/com/volmit/iris/util/json/JSONObject.java +++ /dev/null @@ -1,1697 +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 com.volmit.iris.util.json; - -import com.volmit.iris.Iris; - -import java.io.IOException; -import java.io.StringWriter; -import java.io.Writer; -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.lang.reflect.Modifier; -import java.math.BigDecimal; -import java.math.BigInteger; -import java.util.*; -import java.util.Map.Entry; - -/** - * A JSONObject is an unordered collection of name/value pairs. Its external - * form is a string wrapped in curly braces with colons between the names and - * values, and commas between the values and names. The internal form is an - * object having get and opt methods for accessing the - * values by name, and put methods for adding or replacing values - * by name. The values can be any of these types: Boolean, - * JSONArray, JSONObject, Number, - * String, or the JSONObject.NULL object. A JSONObject - * constructor can be used to convert an external form JSON text into an - * internal form whose values can be retrieved with the get and - * opt methods, or to convert values into a JSON text using the - * put and toString methods. A get method - * returns a value if one can be found, and throws an exception if one cannot be - * found. An opt method returns a default value instead of throwing - * an exception, and so is useful for obtaining optional values. - *

- * The generic get() and opt() methods return an - * object, which you can cast or query for type. There are also typed - * get and opt methods that do type checking and type - * coercion for you. The opt methods differ from the get methods in that they do - * not throw. Instead, they return a specified value, such as null. - *

- * The put methods add or replace values in an object. For example, - * - *

- * myString = new JSONObject().put("JSON", "Hello, World!").toString();
- * 
- *

- * produces the string {"JSON": "Hello, World"}. - *

- * The texts produced by the toString methods strictly conform to - * the JSON syntax rules. The constructors are more forgiving in the texts they - * will accept: - *

    - *
  • An extra , (comma) may appear just - * before the closing brace.
  • - *
  • Strings may be quoted with ' (single - * quote).
  • - *
  • Strings do not need to be quoted at all if they do not begin with a quote - * or single quote, and if they do not contain leading or trailing spaces, and - * if they do not contain any of these characters: - * { } [ ] / \ : , # and if they do not look like numbers and if - * they are not the reserved words true, false, or - * null.
  • - *
- * - * @author JSON.org - * @version 2015-07-22 - */ -@SuppressWarnings("ALL") -public class JSONObject { - /** - * It is sometimes more convenient and less ambiguous to have a - * NULL object than to use Java's null value. - * JSONObject.NULL.equals(null) returns true. - * JSONObject.NULL.toString() returns "null". - */ - public static final Object NULL = new Null(); - /** - * The map where the JSONObject's properties are kept. - */ - private final LinkedHashMap map; - - /** - * Construct an empty JSONObject. - */ - public JSONObject() { - this.map = new LinkedHashMap<>(); - } - - /** - * Construct a JSONObject from a subset of another JSONObject. An array of - * strings is used to identify the keys that should be copied. Missing keys - * are ignored. - * - * @param jo A JSONObject. - * @param names An array of strings. - * @throws JSONException If a value is a non-finite number or if a name is - * duplicated. - */ - public JSONObject(JSONObject jo, String[] names) { - this(); - for (int i = 0; i < names.length; i += 1) { - try { - this.putOnce(names[i], jo.opt(names[i])); - } catch (Exception e) { - Iris.reportError(e); - } - } - } - - /** - * Construct a JSONObject from a JSONTokener. - * - * @param x A JSONTokener object containing the source string. - * @throws JSONException If there is a syntax error in the source string or a - * duplicated key. - */ - public JSONObject(JSONTokener x) throws JSONException { - this(); - char c; - String key; - - if (x.nextClean() != '{') { - throw x.syntaxError("A JSONObject text must begin with '{'"); - } - for (; ; ) { - c = x.nextClean(); - switch (c) { - case 0: - throw x.syntaxError("A JSONObject text must end with '}'"); - case '}': - return; - default: - x.back(); - key = x.nextValue().toString(); - } - - // The key is followed by ':'. - - c = x.nextClean(); - if (c != ':') { - throw x.syntaxError("Expected a ':' after a key"); - } - this.putOnce(key, x.nextValue()); - - // Pairs are separated by ','. - - switch (x.nextClean()) { - case ';': - case ',': - if (x.nextClean() == '}') { - return; - } - x.back(); - break; - case '}': - return; - default: - throw x.syntaxError("Expected a ',' or '}'"); - } - } - } - - /** - * Construct a JSONObject from a Map. - * - * @param map A map object that can be used to initialize the contents of - * the JSONObject. - */ - public JSONObject(Map map) { - this.map = new LinkedHashMap<>(); - if (map != null) { - Iterator> i = map.entrySet().iterator(); - while (i.hasNext()) { - Entry entry = i.next(); - Object value = entry.getValue(); - if (value != null) { - this.map.put(entry.getKey(), wrap(value)); - } - } - } - } - - /** - * Construct a JSONObject from an Object using bean getters. It reflects on - * all of the public methods of the object. For each of the methods with no - * parameters and a name starting with "get" or - * "is" followed by an uppercase letter, the method is invoked, - * and a key and the value returned from the getter method are put into the - * new JSONObject. - *

- * The key is formed by removing the "get" or "is" - * prefix. If the second remaining character is not upper case, then the - * first character is converted to lower case. - *

- * For example, if an object has a method named "getName", and - * if the result of calling object.getName() is - * "Larry Fine", then the JSONObject will contain - * "name": "Larry Fine". - * - * @param bean An object that has getter methods that should be used to make - * a JSONObject. - */ - public JSONObject(Object bean) { - this(); - this.populateMap(bean); - } - - /** - * Construct a JSONObject from an Object, using reflection to find the - * public members. The resulting JSONObject's keys will be the strings from - * the names array, and the values will be the field values associated with - * those keys in the object. If a key is not found or not visible, then it - * will not be copied into the new JSONObject. - * - * @param object An object that has fields that should be used to make a - * JSONObject. - * @param names An array of strings, the names of the fields to be obtained - * from the object. - */ - public JSONObject(Object object, String[] names) { - this(); - Class c = object.getClass(); - for (int i = 0; i < names.length; i += 1) { - String name = names[i]; - try { - this.putOpt(name, c.getField(name).get(object)); - } catch (Exception e) { - Iris.reportError(e); - } - } - } - - /** - * Construct a JSONObject from a source JSON text string. This is the most - * commonly used JSONObject constructor. - * - * @param source A string beginning with { (left - * brace) and ending with }   - * (right brace). - * @throws JSONException If there is a syntax error in the source string or a - * duplicated key. - */ - public JSONObject(String source) throws JSONException { - this(new JSONTokener(source)); - } - - /** - * Construct a JSONObject from a ResourceBundle. - * - * @param baseName The ResourceBundle base name. - * @param locale The Locale to load the ResourceBundle for. - * @throws JSONException If any JSONExceptions are detected. - */ - public JSONObject(String baseName, Locale locale) throws JSONException { - this(); - ResourceBundle bundle = ResourceBundle.getBundle(baseName, locale, Thread.currentThread().getContextClassLoader()); - - // Iterate through the keys in the bundle. - - Enumeration keys = bundle.getKeys(); - while (keys.hasMoreElements()) { - Object key = keys.nextElement(); - if (key != null) { - - // Go through the path, ensuring that there is a nested - // JSONObject for each - // segment except the last. Add the value using the last - // segment's name into - // the deepest nested JSONObject. - - String[] path = ((String) key).split("\\."); - int last = path.length - 1; - JSONObject target = this; - for (int i = 0; i < last; i += 1) { - String segment = path[i]; - JSONObject nextTarget = target.optJSONObject(segment); - if (nextTarget == null) { - nextTarget = new JSONObject(); - target.put(segment, nextTarget); - } - target = nextTarget; - } - target.put(path[last], bundle.getString((String) key)); - } - } - } - - /** - * Produce a string from a double. The string "null" will be returned if the - * number is not finite. - * - * @param d A double. - * @return A String. - */ - public static String doubleToString(double d) { - if (Double.isInfinite(d) || Double.isNaN(d)) { - return "null"; - } - - // Shave off trailing zeros and decimal point, if possible. - - String string = Double.toString(d); - if (string.indexOf('.') > 0 && string.indexOf('e') < 0 && string.indexOf('E') < 0) { - while (string.endsWith("0")) { - string = string.substring(0, string.length() - 1); - } - if (string.endsWith(".")) { - string = string.substring(0, string.length() - 1); - } - } - return string; - } - - /** - * Get an array of field names from a JSONObject. - * - * @return An array of field names, or null if there are no names. - */ - public static String[] getNames(JSONObject jo) { - int length = jo.length(); - if (length == 0) { - return null; - } - Iterator iterator = jo.keys(); - String[] names = new String[length]; - int i = 0; - while (iterator.hasNext()) { - names[i] = iterator.next(); - i += 1; - } - return names; - } - - /** - * Get an array of field names from an Object. - * - * @return An array of field names, or null if there are no names. - */ - public static String[] getNames(Object object) { - if (object == null) { - return null; - } - Class klass = object.getClass(); - Field[] fields = klass.getFields(); - int length = fields.length; - if (length == 0) { - return null; - } - String[] names = new String[length]; - for (int i = 0; i < length; i += 1) { - names[i] = fields[i].getName(); - } - return names; - } - - /** - * Produce a string from a Number. - * - * @param number A Number - * @return A String. - * @throws JSONException If n is a non-finite number. - */ - public static String numberToString(Number number) throws JSONException { - if (number == null) { - throw new JSONException("Null pointer"); - } - testValidity(number); - - // Shave off trailing zeros and decimal point, if possible. - - String string = number.toString(); - if (string.indexOf('.') > 0 && string.indexOf('e') < 0 && string.indexOf('E') < 0) { - while (string.endsWith("0")) { - string = string.substring(0, string.length() - 1); - } - if (string.endsWith(".")) { - string = string.substring(0, string.length() - 1); - } - } - return string; - } - - /** - * Produce a string in double quotes with backslash sequences in all the - * right places. A backslash will be inserted within = '\u0080' && c < '\u00a0') || (c >= '\u2000' && c < '\u2100')) { - w.write("\\u"); - hhhh = Integer.toHexString(c); - w.write("0000", 0, 4 - hhhh.length()); - w.write(hhhh); - } else { - w.write(c); - } - } - } - w.write('"'); - return w; - } - - /** - * Try to convert a string into a number, boolean, or null. If the string - * can't be converted, return the string. - * - * @param string A String. - * @return A simple JSON value. - */ - public static Object stringToValue(String string) { - Double d; - if (string.equals("")) { - return string; - } - if (string.equalsIgnoreCase("true")) { - return Boolean.TRUE; - } - if (string.equalsIgnoreCase("false")) { - return Boolean.FALSE; - } - if (string.equalsIgnoreCase("null")) { - return JSONObject.NULL; - } - - /* - * If it might be a number, try converting it. If a number cannot be - * produced, then the value will just be a string. - */ - - char b = string.charAt(0); - if ((b >= '0' && b <= '9') || b == '-') { - try { - if (string.indexOf('.') > -1 || string.indexOf('e') > -1 || string.indexOf('E') > -1) { - d = Double.valueOf(string); - if (!d.isInfinite() && !d.isNaN()) { - return d; - } - } else { - Long myLong = Long.valueOf(string); - if (string.equals(myLong.toString())) { - if (myLong == myLong.intValue()) { - return myLong.intValue(); - } else { - return myLong; - } - } - } - } catch (Exception e) { - Iris.reportError(e); - } - } - return string; - } - - /** - * Throw an exception if the object is a NaN or infinite number. - * - * @param o The object to test. - * @throws JSONException If o is a non-finite number. - */ - public static void testValidity(Object o) throws JSONException { - if (o != null) { - if (o instanceof Double) { - if (((Double) o).isInfinite() || ((Double) o).isNaN()) { - throw new JSONException("JSON does not allow non-finite numbers."); - } - } else if (o instanceof Float) { - if (((Float) o).isInfinite() || ((Float) o).isNaN()) { - throw new JSONException("JSON does not allow non-finite numbers."); - } - } - } - } - - /** - * Make a JSON text of an Object value. If the object has an - * value.toJSONString() method, then that method will be used to produce the - * JSON text. The method is required to produce a strictly conforming text. - * If the object does not contain a toJSONString method (which is the most - * common case), then a text will be produced by other means. If the value - * is an array or Collection, then a JSONArray will be made from it and its - * toJSONString method will be called. If the value is a MAP, then a - * JSONObject will be made from it and its toJSONString method will be - * called. Otherwise, the value's toString method will be called, and the - * result will be quoted. - * - *

- * Warning: This method assumes that the data structure is acyclical. - * - * @param value The value to be serialized. - * @return a printable, displayable, transmittable representation of the - * object, beginning with { (left - * brace) and ending with } (right - * brace). - * @throws JSONException If the value is or contains an invalid number. - */ - public static String valueToString(Object value) throws JSONException { - if (value == null || value.equals(null)) { - return "null"; - } - if (value instanceof JSONString) { - Object object; - try { - object = ((JSONString) value).toJSONString(); - } catch (Exception e) { - Iris.reportError(e); - throw new JSONException(e); - } - if (object instanceof String) { - return (String) object; - } - throw new JSONException("Bad value from toJSONString: " + object); - } - if (value instanceof Number) { - return numberToString((Number) value); - } - if (value instanceof Boolean || value instanceof JSONObject || value instanceof JSONArray) { - return value.toString(); - } - if (value instanceof Map) { - @SuppressWarnings("unchecked") - Map map = (Map) value; - return new JSONObject(map).toString(); - } - if (value instanceof Collection) { - @SuppressWarnings("unchecked") - Collection coll = (Collection) value; - return new JSONArray(coll).toString(); - } - if (value.getClass().isArray()) { - return new JSONArray(value).toString(); - } - return quote(value.toString()); - } - - /** - * Wrap an object, if necessary. If the object is null, return the NULL - * object. If it is an array or collection, wrap it in a JSONArray. If it is - * a map, wrap it in a JSONObject. If it is a standard property (Double, - * String, et al) then it is already wrapped. Otherwise, if it comes from - * one of the java packages, turn it into a string. And if it doesn't, try - * to wrap it in a JSONObject. If the wrapping fails, then null is returned. - * - * @param object The object to wrap - * @return The wrapped value - */ - public static Object wrap(Object object) { - try { - if (object == null) { - return NULL; - } - if (object instanceof JSONObject || object instanceof JSONArray || NULL.equals(object) || object instanceof JSONString || object instanceof Byte || object instanceof Character || object instanceof Short || object instanceof Integer || object instanceof Long || object instanceof Boolean || object instanceof Float || object instanceof Double || object instanceof String || object instanceof BigInteger || object instanceof BigDecimal) { - return object; - } - - if (object instanceof Collection) { - @SuppressWarnings("unchecked") - Collection coll = (Collection) object; - return new JSONArray(coll); - } - if (object.getClass().isArray()) { - return new JSONArray(object); - } - if (object instanceof Map) { - @SuppressWarnings("unchecked") - Map map = (Map) object; - return new JSONObject(map); - } - Package objectPackage = object.getClass().getPackage(); - String objectPackageName = objectPackage != null ? objectPackage.getName() : ""; - if (objectPackageName.startsWith("java.") || objectPackageName.startsWith("javax.") || object.getClass().getClassLoader() == null) { - return object.toString(); - } - return new JSONObject(object); - } catch (Exception e) { - Iris.reportError(e); - return null; - } - } - - static final Writer writeValue(Writer writer, Object value, int indentFactor, int indent) throws JSONException, IOException { - if (value == null || value.equals(null)) { - writer.write("null"); - } else if (value instanceof JSONObject) { - ((JSONObject) value).write(writer, indentFactor, indent); - } else if (value instanceof JSONArray) { - ((JSONArray) value).write(writer, indentFactor, indent); - } else if (value instanceof Map) { - @SuppressWarnings("unchecked") - Map map = (Map) value; - new JSONObject(map).write(writer, indentFactor, indent); - } else if (value instanceof Collection) { - @SuppressWarnings("unchecked") - Collection coll = (Collection) value; - new JSONArray(coll).write(writer, indentFactor, indent); - } else if (value.getClass().isArray()) { - new JSONArray(value).write(writer, indentFactor, indent); - } else if (value instanceof Number) { - writer.write(numberToString((Number) value)); - } else if (value instanceof Boolean) { - writer.write(value.toString()); - } else if (value instanceof JSONString) { - Object o; - try { - o = ((JSONString) value).toJSONString(); - } catch (Exception e) { - Iris.reportError(e); - throw new JSONException(e); - } - writer.write(o != null ? o.toString() : quote(value.toString())); - } else { - quote(value.toString(), writer); - } - return writer; - } - - static final void indent(Writer writer, int indent) throws IOException { - for (int i = 0; i < indent; i += 1) { - writer.write(' '); - } - } - - /** - * Accumulate values under a key. It is similar to the put method except - * that if there is already an object stored under the key then a JSONArray - * is stored under the key to hold all of the accumulated values. If there - * is already a JSONArray, then the new value is appended to it. In - * contrast, the put method replaces the previous value. - *

- * If only one value is accumulated that is not a JSONArray, then the result - * will be the same as using put. But if multiple values are accumulated, - * then the result will be like append. - * - * @param key A key string. - * @param value An object to be accumulated under the key. - * @return this. - * @throws JSONException If the value is an invalid number or if the key is null. - */ - public JSONObject accumulate(String key, Object value) throws JSONException { - testValidity(value); - Object object = this.opt(key); - if (object == null) { - this.put(key, value instanceof JSONArray ? new JSONArray().put(value) : value); - } else if (object instanceof JSONArray) { - ((JSONArray) object).put(value); - } else { - this.put(key, new JSONArray().put(object).put(value)); - } - return this; - } - - /** - * Append values to the array under a key. If the key does not exist in the - * JSONObject, then the key is put in the JSONObject with its value being a - * JSONArray containing the value parameter. If the key was already - * associated with a JSONArray, then the value parameter is appended to it. - * - * @param key A key string. - * @param value An object to be accumulated under the key. - * @return this. - * @throws JSONException If the key is null or if the current value associated with - * the key is not a JSONArray. - */ - public JSONObject append(String key, Object value) throws JSONException { - testValidity(value); - Object object = this.opt(key); - if (object == null) { - this.put(key, new JSONArray().put(value)); - } else if (object instanceof JSONArray) { - this.put(key, ((JSONArray) object).put(value)); - } else { - throw new JSONException("JSONObject[" + key + "] is not a JSONArray."); - } - return this; - } - - /** - * Get the value object associated with a key. - * - * @param key A key string. - * @return The object associated with the key. - * @throws JSONException if the key is not found. - */ - public Object get(String key) throws JSONException { - if (key == null) { - throw new JSONException("Null key."); - } - Object object = this.opt(key); - if (object == null) { - throw new JSONException("JSONObject[" + quote(key) + "] not found."); - } - return object; - } - - /** - * Get the enum value associated with a key. - * - * @param clazz The type of enum to retrieve. - * @param key A key string. - * @return The enum value associated with the key - * @throws JSONException if the key is not found or if the value cannot be converted - * to an enum. - */ - public > E getEnum(Class clazz, String key) throws JSONException { - E val = optEnum(clazz, key); - if (val == null) { - // JSONException should really take a throwable argument. - // If it did, I would re-implement this with the Enum.valueOf - // method and place any thrown exception in the JSONException - throw new JSONException("JSONObject[" + quote(key) + "] is not an enum of type " + quote(clazz.getSimpleName()) + "."); - } - return val; - } - - /** - * Get the boolean value associated with a key. - * - * @param key A key string. - * @return The truth. - * @throws JSONException if the value is not a Boolean or the String "true" or - * "false". - */ - public boolean getBoolean(String key) throws JSONException { - Object object = this.get(key); - if (object.equals(Boolean.FALSE) || (object instanceof String && ((String) object).equalsIgnoreCase("false"))) { - return false; - } else if (object.equals(Boolean.TRUE) || (object instanceof String && ((String) object).equalsIgnoreCase("true"))) { - return true; - } - throw new JSONException("JSONObject[" + quote(key) + "] is not a Boolean."); - } - - /** - * Get the BigInteger value associated with a key. - * - * @param key A key string. - * @return The numeric value. - * @throws JSONException if the key is not found or if the value cannot be converted - * to BigInteger. - */ - public BigInteger getBigInteger(String key) throws JSONException { - Object object = this.get(key); - try { - return new BigInteger(object.toString()); - } catch (Exception e) { - Iris.reportError(e); - throw new JSONException("JSONObject[" + quote(key) + "] could not be converted to BigInteger."); - } - } - - /** - * Get the BigDecimal value associated with a key. - * - * @param key A key string. - * @return The numeric value. - * @throws JSONException if the key is not found or if the value cannot be converted - * to BigDecimal. - */ - public BigDecimal getBigDecimal(String key) throws JSONException { - Object object = this.get(key); - try { - return new BigDecimal(object.toString()); - } catch (Exception e) { - Iris.reportError(e); - throw new JSONException("JSONObject[" + quote(key) + "] could not be converted to BigDecimal."); - } - } - - /** - * Get the double value associated with a key. - * - * @param key A key string. - * @return The numeric value. - * @throws JSONException if the key is not found or if the value is not a Number - * object and cannot be converted to a number. - */ - public double getDouble(String key) throws JSONException { - Object object = this.get(key); - try { - return object instanceof Number ? ((Number) object).doubleValue() : Double.parseDouble((String) object); - } catch (Exception e) { - Iris.reportError(e); - throw new JSONException("JSONObject[" + quote(key) + "] is not a number."); - } - } - - /** - * Get the int value associated with a key. - * - * @param key A key string. - * @return The integer value. - * @throws JSONException if the key is not found or if the value cannot be converted - * to an integer. - */ - public int getInt(String key) throws JSONException { - Object object = this.get(key); - try { - return object instanceof Number ? ((Number) object).intValue() : Integer.parseInt((String) object); - } catch (Exception e) { - Iris.reportError(e); - throw new JSONException("JSONObject[" + quote(key) + "] is not an int."); - } - } - - /** - * Get the JSONArray value associated with a key. - * - * @param key A key string. - * @return A JSONArray which is the value. - * @throws JSONException if the key is not found or if the value is not a JSONArray. - */ - public JSONArray getJSONArray(String key) throws JSONException { - Object object = this.get(key); - if (object instanceof JSONArray) { - return (JSONArray) object; - } - throw new JSONException("JSONObject[" + quote(key) + "] is not a JSONArray."); - } - - /** - * Get the JSONObject value associated with a key. - * - * @param key A key string. - * @return A JSONObject which is the value. - * @throws JSONException if the key is not found or if the value is not a JSONObject. - */ - public JSONObject getJSONObject(String key) throws JSONException { - Object object = this.get(key); - if (object instanceof JSONObject) { - return (JSONObject) object; - } - throw new JSONException("JSONObject[" + quote(key) + "] is not a JSONObject."); - } - - /** - * Get the long value associated with a key. - * - * @param key A key string. - * @return The long value. - * @throws JSONException if the key is not found or if the value cannot be converted - * to a long. - */ - public long getLong(String key) throws JSONException { - Object object = this.get(key); - try { - return object instanceof Number ? ((Number) object).longValue() : Long.parseLong((String) object); - } catch (Exception e) { - Iris.reportError(e); - throw new JSONException("JSONObject[" + quote(key) + "] is not a long."); - } - } - - /** - * Get the string associated with a key. - * - * @param key A key string. - * @return A string which is the value. - * @throws JSONException if there is no string value for the key. - */ - public String getString(String key) throws JSONException { - Object object = this.get(key); - if (object instanceof String) { - return (String) object; - } - throw new JSONException("JSONObject[" + quote(key) + "] not a string."); - } - - /** - * Determine if the JSONObject contains a specific key. - * - * @param key A key string. - * @return true if the key exists in the JSONObject. - */ - public boolean has(String key) { - return this.map.containsKey(key); - } - - /** - * Increment a property of a JSONObject. If there is no such property, - * create one with a value of 1. If there is such a property, and if it is - * an Integer, Long, Double, or Float, then add one to it. - * - * @param key A key string. - * @return this. - * @throws JSONException If there is already a property with this name that is not an - * Integer, Long, Double, or Float. - */ - public JSONObject increment(String key) throws JSONException { - Object value = this.opt(key); - if (value == null) { - this.put(key, 1); - } else if (value instanceof BigInteger) { - this.put(key, ((BigInteger) value).add(BigInteger.ONE)); - } else if (value instanceof BigDecimal) { - this.put(key, ((BigDecimal) value).add(BigDecimal.ONE)); - } else if (value instanceof Integer) { - this.put(key, (Integer) value + 1); - } else if (value instanceof Long) { - this.put(key, (Long) value + 1); - } else if (value instanceof Double) { - this.put(key, (Double) value + 1); - } else if (value instanceof Float) { - this.put(key, (Float) value + 1); - } else { - throw new JSONException("Unable to increment [" + quote(key) + "]."); - } - return this; - } - - /** - * Determine if the value associated with the key is null or if there is no - * value. - * - * @param key A key string. - * @return true if there is no value associated with the key or if the value - * is the JSONObject.NULL object. - */ - public boolean isNull(String key) { - return JSONObject.NULL.equals(this.opt(key)); - } - - /** - * Get an enumeration of the keys of the JSONObject. - * - * @return An iterator of the keys. - */ - public Iterator keys() { - return this.keySet().iterator(); - } - - /** - * Get a set of keys of the JSONObject. - * - * @return A keySet. - */ - public Set keySet() { - return this.map.keySet(); - } - - /** - * Get the number of keys stored in the JSONObject. - * - * @return The number of keys in the JSONObject. - */ - public int length() { - return this.map.size(); - } - - /** - * Produce a JSONArray containing the names of the elements of this - * JSONObject. - * - * @return A JSONArray containing the key strings, or null if the JSONObject - * is empty. - */ - public JSONArray names() { - JSONArray ja = new JSONArray(); - Iterator keys = this.keys(); - while (keys.hasNext()) { - ja.put(keys.next()); - } - return ja.length() == 0 ? null : ja; - } - - /** - * Get an optional value associated with a key. - * - * @param key A key string. - * @return An object which is the value, or null if there is no value. - */ - public Object opt(String key) { - return key == null ? null : this.map.get(key); - } - - /** - * Get the enum value associated with a key. - * - * @param clazz The type of enum to retrieve. - * @param key A key string. - * @return The enum value associated with the key or null if not found - */ - public > E optEnum(Class clazz, String key) { - return this.optEnum(clazz, key, null); - } - - /** - * Get the enum value associated with a key. - * - * @param clazz The type of enum to retrieve. - * @param key A key string. - * @param defaultValue The default in case the value is not found - * @return The enum value associated with the key or defaultValue if the - * value is not found or cannot be assigned to clazz - */ - public > E optEnum(Class clazz, String key, E defaultValue) { - try { - Object val = this.opt(key); - if (NULL.equals(val)) { - return defaultValue; - } - if (clazz.isAssignableFrom(val.getClass())) { - // we just checked it! - @SuppressWarnings("unchecked") - E myE = (E) val; - return myE; - } - return Enum.valueOf(clazz, val.toString()); - } catch (IllegalArgumentException e) { - Iris.reportError(e); - return defaultValue; - } catch (NullPointerException e) { - Iris.reportError(e); - return defaultValue; - } - } - - /** - * Get an optional boolean associated with a key. It returns false if there - * is no such key, or if the value is not Boolean.TRUE or the String "true". - * - * @param key A key string. - * @return The truth. - */ - public boolean optBoolean(String key) { - return this.optBoolean(key, false); - } - - /** - * Get an optional boolean associated with a key. It returns the - * defaultValue if there is no such key, or if it is not a Boolean or the - * String "true" or "false" (case insensitive). - * - * @param key A key string. - * @param defaultValue The default. - * @return The truth. - */ - public boolean optBoolean(String key, boolean defaultValue) { - try { - return this.getBoolean(key); - } catch (Exception e) { - Iris.reportError(e); - return defaultValue; - } - } - - /** - * Get an optional double associated with a key, or NaN if there is no such - * key or if its value is not a number. If the value is a string, an attempt - * will be made to evaluate it as a number. - * - * @param key A string which is the key. - * @return An object which is the value. - */ - public double optDouble(String key) { - return this.optDouble(key, Double.NaN); - } - - /** - * Get an optional BigInteger associated with a key, or the defaultValue if - * there is no such key or if its value is not a number. If the value is a - * string, an attempt will be made to evaluate it as a number. - * - * @param key A key string. - * @param defaultValue The default. - * @return An object which is the value. - */ - public BigInteger optBigInteger(String key, BigInteger defaultValue) { - try { - return this.getBigInteger(key); - } catch (Exception e) { - Iris.reportError(e); - return defaultValue; - } - } - - /** - * Get an optional BigDecimal associated with a key, or the defaultValue if - * there is no such key or if its value is not a number. If the value is a - * string, an attempt will be made to evaluate it as a number. - * - * @param key A key string. - * @param defaultValue The default. - * @return An object which is the value. - */ - public BigDecimal optBigDecimal(String key, BigDecimal defaultValue) { - try { - return this.getBigDecimal(key); - } catch (Exception e) { - Iris.reportError(e); - return defaultValue; - } - } - - /** - * Get an optional double associated with a key, or the defaultValue if - * there is no such key or if its value is not a number. If the value is a - * string, an attempt will be made to evaluate it as a number. - * - * @param key A key string. - * @param defaultValue The default. - * @return An object which is the value. - */ - public double optDouble(String key, double defaultValue) { - try { - return this.getDouble(key); - } catch (Exception e) { - Iris.reportError(e); - return defaultValue; - } - } - - /** - * Get an optional int value associated with a key, or zero if there is no - * such key or if the value is not a number. If the value is a string, an - * attempt will be made to evaluate it as a number. - * - * @param key A key string. - * @return An object which is the value. - */ - public int optInt(String key) { - return this.optInt(key, 0); - } - - /** - * Get an optional int value associated with a key, or the default if there - * is no such key or if the value is not a number. If the value is a string, - * an attempt will be made to evaluate it as a number. - * - * @param key A key string. - * @param defaultValue The default. - * @return An object which is the value. - */ - public int optInt(String key, int defaultValue) { - try { - return this.getInt(key); - } catch (Exception e) { - Iris.reportError(e); - return defaultValue; - } - } - - /** - * Get an optional JSONArray associated with a key. It returns null if there - * is no such key, or if its value is not a JSONArray. - * - * @param key A key string. - * @return A JSONArray which is the value. - */ - public JSONArray optJSONArray(String key) { - Object o = this.opt(key); - return o instanceof JSONArray ? (JSONArray) o : null; - } - - /** - * Get an optional JSONObject associated with a key. It returns null if - * there is no such key, or if its value is not a JSONObject. - * - * @param key A key string. - * @return A JSONObject which is the value. - */ - public JSONObject optJSONObject(String key) { - Object object = this.opt(key); - return object instanceof JSONObject ? (JSONObject) object : null; - } - - /** - * Get an optional long value associated with a key, or zero if there is no - * such key or if the value is not a number. If the value is a string, an - * attempt will be made to evaluate it as a number. - * - * @param key A key string. - * @return An object which is the value. - */ - public long optLong(String key) { - return this.optLong(key, 0); - } - - /** - * Get an optional long value associated with a key, or the default if there - * is no such key or if the value is not a number. If the value is a string, - * an attempt will be made to evaluate it as a number. - * - * @param key A key string. - * @param defaultValue The default. - * @return An object which is the value. - */ - public long optLong(String key, long defaultValue) { - try { - return this.getLong(key); - } catch (Exception e) { - Iris.reportError(e); - return defaultValue; - } - } - - /** - * Get an optional string associated with a key. It returns an empty string - * if there is no such key. If the value is not a string and is not null, - * then it is converted to a string. - * - * @param key A key string. - * @return A string which is the value. - */ - public String optString(String key) { - return this.optString(key, ""); - } - - /** - * Get an optional string associated with a key. It returns the defaultValue - * if there is no such key. - * - * @param key A key string. - * @param defaultValue The default. - * @return A string which is the value. - */ - public String optString(String key, String defaultValue) { - Object object = this.opt(key); - return NULL.equals(object) ? defaultValue : object.toString(); - } - - private void populateMap(Object bean) { - Class klass = bean.getClass(); - - // If klass is a System class then set includeSuperClass to false. - - boolean includeSuperClass = klass.getClassLoader() != null; - - Method[] methods = includeSuperClass ? klass.getMethods() : klass.getDeclaredMethods(); - for (int i = 0; i < methods.length; i += 1) { - try { - Method method = methods[i]; - if (Modifier.isPublic(method.getModifiers())) { - String name = method.getName(); - String key = ""; - if (name.startsWith("get")) { - if ("getClass".equals(name) || "getDeclaringClass".equals(name)) { - key = ""; - } else { - key = name.substring(3); - } - } else if (name.startsWith("is")) { - key = name.substring(2); - } - if (key.length() > 0 && Character.isUpperCase(key.charAt(0)) && method.getParameterTypes().length == 0) { - if (key.length() == 1) { - key = key.toLowerCase(); - } else if (!Character.isUpperCase(key.charAt(1))) { - key = key.substring(0, 1).toLowerCase() + key.substring(1); - } - - Object result = method.invoke(bean, (Object[]) null); - if (result != null) { - this.map.put(key, wrap(result)); - } - } - } - } catch (Exception e) { - Iris.reportError(e); - } - } - } - - /** - * Put a key/boolean pair in the JSONObject. - * - * @param key A key string. - * @param value A boolean which is the value. - * @return this. - * @throws JSONException If the key is null. - */ - public JSONObject put(String key, boolean value) throws JSONException { - this.put(key, value ? Boolean.TRUE : Boolean.FALSE); - return this; - } - - /** - * Put a key/value pair in the JSONObject, where the value will be a - * JSONArray which is produced from a Collection. - * - * @param key A key string. - * @param value A Collection value. - * @return this. - */ - public JSONObject put(String key, Collection value) throws JSONException { - this.put(key, new JSONArray(value)); - return this; - } - - /** - * Put a key/double pair in the JSONObject. - * - * @param key A key string. - * @param value A double which is the value. - * @return this. - * @throws JSONException If the key is null or if the number is invalid. - */ - public JSONObject put(String key, double value) throws JSONException { - this.put(key, Double.valueOf(value)); - return this; - } - - /** - * Put a key/int pair in the JSONObject. - * - * @param key A key string. - * @param value An int which is the value. - * @return this. - * @throws JSONException If the key is null. - */ - public JSONObject put(String key, int value) throws JSONException { - this.put(key, Integer.valueOf(value)); - return this; - } - - /** - * Put a key/long pair in the JSONObject. - * - * @param key A key string. - * @param value A long which is the value. - * @return this. - * @throws JSONException If the key is null. - */ - public JSONObject put(String key, long value) throws JSONException { - this.put(key, Long.valueOf(value)); - return this; - } - - /** - * Put a key/value pair in the JSONObject, where the value will be a - * JSONObject which is produced from a Map. - * - * @param key A key string. - * @param value A Map value. - * @return this. - */ - public JSONObject put(String key, Map value) throws JSONException { - this.put(key, new JSONObject(value)); - return this; - } - - /** - * Put a key/value pair in the JSONObject. If the value is null, then the - * key will be removed from the JSONObject if it is present. - * - * @param key A key string. - * @param value An object which is the value. It should be of one of these - * types: Boolean, Double, Integer, JSONArray, JSONObject, Long, - * String, or the JSONObject.NULL object. - * @return this. - * @throws JSONException If the value is non-finite number or if the key is null. - */ - public JSONObject put(String key, Object value) throws JSONException { - if (key == null) { - throw new NullPointerException("Null key."); - } - if (value != null) { - testValidity(value); - this.map.put(key, value); - } else { - this.remove(key); - } - return this; - } - - /** - * Put a key/value pair in the JSONObject, but only if the key and the value - * are both non-null, and only if there is not already a member with that - * name. - * - * @param key string - * @param value object - * @return this. - * @throws JSONException if the key is a duplicate - */ - public JSONObject putOnce(String key, Object value) throws JSONException { - if (key != null && value != null) { - if (this.opt(key) != null) { - throw new JSONException("Duplicate key \"" + key + "\""); - } - this.put(key, value); - } - return this; - } - - /** - * Put a key/value pair in the JSONObject, but only if the key and the value - * are both non-null. - * - * @param key A key string. - * @param value An object which is the value. It should be of one of these - * types: Boolean, Double, Integer, JSONArray, JSONObject, Long, - * String, or the JSONObject.NULL object. - * @return this. - * @throws JSONException If the value is a non-finite number. - */ - public JSONObject putOpt(String key, Object value) throws JSONException { - if (key != null && value != null) { - this.put(key, value); - } - return this; - } - - /** - * Remove a name and its value, if present. - * - * @param key The name to be removed. - * @return The value that was associated with the name, or null if there was - * no value. - */ - public Object remove(String key) { - return this.map.remove(key); - } - - /** - * Determine if two JSONObjects are similar. They must contain the same set - * of names which must be associated with similar values. - * - * @param other The other JSONObject - * @return true if they are equal - */ - @SuppressWarnings("BooleanMethodIsAlwaysInverted") - public boolean similar(Object other) { - try { - if (!(other instanceof JSONObject)) { - return false; - } - Set set = this.keySet(); - if (!set.equals(((JSONObject) other).keySet())) { - return false; - } - Iterator iterator = set.iterator(); - while (iterator.hasNext()) { - String name = iterator.next(); - Object valueThis = this.get(name); - Object valueOther = ((JSONObject) other).get(name); - if (valueThis instanceof JSONObject) { - if (!((JSONObject) valueThis).similar(valueOther)) { - return false; - } - } else if (valueThis instanceof JSONArray) { - if (!((JSONArray) valueThis).similar(valueOther)) { - return false; - } - } else if (!valueThis.equals(valueOther)) { - return false; - } - } - return true; - } catch (Throwable e) { - Iris.reportError(e); - return false; - } - } - - /** - * Produce a JSONArray containing the values of the members of this - * JSONObject. - * - * @param names A JSONArray containing a list of key strings. This determines - * the sequence of the values in the result. - * @return A JSONArray of values. - * @throws JSONException If any of the values are non-finite numbers. - */ - public JSONArray toJSONArray(JSONArray names) throws JSONException { - if (names == null || names.length() == 0) { - return null; - } - JSONArray ja = new JSONArray(); - for (int i = 0; i < names.length(); i += 1) { - ja.put(this.opt(names.getString(i))); - } - return ja; - } - - /** - * Make a JSON text of this JSONObject. For compactness, no whitespace is - * added. If this would not result in a syntactically correct JSON text, - * then null will be returned instead. - *

- * Warning: This method assumes that the data structure is acyclical. - * - * @return a printable, displayable, portable, transmittable representation - * of the object, beginning with { (left - * brace) and ending with } (right - * brace). - */ - public String toString() { - try { - return this.toString(0); - } catch (Exception e) { - Iris.reportError(e); - return null; - } - } - - /** - * Make a prettyprinted JSON text of this JSONObject. - *

- * Warning: This method assumes that the data structure is acyclical. - * - * @param indentFactor The number of spaces to add to each level of indentation. - * @return a printable, displayable, portable, transmittable representation - * of the object, beginning with { (left - * brace) and ending with } (right - * brace). - * @throws JSONException If the object contains an invalid number. - */ - public String toString(int indentFactor) throws JSONException { - StringWriter w = new StringWriter(); - synchronized (w.getBuffer()) { - return this.write(w, indentFactor, 0).toString(); - } - } - - /** - * Write the contents of the JSONObject as JSON text to a writer. For - * compactness, no whitespace is added. - *

- * Warning: This method assumes that the data structure is acyclical. - * - * @return The writer. - */ - public Writer write(Writer writer) throws JSONException { - return this.write(writer, 0, 0); - } - - /** - * Write the contents of the JSONObject as JSON text to a writer. For - * compactness, no whitespace is added. - *

- * Warning: This method assumes that the data structure is acyclical. - * - * @return The writer. - */ - Writer write(Writer writer, int indentFactor, int indent) throws JSONException { - try { - boolean commanate = false; - final int length = this.length(); - Iterator keys = this.keys(); - writer.write('{'); - - if (length == 1) { - Object key = keys.next(); - writer.write(quote(key.toString())); - writer.write(':'); - if (indentFactor > 0) { - writer.write(' '); - } - writeValue(writer, this.map.get(key), indentFactor, indent); - } else if (length != 0) { - final int newindent = indent + indentFactor; - while (keys.hasNext()) { - Object key = keys.next(); - if (commanate) { - writer.write(','); - } - if (indentFactor > 0) { - writer.write('\n'); - } - indent(writer, newindent); - writer.write(quote(key.toString())); - writer.write(':'); - if (indentFactor > 0) { - writer.write(' '); - } - writeValue(writer, this.map.get(key), indentFactor, newindent); - commanate = true; - } - if (indentFactor > 0) { - writer.write('\n'); - } - indent(writer, indent); - } - writer.write('}'); - return writer; - } catch (IOException e) { - Iris.reportError(e); - throw new JSONException(e); - } - } - - /** - * JSONObject.NULL is equivalent to the value that JavaScript calls null, - * whilst Java's null is equivalent to the value that JavaScript calls - * undefined. - */ - private static final class Null { - - /** - * There is only intended to be a single instance of the NULL object, so - * the clone method returns itself. - * - * @return NULL. - */ - @Override - protected final Object clone() { - return this; - } - - /** - * A Null object is equal to the null value and to itself. - * - * @param object An object to test for nullness. - * @return true if the object parameter is the JSONObject.NULL object or - * null. - */ - @Override - public boolean equals(Object object) { - return object == null || object == this; - } - - /** - * Get the "null" string value. - * - * @return The string "null". - */ - public String toString() { - return "null"; - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/json/JSONString.java b/core/src/main/java/com/volmit/iris/util/json/JSONString.java deleted file mode 100644 index 0facad9fa..000000000 --- a/core/src/main/java/com/volmit/iris/util/json/JSONString.java +++ /dev/null @@ -1,38 +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 com.volmit.iris.util.json; - - -/** - * The JSONString interface allows a toJSONString() - * method so that a class can change the behavior of - * JSONObject.toString(), JSONArray.toString(), and - * JSONWriter.value(Object). The - * toJSONString method will be used instead of the default behavior - * of using the Object's toString() method and quoting the result. - */ -public interface JSONString { - /** - * The toJSONString method allows a class to produce its own - * JSON serialization. - * - * @return A strictly syntactically correct JSON text. - */ - String toJSONString(); -} diff --git a/core/src/main/java/com/volmit/iris/util/json/JSONStringer.java b/core/src/main/java/com/volmit/iris/util/json/JSONStringer.java deleted file mode 100644 index a9ab7ed27..000000000 --- a/core/src/main/java/com/volmit/iris/util/json/JSONStringer.java +++ /dev/null @@ -1,77 +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 com.volmit.iris.util.json; - - -import java.io.StringWriter; - -/** - * JSONStringer provides a quick and convenient way of producing JSON text. The - * texts produced strictly conform to JSON syntax rules. No whitespace is added, - * so the results are ready for transmission or storage. Each instance of - * JSONStringer can produce one JSON text. - *

- * A JSONStringer instance provides a value method for appending - * values to the text, and a key method for adding keys before - * values in objects. There are array and endArray - * methods that make and bound array values, and object and - * endObject methods which make and bound object values. All of - * these methods return the JSONWriter instance, permitting cascade style. For - * example, - * - *

- * myString = new JSONStringer().object().key("JSON").value("Hello, World!").endObject().toString();
- * 
- *

- * which produces the string - * - *

- * {"JSON":"Hello, World!"}
- * 
- *

- * The first method called must be array or object. - * There are no methods for adding commas or colons. JSONStringer adds them for - * you. Objects and arrays can be nested up to 20 levels deep. - *

- * This can sometimes be easier than using a JSONObject to build a string. - * - * @author JSON.org - * @version 2008-09-18 - */ -public class JSONStringer extends JSONWriter { - /** - * Make a fresh JSONStringer. It can be used to build one JSON text. - */ - public JSONStringer() { - super(new StringWriter()); - } - - /** - * Return the JSON text. This method is used to obtain the product of the - * JSONStringer instance. It will return null if there was a - * problem in the construction of the JSON text (such as the calls to - * array were not properly balanced with calls to - * endArray). - * - * @return The JSON text. - */ - public String toString() { - return this.mode == 'd' ? this.writer.toString() : null; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/json/JSONTokener.java b/core/src/main/java/com/volmit/iris/util/json/JSONTokener.java deleted file mode 100644 index 6049a4d1b..000000000 --- a/core/src/main/java/com/volmit/iris/util/json/JSONTokener.java +++ /dev/null @@ -1,426 +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 com.volmit.iris.util.json; - - -import com.volmit.iris.Iris; - -import java.io.*; - -/** - * A JSONTokener takes a source string and extracts characters and tokens from - * it. It is used by the JSONObject and JSONArray constructors to parse JSON - * source strings. - * - * @author JSON.org - * @version 2014-05-03 - */ -@SuppressWarnings("ALL") -public class JSONTokener { - - private final Reader reader; - private long character; - private boolean eof; - private long index; - private long line; - private char previous; - private boolean usePrevious; - - /** - * Construct a JSONTokener from a Reader. - * - * @param reader A reader. - */ - public JSONTokener(Reader reader) { - this.reader = reader.markSupported() ? reader : new BufferedReader(reader); - this.eof = false; - this.usePrevious = false; - this.previous = 0; - this.index = 0; - this.character = 1; - this.line = 1; - } - - /** - * Construct a JSONTokener from an InputStream. - * - * @param inputStream The source. - */ - public JSONTokener(InputStream inputStream) throws JSONException { - this(new InputStreamReader(inputStream)); - } - - /** - * Construct a JSONTokener from a string. - * - * @param s A source string. - */ - public JSONTokener(String s) { - this(new StringReader(s)); - } - - /** - * Get the hex value of a character (base16). - * - * @param c A character between '0' and '9' or between 'A' and 'F' or - * between 'a' and 'f'. - * @return An int between 0 and 15, or -1 if c was not a hex digit. - */ - public static int dehexchar(char c) { - if (c >= '0' && c <= '9') { - return c - '0'; - } - if (c >= 'A' && c <= 'F') { - return c - ('A' - 10); - } - if (c >= 'a' && c <= 'f') { - return c - ('a' - 10); - } - return -1; - } - - /** - * Back up one character. This provides a sort of lookahead capability, so - * that you can test for a digit or letter before attempting to parse the - * next number or identifier. - */ - public void back() throws JSONException { - if (this.usePrevious || this.index <= 0) { - throw new JSONException("Stepping back two steps is not supported"); - } - this.index -= 1; - this.character -= 1; - this.usePrevious = true; - this.eof = false; - } - - public boolean end() { - return this.eof && !this.usePrevious; - } - - /** - * Determine if the source string still contains characters that next() can - * consume. - * - * @return true if not yet at the end of the source. - */ - public boolean more() throws JSONException { - this.next(); - if (this.end()) { - return false; - } - this.back(); - return true; - } - - /** - * Get the next character in the source string. - * - * @return The next character, or 0 if past the end of the source string. - */ - public char next() throws JSONException { - int c; - if (this.usePrevious) { - this.usePrevious = false; - c = this.previous; - } else { - try { - c = this.reader.read(); - } catch (IOException e) { - Iris.reportError(e); - throw new JSONException(e); - } - - if (c <= 0) { // End of stream - this.eof = true; - c = 0; - } - } - this.index += 1; - if (this.previous == '\r') { - this.line += 1; - this.character = c == '\n' ? 0 : 1; - } else if (c == '\n') { - this.line += 1; - this.character = 0; - } else { - this.character += 1; - } - this.previous = (char) c; - return this.previous; - } - - /** - * Consume the next character, and check that it matches a specified - * character. - * - * @param c The character to match. - * @return The character. - * @throws JSONException if the character does not match. - */ - public char next(char c) throws JSONException { - char n = this.next(); - if (n != c) { - throw this.syntaxError("Expected '" + c + "' and instead saw '" + n + "'"); - } - return n; - } - - /** - * Get the next n characters. - * - * @param n The number of characters to take. - * @return A string of n characters. - * @throws JSONException Substring bounds error if there are not n characters - * remaining in the source string. - */ - public String next(int n) throws JSONException { - if (n == 0) { - return ""; - } - - char[] chars = new char[n]; - int pos = 0; - - while (pos < n) { - chars[pos] = this.next(); - if (this.end()) { - throw this.syntaxError("Substring bounds error"); - } - pos += 1; - } - return new String(chars); - } - - /** - * Get the next char in the string, skipping whitespace. - * - * @return A character, or 0 if there are no more characters. - */ - public char nextClean() throws JSONException { - for (; ; ) { - char c = this.next(); - if (c == 0 || c > ' ') { - return c; - } - } - } - - /** - * Return the characters up to the next close quote character. Backslash - * processing is done. The formal JSON format does not allow strings in - * single quotes, but an implementation is allowed to accept them. - * - * @param quote The quoting character, either "  - * (double quote) or '  - * (single quote). - * @return A String. - * @throws JSONException Unterminated string. - */ - public String nextString(char quote) throws JSONException { - char c; - StringBuilder sb = new StringBuilder(); - for (; ; ) { - c = this.next(); - switch (c) { - case 0: - case '\n': - case '\r': - throw this.syntaxError("Unterminated string"); - case '\\': - c = this.next(); - switch (c) { - case 'b': - sb.append('\b'); - break; - case 't': - sb.append('\t'); - break; - case 'n': - sb.append('\n'); - break; - case 'f': - sb.append('\f'); - break; - case 'r': - sb.append('\r'); - break; - case 'u': - sb.append((char) Integer.parseInt(this.next(4), 16)); - break; - case '"': - case '\'': - case '\\': - case '/': - sb.append(c); - break; - default: - throw this.syntaxError("Illegal escape."); - } - break; - default: - if (c == quote) { - return sb.toString(); - } - sb.append(c); - } - } - } - - /** - * Get the text up but not including the specified character or the end of - * line, whichever comes first. - * - * @param delimiter A delimiter character. - * @return A string. - */ - public String nextTo(char delimiter) throws JSONException { - StringBuilder sb = new StringBuilder(); - for (; ; ) { - char c = this.next(); - if (c == delimiter || c == 0 || c == '\n' || c == '\r') { - if (c != 0) { - this.back(); - } - return sb.toString().trim(); - } - sb.append(c); - } - } - - /** - * Get the text up but not including one of the specified delimiter - * characters or the end of line, whichever comes first. - * - * @param delimiters A set of delimiter characters. - * @return A string, trimmed. - */ - public String nextTo(String delimiters) throws JSONException { - char c; - StringBuilder sb = new StringBuilder(); - for (; ; ) { - c = this.next(); - if (delimiters.indexOf(c) >= 0 || c == 0 || c == '\n' || c == '\r') { - if (c != 0) { - this.back(); - } - return sb.toString().trim(); - } - sb.append(c); - } - } - - /** - * Get the next value. The value can be a Boolean, Double, Integer, - * JSONArray, JSONObject, Long, or String, or the JSONObject.NULL object. - * - * @return An object. - * @throws JSONException If syntax error. - */ - public Object nextValue() throws JSONException { - char c = this.nextClean(); - String string; - - switch (c) { - case '"': - case '\'': - return this.nextString(c); - case '{': - this.back(); - return new JSONObject(this); - case '[': - this.back(); - return new JSONArray(this); - } - - /* - * Handle unquoted text. This could be the values true, false, or null, - * or it can be a number. An implementation (such as this one) is - * allowed to also accept non-standard forms. - * - * Accumulate characters until we reach the end of the text or a - * formatting character. - */ - - StringBuilder sb = new StringBuilder(); - while (c >= ' ' && ",:]}/\\\"[{;=#".indexOf(c) < 0) { - sb.append(c); - c = this.next(); - } - this.back(); - - string = sb.toString().trim(); - if ("".equals(string)) { - throw this.syntaxError("Missing value"); - } - return JSONObject.stringToValue(string); - } - - /** - * Skip characters until the next character is the requested character. If - * the requested character is not found, no characters are skipped. - * - * @param to A character to skip to. - * @return The requested character, or zero if the requested character is - * not found. - */ - public char skipTo(char to) throws JSONException { - char c; - try { - long startIndex = this.index; - long startCharacter = this.character; - long startLine = this.line; - this.reader.mark(1000000); - do { - c = this.next(); - if (c == 0) { - this.reader.reset(); - this.index = startIndex; - this.character = startCharacter; - this.line = startLine; - return c; - } - } while (c != to); - } catch (IOException e) { - Iris.reportError(e); - throw new JSONException(e); - } - this.back(); - return c; - } - - /** - * Make a JSONException to signal a syntax error. - * - * @param message The error message. - * @return A JSONException object, suitable for throwing - */ - public JSONException syntaxError(String message) { - return new JSONException(message + this); - } - - /** - * Make a printable string of this JSONTokener. - * - * @return " at {index} [character {character} line {line}]" - */ - public String toString() { - return " at " + this.index + " [character " + this.character + " line " + this.line + "]"; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/json/JSONWriter.java b/core/src/main/java/com/volmit/iris/util/json/JSONWriter.java deleted file mode 100644 index e9d212b68..000000000 --- a/core/src/main/java/com/volmit/iris/util/json/JSONWriter.java +++ /dev/null @@ -1,324 +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 com.volmit.iris.util.json; - - -import com.volmit.iris.Iris; - -import java.io.IOException; -import java.io.Writer; - -/** - * JSONWriter provides a quick and convenient way of producing JSON text. The - * texts produced strictly conform to JSON syntax rules. No whitespace is added, - * so the results are ready for transmission or storage. Each instance of - * JSONWriter can produce one JSON text. - *

- * A JSONWriter instance provides a value method for appending - * values to the text, and a key method for adding keys before - * values in objects. There are array and endArray - * methods that make and bound array values, and object and - * endObject methods which make and bound object values. All of - * these methods return the JSONWriter instance, permitting a cascade style. For - * example, - * - *

- * new JSONWriter(myWriter).object().key("JSON").value("Hello, World!").endObject();
- * 
- *

- * which writes - * - *

- * {"JSON":"Hello, World!"}
- * 
- *

- * The first method called must be array or object. - * There are no methods for adding commas or colons. JSONWriter adds them for - * you. Objects and arrays can be nested up to 20 levels deep. - *

- * This can sometimes be easier than using a JSONObject to build a string. - * - * @author JSON.org - * @version 2011-11-24 - */ -public class JSONWriter { - private static final int maxdepth = 200; - /** - * The writer that will receive the output. - */ - protected final Writer writer; - /** - * The object/array stack. - */ - private final JSONObject[] stack; - /** - * The current mode. Values: 'a' (array), 'd' (done), 'i' (initial), 'k' - * (key), 'o' (object). - */ - protected char mode; - /** - * The comma flag determines if a comma should be output before the next - * value. - */ - private boolean comma; - /** - * The stack top index. A value of 0 indicates that the stack is empty. - */ - private int top; - - /** - * Make a fresh JSONWriter. It can be used to build one JSON text. - */ - public JSONWriter(Writer w) { - this.comma = false; - this.mode = 'i'; - this.stack = new JSONObject[maxdepth]; - this.top = 0; - this.writer = w; - } - - /** - * Append a value. - * - * @param string A string value. - * @return this - * @throws JSONException If the value is out of sequence. - */ - private JSONWriter append(String string) throws JSONException { - if (string == null) { - throw new JSONException("Null pointer"); - } - if (this.mode == 'o' || this.mode == 'a') { - try { - if (this.comma && this.mode == 'a') { - this.writer.write(','); - } - this.writer.write(string); - } catch (IOException e) { - Iris.reportError(e); - throw new JSONException(e); - } - if (this.mode == 'o') { - this.mode = 'k'; - } - this.comma = true; - return this; - } - throw new JSONException("Value out of sequence."); - } - - /** - * Begin appending a new array. All values until the balancing - * endArray will be appended to this array. The - * endArray method must be called to mark the array's end. - * - * @return this - * @throws JSONException If the nesting is too deep, or if the object is started in - * the wrong place (for example as a key or after the end of the - * outermost array or object). - */ - public JSONWriter array() throws JSONException { - if (this.mode == 'i' || this.mode == 'o' || this.mode == 'a') { - this.push(null); - this.append("["); - this.comma = false; - return this; - } - throw new JSONException("Misplaced array."); - } - - /** - * End something. - * - * @param mode Mode - * @param c Closing character - * @return this - * @throws JSONException If unbalanced. - */ - private JSONWriter end(char mode, char c) throws JSONException { - if (this.mode != mode) { - throw new JSONException(mode == 'a' ? "Misplaced endArray." : "Misplaced endObject."); - } - this.pop(mode); - try { - this.writer.write(c); - } catch (IOException e) { - Iris.reportError(e); - throw new JSONException(e); - } - this.comma = true; - return this; - } - - /** - * End an array. This method most be called to balance calls to - * array. - * - * @return this - * @throws JSONException If incorrectly nested. - */ - public JSONWriter endArray() throws JSONException { - return this.end('a', ']'); - } - - /** - * End an object. This method most be called to balance calls to - * object. - * - * @return this - * @throws JSONException If incorrectly nested. - */ - public JSONWriter endObject() throws JSONException { - return this.end('k', '}'); - } - - /** - * Append a key. The key will be associated with the next value. In an - * object, every value must be preceded by a key. - * - * @param string A key string. - * @return this - * @throws JSONException If the key is out of place. For example, keys do not belong - * in arrays or if the key is null. - */ - public JSONWriter key(String string) throws JSONException { - if (string == null) { - throw new JSONException("Null key."); - } - if (this.mode == 'k') { - try { - this.stack[this.top - 1].putOnce(string, Boolean.TRUE); - if (this.comma) { - this.writer.write(','); - } - this.writer.write(JSONObject.quote(string)); - this.writer.write(':'); - this.comma = false; - this.mode = 'o'; - return this; - } catch (IOException e) { - Iris.reportError(e); - throw new JSONException(e); - } - } - throw new JSONException("Misplaced key."); - } - - /** - * Begin appending a new object. All keys and values until the balancing - * endObject will be appended to this object. The - * endObject method must be called to mark the object's end. - * - * @return this - * @throws JSONException If the nesting is too deep, or if the object is started in - * the wrong place (for example as a key or after the end of the - * outermost array or object). - */ - public JSONWriter object() throws JSONException { - if (this.mode == 'i') { - this.mode = 'o'; - } - if (this.mode == 'o' || this.mode == 'a') { - this.append("{"); - this.push(new JSONObject()); - this.comma = false; - return this; - } - throw new JSONException("Misplaced object."); - - } - - /** - * Pop an array or object scope. - * - * @param c The scope to close. - * @throws JSONException If nesting is wrong. - */ - private void pop(char c) throws JSONException { - if (this.top <= 0) { - throw new JSONException("Nesting error."); - } - char m = this.stack[this.top - 1] == null ? 'a' : 'k'; - if (m != c) { - throw new JSONException("Nesting error."); - } - this.top -= 1; - this.mode = this.top == 0 ? 'd' : this.stack[this.top - 1] == null ? 'a' : 'k'; - } - - /** - * Push an array or object scope. - * - * @param jo The scope to open. - * @throws JSONException If nesting is too deep. - */ - private void push(JSONObject jo) throws JSONException { - if (this.top >= maxdepth) { - throw new JSONException("Nesting too deep."); - } - this.stack[this.top] = jo; - this.mode = jo == null ? 'a' : 'k'; - this.top += 1; - } - - /** - * Append either the value true or the value false - * . - * - * @param b A boolean. - * @return this - */ - public JSONWriter value(boolean b) throws JSONException { - return this.append(b ? "true" : "false"); - } - - /** - * Append a double value. - * - * @param d A double. - * @return this - * @throws JSONException If the number is not finite. - */ - public JSONWriter value(double d) throws JSONException { - return this.value(Double.valueOf(d)); - } - - /** - * Append a long value. - * - * @param l A long. - * @return this - */ - public JSONWriter value(long l) throws JSONException { - return this.append(Long.toString(l)); - } - - /** - * Append an object value. - * - * @param object The object to append. It can be null, or a Boolean, Number, - * String, JSONObject, or JSONArray, or an object that implements - * JSONString. - * @return this - * @throws JSONException If the value is out of sequence. - */ - public JSONWriter value(Object object) throws JSONException { - return this.append(JSONObject.valueToString(object)); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/json/XML.java b/core/src/main/java/com/volmit/iris/util/json/XML.java deleted file mode 100644 index 13e665eff..000000000 --- a/core/src/main/java/com/volmit/iris/util/json/XML.java +++ /dev/null @@ -1,489 +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 com.volmit.iris.util.json; - - -import com.volmit.iris.Iris; - -import java.util.Iterator; - -/** - * This provides static methods to convert an XML text into a JSONObject, and to - * covert a JSONObject into an XML text. - * - * @author JSON.org - * @version 2014-05-03 - */ -public class XML { - - /** - * The Character '&'. - */ - public static final Character AMP = '&'; - - /** - * The Character '''. - */ - public static final Character APOS = '\''; - - /** - * The Character '!'. - */ - public static final Character BANG = '!'; - - /** - * The Character '='. - */ - public static final Character EQ = '='; - - /** - * The Character '>'. - */ - public static final Character GT = '>'; - - /** - * The Character '<'. - */ - public static final Character LT = '<'; - - /** - * The Character '?'. - */ - public static final Character QUEST = '?'; - - /** - * The Character '"'. - */ - public static final Character QUOT = '"'; - - /** - * The Character '/'. - */ - public static final Character SLASH = '/'; - - /** - * Replace special characters with XML escapes: - * - *

-     * & (ampersand) is replaced by &amp;
-     * < (less than) is replaced by &lt;
-     * > (greater than) is replaced by &gt;
-     * " (double quote) is replaced by &quot;
-     * 
- * - * @param string The string to be escaped. - * @return The escaped string. - */ - public static String escape(String string) { - StringBuilder sb = new StringBuilder(string.length()); - for (int i = 0, length = string.length(); i < length; i++) { - char c = string.charAt(i); - switch (c) { - case '&' -> sb.append("&"); - case '<' -> sb.append("<"); - case '>' -> sb.append(">"); - case '"' -> sb.append("""); - case '\'' -> sb.append("'"); - default -> sb.append(c); - } - } - return sb.toString(); - } - - /** - * Throw an exception if the string contains whitespace. Whitespace is not - * allowed in tagNames and attributes. - * - * @param string A string. - */ - public static void noSpace(String string) throws JSONException { - int i, length = string.length(); - if (length == 0) { - throw new JSONException("Empty string."); - } - for (i = 0; i < length; i += 1) { - if (Character.isWhitespace(string.charAt(i))) { - throw new JSONException("'" + string + "' contains a space character."); - } - } - } - - /** - * Scan the content following the named tag, attaching it to the context. - * - * @param x The XMLTokener containing the source string. - * @param context The JSONObject that will include the new material. - * @param name The tag name. - * @return true if the close tag is processed. - */ - private static boolean parse(XMLTokener x, JSONObject context, String name) throws JSONException { - char c; - int i; - JSONObject jsonobject = null; - String string; - String tagName; - Object token; - - // Test for and skip past these forms: - // - // - // - // - // Report errors for these forms: - // <> - // <= - // << - - token = x.nextToken(); - - // "); - return false; - } - x.back(); - } else if (c == '[') { - token = x.nextToken(); - if ("CDATA".equals(token)) { - if (x.next() == '[') { - string = x.nextCDATA(); - if (string.length() > 0) { - context.accumulate("content", string); - } - return false; - } - } - throw x.syntaxError("Expected 'CDATA['"); - } - i = 1; - do { - token = x.nextMeta(); - if (token == null) { - throw x.syntaxError("Missing '>' after ' 0); - return false; - } else if (token == QUEST) { - - // "); - return false; - } else if (token == SLASH) { - - // Close tag - - } else if (token == SLASH) { - if (x.nextToken() != GT) { - throw x.syntaxError("Misshaped tag"); - } - if (jsonobject.length() > 0) { - context.accumulate(tagName, jsonobject); - } else { - context.accumulate(tagName, ""); - } - return false; - - // Content, between <...> and - - } else if (token == GT) { - for (; ; ) { - token = x.nextContent(); - if (token == null) { - if (tagName != null) { - throw x.syntaxError("Unclosed tag " + tagName); - } - return false; - } else if (token instanceof String) { - string = (String) token; - if (string.length() > 0) { - jsonobject.accumulate("content", XML.stringToValue(string)); - } - - // Nested element - - } else if (token == LT) { - if (parse(x, jsonobject, tagName)) { - if (jsonobject.length() == 0) { - context.accumulate(tagName, ""); - } else if (jsonobject.length() == 1 && jsonobject.opt("content") != null) { - context.accumulate(tagName, jsonobject.opt("content")); - } else { - context.accumulate(tagName, jsonobject); - } - return false; - } - } - } - } else { - throw x.syntaxError("Misshaped tag"); - } - } - } - } - - /** - * Try to convert a string into a number, boolean, or null. If the string - * can't be converted, return the string. This is much less ambitious than - * JSONObject.stringToValue, especially because it does not attempt to - * convert plus forms, octal forms, hex forms, or E forms lacking decimal - * points. - * - * @param string A String. - * @return A simple JSON value. - */ - public static Object stringToValue(String string) { - if ("true".equalsIgnoreCase(string)) { - return Boolean.TRUE; - } - if ("false".equalsIgnoreCase(string)) { - return Boolean.FALSE; - } - if ("null".equalsIgnoreCase(string)) { - return JSONObject.NULL; - } - - // If it might be a number, try converting it, first as a Long, and then - // as a - // Double. If that doesn't work, return the string. - - try { - char initial = string.charAt(0); - if (initial == '-' || (initial >= '0' && initial <= '9')) { - Long value = Long.valueOf(string); - if (value.toString().equals(string)) { - return value; - } - } - } catch (Exception ignore) { - Iris.reportError(ignore); - try { - Double value = Double.valueOf(string); - if (value.toString().equals(string)) { - return value; - } - } catch (Exception e) { - Iris.reportError(e); - } - } - return string; - } - - /** - * Convert a well-formed (but not necessarily valid) XML string into a - * JSONObject. Some information may be lost in this transformation because - * JSON is a data format and XML is a document format. XML uses elements, - * attributes, and content text, while JSON uses unordered collections of - * name/value pairs and arrays of values. JSON does not does not like to - * distinguish between elements and attributes. Sequences of similar - * elements are represented as JSONArrays. Content text may be placed in a - * "content" member. Comments, prologs, DTDs, and <[ [ ]]> - * are ignored. - * - * @param string The source string. - * @return A JSONObject containing the structured data from the XML string. - */ - public static JSONObject toJSONObject(String string) throws JSONException { - JSONObject jo = new JSONObject(); - XMLTokener x = new XMLTokener(string); - while (x.more() && x.skipPast("<")) { - parse(x, jo, null); - } - return jo; - } - - /** - * Convert a JSONObject into a well-formed, element-normal XML string. - * - * @param object A JSONObject. - * @return A string. - */ - public static String toString(Object object) throws JSONException { - return toString(object, null); - } - - /** - * Convert a JSONObject into a well-formed, element-normal XML string. - * - * @param object A JSONObject. - * @param tagName The optional name of the enclosing tag. - * @return A string. - */ - public static String toString(Object object, String tagName) throws JSONException { - StringBuilder sb = new StringBuilder(); - int i; - JSONArray ja; - JSONObject jo; - String key; - Iterator keys; - int length; - String string; - Object value; - if (object instanceof JSONObject) { - - // Emit - - if (tagName != null) { - sb.append('<'); - sb.append(tagName); - sb.append('>'); - } - - // Loop thru the keys. - - jo = (JSONObject) object; - keys = jo.keys(); - while (keys.hasNext()) { - key = keys.next(); - value = jo.opt(key); - if (value == null) { - value = ""; - } - string = value instanceof String ? (String) value : null; - - // Emit content in body - - if ("content".equals(key)) { - if (value instanceof JSONArray) { - ja = (JSONArray) value; - length = ja.length(); - for (i = 0; i < length; i += 1) { - if (i > 0) { - sb.append('\n'); - } - sb.append(escape(ja.get(i).toString())); - } - } else { - sb.append(escape(value.toString())); - } - - // Emit an array of similar keys - - } else if (value instanceof JSONArray) { - ja = (JSONArray) value; - length = ja.length(); - for (i = 0; i < length; i += 1) { - value = ja.get(i); - if (value instanceof JSONArray) { - sb.append('<'); - sb.append(key); - sb.append('>'); - sb.append(toString(value)); - sb.append("'); - } else { - sb.append(toString(value, key)); - } - } - } else if ("".equals(value)) { - sb.append('<'); - sb.append(key); - sb.append("/>"); - - // Emit a new tag - - } else { - sb.append(toString(value, key)); - } - } - if (tagName != null) { - - // Emit the close tag - - sb.append("'); - } - return sb.toString(); - - // XML does not have good support for arrays. If an array appears in - // a place - // where XML is lacking, synthesize an element. - - } else { - if (object.getClass().isArray()) { - object = new JSONArray(object); - } - if (object instanceof JSONArray) { - ja = (JSONArray) object; - length = ja.length(); - for (i = 0; i < length; i += 1) { - sb.append(toString(ja.opt(i), tagName == null ? "array" : tagName)); - } - return sb.toString(); - } else { - string = (object == null) ? "null" : escape(object.toString()); - return (tagName == null) ? "\"" + string + "\"" : (string.length() == 0) ? "<" + tagName + "/>" : "<" + tagName + ">" + string + ""; - } - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/json/XMLTokener.java b/core/src/main/java/com/volmit/iris/util/json/XMLTokener.java deleted file mode 100644 index a4e214064..000000000 --- a/core/src/main/java/com/volmit/iris/util/json/XMLTokener.java +++ /dev/null @@ -1,353 +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 com.volmit.iris.util.json; - - -/** - * The XMLTokener extends the JSONTokener to provide additional methods for the - * parsing of XML texts. - * - * @author JSON.org - * @version 2014-05-03 - */ -public class XMLTokener extends JSONTokener { - - /** - * The table of entity values. It initially contains Character values for - * amp, apos, gt, lt, quot. - */ - public static final java.util.HashMap entity; - - static { - entity = new java.util.HashMap<>(8); - entity.put("amp", XML.AMP); - entity.put("apos", XML.APOS); - entity.put("gt", XML.GT); - entity.put("lt", XML.LT); - entity.put("quot", XML.QUOT); - } - - /** - * Construct an XMLTokener from a string. - * - * @param s A source string. - */ - public XMLTokener(String s) { - super(s); - } - - /** - * Get the text in the CDATA block. - * - * @return The string up to the ]]>. - * @throws JSONException If the ]]> is not found. - */ - public String nextCDATA() throws JSONException { - char c; - int i; - StringBuilder sb = new StringBuilder(); - for (; ; ) { - c = next(); - if (end()) { - throw syntaxError("Unclosed CDATA"); - } - sb.append(c); - i = sb.length() - 3; - if (i >= 0 && sb.charAt(i) == ']' && sb.charAt(i + 1) == ']' && sb.charAt(i + 2) == '>') { - sb.setLength(i); - return sb.toString(); - } - } - } - - /** - * Get the next XML outer token, trimming whitespace. There are two kinds of - * tokens: the '<' character which begins a markup tag, and the content text - * between markup tags. - * - * @return A string, or a '<' Character, or null if there is no more source - * text. - */ - public Object nextContent() throws JSONException { - char c; - StringBuilder sb; - do { - c = next(); - } while (Character.isWhitespace(c)); - if (c == 0) { - return null; - } - if (c == '<') { - return XML.LT; - } - sb = new StringBuilder(); - for (; ; ) { - if (c == '<' || c == 0) { - back(); - return sb.toString().trim(); - } - if (c == '&') { - sb.append(nextEntity(c)); - } else { - sb.append(c); - } - c = next(); - } - } - - /** - * Return the next entity. These entities are translated to Characters: - * & ' > < ". - * - * @param ampersand An ampersand character. - * @return A Character or an entity String if the entity is not recognized. - * @throws JSONException If missing ';' in XML entity. - */ - public Object nextEntity(char ampersand) throws JSONException { - StringBuilder sb = new StringBuilder(); - for (; ; ) { - char c = next(); - if (Character.isLetterOrDigit(c) || c == '#') { - sb.append(Character.toLowerCase(c)); - } else if (c == ';') { - break; - } else { - throw syntaxError("Missing ';' in XML entity: &" + sb); - } - } - String string = sb.toString(); - Object object = entity.get(string); - return object != null ? object : ampersand + string + ";"; - } - - /** - * Returns the next XML meta token. This is used for skipping over - * and structures. - * - * @return Syntax characters (< > / = ! ?) are returned as - * Character, and strings and names are returned as Boolean. We - * don't care what the values actually are. - * @throws JSONException If a string is not properly closed or if the XML is badly - * structured. - */ - public Object nextMeta() throws JSONException { - char c; - char q; - do { - c = next(); - } while (Character.isWhitespace(c)); - switch (c) { - case 0: - throw syntaxError("Misshaped meta tag"); - case '<': - return XML.LT; - case '>': - return XML.GT; - case '/': - return XML.SLASH; - case '=': - return XML.EQ; - case '!': - return XML.BANG; - case '?': - return XML.QUEST; - case '"': - case '\'': - q = c; - for (; ; ) { - c = next(); - if (c == 0) { - throw syntaxError("Unterminated string"); - } - if (c == q) { - return Boolean.TRUE; - } - } - default: - for (; ; ) { - c = next(); - if (Character.isWhitespace(c)) { - return Boolean.TRUE; - } - switch (c) { - case 0, '<', '>', '/', '=', '!', '?', '"', '\'' -> { - back(); - return Boolean.TRUE; - } - } - } - } - } - - /** - * Get the next XML Token. These tokens are found inside of angle brackets. - * It may be one of these characters: / > = ! ? or it may be a - * string wrapped in single quotes or double quotes, or it may be a name. - * - * @return a String or a Character. - * @throws JSONException If the XML is not well formed. - */ - public Object nextToken() throws JSONException { - char c; - char q; - StringBuilder sb; - do { - c = next(); - } while (Character.isWhitespace(c)); - switch (c) { - case 0: - throw syntaxError("Misshaped element"); - case '<': - throw syntaxError("Misplaced '<'"); - case '>': - return XML.GT; - case '/': - return XML.SLASH; - case '=': - return XML.EQ; - case '!': - return XML.BANG; - case '?': - return XML.QUEST; - - // Quoted string - - case '"': - case '\'': - q = c; - sb = new StringBuilder(); - for (; ; ) { - c = next(); - if (c == 0) { - throw syntaxError("Unterminated string"); - } - if (c == q) { - return sb.toString(); - } - if (c == '&') { - sb.append(nextEntity(c)); - } else { - sb.append(c); - } - } - default: - - // Name - - sb = new StringBuilder(); - for (; ; ) { - sb.append(c); - c = next(); - if (Character.isWhitespace(c)) { - return sb.toString(); - } - switch (c) { - case 0: - return sb.toString(); - case '>': - case '/': - case '=': - case '!': - case '?': - case '[': - case ']': - back(); - return sb.toString(); - case '<': - case '"': - case '\'': - throw syntaxError("Bad character in a name"); - } - } - } - } - - /** - * Skip characters until past the requested string. If it is not found, we - * are left at the end of the source with a result of false. - * - * @param to A string to skip past. - */ - public boolean skipPast(String to) throws JSONException { - boolean b; - char c; - int i; - int j; - int offset = 0; - int length = to.length(); - char[] circle = new char[length]; - - /* - * First fill the circle buffer with as many characters as are in the to - * string. If we reach an early end, bail. - */ - - for (i = 0; i < length; i += 1) { - c = next(); - if (c == 0) { - return false; - } - circle[i] = c; - } - - /* We will loop, possibly for all of the remaining characters. */ - - for (; ; ) { - j = offset; - b = true; - - /* Compare the circle buffer with the to string. */ - - for (i = 0; i < length; i += 1) { - if (circle[j] != to.charAt(i)) { - b = false; - break; - } - j += 1; - if (j >= length) { - j -= length; - } - } - - /* If we exit the loop with b intact, then victory is ours. */ - - if (b) { - return true; - } - - /* - * Get the next character. If there isn't one, then defeat is ours. - */ - - c = next(); - if (c == 0) { - return false; - } - /* - * Shove the character in the circle buffer and advance the circle - * offset. The offset is mod n. - */ - circle[offset] = c; - offset += 1; - if (offset >= length) { - offset -= length; - } - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/mantle/Mantle.java b/core/src/main/java/com/volmit/iris/util/mantle/Mantle.java deleted file mode 100644 index 46185cc05..000000000 --- a/core/src/main/java/com/volmit/iris/util/mantle/Mantle.java +++ /dev/null @@ -1,773 +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 com.volmit.iris.util.mantle; - -import com.google.common.util.concurrent.AtomicDouble; -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.engine.data.cache.Cache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.mantle.EngineMantle; -import com.volmit.iris.engine.mantle.MantleWriter; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.documentation.BlockCoordinates; -import com.volmit.iris.util.documentation.ChunkCoordinates; -import com.volmit.iris.util.documentation.RegionCoordinates; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.function.Consumer3; -import com.volmit.iris.util.function.Consumer4; -import com.volmit.iris.util.io.IO; -import com.volmit.iris.util.mantle.io.IOWorker; -import com.volmit.iris.util.mantle.flag.MantleFlag; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.matter.Matter; -import com.volmit.iris.util.matter.MatterSlice; -import com.volmit.iris.util.parallel.BurstExecutor; -import com.volmit.iris.util.parallel.HyperLock; -import com.volmit.iris.util.parallel.MultiBurst; -import lombok.Getter; -import org.bukkit.Chunk; - -import java.io.*; -import java.util.concurrent.*; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.concurrent.atomic.AtomicReference; -import java.util.function.Function; -import java.util.function.Supplier; - -/** - * The mantle can store any type of data slice anywhere and manage regions & IO on it's own. - * This class is fully thread safe read & writeNodeData - */ - -public class Mantle { - private static final int LOCK_SIZE = Short.MAX_VALUE; - - private final File dataFolder; - @Getter - private final int worldHeight; - private final KMap lastUse; - private final KMap loadedRegions; - private final HyperLock hyperLock; - private final AtomicBoolean closed; - private final MultiBurst ioBurst; - private final Semaphore ioTrim; - private final Semaphore ioTectonicUnload; - private final IOWorker worker; - private final AtomicDouble adjustedIdleDuration; - private final KSet toUnload; - - /** - * Create a new mantle - * - * @param dataFolder the data folder - * @param worldHeight the world's height (in blocks) - */ - @BlockCoordinates - public Mantle(File dataFolder, int worldHeight) { - this.hyperLock = new HyperLock(); - this.closed = new AtomicBoolean(false); - this.dataFolder = dataFolder; - this.worldHeight = worldHeight; - this.ioTrim = new Semaphore(LOCK_SIZE, true); - this.ioTectonicUnload = new Semaphore(LOCK_SIZE, true); - loadedRegions = new KMap<>(); - lastUse = new KMap<>(); - ioBurst = MultiBurst.ioBurst; - adjustedIdleDuration = new AtomicDouble(0); - toUnload = new KSet<>(); - worker = new IOWorker(dataFolder, worldHeight); - Iris.debug("Opened The Mantle " + C.DARK_AQUA + dataFolder.getAbsolutePath()); - } - - /** - * Get the file for a region - * - * @param folder the folder - * @param x the x coord - * @param z the z coord - * @return the file - */ - public static File fileForRegion(File folder, int x, int z) { - return fileForRegion(folder, key(x, z), true); - } - - /** - * Get the file for the given region - * - * @param folder the data folder - * @param key the region key - * @return the file - */ - public static File fileForRegion(File folder, Long key, boolean convert) { - File f = oldFileForRegion(folder, key); - File fv = new File(folder, "pv." + key + ".ttp.lz4b"); - if (f.exists() && !fv.exists() && convert) - return f; - - if (!fv.getParentFile().exists()) { - fv.getParentFile().mkdirs(); - } - return fv; - } - - - /** - * Get the old file for the given region - * - * @param folder the data folder - * @param key the region key - * @return the file - */ - public static File oldFileForRegion(File folder, Long key) { - return new File(folder, "p." + key + ".ttp.lz4b"); - } - - /** - * Get the long value representing a chunk or region coordinate - * - * @param x the x - * @param z the z - * @return the value - */ - public static Long key(int x, int z) { - return Cache.key(x, z); - } - - /** - * Raise a flag if it is lowered currently, If the flag was raised, execute the runnable - * - * @param x the chunk x - * @param z the chunk z - * @param flag the flag to raise - * @param r the runnable to fire if the flag is now raised (and was previously lowered) - */ - @ChunkCoordinates - public void raiseFlag(int x, int z, MantleFlag flag, Runnable r) { - if (!hasFlag(x, z, flag)) { - flag(x, z, flag, true); - r.run(); - } - } - - /** - * Obtain a cached writer which only contains cached chunks. - * This avoids locking on regions when writing to lots of chunks - * - * @param x the x chunk - * @param z the z chunk - * @param radius the radius chunks - * @return the writer - */ - @ChunkCoordinates - public MantleWriter write(EngineMantle engineMantle, int x, int z, int radius, boolean multicore) { - return new MantleWriter(engineMantle, this, x, z, radius, multicore); - } - - /** - * Lower a flag if it is raised. If the flag was lowered (meaning it was previously raised), execute the runnable - * - * @param x the chunk x - * @param z the chunk z - * @param flag the flag to lower - * @param r the runnable that is fired if the flag was raised but is now lowered - */ - @ChunkCoordinates - public void lowerFlag(int x, int z, MantleFlag flag, Runnable r) { - if (hasFlag(x, z, flag)) { - flag(x, z, flag, false); - r.run(); - } - } - - @ChunkCoordinates - public MantleChunk getChunk(int x, int z) { - return get(x >> 5, z >> 5).getOrCreate(x & 31, z & 31); - } - - public void getChunks(final int minChunkX, - final int maxChunkX, - final int minChunkZ, - final int maxChunkZ, - int parallelism, - final Consumer3 consumer - ) { - if (parallelism <= 0) parallelism = 1; - final var lock = new Semaphore(parallelism); - - final int minRegionX = minChunkX >> 5; - final int maxRegionX = maxChunkX >> 5; - final int minRegionZ = minChunkZ >> 5; - final int maxRegionZ = maxChunkZ >> 5; - - final int minRelativeX = minChunkX & 31; - final int maxRelativeX = maxChunkX & 31; - final int minRelativeZ = minChunkZ & 31; - final int maxRelativeZ = maxChunkZ & 31; - - final AtomicReference error = new AtomicReference<>(); - for (int rX = minRegionX; rX <= maxRegionX; rX++) { - final int minX = rX == minRegionX ? minRelativeX : 0; - final int maxX = rX == maxRegionX ? maxRelativeX : 31; - for (int rZ = minRegionZ; rZ <= maxRegionZ; rZ++) { - final int minZ = rZ == minRegionZ ? minRelativeZ : 0; - final int maxZ = rZ == maxRegionZ ? maxRelativeZ : 31; - final int realX = rX << 5; - final int realZ = rZ << 5; - - lock.acquireUninterruptibly(); - final var e = error.get(); - if (e != null) { - if (e instanceof RuntimeException ex) throw ex; - else if (e instanceof Error ex) throw ex; - else throw new RuntimeException(error.get()); - } - - getFuture(rX, rZ) - .thenAccept(region -> { - final MantleChunk zero = region.getOrCreate(0, 0).use(); - try { - for (int xx = minX; xx <= maxX; xx++) { - for (int zz = minZ; zz <= maxZ; zz++) { - consumer.accept(realX + xx, realZ + zz, region.getOrCreate(xx, zz)); - } - } - } finally { - zero.release(); - } - }) - .exceptionally(ex -> { - error.set(ex); - return null; - }) - .thenRun(lock::release); - } - } - - lock.acquireUninterruptibly(parallelism); - } - - /** - * Flag or unflag a chunk - * - * @param x the chunk x - * @param z the chunk z - * @param flag the flag - * @param flagged should it be set to flagged or not - */ - @ChunkCoordinates - public void flag(int x, int z, MantleFlag flag, boolean flagged) { - get(x >> 5, z >> 5).getOrCreate(x & 31, z & 31).flag(flag, flagged); - } - - public void deleteChunk(int x, int z) { - get(x >> 5, z >> 5).delete(x & 31, z & 31); - } - - /** - * Check very quickly if a tectonic plate exists via cached or the file system - * - * @param x the x region coordinate - * @param z the z region coordinate - * @return true if it exists - */ - @RegionCoordinates - public boolean hasTectonicPlate(int x, int z) { - Long k = key(x, z); - return loadedRegions.containsKey(k) || fileForRegion(dataFolder, k, true).exists(); - } - - /** - * Iterate data in a chunk - * - * @param x the chunk x - * @param z the chunk z - * @param type the type of data to iterate - * @param iterator the iterator (x,y,z,data) -> do stuff - * @param the type of data to iterate - */ - @ChunkCoordinates - public void iterateChunk(int x, int z, Class type, Consumer4 iterator) { - /*if(!hasTectonicPlate(x >> 5, z >> 5)) { - return; - }*/ - - get(x >> 5, z >> 5).getOrCreate(x & 31, z & 31).iterate(type, iterator); - } - - /** - * Does this chunk have a flag on it? - * - * @param x the x - * @param z the z - * @param flag the flag to test - * @return true if it's flagged - */ - @ChunkCoordinates - public boolean hasFlag(int x, int z, MantleFlag flag) { - if (!hasTectonicPlate(x >> 5, z >> 5)) { - return false; - } - - return get(x >> 5, z >> 5).getOrCreate(x & 31, z & 31).isFlagged(flag); - } - - /** - * Set data T at the given block position. This method will attempt to find a - * Tectonic Plate either by loading it or creating a new one. This method uses - * the hyper lock packaged with each Mantle. The hyperlock allows locking of multiple - * threads at a single region while still allowing other threads to continue - * reading & writing other regions. Hyperlocks are slow sync, but in multicore - * environments, they drastically speed up loading & saving large counts of plates - * - * @param x the block's x coordinate - * @param y the block's y coordinate - * @param z the block's z coordinate - * @param t the data to set at the block - * @param the type of data (generic method) - */ - @BlockCoordinates - public void set(int x, int y, int z, T t) { - if (closed.get()) { - throw new RuntimeException("The Mantle is closed"); - } - - if (y < 0 || y >= worldHeight) { - return; - } - - Matter matter = get((x >> 4) >> 5, (z >> 4) >> 5) - .getOrCreate((x >> 4) & 31, (z >> 4) & 31) - .getOrCreate(y >> 4); - matter.slice(matter.getClass(t)) - .set(x & 15, y & 15, z & 15, t); - } - - @BlockCoordinates - public void remove(int x, int y, int z, Class t) { - if (closed.get()) { - throw new RuntimeException("The Mantle is closed"); - } - - if (y < 0 || y >= worldHeight) { - return; - } - - Matter matter = get((x >> 4) >> 5, (z >> 4) >> 5) - .getOrCreate((x >> 4) & 31, (z >> 4) & 31) - .getOrCreate(y >> 4); - matter.slice(t) - .set(x & 15, y & 15, z & 15, null); - } - - /** - * Gets the data at the current block position This method will attempt to find a - * Tectonic Plate either by loading it or creating a new one. This method uses - * the hyper lock packaged with each Mantle. The hyperlock allows locking of multiple - * threads at a single region while still allowing other threads to continue - * reading & writing other regions. Hyperlocks are slow sync, but in multicore - * environments, they drastically speed up loading & saving large counts of plates - * - * @param x the block's x coordinate - * @param y the block's y coordinate - * @param z the block's z coordinate - * @param t the class representing the type of data being requested - * @param the type assumed from the provided class - * @return the returned result (or null) if it doesnt exist - */ - @SuppressWarnings("unchecked") - @BlockCoordinates - public T get(int x, int y, int z, Class t) { - if (closed.get()) { - throw new RuntimeException("The Mantle is closed"); - } - - if (!hasTectonicPlate((x >> 4) >> 5, (z >> 4) >> 5)) { - return null; - } - - if (y < 0 || y >= worldHeight) { - return null; - } - - return (T) get((x >> 4) >> 5, (z >> 4) >> 5) - .getOrCreate((x >> 4) & 31, (z >> 4) & 31) - .getOrCreate(y >> 4).slice(t) - .get(x & 15, y & 15, z & 15); - } - - /** - * Is this mantle closed - * - * @return true if it is - */ - public boolean isClosed() { - return closed.get(); - } - - public void set(int x, int y, int z, Matter matter) { - for (MatterSlice i : matter.getSliceMap().values()) { - i.iterate((mx, my, mz, v) -> set(mx + x, my + y, mz + z, v)); - } - } - - /** - * Closes the Mantle. By closing the mantle, you can no longer read or writeNodeData - * any data to the mantle or it's Tectonic Plates. Closing will also flush any - * loaded regions to the disk in parallel. - */ - public synchronized void close() { - Iris.debug("Closing The Mantle " + C.DARK_AQUA + dataFolder.getAbsolutePath()); - if (closed.getAndSet(true)) { - return; - } - - hyperLock.disable(); - BurstExecutor b = ioBurst.burst(toUnload.size()); - loadedRegions.forEach((i, plate) -> b.queue(() -> { - try { - plate.close(); - worker.write(fileForRegion(dataFolder, i, false).getName(), plate); - oldFileForRegion(dataFolder, i).delete(); - } catch (Throwable e) { - Iris.error("Failed to write Tectonic Plate " + C.DARK_GREEN + Cache.keyX(i) + " " + Cache.keyZ(i)); - Iris.reportError(e); - e.printStackTrace(); - } - })); - loadedRegions.clear(); - - try { - b.complete(); - } catch (Throwable e) { - Iris.reportError(e); - } - try { - worker.close(); - } catch (Throwable e) { - Iris.reportError(e); - } - - IO.delete(new File(dataFolder, ".tmp")); - Iris.debug("The Mantle has Closed " + C.DARK_AQUA + dataFolder.getAbsolutePath()); - } - - /** - * Save & unload regions that have not been used for more than the - * specified amount of milliseconds - * - * @param baseIdleDuration the duration - */ - public synchronized void trim(long baseIdleDuration, int tectonicLimit) { - if (closed.get()) { - throw new RuntimeException("The Mantle is closed"); - } - - double idleDuration = baseIdleDuration; - if (loadedRegions.size() > tectonicLimit) { - // todo update this correctly and maybe do something when its above a 100% - idleDuration = Math.max(idleDuration - (1000 * (((loadedRegions.size() - tectonicLimit) / (double) tectonicLimit) * 100) * 0.4), 4000); - } - adjustedIdleDuration.set(idleDuration); - - ioTrim.acquireUninterruptibly(LOCK_SIZE); - try { - Iris.debug("Trimming Tectonic Plates older than " + Form.duration(idleDuration, 0)); - - if (lastUse.isEmpty()) return; - double unloadTime = M.ms() - idleDuration; - for (long id : lastUse.keySet()) { - hyperLock.withLong(id, () -> { - Long lastUseTime = lastUse.get(id); - if (lastUseTime != null && lastUseTime < unloadTime) { - toUnload.add(id); - Iris.debug("Tectonic Region added to unload"); - } - }); - } - } catch (Throwable e) { - Iris.reportError(e); - } finally { - ioTrim.release(LOCK_SIZE); - } - } - - public synchronized int unloadTectonicPlate(int tectonicLimit) { - if (closed.get()) { - throw new RuntimeException("The Mantle is closed"); - } - - AtomicInteger i = new AtomicInteger(); - BurstExecutor burst = ioBurst.burst(toUnload.size()); - burst.setMulticore(toUnload.size() > tectonicLimit); - - ioTectonicUnload.acquireUninterruptibly(LOCK_SIZE); - try { - double unloadTime = M.ms() - adjustedIdleDuration.get(); - for (long id : toUnload) { - burst.queue(() -> hyperLock.withLong(id, () -> { - TectonicPlate m = loadedRegions.get(id); - if (m == null) { - Iris.debug("Tectonic Plate was added to unload while not loaded " + C.DARK_GREEN + Cache.keyX(id) + " " + Cache.keyZ(id)); - toUnload.remove(id); - return; - } - - var used = lastUse.getOrDefault(id, 0L); - if (!toUnload.contains(id) || used >= unloadTime) { - return; - } - - if (m.inUse()) { - Iris.debug("Tectonic Plate was added to unload while in use " + C.DARK_GREEN + m.getX() + " " + m.getZ()); - use(id); - return; - } - - try { - m.close(); - worker.write(fileForRegion(dataFolder, id, false).getName(), m); - oldFileForRegion(dataFolder, id).delete(); - loadedRegions.remove(id, m); - lastUse.remove(id); - toUnload.remove(id); - i.incrementAndGet(); - Iris.debug("Unloaded Tectonic Plate " + C.DARK_GREEN + Cache.keyX(id) + " " + Cache.keyZ(id)); - } catch (IOException | InterruptedException e) { - Iris.reportError(e); - } - })); - } - burst.complete(); - } catch (Throwable e) { - Iris.reportError(e); - e.printStackTrace(); - burst.complete(); - } finally { - ioTectonicUnload.release(LOCK_SIZE); - } - return i.get(); - } - - - /** - * This retreives a future of the Tectonic Plate at the given coordinates. - * All methods accessing tectonic plates should go through this method - * - * @param x the region x - * @param z the region z - * @return the future of a tectonic plate. - */ - @RegionCoordinates - private TectonicPlate get(int x, int z) { - boolean trim = ioTrim.tryAcquire(); - boolean unload = ioTectonicUnload.tryAcquire(); - try { - if (!trim || !unload) { - try { - return getSafe(x, z).get(); - } catch (Throwable e) { - e.printStackTrace(); - } - } else { - Long key = key(x, z); - TectonicPlate p = loadedRegions.get(key); - - if (p != null && !p.isClosed()) { - use(key); - return p; - } - } - - try { - return getSafe(x, z).get(); - } catch (InterruptedException e) { - Iris.warn("Failed to get Tectonic Plate " + x + " " + z + " Due to a thread intterruption (hotload?)"); - Iris.reportError(e); - } catch (ExecutionException e) { - Iris.warn("Failed to get Tectonic Plate " + x + " " + z + " Due to a thread execution exception (engine close?)"); - Iris.reportError(e); - } catch (Throwable e) { - Iris.warn("Failed to get Tectonic Plate " + x + " " + z + " Due to a unknown exception"); - Iris.reportError(e); - } - } finally { - if (trim) ioTrim.release(); - if (unload) ioTectonicUnload.release(); - } - - Iris.warn("Retrying to get " + x + " " + z + " Mantle Region"); - return get(x, z); - } - - private CompletableFuture getFuture(int x, int z) { - final boolean trim = ioTrim.tryAcquire(); - final boolean unload = ioTectonicUnload.tryAcquire(); - final Function release = p -> { - if (trim) ioTrim.release(); - if (unload) ioTectonicUnload.release(); - return p; - }; - - final Supplier> fallback = () -> getSafe(x, z) - .exceptionally(e -> { - if (e instanceof InterruptedException) { - Iris.warn("Failed to get Tectonic Plate " + x + " " + z + " Due to a thread intterruption (hotload?)"); - Iris.reportError(e); - } else { - Iris.warn("Failed to get Tectonic Plate " + x + " " + z + " Due to a unknown exception"); - Iris.reportError(e); - e.printStackTrace(); - } - return null; - }) - .thenCompose(p -> { - release.apply(p); - if (p != null) return CompletableFuture.completedFuture(p); - Iris.warn("Retrying to get " + x + " " + z + " Mantle Region"); - return getFuture(x, z); - }); - - if (!trim || !unload) { - return getSafe(x, z) - .thenApply(release) - .exceptionallyCompose(e -> { - e.printStackTrace(); - return fallback.get(); - }); - } - - Long key = key(x, z); - TectonicPlate p = loadedRegions.get(key); - if (p != null && !p.isClosed()) { - use(key); - return CompletableFuture.completedFuture(release.apply(p)); - } - - return fallback.get(); - } - - /** - * This retreives a future of the Tectonic Plate at the given coordinates. - * All methods accessing tectonic plates should go through this method - * - * @param x the region x - * @param z the region z - * @return the future of a tectonic plate. - */ - @RegionCoordinates - protected CompletableFuture getSafe(int x, int z) { - return ioBurst.completableFuture(() -> hyperLock.withResult(x, z, () -> { - Long k = key(x, z); - use(k); - TectonicPlate r = loadedRegions.get(k); - if (r != null && !r.isClosed()) { - return r; - } - - TectonicPlate region; - File file = fileForRegion(dataFolder, x, z); - if (file.exists()) { - try { - Iris.addPanic("reading.tectonic-plate", file.getAbsolutePath()); - region = worker.read(file.getName()); - - if (region.getX() != x || region.getZ() != z) { - Iris.warn("Loaded Tectonic Plate " + x + "," + z + " but read it as " + region.getX() + "," + region.getZ() + "... Assuming " + x + "," + z); - } - - loadedRegions.put(k, region); - Iris.debug("Loaded Tectonic Plate " + C.DARK_GREEN + x + " " + z + C.DARK_AQUA + " " + file.getName()); - } catch (Throwable e) { - Iris.error("Failed to read Tectonic Plate " + file.getAbsolutePath() + " creating a new chunk instead."); - Iris.reportError(e); - if (!(e instanceof EOFException)) { - e.printStackTrace(); - } - Iris.panic(); - region = new TectonicPlate(worldHeight, x, z); - loadedRegions.put(k, region); - Iris.debug("Created new Tectonic Plate (Due to Load Failure) " + C.DARK_GREEN + x + " " + z); - } - - use(k); - return region; - } - - region = new TectonicPlate(worldHeight, x, z); - loadedRegions.put(k, region); - Iris.debug("Created new Tectonic Plate " + C.DARK_GREEN + x + " " + z); - use(k); - return region; - })); - } - - private void use(Long key) { - lastUse.put(key, M.ms()); - toUnload.remove(key); - } - - public void saveAll() { - - } - - public MantleChunk getChunk(Chunk e) { - return getChunk(e.getX(), e.getZ()); - } - - public void deleteChunkSlice(int x, int z, Class c) { - if (IrisToolbelt.isRetainingMantleDataForSlice(c.getCanonicalName())) { - return; - } - - getChunk(x, z).deleteSlices(c); - } - - public int getLoadedRegionCount() { - return loadedRegions.size(); - } - - public int getUnloadRegionCount() { - return toUnload.size(); - } - - public double getAdjustedIdleDuration() { - return adjustedIdleDuration.get(); - } - - public void set(int x, int y, int z, MatterSlice slice) { - if (slice.isEmpty()) { - return; - } - - slice.iterateSync((xx, yy, zz, t) -> set(x + xx, y + yy, z + zz, t)); - } - - public boolean isLoaded(Chunk c) { - return loadedRegions.containsKey(key(c.getX() >> 5, c.getZ() >> 5)); - } - - public boolean shouldReduce(Engine engine) { - return !engine.isStudio() || IrisSettings.get().getPerformance().isTrimMantleInStudio(); - } -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/mantle/MantleChunk.java b/core/src/main/java/com/volmit/iris/util/mantle/MantleChunk.java deleted file mode 100644 index eac477711..000000000 --- a/core/src/main/java/com/volmit/iris/util/mantle/MantleChunk.java +++ /dev/null @@ -1,296 +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 com.volmit.iris.util.mantle; - -import com.volmit.iris.Iris; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.util.documentation.ChunkCoordinates; -import com.volmit.iris.util.documentation.ChunkRelativeBlockCoordinates; -import com.volmit.iris.util.function.Consumer4; -import com.volmit.iris.util.io.CountingDataInputStream; -import com.volmit.iris.util.matter.IrisMatter; -import com.volmit.iris.util.matter.Matter; -import com.volmit.iris.util.matter.MatterSlice; -import lombok.Getter; -import lombok.SneakyThrows; -import org.jetbrains.annotations.Nullable; - -import java.io.ByteArrayOutputStream; -import java.io.DataOutputStream; -import java.io.IOException; -import java.util.concurrent.Semaphore; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicReferenceArray; - -/** - * Represents a mantle chunk. Mantle chunks contain sections of matter (see matter api) - * Mantle Chunks are fully atomic & thread safe - */ -public class MantleChunk extends FlaggedChunk { - @Getter - private final int x; - @Getter - private final int z; - private final AtomicReferenceArray sections; - private final Semaphore ref = new Semaphore(Integer.MAX_VALUE, true); - private final AtomicBoolean closed = new AtomicBoolean(false); - - /** - * Create a mantle chunk - * - * @param sectionHeight the height of the world in sections (blocks >> 4) - */ - @ChunkCoordinates - public MantleChunk(int sectionHeight, int x, int z) { - sections = new AtomicReferenceArray<>(sectionHeight); - this.x = x; - this.z = z; - } - - /** - * Load a mantle chunk from a data stream - * - * @param sectionHeight the height of the world in sections (blocks >> 4) - * @param din the data input - * @throws IOException shit happens - * @throws ClassNotFoundException shit happens - */ - public MantleChunk(int version, int sectionHeight, CountingDataInputStream din) throws IOException { - this(sectionHeight, din.readByte(), din.readByte()); - int s = din.readByte(); - readFlags(version, din); - - for (int i = 0; i < s; i++) { - Iris.addPanic("read.section", "Section[" + i + "]"); - long size = din.readInt(); - if (size == 0) continue; - long start = din.count(); - if (i >= sectionHeight) { - din.skipTo(start + size); - continue; - } - - try { - sections.set(i, Matter.readDin(din)); - } catch (IOException e) { - long end = start + size; - Iris.error("Failed to read chunk section, skipping it."); - Iris.addPanic("read.byte.range", start + " " + end); - Iris.addPanic("read.byte.current", din.count() + ""); - Iris.reportError(e); - e.printStackTrace(); - Iris.panic(); - - din.skipTo(end); - TectonicPlate.addError(); - } - if (din.count() != start + size) { - throw new IOException("Chunk section read size mismatch!"); - } - } - } - - @SneakyThrows - public void close() { - closed.set(true); - ref.acquire(Integer.MAX_VALUE); - ref.release(Integer.MAX_VALUE); - } - - public boolean inUse() { - return ref.availablePermits() < Integer.MAX_VALUE; - } - - public MantleChunk use() { - if (closed.get()) throw new IllegalStateException("Chunk is closed!"); - ref.acquireUninterruptibly(); - if (closed.get()) { - ref.release(); - throw new IllegalStateException("Chunk is closed!"); - } - return this; - } - - public void release() { - ref.release(); - } - - public void copyFrom(MantleChunk chunk) { - use(); - super.copyFrom(chunk, () -> { - for (int i = 0; i < sections.length(); i++) { - sections.set(i, chunk.get(i)); - } - }); - release(); - } - - /** - * Check if a section exists (same as get(section) != null) - * - * @param section the section (0 - (worldHeight >> 4)) - * @return true if it exists - */ - @ChunkCoordinates - public boolean exists(int section) { - return get(section) != null; - } - - /** - * Get thje matter at the given section or null if it doesnt exist - * - * @param section the section (0 - (worldHeight >> 4)) - * @return the matter or null if it doesnt exist - */ - @ChunkCoordinates - public Matter get(int section) { - return sections.get(section); - } - - @Nullable - @ChunkRelativeBlockCoordinates - @SuppressWarnings("unchecked") - public T get(int x, int y, int z, Class type) { - return (T) getOrCreate(y >> 4) - .slice(type) - .get(x & 15, y & 15, z & 15); - } - - /** - * Clear all matter from this chunk - */ - public void clear() { - for (int i = 0; i < sections.length(); i++) { - delete(i); - } - } - - /** - * Delete the matter from the given section - * - * @param section the section (0 - (worldHeight >> 4)) - */ - @ChunkCoordinates - public void delete(int section) { - sections.set(section, null); - } - - /** - * Get or create a new matter section at the given section - * - * @param section the section (0 - (worldHeight >> 4)) - * @return the matter - */ - @ChunkCoordinates - public Matter getOrCreate(int section) { - final Matter matter = get(section); - if (matter != null) return matter; - - final Matter instance = new IrisMatter(16, 16, 16); - final Matter value = sections.compareAndExchange(section, null, instance); - return value == null ? instance : value; - } - - /** - * Write this chunk to a data stream - * - * @param dos the stream - * @throws IOException shit happens - */ - public void write(DataOutputStream dos) throws IOException { - close(); - dos.writeByte(x); - dos.writeByte(z); - dos.writeByte(sections.length()); - writeFlags(dos); - - var bytes = new ByteArrayOutputStream(8192); - var sub = new DataOutputStream(bytes); - for (int i = 0; i < sections.length(); i++) { - trimSlice(i); - - if (exists(i)) { - try { - Matter matter = get(i); - matter.writeDos(sub); - dos.writeInt(bytes.size()); - bytes.writeTo(dos); - } finally { - bytes.reset(); - } - } else { - dos.writeInt(0); - } - } - } - - private void trimSlice(int i) { - if (exists(i)) { - Matter m = get(i); - - if (m.getSliceMap().isEmpty()) { - sections.set(i, null); - } else { - m.trimSlices(); - if (m.getSliceMap().isEmpty()) { - sections.set(i, null); - } - } - } - } - - public void iterate(Class type, Consumer4 iterator) { - for (int i = 0; i < sections.length(); i++) { - int bs = (i << 4); - Matter matter = get(i); - - if (matter != null) { - MatterSlice t = matter.getSlice(type); - - if (t != null) { - t.iterateSync((a, b, c, f) -> iterator.accept(a, b + bs, c, f)); - } - } - } - } - - public void deleteSlices(Class c) { - if (IrisToolbelt.isRetainingMantleDataForSlice(c.getCanonicalName())) - return; - for (int i = 0; i < sections.length(); i++) { - Matter m = sections.get(i); - if (m != null && m.hasSlice(c)) { - m.deleteSlice(c); - } - } - } - - public void trimSlices() { - for (int i = 0; i < sections.length(); i++) { - if (exists(i)) { - trimSlice(i); - } - } - } - - @Override - public boolean isClosed() { - return closed.get(); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/mantle/TectonicPlate.java b/core/src/main/java/com/volmit/iris/util/mantle/TectonicPlate.java deleted file mode 100644 index 402212301..000000000 --- a/core/src/main/java/com/volmit/iris/util/mantle/TectonicPlate.java +++ /dev/null @@ -1,233 +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 com.volmit.iris.util.mantle; - -import com.volmit.iris.Iris; -import com.volmit.iris.engine.EnginePanic; -import com.volmit.iris.engine.data.cache.Cache; -import com.volmit.iris.util.data.Varint; -import com.volmit.iris.util.documentation.ChunkCoordinates; -import com.volmit.iris.util.io.CountingDataInputStream; -import lombok.Getter; - -import java.io.*; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicReferenceArray; - -/** - * Tectonic Plates are essentially representations of regions in minecraft. - * Tectonic Plates are fully atomic & thread safe - */ -public class TectonicPlate { - private static final ThreadLocal errors = ThreadLocal.withInitial(() -> false); - public static final int MISSING = -1; - public static final int CURRENT = 1; - - private final int sectionHeight; - private final AtomicReferenceArray chunks; - private final AtomicBoolean closed; - - @Getter - private final int x; - - @Getter - private final int z; - - /** - * Create a new tectonic plate - * - * @param worldHeight the height of the world - */ - public TectonicPlate(int worldHeight, int x, int z) { - this.sectionHeight = worldHeight >> 4; - this.chunks = new AtomicReferenceArray<>(1024); - this.closed = new AtomicBoolean(false); - this.x = x; - this.z = z; - } - - /** - * Load a tectonic plate from a data stream - * - * @param worldHeight the height of the world - * @param din the data input - * @throws IOException shit happens yo - */ - public TectonicPlate(int worldHeight, CountingDataInputStream din, boolean versioned) throws IOException { - this(worldHeight, din.readInt(), din.readInt()); - if (!din.markSupported()) - throw new IOException("Mark not supported!"); - - int v = versioned ? Varint.readUnsignedVarInt(din) : MISSING; - for (int i = 0; i < chunks.length(); i++) { - long size = din.readInt(); - if (size == 0) continue; - long start = din.count(); - - try { - Iris.addPanic("read-chunk", "Chunk[" + i + "]"); - chunks.set(i, new MantleChunk(v, sectionHeight, din)); - EnginePanic.saveLast(); - } catch (Throwable e) { - long end = start + size; - Iris.error("Failed to read chunk, creating a new chunk instead."); - Iris.addPanic("read.byte.range", start + " " + end); - Iris.addPanic("read.byte.current", din.count() + ""); - Iris.reportError(e); - e.printStackTrace(); - Iris.panic(); - - din.skipTo(end); - TectonicPlate.addError(); - } - } - } - - public boolean inUse() { - for (int i = 0; i < chunks.length(); i++) { - MantleChunk chunk = chunks.get(i); - if (chunk != null && chunk.inUse()) - return true; - } - return false; - } - - public void close() throws InterruptedException { - closed.set(true); - for (int i = 0; i < chunks.length(); i++) { - MantleChunk chunk = chunks.get(i); - if (chunk != null) { - chunk.close(); - } - } - } - - public boolean isClosed() { - return closed.get(); - } - - /** - * Check if a chunk exists in this plate or not (same as get(x, z) != null) - * - * @param x the chunk relative x (0-31) - * @param z the chunk relative z (0-31) - * @return true if the chunk exists - */ - @ChunkCoordinates - public boolean exists(int x, int z) { - return get(x, z) != null; - } - - /** - * Get a chunk at the given coordinates or null if it doesnt exist - * - * @param x the chunk relative x (0-31) - * @param z the chunk relative z (0-31) - * @return the chunk or null if it doesnt exist - */ - @ChunkCoordinates - public MantleChunk get(int x, int z) { - return chunks.get(index(x, z)); - } - - /** - * Clear all chunks from this tectonic plate - */ - public void clear() { - for (int i = 0; i < chunks.length(); i++) { - chunks.set(i, null); - } - } - - /** - * Delete a chunk from this tectonic plate - * - * @param x the chunk relative x (0-31) - * @param z the chunk relative z (0-31) - */ - @ChunkCoordinates - public void delete(int x, int z) { - chunks.set(index(x, z), null); - } - - /** - * Get a tectonic plate, or create one and insert it & return it if it diddnt exist - * - * @param x the chunk relative x (0-31) - * @param z the chunk relative z (0-31) - * @return the chunk (read or created & inserted) - */ - @ChunkCoordinates - public MantleChunk getOrCreate(int x, int z) { - final int index = index(x, z); - final MantleChunk chunk = chunks.get(index); - if (chunk != null) return chunk; - - final MantleChunk instance = new MantleChunk(sectionHeight, x & 31, z & 31); - final MantleChunk value = chunks.compareAndExchange(index, null, instance); - return value == null ? instance : value; - } - - @ChunkCoordinates - private int index(int x, int z) { - return Cache.to1D(x, z, 0, 32, 32); - } - - /** - * Write this tectonic plate to a data stream - * - * @param dos the data output - * @throws IOException shit happens - */ - public void write(DataOutputStream dos) throws IOException { - dos.writeInt(x); - dos.writeInt(z); - Varint.writeUnsignedVarInt(CURRENT, dos); - - var bytes = new ByteArrayOutputStream(8192); - var sub = new DataOutputStream(bytes); - for (int i = 0; i < chunks.length(); i++) { - MantleChunk chunk = chunks.get(i); - - if (chunk != null) { - try { - chunk.write(sub); - dos.writeInt(bytes.size()); - bytes.writeTo(dos); - } finally { - bytes.reset(); - } - } else { - dos.writeInt(0); - } - } - } - - public static void addError() { - errors.set(true); - } - - public static boolean hasError() { - try { - return errors.get(); - } finally { - errors.remove(); - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/mantle/flag/CustomFlag.java b/core/src/main/java/com/volmit/iris/util/mantle/flag/CustomFlag.java deleted file mode 100644 index 5b239e1a1..000000000 --- a/core/src/main/java/com/volmit/iris/util/mantle/flag/CustomFlag.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.volmit.iris.util.mantle.flag; - -import org.jetbrains.annotations.NotNull; - -record CustomFlag(String name, int ordinal) implements MantleFlag { - - @Override - public @NotNull String toString() { - return name; - } - - @Override - public boolean isCustom() { - return false; - } - - @Override - public boolean equals(Object object) { - if (!(object instanceof CustomFlag that)) - return false; - return ordinal == that.ordinal; - } - - @Override - public int hashCode() { - return ordinal; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/mantle/flag/MantleFlag.java b/core/src/main/java/com/volmit/iris/util/mantle/flag/MantleFlag.java deleted file mode 100644 index 77aaa8e89..000000000 --- a/core/src/main/java/com/volmit/iris/util/mantle/flag/MantleFlag.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 com.volmit.iris.util.mantle.flag; - -import org.jetbrains.annotations.Contract; - -public sealed interface MantleFlag permits CustomFlag, ReservedFlag { - int MIN_ORDINAL = 64; - int MAX_ORDINAL = 255; - - MantleFlag OBJECT = ReservedFlag.OBJECT; - MantleFlag UPDATE = ReservedFlag.UPDATE; - MantleFlag JIGSAW = ReservedFlag.JIGSAW; - MantleFlag FEATURE = ReservedFlag.FEATURE; - MantleFlag INITIAL_SPAWNED = ReservedFlag.INITIAL_SPAWNED; - MantleFlag REAL = ReservedFlag.REAL; - MantleFlag CARVED = ReservedFlag.CARVED; - MantleFlag FLUID_BODIES = ReservedFlag.FLUID_BODIES; - MantleFlag INITIAL_SPAWNED_MARKER = ReservedFlag.INITIAL_SPAWNED_MARKER; - MantleFlag CLEANED = ReservedFlag.CLEANED; - MantleFlag PLANNED = ReservedFlag.PLANNED; - MantleFlag ETCHED = ReservedFlag.ETCHED; - MantleFlag TILE = ReservedFlag.TILE; - MantleFlag CUSTOM = ReservedFlag.CUSTOM; - MantleFlag DISCOVERED = ReservedFlag.DISCOVERED; - MantleFlag CUSTOM_ACTIVE = ReservedFlag.CUSTOM_ACTIVE; - MantleFlag SCRIPT = ReservedFlag.SCRIPT; - - int RESERVED_FLAGS = ReservedFlag.values().length; - - String name(); - int ordinal(); - - boolean isCustom(); - - @Contract(value = "_ -> new", pure = true) - static MantleFlag of(int ordinal) { - if (ordinal < MIN_ORDINAL || ordinal > MAX_ORDINAL) - throw new IllegalArgumentException("Ordinal must be between " + MIN_ORDINAL + " and " + MAX_ORDINAL); - return new CustomFlag("CUSTOM:"+ordinal, ordinal); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/mantle/flag/MantleFlagAdapter.java b/core/src/main/java/com/volmit/iris/util/mantle/flag/MantleFlagAdapter.java deleted file mode 100644 index c56916df8..000000000 --- a/core/src/main/java/com/volmit/iris/util/mantle/flag/MantleFlagAdapter.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.volmit.iris.util.mantle.flag; - -import com.google.gson.TypeAdapter; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonToken; -import com.google.gson.stream.JsonWriter; - -import java.io.IOException; - -public class MantleFlagAdapter extends TypeAdapter { - private static final String CUSTOM = "CUSTOM:"; - private static final int CUSTOM_LENGTH = CUSTOM.length(); - - @Override - public void write(JsonWriter out, MantleFlag value) throws IOException { - if (value == null) out.nullValue(); - else out.value(value.toString()); - } - - @Override - public MantleFlag read(JsonReader in) throws IOException { - if (in.peek() == JsonToken.NULL) { - in.nextNull(); - return null; - } - String s = in.nextString(); - if (s.startsWith(CUSTOM) && s.length() > CUSTOM_LENGTH) - return MantleFlag.of(Integer.parseInt(s.substring(CUSTOM_LENGTH))); - return ReservedFlag.valueOf(s); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/mantle/flag/ReservedFlag.java b/core/src/main/java/com/volmit/iris/util/mantle/flag/ReservedFlag.java deleted file mode 100644 index 6fb0c97b9..000000000 --- a/core/src/main/java/com/volmit/iris/util/mantle/flag/ReservedFlag.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.volmit.iris.util.mantle.flag; - -public enum ReservedFlag implements MantleFlag { - OBJECT, - UPDATE, - JIGSAW, - FEATURE, - INITIAL_SPAWNED, - REAL, - CARVED, - FLUID_BODIES, - INITIAL_SPAWNED_MARKER, - CLEANED, - PLANNED, - ETCHED, - TILE, - CUSTOM, - DISCOVERED, - CUSTOM_ACTIVE, - SCRIPT; - - @Override - public boolean isCustom() { - return false; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/mantle/io/DelegateStream.java b/core/src/main/java/com/volmit/iris/util/mantle/io/DelegateStream.java deleted file mode 100644 index 2ccbbbe14..000000000 --- a/core/src/main/java/com/volmit/iris/util/mantle/io/DelegateStream.java +++ /dev/null @@ -1,123 +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 com.volmit.iris.util.mantle.io; - -import org.jetbrains.annotations.NotNull; - -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.nio.channels.Channels; -import java.nio.channels.FileChannel; - -public class DelegateStream { - - public static InputStream read(FileChannel channel) throws IOException { - channel.position(0); - return new Input(channel); - } - - public static OutputStream write(FileChannel channel) throws IOException { - channel.position(0); - return new Output(channel); - } - - private static class Input extends InputStream { - private final InputStream delegate; - - private Input(FileChannel channel) { - this.delegate = Channels.newInputStream(channel); - } - - @Override - public int available() throws IOException { - return delegate.available(); - } - - @Override - public int read() throws IOException { - return delegate.read(); - } - - @Override - public int read(byte @NotNull [] b, int off, int len) throws IOException { - return delegate.read(b, off, len); - } - - @Override - public byte @NotNull [] readAllBytes() throws IOException { - return delegate.readAllBytes(); - } - - @Override - public int readNBytes(byte[] b, int off, int len) throws IOException { - return delegate.readNBytes(b, off, len); - } - - @Override - public byte @NotNull [] readNBytes(int len) throws IOException { - return delegate.readNBytes(len); - } - - @Override - public long skip(long n) throws IOException { - return delegate.skip(n); - } - - @Override - public void skipNBytes(long n) throws IOException { - delegate.skipNBytes(n); - } - - @Override - public long transferTo(OutputStream out) throws IOException { - return delegate.transferTo(out); - } - } - - private static class Output extends OutputStream { - private final FileChannel channel; - private final OutputStream delegate; - - private Output(FileChannel channel) { - this.channel = channel; - this.delegate = Channels.newOutputStream(channel); - } - - @Override - public void write(int b) throws IOException { - delegate.write(b); - } - - @Override - public void write(byte @NotNull [] b, int off, int len) throws IOException { - delegate.write(b, off, len); - } - - @Override - public void flush() throws IOException { - channel.truncate(channel.position()); - } - - @Override - public void close() throws IOException { - channel.force(true); - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/mantle/io/Holder.java b/core/src/main/java/com/volmit/iris/util/mantle/io/Holder.java deleted file mode 100644 index fa36ce9c5..000000000 --- a/core/src/main/java/com/volmit/iris/util/mantle/io/Holder.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 com.volmit.iris.util.mantle.io; - -import com.volmit.iris.util.io.IO; - -import java.io.IOException; -import java.nio.channels.FileChannel; -import java.util.concurrent.Semaphore; - -class Holder { - private final FileChannel channel; - private final Semaphore semaphore = new Semaphore(1); - private volatile boolean closed; - - Holder(FileChannel channel) throws IOException { - this.channel = channel; - IO.lock(channel); - } - - SynchronizedChannel acquire() { - semaphore.acquireUninterruptibly(); - if (closed) { - semaphore.release(); - return null; - } - - return new SynchronizedChannel(channel, semaphore); - } - - void close() throws IOException { - semaphore.acquireUninterruptibly(); - try { - if (closed) return; - closed = true; - channel.close(); - } finally { - semaphore.release(); - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/mantle/io/IOWorker.java b/core/src/main/java/com/volmit/iris/util/mantle/io/IOWorker.java deleted file mode 100644 index d2edb4995..000000000 --- a/core/src/main/java/com/volmit/iris/util/mantle/io/IOWorker.java +++ /dev/null @@ -1,130 +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 com.volmit.iris.util.mantle.io; - -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.io.CountingDataInputStream; -import com.volmit.iris.util.mantle.TectonicPlate; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; -import it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap; -import net.jpountz.lz4.LZ4BlockInputStream; -import net.jpountz.lz4.LZ4BlockOutputStream; - -import java.io.*; -import java.nio.channels.FileChannel; -import java.nio.file.*; -import java.util.Objects; -import java.util.Set; - -public class IOWorker { - private static final Set OPTIONS = Set.of(StandardOpenOption.READ, StandardOpenOption.WRITE, StandardOpenOption.CREATE, StandardOpenOption.SYNC); - private static final int MAX_CACHE_SIZE = 128; - - private final Path root; - private final File tmp; - private final int worldHeight; - - private final Object2ObjectLinkedOpenHashMap cache = new Object2ObjectLinkedOpenHashMap<>(); - - public IOWorker(File root, int worldHeight) { - this.root = root.toPath(); - this.tmp = new File(root, ".tmp"); - this.worldHeight = worldHeight; - } - - public TectonicPlate read(final String name) throws IOException { - PrecisionStopwatch p = PrecisionStopwatch.start(); - try (var channel = getChannel(name)) { - var raw = channel.read(); - var lz4 = new LZ4BlockInputStream(raw); - var buffered = new BufferedInputStream(lz4); - try (var in = CountingDataInputStream.wrap(buffered)) { - return new TectonicPlate(worldHeight, in, name.startsWith("pv.")); - } finally { - if (TectonicPlate.hasError() && IrisSettings.get().getGeneral().isDumpMantleOnError()) { - File dump = Iris.instance.getDataFolder("dump", name + ".bin"); - Files.copy(new LZ4BlockInputStream(channel.read()), dump.toPath(), StandardCopyOption.REPLACE_EXISTING); - } else { - Iris.debug("Read Tectonic Plate " + C.DARK_GREEN + name + C.RED + " in " + Form.duration(p.getMilliseconds(), 2)); - } - } - } - } - - public void write(final String name, final TectonicPlate plate) throws IOException { - PrecisionStopwatch p = PrecisionStopwatch.start(); - try (var channel = getChannel(name)) { - tmp.mkdirs(); - File file = File.createTempFile("iris", ".bin", tmp); - try { - try (var tmp = new DataOutputStream(new LZ4BlockOutputStream(new FileOutputStream(file)))) { - plate.write(tmp); - } - - try (var out = channel.write()) { - Files.copy(file.toPath(), out); - out.flush(); - } - } finally { - file.delete(); - } - } - Iris.debug("Saved Tectonic Plate " + C.DARK_GREEN + name + C.RED + " in " + Form.duration(p.getMilliseconds(), 2)); - } - - public void close() throws IOException { - synchronized (cache) { - for (Holder h : cache.values()) { - h.close(); - } - - cache.clear(); - } - } - - private SynchronizedChannel getChannel(final String name) throws IOException { - PrecisionStopwatch p = PrecisionStopwatch.start(); - try { - synchronized (cache) { - Holder holder = cache.getAndMoveToFirst(name); - if (holder != null) { - var channel = holder.acquire(); - if (channel != null) { - return channel; - } - } - - if (cache.size() >= MAX_CACHE_SIZE) { - var last = cache.removeLast(); - last.close(); - } - - - holder = new Holder(FileChannel.open(root.resolve(name), OPTIONS)); - cache.putAndMoveToFirst(name, holder); - return Objects.requireNonNull(holder.acquire()); - } - } finally { - Iris.debug("Acquired Channel for " + C.DARK_GREEN + name + C.RED + " in " + Form.duration(p.getMilliseconds(), 2)); - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/mantle/io/SynchronizedChannel.java b/core/src/main/java/com/volmit/iris/util/mantle/io/SynchronizedChannel.java deleted file mode 100644 index a26d02967..000000000 --- a/core/src/main/java/com/volmit/iris/util/mantle/io/SynchronizedChannel.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 com.volmit.iris.util.mantle.io; - -import java.io.Closeable; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.nio.channels.FileChannel; -import java.util.concurrent.Semaphore; - -public class SynchronizedChannel implements Closeable { - private final FileChannel channel; - private final Semaphore lock; - private transient boolean closed; - - SynchronizedChannel(FileChannel channel, Semaphore lock) { - this.channel = channel; - this.lock = lock; - } - - public InputStream read() throws IOException { - if (closed) throw new IOException("Channel is closed!"); - return DelegateStream.read(channel); - } - - public OutputStream write() throws IOException { - if (closed) throw new IOException("Channel is closed!"); - return DelegateStream.write(channel); - } - - @Override - public void close() throws IOException { - if (closed) return; - closed = true; - lock.release(); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/math/AlignedPoint.java b/core/src/main/java/com/volmit/iris/util/math/AlignedPoint.java deleted file mode 100644 index 15ce5cb72..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/AlignedPoint.java +++ /dev/null @@ -1,38 +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 com.volmit.iris.util.math; - -public class AlignedPoint { - private double x; - private double y; - private double z; - - public double getX() { - return x; - } - - public double getY() { - return y; - } - - public double getZ() { - return z; - } - -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/math/Average.java b/core/src/main/java/com/volmit/iris/util/math/Average.java deleted file mode 100644 index 1ac83cf37..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/Average.java +++ /dev/null @@ -1,101 +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 com.volmit.iris.util.math; - -import com.volmit.iris.util.data.DoubleArrayUtils; - -/** - * Provides an incredibly fast averaging object. It swaps values from a sum - * using an array. Averages do not use any form of looping. An average of 10,000 - * entries is the same speed as an average with 5 entries. - * - * @author cyberpwn - */ -public class Average { - protected final double[] values; - protected int cursor; - private double average; - private double lastSum; - private boolean dirty; - private boolean brandNew; - - /** - * Create an average holder - * - * @param size the size of entries to keep - */ - public Average(int size) { - values = new double[size]; - DoubleArrayUtils.fill(values, 0); - brandNew = true; - average = 0; - cursor = 0; - lastSum = 0; - dirty = false; - } - - /** - * Put a value into the average (rolls over if full) - * - * @param i the value - */ - public void put(double i) { - - dirty = true; - - if (brandNew) { - DoubleArrayUtils.fill(values, i); - lastSum = size() * i; - brandNew = false; - return; - } - - double current = values[cursor]; - lastSum = (lastSum - current) + i; - values[cursor] = i; - cursor = cursor + 1 < size() ? cursor + 1 : 0; - } - - /** - * Get the current average - * - * @return the average - */ - public double getAverage() { - if (dirty) { - calculateAverage(); - return getAverage(); - } - - return average; - } - - private void calculateAverage() { - average = lastSum / (double) size(); - dirty = false; - } - - public int size() { - return values.length; - } - - public boolean isDirty() { - return dirty; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/math/BlockPosition.java b/core/src/main/java/com/volmit/iris/util/math/BlockPosition.java deleted file mode 100644 index 9ca1363f8..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/BlockPosition.java +++ /dev/null @@ -1,111 +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 com.volmit.iris.util.math; - -import lombok.Data; -import org.bukkit.World; -import org.bukkit.block.Block; - -import java.util.Objects; - -@Data -public class BlockPosition { - //Magic numbers - private static final int m1 = 1 + MathHelper.f(MathHelper.c(30000000)); - private static final int m2 = 64 - (m1 * 2); - private static final long m3 = m1 + m2; - private static final long m5 = (1L << m2) - 1L; - private static final long m4 = (1L << m1) - 1L; - private static final long m6 = (1L << m1) - 1L; - private int x; - private int y; - private int z; - - public BlockPosition(int x, int y, int z) { - this.x = x; - this.y = y; - this.z = z; - } - - public static long toLong(int x, int y, int z) { - long var3 = 0L; - var3 |= (x & m4) << m3; - var3 |= (y & m5); - var3 |= (z & m6) << m2; - return var3; - } - - @Override - public int hashCode() { - return Objects.hash(x, y, z); - } - - public boolean equals(Object o) { - if (o == null) { - return false; - } - - if (o instanceof BlockPosition ot) { - - return ot.x == x && ot.y == y && ot.z == z; - } - - return false; - } - - public int getChunkX() { - return x >> 4; - } - - public int getChunkZ() { - return z >> 4; - } - - public boolean is(int x, int z) { - return this.x == x && this.z == z; - } - - public boolean is(int x, int y, int z) { - return this.x == x && this.y == y && this.z == z; - } - - public long asLong() { - return toLong(getX(), getY(), getZ()); - } - - public Block toBlock(World world) { - return world.getBlockAt(x, y, z); - } - - public BlockPosition add(int x, int y, int z) { - return new BlockPosition(this.x + x, this.y + y, this.z + z); - } - - public void min(BlockPosition i) { - setX(Math.min(i.getX(), getX())); - setY(Math.min(i.getY(), getY())); - setZ(Math.min(i.getZ(), getZ())); - } - - public void max(BlockPosition i) { - setX(Math.max(i.getX(), getX())); - setY(Math.max(i.getY(), getY())); - setZ(Math.max(i.getZ(), getZ())); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/math/CDou.java b/core/src/main/java/com/volmit/iris/util/math/CDou.java deleted file mode 100644 index 02964d4ef..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/CDou.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 com.volmit.iris.util.math; - -@SuppressWarnings("ALL") -public class CDou { - private final double max; - private double number; - - public CDou(double max) { - number = 0; - this.max = max; - } - - public CDou set(double n) { - number = n; - circ(); - return this; - } - - public CDou add(double a) { - number += a; - circ(); - return this; - } - - public CDou sub(double a) { - number -= a; - circ(); - return this; - } - - public double get() { - return number; - } - - public void circ() { - if (number < 0) { - number = max - (Math.abs(number) > max ? max : Math.abs(number)); - } - - number = number % (max); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/math/DOP.java b/core/src/main/java/com/volmit/iris/util/math/DOP.java deleted file mode 100644 index 1ea0a4a36..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/DOP.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 com.volmit.iris.util.math; - -import org.bukkit.util.Vector; - -public abstract class DOP { - private final String type; - - public DOP(String type) { - this.type = type; - } - - public abstract Vector op(Vector v); - - public String getType() { - return type; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/math/Direction.java b/core/src/main/java/com/volmit/iris/util/math/Direction.java deleted file mode 100644 index 9ca17b149..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/Direction.java +++ /dev/null @@ -1,382 +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 com.volmit.iris.util.math; - -import com.volmit.iris.util.collection.GBiset; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.data.Cuboid.CuboidDirection; -import org.bukkit.Axis; -import org.bukkit.block.BlockFace; -import org.bukkit.util.Vector; - -import java.util.Map; - -/** - * Directions - * - * @author cyberpwn - */ -public enum Direction { - U(0, 1, 0, CuboidDirection.Up), - D(0, -1, 0, CuboidDirection.Down), - N(0, 0, -1, CuboidDirection.North), - S(0, 0, 1, CuboidDirection.South), - E(1, 0, 0, CuboidDirection.East), - W(-1, 0, 0, CuboidDirection.West); - - private static KMap, DOP> permute = null; - - private final int x; - private final int y; - private final int z; - private final CuboidDirection f; - - Direction(int x, int y, int z, CuboidDirection f) { - this.x = x; - this.y = y; - this.z = z; - this.f = f; - } - - public static Direction getDirection(BlockFace f) { - return switch (f) { - case DOWN -> D; - case EAST, EAST_SOUTH_EAST, EAST_NORTH_EAST -> E; - case NORTH, NORTH_WEST, NORTH_NORTH_WEST, NORTH_NORTH_EAST, NORTH_EAST -> N; - case SELF, UP -> U; - case SOUTH, SOUTH_WEST, SOUTH_SOUTH_WEST, SOUTH_SOUTH_EAST, SOUTH_EAST -> S; - case WEST, WEST_SOUTH_WEST, WEST_NORTH_WEST -> W; - }; - - } - - public static Direction closest(Vector v) { - double m = Double.MAX_VALUE; - Direction s = null; - - for (Direction i : values()) { - Vector x = i.toVector(); - double g = x.dot(v); - - if (g < m) { - m = g; - s = i; - } - } - - return s; - } - - 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) { - Vector k = VectorMath.triNormalize(v.clone().normalize()); - - for (Direction i : udnews()) { - if (i.x == k.getBlockX() && i.y == k.getBlockY() && i.z == k.getBlockZ()) { - return i; - } - } - - return Direction.N; - } - - public static KList udnews() { - return new KList().add(U, D, N, E, W, S); - } - - /** - * Get the directional value from the given byte from common directional blocks - * (MUST BE BETWEEN 0 and 5 INCLUSIVE) - * - * @param b the byte - * @return the direction or null if the byte is outside of the inclusive range - * 0-5 - */ - public static Direction fromByte(byte b) { - if (b > 5 || b < 0) { - return null; - } - - if (b == 0) { - return D; - } else if (b == 1) { - return U; - } else if (b == 2) { - return N; - } else if (b == 3) { - return S; - } else if (b == 4) { - return W; - } else { - return E; - } - } - - public static void calculatePermutations() { - if (permute != null) { - return; - } - - permute = new KMap<>(); - - for (Direction i : udnews()) { - for (Direction j : udnews()) { - GBiset b = new GBiset<>(i, j); - - if (i.equals(j)) { - permute.put(b, new DOP("DIRECT") { - @Override - public Vector op(Vector v) { - return v; - } - }); - } else if (i.reverse().equals(j)) { - if (i.isVertical()) { - permute.put(b, new DOP("R180CCZ") { - @Override - public Vector op(Vector v) { - return VectorMath.rotate90CCZ(VectorMath.rotate90CCZ(v)); - } - }); - } else { - permute.put(b, new DOP("R180CCY") { - @Override - public Vector op(Vector v) { - return VectorMath.rotate90CCY(VectorMath.rotate90CCY(v)); - } - }); - } - } else if (getDirection(VectorMath.rotate90CX(i.toVector())).equals(j)) { - permute.put(b, new DOP("R90CX") { - @Override - public Vector op(Vector v) { - return VectorMath.rotate90CX(v); - } - }); - } else if (getDirection(VectorMath.rotate90CCX(i.toVector())).equals(j)) { - permute.put(b, new DOP("R90CCX") { - @Override - public Vector op(Vector v) { - return VectorMath.rotate90CCX(v); - } - }); - } else if (getDirection(VectorMath.rotate90CY(i.toVector())).equals(j)) { - permute.put(b, new DOP("R90CY") { - @Override - public Vector op(Vector v) { - return VectorMath.rotate90CY(v); - } - }); - } else if (getDirection(VectorMath.rotate90CCY(i.toVector())).equals(j)) { - permute.put(b, new DOP("R90CCY") { - @Override - public Vector op(Vector v) { - return VectorMath.rotate90CCY(v); - } - }); - } else if (getDirection(VectorMath.rotate90CZ(i.toVector())).equals(j)) { - permute.put(b, new DOP("R90CZ") { - @Override - public Vector op(Vector v) { - return VectorMath.rotate90CZ(v); - } - }); - } else if (getDirection(VectorMath.rotate90CCZ(i.toVector())).equals(j)) { - permute.put(b, new DOP("R90CCZ") { - @Override - public Vector op(Vector v) { - return VectorMath.rotate90CCZ(v); - } - }); - } else { - permute.put(b, new DOP("FAIL") { - @Override - public Vector op(Vector v) { - return v; - } - }); - } - } - } - } - - @Override - public String toString() { - return switch (this) { - case D -> "Down"; - case E -> "East"; - case N -> "North"; - case S -> "South"; - case U -> "Up"; - case W -> "West"; - }; - - } - - public boolean isVertical() { - return equals(D) || equals(U); - } - - public Vector toVector() { - return new Vector(x, y, z); - } - - public boolean isCrooked(Direction to) { - if (equals(to.reverse())) { - return false; - } - - return !equals(to); - } - - public Vector angle(Vector initial, Direction d) { - calculatePermutations(); - - for (Map.Entry, DOP> entry : permute.entrySet()) { - GBiset i = entry.getKey(); - if (i.getA().equals(this) && i.getB().equals(d)) { - return entry.getValue().op(initial); - } - } - - return initial; - } - - public Direction reverse() { - switch (this) { - case D: - return U; - case E: - return W; - case N: - return S; - case S: - return N; - case U: - return D; - case W: - return E; - default: - break; - } - - return null; - } - - public int x() { - return x; - } - - public int y() { - return y; - } - - public int z() { - return z; - } - - public CuboidDirection f() { - return f; - } - - /** - * Get the byte value represented in some directional blocks - * - * @return the byte value - */ - public byte byteValue() { - switch (this) { - case D: - return 0; - case E: - return 5; - case N: - return 2; - case S: - return 3; - case U: - return 1; - case W: - return 4; - default: - break; - } - - return -1; - } - - public BlockFace getFace() { - return switch (this) { - case D -> BlockFace.DOWN; - case E -> BlockFace.EAST; - case N -> BlockFace.NORTH; - case S -> BlockFace.SOUTH; - case U -> BlockFace.UP; - case W -> BlockFace.WEST; - }; - - } - - public Axis getAxis() { - return switch (this) { - case D, U -> Axis.Y; - case E, W -> Axis.X; - case N, S -> Axis.Z; - }; - - } -} diff --git a/core/src/main/java/com/volmit/iris/util/math/FinalInteger.java b/core/src/main/java/com/volmit/iris/util/math/FinalInteger.java deleted file mode 100644 index dd4fd2527..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/FinalInteger.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 com.volmit.iris.util.math; - -import com.volmit.iris.util.scheduling.Wrapper; - -/** - * Represents a number that can be finalized and be changed - * - * @author cyberpwn - */ -public class FinalInteger extends Wrapper { - public FinalInteger(Integer t) { - super(t); - } - - /** - * Add to this value - * - * @param i the number to add to this value (value = value + i) - */ - public void add(int i) { - set(get() + i); - } - - /** - * Subtract from this value - * - * @param i the number to subtract from this value (value = value - i) - */ - public void sub(int i) { - set(get() - i); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/math/INode.java b/core/src/main/java/com/volmit/iris/util/math/INode.java deleted file mode 100644 index db739855a..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/INode.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 com.volmit.iris.util.math; - -import lombok.Data; -import org.bukkit.util.Vector; - -@Data -public class INode { - - private Vector position; - private double tension; - private double bias; - private double continuity; - - public INode() { - this(new Vector(0, 0, 0)); - } - - public INode(INode other) { - this.position = other.position; - - this.tension = other.tension; - this.bias = other.bias; - this.continuity = other.continuity; - } - - public INode(Vector position) { - this.position = position; - } -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/math/IrisMathHelper.java b/core/src/main/java/com/volmit/iris/util/math/IrisMathHelper.java deleted file mode 100644 index fea29342e..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/IrisMathHelper.java +++ /dev/null @@ -1,453 +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 com.volmit.iris.util.math; - -import java.util.Random; -import java.util.UUID; -import java.util.function.IntPredicate; - -public class IrisMathHelper { - public static final float a; - private static final Random c; - private static final int[] d; - private static final double e; - private static final double[] f; - private static final double[] g; - - static { - a = c(2.0f); - c = new Random(); - d = new int[]{0, 1, 28, 2, 29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4, 8, 31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9}; - e = Double.longBitsToDouble(4805340802404319232L); - f = new double[257]; - g = new double[257]; - for (int var2 = 0; var2 < 257; ++var2) { - final double var3 = var2 / 256.0; - final double var4 = Math.asin(var3); - IrisMathHelper.g[var2] = Math.cos(var4); - IrisMathHelper.f[var2] = var4; - } - } - - public static float c(final float var0) { - return (float) Math.sqrt(var0); - } - - public static float sqrt(final double var0) { - return (float) Math.sqrt(var0); - } - - public static int d(final float var0) { - final int var = (int) var0; - return (var0 < var) ? (var - 1) : var; - } - - public static int floor(final double var0) { - final int var = (int) var0; - return (var0 < var) ? (var - 1) : var; - } - - public static long d(final double var0) { - final long var = (long) var0; - return (var0 < var) ? (var - 1L) : var; - } - - public static float e(final float var0) { - return Math.abs(var0); - } - - public static int a(final int var0) { - return Math.abs(var0); - } - - public static int f(final float var0) { - final int var = (int) var0; - return (var0 > var) ? (var + 1) : var; - } - - public static int f(final double var0) { - final int var = (int) var0; - return (var0 > var) ? (var + 1) : var; - } - - public static int clamp(final int var0, final int var1, final int var2) { - if (var0 < var1) { - return var1; - } - return Math.min(var0, var2); - } - - public static float a(final float var0, final float var1, final float var2) { - if (var0 < var1) { - return var1; - } - return Math.min(var0, var2); - } - - public static double a(final double var0, final double var2, final double var4) { - if (var0 < var2) { - return var2; - } - return Math.min(var0, var4); - } - - public static double b(final double var0, final double var2, final double var4) { - if (var4 < 0.0) { - return var0; - } - if (var4 > 1.0) { - return var2; - } - return d(var4, var0, var2); - } - - public static double a(double var0, double var2) { - if (var0 < 0.0) { - var0 = -var0; - } - if (var2 < 0.0) { - var2 = -var2; - } - return Math.max(var0, var2); - } - - public static int a(final int var0, final int var1) { - return Math.floorDiv(var0, var1); - } - - public static int nextInt(final Random var0, final int var1, final int var2) { - if (var1 >= var2) { - return var1; - } - return var0.nextInt(var2 - var1 + 1) + var1; - } - - public static float a(final Random var0, final float var1, final float var2) { - if (var1 >= var2) { - return var1; - } - return var0.nextFloat() * (var2 - var1) + var1; - } - - public static double a(final Random var0, final double var1, final double var3) { - if (var1 >= var3) { - return var1; - } - return var0.nextDouble() * (var3 - var1) + var1; - } - - public static double a(final long[] var0) { - long var = 0L; - for (final long var2 : var0) { - var += var2; - } - return var / (double) var0.length; - } - - public static boolean b(final double var0, final double var2) { - return Math.abs(var2 - var0) < 9.999999747378752E-6; - } - - public static int b(final int var0, final int var1) { - return Math.floorMod(var0, var1); - } - - public static float g(final float var0) { - float var = var0 % 360.0f; - if (var >= 180.0f) { - var -= 360.0f; - } - if (var < -180.0f) { - var += 360.0f; - } - return var; - } - - public static double g(final double var0) { - double var = var0 % 360.0; - if (var >= 180.0) { - var -= 360.0; - } - if (var < -180.0) { - var += 360.0; - } - return var; - } - - public static float c(final float var0, final float var1) { - return g(var1 - var0); - } - - public static float d(final float var0, final float var1) { - return e(c(var0, var1)); - } - - public static float b(final float var0, final float var1, final float var2) { - final float var3 = c(var0, var1); - final float var4 = a(var3, -var2, var2); - return var1 - var4; - } - - public static float c(final float var0, final float var1, float var2) { - var2 = e(var2); - if (var0 < var1) { - return a(var0 + var2, var0, var1); - } - return a(var0 - var2, var1, var0); - } - - public static float d(final float var0, final float var1, final float var2) { - final float var3 = c(var0, var1); - return c(var0, var0 + var3, var2); - } - - public static int c(final int var0) { - int var = var0 - 1; - var |= var >> 1; - var |= var >> 2; - var |= var >> 4; - var |= var >> 8; - var |= var >> 16; - return var + 1; - } - - public static boolean d(final int var0) { - return var0 != 0 && (var0 & var0 - 1) == 0x0; - } - - public static int e(int var0) { - var0 = (d(var0) ? var0 : c(var0)); - return IrisMathHelper.d[(int) (var0 * 125613361L >> 27) & 0x1F]; - } - - public static int f(final int var0) { - return e(var0) - (d(var0) ? 0 : 1); - } - - public static int c(final int var0, int var1) { - if (var1 == 0) { - return 0; - } - if (var0 == 0) { - return var1; - } - if (var0 < 0) { - var1 *= -1; - } - final int var2 = var0 % var1; - if (var2 == 0) { - return var0; - } - return var0 + var1 - var2; - } - - public static float h(final float var0) { - return var0 - d(var0); - } - - public static double h(final double var0) { - return var0 - d(var0); - } - - public static long c(final int var0, final int var1, final int var2) { - long var3 = (var0 * 3129871L) ^ var2 * 116129781L ^ (long) var1; - var3 = var3 * var3 * 42317861L + var3 * 11L; - return var3 >> 16; - } - - public static UUID a(final Random var0) { - final long var = (var0.nextLong() & 0xFFFFFFFFFFFF0FFFL) | 0x4000L; - final long var2 = (var0.nextLong() & 0x3FFFFFFFFFFFFFFFL) | Long.MIN_VALUE; - return new UUID(var, var2); - } - - public static UUID a() { - return a(IrisMathHelper.c); - } - - public static double c(final double var0, final double var2, final double var4) { - return (var0 - var2) / (var4 - var2); - } - - public static double d(double var0, double var2) { - final double var3 = var2 * var2 + var0 * var0; - if (Double.isNaN(var3)) { - return Double.NaN; - } - final boolean var4 = var0 < 0.0; - if (var4) { - var0 = -var0; - } - final boolean var5 = var2 < 0.0; - if (var5) { - var2 = -var2; - } - final boolean var6 = var0 > var2; - if (var6) { - final double var7 = var2; - var2 = var0; - var0 = var7; - } - final double var7 = i(var3); - var2 *= var7; - var0 *= var7; - final double var8 = IrisMathHelper.e + var0; - final int var9 = (int) Double.doubleToRawLongBits(var8); - final double var10 = IrisMathHelper.f[var9]; - final double var11 = IrisMathHelper.g[var9]; - final double var12 = var8 - IrisMathHelper.e; - final double var13 = var0 * var11 - var2 * var12; - final double var14 = (6.0 + var13 * var13) * var13 * 0.16666666666666666; - double var15 = var10 + var14; - if (var6) { - var15 = 1.5707963267948966 - var15; - } - if (var5) { - var15 = 3.141592653589793 - var15; - } - if (var4) { - var15 = -var15; - } - return var15; - } - - public static double i(double var0) { - final double var = 0.5 * var0; - long var2 = Double.doubleToRawLongBits(var0); - var2 = 6910469410427058090L - (var2 >> 1); - var0 = Double.longBitsToDouble(var2); - var0 *= 1.5 - var * var0 * var0; - return var0; - } - - public static int f(final float var0, final float var1, final float var2) { - final int var3 = (int) (var0 * 6.0f) % 6; - final float var4 = var0 * 6.0f - var3; - final float var5 = var2 * (1.0f - var1); - final float var6 = var2 * (1.0f - var4 * var1); - final float var7 = var2 * (1.0f - (1.0f - var4) * var1); - float var8 = 0.0f; - float var9 = 0.0f; - float var10 = 0.0f; - switch (var3) { - case 0 -> { - var8 = var2; - var9 = var7; - var10 = var5; - } - case 1 -> { - var8 = var6; - var9 = var2; - var10 = var5; - } - case 2 -> { - var8 = var5; - var9 = var2; - var10 = var7; - } - case 3 -> { - var8 = var5; - var9 = var6; - var10 = var2; - } - case 4 -> { - var8 = var7; - var9 = var5; - var10 = var2; - } - case 5 -> { - var8 = var2; - var9 = var5; - var10 = var6; - } - default -> - throw new RuntimeException("Something went wrong when converting from HSV to RGB. Input was " + var0 + ", " + var1 + ", " + var2); - } - final int var11 = clamp((int) (var8 * 255.0f), 0, 255); - final int var12 = clamp((int) (var9 * 255.0f), 0, 255); - final int var13 = clamp((int) (var10 * 255.0f), 0, 255); - return var11 << 16 | var12 << 8 | var13; - } - - public static int g(int var0) { - var0 ^= var0 >>> 16; - var0 *= -2048144789; - var0 ^= var0 >>> 13; - var0 *= -1028477387; - var0 ^= var0 >>> 16; - return var0; - } - - public static int a(int var0, final int var1, final IntPredicate var2) { - int var3 = var1 - var0; - while (var3 > 0) { - final int var4 = var3 / 2; - final int var5 = var0 + var4; - if (var2.test(var5)) { - var3 = var4; - } else { - var0 = var5 + 1; - var3 -= var4 + 1; - } - } - return var0; - } - - public static float g(final float var0, final float var1, final float var2) { - return var1 + var0 * (var2 - var1); - } - - public static double d(final double var0, final double var2, final double var4) { - return var2 + var0 * (var4 - var2); - } - - public static double a(final double var0, final double var2, final double var4, final double var6, final double var8, final double var10) { - return d(var2, d(var0, var4, var6), d(var0, var8, var10)); - } - - public static double a(final double var0, final double var2, final double var4, final double var6, final double var8, final double var10, final double var12, final double var14, final double var16, final double var18, final double var20) { - return d(var4, a(var0, var2, var6, var8, var10, var12), a(var0, var2, var14, var16, var18, var20)); - } - - public static double j(final double var0) { - return var0 * var0 * var0 * (var0 * (var0 * 6.0 - 15.0) + 10.0); - } - - public static int k(final double var0) { - if (var0 == 0.0) { - return 0; - } - return (var0 > 0.0) ? 1 : -1; - } - - @Deprecated - public static float j(final float var0, final float var1, final float var2) { - float var3; - for (var3 = var1 - var0; var3 < -180.0f; var3 += 360.0f) { - } - while (var3 >= 180.0f) { - var3 -= 360.0f; - } - return var0 + var2 * var3; - } - - public static float k(final float var0) { - return var0 * var0; - } -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/math/KochanekBartelsInterpolation.java b/core/src/main/java/com/volmit/iris/util/math/KochanekBartelsInterpolation.java deleted file mode 100644 index ffd08c444..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/KochanekBartelsInterpolation.java +++ /dev/null @@ -1,248 +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 com.volmit.iris.util.math; - -import org.bukkit.util.Vector; - -import java.util.Collections; -import java.util.List; - -public class KochanekBartelsInterpolation implements PathInterpolation { - - private List nodes; - private Vector[] coeffA; - private Vector[] coeffB; - private Vector[] coeffC; - private Vector[] coeffD; - private double scaling; - - public KochanekBartelsInterpolation() { - setNodes(Collections.emptyList()); - } - - @Override - public void setNodes(List nodes) { - this.nodes = nodes; - recalc(); - } - - private void recalc() { - final int nNodes = nodes.size(); - coeffA = new Vector[nNodes]; - coeffB = new Vector[nNodes]; - coeffC = new Vector[nNodes]; - coeffD = new Vector[nNodes]; - - if (nNodes == 0) { - return; - } - - INode nodeB = nodes.get(0); - double tensionB = nodeB.getTension(); - double biasB = nodeB.getBias(); - double continuityB = nodeB.getContinuity(); - for (int i = 0; i < nNodes; ++i) { - final double tensionA = tensionB; - final double biasA = biasB; - final double continuityA = continuityB; - - if (i + 1 < nNodes) { - nodeB = nodes.get(i + 1); - tensionB = nodeB.getTension(); - biasB = nodeB.getBias(); - continuityB = nodeB.getContinuity(); - } - - // Kochanek-Bartels tangent coefficients - final double ta = (1 - tensionA) * (1 + biasA) * (1 + continuityA) / 2; // Factor for lhs of d[i] - final double tb = (1 - tensionA) * (1 - biasA) * (1 - continuityA) / 2; // Factor for rhs of d[i] - final double tc = (1 - tensionB) * (1 + biasB) * (1 - continuityB) / 2; // Factor for lhs of d[i+1] - final double td = (1 - tensionB) * (1 - biasB) * (1 + continuityB) / 2; // Factor for rhs of d[i+1] - - coeffA[i] = linearCombination(i, -ta, ta - tb - tc + 2, tb + tc - td - 2, td); - coeffB[i] = linearCombination(i, 2 * ta, -2 * ta + 2 * tb + tc - 3, -2 * tb - tc + td + 3, -td); - coeffC[i] = linearCombination(i, -ta, ta - tb, tb, 0); - //coeffD[i] = linearCombination(i, 0, 1, 0, 0); - coeffD[i] = retrieve(i); // this is an optimization - } - - scaling = nodes.size() - 1; - } - - /** - * Returns the linear combination of the given coefficients with the nodes adjacent to baseIndex. - * - * @param baseIndex node index - * @param f1 coefficient for baseIndex-1 - * @param f2 coefficient for baseIndex - * @param f3 coefficient for baseIndex+1 - * @param f4 coefficient for baseIndex+2 - * @return linear combination of nodes[n-1..n+2] with f1..4 - */ - private Vector linearCombination(int baseIndex, double f1, double f2, double f3, double f4) { - final Vector r1 = retrieve(baseIndex - 1).multiply(f1); - final Vector r2 = retrieve(baseIndex).multiply(f2); - final Vector r3 = retrieve(baseIndex + 1).multiply(f3); - final Vector r4 = retrieve(baseIndex + 2).multiply(f4); - - return r1.add(r2).add(r3).add(r4); - } - - /** - * Retrieves a node. Indexes are clamped to the valid range. - * - * @param index node index to retrieve - * @return nodes[clamp(0, nodes.length - 1)] - */ - private Vector retrieve(int index) { - if (index < 0) { - return fastRetrieve(0); - } - - if (index >= nodes.size()) { - return fastRetrieve(nodes.size() - 1); - } - - return fastRetrieve(index); - } - - private Vector fastRetrieve(int index) { - return nodes.get(index).getPosition(); - } - - @Override - public Vector getPosition(double position) { - if (coeffA == null) { - throw new IllegalStateException("Must call setNodes first."); - } - - if (position > 1) { - return null; - } - - position *= scaling; - - final int index = (int) Math.floor(position); - final double remainder = position - index; - - final Vector a = coeffA[index]; - final Vector b = coeffB[index]; - final Vector c = coeffC[index]; - final Vector d = coeffD[index]; - - return a.multiply(remainder).add(b).multiply(remainder).add(c).multiply(remainder).add(d); - } - - @Override - public Vector get1stDerivative(double position) { - if (coeffA == null) { - throw new IllegalStateException("Must call setNodes first."); - } - - if (position > 1) { - return null; - } - - position *= scaling; - - final int index = (int) Math.floor(position); - //final double remainder = position - index; - - final Vector a = coeffA[index]; - final Vector b = coeffB[index]; - final Vector c = coeffC[index]; - - return a.multiply(1.5 * position - 3.0 * index).add(b).multiply(2.0 * position).add(a.multiply(1.5 * index).subtract(b).multiply(2.0 * index)).add(c).multiply(scaling); - } - - @Override - public double arcLength(double positionA, double positionB) { - if (coeffA == null) { - throw new IllegalStateException("Must call setNodes first."); - } - - if (positionA > positionB) { - return arcLength(positionB, positionA); - } - - positionA *= scaling; - positionB *= scaling; - - final int indexA = (int) Math.floor(positionA); - final double remainderA = positionA - indexA; - - final int indexB = (int) Math.floor(positionB); - final double remainderB = positionB - indexB; - - return arcLengthRecursive(indexA, remainderA, indexB, remainderB); - } - - /** - * Assumes a < b. - */ - private double arcLengthRecursive(int indexLeft, double remainderLeft, int indexRight, double remainderRight) { - switch (indexRight - indexLeft) { - case 0: - return arcLengthRecursive(indexLeft, remainderLeft, remainderRight); - - case 1: - // This case is merely a speed-up for a very common case - return arcLengthRecursive(indexLeft, remainderLeft, 1.0) - + arcLengthRecursive(indexRight, 0.0, remainderRight); - - default: - return arcLengthRecursive(indexLeft, remainderLeft, indexRight - 1, 1.0) - + arcLengthRecursive(indexRight, 0.0, remainderRight); - } - } - - private double arcLengthRecursive(int index, double remainderLeft, double remainderRight) { - final Vector a = coeffA[index].multiply(3.0); - final Vector b = coeffB[index].multiply(2.0); - final Vector c = coeffC[index]; - - final int nPoints = 8; - - double accum = a.multiply(remainderLeft).add(b).multiply(remainderLeft).add(c).length() / 2.0; - for (int i = 1; i < nPoints - 1; ++i) { - double t = ((double) i) / nPoints; - t = (remainderRight - remainderLeft) * t + remainderLeft; - accum += a.multiply(t).add(b).multiply(t).add(c).length(); - } - - accum += a.multiply(remainderRight).add(b).multiply(remainderRight).add(c).length() / 2.0; - return accum * (remainderRight - remainderLeft) / nPoints; - } - - @Override - public int getSegment(double position) { - if (coeffA == null) { - throw new IllegalStateException("Must call setNodes first."); - } - - if (position > 1) { - return Integer.MAX_VALUE; - } - - position *= scaling; - - return (int) Math.floor(position); - } - -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/math/M.java b/core/src/main/java/com/volmit/iris/util/math/M.java deleted file mode 100644 index 7dc527d4e..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/M.java +++ /dev/null @@ -1,372 +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 com.volmit.iris.util.math; - -import javax.script.ScriptEngine; -import javax.script.ScriptEngineManager; -import javax.script.ScriptException; -import java.util.regex.Matcher; - -/** - * Math - * - * @author cyberpwn - */ -public class M { - private static final int precision = 128; - private static final int modulus = 360 * precision; - private static final float[] sin = new float[modulus]; - public static int tick = 0; - - static { - for (int i = 0; i < sin.length; i++) { - sin[i] = (float) Math.sin((i * Math.PI) / (precision * 180)); - } - } - - /** - * Scales B by an external range change so that
- *
- * BMIN < B < BMAX
- * AMIN < RESULT < AMAX
- *
- * So Given rangeScale(0, 20, 0, 10, 5) -> 10
- * 0 < 5 < 10
- * 0 < ? < 20
- *
- * would return 10 - * - * @param amin the resulting minimum - * @param amax the resulting maximum - * @param bmin the initial minimum - * @param bmax the initial maximum - * @param b the initial value - * @return the resulting value - */ - public static double rangeScale(double amin, double amax, double bmin, double bmax, double b) { - return amin + ((amax - amin) * ((b - bmin) / (bmax - bmin))); - } - - /** - * Get the percent (inverse lerp) from "from" to "to" where "at". - *

- * If from = 0 and to = 100 and at = 25 then it would return 0.25 - * - * @param from the from - * @param to the to - * @param at the at - * @return the percent - */ - public static double lerpInverse(double from, double to, double at) { - return M.rangeScale(0, 1, from, to, at); - } - - /** - * Linear interpolation from a to b where f is the percent across - * - * @param a the first pos (0) - * @param b the second pos (1) - * @param f the percent - * @return the value - */ - public static double lerp(double a, double b, double f) { - return a + (f * (b - a)); - } - - /** - * Bilinear interpolation - * - * @param a the first point (0, 0) - * @param b the second point (1, 0) - * @param c the third point (0, 1) - * @param d the fourth point (1, 1) - * @return the bilerped value - */ - public static double bilerp(double a, double b, double c, double d, double x, double y) { - return lerp(lerp(a, b, x), lerp(c, d, x), y); - } - - /** - * Trilinear interpolation - * - * @param a the first point (0, 0, 0) - * @param b the second point (1, 0, 0) - * @param c the third point (0, 0, 1) - * @param d the fourth point (1, 0, 1) - * @param e the fifth point (0, 1, 0) - * @param f the sixth point (1, 1, 0) - * @param g the seventh point (0, 1, 1) - * @param h the eighth point (1, 1, 1) - * @param x the x - * @param y the y - * @param z the z - * @return the trilerped value - */ - public static double trilerp(double a, double b, double c, double d, double e, double f, double g, double h, double x, double y, double z) { - return lerp(bilerp(a, b, c, d, x, y), bilerp(e, f, g, h, x, y), z); - } - - /** - * Clip a value - * - * @param value the value - * @param min the min - * @param max the max - * @return the clipped value - */ - @SuppressWarnings("unchecked") - public static T clip(T value, T min, T max) { - return (T) Double.valueOf(Math.min(max.doubleValue(), Math.max(min.doubleValue(), value.doubleValue()))); - } - - /** - * Get true or false based on random percent - * - * @param d between 0 and 1 - * @return true if true - */ - public static boolean r(Double d) { - //noinspection ReplaceNullCheck - if (d == null) { - return Math.random() < 0.5; - } - - return Math.random() < d; - } - - /** - * Get the ticks per second from a time in nanoseconds, the rad can be used for - * multiple ticks - * - * @param ns the time in nanoseconds - * @param rad the radius of the time - * @return the ticks per second in double form - */ - public static double tps(long ns, int rad) { - return (20.0 * (ns / 50000000.0)) / rad; - } - - /** - * Get the number of ticks from a time in nanoseconds - * - * @param ns the nanoseconds - * @return the amount of ticks - */ - public static double ticksFromNS(long ns) { - return (ns / 50000000.0); - } - - /** - * Get a random int from to (inclusive) - * - * @param f the from - * @param t the to - * @return the value - */ - public static int irand(int f, int t) { - return f + (int) (Math.random() * ((t - f) + 1)); - } - - /** - * Get a random float from to (inclusive) - * - * @param f the from - * @param t the to - * @return the value - */ - public static float frand(float f, float t) { - return f + (float) (Math.random() * ((t - f) + 1)); - } - - /** - * Get a random double from to (inclusive) - * - * @param f the from - * @param t the to - * @return the value - */ - public static double drand(double f, double t) { - return f + (Math.random() * ((t - f) + 1)); - } - - /** - * Get system Nanoseconds - * - * @return nanoseconds (current) - */ - public static long ns() { - return System.nanoTime(); - } - - /** - * Get the current millisecond time - * - * @return milliseconds - */ - public static long ms() { - return System.currentTimeMillis(); - } - - /** - * Fast sin function - * - * @param a the number - * @return the sin - */ - public static float sin(float a) { - return sinLookup((int) (a * precision + 0.5f)); - } - - /** - * Fast cos function - * - * @param a the number - * @return the cos - */ - public static float cos(float a) { - return sinLookup((int) ((a + 90f) * precision + 0.5f)); - } - - /** - * Fast tan function - * - * @param a the number - * @return the tan - */ - public static float tan(float a) { - float c = cos(a); - return sin(a) / (c == 0 ? 0.0000001f : c); - } - - /** - * Biggest number - * - * @return the biggest one - */ - @SuppressWarnings("unchecked") - public static T max(T... doubles) { - double max = Double.MIN_VALUE; - - for (T i : doubles) { - if (i.doubleValue() > max) { - max = i.doubleValue(); - } - } - - return (T) Double.valueOf(max); - } - - /** - * Smallest number - * - * @param doubles the numbers - * @return the smallest one - */ - @SuppressWarnings("unchecked") - public static T min(T... doubles) { - double min = Double.MAX_VALUE; - - for (T i : doubles) { - if (i.doubleValue() < min) { - min = i.doubleValue(); - } - } - - return (T) Double.valueOf(min); - } - - /** - * Evaluates an expression using javascript engine and returns the double - * result. This can take variable parameters, so you need to define them. - * Parameters are defined as $[0-9]. For example evaluate("4$0/$1", 1, 2); This - * makes the expression (4x1)/2 == 2. Keep note that you must use 0-9, you - * cannot skip, or start at a number other than 0. - * - * @param expression the expression with variables - * @param args the arguments/variables - * @return the resulting double value - * @throws ScriptException ... gg - * @throws IndexOutOfBoundsException learn to count - */ - public static double evaluate(String expression, Double... args) throws ScriptException, IndexOutOfBoundsException { - for (int i = 0; i < args.length; i++) { - String current = "$" + i; - - if (expression.contains(current)) { - expression = expression.replaceAll(Matcher.quoteReplacement(current), args[i] + ""); - } - } - - return evaluate(expression); - } - - /** - * Evaluates an expression using javascript engine and returns the double - * - * @param expression the mathimatical expression - * @return the double result - * @throws ScriptException ... gg - */ - public static double evaluate(String expression) throws ScriptException { - ScriptEngineManager mgr = new ScriptEngineManager(); - ScriptEngine scriptEngine = mgr.getEngineByName("JavaScript"); - - return Double.parseDouble(scriptEngine.eval(expression).toString()); - } - - /** - * is the number "is" within from-to - * - * @param from the lower end - * @param to the upper end - * @param is the check - * @return true if its within - */ - public static boolean within(int from, int to, int is) { - return is >= from && is <= to; - } - - /** - * Get the amount of days past since the epoch time (1970 jan 1 utc) - * - * @return the epoch days - */ - public static long epochDays() { - return epochDays(M.ms()); - } - - /** - * Get the amount of days past since the epoch time (1970 jan 1 utc) - * - * @param ms the time in milliseconds - * @return the epoch days - */ - private static long epochDays(long ms) { - return ms / 1000 / 60 / 60 / 24; - } - - private static float sinLookup(int a) { - return a >= 0 ? sin[a % (modulus)] : -sin[-a % (modulus)]; - } - - public static boolean interval(int tickInterval) { - return tick % (tickInterval <= 0 ? 1 : tickInterval) == 0; - } - -} diff --git a/core/src/main/java/com/volmit/iris/util/math/MathHelper.java b/core/src/main/java/com/volmit/iris/util/math/MathHelper.java deleted file mode 100644 index e38338a83..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/MathHelper.java +++ /dev/null @@ -1,728 +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 com.volmit.iris.util.math; - -import java.util.Random; -import java.util.UUID; -import java.util.function.IntPredicate; - -public class MathHelper { - public static final float a = 3.1415927F; - public static final float b = 1.5707964F; - public static final float c = 6.2831855F; - public static final float d = 0.017453292F; - public static final float e = 57.295776F; - public static final float f = 1.0E-5F; - public static final float g = c(2.0F); - private static final int h = 1024; - private static final float i = 1024.0F; - private static final long j = 61440L; - private static final long k = 16384L; - private static final long l = -4611686018427387904L; - private static final long m = -9223372036854775808L; - private static final float n = 10430.378F; - private static final Random p = new Random(); - private static final int[] q = new int[]{0, 1, 28, 2, 29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4, 8, 31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9}; - private static final double r = 0.16666666666666666D; - private static final int s = 8; - private static final int t = 257; - private static final double u = Double.longBitsToDouble(4805340802404319232L); - private static final double[] v = new double[257]; - private static final double[] w = new double[257]; - - static { - for (int var0 = 0; var0 < 257; ++var0) { - double var1 = (double) var0 / 256.0D; - double var3 = Math.asin(var1); - w[var0] = Math.cos(var3); - v[var0] = var3; - } - - } - - public MathHelper() { - } - - public static float c(float var0) { - return (float) Math.sqrt(var0); - } - - public static int d(float var0) { - int var1 = (int) var0; - return var0 < (float) var1 ? var1 - 1 : var1; - } - - public static int a(double var0) { - return (int) (var0 + 1024.0D) - 1024; - } - - public static int floor(double var0) { - int var2 = (int) var0; - return var0 < (double) var2 ? var2 - 1 : var2; - } - - public static long c(double var0) { - long var2 = (long) var0; - return var0 < (double) var2 ? var2 - 1L : var2; - } - - public static int d(double var0) { - return (int) (var0 >= 0.0D ? var0 : -var0 + 1.0D); - } - - public static float e(float var0) { - return Math.abs(var0); - } - - public static int a(int var0) { - return Math.abs(var0); - } - - public static int f(float var0) { - int var1 = (int) var0; - return var0 > (float) var1 ? var1 + 1 : var1; - } - - public static int e(double var0) { - int var2 = (int) var0; - return var0 > (double) var2 ? var2 + 1 : var2; - } - - public static byte a(byte var0, byte var1, byte var2) { - if (var0 < var1) { - return var1; - } else { - return var0 > var2 ? var2 : var0; - } - } - - public static int clamp(int var0, int var1, int var2) { - if (var0 < var1) { - return var1; - } else { - return Math.min(var0, var2); - } - } - - public static long a(long var0, long var2, long var4) { - if (var0 < var2) { - return var2; - } else { - return Math.min(var0, var4); - } - } - - public static float a(float var0, float var1, float var2) { - if (var0 < var1) { - return var1; - } else { - return Math.min(var0, var2); - } - } - - public static double a(double var0, double var2, double var4) { - if (var0 < var2) { - return var2; - } else { - return Math.min(var0, var4); - } - } - - public static double b(double var0, double var2, double var4) { - if (var4 < 0.0D) { - return var0; - } else { - return var4 > 1.0D ? var2 : d(var4, var0, var2); - } - } - - public static float b(float var0, float var1, float var2) { - if (var2 < 0.0F) { - return var0; - } else { - return var2 > 1.0F ? var1 : h(var2, var0, var1); - } - } - - public static double a(double var0, double var2) { - if (var0 < 0.0D) { - var0 = -var0; - } - - if (var2 < 0.0D) { - var2 = -var2; - } - - return Math.max(var0, var2); - } - - public static int a(int var0, int var1) { - return Math.floorDiv(var0, var1); - } - - public static int nextInt(Random var0, int var1, int var2) { - return var1 >= var2 ? var1 : var0.nextInt(var2 - var1 + 1) + var1; - } - - public static float a(Random var0, float var1, float var2) { - return var1 >= var2 ? var1 : var0.nextFloat() * (var2 - var1) + var1; - } - - public static double a(Random var0, double var1, double var3) { - return var1 >= var3 ? var1 : var0.nextDouble() * (var3 - var1) + var1; - } - - public static double a(long[] var0) { - long var1 = 0L; - long[] var3 = var0; - int var4 = var0.length; - - for (int var5 = 0; var5 < var4; ++var5) { - long var6 = var3[var5]; - var1 += var6; - } - - return (double) var1 / (double) var0.length; - } - - public static boolean a(float var0, float var1) { - return Math.abs(var1 - var0) < 1.0E-5F; - } - - public static boolean b(double var0, double var2) { - return Math.abs(var2 - var0) < 9.999999747378752E-6D; - } - - public static int b(int var0, int var1) { - return Math.floorMod(var0, var1); - } - - public static float b(float var0, float var1) { - return (var0 % var1 + var1) % var1; - } - - public static double c(double var0, double var2) { - return (var0 % var2 + var2) % var2; - } - - public static int b(int var0) { - int var1 = var0 % 360; - if (var1 >= 180) { - var1 -= 360; - } - - if (var1 < -180) { - var1 += 360; - } - - return var1; - } - - public static float g(float var0) { - float var1 = var0 % 360.0F; - if (var1 >= 180.0F) { - var1 -= 360.0F; - } - - if (var1 < -180.0F) { - var1 += 360.0F; - } - - return var1; - } - - public static double f(double var0) { - double var2 = var0 % 360.0D; - if (var2 >= 180.0D) { - var2 -= 360.0D; - } - - if (var2 < -180.0D) { - var2 += 360.0D; - } - - return var2; - } - - public static float c(float var0, float var1) { - return g(var1 - var0); - } - - public static float d(float var0, float var1) { - return e(c(var0, var1)); - } - - public static float c(float var0, float var1, float var2) { - float var3 = c(var0, var1); - float var4 = a(var3, -var2, var2); - return var1 - var4; - } - - public static float d(float var0, float var1, float var2) { - var2 = e(var2); - return var0 < var1 ? a(var0 + var2, var0, var1) : a(var0 - var2, var1, var0); - } - - public static float e(float var0, float var1, float var2) { - float var3 = c(var0, var1); - return d(var0, var0 + var3, var2); - } - - public static double a(String var0, double var1) { - try { - return Double.parseDouble(var0); - } catch (Throwable var4) { - return var1; - } - } - - public static double a(String var0, double var1, double var3) { - return Math.max(var3, a(var0, var1)); - } - - public static int c(int var0) { - int var1 = var0 - 1; - var1 |= var1 >> 1; - var1 |= var1 >> 2; - var1 |= var1 >> 4; - var1 |= var1 >> 8; - var1 |= var1 >> 16; - return var1 + 1; - } - - public static boolean d(int var0) { - return var0 != 0 && (var0 & var0 - 1) == 0; - } - - public static int e(int var0) { - var0 = d(var0) ? var0 : c(var0); - return q[(int) ((long) var0 * 125613361L >> 27) & 31]; - } - - public static int f(int var0) { - return e(var0) - (d(var0) ? 0 : 1); - } - - public static int f(float var0, float var1, float var2) { - return b(d(var0 * 255.0F), d(var1 * 255.0F), d(var2 * 255.0F)); - } - - public static int b(int var0, int var1, int var2) { - int var3 = (var0 << 8) + var1; - var3 = (var3 << 8) + var2; - return var3; - } - - public static int c(int var0, int var1) { - int var2 = (var0 & 16711680) >> 16; - int var3 = (var1 & 16711680) >> 16; - int var4 = (var0 & '\uff00') >> 8; - int var5 = (var1 & '\uff00') >> 8; - int var6 = (var0 & 255); - int var7 = (var1 & 255); - int var8 = (int) ((float) var2 * (float) var3 / 255.0F); - int var9 = (int) ((float) var4 * (float) var5 / 255.0F); - int var10 = (int) ((float) var6 * (float) var7 / 255.0F); - return var0 & -16777216 | var8 << 16 | var9 << 8 | var10; - } - - public static int a(int var0, float var1, float var2, float var3) { - int var4 = (var0 & 16711680) >> 16; - int var5 = (var0 & '\uff00') >> 8; - int var6 = (var0 & 255); - int var7 = (int) ((float) var4 * var1); - int var8 = (int) ((float) var5 * var2); - int var9 = (int) ((float) var6 * var3); - return var0 & -16777216 | var7 << 16 | var8 << 8 | var9; - } - - public static float h(float var0) { - return var0 - (float) d(var0); - } - - public static double g(double var0) { - return var0 - (double) c(var0); - } - - public static long c(int var0, int var1, int var2) { - long var3 = (long) (var0 * 3129871) ^ (long) var2 * 116129781L ^ (long) var1; - var3 = var3 * var3 * 42317861L + var3 * 11L; - return var3 >> 16; - } - - public static UUID a(Random var0) { - long var1 = var0.nextLong() & -61441L | 16384L; - long var3 = var0.nextLong() & 4611686018427387903L | -9223372036854775808L; - return new UUID(var1, var3); - } - - public static UUID a() { - return a(p); - } - - public static double c(double var0, double var2, double var4) { - return (var0 - var2) / (var4 - var2); - } - - public static double d(double var0, double var2) { - double var4 = var2 * var2 + var0 * var0; - if (Double.isNaN(var4)) { - return 0.0D; - } else { - boolean var6 = var0 < 0.0D; - if (var6) { - var0 = -var0; - } - - boolean var7 = var2 < 0.0D; - if (var7) { - var2 = -var2; - } - - boolean var8 = var0 > var2; - double var9; - if (var8) { - var9 = var2; - var2 = var0; - var0 = var9; - } - - var9 = h(var4); - var2 *= var9; - var0 *= var9; - double var11 = u + var0; - int var13 = (int) Double.doubleToRawLongBits(var11); - double var14 = v[var13]; - double var16 = w[var13]; - double var18 = var11 - u; - double var20 = var0 * var16 - var2 * var18; - double var22 = (6.0D + var20 * var20) * var20 * 0.16666666666666666D; - double var24 = var14 + var22; - if (var8) { - var24 = 1.5707963267948966D - var24; - } - - if (var7) { - var24 = 3.141592653589793D - var24; - } - - if (var6) { - var24 = -var24; - } - - return var24; - } - } - - public static float i(float var0) { - float var1 = 0.5F * var0; - int var2 = Float.floatToIntBits(var0); - var2 = 1597463007 - (var2 >> 1); - var0 = Float.intBitsToFloat(var2); - var0 *= 1.5F - var1 * var0 * var0; - return var0; - } - - public static double h(double var0) { - double var2 = 0.5D * var0; - long var4 = Double.doubleToRawLongBits(var0); - var4 = 6910469410427058090L - (var4 >> 1); - var0 = Double.longBitsToDouble(var4); - var0 *= 1.5D - var2 * var0 * var0; - return var0; - } - - public static float j(float var0) { - int var1 = Float.floatToIntBits(var0); - var1 = 1419967116 - var1 / 3; - float var2 = Float.intBitsToFloat(var1); - var2 = 0.6666667F * var2 + 1.0F / (3.0F * var2 * var2 * var0); - var2 = 0.6666667F * var2 + 1.0F / (3.0F * var2 * var2 * var0); - return var2; - } - - public static int g(float var0, float var1, float var2) { - int var3 = (int) (var0 * 6.0F) % 6; - float var4 = var0 * 6.0F - (float) var3; - float var5 = var2 * (1.0F - var1); - float var6 = var2 * (1.0F - var4 * var1); - float var7 = var2 * (1.0F - (1.0F - var4) * var1); - float var8; - float var9; - float var10; - switch (var3) { - case 0: - var8 = var2; - var9 = var7; - var10 = var5; - break; - case 1: - var8 = var6; - var9 = var2; - var10 = var5; - break; - case 2: - var8 = var5; - var9 = var2; - var10 = var7; - break; - case 3: - var8 = var5; - var9 = var6; - var10 = var2; - break; - case 4: - var8 = var7; - var9 = var5; - var10 = var2; - break; - case 5: - var8 = var2; - var9 = var5; - var10 = var6; - break; - default: - throw new RuntimeException("Something went wrong when converting from HSV to RGB. Input was " + var0 + ", " + var1 + ", " + var2); - } - - int var11 = clamp((int) (var8 * 255.0F), 0, 255); - int var12 = clamp((int) (var9 * 255.0F), 0, 255); - int var13 = clamp((int) (var10 * 255.0F), 0, 255); - return var11 << 16 | var12 << 8 | var13; - } - - public static int g(int var0) { - var0 ^= var0 >>> 16; - var0 *= -2048144789; - var0 ^= var0 >>> 13; - var0 *= -1028477387; - var0 ^= var0 >>> 16; - return var0; - } - - public static long a(long var0) { - var0 ^= var0 >>> 33; - var0 *= -49064778989728563L; - var0 ^= var0 >>> 33; - var0 *= -4265267296055464877L; - var0 ^= var0 >>> 33; - return var0; - } - - public static double[] a(double... var0) { - float var1 = 0.0F; - double[] var2f = var0; - int var3 = var0.length; - - for (int var4 = 0; var4 < var3; ++var4) { - double var5 = var2f[var4]; - var1 = (float) ((double) var1 + var5); - } - - int var2; - for (var2 = 0; var2 < var0.length; ++var2) { - var0[var2] /= var1; - } - - for (var2 = 0; var2 < var0.length; ++var2) { - var0[var2] += var2 == 0 ? 0.0D : var0[var2 - 1]; - } - - return var0; - } - - public static int a(Random var0, double[] var1) { - double var2 = var0.nextDouble(); - - for (int var4 = 0; var4 < var1.length; ++var4) { - if (var2 < var1[var4]) { - return var4; - } - } - - return var1.length; - } - - public static double[] a(double var0, double var2, double var4, int var6, int var7) { - double[] var8 = new double[var7 - var6 + 1]; - int var9 = 0; - - for (int var10 = var6; var10 <= var7; ++var10) { - var8[var9] = Math.max(0.0D, var0 * StrictMath.exp(-((double) var10 - var4) * ((double) var10 - var4) / (2.0D * var2 * var2))); - ++var9; - } - - return var8; - } - - public static double[] a(double var0, double var2, double var4, double var6, double var8, double var10, int var12, int var13) { - double[] var14 = new double[var13 - var12 + 1]; - int var15 = 0; - - for (int var16 = var12; var16 <= var13; ++var16) { - var14[var15] = Math.max(0.0D, var0 * StrictMath.exp(-((double) var16 - var4) * ((double) var16 - var4) / (2.0D * var2 * var2)) + var6 * StrictMath.exp(-((double) var16 - var10) * ((double) var16 - var10) / (2.0D * var8 * var8))); - ++var15; - } - - return var14; - } - - public static double[] a(double var0, double var2, int var4, int var5) { - double[] var6 = new double[var5 - var4 + 1]; - int var7 = 0; - - for (int var8 = var4; var8 <= var5; ++var8) { - var6[var7] = Math.max(var0 * StrictMath.log(var8) + var2, 0.0D); - ++var7; - } - - return var6; - } - - public static int a(int var0, int var1, IntPredicate var2) { - int var3 = var1 - var0; - - while (var3 > 0) { - int var4 = var3 / 2; - int var5 = var0 + var4; - if (var2.test(var5)) { - var3 = var4; - } else { - var0 = var5 + 1; - var3 -= var4 + 1; - } - } - - return var0; - } - - public static float h(float var0, float var1, float var2) { - return var1 + var0 * (var2 - var1); - } - - public static double d(double var0, double var2, double var4) { - return var2 + var0 * (var4 - var2); - } - - public static double a(double var0, double var2, double var4, double var6, double var8, double var10) { - return d(var2, d(var0, var4, var6), d(var0, var8, var10)); - } - - public static double a(double var0, double var2, double var4, double var6, double var8, double var10, double var12, double var14, double var16, double var18, double var20) { - return d(var4, a(var0, var2, var6, var8, var10, var12), a(var0, var2, var14, var16, var18, var20)); - } - - public static double i(double var0) { - return var0 * var0 * var0 * (var0 * (var0 * 6.0D - 15.0D) + 10.0D); - } - - public static double j(double var0) { - return 30.0D * var0 * var0 * (var0 - 1.0D) * (var0 - 1.0D); - } - - public static int k(double var0) { - if (var0 == 0.0D) { - return 0; - } else { - return var0 > 0.0D ? 1 : -1; - } - } - - public static float i(float var0, float var1, float var2) { - return var1 + var0 * g(var2 - var1); - } - - public static float j(float var0, float var1, float var2) { - return Math.min(var0 * var0 * 0.6F + var1 * var1 * ((3.0F + var1) / 4.0F) + var2 * var2 * 0.8F, 1.0F); - } - - @Deprecated - public static float k(float var0, float var1, float var2) { - float var3; - for (var3 = var1 - var0; var3 < -180.0F; var3 += 360.0F) { - } - - while (var3 >= 180.0F) { - var3 -= 360.0F; - } - - return var0 + var2 * var3; - } - - @Deprecated - public static float l(double var0) { - while (var0 >= 180.0D) { - var0 -= 360.0D; - } - - while (var0 < -180.0D) { - var0 += 360.0D; - } - - return (float) var0; - } - - public static float e(float var0, float var1) { - return (Math.abs(var0 % var1 - var1 * 0.5F) - var1 * 0.25F) / (var1 * 0.25F); - } - - public static float k(float var0) { - return var0 * var0; - } - - public static double m(double var0) { - return var0 * var0; - } - - public static int h(int var0) { - return var0 * var0; - } - - public static double a(double var0, double var2, double var4, double var6, double var8) { - return b(var6, var8, c(var0, var2, var4)); - } - - public static double b(double var0, double var2, double var4, double var6, double var8) { - return d(c(var0, var2, var4), var6, var8); - } - - public static double n(double var0) { - return var0 + (2.0D * (new Random(floor(var0 * 3000.0D))).nextDouble() - 1.0D) * 1.0E-7D / 2.0D; - } - - public static int d(int var0, int var1) { - return (var0 + var1 - 1) / var1 * var1; - } - - public static int b(Random var0, int var1, int var2) { - return var0.nextInt(var2 - var1 + 1) + var1; - } - - public static float b(Random var0, float var1, float var2) { - return var0.nextFloat() * (var2 - var1) + var1; - } - - public static float c(Random var0, float var1, float var2) { - return var1 + (float) var0.nextGaussian() * var2; - } - - public static double a(int var0, double var1, int var3) { - return Math.sqrt((double) (var0 * var0) + var1 * var1 + (double) (var3 * var3)); - } -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/math/PathInterpolation.java b/core/src/main/java/com/volmit/iris/util/math/PathInterpolation.java deleted file mode 100644 index 6deea6b48..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/PathInterpolation.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 com.volmit.iris.util.math; - -import org.bukkit.util.Vector; - -import java.util.List; - -public interface PathInterpolation { - - /** - * Sets nodes to be used by subsequent calls to - * {@link #getPosition(double)} and the other methods. - * - * @param nodes the nodes - */ - void setNodes(List nodes); - - /** - * Gets the result of f(position). - * - * @param position the position to interpolate - * @return the result - */ - Vector getPosition(double position); - - /** - * Gets the result of f'(position). - * - * @param position the position to interpolate - * @return the result - */ - Vector get1stDerivative(double position); - - /** - * Gets the result of ∫ab|f'(t)| dt.
- * That means it calculates the arc length (in meters) between positionA - * and positionB. - * - * @param positionA lower limit - * @param positionB upper limit - * @return the arc length - */ - double arcLength(double positionA, double positionB); - - /** - * Get the segment position. - * - * @param position the position - * @return the segment position - */ - int getSegment(double position); - -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/math/Point3d.java b/core/src/main/java/com/volmit/iris/util/math/Point3d.java deleted file mode 100644 index e3b934ada..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/Point3d.java +++ /dev/null @@ -1,179 +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 com.volmit.iris.util.math; - -/** - * A 3 element point that is represented by double precision floating point - * x,y,z coordinates. - */ -public class Point3d extends Tuple3d implements java.io.Serializable { - - // Compatible with 1.1 - static final long serialVersionUID = 5718062286069042927L; - - /** - * Constructs and initializes a Point3d from the specified xyz coordinates. - * - * @param x the x coordinate - * @param y the y coordinate - * @param z the z coordinate - */ - public Point3d(double x, double y, double z) { - super(x, y, z); - } - - - /** - * Constructs and initializes a Point3d from the array of length 3. - * - * @param p the array of length 3 containing xyz in order - */ - public Point3d(double[] p) { - super(p); - } - - - /** - * Constructs and initializes a Point3d from the specified Point3d. - * - * @param p1 the Point3d containing the initialization x y z data - */ - public Point3d(Point3d p1) { - super(p1); - } - - - /** - * Constructs and initializes a Point3d from the specified Point3f. - * - * @param p1 the Point3f containing the initialization x y z data - */ - public Point3d(Point3f p1) { - super(p1); - } - - - /** - * Constructs and initializes a Point3d from the specified Tuple3f. - * - * @param t1 the Tuple3f containing the initialization x y z data - */ - public Point3d(Tuple3f t1) { - super(t1); - } - - - /** - * Constructs and initializes a Point3d from the specified Tuple3d. - * - * @param t1 the Tuple3d containing the initialization x y z data - */ - public Point3d(Tuple3d t1) { - super(t1); - } - - - /** - * Constructs and initializes a Point3d to (0,0,0). - */ - public Point3d() { - super(); - } - - - /** - * Returns the square of the distance between this point and point p1. - * - * @param p1 the other point - * @return the square of the distance - */ - public final double distanceSquared(Point3d p1) { - double dx, dy, dz; - - dx = this.x - p1.x; - dy = this.y - p1.y; - dz = this.z - p1.z; - return (dx * dx + dy * dy + dz * dz); - } - - - /** - * Returns the distance between this point and point p1. - * - * @param p1 the other point - * @return the distance - */ - public final double distance(Point3d p1) { - double dx, dy, dz; - - dx = this.x - p1.x; - dy = this.y - p1.y; - dz = this.z - p1.z; - return Math.sqrt(dx * dx + dy * dy + dz * dz); - } - - - /** - * Computes the L-1 (Manhattan) distance between this point and - * point p1. The L-1 distance is equal to: - * abs(x1-x2) + abs(y1-y2) + abs(z1-z2). - * - * @param p1 the other point - * @return the L-1 distance - */ - public final double distanceL1(Point3d p1) { - return Math.abs(this.x - p1.x) + Math.abs(this.y - p1.y) + - Math.abs(this.z - p1.z); - } - - - /** - * Computes the L-infinite distance between this point and - * point p1. The L-infinite distance is equal to - * MAX[abs(x1-x2), abs(y1-y2), abs(z1-z2)]. - * - * @param p1 the other point - * @return the L-infinite distance - */ - public final double distanceLinf(Point3d p1) { - double tmp; - tmp = Math.max(Math.abs(this.x - p1.x), Math.abs(this.y - p1.y)); - - return Math.max(tmp, Math.abs(this.z - p1.z)); - } - - - /** - * Multiplies each of the x,y,z components of the Point4d parameter - * by 1/w and places the projected values into this point. - * - * @param p1 the source Point4d, which is not modified - */ - public final void project(Point4d p1) { - double oneOw; - - oneOw = 1 / p1.w; - x = p1.x * oneOw; - y = p1.y * oneOw; - z = p1.z * oneOw; - - } - - -} diff --git a/core/src/main/java/com/volmit/iris/util/math/Point3f.java b/core/src/main/java/com/volmit/iris/util/math/Point3f.java deleted file mode 100644 index 1c82b7e6d..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/Point3f.java +++ /dev/null @@ -1,180 +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 com.volmit.iris.util.math; - -/** - * A 3 element point that is represented by single precision floating point - * x,y,z coordinates. - */ -public class Point3f extends Tuple3f implements java.io.Serializable { - - - // Compatible with 1.1 - static final long serialVersionUID = -8689337816398030143L; - - /** - * Constructs and initializes a Point3f from the specified xyz coordinates. - * - * @param x the x coordinate - * @param y the y coordinate - * @param z the z coordinate - */ - public Point3f(float x, float y, float z) { - super(x, y, z); - } - - - /** - * Constructs and initializes a Point3f from the array of length 3. - * - * @param p the array of length 3 containing xyz in order - */ - public Point3f(float[] p) { - super(p); - } - - - /** - * Constructs and initializes a Point3f from the specified Point3f. - * - * @param p1 the Point3f containing the initialization x y z data - */ - public Point3f(Point3f p1) { - super(p1); - } - - - /** - * Constructs and initializes a Point3f from the specified Point3d. - * - * @param p1 the Point3d containing the initialization x y z data - */ - public Point3f(Point3d p1) { - super(p1); - } - - - /** - * Constructs and initializes a Point3f from the specified Tuple3f. - * - * @param t1 the Tuple3f containing the initialization x y z data - */ - public Point3f(Tuple3f t1) { - super(t1); - } - - - /** - * Constructs and initializes a Point3f from the specified Tuple3d. - * - * @param t1 the Tuple3d containing the initialization x y z data - */ - public Point3f(Tuple3d t1) { - super(t1); - } - - - /** - * Constructs and initializes a Point3f to (0,0,0). - */ - public Point3f() { - super(); - } - - - /** - * Computes the square of the distance between this point and - * point p1. - * - * @param p1 the other point - * @return the square of the distance - */ - public final float distanceSquared(Point3f p1) { - float dx, dy, dz; - - dx = this.x - p1.x; - dy = this.y - p1.y; - dz = this.z - p1.z; - return dx * dx + dy * dy + dz * dz; - } - - - /** - * Computes the distance between this point and point p1. - * - * @param p1 the other point - * @return the distance - */ - public final float distance(Point3f p1) { - float dx, dy, dz; - - dx = this.x - p1.x; - dy = this.y - p1.y; - dz = this.z - p1.z; - return (float) Math.sqrt(dx * dx + dy * dy + dz * dz); - } - - - /** - * Computes the L-1 (Manhattan) distance between this point and - * point p1. The L-1 distance is equal to: - * abs(x1-x2) + abs(y1-y2) + abs(z1-z2). - * - * @param p1 the other point - * @return the L-1 distance - */ - public final float distanceL1(Point3f p1) { - return (Math.abs(this.x - p1.x) + Math.abs(this.y - p1.y) + Math.abs(this.z - p1.z)); - } - - - /** - * Computes the L-infinite distance between this point and - * point p1. The L-infinite distance is equal to - * MAX[abs(x1-x2), abs(y1-y2), abs(z1-z2)]. - * - * @param p1 the other point - * @return the L-infinite distance - */ - public final float distanceLinf(Point3f p1) { - float tmp; - tmp = Math.max(Math.abs(this.x - p1.x), Math.abs(this.y - p1.y)); - return (Math.max(tmp, Math.abs(this.z - p1.z))); - - } - - - /** - * Multiplies each of the x,y,z components of the Point4f parameter - * by 1/w and places the projected values into this point. - * - * @param p1 the source Point4f, which is not modified - */ - public final void project(Point4f p1) { - float oneOw; - - oneOw = 1 / p1.w; - x = p1.x * oneOw; - y = p1.y * oneOw; - z = p1.z * oneOw; - - } - - -} diff --git a/core/src/main/java/com/volmit/iris/util/math/Point4d.java b/core/src/main/java/com/volmit/iris/util/math/Point4d.java deleted file mode 100644 index fdfb72551..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/Point4d.java +++ /dev/null @@ -1,214 +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 com.volmit.iris.util.math; - -/** - * A 4 element vector represented by double precision floating point - * x,y,z,w coordinates. - */ -public class Point4d extends Tuple4d implements java.io.Serializable { - - // Compatible with 1.1 - static final long serialVersionUID = 1733471895962736949L; - - - /** - * Constructs and initializes a Point4d from the specified xyzw coordinates. - * - * @param x the x coordinate - * @param y the y coordinate - * @param z the z coordinate - * @param w the w coordinate - */ - public Point4d(double x, double y, double z, double w) { - super(x, y, z, w); - } - - /** - * Constructs and initializes a Point4d from the coordinates contained - * in the array. - * - * @param p the array of length 4 containing xyzw in order - */ - public Point4d(double[] p) { - super(p); - } - - - /** - * Constructs and initializes a Point4d from the specified Point4d. - * - * @param p1 the Point4d containing the initialization x y z w data - */ - public Point4d(Point4d p1) { - super(p1); - } - - - /** - * Constructs and initializes a Point4d from the specified Point4f. - * - * @param p1 the Point4f containing the initialization x y z w data - */ - public Point4d(Point4f p1) { - super(p1); - } - - - /** - * Constructs and initializes a Point4d from the specified Tuple4f. - * - * @param t1 the Tuple4f containing the initialization x y z w data - */ - public Point4d(Tuple4f t1) { - super(t1); - } - - - /** - * Constructs and initializes a Point4d from the specified Tuple4d. - * - * @param t1 the Tuple4d containing the initialization x y z w data - */ - public Point4d(Tuple4d t1) { - super(t1); - } - - - /** - * Constructs and initializes a Point4d from the specified Tuple3d. - * The x,y,z components of this point are set to the corresponding - * components of tuple t1. The w component of this point - * is set to 1. - * - * @param t1 the tuple to be copied - * @since vecmath 1.2 - */ - public Point4d(Tuple3d t1) { - super(t1.x, t1.y, t1.z, 1.0); - } - - - /** - * Constructs and initializes a Point4d to (0,0,0,0). - */ - public Point4d() { - super(); - } - - - /** - * Sets the x,y,z components of this point to the corresponding - * components of tuple t1. The w component of this point - * is set to 1. - * - * @param t1 the tuple to be copied - * @since vecmath 1.2 - */ - public final void set(Tuple3d t1) { - this.x = t1.x; - this.y = t1.y; - this.z = t1.z; - this.w = 1.0; - } - - - /** - * Returns the square of the distance between this point and point p1. - * - * @param p1 the first point - * @return the square of distance between this point and point p1 - */ - public final double distanceSquared(Point4d p1) { - double dx, dy, dz, dw; - - dx = this.x - p1.x; - dy = this.y - p1.y; - dz = this.z - p1.z; - dw = this.w - p1.w; - return (dx * dx + dy * dy + dz * dz + dw * dw); - } - - - /** - * Returns the distance between this point and point p1. - * - * @param p1 the first point - * @return the distance between these this point and point p1. - */ - public final double distance(Point4d p1) { - double dx, dy, dz, dw; - - dx = this.x - p1.x; - dy = this.y - p1.y; - dz = this.z - p1.z; - dw = this.w - p1.w; - return Math.sqrt(dx * dx + dy * dy + dz * dz + dw * dw); - } - - - /** - * Computes the L-1 (Manhattan) distance between this point and - * point p1. The L-1 distance is equal to: - * abs(x1-x2) + abs(y1-y2) + abs(z1-z2) + abs(w1-w2). - * - * @param p1 the other point - * @return the L-1 distance - */ - public final double distanceL1(Point4d p1) { - return Math.abs(this.x - p1.x) + Math.abs(this.y - p1.y) + - Math.abs(this.z - p1.z) + Math.abs(this.w - p1.w); - } - - /** - * Computes the L-infinite distance between this point and - * point p1. The L-infinite distance is equal to - * MAX[abs(x1-x2), abs(y1-y2), abs(z1-z2), abs(w1-w2)]. - * - * @param p1 the other point - * @return the L-infinite distance - */ - public final double distanceLinf(Point4d p1) { - double t1, t2; - t1 = Math.max(Math.abs(this.x - p1.x), Math.abs(this.y - p1.y)); - t2 = Math.max(Math.abs(this.z - p1.z), Math.abs(this.w - p1.w)); - - return Math.max(t1, t2); - } - - /** - * Multiplies each of the x,y,z components of the Point4d parameter - * by 1/w, places the projected values into this point, and places - * a 1 as the w parameter of this point. - * - * @param p1 the source Point4d, which is not modified - */ - public final void project(Point4d p1) { - double oneOw; - - oneOw = 1 / p1.w; - x = p1.x * oneOw; - y = p1.y * oneOw; - z = p1.z * oneOw; - w = 1.0; - - } - - -} diff --git a/core/src/main/java/com/volmit/iris/util/math/Point4f.java b/core/src/main/java/com/volmit/iris/util/math/Point4f.java deleted file mode 100644 index df98cbe08..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/Point4f.java +++ /dev/null @@ -1,214 +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 com.volmit.iris.util.math; - -/** - * A 4 element point represented by single precision floating point x,y,z,w - * coordinates. - */ -public class Point4f extends Tuple4f implements java.io.Serializable { - - - // Compatible with 1.1 - static final long serialVersionUID = 4643134103185764459L; - - /** - * Constructs and initializes a Point4f from the specified xyzw coordinates. - * - * @param x the x coordinate - * @param y the y coordinate - * @param z the z coordinate - * @param w the w coordinate - */ - public Point4f(float x, float y, float z, float w) { - super(x, y, z, w); - } - - - /** - * Constructs and initializes a Point4f from the array of length 4. - * - * @param p the array of length 4 containing xyzw in order - */ - public Point4f(float[] p) { - super(p); - } - - - /** - * Constructs and initializes a Point4f from the specified Point4f. - * - * @param p1 the Point4f containing the initialization x y z w data - */ - public Point4f(Point4f p1) { - super(p1); - } - - - /** - * Constructs and initializes a Point4f from the specified Point4d. - * - * @param p1 the Point4d containing the initialization x y z w data - */ - public Point4f(Point4d p1) { - super(p1); - } - - - /** - * Constructs and initializes a Point4f from the specified Tuple4f. - * - * @param t1 the Tuple4f containing the initialization x y z w data - */ - public Point4f(Tuple4f t1) { - super(t1); - } - - - /** - * Constructs and initializes a Point4f from the specified Tuple4d. - * - * @param t1 the Tuple4d containing the initialization x y z w data - */ - public Point4f(Tuple4d t1) { - super(t1); - } - - - /** - * Constructs and initializes a Point4f from the specified Tuple3f. - * The x,y,z components of this point are set to the corresponding - * components of tuple t1. The w component of this point - * is set to 1. - * - * @param t1 the tuple to be copied - * @since vecmath 1.2 - */ - public Point4f(Tuple3f t1) { - super(t1.x, t1.y, t1.z, 1.0f); - } - - - /** - * Constructs and initializes a Point4f to (0,0,0,0). - */ - public Point4f() { - super(); - } - - - /** - * Sets the x,y,z components of this point to the corresponding - * components of tuple t1. The w component of this point - * is set to 1. - * - * @param t1 the tuple to be copied - * @since vecmath 1.2 - */ - public final void set(Tuple3f t1) { - this.x = t1.x; - this.y = t1.y; - this.z = t1.z; - this.w = 1.0f; - } - - - /** - * Computes the square of the distance between this point and point p1. - * - * @param p1 the other point - * @return the square of distance between these two points as a float - */ - public final float distanceSquared(Point4f p1) { - float dx, dy, dz, dw; - - dx = this.x - p1.x; - dy = this.y - p1.y; - dz = this.z - p1.z; - dw = this.w - p1.w; - return (dx * dx + dy * dy + dz * dz + dw * dw); - } - - - /** - * Computes the distance between this point and point p1. - * - * @param p1 the other point - * @return the distance between the two points - */ - public final float distance(Point4f p1) { - float dx, dy, dz, dw; - - dx = this.x - p1.x; - dy = this.y - p1.y; - dz = this.z - p1.z; - dw = this.w - p1.w; - return (float) Math.sqrt(dx * dx + dy * dy + dz * dz + dw * dw); - } - - - /** - * Computes the L-1 (Manhattan) distance between this point and - * point p1. The L-1 distance is equal to: - * abs(x1-x2) + abs(y1-y2) + abs(z1-z2) + abs(w1-w2). - * - * @param p1 the other point - * @return the L-1 distance - */ - public final float distanceL1(Point4f p1) { - return (Math.abs(this.x - p1.x) + Math.abs(this.y - p1.y) + Math.abs(this.z - p1.z) + Math.abs(this.w - p1.w)); - } - - - /** - * Computes the L-infinite distance between this point and - * point p1. The L-infinite distance is equal to - * MAX[abs(x1-x2), abs(y1-y2), abs(z1-z2), abs(w1-w2)]. - * - * @param p1 the other point - * @return the L-infinite distance - */ - public final float distanceLinf(Point4f p1) { - float t1, t2; - t1 = Math.max(Math.abs(this.x - p1.x), Math.abs(this.y - p1.y)); - t2 = Math.max(Math.abs(this.z - p1.z), Math.abs(this.w - p1.w)); - - return (Math.max(t1, t2)); - - } - - /** - * Multiplies each of the x,y,z components of the Point4f parameter - * by 1/w, places the projected values into this point, and places - * a 1 as the w parameter of this point. - * - * @param p1 the source Point4f, which is not modified - */ - public final void project(Point4f p1) { - float oneOw; - - oneOw = 1 / p1.w; - x = p1.x * oneOw; - y = p1.y * oneOw; - z = p1.z * oneOw; - w = 1.0f; - - } - -} diff --git a/core/src/main/java/com/volmit/iris/util/math/Position2.java b/core/src/main/java/com/volmit/iris/util/math/Position2.java deleted file mode 100644 index 2175118ee..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/Position2.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 com.volmit.iris.util.math; - -import com.volmit.iris.engine.object.IrisPosition; -import org.bukkit.util.Vector; - -public class Position2 { - private int x; - private int z; - - public Position2(int x, int z) { - this.x = x; - this.z = z; - } - - public Position2(Vector center) { - this.x = center.getBlockX(); - this.z = center.getBlockZ(); - } - - public int getX() { - return x; - } - - public void setX(int x) { - this.x = x; - } - - public int getZ() { - return z; - } - - public void setZ(int z) { - this.z = z; - } - - public String toString() { - return "[" + x + "," + z + "]"; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + x; - result = prime * result + z; - return result; - } - - public Position2 regionToChunk() { - return new Position2(x << 5, z << 5); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (!(obj instanceof Position2 other)) { - return false; - } - return x == other.x && z == other.z; - } - - public double distance(Position2 center) { - return Math.pow(center.getX() - x, 2) + Math.pow(center.getZ() - z, 2); - } - - public Position2 add(int x, int z) { - return new Position2(this.x + x, this.z + z); - } - - public Position2 blockToChunk() { - return new Position2(x >> 4, z >> 4); - } - - public IrisPosition toIris() { - return new IrisPosition(x, 23, z); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/math/RNG.java b/core/src/main/java/com/volmit/iris/util/math/RNG.java deleted file mode 100644 index 0c735854a..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/RNG.java +++ /dev/null @@ -1,190 +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 com.volmit.iris.util.math; - -import com.volmit.iris.util.documentation.Exclusive; -import com.volmit.iris.util.documentation.Inclusive; - -import java.nio.charset.StandardCharsets; -import java.util.List; -import java.util.Random; -import java.util.UUID; - -public class RNG extends Random { - public static final RNG r = new RNG(); - private static final char[] CHARGEN = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-=!@#$%^&*()_+`~[];',./<>?:\\\"{}|\\\\".toCharArray(); - private static final long serialVersionUID = 5222938581174415179L; - private final long sx; - - public RNG() { - super(); - sx = 0; - } - - public RNG(long seed) { - super(seed); - this.sx = seed; - } - - /** - * Creates a seed (long) from the hash of the seed string - * - * @param seed the seed (string) - */ - public RNG(String seed) { - this(UUID.nameUUIDFromBytes(seed.getBytes(StandardCharsets.UTF_8)).getLeastSignificantBits() + UUID.nameUUIDFromBytes(seed.getBytes(StandardCharsets.UTF_8)).getMostSignificantBits() + (seed.length() * 32564L)); - } - - public RNG nextParallelRNG(int signature) { - return new RNG(sx + signature); - } - - public RNG nextParallelRNG(long signature) { - return new RNG(sx + signature); - } - - public String s(int length) { - StringBuilder sb = new StringBuilder(); - - for (int i = 0; i < length; i++) { - sb.append(c()); - } - - return sb.toString(); - } - - public char c() { - return CHARGEN[i(CHARGEN.length - 1)]; - } - - /** - * Pick a random enum - * - * @param t the enum class - * @return the enum - */ - public T e(Class t) { - T[] c = t.getEnumConstants(); - return c[i(c.length)]; - } - - public boolean b() { - return nextBoolean(); - } - - public boolean b(double percent) { - return d() > percent; - } - - public short si(@Inclusive int lowerBound, @Inclusive int upperBound) { - return (short) (lowerBound + (nextFloat() * ((upperBound - lowerBound) + 1))); - } - - public short si(@Inclusive int upperBound) { - return si(0, upperBound); - } - - public short si() { - return si(1); - } - - public float f(@Inclusive float lowerBound, @Exclusive float upperBound) { - return lowerBound + (nextFloat() * ((upperBound - lowerBound))); - } - - public float f(@Exclusive float upperBound) { - return f(0, upperBound); - } - - public float f() { - return f(1); - } - - public double d(@Inclusive double lowerBound, @Exclusive double upperBound) { - if (lowerBound > upperBound) { - return M.lerp(upperBound, lowerBound, nextDouble()); - } - - return M.lerp(lowerBound, upperBound, nextDouble()); - } - - public double d(@Exclusive double upperBound) { - return d(0, upperBound); - } - - public double d() { - return d(1); - } - - public int i(@Inclusive int lowerBound, @Exclusive int upperBound) { - return (int) Math.floor(d(lowerBound, upperBound)); - } - - public int i(@Exclusive int upperBound) { - return i(Math.min(upperBound, 0), Math.max(0, upperBound)); - } - - public long l(@Inclusive long lowerBound, @Exclusive long upperBound) { - return Math.round(d(lowerBound, upperBound)); - } - - public long l(@Exclusive long upperBound) { - return l(0, upperBound); - } - - public int imax() { - return i(Integer.MIN_VALUE, Integer.MAX_VALUE); - } - - public long lmax() { - return l(Long.MIN_VALUE, Long.MAX_VALUE); - } - - public float fmax() { - return f(Float.MIN_VALUE, Float.MAX_VALUE); - } - - public double dmax() { - return d(Double.MIN_VALUE, Double.MAX_VALUE); - } - - public short simax() { - return si(Short.MIN_VALUE, Short.MAX_VALUE); - } - - public boolean chance(double chance) { - return chance >= nextDouble(); - } - - public T pick(List pieces) { - if (pieces.isEmpty()) { - return null; - } - - if (pieces.size() == 1) { - return pieces.get(0); - } - - return pieces.get(nextInt(pieces.size())); - } - - public long getSeed() { - return sx; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/math/RollingSequence.java b/core/src/main/java/com/volmit/iris/util/math/RollingSequence.java deleted file mode 100644 index 777a51955..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/RollingSequence.java +++ /dev/null @@ -1,105 +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 com.volmit.iris.util.math; - -import com.volmit.iris.util.collection.KList; - -public class RollingSequence extends Average { - private double median; - private double max; - private double min; - private boolean dirtyMedian; - private int dirtyExtremes; - private boolean precision; - - public RollingSequence(int size) { - super(size); - median = 0; - min = 0; - max = 0; - setPrecision(false); - } - - public double addLast(int amt) { - double f = 0; - - for (int i = 0; i < Math.min(values.length, amt); i++) { - f += values[i]; - } - - return f; - } - - public boolean isPrecision() { - return precision; - } - - public void setPrecision(boolean p) { - this.precision = p; - } - - public double getMin() { - if (dirtyExtremes > (isPrecision() ? 0 : values.length)) { - resetExtremes(); - } - - return min; - } - - public double getMax() { - if (dirtyExtremes > (isPrecision() ? 0 : values.length)) { - resetExtremes(); - } - - return max; - } - - public double getMedian() { - if (dirtyMedian) { - recalculateMedian(); - } - - return median; - } - - private void recalculateMedian() { - median = new KList().forceAdd(values).sort().middleValue(); - dirtyMedian = false; - } - - public void resetExtremes() { - max = Integer.MIN_VALUE; - min = Integer.MAX_VALUE; - - for (double i : values) { - max = M.max(max, i); - min = M.min(min, i); - } - - dirtyExtremes = 0; - } - - public void put(double i) { - super.put(i); - dirtyMedian = true; - dirtyExtremes++; - max = M.max(max, i); - min = M.min(min, i); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/math/Spiral.java b/core/src/main/java/com/volmit/iris/util/math/Spiral.java deleted file mode 100644 index 04cb92a9f..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/Spiral.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 com.volmit.iris.util.math; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.RequiredArgsConstructor; -import org.jetbrains.annotations.NotNull; - -import java.util.Iterator; - -/** - * Represents a spiraler which can start from any point within Long.MAX_VALUE by Long.MAX_VALUE and iterate anywhere. - */ -@Data -@RequiredArgsConstructor -public class Spiral implements Iterable { - private final Position2 start; - private final long max; - - @SuppressWarnings("ConstantConditions") - public static Position2 next(Position2 p) { - int x = p.getX(); - int z = p.getZ(); - int ax = Math.abs(x); - int az = Math.abs(z); - - if (x == 0 && z == 0) { - return p.add(1, 0); - } - - if (ax == az) { - if (x > 0 && z > 0) return left(p); - else if (x < 0 && z > 0) return down(p); - else if (x < 0 && z < 0) return right(p); - else if (x > 0 && z < 0) return up(p); - } else { - if (x > z && ax > az) return up(p); - else if (x < z && ax < az) return left(p); - else if (x < z && ax > az) return down(p); - else if (x > z && ax < az) return right(p); - } - - return p; - } - - public static Spiral from(Position2 p, long iterations) { - return new Spiral(p, iterations); - } - - private static Position2 down(Position2 p) { - return p.add(0, -1); - } - - private static Position2 up(Position2 p) { - return p.add(0, 1); - } - - private static Position2 left(Position2 p) { - return p.add(-1, 0); - } - - private static Position2 right(Position2 p) { - return p.add(1, 0); - } - - @NotNull - @Override - public Iterator iterator() { - return new SpiralIterator(this, 0, start); - } - - @AllArgsConstructor - static class SpiralIterator implements Iterator { - private final Spiral s; - private long itr = 0; - private Position2 cursor; - - @Override - public boolean hasNext() { - return itr < s.getMax(); - } - - @Override - public Position2 next() { - Position2 m = cursor; - cursor = Spiral.next(cursor); - itr++; - return m; - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/math/Spiraled.java b/core/src/main/java/com/volmit/iris/util/math/Spiraled.java deleted file mode 100644 index b9b6e8cff..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/Spiraled.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 com.volmit.iris.util.math; - -@FunctionalInterface -public interface Spiraled { - void on(int x, int z); -} diff --git a/core/src/main/java/com/volmit/iris/util/math/Spiraler.java b/core/src/main/java/com/volmit/iris/util/math/Spiraler.java deleted file mode 100644 index f6f52f2bd..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/Spiraler.java +++ /dev/null @@ -1,88 +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 com.volmit.iris.util.math; - -@SuppressWarnings("EmptyMethod") -public class Spiraler { - private final Spiraled spiraled; - int x, z, dx, dz, sizeX, sizeZ, t, maxI, i; - int ox, oz; - - public Spiraler(int sizeX, int sizeZ, Spiraled spiraled) { - ox = 0; - oz = 0; - this.spiraled = spiraled; - retarget(sizeX, sizeZ); - } - - static void Spiral(int X, int Y) { - - } - - public void drain() { - while (hasNext()) { - next(); - } - } - - public Spiraler setOffset(int ox, int oz) { - this.ox = ox; - this.oz = oz; - return this; - } - - public void retarget(int sizeX, int sizeZ) { - this.sizeX = sizeX; - this.sizeZ = sizeZ; - x = z = dx = 0; - dz = -1; - i = 0; - t = Math.max(sizeX, sizeZ); - maxI = t * t; - } - - public boolean hasNext() { - return i < maxI; - } - - public void next() { - if ((-sizeX / 2 <= x) && (x <= sizeX / 2) && (-sizeZ / 2 <= z) && (z <= sizeZ / 2)) { - spiraled.on(x + ox, z + oz); - } - - if ((x == z) || ((x < 0) && (x == -z)) || ((x > 0) && (x == 1 - z))) { - t = dx; - dx = -dz; - dz = t; - } - x += dx; - z += dz; - i++; - } - - public int count() { - int c = 0; - while (hasNext()) { - next(); - c++; - } - - return c; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/math/Tuple2d.java b/core/src/main/java/com/volmit/iris/util/math/Tuple2d.java deleted file mode 100644 index e6b02d5c1..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/Tuple2d.java +++ /dev/null @@ -1,562 +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 com.volmit.iris.util.math; - -import com.volmit.iris.Iris; - -/** - * A generic 2-element tuple that is represented by double-precision - * floating point x,y coordinates. - */ -public abstract class Tuple2d implements java.io.Serializable, Cloneable { - - static final long serialVersionUID = 6205762482756093838L; - - /** - * The x coordinate. - */ - public double x; - - /** - * The y coordinate. - */ - public double y; - - - /** - * Constructs and initializes a Tuple2d from the specified xy coordinates. - * - * @param x the x coordinate - * @param y the y coordinate - */ - public Tuple2d(double x, double y) { - this.x = x; - this.y = y; - } - - - /** - * Constructs and initializes a Tuple2d from the specified array. - * - * @param t the array of length 2 containing xy in order - */ - public Tuple2d(double[] t) { - this.x = t[0]; - this.y = t[1]; - } - - - /** - * Constructs and initializes a Tuple2d from the specified Tuple2d. - * - * @param t1 the Tuple2d containing the initialization x y data - */ - public Tuple2d(Tuple2d t1) { - this.x = t1.x; - this.y = t1.y; - } - - - /** - * Constructs and initializes a Tuple2d from the specified Tuple2f. - * - * @param t1 the Tuple2f containing the initialization x y data - */ - public Tuple2d(Tuple2f t1) { - this.x = t1.x; - this.y = t1.y; - } - - /** - * Constructs and initializes a Tuple2d to (0,0). - */ - public Tuple2d() { - this.x = 0.0; - this.y = 0.0; - } - - - /** - * Sets the value of this tuple to the specified xy coordinates. - * - * @param x the x coordinate - * @param y the y coordinate - */ - public final void set(double x, double y) { - this.x = x; - this.y = y; - } - - - /** - * Sets the value of this tuple from the 2 values specified in - * the array. - * - * @param t the array of length 2 containing xy in order - */ - public final void set(double[] t) { - this.x = t[0]; - this.y = t[1]; - } - - - /** - * Sets the value of this tuple to the value of the Tuple2d argument. - * - * @param t1 the tuple to be copied - */ - public final void set(Tuple2d t1) { - this.x = t1.x; - this.y = t1.y; - } - - - /** - * Sets the value of this tuple to the value of Tuple2f t1. - * - * @param t1 the tuple to be copied - */ - public final void set(Tuple2f t1) { - this.x = t1.x; - this.y = t1.y; - } - - /** - * Copies the value of the elements of this tuple into the array t. - * - * @param t the array that will contain the values of the vector - */ - public final void get(double[] t) { - t[0] = this.x; - t[1] = this.y; - } - - - /** - * Sets the value of this tuple to the vector sum of tuples t1 and t2. - * - * @param t1 the first tuple - * @param t2 the second tuple - */ - public final void add(Tuple2d t1, Tuple2d t2) { - this.x = t1.x + t2.x; - this.y = t1.y + t2.y; - } - - - /** - * Sets the value of this tuple to the vector sum of itself and tuple t1. - * - * @param t1 the other tuple - */ - public final void add(Tuple2d t1) { - this.x += t1.x; - this.y += t1.y; - } - - - /** - * Sets the value of this tuple to the vector difference of - * tuple t1 and t2 (this = t1 - t2). - * - * @param t1 the first tuple - * @param t2 the second tuple - */ - public final void sub(Tuple2d t1, Tuple2d t2) { - this.x = t1.x - t2.x; - this.y = t1.y - t2.y; - } - - - /** - * Sets the value of this tuple to the vector difference of - * itself and tuple t1 (this = this - t1). - * - * @param t1 the other vector - */ - public final void sub(Tuple2d t1) { - this.x -= t1.x; - this.y -= t1.y; - } - - - /** - * Sets the value of this tuple to the negation of tuple t1. - * - * @param t1 the source vector - */ - public final void negate(Tuple2d t1) { - this.x = -t1.x; - this.y = -t1.y; - } - - - /** - * Negates the value of this vector in place. - */ - public final void negate() { - this.x = -this.x; - this.y = -this.y; - } - - - /** - * Sets the value of this tuple to the scalar multiplication - * of tuple t1. - * - * @param s the scalar value - * @param t1 the source tuple - */ - public final void scale(double s, Tuple2d t1) { - this.x = s * t1.x; - this.y = s * t1.y; - } - - - /** - * Sets the value of this tuple to the scalar multiplication - * of itself. - * - * @param s the scalar value - */ - public final void scale(double s) { - this.x *= s; - this.y *= s; - } - - - /** - * Sets the value of this tuple to the scalar multiplication - * of tuple t1 and then adds tuple t2 (this = s*t1 + t2). - * - * @param s the scalar value - * @param t1 the tuple to be multipled - * @param t2 the tuple to be added - */ - public final void scaleAdd(double s, Tuple2d t1, Tuple2d t2) { - this.x = s * t1.x + t2.x; - this.y = s * t1.y + t2.y; - } - - - /** - * Sets the value of this tuple to the scalar multiplication - * of itself and then adds tuple t1 (this = s*this + t1). - * - * @param s the scalar value - * @param t1 the tuple to be added - */ - public final void scaleAdd(double s, Tuple2d t1) { - this.x = s * this.x + t1.x; - this.y = s * this.y + t1.y; - } - - - /** - * Returns a hash code value based on the data values in this - * object. Two different Tuple2d objects with identical data values - * (i.e., Tuple2d.equals returns true) will return the same hash - * code value. Two objects with different data members may return the - * same hash value, although this is not likely. - * - * @return the integer hash code value - */ - public int hashCode() { - long bits = 1L; - bits = 31L * bits + VecMathUtil.doubleToLongBits(x); - bits = 31L * bits + VecMathUtil.doubleToLongBits(y); - return (int) (bits ^ (bits >> 32)); - } - - - /** - * Returns true if all of the data members of Tuple2d t1 are - * equal to the corresponding data members in this Tuple2d. - * - * @param t1 the vector with which the comparison is made - * @return true or false - */ - public boolean equals(Tuple2d t1) { - try { - return (this.x == t1.x && this.y == t1.y); - } catch (NullPointerException e2) { - Iris.reportError(e2); - return false; - } - - } - - /** - * Returns true if the Object t1 is of type Tuple2d and all of the - * data members of t1 are equal to the corresponding data members in - * this Tuple2d. - * - * @param t1 the object with which the comparison is made - * @return true or false - */ - public boolean equals(Object t1) { - try { - Tuple2d t2 = (Tuple2d) t1; - return (this.x == t2.x && this.y == t2.y); - } catch (NullPointerException | ClassCastException e2) { - Iris.reportError(e2); - return false; - } - - } - - /** - * Returns true if the L-infinite distance between this tuple - * and tuple t1 is less than or equal to the epsilon parameter, - * otherwise returns false. The L-infinite - * distance is equal to MAX[abs(x1-x2), abs(y1-y2)]. - * - * @param t1 the tuple to be compared to this tuple - * @param epsilon the threshold value - * @return true or false - */ - public boolean epsilonEquals(Tuple2d t1, double epsilon) { - double diff; - - diff = x - t1.x; - if (Double.isNaN(diff)) return false; - if ((diff < 0 ? -diff : diff) > epsilon) return false; - - diff = y - t1.y; - if (Double.isNaN(diff)) return false; - return !((diff < 0 ? -diff : diff) > epsilon); - } - - /** - * Returns a string that contains the values of this Tuple2d. - * The form is (x,y). - * - * @return the String representation - */ - public String toString() { - return ("(" + this.x + ", " + this.y + ")"); - } - - - /** - * Clamps the tuple parameter to the range [low, high] and - * places the values into this tuple. - * - * @param min the lowest value in the tuple after clamping - * @param max the highest value in the tuple after clamping - * @param t the source tuple, which will not be modified - */ - public final void clamp(double min, double max, Tuple2d t) { - if (t.x > max) { - x = max; - } else x = Math.max(t.x, min); - - if (t.y > max) { - y = max; - } else y = Math.max(t.y, min); - - } - - - /** - * Clamps the minimum value of the tuple parameter to the min - * parameter and places the values into this tuple. - * - * @param min the lowest value in the tuple after clamping - * @param t the source tuple, which will not be modified - */ - public final void clampMin(double min, Tuple2d t) { - x = Math.max(t.x, min); - - y = Math.max(t.y, min); - - } - - - /** - * Clamps the maximum value of the tuple parameter to the max - * parameter and places the values into this tuple. - * - * @param max the highest value in the tuple after clamping - * @param t the source tuple, which will not be modified - */ - public final void clampMax(double max, Tuple2d t) { - x = Math.min(t.x, max); - - y = Math.min(t.y, max); - - } - - - /** - * Sets each component of the tuple parameter to its absolute - * value and places the modified values into this tuple. - * - * @param t the source tuple, which will not be modified - */ - public final void absolute(Tuple2d t) { - x = Math.abs(t.x); - y = Math.abs(t.y); - } - - - /** - * Clamps this tuple to the range [low, high]. - * - * @param min the lowest value in this tuple after clamping - * @param max the highest value in this tuple after clamping - */ - public final void clamp(double min, double max) { - if (x > max) { - x = max; - } else if (x < min) { - x = min; - } - - if (y > max) { - y = max; - } else if (y < min) { - y = min; - } - - } - - - /** - * Clamps the minimum value of this tuple to the min parameter. - * - * @param min the lowest value in this tuple after clamping - */ - public final void clampMin(double min) { - if (x < min) x = min; - if (y < min) y = min; - } - - - /** - * Clamps the maximum value of this tuple to the max parameter. - * - * @param max the highest value in the tuple after clamping - */ - public final void clampMax(double max) { - if (x > max) x = max; - if (y > max) y = max; - } - - - /** - * Sets each component of this tuple to its absolute value. - */ - public final void absolute() { - x = Math.abs(x); - y = Math.abs(y); - } - - - /** - * Linearly interpolates between tuples t1 and t2 and places the - * result into this tuple: this = (1-alpha)*t1 + alpha*t2. - * - * @param t1 the first tuple - * @param t2 the second tuple - * @param alpha the alpha interpolation parameter - */ - public final void interpolate(Tuple2d t1, Tuple2d t2, double alpha) { - this.x = (1 - alpha) * t1.x + alpha * t2.x; - this.y = (1 - alpha) * t1.y + alpha * t2.y; - } - - - /** - * Linearly interpolates between this tuple and tuple t1 and - * places the result into this tuple: this = (1-alpha)*this + alpha*t1. - * - * @param t1 the first tuple - * @param alpha the alpha interpolation parameter - */ - public final void interpolate(Tuple2d t1, double alpha) { - this.x = (1 - alpha) * this.x + alpha * t1.x; - this.y = (1 - alpha) * this.y + alpha * t1.y; - - } - - /** - * Creates a new object of the same class as this object. - * - * @return a clone of this instance. - * @throws OutOfMemoryError if there is not enough memory. - * @see java.lang.Cloneable - * @since vecmath 1.3 - */ - public Object clone() { - // Since there are no arrays we can just use Object.clone() - try { - return super.clone(); - } catch (CloneNotSupportedException e) { - Iris.reportError(e); - // this shouldn't happen, since we are Cloneable - throw new InternalError(); - } - } - - - /** - * Get the x coordinate. - * - * @return the x coordinate. - * @since vecmath 1.5 - */ - public final double getX() { - return x; - } - - - /** - * Set the x coordinate. - * - * @param x value to x coordinate. - * @since vecmath 1.5 - */ - public final void setX(double x) { - this.x = x; - } - - - /** - * Get the y coordinate. - * - * @return the y coordinate. - * @since vecmath 1.5 - */ - public final double getY() { - return y; - } - - - /** - * Set the y coordinate. - * - * @param y value to y coordinate. - * @since vecmath 1.5 - */ - public final void setY(double y) { - this.y = y; - } - -} diff --git a/core/src/main/java/com/volmit/iris/util/math/Tuple2f.java b/core/src/main/java/com/volmit/iris/util/math/Tuple2f.java deleted file mode 100644 index 1fd2da63d..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/Tuple2f.java +++ /dev/null @@ -1,565 +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 com.volmit.iris.util.math; - -import com.volmit.iris.Iris; - -/** - * A generic 2-element tuple that is represented by single-precision - * floating point x,y coordinates. - */ -public abstract class Tuple2f implements java.io.Serializable, Cloneable { - - static final long serialVersionUID = 9011180388985266884L; - - /** - * The x coordinate. - */ - public float x; - - /** - * The y coordinate. - */ - public float y; - - - /** - * Constructs and initializes a Tuple2f from the specified xy coordinates. - * - * @param x the x coordinate - * @param y the y coordinate - */ - public Tuple2f(float x, float y) { - this.x = x; - this.y = y; - } - - - /** - * Constructs and initializes a Tuple2f from the specified array. - * - * @param t the array of length 2 containing xy in order - */ - public Tuple2f(float[] t) { - this.x = t[0]; - this.y = t[1]; - } - - - /** - * Constructs and initializes a Tuple2f from the specified Tuple2f. - * - * @param t1 the Tuple2f containing the initialization x y data - */ - public Tuple2f(Tuple2f t1) { - this.x = t1.x; - this.y = t1.y; - } - - - /** - * Constructs and initializes a Tuple2f from the specified Tuple2d. - * - * @param t1 the Tuple2d containing the initialization x y data - */ - public Tuple2f(Tuple2d t1) { - this.x = (float) t1.x; - this.y = (float) t1.y; - } - - - /** - * Constructs and initializes a Tuple2f to (0,0). - */ - public Tuple2f() { - this.x = (float) 0.0; - this.y = (float) 0.0; - } - - - /** - * Sets the value of this tuple to the specified xy coordinates. - * - * @param x the x coordinate - * @param y the y coordinate - */ - public final void set(float x, float y) { - this.x = x; - this.y = y; - } - - - /** - * Sets the value of this tuple from the 2 values specified in - * the array. - * - * @param t the array of length 2 containing xy in order - */ - public final void set(float[] t) { - this.x = t[0]; - this.y = t[1]; - } - - - /** - * Sets the value of this tuple to the value of the Tuple2f argument. - * - * @param t1 the tuple to be copied - */ - public final void set(Tuple2f t1) { - this.x = t1.x; - this.y = t1.y; - } - - - /** - * Sets the value of this tuple to the value of the Tuple2d argument. - * - * @param t1 the tuple to be copied - */ - public final void set(Tuple2d t1) { - this.x = (float) t1.x; - this.y = (float) t1.y; - } - - - /** - * Copies the value of the elements of this tuple into the array t. - * - * @param t the array that will contain the values of the vector - */ - public final void get(float[] t) { - t[0] = this.x; - t[1] = this.y; - } - - - /** - * Sets the value of this tuple to the vector sum of tuples t1 and t2. - * - * @param t1 the first tuple - * @param t2 the second tuple - */ - public final void add(Tuple2f t1, Tuple2f t2) { - this.x = t1.x + t2.x; - this.y = t1.y + t2.y; - } - - - /** - * Sets the value of this tuple to the vector sum of itself and tuple t1. - * - * @param t1 the other tuple - */ - public final void add(Tuple2f t1) { - this.x += t1.x; - this.y += t1.y; - } - - - /** - * Sets the value of this tuple to the vector difference of - * tuple t1 and t2 (this = t1 - t2). - * - * @param t1 the first tuple - * @param t2 the second tuple - */ - public final void sub(Tuple2f t1, Tuple2f t2) { - this.x = t1.x - t2.x; - this.y = t1.y - t2.y; - } - - - /** - * Sets the value of this tuple to the vector difference of - * itself and tuple t1 (this = this - t1). - * - * @param t1 the other tuple - */ - public final void sub(Tuple2f t1) { - this.x -= t1.x; - this.y -= t1.y; - } - - - /** - * Sets the value of this tuple to the negation of tuple t1. - * - * @param t1 the source tuple - */ - public final void negate(Tuple2f t1) { - this.x = -t1.x; - this.y = -t1.y; - } - - - /** - * Negates the value of this vector in place. - */ - public final void negate() { - this.x = -this.x; - this.y = -this.y; - } - - - /** - * Sets the value of this tuple to the scalar multiplication - * of tuple t1. - * - * @param s the scalar value - * @param t1 the source tuple - */ - public final void scale(float s, Tuple2f t1) { - this.x = s * t1.x; - this.y = s * t1.y; - } - - - /** - * Sets the value of this tuple to the scalar multiplication - * of itself. - * - * @param s the scalar value - */ - public final void scale(float s) { - this.x *= s; - this.y *= s; - } - - - /** - * Sets the value of this tuple to the scalar multiplication - * of tuple t1 and then adds tuple t2 (this = s*t1 + t2). - * - * @param s the scalar value - * @param t1 the tuple to be multipled - * @param t2 the tuple to be added - */ - public final void scaleAdd(float s, Tuple2f t1, Tuple2f t2) { - this.x = s * t1.x + t2.x; - this.y = s * t1.y + t2.y; - } - - - /** - * Sets the value of this tuple to the scalar multiplication - * of itself and then adds tuple t1 (this = s*this + t1). - * - * @param s the scalar value - * @param t1 the tuple to be added - */ - public final void scaleAdd(float s, Tuple2f t1) { - this.x = s * this.x + t1.x; - this.y = s * this.y + t1.y; - } - - - /** - * Returns a hash code value based on the data values in this - * object. Two different Tuple2f objects with identical data values - * (i.e., Tuple2f.equals returns true) will return the same hash - * code value. Two objects with different data members may return the - * same hash value, although this is not likely. - * - * @return the integer hash code value - */ - public int hashCode() { - long bits = 1L; - bits = 31L * bits + (long) VecMathUtil.floatToIntBits(x); - bits = 31L * bits + (long) VecMathUtil.floatToIntBits(y); - return (int) (bits ^ (bits >> 32)); - } - - - /** - * Returns true if all of the data members of Tuple2f t1 are - * equal to the corresponding data members in this Tuple2f. - * - * @param t1 the vector with which the comparison is made - * @return true or false - */ - public boolean equals(Tuple2f t1) { - try { - return (this.x == t1.x && this.y == t1.y); - } catch (NullPointerException e2) { - Iris.reportError(e2); - return false; - } - - } - - /** - * Returns true if the Object t1 is of type Tuple2f and all of the - * data members of t1 are equal to the corresponding data members in - * this Tuple2f. - * - * @param t1 the object with which the comparison is made - * @return true or false - */ - public boolean equals(Object t1) { - try { - Tuple2f t2 = (Tuple2f) t1; - return (this.x == t2.x && this.y == t2.y); - } catch (NullPointerException | ClassCastException e2) { - Iris.reportError(e2); - return false; - } - - } - - /** - * Returns true if the L-infinite distance between this tuple - * and tuple t1 is less than or equal to the epsilon parameter, - * otherwise returns false. The L-infinite - * distance is equal to MAX[abs(x1-x2), abs(y1-y2)]. - * - * @param t1 the tuple to be compared to this tuple - * @param epsilon the threshold value - * @return true or false - */ - public boolean epsilonEquals(Tuple2f t1, float epsilon) { - float diff; - - diff = x - t1.x; - if (Float.isNaN(diff)) return false; - if ((diff < 0 ? -diff : diff) > epsilon) return false; - - diff = y - t1.y; - if (Float.isNaN(diff)) return false; - return !((diff < 0 ? -diff : diff) > epsilon); - } - - /** - * Returns a string that contains the values of this Tuple2f. - * The form is (x,y). - * - * @return the String representation - */ - public String toString() { - return ("(" + this.x + ", " + this.y + ")"); - } - - - /** - * Clamps the tuple parameter to the range [low, high] and - * places the values into this tuple. - * - * @param min the lowest value in the tuple after clamping - * @param max the highest value in the tuple after clamping - * @param t the source tuple, which will not be modified - */ - public final void clamp(float min, float max, Tuple2f t) { - if (t.x > max) { - x = max; - } else x = Math.max(t.x, min); - - if (t.y > max) { - y = max; - } else y = Math.max(t.y, min); - - } - - - /** - * Clamps the minimum value of the tuple parameter to the min - * parameter and places the values into this tuple. - * - * @param min the lowest value in the tuple after clamping - * @param t the source tuple, which will not be modified - */ - public final void clampMin(float min, Tuple2f t) { - x = Math.max(t.x, min); - - y = Math.max(t.y, min); - - } - - - /** - * Clamps the maximum value of the tuple parameter to the max - * parameter and places the values into this tuple. - * - * @param max the highest value in the tuple after clamping - * @param t the source tuple, which will not be modified - */ - public final void clampMax(float max, Tuple2f t) { - x = Math.min(t.x, max); - - y = Math.min(t.y, max); - - } - - - /** - * Sets each component of the tuple parameter to its absolute - * value and places the modified values into this tuple. - * - * @param t the source tuple, which will not be modified - */ - public final void absolute(Tuple2f t) { - x = Math.abs(t.x); - y = Math.abs(t.y); - } - - - /** - * Clamps this tuple to the range [low, high]. - * - * @param min the lowest value in this tuple after clamping - * @param max the highest value in this tuple after clamping - */ - public final void clamp(float min, float max) { - if (x > max) { - x = max; - } else if (x < min) { - x = min; - } - - if (y > max) { - y = max; - } else if (y < min) { - y = min; - } - - } - - - /** - * Clamps the minimum value of this tuple to the min parameter. - * - * @param min the lowest value in this tuple after clamping - */ - public final void clampMin(float min) { - if (x < min) x = min; - if (y < min) y = min; - } - - - /** - * Clamps the maximum value of this tuple to the max parameter. - * - * @param max the highest value in the tuple after clamping - */ - public final void clampMax(float max) { - if (x > max) x = max; - if (y > max) y = max; - } - - - /** - * Sets each component of this tuple to its absolute value. - */ - public final void absolute() { - x = Math.abs(x); - y = Math.abs(y); - } - - - /** - * Linearly interpolates between tuples t1 and t2 and places the - * result into this tuple: this = (1-alpha)*t1 + alpha*t2. - * - * @param t1 the first tuple - * @param t2 the second tuple - * @param alpha the alpha interpolation parameter - */ - public final void interpolate(Tuple2f t1, Tuple2f t2, float alpha) { - this.x = (1 - alpha) * t1.x + alpha * t2.x; - this.y = (1 - alpha) * t1.y + alpha * t2.y; - - } - - - /** - * Linearly interpolates between this tuple and tuple t1 and - * places the result into this tuple: this = (1-alpha)*this + alpha*t1. - * - * @param t1 the first tuple - * @param alpha the alpha interpolation parameter - */ - public final void interpolate(Tuple2f t1, float alpha) { - - this.x = (1 - alpha) * this.x + alpha * t1.x; - this.y = (1 - alpha) * this.y + alpha * t1.y; - - } - - /** - * Creates a new object of the same class as this object. - * - * @return a clone of this instance. - * @throws OutOfMemoryError if there is not enough memory. - * @see java.lang.Cloneable - * @since vecmath 1.3 - */ - public Object clone() { - // Since there are no arrays we can just use Object.clone() - try { - return super.clone(); - } catch (CloneNotSupportedException e) { - Iris.reportError(e); - // this shouldn't happen, since we are Cloneable - throw new InternalError(); - } - } - - - /** - * Get the x coordinate. - * - * @return the x coordinate. - * @since vecmath 1.5 - */ - public final float getX() { - return x; - } - - - /** - * Set the x coordinate. - * - * @param x value to x coordinate. - * @since vecmath 1.5 - */ - public final void setX(float x) { - this.x = x; - } - - - /** - * Get the y coordinate. - * - * @return the y coordinate. - * @since vecmath 1.5 - */ - public final float getY() { - return y; - } - - - /** - * Set the y coordinate. - * - * @param y value to y coordinate. - * @since vecmath 1.5 - */ - public final void setY(float y) { - this.y = y; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/math/Tuple3d.java b/core/src/main/java/com/volmit/iris/util/math/Tuple3d.java deleted file mode 100644 index ea4415335..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/Tuple3d.java +++ /dev/null @@ -1,719 +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 com.volmit.iris.util.math; - -import com.volmit.iris.Iris; - -/** - * A generic 3-element tuple that is represented by double-precision - * floating point x,y,z coordinates. - */ -public abstract class Tuple3d implements java.io.Serializable, Cloneable { - - static final long serialVersionUID = 5542096614926168415L; - - /** - * The x coordinate. - */ - public double x; - - /** - * The y coordinate. - */ - public double y; - - /** - * The z coordinate. - */ - public double z; - - - /** - * Constructs and initializes a Tuple3d from the specified xyz coordinates. - * - * @param x the x coordinate - * @param y the y coordinate - * @param z the z coordinate - */ - public Tuple3d(double x, double y, double z) { - this.x = x; - this.y = y; - this.z = z; - } - - /** - * Constructs and initializes a Tuple3d from the array of length 3. - * - * @param t the array of length 3 containing xyz in order - */ - public Tuple3d(double[] t) { - this.x = t[0]; - this.y = t[1]; - this.z = t[2]; - } - - /** - * Constructs and initializes a Tuple3d from the specified Tuple3d. - * - * @param t1 the Tuple3d containing the initialization x y z data - */ - public Tuple3d(Tuple3d t1) { - this.x = t1.x; - this.y = t1.y; - this.z = t1.z; - } - - /** - * Constructs and initializes a Tuple3d from the specified Tuple3f. - * - * @param t1 the Tuple3f containing the initialization x y z data - */ - public Tuple3d(Tuple3f t1) { - this.x = t1.x; - this.y = t1.y; - this.z = t1.z; - } - - /** - * Constructs and initializes a Tuple3d to (0,0,0). - */ - public Tuple3d() { - this.x = 0.0; - this.y = 0.0; - this.z = 0.0; - } - - /** - * Sets the value of this tuple to the specified xyz coordinates. - * - * @param x the x coordinate - * @param y the y coordinate - * @param z the z coordinate - */ - public final void set(double x, double y, double z) { - this.x = x; - this.y = y; - this.z = z; - } - - /** - * Sets the value of this tuple to the value of the xyz coordinates - * located in the array of length 3. - * - * @param t the array of length 3 containing xyz in order - */ - public final void set(double[] t) { - this.x = t[0]; - this.y = t[1]; - this.z = t[2]; - } - - /** - * Sets the value of this tuple to the value of tuple t1. - * - * @param t1 the tuple to be copied - */ - public final void set(Tuple3d t1) { - this.x = t1.x; - this.y = t1.y; - this.z = t1.z; - } - - /** - * Sets the value of this tuple to the value of tuple t1. - * - * @param t1 the tuple to be copied - */ - public final void set(Tuple3f t1) { - this.x = t1.x; - this.y = t1.y; - this.z = t1.z; - } - - /** - * Copies the x,y,z coordinates of this tuple into the array t - * of length 3. - * - * @param t the target array - */ - public final void get(double[] t) { - t[0] = this.x; - t[1] = this.y; - t[2] = this.z; - } - - - /** - * Copies the x,y,z coordinates of this tuple into the tuple t. - * - * @param t the Tuple3d object into which the values of this object are copied - */ - public final void get(Tuple3d t) { - t.x = this.x; - t.y = this.y; - t.z = this.z; - } - - - /** - * Sets the value of this tuple to the sum of tuples t1 and t2. - * - * @param t1 the first tuple - * @param t2 the second tuple - */ - public final void add(Tuple3d t1, Tuple3d t2) { - this.x = t1.x + t2.x; - this.y = t1.y + t2.y; - this.z = t1.z + t2.z; - } - - - /** - * Sets the value of this tuple to the sum of itself and t1. - * - * @param t1 the other tuple - */ - public final void add(Tuple3d t1) { - this.x += t1.x; - this.y += t1.y; - this.z += t1.z; - } - - /** - * Sets the value of this tuple to the difference of tuples - * t1 and t2 (this = t1 - t2). - * - * @param t1 the first tuple - * @param t2 the second tuple - */ - public final void sub(Tuple3d t1, Tuple3d t2) { - this.x = t1.x - t2.x; - this.y = t1.y - t2.y; - this.z = t1.z - t2.z; - } - - /** - * Sets the value of this tuple to the difference - * of itself and t1 (this = this - t1). - * - * @param t1 the other tuple - */ - public final void sub(Tuple3d t1) { - this.x -= t1.x; - this.y -= t1.y; - this.z -= t1.z; - } - - - /** - * Sets the value of this tuple to the negation of tuple t1. - * - * @param t1 the source tuple - */ - public final void negate(Tuple3d t1) { - this.x = -t1.x; - this.y = -t1.y; - this.z = -t1.z; - } - - - /** - * Negates the value of this tuple in place. - */ - public final void negate() { - this.x = -this.x; - this.y = -this.y; - this.z = -this.z; - } - - - /** - * Sets the value of this tuple to the scalar multiplication - * of tuple t1. - * - * @param s the scalar value - * @param t1 the source tuple - */ - public final void scale(double s, Tuple3d t1) { - this.x = s * t1.x; - this.y = s * t1.y; - this.z = s * t1.z; - } - - - /** - * Sets the value of this tuple to the scalar multiplication - * of itself. - * - * @param s the scalar value - */ - public final void scale(double s) { - this.x *= s; - this.y *= s; - this.z *= s; - } - - - /** - * Sets the value of this tuple to the scalar multiplication - * of tuple t1 and then adds tuple t2 (this = s*t1 + t2). - * - * @param s the scalar value - * @param t1 the tuple to be multipled - * @param t2 the tuple to be added - */ - public final void scaleAdd(double s, Tuple3d t1, Tuple3d t2) { - this.x = s * t1.x + t2.x; - this.y = s * t1.y + t2.y; - this.z = s * t1.z + t2.z; - } - - - /** - * @deprecated Use scaleAdd(double,Tuple3d) instead - */ - @Deprecated - public final void scaleAdd(double s, Tuple3f t1) { - scaleAdd(s, new Point3d(t1)); - } - - - /** - * Sets the value of this tuple to the scalar multiplication - * of itself and then adds tuple t1 (this = s*this + t1). - * - * @param s the scalar value - * @param t1 the tuple to be added - */ - public final void scaleAdd(double s, Tuple3d t1) { - this.x = s * this.x + t1.x; - this.y = s * this.y + t1.y; - this.z = s * this.z + t1.z; - } - - - /** - * Returns a string that contains the values of this Tuple3d. - * The form is (x,y,z). - * - * @return the String representation - */ - public String toString() { - return "(" + this.x + ", " + this.y + ", " + this.z + ")"; - } - - - /** - * Returns a hash code value based on the data values in this - * object. Two different Tuple3d objects with identical data values - * (i.e., Tuple3d.equals returns true) will return the same hash - * code value. Two objects with different data members may return the - * same hash value, although this is not likely. - * - * @return the integer hash code value - */ - public int hashCode() { - long bits = 1L; - bits = 31L * bits + VecMathUtil.doubleToLongBits(x); - bits = 31L * bits + VecMathUtil.doubleToLongBits(y); - bits = 31L * bits + VecMathUtil.doubleToLongBits(z); - return (int) (bits ^ (bits >> 32)); - } - - - /** - * Returns true if all of the data members of Tuple3d t1 are - * equal to the corresponding data members in this Tuple3d. - * - * @param t1 the tuple with which the comparison is made - * @return true or false - */ - public boolean equals(Tuple3d t1) { - try { - return (this.x == t1.x && this.y == t1.y && this.z == t1.z); - } catch (NullPointerException e2) { - Iris.reportError(e2); - return false; - } - } - - /** - * Returns true if the Object t1 is of type Tuple3d and all of the - * data members of t1 are equal to the corresponding data members in - * this Tuple3d. - * - * @param t1 the Object with which the comparison is made - * @return true or false - */ - public boolean equals(Object t1) { - try { - Tuple3d t2 = (Tuple3d) t1; - return (this.x == t2.x && this.y == t2.y && this.z == t2.z); - } catch (ClassCastException | NullPointerException e1) { - Iris.reportError(e1); - return false; - } - - } - - /** - * Returns true if the L-infinite distance between this tuple - * and tuple t1 is less than or equal to the epsilon parameter, - * otherwise returns false. The L-infinite - * distance is equal to MAX[abs(x1-x2), abs(y1-y2), abs(z1-z2)]. - * - * @param t1 the tuple to be compared to this tuple - * @param epsilon the threshold value - * @return true or false - */ - public boolean epsilonEquals(Tuple3d t1, double epsilon) { - double diff; - - diff = x - t1.x; - if (Double.isNaN(diff)) return false; - if ((diff < 0 ? -diff : diff) > epsilon) return false; - - diff = y - t1.y; - if (Double.isNaN(diff)) return false; - if ((diff < 0 ? -diff : diff) > epsilon) return false; - - diff = z - t1.z; - if (Double.isNaN(diff)) return false; - return !((diff < 0 ? -diff : diff) > epsilon); - - } - - - /** - * @deprecated Use clamp(double,double,Tuple3d) instead - */ - @Deprecated - public final void clamp(float min, float max, Tuple3d t) { - clamp(min, (double) max, t); - } - - - /** - * Clamps the tuple parameter to the range [low, high] and - * places the values into this tuple. - * - * @param min the lowest value in the tuple after clamping - * @param max the highest value in the tuple after clamping - * @param t the source tuple, which will not be modified - */ - public final void clamp(double min, double max, Tuple3d t) { - if (t.x > max) { - x = max; - } else x = Math.max(t.x, min); - - if (t.y > max) { - y = max; - } else y = Math.max(t.y, min); - - if (t.z > max) { - z = max; - } else z = Math.max(t.z, min); - - } - - - /** - * @deprecated Use clampMin(double,Tuple3d) instead - */ - @Deprecated - public final void clampMin(float min, Tuple3d t) { - clampMin((double) min, t); - } - - - /** - * Clamps the minimum value of the tuple parameter to the min - * parameter and places the values into this tuple. - * - * @param min the lowest value in the tuple after clamping - * @param t the source tuple, which will not be modified - */ - public final void clampMin(double min, Tuple3d t) { - x = Math.max(t.x, min); - - y = Math.max(t.y, min); - - z = Math.max(t.z, min); - - } - - - /** - * @deprecated Use clampMax(double,Tuple3d) instead - */ - @Deprecated - public final void clampMax(float max, Tuple3d t) { - clampMax((double) max, t); - } - - - /** - * Clamps the maximum value of the tuple parameter to the max - * parameter and places the values into this tuple. - * - * @param max the highest value in the tuple after clamping - * @param t the source tuple, which will not be modified - */ - public final void clampMax(double max, Tuple3d t) { - x = Math.min(t.x, max); - - y = Math.min(t.y, max); - - z = Math.min(t.z, max); - - } - - - /** - * Sets each component of the tuple parameter to its absolute - * value and places the modified values into this tuple. - * - * @param t the source tuple, which will not be modified - */ - public final void absolute(Tuple3d t) { - x = Math.abs(t.x); - y = Math.abs(t.y); - z = Math.abs(t.z); - - } - - - /** - * @deprecated Use clamp(double,double) instead - */ - @Deprecated - public final void clamp(float min, float max) { - clamp(min, (double) max); - } - - - /** - * Clamps this tuple to the range [low, high]. - * - * @param min the lowest value in this tuple after clamping - * @param max the highest value in this tuple after clamping - */ - public final void clamp(double min, double max) { - if (x > max) { - x = max; - } else if (x < min) { - x = min; - } - - if (y > max) { - y = max; - } else if (y < min) { - y = min; - } - - if (z > max) { - z = max; - } else if (z < min) { - z = min; - } - - } - - - /** - * @deprecated Use clampMin(double) instead - */ - @Deprecated - public final void clampMin(float min) { - clampMin((double) min); - } - - - /** - * Clamps the minimum value of this tuple to the min parameter. - * - * @param min the lowest value in this tuple after clamping - */ - public final void clampMin(double min) { - if (x < min) x = min; - if (y < min) y = min; - if (z < min) z = min; - } - - - /** - * @deprecated Use clampMax(double) instead - */ - @Deprecated - public final void clampMax(float max) { - clampMax((double) max); - } - - - /** - * Clamps the maximum value of this tuple to the max parameter. - * - * @param max the highest value in the tuple after clamping - */ - public final void clampMax(double max) { - if (x > max) x = max; - if (y > max) y = max; - if (z > max) z = max; - } - - - /** - * Sets each component of this tuple to its absolute value. - */ - public final void absolute() { - x = Math.abs(x); - y = Math.abs(y); - z = Math.abs(z); - } - - - /** - * @deprecated Use interpolate(Tuple3d,Tuple3d,double) instead - */ - @Deprecated - public final void interpolate(Tuple3d t1, Tuple3d t2, float alpha) { - interpolate(t1, t2, (double) alpha); - } - - - /** - * Linearly interpolates between tuples t1 and t2 and places the - * result into this tuple: this = (1-alpha)*t1 + alpha*t2. - * - * @param t1 the first tuple - * @param t2 the second tuple - * @param alpha the alpha interpolation parameter - */ - public final void interpolate(Tuple3d t1, Tuple3d t2, double alpha) { - this.x = (1 - alpha) * t1.x + alpha * t2.x; - this.y = (1 - alpha) * t1.y + alpha * t2.y; - this.z = (1 - alpha) * t1.z + alpha * t2.z; - } - - - /** - * @deprecated Use interpolate(Tuple3d,double) instead - */ - @Deprecated - public final void interpolate(Tuple3d t1, float alpha) { - interpolate(t1, (double) alpha); - } - - - /** - * Linearly interpolates between this tuple and tuple t1 and - * places the result into this tuple: this = (1-alpha)*this + alpha*t1. - * - * @param t1 the first tuple - * @param alpha the alpha interpolation parameter - */ - public final void interpolate(Tuple3d t1, double alpha) { - this.x = (1 - alpha) * this.x + alpha * t1.x; - this.y = (1 - alpha) * this.y + alpha * t1.y; - this.z = (1 - alpha) * this.z + alpha * t1.z; - } - - /** - * Creates a new object of the same class as this object. - * - * @return a clone of this instance. - * @throws OutOfMemoryError if there is not enough memory. - * @see java.lang.Cloneable - * @since vecmath 1.3 - */ - public Object clone() { - // Since there are no arrays we can just use Object.clone() - try { - return super.clone(); - } catch (CloneNotSupportedException e) { - Iris.reportError(e); - // this shouldn't happen, since we are Cloneable - throw new InternalError(); - } - } - - /** - * Get the x coordinate. - * - * @return the x coordinate. - * @since vecmath 1.5 - */ - public final double getX() { - return x; - } - - - /** - * Set the x coordinate. - * - * @param x value to x coordinate. - * @since vecmath 1.5 - */ - public final void setX(double x) { - this.x = x; - } - - - /** - * Get the y coordinate. - * - * @return the y coordinate. - * @since vecmath 1.5 - */ - public final double getY() { - return y; - } - - - /** - * Set the y coordinate. - * - * @param y value to y coordinate. - * @since vecmath 1.5 - */ - public final void setY(double y) { - this.y = y; - } - - /** - * Get the z coordinate. - * - * @return the z coordinate. - * @since vecmath 1.5 - */ - public final double getZ() { - return z; - } - - - /** - * Set the z coordinate. - * - * @param z value to z coordinate. - * @since vecmath 1.5 - */ - public final void setZ(double z) { - this.z = z; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/math/Tuple3f.java b/core/src/main/java/com/volmit/iris/util/math/Tuple3f.java deleted file mode 100644 index 51c2d0fe4..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/Tuple3f.java +++ /dev/null @@ -1,656 +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 com.volmit.iris.util.math; - -import com.volmit.iris.Iris; - -/** - * A generic 3-element tuple that is represented by single precision-floating - * point x,y,z coordinates. - */ -public abstract class Tuple3f implements java.io.Serializable, Cloneable { - - static final long serialVersionUID = 5019834619484343712L; - - /** - * The x coordinate. - */ - public float x; - - /** - * The y coordinate. - */ - public float y; - - /** - * The z coordinate. - */ - public float z; - - - /** - * Constructs and initializes a Tuple3f from the specified xyz coordinates. - * - * @param x the x coordinate - * @param y the y coordinate - * @param z the z coordinate - */ - public Tuple3f(float x, float y, float z) { - this.x = x; - this.y = y; - this.z = z; - } - - - /** - * Constructs and initializes a Tuple3f from the array of length 3. - * - * @param t the array of length 3 containing xyz in order - */ - public Tuple3f(float[] t) { - this.x = t[0]; - this.y = t[1]; - this.z = t[2]; - } - - - /** - * Constructs and initializes a Tuple3f from the specified Tuple3f. - * - * @param t1 the Tuple3f containing the initialization x y z data - */ - public Tuple3f(Tuple3f t1) { - this.x = t1.x; - this.y = t1.y; - this.z = t1.z; - } - - - /** - * Constructs and initializes a Tuple3f from the specified Tuple3d. - * - * @param t1 the Tuple3d containing the initialization x y z data - */ - public Tuple3f(Tuple3d t1) { - this.x = (float) t1.x; - this.y = (float) t1.y; - this.z = (float) t1.z; - } - - - /** - * Constructs and initializes a Tuple3f to (0,0,0). - */ - public Tuple3f() { - this.x = 0.0f; - this.y = 0.0f; - this.z = 0.0f; - } - - - /** - * Returns a string that contains the values of this Tuple3f. - * The form is (x,y,z). - * - * @return the String representation - */ - public String toString() { - return "(" + this.x + ", " + this.y + ", " + this.z + ")"; - } - - - /** - * Sets the value of this tuple to the specified xyz coordinates. - * - * @param x the x coordinate - * @param y the y coordinate - * @param z the z coordinate - */ - public final void set(float x, float y, float z) { - this.x = x; - this.y = y; - this.z = z; - } - - - /** - * Sets the value of this tuple to the xyz coordinates specified in - * the array of length 3. - * - * @param t the array of length 3 containing xyz in order - */ - public final void set(float[] t) { - this.x = t[0]; - this.y = t[1]; - this.z = t[2]; - } - - - /** - * Sets the value of this tuple to the value of tuple t1. - * - * @param t1 the tuple to be copied - */ - public final void set(Tuple3f t1) { - this.x = t1.x; - this.y = t1.y; - this.z = t1.z; - } - - - /** - * Sets the value of this tuple to the value of tuple t1. - * - * @param t1 the tuple to be copied - */ - public final void set(Tuple3d t1) { - this.x = (float) t1.x; - this.y = (float) t1.y; - this.z = (float) t1.z; - } - - - /** - * Gets the value of this tuple and copies the values into t. - * - * @param t the array of length 3 into which the values are copied - */ - public final void get(float[] t) { - t[0] = this.x; - t[1] = this.y; - t[2] = this.z; - } - - - /** - * Gets the value of this tuple and copies the values into t. - * - * @param t the Tuple3f object into which the values of this object are copied - */ - public final void get(Tuple3f t) { - t.x = this.x; - t.y = this.y; - t.z = this.z; - } - - - /** - * Sets the value of this tuple to the vector sum of tuples t1 and t2. - * - * @param t1 the first tuple - * @param t2 the second tuple - */ - public final void add(Tuple3f t1, Tuple3f t2) { - this.x = t1.x + t2.x; - this.y = t1.y + t2.y; - this.z = t1.z + t2.z; - } - - - /** - * Sets the value of this tuple to the vector sum of itself and tuple t1. - * - * @param t1 the other tuple - */ - public final void add(Tuple3f t1) { - this.x += t1.x; - this.y += t1.y; - this.z += t1.z; - } - - - /** - * Sets the value of this tuple to the vector difference - * of tuples t1 and t2 (this = t1 - t2). - * - * @param t1 the first tuple - * @param t2 the second tuple - */ - public final void sub(Tuple3f t1, Tuple3f t2) { - this.x = t1.x - t2.x; - this.y = t1.y - t2.y; - this.z = t1.z - t2.z; - } - - - /** - * Sets the value of this tuple to the vector difference of - * itself and tuple t1 (this = this - t1) . - * - * @param t1 the other tuple - */ - public final void sub(Tuple3f t1) { - this.x -= t1.x; - this.y -= t1.y; - this.z -= t1.z; - } - - - /** - * Sets the value of this tuple to the negation of tuple t1. - * - * @param t1 the source tuple - */ - public final void negate(Tuple3f t1) { - this.x = -t1.x; - this.y = -t1.y; - this.z = -t1.z; - } - - - /** - * Negates the value of this tuple in place. - */ - public final void negate() { - this.x = -this.x; - this.y = -this.y; - this.z = -this.z; - } - - - /** - * Sets the value of this vector to the scalar multiplication - * of tuple t1. - * - * @param s the scalar value - * @param t1 the source tuple - */ - public final void scale(float s, Tuple3f t1) { - this.x = s * t1.x; - this.y = s * t1.y; - this.z = s * t1.z; - } - - - /** - * Sets the value of this tuple to the scalar multiplication - * of the scale factor with this. - * - * @param s the scalar value - */ - public final void scale(float s) { - this.x *= s; - this.y *= s; - this.z *= s; - } - - - /** - * Sets the value of this tuple to the scalar multiplication - * of tuple t1 and then adds tuple t2 (this = s*t1 + t2). - * - * @param s the scalar value - * @param t1 the tuple to be scaled and added - * @param t2 the tuple to be added without a scale - */ - public final void scaleAdd(float s, Tuple3f t1, Tuple3f t2) { - this.x = s * t1.x + t2.x; - this.y = s * t1.y + t2.y; - this.z = s * t1.z + t2.z; - } - - - /** - * Sets the value of this tuple to the scalar multiplication - * of itself and then adds tuple t1 (this = s*this + t1). - * - * @param s the scalar value - * @param t1 the tuple to be added - */ - public final void scaleAdd(float s, Tuple3f t1) { - this.x = s * this.x + t1.x; - this.y = s * this.y + t1.y; - this.z = s * this.z + t1.z; - } - - - /** - * Returns true if the Object t1 is of type Tuple3f and all of the - * data members of t1 are equal to the corresponding data members in - * this Tuple3f. - * - * @param t1 the vector with which the comparison is made - * @return true or false - */ - public boolean equals(Tuple3f t1) { - try { - return (this.x == t1.x && this.y == t1.y && this.z == t1.z); - } catch (NullPointerException e2) { - Iris.reportError(e2); - return false; - } - } - - /** - * Returns true if the Object t1 is of type Tuple3f and all of the - * data members of t1 are equal to the corresponding data members in - * this Tuple3f. - * - * @param t1 the Object with which the comparison is made - * @return true or false - */ - public boolean equals(Object t1) { - try { - Tuple3f t2 = (Tuple3f) t1; - return (this.x == t2.x && this.y == t2.y && this.z == t2.z); - } catch (NullPointerException | ClassCastException e2) { - Iris.reportError(e2); - return false; - } - } - - - /** - * Returns true if the L-infinite distance between this tuple - * and tuple t1 is less than or equal to the epsilon parameter, - * otherwise returns false. The L-infinite - * distance is equal to MAX[abs(x1-x2), abs(y1-y2), abs(z1-z2)]. - * - * @param t1 the tuple to be compared to this tuple - * @param epsilon the threshold value - * @return true or false - */ - public boolean epsilonEquals(Tuple3f t1, float epsilon) { - float diff; - - diff = x - t1.x; - if (Float.isNaN(diff)) return false; - if ((diff < 0 ? -diff : diff) > epsilon) return false; - - diff = y - t1.y; - if (Float.isNaN(diff)) return false; - if ((diff < 0 ? -diff : diff) > epsilon) return false; - - diff = z - t1.z; - if (Float.isNaN(diff)) return false; - return !((diff < 0 ? -diff : diff) > epsilon); - - } - - - /** - * Returns a hash code value based on the data values in this - * object. Two different Tuple3f objects with identical data values - * (i.e., Tuple3f.equals returns true) will return the same hash - * code value. Two objects with different data members may return the - * same hash value, although this is not likely. - * - * @return the integer hash code value - */ - public int hashCode() { - long bits = 1L; - bits = 31L * bits + (long) VecMathUtil.floatToIntBits(x); - bits = 31L * bits + (long) VecMathUtil.floatToIntBits(y); - bits = 31L * bits + (long) VecMathUtil.floatToIntBits(z); - return (int) (bits ^ (bits >> 32)); - } - - - /** - * Clamps the tuple parameter to the range [low, high] and - * places the values into this tuple. - * - * @param min the lowest value in the tuple after clamping - * @param max the highest value in the tuple after clamping - * @param t the source tuple, which will not be modified - */ - public final void clamp(float min, float max, Tuple3f t) { - if (t.x > max) { - x = max; - } else x = Math.max(t.x, min); - - if (t.y > max) { - y = max; - } else y = Math.max(t.y, min); - - if (t.z > max) { - z = max; - } else z = Math.max(t.z, min); - - } - - - /** - * Clamps the minimum value of the tuple parameter to the min - * parameter and places the values into this tuple. - * - * @param min the lowest value in the tuple after clamping - * @param t the source tuple, which will not be modified - */ - public final void clampMin(float min, Tuple3f t) { - x = Math.max(t.x, min); - - y = Math.max(t.y, min); - - z = Math.max(t.z, min); - - } - - - /** - * Clamps the maximum value of the tuple parameter to the max - * parameter and places the values into this tuple. - * - * @param max the highest value in the tuple after clamping - * @param t the source tuple, which will not be modified - */ - public final void clampMax(float max, Tuple3f t) { - x = Math.min(t.x, max); - - y = Math.min(t.y, max); - - z = Math.min(t.z, max); - - } - - - /** - * Sets each component of the tuple parameter to its absolute - * value and places the modified values into this tuple. - * - * @param t the source tuple, which will not be modified - */ - public final void absolute(Tuple3f t) { - x = Math.abs(t.x); - y = Math.abs(t.y); - z = Math.abs(t.z); - } - - - /** - * Clamps this tuple to the range [low, high]. - * - * @param min the lowest value in this tuple after clamping - * @param max the highest value in this tuple after clamping - */ - public final void clamp(float min, float max) { - if (x > max) { - x = max; - } else if (x < min) { - x = min; - } - - if (y > max) { - y = max; - } else if (y < min) { - y = min; - } - - if (z > max) { - z = max; - } else if (z < min) { - z = min; - } - - } - - - /** - * Clamps the minimum value of this tuple to the min parameter. - * - * @param min the lowest value in this tuple after clamping - */ - public final void clampMin(float min) { - if (x < min) x = min; - if (y < min) y = min; - if (z < min) z = min; - - } - - - /** - * Clamps the maximum value of this tuple to the max parameter. - * - * @param max the highest value in the tuple after clamping - */ - public final void clampMax(float max) { - if (x > max) x = max; - if (y > max) y = max; - if (z > max) z = max; - - } - - - /** - * Sets each component of this tuple to its absolute value. - */ - public final void absolute() { - x = Math.abs(x); - y = Math.abs(y); - z = Math.abs(z); - - } - - - /** - * Linearly interpolates between tuples t1 and t2 and places the - * result into this tuple: this = (1-alpha)*t1 + alpha*t2. - * - * @param t1 the first tuple - * @param t2 the second tuple - * @param alpha the alpha interpolation parameter - */ - public final void interpolate(Tuple3f t1, Tuple3f t2, float alpha) { - this.x = (1 - alpha) * t1.x + alpha * t2.x; - this.y = (1 - alpha) * t1.y + alpha * t2.y; - this.z = (1 - alpha) * t1.z + alpha * t2.z; - - - } - - - /** - * Linearly interpolates between this tuple and tuple t1 and - * places the result into this tuple: this = (1-alpha)*this + alpha*t1. - * - * @param t1 the first tuple - * @param alpha the alpha interpolation parameter - */ - public final void interpolate(Tuple3f t1, float alpha) { - this.x = (1 - alpha) * this.x + alpha * t1.x; - this.y = (1 - alpha) * this.y + alpha * t1.y; - this.z = (1 - alpha) * this.z + alpha * t1.z; - - - } - - /** - * Creates a new object of the same class as this object. - * - * @return a clone of this instance. - * @throws OutOfMemoryError if there is not enough memory. - * @see java.lang.Cloneable - * @since vecmath 1.3 - */ - public Object clone() { - // Since there are no arrays we can just use Object.clone() - try { - return super.clone(); - } catch (CloneNotSupportedException e) { - Iris.reportError(e); - // this shouldn't happen, since we are Cloneable - throw new InternalError(); - } - } - - - /** - * Get the x coordinate. - * - * @return the x coordinate. - * @since vecmath 1.5 - */ - public final float getX() { - return x; - } - - - /** - * Set the x coordinate. - * - * @param x value to x coordinate. - * @since vecmath 1.5 - */ - public final void setX(float x) { - this.x = x; - } - - - /** - * Get the y coordinate. - * - * @return the y coordinate. - * @since vecmath 1.5 - */ - public final float getY() { - return y; - } - - - /** - * Set the y coordinate. - * - * @param y value to y coordinate. - * @since vecmath 1.5 - */ - public final void setY(float y) { - this.y = y; - } - - /** - * Get the z coordinate. - * - * @return the z coordinate - * @since vecmath 1.5 - */ - public final float getZ() { - return z; - } - - - /** - * Set the Z coordinate. - * - * @param z value to z coordinate. - * @since vecmath 1.5 - */ - public final void setZ(float z) { - this.z = z; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/math/Tuple4d.java b/core/src/main/java/com/volmit/iris/util/math/Tuple4d.java deleted file mode 100644 index e3d30fe90..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/Tuple4d.java +++ /dev/null @@ -1,817 +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 com.volmit.iris.util.math; - -import com.volmit.iris.Iris; - -/** - * A 4 element tuple represented by double precision floating point - * x,y,z,w coordinates. - */ -public abstract class Tuple4d implements java.io.Serializable, Cloneable { - - static final long serialVersionUID = -4748953690425311052L; - - /** - * The x coordinate. - */ - public double x; - - /** - * The y coordinate. - */ - public double y; - - /** - * The z coordinate. - */ - public double z; - - /** - * The w coordinate. - */ - public double w; - - - /** - * Constructs and initializes a Tuple4d from the specified xyzw coordinates. - * - * @param x the x coordinate - * @param y the y coordinate - * @param z the z coordinate - * @param w the w coordinate - */ - public Tuple4d(double x, double y, double z, double w) { - this.x = x; - this.y = y; - this.z = z; - this.w = w; - } - - - /** - * Constructs and initializes a Tuple4d from the coordinates contained - * in the array. - * - * @param t the array of length 4 containing xyzw in order - */ - public Tuple4d(double[] t) { - this.x = t[0]; - this.y = t[1]; - this.z = t[2]; - this.w = t[3]; - } - - - /** - * Constructs and initializes a Tuple4d from the specified Tuple4d. - * - * @param t1 the Tuple4d containing the initialization x y z w data - */ - public Tuple4d(Tuple4d t1) { - this.x = t1.x; - this.y = t1.y; - this.z = t1.z; - this.w = t1.w; - } - - - /** - * Constructs and initializes a Tuple4d from the specified Tuple4f. - * - * @param t1 the Tuple4f containing the initialization x y z w data - */ - public Tuple4d(Tuple4f t1) { - this.x = t1.x; - this.y = t1.y; - this.z = t1.z; - this.w = t1.w; - } - - - /** - * Constructs and initializes a Tuple4d to (0,0,0,0). - */ - public Tuple4d() { - this.x = 0.0; - this.y = 0.0; - this.z = 0.0; - this.w = 0.0; - } - - - /** - * Sets the value of this tuple to the specified xyzw coordinates. - * - * @param x the x coordinate - * @param y the y coordinate - * @param z the z coordinate - * @param w the w coordinate - */ - public final void set(double x, double y, double z, double w) { - this.x = x; - this.y = y; - this.z = z; - this.w = w; - } - - - /** - * Sets the value of this tuple to the specified xyzw coordinates. - * - * @param t the array of length 4 containing xyzw in order - */ - public final void set(double[] t) { - this.x = t[0]; - this.y = t[1]; - this.z = t[2]; - this.w = t[3]; - } - - - /** - * Sets the value of this tuple to the value of tuple t1. - * - * @param t1 the tuple to be copied - */ - public final void set(Tuple4d t1) { - this.x = t1.x; - this.y = t1.y; - this.z = t1.z; - this.w = t1.w; - } - - - /** - * Sets the value of this tuple to the value of tuple t1. - * - * @param t1 the tuple to be copied - */ - public final void set(Tuple4f t1) { - this.x = t1.x; - this.y = t1.y; - this.z = t1.z; - this.w = t1.w; - } - - - /** - * Gets the value of this tuple and places it into the array t of - * length four in x,y,z,w order. - * - * @param t the array of length four - */ - public final void get(double[] t) { - t[0] = this.x; - t[1] = this.y; - t[2] = this.z; - t[3] = this.w; - } - - - /** - * Gets the value of this tuple and places it into the Tuple4d - * argument of - * length four in x,y,z,w order. - * - * @param t the Tuple into which the values will be copied - */ - public final void get(Tuple4d t) { - t.x = this.x; - t.y = this.y; - t.z = this.z; - t.w = this.w; - } - - - /** - * Sets the value of this tuple to the tuple sum of tuples t1 and t2. - * - * @param t1 the first tuple - * @param t2 the second tuple - */ - public final void add(Tuple4d t1, Tuple4d t2) { - this.x = t1.x + t2.x; - this.y = t1.y + t2.y; - this.z = t1.z + t2.z; - this.w = t1.w + t2.w; - } - - - /** - * Sets the value of this tuple to the sum of itself and tuple t1. - * - * @param t1 the other tuple - */ - public final void add(Tuple4d t1) { - this.x += t1.x; - this.y += t1.y; - this.z += t1.z; - this.w += t1.w; - } - - - /** - * Sets the value of this tuple to the difference - * of tuples t1 and t2 (this = t1 - t2). - * - * @param t1 the first tuple - * @param t2 the second tuple - */ - public final void sub(Tuple4d t1, Tuple4d t2) { - this.x = t1.x - t2.x; - this.y = t1.y - t2.y; - this.z = t1.z - t2.z; - this.w = t1.w - t2.w; - } - - - /** - * Sets the value of this tuple to the difference of itself - * and tuple t1 (this = this - t1). - * - * @param t1 the other tuple - */ - public final void sub(Tuple4d t1) { - this.x -= t1.x; - this.y -= t1.y; - this.z -= t1.z; - this.w -= t1.w; - } - - - /** - * Sets the value of this tuple to the negation of tuple t1. - * - * @param t1 the source tuple - */ - public final void negate(Tuple4d t1) { - this.x = -t1.x; - this.y = -t1.y; - this.z = -t1.z; - this.w = -t1.w; - } - - - /** - * Negates the value of this tuple in place. - */ - public final void negate() { - this.x = -this.x; - this.y = -this.y; - this.z = -this.z; - this.w = -this.w; - } - - - /** - * Sets the value of this tuple to the scalar multiplication - * of the scale factor with the tuple t1. - * - * @param s the scalar value - * @param t1 the source tuple - */ - public final void scale(double s, Tuple4d t1) { - this.x = s * t1.x; - this.y = s * t1.y; - this.z = s * t1.z; - this.w = s * t1.w; - } - - - /** - * Sets the value of this tuple to the scalar multiplication - * of the scale factor with this. - * - * @param s the scalar value - */ - public final void scale(double s) { - this.x *= s; - this.y *= s; - this.z *= s; - this.w *= s; - } - - - /** - * Sets the value of this tuple to the scalar multiplication by s - * of tuple t1 plus tuple t2 (this = s*t1 + t2). - * - * @param s the scalar value - * @param t1 the tuple to be multipled - * @param t2 the tuple to be added - */ - public final void scaleAdd(double s, Tuple4d t1, Tuple4d t2) { - this.x = s * t1.x + t2.x; - this.y = s * t1.y + t2.y; - this.z = s * t1.z + t2.z; - this.w = s * t1.w + t2.w; - } - - - /** - * @deprecated Use scaleAdd(double,Tuple4d) instead - */ - @Deprecated - public final void scaleAdd(float s, Tuple4d t1) { - scaleAdd((double) s, t1); - } - - - /** - * Sets the value of this tuple to the scalar multiplication - * of itself and then adds tuple t1 (this = s*this + t1). - * - * @param s the scalar value - * @param t1 the tuple to be added - */ - public final void scaleAdd(double s, Tuple4d t1) { - this.x = s * this.x + t1.x; - this.y = s * this.y + t1.y; - this.z = s * this.z + t1.z; - this.w = s * this.w + t1.w; - } - - - /** - * Returns a string that contains the values of this Tuple4d. - * The form is (x,y,z,w). - * - * @return the String representation - */ - public String toString() { - return "(" + this.x + ", " + this.y + ", " + this.z + ", " + this.w + ")"; - } - - - /** - * Returns true if all of the data members of Tuple4d t1 are - * equal to the corresponding data members in this Tuple4d. - * - * @param t1 the tuple with which the comparison is made - * @return true or false - */ - public boolean equals(Tuple4d t1) { - try { - return (this.x == t1.x && this.y == t1.y && this.z == t1.z - && this.w == t1.w); - } catch (NullPointerException e2) { - Iris.reportError(e2); - return false; - } - } - - /** - * Returns true if the Object t1 is of type Tuple4d and all of the - * data members of t1 are equal to the corresponding data members in - * this Tuple4d. - * - * @param t1 the object with which the comparison is made - * @return true or false - */ - public boolean equals(Object t1) { - try { - - Tuple4d t2 = (Tuple4d) t1; - return (this.x == t2.x && this.y == t2.y && - this.z == t2.z && this.w == t2.w); - } catch (NullPointerException | ClassCastException e2) { - Iris.reportError(e2); - return false; - } - } - - - /** - * Returns true if the L-infinite distance between this tuple - * and tuple t1 is less than or equal to the epsilon parameter, - * otherwise returns false. The L-infinite - * distance is equal to - * MAX[abs(x1-x2), abs(y1-y2), abs(z1-z2), abs(w1-w2)]. - * - * @param t1 the tuple to be compared to this tuple - * @param epsilon the threshold value - * @return true or false - */ - public boolean epsilonEquals(Tuple4d t1, double epsilon) { - double diff; - - diff = x - t1.x; - if (Double.isNaN(diff)) return false; - if ((diff < 0 ? -diff : diff) > epsilon) return false; - - diff = y - t1.y; - if (Double.isNaN(diff)) return false; - if ((diff < 0 ? -diff : diff) > epsilon) return false; - - diff = z - t1.z; - if (Double.isNaN(diff)) return false; - if ((diff < 0 ? -diff : diff) > epsilon) return false; - - diff = w - t1.w; - if (Double.isNaN(diff)) return false; - return !((diff < 0 ? -diff : diff) > epsilon); - - } - - - /** - * Returns a hash code value based on the data values in this - * object. Two different Tuple4d objects with identical data values - * (i.e., Tuple4d.equals returns true) will return the same hash - * code value. Two objects with different data members may return the - * same hash value, although this is not likely. - * - * @return the integer hash code value - */ - public int hashCode() { - long bits = 1L; - bits = 31L * bits + VecMathUtil.doubleToLongBits(x); - bits = 31L * bits + VecMathUtil.doubleToLongBits(y); - bits = 31L * bits + VecMathUtil.doubleToLongBits(z); - bits = 31L * bits + VecMathUtil.doubleToLongBits(w); - return (int) (bits ^ (bits >> 32)); - } - - - /** - * @deprecated Use clamp(double,double,Tuple4d) instead - */ - @Deprecated - public final void clamp(float min, float max, Tuple4d t) { - clamp(min, (double) max, t); - } - - - /** - * Clamps the tuple parameter to the range [low, high] and - * places the values into this tuple. - * - * @param min the lowest value in the tuple after clamping - * @param max the highest value in the tuple after clamping - * @param t the source tuple, which will not be modified - */ - public final void clamp(double min, double max, Tuple4d t) { - if (t.x > max) { - x = max; - } else x = Math.max(t.x, min); - - if (t.y > max) { - y = max; - } else y = Math.max(t.y, min); - - if (t.z > max) { - z = max; - } else z = Math.max(t.z, min); - - if (t.w > max) { - w = max; - } else w = Math.max(t.w, min); - - } - - - /** - * @deprecated Use clampMin(double,Tuple4d) instead - */ - @Deprecated - public final void clampMin(float min, Tuple4d t) { - clampMin((double) min, t); - } - - - /** - * Clamps the minimum value of the tuple parameter to the min - * parameter and places the values into this tuple. - * - * @param min the lowest value in the tuple after clamping - * @param t the source tuple, which will not be modified - */ - public final void clampMin(double min, Tuple4d t) { - x = Math.max(t.x, min); - - y = Math.max(t.y, min); - - z = Math.max(t.z, min); - - w = Math.max(t.w, min); - - } - - - /** - * @deprecated Use clampMax(double,Tuple4d) instead - */ - @Deprecated - public final void clampMax(float max, Tuple4d t) { - clampMax((double) max, t); - } - - - /** - * Clamps the maximum value of the tuple parameter to the max - * parameter and places the values into this tuple. - * - * @param max the highest value in the tuple after clamping - * @param t the source tuple, which will not be modified - */ - public final void clampMax(double max, Tuple4d t) { - x = Math.min(t.x, max); - - y = Math.min(t.y, max); - - z = Math.min(t.z, max); - - if (t.w > max) { - w = max; - } else { - w = t.z; - } - - } - - - /** - * Sets each component of the tuple parameter to its absolute - * value and places the modified values into this tuple. - * - * @param t the source tuple, which will not be modified - */ - public final void absolute(Tuple4d t) { - x = Math.abs(t.x); - y = Math.abs(t.y); - z = Math.abs(t.z); - w = Math.abs(t.w); - - } - - - /** - * @deprecated Use clamp(double,double) instead - */ - @Deprecated - public final void clamp(float min, float max) { - clamp(min, (double) max); - } - - - /** - * Clamps this tuple to the range [low, high]. - * - * @param min the lowest value in this tuple after clamping - * @param max the highest value in this tuple after clamping - */ - public final void clamp(double min, double max) { - if (x > max) { - x = max; - } else if (x < min) { - x = min; - } - - if (y > max) { - y = max; - } else if (y < min) { - y = min; - } - - if (z > max) { - z = max; - } else if (z < min) { - z = min; - } - - if (w > max) { - w = max; - } else if (w < min) { - w = min; - } - - } - - - /** - * @deprecated Use clampMin(double) instead - */ - @Deprecated - public final void clampMin(float min) { - clampMin((double) min); - } - - - /** - * Clamps the minimum value of this tuple to the min parameter. - * - * @param min the lowest value in this tuple after clamping - */ - public final void clampMin(double min) { - if (x < min) x = min; - if (y < min) y = min; - if (z < min) z = min; - if (w < min) w = min; - } - - - /** - * @deprecated Use clampMax(double) instead - */ - @Deprecated - public final void clampMax(float max) { - clampMax((double) max); - } - - - /** - * Clamps the maximum value of this tuple to the max parameter. - * - * @param max the highest value in the tuple after clamping - */ - public final void clampMax(double max) { - if (x > max) x = max; - if (y > max) y = max; - if (z > max) z = max; - if (w > max) w = max; - - } - - - /** - * Sets each component of this tuple to its absolute value. - */ - public final void absolute() { - x = Math.abs(x); - y = Math.abs(y); - z = Math.abs(z); - w = Math.abs(w); - - } - - - /** - * @deprecated Use interpolate(Tuple4d,Tuple4d,double) instead - */ - @Deprecated - public void interpolate(Tuple4d t1, Tuple4d t2, float alpha) { - interpolate(t1, t2, (double) alpha); - } - - - /** - * Linearly interpolates between tuples t1 and t2 and places the - * result into this tuple: this = (1-alpha)*t1 + alpha*t2. - * - * @param t1 the first tuple - * @param t2 the second tuple - * @param alpha the alpha interpolation parameter - */ - public void interpolate(Tuple4d t1, Tuple4d t2, double alpha) { - this.x = (1 - alpha) * t1.x + alpha * t2.x; - this.y = (1 - alpha) * t1.y + alpha * t2.y; - this.z = (1 - alpha) * t1.z + alpha * t2.z; - this.w = (1 - alpha) * t1.w + alpha * t2.w; - } - - - /** - * @deprecated Use interpolate(Tuple4d,double) instead - */ - @Deprecated - public void interpolate(Tuple4d t1, float alpha) { - interpolate(t1, (double) alpha); - } - - - /** - * Linearly interpolates between this tuple and tuple t1 and - * places the result into this tuple: this = (1-alpha)*this + alpha*t1. - * - * @param t1 the first tuple - * @param alpha the alpha interpolation parameter - */ - public void interpolate(Tuple4d t1, double alpha) { - this.x = (1 - alpha) * this.x + alpha * t1.x; - this.y = (1 - alpha) * this.y + alpha * t1.y; - this.z = (1 - alpha) * this.z + alpha * t1.z; - this.w = (1 - alpha) * this.w + alpha * t1.w; - } - - /** - * Creates a new object of the same class as this object. - * - * @return a clone of this instance. - * @throws OutOfMemoryError if there is not enough memory. - * @see java.lang.Cloneable - * @since vecmath 1.3 - */ - public Object clone() { - // Since there are no arrays we can just use Object.clone() - try { - return super.clone(); - } catch (CloneNotSupportedException e) { - Iris.reportError(e); - // this shouldn't happen, since we are Cloneable - throw new InternalError(); - } - } - - /** - * Get the x coordinate. - * - * @return the x coordinate. - * @since vecmath 1.5 - */ - public final double getX() { - return x; - } - - - /** - * Set the x coordinate. - * - * @param x value to x coordinate. - * @since vecmath 1.5 - */ - public final void setX(double x) { - this.x = x; - } - - - /** - * Get the y coordinate. - * - * @return the y coordinate. - * @since vecmath 1.5 - */ - public final double getY() { - return y; - } - - - /** - * Set the y coordinate. - * - * @param y value to y coordinate. - * @since vecmath 1.5 - */ - public final void setY(double y) { - this.y = y; - } - - /** - * Get the z coordinate. - * - * @return the z coordinate. - * @since vecmath 1.5 - */ - public final double getZ() { - return z; - } - - - /** - * Set the z coordinate. - * - * @param z value to z coordinate. - * @since vecmath 1.5 - */ - public final void setZ(double z) { - this.z = z; - } - - - /** - * Get the w coordinate. - * - * @return the w coordinate. - * @since vecmath 1.5 - */ - public final double getW() { - return w; - } - - - /** - * Set the w coordinate. - * - * @param w value to w coordinate. - * @since vecmath 1.5 - */ - public final void setW(double w) { - this.w = w; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/math/Tuple4f.java b/core/src/main/java/com/volmit/iris/util/math/Tuple4f.java deleted file mode 100644 index 6f8e90155..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/Tuple4f.java +++ /dev/null @@ -1,732 +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 com.volmit.iris.util.math; - -import com.volmit.iris.Iris; - -/** - * A 4-element tuple represented by single-precision floating point x,y,z,w - * coordinates. - */ -public abstract class Tuple4f implements java.io.Serializable, Cloneable { - - static final long serialVersionUID = 7068460319248845763L; - - /** - * The x coordinate. - */ - public float x; - - /** - * The y coordinate. - */ - public float y; - - /** - * The z coordinate. - */ - public float z; - - /** - * The w coordinate. - */ - public float w; - - - /** - * Constructs and initializes a Tuple4f from the specified xyzw coordinates. - * - * @param x the x coordinate - * @param y the y coordinate - * @param z the z coordinate - * @param w the w coordinate - */ - public Tuple4f(float x, float y, float z, float w) { - this.x = x; - this.y = y; - this.z = z; - this.w = w; - } - - - /** - * Constructs and initializes a Tuple4f from the array of length 4. - * - * @param t the array of length 4 containing xyzw in order - */ - public Tuple4f(float[] t) { - this.x = t[0]; - this.y = t[1]; - this.z = t[2]; - this.w = t[3]; - } - - - /** - * Constructs and initializes a Tuple4f from the specified Tuple4f. - * - * @param t1 the Tuple4f containing the initialization x y z w data - */ - public Tuple4f(Tuple4f t1) { - this.x = t1.x; - this.y = t1.y; - this.z = t1.z; - this.w = t1.w; - } - - - /** - * Constructs and initializes a Tuple4f from the specified Tuple4d. - * - * @param t1 the Tuple4d containing the initialization x y z w data - */ - public Tuple4f(Tuple4d t1) { - this.x = (float) t1.x; - this.y = (float) t1.y; - this.z = (float) t1.z; - this.w = (float) t1.w; - } - - - /** - * Constructs and initializes a Tuple4f to (0,0,0,0). - */ - public Tuple4f() { - this.x = 0.0f; - this.y = 0.0f; - this.z = 0.0f; - this.w = 0.0f; - } - - - /** - * Sets the value of this tuple to the specified xyzw coordinates. - * - * @param x the x coordinate - * @param y the y coordinate - * @param z the z coordinate - * @param w the w coordinate - */ - public final void set(float x, float y, float z, float w) { - this.x = x; - this.y = y; - this.z = z; - this.w = w; - } - - - /** - * Sets the value of this tuple to the specified coordinates in the - * array of length 4. - * - * @param t the array of length 4 containing xyzw in order - */ - public final void set(float[] t) { - this.x = t[0]; - this.y = t[1]; - this.z = t[2]; - this.w = t[3]; - } - - - /** - * Sets the value of this tuple to the value of tuple t1. - * - * @param t1 the tuple to be copied - */ - public final void set(Tuple4f t1) { - this.x = t1.x; - this.y = t1.y; - this.z = t1.z; - this.w = t1.w; - } - - - /** - * Sets the value of this tuple to the value of tuple t1. - * - * @param t1 the tuple to be copied - */ - public final void set(Tuple4d t1) { - this.x = (float) t1.x; - this.y = (float) t1.y; - this.z = (float) t1.z; - this.w = (float) t1.w; - } - - - /** - * Copies the values of this tuple into the array t. - * - * @param t the array - */ - public final void get(float[] t) { - t[0] = this.x; - t[1] = this.y; - t[2] = this.z; - t[3] = this.w; - } - - - /** - * Copies the values of this tuple into the tuple t. - * - * @param t the target tuple - */ - public final void get(Tuple4f t) { - t.x = this.x; - t.y = this.y; - t.z = this.z; - t.w = this.w; - } - - - /** - * Sets the value of this tuple to the sum of tuples t1 and t2. - * - * @param t1 the first tuple - * @param t2 the second tuple - */ - public final void add(Tuple4f t1, Tuple4f t2) { - this.x = t1.x + t2.x; - this.y = t1.y + t2.y; - this.z = t1.z + t2.z; - this.w = t1.w + t2.w; - } - - - /** - * Sets the value of this tuple to the sum of itself and t1. - * - * @param t1 the other tuple - */ - public final void add(Tuple4f t1) { - this.x += t1.x; - this.y += t1.y; - this.z += t1.z; - this.w += t1.w; - } - - - /** - * Sets the value of this tuple to the difference - * of tuples t1 and t2 (this = t1 - t2). - * - * @param t1 the first tuple - * @param t2 the second tuple - */ - public final void sub(Tuple4f t1, Tuple4f t2) { - this.x = t1.x - t2.x; - this.y = t1.y - t2.y; - this.z = t1.z - t2.z; - this.w = t1.w - t2.w; - } - - - /** - * Sets the value of this tuple to the difference - * of itself and t1 (this = this - t1). - * - * @param t1 the other tuple - */ - public final void sub(Tuple4f t1) { - this.x -= t1.x; - this.y -= t1.y; - this.z -= t1.z; - this.w -= t1.w; - } - - - /** - * Sets the value of this tuple to the negation of tuple t1. - * - * @param t1 the source tuple - */ - public final void negate(Tuple4f t1) { - this.x = -t1.x; - this.y = -t1.y; - this.z = -t1.z; - this.w = -t1.w; - } - - - /** - * Negates the value of this tuple in place. - */ - public final void negate() { - this.x = -this.x; - this.y = -this.y; - this.z = -this.z; - this.w = -this.w; - } - - - /** - * Sets the value of this tuple to the scalar multiplication - * of tuple t1. - * - * @param s the scalar value - * @param t1 the source tuple - */ - public final void scale(float s, Tuple4f t1) { - this.x = s * t1.x; - this.y = s * t1.y; - this.z = s * t1.z; - this.w = s * t1.w; - } - - - /** - * Sets the value of this tuple to the scalar multiplication - * of the scale factor with this. - * - * @param s the scalar value - */ - public final void scale(float s) { - this.x *= s; - this.y *= s; - this.z *= s; - this.w *= s; - } - - - /** - * Sets the value of this tuple to the scalar multiplication - * of tuple t1 plus tuple t2 (this = s*t1 + t2). - * - * @param s the scalar value - * @param t1 the tuple to be multipled - * @param t2 the tuple to be added - */ - public final void scaleAdd(float s, Tuple4f t1, Tuple4f t2) { - this.x = s * t1.x + t2.x; - this.y = s * t1.y + t2.y; - this.z = s * t1.z + t2.z; - this.w = s * t1.w + t2.w; - } - - - /** - * Sets the value of this tuple to the scalar multiplication - * of itself and then adds tuple t1 (this = s*this + t1). - * - * @param s the scalar value - * @param t1 the tuple to be added - */ - public final void scaleAdd(float s, Tuple4f t1) { - this.x = s * this.x + t1.x; - this.y = s * this.y + t1.y; - this.z = s * this.z + t1.z; - this.w = s * this.w + t1.w; - } - - - /** - * Returns a string that contains the values of this Tuple4f. - * The form is (x,y,z,w). - * - * @return the String representation - */ - public String toString() { - return "(" + this.x + ", " + this.y + ", " + this.z + ", " + this.w + ")"; - } - - /** - * Returns true if all of the data members of Tuple4f t1 are - * equal to the corresponding data members in this Tuple4f. - * - * @param t1 the vector with which the comparison is made - * @return true or false - */ - public boolean equals(Tuple4f t1) { - try { - return (this.x == t1.x && this.y == t1.y && this.z == t1.z - && this.w == t1.w); - } catch (NullPointerException e2) { - Iris.reportError(e2); - return false; - } - } - - /** - * Returns true if the Object t1 is of type Tuple4f and all of the - * data members of t1 are equal to the corresponding data members in - * this Tuple4f. - * - * @param t1 the object with which the comparison is made - * @return true or false - */ - public boolean equals(Object t1) { - try { - Tuple4f t2 = (Tuple4f) t1; - return (this.x == t2.x && this.y == t2.y && - this.z == t2.z && this.w == t2.w); - } catch (NullPointerException | ClassCastException e2) { - Iris.reportError(e2); - return false; - } - } - - - /** - * Returns true if the L-infinite distance between this tuple - * and tuple t1 is less than or equal to the epsilon parameter, - * otherwise returns false. The L-infinite - * distance is equal to - * MAX[abs(x1-x2), abs(y1-y2), abs(z1-z2), abs(w1-w2)]. - * - * @param t1 the tuple to be compared to this tuple - * @param epsilon the threshold value - * @return true or false - */ - public boolean epsilonEquals(Tuple4f t1, float epsilon) { - float diff; - - diff = x - t1.x; - if (Float.isNaN(diff)) return false; - if ((diff < 0 ? -diff : diff) > epsilon) return false; - - diff = y - t1.y; - if (Float.isNaN(diff)) return false; - if ((diff < 0 ? -diff : diff) > epsilon) return false; - - diff = z - t1.z; - if (Float.isNaN(diff)) return false; - if ((diff < 0 ? -diff : diff) > epsilon) return false; - - diff = w - t1.w; - if (Float.isNaN(diff)) return false; - return !((diff < 0 ? -diff : diff) > epsilon); - } - - - /** - * Returns a hash code value based on the data values in this - * object. Two different Tuple4f objects with identical data values - * (i.e., Tuple4f.equals returns true) will return the same hash - * code value. Two objects with different data members may return the - * same hash value, although this is not likely. - * - * @return the integer hash code value - */ - public int hashCode() { - long bits = 1L; - bits = 31L * bits + (long) VecMathUtil.floatToIntBits(x); - bits = 31L * bits + (long) VecMathUtil.floatToIntBits(y); - bits = 31L * bits + (long) VecMathUtil.floatToIntBits(z); - bits = 31L * bits + (long) VecMathUtil.floatToIntBits(w); - return (int) (bits ^ (bits >> 32)); - } - - - /** - * Clamps the tuple parameter to the range [low, high] and - * places the values into this tuple. - * - * @param min the lowest value in the tuple after clamping - * @param max the highest value in the tuple after clamping - * @param t the source tuple, which will not be modified - */ - public final void clamp(float min, float max, Tuple4f t) { - if (t.x > max) { - x = max; - } else x = Math.max(t.x, min); - - if (t.y > max) { - y = max; - } else y = Math.max(t.y, min); - - if (t.z > max) { - z = max; - } else z = Math.max(t.z, min); - - if (t.w > max) { - w = max; - } else w = Math.max(t.w, min); - - } - - - /** - * Clamps the minimum value of the tuple parameter to the min - * parameter and places the values into this tuple. - * - * @param min the lowest value in the tuple after clamping - * @param t the source tuple, which will not be modified - */ - public final void clampMin(float min, Tuple4f t) { - x = Math.max(t.x, min); - - y = Math.max(t.y, min); - - z = Math.max(t.z, min); - - w = Math.max(t.w, min); - - - } - - - /** - * Clamps the maximum value of the tuple parameter to the max - * parameter and places the values into this tuple. - * - * @param max the highest value in the tuple after clamping - * @param t the source tuple, which will not be modified - */ - public final void clampMax(float max, Tuple4f t) { - x = Math.min(t.x, max); - - y = Math.min(t.y, max); - - z = Math.min(t.z, max); - - if (t.w > max) { - w = max; - } else { - w = t.z; - } - - } - - - /** - * Sets each component of the tuple parameter to its absolute - * value and places the modified values into this tuple. - * - * @param t the source tuple, which will not be modified - */ - public final void absolute(Tuple4f t) { - x = Math.abs(t.x); - y = Math.abs(t.y); - z = Math.abs(t.z); - w = Math.abs(t.w); - } - - - /** - * Clamps this tuple to the range [low, high]. - * - * @param min the lowest value in this tuple after clamping - * @param max the highest value in this tuple after clamping - */ - public final void clamp(float min, float max) { - if (x > max) { - x = max; - } else if (x < min) { - x = min; - } - - if (y > max) { - y = max; - } else if (y < min) { - y = min; - } - - if (z > max) { - z = max; - } else if (z < min) { - z = min; - } - - if (w > max) { - w = max; - } else if (w < min) { - w = min; - } - - } - - - /** - * Clamps the minimum value of this tuple to the min parameter. - * - * @param min the lowest value in this tuple after clamping - */ - public final void clampMin(float min) { - if (x < min) x = min; - if (y < min) y = min; - if (z < min) z = min; - if (w < min) w = min; - - } - - - /** - * Clamps the maximum value of this tuple to the max parameter. - * - * @param max the highest value in the tuple after clamping - */ - public final void clampMax(float max) { - if (x > max) x = max; - if (y > max) y = max; - if (z > max) z = max; - if (w > max) w = max; - - } - - - /** - * Sets each component of this tuple to its absolute value. - */ - public final void absolute() { - x = Math.abs(x); - y = Math.abs(y); - z = Math.abs(z); - w = Math.abs(w); - } - - - /** - * Linearly interpolates between tuples t1 and t2 and places the - * result into this tuple: this = (1-alpha)*t1 + alpha*t2. - * - * @param t1 the first tuple - * @param t2 the second tuple - * @param alpha the alpha interpolation parameter - */ - public void interpolate(Tuple4f t1, Tuple4f t2, float alpha) { - this.x = (1 - alpha) * t1.x + alpha * t2.x; - this.y = (1 - alpha) * t1.y + alpha * t2.y; - this.z = (1 - alpha) * t1.z + alpha * t2.z; - this.w = (1 - alpha) * t1.w + alpha * t2.w; - - } - - - /** - * Linearly interpolates between this tuple and tuple t1 and - * places the result into this tuple: this = (1-alpha)*this + alpha*t1. - * - * @param t1 the first tuple - * @param alpha the alpha interpolation parameter - */ - public void interpolate(Tuple4f t1, float alpha) { - this.x = (1 - alpha) * this.x + alpha * t1.x; - this.y = (1 - alpha) * this.y + alpha * t1.y; - this.z = (1 - alpha) * this.z + alpha * t1.z; - this.w = (1 - alpha) * this.w + alpha * t1.w; - - } - - /** - * Creates a new object of the same class as this object. - * - * @return a clone of this instance. - * @throws OutOfMemoryError if there is not enough memory. - * @see java.lang.Cloneable - * @since vecmath 1.3 - */ - public Object clone() { - // Since there are no arrays we can just use Object.clone() - try { - return super.clone(); - } catch (CloneNotSupportedException e) { - Iris.reportError(e); - // this shouldn't happen, since we are Cloneable - throw new InternalError(); - } - } - - /** - * Get the x coordinate. - * - * @return the x coordinate. - * @since vecmath 1.5 - */ - public final float getX() { - return x; - } - - - /** - * Set the x coordinate. - * - * @param x value to x coordinate. - * @since vecmath 1.5 - */ - public final void setX(float x) { - this.x = x; - } - - - /** - * Get the y coordinate. - * - * @return the y coordinate. - * @since vecmath 1.5 - */ - public final float getY() { - return y; - } - - - /** - * Set the y coordinate. - * - * @param y value to y coordinate. - * @since vecmath 1.5 - */ - public final void setY(float y) { - this.y = y; - } - - /** - * Get the z coordinate. - * - * @return the z coordinate. - * @since vecmath 1.5 - */ - public final float getZ() { - return z; - } - - - /** - * Set the z coordinate. - * - * @param z value to z coordinate. - * @since vecmath 1.5 - */ - public final void setZ(float z) { - this.z = z; - } - - - /** - * Get the w coordinate. - * - * @return the w coordinate. - * @since vecmath 1.5 - */ - public final float getW() { - return w; - } - - - /** - * Set the w coordinate. - * - * @param w value to w coordinate. - * @since vecmath 1.5 - */ - public final void setW(float w) { - this.w = w; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/math/VecMathUtil.java b/core/src/main/java/com/volmit/iris/util/math/VecMathUtil.java deleted file mode 100644 index 8c3a23e0a..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/VecMathUtil.java +++ /dev/null @@ -1,87 +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 com.volmit.iris.util.math; - -/** - * Utility vecmath class used when computing the hash code for vecmath - * objects containing float or double values. This fixes Issue 36. - */ -class VecMathUtil { - /** - * Do not construct an instance of this class. - */ - private VecMathUtil() { - } - - /** - * Returns the representation of the specified floating-point - * value according to the IEEE 754 floating-point "single format" - * bit layout, after first mapping -0.0 to 0.0. This method is - * identical to Float.floatToIntBits(float) except that an integer - * value of 0 is returned for a floating-point value of - * -0.0f. This is done for the purpose of computing a hash code - * that satisfies the contract of hashCode() and equals(). The - * equals() method in each vecmath class does a pair-wise "==" - * test on each floating-point field in the class (e.g., x, y, and - * z for a Tuple3f). Since 0.0f == -0.0f returns true, - * we must also return the same hash code for two objects, one of - * which has a field with a value of -0.0f and the other of which - * has a cooresponding field with a value of 0.0f. - * - * @param f an input floating-point number - * @return the integer bits representing that floating-point - * number, after first mapping -0.0f to 0.0f - */ - static int floatToIntBits(float f) { - // Check for +0 or -0 - if (f == 0.0f) { - return 0; - } else { - return Float.floatToIntBits(f); - } - } - - /** - * Returns the representation of the specified floating-point - * value according to the IEEE 754 floating-point "double format" - * bit layout, after first mapping -0.0 to 0.0. This method is - * identical to Double.doubleToLongBits(double) except that an - * integer value of 0L is returned for a floating-point value of - * -0.0. This is done for the purpose of computing a hash code - * that satisfies the contract of hashCode() and equals(). The - * equals() method in each vecmath class does a pair-wise "==" - * test on each floating-point field in the class (e.g., x, y, and - * z for a Tuple3d). Since 0.0 == -0.0 returns true, we - * must also return the same hash code for two objects, one of - * which has a field with a value of -0.0 and the other of which - * has a cooresponding field with a value of 0.0. - * - * @param d an input double precision floating-point number - * @return the integer bits representing that floating-point - * number, after first mapping -0.0f to 0.0f - */ - static long doubleToLongBits(double d) { - // Check for +0 or -0 - if (d == 0.0) { - return 0L; - } else { - return Double.doubleToLongBits(d); - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/math/Vector2d.java b/core/src/main/java/com/volmit/iris/util/math/Vector2d.java deleted file mode 100644 index ac09bd107..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/Vector2d.java +++ /dev/null @@ -1,168 +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 com.volmit.iris.util.math; - -/** - * A 2-element vector that is represented by double-precision floating - * point x,y coordinates. - */ -public class Vector2d extends Tuple2d implements java.io.Serializable { - - // Combatible with 1.1 - static final long serialVersionUID = 8572646365302599857L; - - /** - * Constructs and initializes a Vector2d from the specified xy coordinates. - * - * @param x the x coordinate - * @param y the y coordinate - */ - public Vector2d(double x, double y) { - super(x, y); - } - - - /** - * Constructs and initializes a Vector2d from the specified array. - * - * @param v the array of length 2 containing xy in order - */ - public Vector2d(double[] v) { - super(v); - } - - - /** - * Constructs and initializes a Vector2d from the specified Vector2d. - * - * @param v1 the Vector2d containing the initialization x y data - */ - public Vector2d(Vector2d v1) { - super(v1); - } - - - /** - * Constructs and initializes a Vector2d from the specified Vector2f. - * - * @param v1 the Vector2f containing the initialization x y data - */ - public Vector2d(Vector2f v1) { - super(v1); - } - - - /** - * Constructs and initializes a Vector2d from the specified Tuple2d. - * - * @param t1 the Tuple2d containing the initialization x y data - */ - public Vector2d(Tuple2d t1) { - super(t1); - } - - - /** - * Constructs and initializes a Vector2d from the specified Tuple2f. - * - * @param t1 the Tuple2f containing the initialization x y data - */ - public Vector2d(Tuple2f t1) { - super(t1); - } - - - /** - * Constructs and initializes a Vector2d to (0,0). - */ - public Vector2d() { - super(); - } - - - /** - * Computes the dot product of the this vector and vector v1. - * - * @param v1 the other vector - */ - public final double dot(Vector2d v1) { - return (this.x * v1.x + this.y * v1.y); - } - - - /** - * Returns the length of this vector. - * - * @return the length of this vector - */ - public final double length() { - return Math.sqrt(this.x * this.x + this.y * this.y); - } - - /** - * Returns the squared length of this vector. - * - * @return the squared length of this vector - */ - public final double lengthSquared() { - return (this.x * this.x + this.y * this.y); - } - - /** - * Sets the value of this vector to the normalization of vector v1. - * - * @param v1 the un-normalized vector - */ - public final void normalize(Vector2d v1) { - double norm; - - norm = 1.0 / Math.sqrt(v1.x * v1.x + v1.y * v1.y); - this.x = v1.x * norm; - this.y = v1.y * norm; - } - - /** - * Normalizes this vector in place. - */ - public final void normalize() { - double norm; - - norm = 1.0 / Math.sqrt(this.x * this.x + this.y * this.y); - this.x *= norm; - this.y *= norm; - } - - - /** - * Returns the angle in radians between this vector and the vector - * parameter; the return value is constrained to the range [0,PI]. - * - * @param v1 the other vector - * @return the angle in radians in the range [0,PI] - */ - public final double angle(Vector2d v1) { - double vDot = this.dot(v1) / (this.length() * v1.length()); - if (vDot < -1.0) vDot = -1.0; - if (vDot > 1.0) vDot = 1.0; - return Math.acos(vDot); - - } - - -} diff --git a/core/src/main/java/com/volmit/iris/util/math/Vector2f.java b/core/src/main/java/com/volmit/iris/util/math/Vector2f.java deleted file mode 100644 index 823fe1234..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/Vector2f.java +++ /dev/null @@ -1,168 +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 com.volmit.iris.util.math; - -/** - * A 2-element vector that is represented by single-precision floating - * point x,y coordinates. - */ -public class Vector2f extends Tuple2f implements java.io.Serializable { - - // Combatible with 1.1 - static final long serialVersionUID = -2168194326883512320L; - - /** - * Constructs and initializes a Vector2f from the specified xy coordinates. - * - * @param x the x coordinate - * @param y the y coordinate - */ - public Vector2f(float x, float y) { - super(x, y); - } - - - /** - * Constructs and initializes a Vector2f from the specified array. - * - * @param v the array of length 2 containing xy in order - */ - public Vector2f(float[] v) { - super(v); - } - - - /** - * Constructs and initializes a Vector2f from the specified Vector2f. - * - * @param v1 the Vector2f containing the initialization x y data - */ - public Vector2f(Vector2f v1) { - super(v1); - } - - - /** - * Constructs and initializes a Vector2f from the specified Vector2d. - * - * @param v1 the Vector2d containing the initialization x y data - */ - public Vector2f(Vector2d v1) { - super(v1); - } - - - /** - * Constructs and initializes a Vector2f from the specified Tuple2f. - * - * @param t1 the Tuple2f containing the initialization x y data - */ - public Vector2f(Tuple2f t1) { - super(t1); - } - - - /** - * Constructs and initializes a Vector2f from the specified Tuple2d. - * - * @param t1 the Tuple2d containing the initialization x y data - */ - public Vector2f(Tuple2d t1) { - super(t1); - } - - - /** - * Constructs and initializes a Vector2f to (0,0). - */ - public Vector2f() { - super(); - } - - - /** - * Computes the dot product of the this vector and vector v1. - * - * @param v1 the other vector - */ - public final float dot(Vector2f v1) { - return (this.x * v1.x + this.y * v1.y); - } - - - /** - * Returns the length of this vector. - * - * @return the length of this vector - */ - public final float length() { - return (float) Math.sqrt(this.x * this.x + this.y * this.y); - } - - /** - * Returns the squared length of this vector. - * - * @return the squared length of this vector - */ - public final float lengthSquared() { - return (this.x * this.x + this.y * this.y); - } - - /** - * Sets the value of this vector to the normalization of vector v1. - * - * @param v1 the un-normalized vector - */ - public final void normalize(Vector2f v1) { - float norm; - - norm = (float) (1.0 / Math.sqrt(v1.x * v1.x + v1.y * v1.y)); - this.x = v1.x * norm; - this.y = v1.y * norm; - } - - /** - * Normalizes this vector in place. - */ - public final void normalize() { - float norm; - - norm = (float) - (1.0 / Math.sqrt(this.x * this.x + this.y * this.y)); - this.x *= norm; - this.y *= norm; - } - - - /** - * Returns the angle in radians between this vector and the vector - * parameter; the return value is constrained to the range [0,PI]. - * - * @param v1 the other vector - * @return the angle in radians in the range [0,PI] - */ - public final float angle(Vector2f v1) { - double vDot = this.dot(v1) / (this.length() * v1.length()); - if (vDot < -1.0) vDot = -1.0; - if (vDot > 1.0) vDot = 1.0; - return ((float) (Math.acos(vDot))); - } - - -} diff --git a/core/src/main/java/com/volmit/iris/util/math/Vector3d.java b/core/src/main/java/com/volmit/iris/util/math/Vector3d.java deleted file mode 100644 index cfc39b52a..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/Vector3d.java +++ /dev/null @@ -1,192 +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 com.volmit.iris.util.math; - -/** - * A 3-element vector that is represented by double-precision floating point - * x,y,z coordinates. If this value represents a normal, then it should - * be normalized. - */ -public class Vector3d extends Tuple3d implements java.io.Serializable { - - // Combatible with 1.1 - static final long serialVersionUID = 3761969948420550442L; - - /** - * Constructs and initializes a Vector3d from the specified xyz coordinates. - * - * @param x the x coordinate - * @param y the y coordinate - * @param z the z coordinate - */ - public Vector3d(double x, double y, double z) { - super(x, y, z); - } - - - /** - * Constructs and initializes a Vector3d from the array of length 3. - * - * @param v the array of length 3 containing xyz in order - */ - public Vector3d(double[] v) { - super(v); - } - - - /** - * Constructs and initializes a Vector3d from the specified Vector3d. - * - * @param v1 the Vector3d containing the initialization x y z data - */ - public Vector3d(Vector3d v1) { - super(v1); - } - - - /** - * Constructs and initializes a Vector3d from the specified Vector3f. - * - * @param v1 the Vector3f containing the initialization x y z data - */ - public Vector3d(Vector3f v1) { - super(v1); - } - - - /** - * Constructs and initializes a Vector3d from the specified Tuple3f. - * - * @param t1 the Tuple3f containing the initialization x y z data - */ - public Vector3d(Tuple3f t1) { - super(t1); - } - - - /** - * Constructs and initializes a Vector3d from the specified Tuple3d. - * - * @param t1 the Tuple3d containing the initialization x y z data - */ - public Vector3d(Tuple3d t1) { - super(t1); - } - - - /** - * Constructs and initializes a Vector3d to (0,0,0). - */ - public Vector3d() { - super(); - } - - - /** - * Sets this vector to the vector cross product of vectors v1 and v2. - * - * @param v1 the first vector - * @param v2 the second vector - */ - public final void cross(Vector3d v1, Vector3d v2) { - double x, y; - - x = v1.y * v2.z - v1.z * v2.y; - y = v2.x * v1.z - v2.z * v1.x; - this.z = v1.x * v2.y - v1.y * v2.x; - this.x = x; - this.y = y; - } - - - /** - * Sets the value of this vector to the normalization of vector v1. - * - * @param v1 the un-normalized vector - */ - public final void normalize(Vector3d v1) { - double norm; - - norm = 1.0 / Math.sqrt(v1.x * v1.x + v1.y * v1.y + v1.z * v1.z); - this.x = v1.x * norm; - this.y = v1.y * norm; - this.z = v1.z * norm; - } - - - /** - * Normalizes this vector in place. - */ - public final void normalize() { - double norm; - - norm = 1.0 / Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); - this.x *= norm; - this.y *= norm; - this.z *= norm; - } - - - /** - * Returns the dot product of this vector and vector v1. - * - * @param v1 the other vector - * @return the dot product of this and v1 - */ - public final double dot(Vector3d v1) { - return (this.x * v1.x + this.y * v1.y + this.z * v1.z); - } - - - /** - * Returns the squared length of this vector. - * - * @return the squared length of this vector - */ - public final double lengthSquared() { - return (this.x * this.x + this.y * this.y + this.z * this.z); - } - - - /** - * Returns the length of this vector. - * - * @return the length of this vector - */ - public final double length() { - return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); - } - - - /** - * Returns the angle in radians between this vector and the vector - * parameter; the return value is constrained to the range [0,PI]. - * - * @param v1 the other vector - * @return the angle in radians in the range [0,PI] - */ - public final double angle(Vector3d v1) { - double vDot = this.dot(v1) / (this.length() * v1.length()); - if (vDot < -1.0) vDot = -1.0; - if (vDot > 1.0) vDot = 1.0; - return Math.acos(vDot); - } - - -} diff --git a/core/src/main/java/com/volmit/iris/util/math/Vector3f.java b/core/src/main/java/com/volmit/iris/util/math/Vector3f.java deleted file mode 100644 index 0640acfd3..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/Vector3f.java +++ /dev/null @@ -1,189 +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 com.volmit.iris.util.math; - -/** - * A 3-element vector that is represented by single-precision floating point - * x,y,z coordinates. If this value represents a normal, then it should - * be normalized. - */ -public class Vector3f extends Tuple3f implements java.io.Serializable { - - // Combatible with 1.1 - static final long serialVersionUID = -7031930069184524614L; - - /** - * Constructs and initializes a Vector3f from the specified xyz coordinates. - * - * @param x the x coordinate - * @param y the y coordinate - * @param z the z coordinate - */ - public Vector3f(float x, float y, float z) { - super(x, y, z); - } - - - /** - * Constructs and initializes a Vector3f from the array of length 3. - * - * @param v the array of length 3 containing xyz in order - */ - public Vector3f(float[] v) { - super(v); - } - - - /** - * Constructs and initializes a Vector3f from the specified Vector3f. - * - * @param v1 the Vector3f containing the initialization x y z data - */ - public Vector3f(Vector3f v1) { - super(v1); - } - - - /** - * Constructs and initializes a Vector3f from the specified Vector3d. - * - * @param v1 the Vector3d containing the initialization x y z data - */ - public Vector3f(Vector3d v1) { - super(v1); - } - - - /** - * Constructs and initializes a Vector3f from the specified Tuple3f. - * - * @param t1 the Tuple3f containing the initialization x y z data - */ - public Vector3f(Tuple3f t1) { - super(t1); - } - - - /** - * Constructs and initializes a Vector3f from the specified Tuple3d. - * - * @param t1 the Tuple3d containing the initialization x y z data - */ - public Vector3f(Tuple3d t1) { - super(t1); - } - - - /** - * Constructs and initializes a Vector3f to (0,0,0). - */ - public Vector3f() { - super(); - } - - - /** - * Returns the squared length of this vector. - * - * @return the squared length of this vector - */ - public final float lengthSquared() { - return (this.x * this.x + this.y * this.y + this.z * this.z); - } - - /** - * Returns the length of this vector. - * - * @return the length of this vector - */ - public final float length() { - return (float) - Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); - } - - - /** - * Sets this vector to be the vector cross product of vectors v1 and v2. - * - * @param v1 the first vector - * @param v2 the second vector - */ - public final void cross(Vector3f v1, Vector3f v2) { - float x, y; - - x = v1.y * v2.z - v1.z * v2.y; - y = v2.x * v1.z - v2.z * v1.x; - this.z = v1.x * v2.y - v1.y * v2.x; - this.x = x; - this.y = y; - } - - /** - * Computes the dot product of this vector and vector v1. - * - * @param v1 the other vector - * @return the dot product of this vector and v1 - */ - public final float dot(Vector3f v1) { - return (this.x * v1.x + this.y * v1.y + this.z * v1.z); - } - - /** - * Sets the value of this vector to the normalization of vector v1. - * - * @param v1 the un-normalized vector - */ - public final void normalize(Vector3f v1) { - float norm; - - norm = (float) (1.0 / Math.sqrt(v1.x * v1.x + v1.y * v1.y + v1.z * v1.z)); - this.x = v1.x * norm; - this.y = v1.y * norm; - this.z = v1.z * norm; - } - - /** - * Normalizes this vector in place. - */ - public final void normalize() { - float norm; - - norm = (float) - (1.0 / Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z)); - this.x *= norm; - this.y *= norm; - this.z *= norm; - } - - - /** - * Returns the angle in radians between this vector and the vector - * parameter; the return value is constrained to the range [0,PI]. - * - * @param v1 the other vector - * @return the angle in radians in the range [0,PI] - */ - public final float angle(Vector3f v1) { - double vDot = this.dot(v1) / (this.length() * v1.length()); - if (vDot < -1.0) vDot = -1.0; - if (vDot > 1.0) vDot = 1.0; - return ((float) (Math.acos(vDot))); - } - -} diff --git a/core/src/main/java/com/volmit/iris/util/math/VectorMath.java b/core/src/main/java/com/volmit/iris/util/math/VectorMath.java deleted file mode 100644 index 7716f5ee9..000000000 --- a/core/src/main/java/com/volmit/iris/util/math/VectorMath.java +++ /dev/null @@ -1,617 +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 com.volmit.iris.util.math; - -import com.volmit.iris.util.collection.GListAdapter; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.format.Form; -import org.bukkit.Axis; -import org.bukkit.Bukkit; -import org.bukkit.Location; -import org.bukkit.block.BlockFace; -import org.bukkit.entity.Entity; -import org.bukkit.util.Vector; - -/** - * Vector utilities - * - * @author cyberpwn - */ -public class VectorMath { - public static Vector scaleStatic(Axis x, Vector v, double amt) { - return switch (x) { - case X -> scaleX(v, amt); - case Y -> scaleY(v, amt); - case Z -> scaleZ(v, amt); - }; - - } - - public static Vector scaleX(Vector v, double amt) { - double x = v.getX(); - double y = v.getY(); - double z = v.getZ(); - double rx = x == 0 ? 1 : amt / x; - - return new Vector(x * rx, y * rx, z * rx); - } - - public static Vector scaleY(Vector v, double amt) { - double x = v.getX(); - double y = v.getY(); - double z = v.getZ(); - double rx = y == 0 ? 1 : amt / y; - - return new Vector(x * rx, y * rx, z * rx); - } - - public static Vector scaleZ(Vector v, double amt) { - double x = v.getX(); - double y = v.getY(); - double z = v.getZ(); - double rx = z == 0 ? 1 : amt / z; - - return new Vector(x * rx, y * rx, z * rx); - } - - public static Vector reverseXZ(Vector v) { - v.setX(-v.getX()); - v.setZ(-v.getZ()); - return v; - } - - public static boolean isLookingNear(Location a, Location b, double maxOff) { - Vector perfect = VectorMath.direction(a, b); - Vector actual = a.getDirection(); - - return perfect.distance(actual) <= maxOff; - } - - public static Vector rotate(Direction current, Direction to, Vector v) { - if (current.equals(to)) { - return v; - } else if (current.equals(to.reverse())) { - if (current.isVertical()) { - return new Vector(v.getX(), -v.getY(), v.getZ()); - } else { - return new Vector(-v.getX(), v.getY(), -v.getZ()); - } - } else { - Vector c = current.toVector().clone().add(to.toVector()); - - if (c.getX() == 0) { - if (c.getY() != c.getZ()) { - return rotate90CX(v); - } - - return rotate90CCX(v); - } else if (c.getY() == 0) { - if (c.getX() != c.getZ()) { - return rotate90CY(v); - } - - return rotate90CCY(v); - } else if (c.getZ() == 0) { - if (c.getX() != c.getY()) { - return rotate90CZ(v); - } - - return rotate90CCZ(v); - } - } - - return v; - } - - // Y X 0 0 - // X Z 0 0 - - // 0 X Y 0 - // 0 Z X 0 - - public static Vector rotate(Direction current, Direction to, Vector v, int w, int h, int d) { - if (current.equals(to)) { - return v; - } else if (current.equals(to.reverse())) { - if (current.isVertical()) { - return new Vector(v.getX(), -v.getY() + h, v.getZ()); - } else { - return new Vector(-v.getX() + w, v.getY(), -v.getZ() + d); - } - } else { - Vector c = current.toVector().clone().add(to.toVector()); - - if (c.getX() == 0) { - if (c.getY() != c.getZ()) { - return rotate90CX(v, d); - } - - return rotate90CCX(v, h); - } else if (c.getY() == 0) { - if (c.getX() != c.getZ()) { - return rotate90CY(v, d); - } - - return rotate90CCY(v, w); - } else if (c.getZ() == 0) { - if (c.getX() != c.getY()) { - return rotate90CZ(v, w); - } - - return rotate90CCZ(v, h); - } - } - - return v; - } - - public static Vector rotate90CX(Vector v) { - return new Vector(v.getX(), -v.getZ(), v.getY()); - } - - public static Vector rotate90CCX(Vector v) { - return new Vector(v.getX(), v.getZ(), -v.getY()); - } - - public static Vector rotate90CY(Vector v) { - return new Vector(-v.getZ(), v.getY(), v.getX()); - } - - public static Vector rotate90CCY(Vector v) { - return new Vector(v.getZ(), v.getY(), -v.getX()); - } - - public static Vector rotate90CZ(Vector v) { - return new Vector(v.getY(), -v.getX(), v.getZ()); - } - - public static Vector rotate90CCZ(Vector v) { - return new Vector(-v.getY(), v.getX(), v.getZ()); - } - - public static Vector rotate90CX(Vector v, int s) { - return new Vector(v.getX(), -v.getZ() + s, v.getY()); - } - - public static Vector rotate90CCX(Vector v, int s) { - return new Vector(v.getX(), v.getZ(), -v.getY() + s); - } - - public static Vector rotate90CY(Vector v, int s) { - return new Vector(-v.getZ() + s, v.getY(), v.getX()); - } - - public static Vector rotate90CCY(Vector v, int s) { - return new Vector(v.getZ(), v.getY(), -v.getX() + s); - } - - public static Vector rotate90CZ(Vector v, int s) { - return new Vector(v.getY(), -v.getX() + s, v.getZ()); - } - - public static Vector rotate90CCZ(Vector v, int s) { - return new Vector(-v.getY() + s, v.getX(), v.getZ()); - } - - public static Vector getAxis(Direction current, Direction to) { - if (current.equals(Direction.U) || current.equals(Direction.D)) { - if (to.equals(Direction.U) || to.equals(Direction.D)) { - return new Vector(1, 0, 0); - } else { - if (current.equals(Direction.N) || current.equals(Direction.S)) { - return Direction.E.toVector(); - } else { - return Direction.S.toVector(); - } - } - } - - return new Vector(0, 1, 0); - } - - private static double round(double value, int precision) { - return Double.parseDouble(Form.f(value, precision)); - } - - public static Vector clip(Vector v, int decimals) { - v.setX(round(v.getX(), decimals)); - v.setY(round(v.getY(), decimals)); - v.setZ(round(v.getZ(), decimals)); - return v; - } - - public static Vector rotateVectorCC(Vector vec, Vector axis, double deg) { - double theta = Math.toRadians(deg); - double x, y, z; - double u, v, w; - x = vec.getX(); - y = vec.getY(); - z = vec.getZ(); - u = axis.getX(); - v = axis.getY(); - w = axis.getZ(); - double f = u * x + v * y + w * z; - double xPrime = u * (f) * (1d - Math.cos(theta)) + x * Math.cos(theta) + (-w * y + v * z) * Math.sin(theta); - double yPrime = v * (f) * (1d - Math.cos(theta)) + y * Math.cos(theta) + (w * x - u * z) * Math.sin(theta); - double zPrime = w * (f) * (1d - Math.cos(theta)) + z * Math.cos(theta) + (-v * x + u * y) * Math.sin(theta); - - return clip(new Vector(xPrime, yPrime, zPrime), 4); - } - - /** - * Get all SIMPLE block faces from a more specific block face (SOUTH_EAST) = - * (south, east) - * - * @param f the block face - * @return multiple faces, or one if the face is already simple - */ - public static KList split(BlockFace f) { - KList faces = new KList<>(); - - switch (f) { - case DOWN: - faces.add(BlockFace.DOWN); - break; - case EAST: - faces.add(BlockFace.EAST); - break; - case EAST_NORTH_EAST: - faces.add(BlockFace.EAST); - faces.add(BlockFace.EAST); - faces.add(BlockFace.NORTH); - break; - case EAST_SOUTH_EAST: - faces.add(BlockFace.EAST); - faces.add(BlockFace.EAST); - faces.add(BlockFace.SOUTH); - break; - case NORTH: - faces.add(BlockFace.NORTH); - break; - case NORTH_EAST: - faces.add(BlockFace.NORTH); - faces.add(BlockFace.EAST); - break; - case NORTH_NORTH_EAST: - faces.add(BlockFace.NORTH); - faces.add(BlockFace.NORTH); - faces.add(BlockFace.EAST); - break; - case NORTH_NORTH_WEST: - faces.add(BlockFace.NORTH); - faces.add(BlockFace.NORTH); - faces.add(BlockFace.WEST); - break; - case NORTH_WEST: - faces.add(BlockFace.NORTH); - faces.add(BlockFace.WEST); - break; - case SELF: - faces.add(BlockFace.SELF); - break; - case SOUTH: - faces.add(BlockFace.SOUTH); - break; - case SOUTH_EAST: - faces.add(BlockFace.SOUTH); - faces.add(BlockFace.EAST); - break; - case SOUTH_SOUTH_EAST: - faces.add(BlockFace.SOUTH); - faces.add(BlockFace.SOUTH); - faces.add(BlockFace.EAST); - break; - case SOUTH_SOUTH_WEST: - faces.add(BlockFace.SOUTH); - faces.add(BlockFace.SOUTH); - faces.add(BlockFace.WEST); - break; - case SOUTH_WEST: - faces.add(BlockFace.SOUTH); - faces.add(BlockFace.WEST); - break; - case UP: - faces.add(BlockFace.UP); - break; - case WEST: - faces.add(BlockFace.WEST); - break; - case WEST_NORTH_WEST: - faces.add(BlockFace.WEST); - faces.add(BlockFace.WEST); - faces.add(BlockFace.NORTH); - break; - case WEST_SOUTH_WEST: - faces.add(BlockFace.WEST); - faces.add(BlockFace.WEST); - faces.add(BlockFace.SOUTH); - break; - default: - break; - } - - return faces; - } - - /** - * Get a normalized vector going from a location to another - * - * @param from from here - * @param to to here - * @return the normalized vector direction - */ - public static Vector direction(Location from, Location to) { - return to.clone().subtract(from.clone()).toVector().normalize(); - } - - public static Vector directionNoNormal(Location from, Location to) { - return to.clone().subtract(from.clone()).toVector(); - } - - /** - * Get the vector direction from the yaw and pitch - * - * @param yaw the yaw - * @param pitch the pitch - * @return the vector - */ - public static Vector toVector(float yaw, float pitch) { - return new Vector(Math.cos(pitch) * Math.cos(yaw), Math.sin(pitch), Math.cos(pitch) * Math.sin(-yaw)); - } - - /** - * Add an impulse (force) to an entity - * - * @param e the entity - * @param v the vector - */ - public static void impulse(Entity e, Vector v) { - impulse(e, v, 1.0); - } - - /** - * Add an impulse (force) on an entity - * - * @param e the entity - * @param v the vector - * @param effectiveness the effectiveness - */ - public static void impulse(Entity e, Vector v, double effectiveness) { - Vector vx = e.getVelocity(); - vx.add(v.clone().multiply(effectiveness)); - e.setVelocity(vx); - } - - /** - * Reverse a direction - * - * @param v the direction - * @return the reversed direction - */ - public static Vector reverse(Vector v) { - if (v.getX() != 0) { - v.setX(-v.getX()); - } - - if (v.getY() != 0) { - v.setY(-v.getY()); - } - - if (v.getZ() != 0) { - v.setZ(-v.getZ()); - } - - return v; - } - - /** - * Get a speed value from a vector (velocity) - * - * @param v the vector - * @return the speed - */ - public static double getSpeed(Vector v) { - Vector vi = new Vector(0, 0, 0); - Vector vt = new Vector(0, 0, 0).add(v); - - return vi.distance(vt); - } - - /** - * Shift all vectors based on the given vector - * - * @param vector the vector direction to shift the vectors - * @param vectors the vectors to be shifted - * @return the shifted vectors - */ - public static KList shift(Vector vector, KList vectors) { - return new KList<>(new GListAdapter() { - @Override - public Vector onAdapt(Vector from) { - return from.add(vector); - } - }.adapt(vectors)); - } - - /** - * Attempt to get the blockFace for the vector (will be tri-normalized) - * - * @param v the vector - * @return the block face or null - */ - public static BlockFace getBlockFace(Vector v) { - Vector p = triNormalize(v); - - for (BlockFace i : BlockFace.values()) { - if (p.getX() == i.getModX() && p.getY() == i.getModY() && p.getZ() == i.getModZ()) { - return i; - } - } - - for (BlockFace i : BlockFace.values()) { - if (p.getX() == i.getModX() && p.getZ() == i.getModZ()) { - return i; - } - } - - for (BlockFace i : BlockFace.values()) { - if (p.getY() == i.getModY() && p.getZ() == i.getModZ()) { - return i; - } - } - - for (BlockFace i : BlockFace.values()) { - if (p.getX() == i.getModX() || p.getY() == i.getModY()) { - return i; - } - } - - for (BlockFace i : BlockFace.values()) { - if (p.getX() == i.getModX() || p.getY() == i.getModY() || p.getZ() == i.getModZ()) { - return i; - } - } - - return null; - } - - /** - * Angle the vector in a self relative direction - * - * @param v the initial direction - * @param amt the amount to shift in the direction - * @return the shifted direction - */ - public static Vector angleLeft(Vector v, float amt) { - Location l = new Location(Bukkit.getWorlds().get(0), 0, 0, 0); - l.setDirection(v); - float y = l.getYaw(); - float p = l.getPitch(); - CDou cy = new CDou(360); - CDou cp = new CDou(180); - cy.set(y); - cp.set(p); - cy.sub(amt); - l.setYaw((float) cy.get()); - l.setPitch((float) cp.get()); - - return l.getDirection(); - } - - /** - * Angle the vector in a self relative direction - * - * @param v the initial direction - * @param amt the amount to shift in the direction - * @return the shifted direction - */ - public static Vector angleRight(Vector v, float amt) { - Location l = new Location(Bukkit.getWorlds().get(0), 0, 0, 0); - l.setDirection(v); - float y = l.getYaw(); - float p = l.getPitch(); - CDou cy = new CDou(360); - CDou cp = new CDou(180); - cy.set(y); - cp.set(p); - cy.add(amt); - l.setYaw((float) cy.get()); - l.setPitch((float) cp.get()); - - return l.getDirection(); - } - - /** - * Angle the vector in a self relative direction - * - * @param v the initial direction - * @param amt the amount to shift in the direction - * @return the shifted direction - */ - public static Vector angleUp(Vector v, float amt) { - Location l = new Location(Bukkit.getWorlds().get(0), 0, 0, 0); - l.setDirection(v); - float y = l.getYaw(); - float p = l.getPitch(); - CDou cy = new CDou(360); - cy.set(y); - l.setYaw((float) cy.get()); - l.setPitch(Math.max(-90, p - amt)); - - return l.getDirection(); - } - - /** - * Angle the vector in a self relative direction - * - * @param v the initial direction - * @param amt the amount to shift in the direction - * @return the shifted direction - */ - public static Vector angleDown(Vector v, float amt) { - Location l = new Location(Bukkit.getWorlds().get(0), 0, 0, 0); - l.setDirection(v); - float y = l.getYaw(); - float p = l.getPitch(); - CDou cy = new CDou(360); - cy.set(y); - l.setYaw((float) cy.get()); - l.setPitch(Math.min(90, p + amt)); - - return l.getDirection(); - } - - /** - * (clone) Force normalize the vector into three points, 1, 0, or -1. If the - * value is > 0.333 (1) if the value is less than -0.333 (-1) else 0 - * - * @param direction the direction - * @return the vector - */ - public static Vector triNormalize(Vector direction) { - Vector v = direction.clone(); - v.normalize(); - - if (v.getX() > 0.333) { - v.setX(1); - } else if (v.getX() < -0.333) { - v.setX(-1); - } else { - v.setX(0); - } - - if (v.getY() > 0.333) { - v.setY(1); - } else if (v.getY() < -0.333) { - v.setY(-1); - } else { - v.setY(0); - } - - if (v.getZ() > 0.333) { - v.setZ(1); - } else if (v.getZ() < -0.333) { - v.setZ(-1); - } else { - v.setZ(0); - } - - return v; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/matter/MatterCavern.java b/core/src/main/java/com/volmit/iris/util/matter/MatterCavern.java deleted file mode 100644 index fc86d2cf9..000000000 --- a/core/src/main/java/com/volmit/iris/util/matter/MatterCavern.java +++ /dev/null @@ -1,42 +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 com.volmit.iris.util.matter; - -import lombok.AllArgsConstructor; -import lombok.Data; - -@Data -@AllArgsConstructor -public class MatterCavern { - private final boolean cavern; - private final String customBiome; - private final byte liquid; // 0 none 1 water 2 lava - - public boolean isAir() { - return liquid == 0; - } - - public boolean isWater() { - return liquid == 1; - } - - public boolean isLava() { - return liquid == 2; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/matter/MatterEntity.java b/core/src/main/java/com/volmit/iris/util/matter/MatterEntity.java deleted file mode 100644 index 52fb3958a..000000000 --- a/core/src/main/java/com/volmit/iris/util/matter/MatterEntity.java +++ /dev/null @@ -1,32 +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 com.volmit.iris.util.matter; - -import com.volmit.iris.util.nbt.tag.CompoundTag; -import lombok.AllArgsConstructor; -import lombok.Data; - -@Data -@AllArgsConstructor -public class MatterEntity { - private final double xOff; - private final double yOff; - private final double zOff; - private final CompoundTag entityData; -} diff --git a/core/src/main/java/com/volmit/iris/util/matter/MatterFilter.java b/core/src/main/java/com/volmit/iris/util/matter/MatterFilter.java deleted file mode 100644 index 3f4dac01e..000000000 --- a/core/src/main/java/com/volmit/iris/util/matter/MatterFilter.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 com.volmit.iris.util.matter; - -@FunctionalInterface -public interface MatterFilter { - T update(int x, int y, int z, T t); -} diff --git a/core/src/main/java/com/volmit/iris/util/matter/MatterFluidBody.java b/core/src/main/java/com/volmit/iris/util/matter/MatterFluidBody.java deleted file mode 100644 index 116b4e8da..000000000 --- a/core/src/main/java/com/volmit/iris/util/matter/MatterFluidBody.java +++ /dev/null @@ -1,30 +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 com.volmit.iris.util.matter; - -import lombok.AllArgsConstructor; -import lombok.Data; - -@Data -@AllArgsConstructor -public class MatterFluidBody { - private final boolean body; - private final String customBiome; - private final boolean lava; -} diff --git a/core/src/main/java/com/volmit/iris/util/matter/MatterMarker.java b/core/src/main/java/com/volmit/iris/util/matter/MatterMarker.java deleted file mode 100644 index dab5ff6ac..000000000 --- a/core/src/main/java/com/volmit/iris/util/matter/MatterMarker.java +++ /dev/null @@ -1,28 +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 com.volmit.iris.util.matter; - -import lombok.AllArgsConstructor; -import lombok.Data; - -@Data -@AllArgsConstructor -public class MatterMarker { - private final String tag; -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/matter/MatterReader.java b/core/src/main/java/com/volmit/iris/util/matter/MatterReader.java deleted file mode 100644 index 4d0b6516c..000000000 --- a/core/src/main/java/com/volmit/iris/util/matter/MatterReader.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 com.volmit.iris.util.matter; - -@FunctionalInterface -public interface MatterReader { - T readMatter(W w, int x, int y, int z); -} diff --git a/core/src/main/java/com/volmit/iris/util/matter/MatterUpdate.java b/core/src/main/java/com/volmit/iris/util/matter/MatterUpdate.java deleted file mode 100644 index 10f2cb2bc..000000000 --- a/core/src/main/java/com/volmit/iris/util/matter/MatterUpdate.java +++ /dev/null @@ -1,28 +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 com.volmit.iris.util.matter; - -import lombok.AllArgsConstructor; -import lombok.Data; - -@Data -@AllArgsConstructor -public class MatterUpdate { - private final boolean update; -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/matter/MatterWriter.java b/core/src/main/java/com/volmit/iris/util/matter/MatterWriter.java deleted file mode 100644 index b4135cb5d..000000000 --- a/core/src/main/java/com/volmit/iris/util/matter/MatterWriter.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 com.volmit.iris.util.matter; - -@FunctionalInterface -public interface MatterWriter { - void writeMatter(W w, T d, int x, int y, int z); -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/io/NBTDeserializer.java b/core/src/main/java/com/volmit/iris/util/nbt/io/NBTDeserializer.java deleted file mode 100644 index b76d2c418..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/io/NBTDeserializer.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 com.volmit.iris.util.nbt.io; - -import com.volmit.iris.engine.data.io.Deserializer; -import com.volmit.iris.util.nbt.tag.Tag; - -import java.io.IOException; -import java.io.InputStream; -import java.util.zip.GZIPInputStream; - -public class NBTDeserializer implements Deserializer { - - private final boolean compressed; - - public NBTDeserializer() { - this(true); - } - - public NBTDeserializer(boolean compressed) { - this.compressed = compressed; - } - - @Override - public NamedTag fromStream(InputStream stream) throws IOException { - NBTInputStream nbtIn; - if (compressed) { - nbtIn = new NBTInputStream(new GZIPInputStream(stream)); - } else { - nbtIn = new NBTInputStream(stream); - } - return nbtIn.readTag(Tag.DEFAULT_MAX_DEPTH); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/io/NBTInputStream.java b/core/src/main/java/com/volmit/iris/util/nbt/io/NBTInputStream.java deleted file mode 100644 index 7a6dd167b..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/io/NBTInputStream.java +++ /dev/null @@ -1,155 +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 com.volmit.iris.util.nbt.io; - -import com.volmit.iris.engine.data.io.ExceptionBiFunction; -import com.volmit.iris.engine.data.io.MaxDepthIO; -import com.volmit.iris.util.nbt.tag.*; - -import java.io.DataInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.HashMap; -import java.util.Map; - -public class NBTInputStream extends DataInputStream implements MaxDepthIO { - - private static final Map, IOException>> readers = new HashMap<>(); - private static final Map> idClassMapping = new HashMap<>(); - - static { - put(EndTag.ID, (i, d) -> EndTag.INSTANCE, EndTag.class); - put(ByteTag.ID, (i, d) -> readByte(i), ByteTag.class); - put(ShortTag.ID, (i, d) -> readShort(i), ShortTag.class); - put(IntTag.ID, (i, d) -> readInt(i), IntTag.class); - put(LongTag.ID, (i, d) -> readLong(i), LongTag.class); - put(FloatTag.ID, (i, d) -> readFloat(i), FloatTag.class); - put(DoubleTag.ID, (i, d) -> readDouble(i), DoubleTag.class); - put(ByteArrayTag.ID, (i, d) -> readByteArray(i), ByteArrayTag.class); - put(StringTag.ID, (i, d) -> readString(i), StringTag.class); - put(ListTag.ID, NBTInputStream::readListTag, ListTag.class); - put(CompoundTag.ID, NBTInputStream::readCompound, CompoundTag.class); - put(IntArrayTag.ID, (i, d) -> readIntArray(i), IntArrayTag.class); - put(LongArrayTag.ID, (i, d) -> readLongArray(i), LongArrayTag.class); - } - - public NBTInputStream(InputStream in) { - super(in); - } - - private static void put(byte id, ExceptionBiFunction, IOException> reader, Class clazz) { - readers.put(id, reader); - idClassMapping.put(id, clazz); - } - - private static ByteTag readByte(NBTInputStream in) throws IOException { - return new ByteTag(in.readByte()); - } - - private static ShortTag readShort(NBTInputStream in) throws IOException { - return new ShortTag(in.readShort()); - } - - private static IntTag readInt(NBTInputStream in) throws IOException { - return new IntTag(in.readInt()); - } - - private static LongTag readLong(NBTInputStream in) throws IOException { - return new LongTag(in.readLong()); - } - - private static FloatTag readFloat(NBTInputStream in) throws IOException { - return new FloatTag(in.readFloat()); - } - - private static DoubleTag readDouble(NBTInputStream in) throws IOException { - return new DoubleTag(in.readDouble()); - } - - private static StringTag readString(NBTInputStream in) throws IOException { - return new StringTag(in.readUTF()); - } - - private static ByteArrayTag readByteArray(NBTInputStream in) throws IOException { - ByteArrayTag bat = new ByteArrayTag(new byte[in.readInt()]); - in.readFully(bat.getValue()); - return bat; - } - - private static IntArrayTag readIntArray(NBTInputStream in) throws IOException { - int l = in.readInt(); - int[] data = new int[l]; - IntArrayTag iat = new IntArrayTag(data); - for (int i = 0; i < l; i++) { - data[i] = in.readInt(); - } - return iat; - } - - private static LongArrayTag readLongArray(NBTInputStream in) throws IOException { - int l = in.readInt(); - long[] data = new long[l]; - LongArrayTag iat = new LongArrayTag(data); - for (int i = 0; i < l; i++) { - data[i] = in.readLong(); - } - return iat; - } - - private static ListTag readListTag(NBTInputStream in, int maxDepth) throws IOException { - byte listType = in.readByte(); - ListTag list = ListTag.createUnchecked(idClassMapping.get(listType)); - int length = in.readInt(); - if (length < 0) { - length = 0; - } - for (int i = 0; i < length; i++) { - list.addUnchecked(in.readTag(listType, in.decrementMaxDepth(maxDepth))); - } - return list; - } - - private static CompoundTag readCompound(NBTInputStream in, int maxDepth) throws IOException { - CompoundTag comp = new CompoundTag(); - for (int id = in.readByte() & 0xFF; id != 0; id = in.readByte() & 0xFF) { - String key = in.readUTF(); - Tag element = in.readTag((byte) id, in.decrementMaxDepth(maxDepth)); - comp.put(key, element); - } - return comp; - } - - public NamedTag readTag(int maxDepth) throws IOException { - byte id = readByte(); - return new NamedTag(readUTF(), readTag(id, maxDepth)); - } - - public Tag readRawTag(int maxDepth) throws IOException { - byte id = readByte(); - return readTag(id, maxDepth); - } - - private Tag readTag(byte type, int maxDepth) throws IOException { - ExceptionBiFunction, IOException> f; - if ((f = readers.get(type)) == null) { - throw new IOException("invalid tag id \"" + type + "\""); - } - return f.accept(this, maxDepth); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/io/NBTOutputStream.java b/core/src/main/java/com/volmit/iris/util/nbt/io/NBTOutputStream.java deleted file mode 100644 index 246549da5..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/io/NBTOutputStream.java +++ /dev/null @@ -1,160 +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 com.volmit.iris.util.nbt.io; - -import com.volmit.iris.engine.data.io.ExceptionTriConsumer; -import com.volmit.iris.engine.data.io.MaxDepthIO; -import com.volmit.iris.util.nbt.tag.*; - -import java.io.DataOutputStream; -import java.io.IOException; -import java.io.OutputStream; -import java.util.HashMap; -import java.util.Map; - -public class NBTOutputStream extends DataOutputStream implements MaxDepthIO { - - private static final Map, Integer, IOException>> writers = new HashMap<>(); - private static final Map, Byte> classIdMapping = new HashMap<>(); - - static { - put(EndTag.ID, (o, t, d) -> { - }, EndTag.class); - put(ByteTag.ID, (o, t, d) -> writeByte(o, t), ByteTag.class); - put(ShortTag.ID, (o, t, d) -> writeShort(o, t), ShortTag.class); - put(IntTag.ID, (o, t, d) -> writeInt(o, t), IntTag.class); - put(LongTag.ID, (o, t, d) -> writeLong(o, t), LongTag.class); - put(FloatTag.ID, (o, t, d) -> writeFloat(o, t), FloatTag.class); - put(DoubleTag.ID, (o, t, d) -> writeDouble(o, t), DoubleTag.class); - put(ByteArrayTag.ID, (o, t, d) -> writeByteArray(o, t), ByteArrayTag.class); - put(StringTag.ID, (o, t, d) -> writeString(o, t), StringTag.class); - put(ListTag.ID, NBTOutputStream::writeList, ListTag.class); - put(CompoundTag.ID, NBTOutputStream::writeCompound, CompoundTag.class); - put(IntArrayTag.ID, (o, t, d) -> writeIntArray(o, t), IntArrayTag.class); - put(LongArrayTag.ID, (o, t, d) -> writeLongArray(o, t), LongArrayTag.class); - } - - public NBTOutputStream(OutputStream out) { - super(out); - } - - private static void put(byte id, ExceptionTriConsumer, Integer, IOException> f, Class clazz) { - writers.put(id, f); - classIdMapping.put(clazz, id); - } - - static byte idFromClass(Class clazz) { - Byte id = classIdMapping.get(clazz); - if (id == null) { - throw new IllegalArgumentException("unknown Tag class " + clazz.getName()); - } - return id; - } - - private static void writeByte(NBTOutputStream out, Tag tag) throws IOException { - out.writeByte(((ByteTag) tag).asByte()); - } - - private static void writeShort(NBTOutputStream out, Tag tag) throws IOException { - out.writeShort(((ShortTag) tag).asShort()); - } - - private static void writeInt(NBTOutputStream out, Tag tag) throws IOException { - out.writeInt(((IntTag) tag).asInt()); - } - - private static void writeLong(NBTOutputStream out, Tag tag) throws IOException { - out.writeLong(((LongTag) tag).asLong()); - } - - private static void writeFloat(NBTOutputStream out, Tag tag) throws IOException { - out.writeFloat(((FloatTag) tag).asFloat()); - } - - private static void writeDouble(NBTOutputStream out, Tag tag) throws IOException { - out.writeDouble(((DoubleTag) tag).asDouble()); - } - - private static void writeString(NBTOutputStream out, Tag tag) throws IOException { - out.writeUTF(((StringTag) tag).getValue()); - } - - private static void writeByteArray(NBTOutputStream out, Tag tag) throws IOException { - out.writeInt(((ByteArrayTag) tag).length()); - out.write(((ByteArrayTag) tag).getValue()); - } - - private static void writeIntArray(NBTOutputStream out, Tag tag) throws IOException { - out.writeInt(((IntArrayTag) tag).length()); - for (int i : ((IntArrayTag) tag).getValue()) { - out.writeInt(i); - } - } - - private static void writeLongArray(NBTOutputStream out, Tag tag) throws IOException { - out.writeInt(((LongArrayTag) tag).length()); - for (long l : ((LongArrayTag) tag).getValue()) { - out.writeLong(l); - } - } - - private static void writeList(NBTOutputStream out, Tag tag, int maxDepth) throws IOException { - out.writeByte(idFromClass(((ListTag) tag).getTypeClass())); - out.writeInt(((ListTag) tag).size()); - for (Tag t : ((ListTag) tag)) { - out.writeRawTag(t, out.decrementMaxDepth(maxDepth)); - } - } - - private static void writeCompound(NBTOutputStream out, Tag tag, int maxDepth) throws IOException { - for (Map.Entry> entry : (CompoundTag) tag) { - if (entry.getValue().getID() == 0) { - throw new IOException("end tag not allowed"); - } - out.writeByte(entry.getValue().getID()); - out.writeUTF(entry.getKey()); - out.writeRawTag(entry.getValue(), out.decrementMaxDepth(maxDepth)); - } - out.writeByte(0); - } - - public void writeTag(NamedTag tag, int maxDepth) throws IOException { - writeByte(tag.getTag().getID()); - if (tag.getTag().getID() != 0) { - writeUTF(tag.getName() == null ? "" : tag.getName()); - } - writeRawTag(tag.getTag(), maxDepth); - } - - public void writeTag(Tag tag, int maxDepth) throws IOException { - writeByte(tag.getID()); - if (tag.getID() != 0) { - writeUTF(""); - } - writeRawTag(tag, maxDepth); - } - - public void writeRawTag(Tag tag, int maxDepth) throws IOException { - ExceptionTriConsumer, Integer, IOException> f; - if ((f = writers.get(tag.getID())) == null) { - throw new IOException("invalid tag \"" + tag.getID() + "\""); - } - f.accept(this, tag, maxDepth); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/io/NBTSerializer.java b/core/src/main/java/com/volmit/iris/util/nbt/io/NBTSerializer.java deleted file mode 100644 index 95773380b..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/io/NBTSerializer.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 com.volmit.iris.util.nbt.io; - -import com.volmit.iris.engine.data.io.Serializer; -import com.volmit.iris.util.nbt.tag.Tag; - -import java.io.IOException; -import java.io.OutputStream; -import java.util.zip.GZIPOutputStream; - -public class NBTSerializer implements Serializer { - - private final boolean compressed; - - public NBTSerializer() { - this(true); - } - - public NBTSerializer(boolean compressed) { - this.compressed = compressed; - } - - @Override - public void toStream(NamedTag object, OutputStream out) throws IOException { - NBTOutputStream nbtOut; - if (compressed) { - nbtOut = new NBTOutputStream(new GZIPOutputStream(out, true)); - } else { - nbtOut = new NBTOutputStream(out); - } - nbtOut.writeTag(object, Tag.DEFAULT_MAX_DEPTH); - nbtOut.flush(); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/io/NBTUtil.java b/core/src/main/java/com/volmit/iris/util/nbt/io/NBTUtil.java deleted file mode 100644 index bbf5050d1..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/io/NBTUtil.java +++ /dev/null @@ -1,107 +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 com.volmit.iris.util.nbt.io; - -import com.volmit.iris.util.nbt.tag.Tag; - -import java.io.*; -import java.util.zip.GZIPInputStream; - -public final class NBTUtil { - - private NBTUtil() { - } - - public static void write(NamedTag tag, File file, boolean compressed) throws IOException { - try (FileOutputStream fos = new FileOutputStream(file)) { - new NBTSerializer(compressed).toStream(tag, fos); - } - } - - public static void write(NamedTag tag, OutputStream out, boolean compressed) throws IOException { - new NBTSerializer(compressed).toStream(tag, out); - } - - public static void write(Tag tag, OutputStream out, boolean compressed) throws IOException { - write(new NamedTag(null, tag), out, compressed); - } - - public static void write(NamedTag tag, String file, boolean compressed) throws IOException { - write(tag, new File(file), compressed); - } - - public static void write(NamedTag tag, File file) throws IOException { - write(tag, file, true); - } - - public static void write(NamedTag tag, String file) throws IOException { - write(tag, new File(file), true); - } - - public static void write(Tag tag, File file, boolean compressed) throws IOException { - write(new NamedTag(null, tag), file, compressed); - } - - public static void write(Tag tag, String file, boolean compressed) throws IOException { - write(new NamedTag(null, tag), new File(file), compressed); - } - - public static void write(Tag tag, File file) throws IOException { - write(new NamedTag(null, tag), file, true); - } - - public static void write(Tag tag, String file) throws IOException { - write(new NamedTag(null, tag), new File(file), true); - } - - public static NamedTag read(File file, boolean compressed) throws IOException { - try (FileInputStream fis = new FileInputStream(file)) { - return new NBTDeserializer(compressed).fromStream(fis); - } - } - - public static NamedTag read(InputStream in, boolean compressed) throws IOException { - return new NBTDeserializer(compressed).fromStream(in); - } - - public static NamedTag read(String file, boolean compressed) throws IOException { - return read(new File(file), compressed); - } - - public static NamedTag read(File file) throws IOException { - try (FileInputStream fis = new FileInputStream(file)) { - return new NBTDeserializer(false).fromStream(detectDecompression(fis)); - } - } - - public static NamedTag read(String file) throws IOException { - return read(new File(file)); - } - - private static InputStream detectDecompression(InputStream is) throws IOException { - PushbackInputStream pbis = new PushbackInputStream(is, 2); - int signature = (pbis.read() & 0xFF) + (pbis.read() << 8); - pbis.unread(signature >> 8); - pbis.unread(signature & 0xFF); - if (signature == GZIPInputStream.GZIP_MAGIC) { - return new GZIPInputStream(pbis); - } - return pbis; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/io/NamedTag.java b/core/src/main/java/com/volmit/iris/util/nbt/io/NamedTag.java deleted file mode 100644 index 904617a71..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/io/NamedTag.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 com.volmit.iris.util.nbt.io; - -import com.volmit.iris.util.nbt.tag.Tag; - -public class NamedTag { - - private String name; - private Tag tag; - - public NamedTag(String name, Tag tag) { - this.name = name; - this.tag = tag; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public Tag getTag() { - return tag; - } - - public void setTag(Tag tag) { - this.tag = tag; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/io/ParseException.java b/core/src/main/java/com/volmit/iris/util/nbt/io/ParseException.java deleted file mode 100644 index 5ffa564b8..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/io/ParseException.java +++ /dev/null @@ -1,43 +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 com.volmit.iris.util.nbt.io; - -import java.io.IOException; - -public class ParseException extends IOException { - - public ParseException(String msg) { - super(msg); - } - - public ParseException(String msg, String value, int index) { - super(msg + " at: " + formatError(value, index)); - } - - private static String formatError(String value, int index) { - StringBuilder builder = new StringBuilder(); - int i = Math.min(value.length(), index); - if (i > 35) { - builder.append("..."); - } - builder.append(value, Math.max(0, i - 35), i); - builder.append("<--[HERE]"); - return builder.toString(); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/io/SNBTDeserializer.java b/core/src/main/java/com/volmit/iris/util/nbt/io/SNBTDeserializer.java deleted file mode 100644 index 8bccdf57e..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/io/SNBTDeserializer.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 com.volmit.iris.util.nbt.io; - -import com.volmit.iris.engine.data.io.StringDeserializer; -import com.volmit.iris.util.nbt.tag.Tag; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.Reader; -import java.util.stream.Collectors; - -public class SNBTDeserializer implements StringDeserializer> { - - @Override - public Tag fromReader(Reader reader) throws IOException { - return fromReader(reader, Tag.DEFAULT_MAX_DEPTH); - } - - public Tag fromReader(Reader reader, int maxDepth) throws IOException { - BufferedReader bufferedReader; - if (reader instanceof BufferedReader) { - bufferedReader = (BufferedReader) reader; - } else { - bufferedReader = new BufferedReader(reader); - } - return SNBTParser.parse(bufferedReader.lines().collect(Collectors.joining()), maxDepth); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/io/SNBTParser.java b/core/src/main/java/com/volmit/iris/util/nbt/io/SNBTParser.java deleted file mode 100644 index 03124dc12..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/io/SNBTParser.java +++ /dev/null @@ -1,258 +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 com.volmit.iris.util.nbt.io; - -import com.volmit.iris.Iris; -import com.volmit.iris.engine.data.io.MaxDepthIO; -import com.volmit.iris.util.nbt.tag.*; - -import java.util.ArrayList; -import java.util.List; -import java.util.regex.Pattern; - -public final class SNBTParser implements MaxDepthIO { - - private static final Pattern - FLOAT_LITERAL_PATTERN = Pattern.compile("^[-+]?(?:\\d+\\.?|\\d*\\.\\d+)(?:e[-+]?\\d+)?f$", Pattern.CASE_INSENSITIVE), - DOUBLE_LITERAL_PATTERN = Pattern.compile("^[-+]?(?:\\d+\\.?|\\d*\\.\\d+)(?:e[-+]?\\d+)?d$", Pattern.CASE_INSENSITIVE), - DOUBLE_LITERAL_NO_SUFFIX_PATTERN = Pattern.compile("^[-+]?(?:\\d+\\.|\\d*\\.\\d+)(?:e[-+]?\\d+)?$", Pattern.CASE_INSENSITIVE), - BYTE_LITERAL_PATTERN = Pattern.compile("^[-+]?\\d+b$", Pattern.CASE_INSENSITIVE), - SHORT_LITERAL_PATTERN = Pattern.compile("^[-+]?\\d+s$", Pattern.CASE_INSENSITIVE), - INT_LITERAL_PATTERN = Pattern.compile("^[-+]?\\d+$", Pattern.CASE_INSENSITIVE), - LONG_LITERAL_PATTERN = Pattern.compile("^[-+]?\\d+l$", Pattern.CASE_INSENSITIVE), - NUMBER_PATTERN = Pattern.compile("^[-+]?\\d+$"); - - private final StringPointer ptr; - - private SNBTParser(String string) { - this.ptr = new StringPointer(string); - } - - public static Tag parse(String string, int maxDepth) throws ParseException { - SNBTParser parser = new SNBTParser(string); - Tag tag = parser.parseAnything(maxDepth); - parser.ptr.skipWhitespace(); - if (parser.ptr.hasNext()) { - throw parser.ptr.parseException("invalid characters after end of snbt"); - } - return tag; - } - - public static Tag parse(String string) throws ParseException { - return parse(string, Tag.DEFAULT_MAX_DEPTH); - } - - private Tag parseAnything(int maxDepth) throws ParseException { - ptr.skipWhitespace(); - switch (ptr.currentChar()) { - case '{': - return parseCompoundTag(maxDepth); - case '[': - if (ptr.hasCharsLeft(2) && ptr.lookAhead(1) != '"' && ptr.lookAhead(2) == ';') { - return parseNumArray(); - } - return parseListTag(maxDepth); - } - return parseStringOrLiteral(); - } - - private Tag parseStringOrLiteral() throws ParseException { - ptr.skipWhitespace(); - if (ptr.currentChar() == '"') { - return new StringTag(ptr.parseQuotedString()); - } - String s = ptr.parseSimpleString(); - if (s.isEmpty()) { - throw new ParseException("expected non empty value"); - } - if (FLOAT_LITERAL_PATTERN.matcher(s).matches()) { - return new FloatTag(Float.parseFloat(s.substring(0, s.length() - 1))); - } else if (BYTE_LITERAL_PATTERN.matcher(s).matches()) { - try { - return new ByteTag(Byte.parseByte(s.substring(0, s.length() - 1))); - } catch (NumberFormatException ex) { - Iris.reportError(ex); - throw ptr.parseException("byte not in range: \"" + s.substring(0, s.length() - 1) + "\""); - } - } else if (SHORT_LITERAL_PATTERN.matcher(s).matches()) { - try { - return new ShortTag(Short.parseShort(s.substring(0, s.length() - 1))); - } catch (NumberFormatException ex) { - Iris.reportError(ex); - throw ptr.parseException("short not in range: \"" + s.substring(0, s.length() - 1) + "\""); - } - } else if (LONG_LITERAL_PATTERN.matcher(s).matches()) { - try { - return new LongTag(Long.parseLong(s.substring(0, s.length() - 1))); - } catch (NumberFormatException ex) { - Iris.reportError(ex); - throw ptr.parseException("long not in range: \"" + s.substring(0, s.length() - 1) + "\""); - } - } else if (INT_LITERAL_PATTERN.matcher(s).matches()) { - try { - return new IntTag(Integer.parseInt(s)); - } catch (NumberFormatException ex) { - Iris.reportError(ex); - throw ptr.parseException("int not in range: \"" + s.substring(0, s.length() - 1) + "\""); - } - } else if (DOUBLE_LITERAL_PATTERN.matcher(s).matches()) { - return new DoubleTag(Double.parseDouble(s.substring(0, s.length() - 1))); - } else if (DOUBLE_LITERAL_NO_SUFFIX_PATTERN.matcher(s).matches()) { - return new DoubleTag(Double.parseDouble(s)); - } else if ("true".equalsIgnoreCase(s)) { - return new ByteTag(true); - } else if ("false".equalsIgnoreCase(s)) { - return new ByteTag(false); - } - return new StringTag(s); - } - - private CompoundTag parseCompoundTag(int maxDepth) throws ParseException { - ptr.expectChar('{'); - - CompoundTag compoundTag = new CompoundTag(); - - ptr.skipWhitespace(); - while (ptr.hasNext() && ptr.currentChar() != '}') { - ptr.skipWhitespace(); - String key = ptr.currentChar() == '"' ? ptr.parseQuotedString() : ptr.parseSimpleString(); - if (key.isEmpty()) { - throw new ParseException("empty keys are not allowed"); - } - ptr.expectChar(':'); - - compoundTag.put(key, parseAnything(decrementMaxDepth(maxDepth))); - - if (!ptr.nextArrayElement()) { - break; - } - } - ptr.expectChar('}'); - return compoundTag; - } - - private ListTag parseListTag(int maxDepth) throws ParseException { - ptr.expectChar('['); - ptr.skipWhitespace(); - ListTag list = ListTag.createUnchecked(EndTag.class); - while (ptr.currentChar() != ']') { - Tag element = parseAnything(decrementMaxDepth(maxDepth)); - try { - list.addUnchecked(element); - } catch (IllegalArgumentException ex) { - Iris.reportError(ex); - throw ptr.parseException(ex.getMessage()); - } - if (!ptr.nextArrayElement()) { - break; - } - } - ptr.expectChar(']'); - return list; - } - - private ArrayTag parseNumArray() throws ParseException { - ptr.expectChar('['); - char arrayType = ptr.next(); - ptr.expectChar(';'); - ptr.skipWhitespace(); - switch (arrayType) { - case 'B': - return parseByteArrayTag(); - case 'I': - return parseIntArrayTag(); - case 'L': - return parseLongArrayTag(); - } - throw new ParseException("invalid array type '" + arrayType + "'"); - } - - private ByteArrayTag parseByteArrayTag() throws ParseException { - List byteList = new ArrayList<>(); - while (ptr.currentChar() != ']') { - String s = ptr.parseSimpleString(); - ptr.skipWhitespace(); - if (NUMBER_PATTERN.matcher(s).matches()) { - try { - byteList.add(Byte.parseByte(s)); - } catch (NumberFormatException ex) { - Iris.reportError(ex); - throw ptr.parseException("byte not in range: \"" + s + "\""); - } - } else { - throw ptr.parseException("invalid byte in ByteArrayTag: \"" + s + "\""); - } - if (!ptr.nextArrayElement()) { - break; - } - } - ptr.expectChar(']'); - byte[] bytes = new byte[byteList.size()]; - for (int i = 0; i < byteList.size(); i++) { - bytes[i] = byteList.get(i); - } - return new ByteArrayTag(bytes); - } - - private IntArrayTag parseIntArrayTag() throws ParseException { - List intList = new ArrayList<>(); - while (ptr.currentChar() != ']') { - String s = ptr.parseSimpleString(); - ptr.skipWhitespace(); - if (NUMBER_PATTERN.matcher(s).matches()) { - try { - intList.add(Integer.parseInt(s)); - } catch (NumberFormatException ex) { - Iris.reportError(ex); - throw ptr.parseException("int not in range: \"" + s + "\""); - } - } else { - throw ptr.parseException("invalid int in IntArrayTag: \"" + s + "\""); - } - if (!ptr.nextArrayElement()) { - break; - } - } - ptr.expectChar(']'); - return new IntArrayTag(intList.stream().mapToInt(i -> i).toArray()); - } - - private LongArrayTag parseLongArrayTag() throws ParseException { - List longList = new ArrayList<>(); - while (ptr.currentChar() != ']') { - String s = ptr.parseSimpleString(); - ptr.skipWhitespace(); - if (NUMBER_PATTERN.matcher(s).matches()) { - try { - longList.add(Long.parseLong(s)); - } catch (NumberFormatException ex) { - Iris.reportError(ex); - throw ptr.parseException("long not in range: \"" + s + "\""); - } - } else { - throw ptr.parseException("invalid long in LongArrayTag: \"" + s + "\""); - } - if (!ptr.nextArrayElement()) { - break; - } - } - ptr.expectChar(']'); - return new LongArrayTag(longList.stream().mapToLong(l -> l).toArray()); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/io/SNBTSerializer.java b/core/src/main/java/com/volmit/iris/util/nbt/io/SNBTSerializer.java deleted file mode 100644 index 0ae5250e7..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/io/SNBTSerializer.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 com.volmit.iris.util.nbt.io; - -import com.volmit.iris.engine.data.io.StringSerializer; -import com.volmit.iris.util.nbt.tag.Tag; - -import java.io.IOException; -import java.io.Writer; - -public class SNBTSerializer implements StringSerializer> { - - @Override - public void toWriter(Tag tag, Writer writer) throws IOException { - SNBTWriter.write(tag, writer); - } - - public void toWriter(Tag tag, Writer writer, int maxDepth) throws IOException { - SNBTWriter.write(tag, writer, maxDepth); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/io/SNBTUtil.java b/core/src/main/java/com/volmit/iris/util/nbt/io/SNBTUtil.java deleted file mode 100644 index 250b8781f..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/io/SNBTUtil.java +++ /dev/null @@ -1,34 +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 com.volmit.iris.util.nbt.io; - -import com.volmit.iris.util.nbt.tag.Tag; - -import java.io.IOException; - -public class SNBTUtil { - - public static String toSNBT(Tag tag) throws IOException { - return new SNBTSerializer().toString(tag); - } - - public static Tag fromSNBT(String string) throws IOException { - return new SNBTDeserializer().fromString(string); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/io/SNBTWriter.java b/core/src/main/java/com/volmit/iris/util/nbt/io/SNBTWriter.java deleted file mode 100644 index adcf5a429..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/io/SNBTWriter.java +++ /dev/null @@ -1,135 +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 com.volmit.iris.util.nbt.io; - -import com.volmit.iris.engine.data.io.MaxDepthIO; -import com.volmit.iris.util.nbt.tag.*; - -import java.io.IOException; -import java.io.Writer; -import java.lang.reflect.Array; -import java.util.Map; -import java.util.regex.Pattern; - -/** - * SNBTWriter creates an SNBT String. - */ -@SuppressWarnings("ClassCanBeRecord") -public final class SNBTWriter implements MaxDepthIO { - - private static final Pattern NON_QUOTE_PATTERN = Pattern.compile("[a-zA-Z_.+\\-]+"); - - private final Writer writer; - - private SNBTWriter(Writer writer) { - this.writer = writer; - } - - public static void write(Tag tag, Writer writer, int maxDepth) throws IOException { - new SNBTWriter(writer).writeAnything(tag, maxDepth); - } - - public static void write(Tag tag, Writer writer) throws IOException { - write(tag, writer, Tag.DEFAULT_MAX_DEPTH); - } - - public static String escapeString(String s) { - if (!NON_QUOTE_PATTERN.matcher(s).matches()) { - StringBuilder sb = new StringBuilder(); - sb.append('"'); - for (int i = 0; i < s.length(); i++) { - char c = s.charAt(i); - if (c == '\\' || c == '"') { - sb.append('\\'); - } - sb.append(c); - } - sb.append('"'); - return sb.toString(); - } - return s; - } - - private void writeAnything(Tag tag, int maxDepth) throws IOException { - switch (tag.getID()) { - case EndTag.ID: - //do nothing - break; - case ByteTag.ID: - writer.append(Byte.toString(((ByteTag) tag).asByte())).write('b'); - break; - case ShortTag.ID: - writer.append(Short.toString(((ShortTag) tag).asShort())).write('s'); - break; - case IntTag.ID: - writer.write(Integer.toString(((IntTag) tag).asInt())); - break; - case LongTag.ID: - writer.append(Long.toString(((LongTag) tag).asLong())).write('l'); - break; - case FloatTag.ID: - writer.append(Float.toString(((FloatTag) tag).asFloat())).write('f'); - break; - case DoubleTag.ID: - writer.append(Double.toString(((DoubleTag) tag).asDouble())).write('d'); - break; - case ByteArrayTag.ID: - writeArray(((ByteArrayTag) tag).getValue(), ((ByteArrayTag) tag).length(), "B"); - break; - case StringTag.ID: - writer.write(escapeString(((StringTag) tag).getValue())); - break; - case ListTag.ID: - writer.write('['); - for (int i = 0; i < ((ListTag) tag).size(); i++) { - writer.write(i == 0 ? "" : ","); - writeAnything(((ListTag) tag).get(i), decrementMaxDepth(maxDepth)); - } - writer.write(']'); - break; - case CompoundTag.ID: - writer.write('{'); - boolean first = true; - for (Map.Entry> entry : (CompoundTag) tag) { - writer.write(first ? "" : ","); - writer.append(escapeString(entry.getKey())).write(':'); - writeAnything(entry.getValue(), decrementMaxDepth(maxDepth)); - first = false; - } - writer.write('}'); - break; - case IntArrayTag.ID: - writeArray(((IntArrayTag) tag).getValue(), ((IntArrayTag) tag).length(), "I"); - break; - case LongArrayTag.ID: - writeArray(((LongArrayTag) tag).getValue(), ((LongArrayTag) tag).length(), "L"); - break; - default: - throw new IOException("unknown tag with id \"" + tag.getID() + "\""); - } - } - - private void writeArray(Object array, int length, String prefix) throws IOException { - writer.append('[').append(prefix).write(';'); - for (int i = 0; i < length; i++) { - writer.append(i == 0 ? "" : ",").write(Array.get(array, i).toString()); - } - writer.write(']'); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/io/StringPointer.java b/core/src/main/java/com/volmit/iris/util/nbt/io/StringPointer.java deleted file mode 100644 index 539b1d477..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/io/StringPointer.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 com.volmit.iris.util.nbt.io; - -public class StringPointer { - - private final String value; - private int index; - - public StringPointer(String value) { - this.value = value; - } - - private static boolean isSimpleChar(char c) { - return c >= 'a' && c <= 'z' - || c >= 'A' && c <= 'Z' - || c >= '0' && c <= '9' - || c == '-' - || c == '+' - || c == '.' - || c == '_'; - } - - public String parseSimpleString() { - int oldIndex = index; - while (hasNext() && isSimpleChar(currentChar())) { - index++; - } - return value.substring(oldIndex, index); - } - - public String parseQuotedString() throws ParseException { - int oldIndex = ++index; //ignore beginning quotes - StringBuilder sb = null; - boolean escape = false; - while (hasNext()) { - char c = next(); - if (escape) { - if (c != '\\' && c != '"') { - throw parseException("invalid escape of '" + c + "'"); - } - escape = false; - } else { - if (c == '\\') { //escape - escape = true; - if (sb != null) { - continue; - } - sb = new StringBuilder(value.substring(oldIndex, index - 1)); - continue; - } - if (c == '"') { - return sb == null ? value.substring(oldIndex, index - 1) : sb.toString(); - } - } - if (sb != null) { - sb.append(c); - } - } - throw parseException("missing end quote"); - } - - @SuppressWarnings("BooleanMethodIsAlwaysInverted") - public boolean nextArrayElement() { - skipWhitespace(); - if (hasNext() && currentChar() == ',') { - index++; - skipWhitespace(); - return true; - } - return false; - } - - public void expectChar(char c) throws ParseException { - skipWhitespace(); - boolean hasNext = hasNext(); - if (hasNext && currentChar() == c) { - index++; - return; - } - throw parseException("expected '" + c + "' but got " + (hasNext ? "'" + currentChar() + "'" : "EOF")); - } - - public void skipWhitespace() { - while (hasNext() && Character.isWhitespace(currentChar())) { - index++; - } - } - - public boolean hasNext() { - return index < value.length(); - } - - public boolean hasCharsLeft(int num) { - return this.index + num < value.length(); - } - - public char currentChar() { - return value.charAt(index); - } - - public char next() { - return value.charAt(index++); - } - - public void skip(int offset) { - index += offset; - } - - public char lookAhead(int offset) { - return value.charAt(index + offset); - } - - public ParseException parseException(String msg) { - return new ParseException(msg, value, index); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/mca/Chunk.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/Chunk.java deleted file mode 100644 index f74cdcf7f..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/mca/Chunk.java +++ /dev/null @@ -1,622 +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 com.volmit.iris.util.nbt.mca; - -import com.volmit.iris.Iris; -import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.nbt.io.NBTDeserializer; -import com.volmit.iris.util.nbt.io.NBTSerializer; -import com.volmit.iris.util.nbt.io.NamedTag; -import com.volmit.iris.util.nbt.mca.palette.MCABiomeContainer; -import com.volmit.iris.util.nbt.tag.CompoundTag; -import com.volmit.iris.util.nbt.tag.ListTag; -import org.bukkit.World; - -import java.io.*; - -import static com.volmit.iris.util.nbt.mca.LoadFlags.*; -import static org.bukkit.Bukkit.getServer; - -public class Chunk { - public static final int DEFAULT_DATA_VERSION = 2730; - private final KMap sections = new KMap<>(); - private boolean partial; - private int lastMCAUpdate; - private CompoundTag data; - private int dataVersion; - private int nativeIrisVersion; - private long lastUpdate; - private long inhabitedTime; - private MCABiomeContainer biomes; - private CompoundTag heightMaps; - private CompoundTag carvingMasks; - private ListTag entities; - private ListTag tileEntities; - private ListTag tileTicks; - private ListTag liquidTicks; - private ListTag> lights; - private ListTag> liquidsToBeTicked; - private ListTag> toBeTicked; - private ListTag> postProcessing; - private String status; - private CompoundTag structures; - - Chunk(int lastMCAUpdate) { - this.lastMCAUpdate = lastMCAUpdate; - } - - /** - * Create a new chunk based on raw base data from a region file. - * - * @param data The raw base data to be used. - */ - public Chunk(CompoundTag data) { - this.data = data; - initReferences(ALL_DATA); - setStatus("full"); - } - - public static Chunk newChunk() { - World mainWorld = getServer().getWorlds().get(0); - Chunk c = new Chunk(0); - c.dataVersion = DEFAULT_DATA_VERSION; - c.data = new CompoundTag(); - c.biomes = INMS.get().newBiomeContainer(mainWorld.getMinHeight(), mainWorld.getMaxHeight()); - c.data.put("Level", defaultLevel()); - c.status = "full"; - return c; - } - - public static void injectIrisData(Chunk c) { - World mainWorld = getServer().getWorlds().get(0); - c.data.put("Iris", nativeIrisVersion()); - } - - private static CompoundTag defaultLevel() { - CompoundTag level = new CompoundTag(); - level.putString("Status", "full"); - level.putString("Generator", "Iris Headless " + Iris.instance.getDescription().getVersion()); - return level; - } - - private static CompoundTag nativeIrisVersion() { - CompoundTag level = new CompoundTag(); - level.putString("Generator", "Iris " + Iris.instance.getDescription().getVersion()); - return level; - } - - private void initReferences(long loadFlags) { - if (data == null) { - throw new NullPointerException("data cannot be null"); - } - - CompoundTag level = data; - - World mainWorld = getServer().getWorlds().get(0); - dataVersion = data.getInt("DataVersion"); - inhabitedTime = level.getLong("InhabitedTime"); - lastUpdate = level.getLong("LastUpdate"); - if ((loadFlags & BIOMES) != 0) { - biomes = INMS.get().newBiomeContainer(mainWorld.getMinHeight(), mainWorld.getMaxHeight(), level.getIntArray("Biomes")); - } - if ((loadFlags & HEIGHTMAPS) != 0) { - heightMaps = level.getCompoundTag("Heightmaps"); - } - if ((loadFlags & CARVING_MASKS) != 0) { - carvingMasks = level.getCompoundTag("CarvingMasks"); - } - if ((loadFlags & ENTITIES) != 0) { - entities = level.containsKey("Entities") ? level.getListTag("Entities").asCompoundTagList() : null; - } - if ((loadFlags & TILE_ENTITIES) != 0) { - tileEntities = level.containsKey("TileEntities") ? level.getListTag("TileEntities").asCompoundTagList() : null; - } - if ((loadFlags & TILE_TICKS) != 0) { - tileTicks = level.containsKey("TileTicks") ? level.getListTag("TileTicks").asCompoundTagList() : null; - } - if ((loadFlags & LIQUID_TICKS) != 0) { - liquidTicks = level.containsKey("LiquidTicks") ? level.getListTag("LiquidTicks").asCompoundTagList() : null; - } - if ((loadFlags & LIGHTS) != 0) { - lights = level.containsKey("Lights") ? level.getListTag("Lights").asListTagList() : null; - } - if ((loadFlags & LIQUIDS_TO_BE_TICKED) != 0) { - liquidsToBeTicked = level.containsKey("LiquidsToBeTicked") ? level.getListTag("LiquidsToBeTicked").asListTagList() : null; - } - if ((loadFlags & TO_BE_TICKED) != 0) { - toBeTicked = level.containsKey("ToBeTicked") ? level.getListTag("ToBeTicked").asListTagList() : null; - } - if ((loadFlags & POST_PROCESSING) != 0) { - postProcessing = level.containsKey("PostProcessing") ? level.getListTag("PostProcessing").asListTagList() : null; - } - status = level.getString("Status"); - if ((loadFlags & STRUCTURES) != 0) { - structures = level.getCompoundTag("Structures"); - } - if ((loadFlags & (BLOCK_LIGHTS | BLOCK_STATES | SKY_LIGHT)) != 0 && level.containsKey("Sections")) { - for (CompoundTag section : level.getListTag("Sections").asCompoundTagList()) { - int sectionIndex = section.getByte("Y"); - if (sectionIndex > 15 || sectionIndex < 0) { - continue; - } - Section newSection = new Section(section, dataVersion, loadFlags); - if (newSection.isEmpty()) { - continue; - } - sections.put(sectionIndex, newSection); - } - } - - // If we haven't requested the full set of data we can drop the underlying raw data to let the GC handle it. - if (loadFlags != ALL_DATA) { - data = null; - partial = true; - } else { - partial = false; - } - } - - /** - * Serializes this chunk to a RandomAccessFile. - * - * @param raf The RandomAccessFile to be written to. - * @param xPos The x-coordinate of the chunk. - * @param zPos The z-coodrinate of the chunk. - * @return The amount of bytes written to the RandomAccessFile. - * @throws UnsupportedOperationException When something went wrong during writing. - * @throws IOException When something went wrong during writing. - */ - public int serialize(RandomAccessFile raf, int xPos, int zPos) throws IOException { - if (partial) { - throw new UnsupportedOperationException("Partially loaded chunks cannot be serialized"); - } - ByteArrayOutputStream baos = new ByteArrayOutputStream(4096); - try (BufferedOutputStream nbtOut = new BufferedOutputStream(CompressionType.ZLIB.compress(baos))) { - new NBTSerializer(false).toStream(new NamedTag(null, updateHandle(xPos, zPos)), nbtOut); - } - - byte[] rawData = baos.toByteArray(); - raf.writeInt(rawData.length + 1); // including the byte to store the compression type - raf.writeByte(CompressionType.ZLIB.getID()); - raf.write(rawData); - return rawData.length + 5; - } - - /** - * Reads chunk data from a RandomAccessFile. The RandomAccessFile must already be at the correct position. - * - * @param raf The RandomAccessFile to read the chunk data from. - * @throws IOException When something went wrong during reading. - */ - public void deserialize(RandomAccessFile raf) throws IOException { - deserialize(raf, ALL_DATA); - } - - /** - * Reads chunk data from a RandomAccessFile. The RandomAccessFile must already be at the correct position. - * - * @param raf The RandomAccessFile to read the chunk data from. - * @param loadFlags A logical or of {@link LoadFlags} constants indicating what data should be loaded - * @throws IOException When something went wrong during reading. - */ - public void deserialize(RandomAccessFile raf, long loadFlags) throws IOException { - byte compressionTypeByte = raf.readByte(); - CompressionType compressionType = CompressionType.getFromID(compressionTypeByte); - if (compressionType == null) { - throw new IOException("invalid compression type " + compressionTypeByte); - } - BufferedInputStream dis = new BufferedInputStream(compressionType.decompress(new FileInputStream(raf.getFD()))); - NamedTag tag = new NBTDeserializer(false).fromStream(dis); - if (tag != null && tag.getTag() instanceof CompoundTag) { - data = (CompoundTag) tag.getTag(); - initReferences(loadFlags); - } else { - throw new IOException("invalid data tag: " + (tag == null ? "null" : tag.getClass().getName())); - } - } - - /** - * Fetches a biome id at a specific block in this chunk. - * The coordinates can be absolute coordinates or relative to the region or chunk. - * - * @param blockX The x-coordinate of the block. - * @param blockY The y-coordinate of the block. - * @param blockZ The z-coordinate of the block. - * @return The biome id or -1 if the biomes are not correctly initialized. - */ - public synchronized int getBiomeAt(int blockX, int blockY, int blockZ) { - return biomes.getBiome(blockX, blockY, blockZ); - } - - /** - * Sets a biome id at a specific block column. - * The coordinates can be absolute coordinates or relative to the region or chunk. - * - * @param blockX The x-coordinate of the block column. - * @param blockZ The z-coordinate of the block column. - * @param biomeID The biome id to be set. - * When set to a negative number, Minecraft will replace it with the block column's default biome. - */ - public synchronized void setBiomeAt(int blockX, int blockY, int blockZ, int biomeID) { - biomes.setBiome(blockX, blockY, blockZ, biomeID); - } - - int getBiomeIndex(int biomeX, int biomeY, int biomeZ) { - return biomeY * 64 + biomeZ * 4 + biomeX; - } - - public CompoundTag getBlockStateAt(int blockX, int blockY, int blockZ) { - int s = MCAUtil.blockToChunk(blockY); - - Section section = sections.get(s); - if (section == null) { - return null; - } - return section.getBlockStateAt(blockX, blockY, blockZ); - } - - /** - * Sets a block state at a specific location. - * The block coordinates can be absolute or relative to the region or chunk. - * - * @param blockX The x-coordinate of the block. - * @param blockY The y-coordinate of the block. - * @param blockZ The z-coordinate of the block. - * @param state The block state to be set. - * @param cleanup When true, it will cleanup all palettes of this chunk. - * This option should only be used moderately to avoid unnecessary recalculation of the palette indices. - * Recalculating the Palette should only be executed once right before saving the Chunk to file. - */ - public void setBlockStateAt(int blockX, int blockY, int blockZ, CompoundTag state, boolean cleanup) { - int sectionIndex = MCAUtil.blockToChunk(blockY); - - Section section = sections.get(sectionIndex); - if (section == null) { - section = Section.newSection(); - sections.put(sectionIndex, section); - } - section.setBlockStateAt(blockX, blockY, blockZ, state, cleanup); - } - - /** - * @return The DataVersion of this chunk. - */ - public int getDataVersion() { - return dataVersion; - } - - /** - * Sets the DataVersion of this chunk. This does not check if the data of this chunk conforms - * to that DataVersion, that is the responsibility of the developer. - * - * @param dataVersion The DataVersion to be set. - */ - public void setDataVersion(int dataVersion) { - this.dataVersion = dataVersion; - } - - /** - * @return The timestamp when this region file was last updated in seconds since 1970-01-01. - */ - public int getLastMCAUpdate() { - return lastMCAUpdate; - } - - /** - * Sets the timestamp when this region file was last updated in seconds since 1970-01-01. - * - * @param lastMCAUpdate The time in seconds since 1970-01-01. - */ - public void setLastMCAUpdate(int lastMCAUpdate) { - this.lastMCAUpdate = lastMCAUpdate; - } - - /** - * @return The generation station of this chunk. - */ - public String getStatus() { - return status; - } - - /** - * Sets the generation status of this chunk. - * - * @param status The generation status of this chunk. - */ - public void setStatus(String status) { - this.status = status; - } - - /** - * Fetches the section at the given y-coordinate. - * - * @param sectionY The y-coordinate of the section in this chunk ranging from 0 to 15. - * @return The Section. - */ - public Section getSection(int sectionY) { - return sections.get(sectionY); - } - - /** - * Sets a section at a givesn y-coordinate - * - * @param sectionY The y-coordinate of the section in this chunk ranging from 0 to 15. - * @param section The section to be set. - */ - public void setSection(int sectionY, Section section) { - sections.put(sectionY, section); - } - - /** - * @return The timestamp when this chunk was last updated as a UNIX timestamp. - */ - public long getLastUpdate() { - return lastUpdate; - } - - /** - * Sets the time when this chunk was last updated as a UNIX timestamp. - * - * @param lastUpdate The UNIX timestamp. - */ - public void setLastUpdate(long lastUpdate) { - this.lastUpdate = lastUpdate; - } - - /** - * @return The cumulative amount of time players have spent in this chunk in ticks. - */ - public long getInhabitedTime() { - return inhabitedTime; - } - - /** - * Sets the cumulative amount of time players have spent in this chunk in ticks. - * - * @param inhabitedTime The time in ticks. - */ - public void setInhabitedTime(long inhabitedTime) { - this.inhabitedTime = inhabitedTime; - } - - /** - * @return The height maps of this chunk. - */ - public CompoundTag getHeightMaps() { - return heightMaps; - } - - /** - * Sets the height maps of this chunk. - * - * @param heightMaps The height maps. - */ - public void setHeightMaps(CompoundTag heightMaps) { - this.heightMaps = heightMaps; - } - - /** - * @return The carving masks of this chunk. - */ - public CompoundTag getCarvingMasks() { - return carvingMasks; - } - - /** - * Sets the carving masks of this chunk. - * - * @param carvingMasks The carving masks. - */ - public void setCarvingMasks(CompoundTag carvingMasks) { - this.carvingMasks = carvingMasks; - } - - /** - * @return The entities of this chunk. - */ - public ListTag getEntities() { - return entities; - } - - /** - * Sets the entities of this chunk. - * - * @param entities The entities. - */ - public void setEntities(ListTag entities) { - this.entities = entities; - } - - /** - * @return The tile entities of this chunk. - */ - public ListTag getTileEntities() { - return tileEntities; - } - - /** - * Sets the tile entities of this chunk. - * - * @param tileEntities The tile entities of this chunk. - */ - public void setTileEntities(ListTag tileEntities) { - this.tileEntities = tileEntities; - } - - /** - * @return The tile ticks of this chunk. - */ - public ListTag getTileTicks() { - return tileTicks; - } - - /** - * Sets the tile ticks of this chunk. - * - * @param tileTicks Thee tile ticks. - */ - public void setTileTicks(ListTag tileTicks) { - this.tileTicks = tileTicks; - } - - /** - * @return The liquid ticks of this chunk. - */ - public ListTag getLiquidTicks() { - return liquidTicks; - } - - /** - * Sets the liquid ticks of this chunk. - * - * @param liquidTicks The liquid ticks. - */ - public void setLiquidTicks(ListTag liquidTicks) { - this.liquidTicks = liquidTicks; - } - - /** - * @return The light sources in this chunk. - */ - public ListTag> getLights() { - return lights; - } - - /** - * Sets the light sources in this chunk. - * - * @param lights The light sources. - */ - public void setLights(ListTag> lights) { - this.lights = lights; - } - - /** - * @return THe liquids to be ticked in this chunk. - */ - public ListTag> getLiquidsToBeTicked() { - return liquidsToBeTicked; - } - - /** - * Sets the liquids to be ticked in this chunk. - * - * @param liquidsToBeTicked The liquids to be ticked. - */ - public void setLiquidsToBeTicked(ListTag> liquidsToBeTicked) { - this.liquidsToBeTicked = liquidsToBeTicked; - } - - /** - * @return Stuff to be ticked in this chunk. - */ - public ListTag> getToBeTicked() { - return toBeTicked; - } - - /** - * Sets stuff to be ticked in this chunk. - * - * @param toBeTicked The stuff to be ticked. - */ - public void setToBeTicked(ListTag> toBeTicked) { - this.toBeTicked = toBeTicked; - } - - /** - * @return Things that are in post processing in this chunk. - */ - public ListTag> getPostProcessing() { - return postProcessing; - } - - /** - * Sets things to be post processed in this chunk. - * - * @param postProcessing The things to be post processed. - */ - public void setPostProcessing(ListTag> postProcessing) { - this.postProcessing = postProcessing; - } - - /** - * @return Data about structures in this chunk. - */ - public CompoundTag getStructures() { - return structures; - } - - /** - * Sets data about structures in this chunk. - * - * @param structures The data about structures. - */ - public void setStructures(CompoundTag structures) { - this.structures = structures; - } - - int getBlockIndex(int blockX, int blockZ) { - return (blockZ & 0xF) * 16 + (blockX & 0xF); - } - - public void cleanupPalettesAndBlockStates() { - for (Section section : sections.values()) { - if (section != null) { - section.cleanupPaletteAndBlockStates(); - } - } - } - - public CompoundTag updateHandle(int xPos, int zPos) { - data.putInt("DataVersion", dataVersion); - CompoundTag level = data.getCompoundTag("Level"); - level.putInt("xPos", xPos); - level.putInt("zPos", zPos); - level.putLong("LastUpdate", lastUpdate); - level.putLong("InhabitedTime", inhabitedTime); - level.putIntArray("Biomes", biomes.getData()); - if (heightMaps != null) level.put("Heightmaps", heightMaps); - if (carvingMasks != null) level.put("CarvingMasks", carvingMasks); - if (entities != null) level.put("Entities", entities); - if (tileEntities != null) level.put("TileEntities", tileEntities); - if (tileTicks != null) level.put("TileTicks", tileTicks); - if (liquidTicks != null) level.put("LiquidTicks", liquidTicks); - if (lights != null) level.put("Lights", lights); - if (liquidsToBeTicked != null) level.put("LiquidsToBeTicked", liquidsToBeTicked); - if (toBeTicked != null) level.put("ToBeTicked", toBeTicked); - if (postProcessing != null) level.put("PostProcessing", postProcessing); - level.putString("Status", status); - if (structures != null) level.put("Structures", structures); - ListTag sections = new ListTag<>(CompoundTag.class); - - for (int i : this.sections.keySet()) { - if (this.sections.get(i) != null) { - sections.add(this.sections.get(i).updateHandle(i)); - } - } - - level.put("Sections", sections); - return data; - } - - public int sectionCount() { - return sections.size(); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/mca/CompressionType.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/CompressionType.java deleted file mode 100644 index 083561581..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/mca/CompressionType.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 com.volmit.iris.util.nbt.mca; - -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.util.zip.DeflaterOutputStream; -import java.util.zip.GZIPInputStream; -import java.util.zip.GZIPOutputStream; -import java.util.zip.InflaterInputStream; - -public enum CompressionType { - - NONE(0, t -> t, t -> t), - GZIP(1, GZIPOutputStream::new, GZIPInputStream::new), - ZLIB(2, DeflaterOutputStream::new, InflaterInputStream::new); - - private final byte id; - private final ExceptionFunction compressor; - private final ExceptionFunction decompressor; - - CompressionType(int id, - ExceptionFunction compressor, - ExceptionFunction decompressor) { - this.id = (byte) id; - this.compressor = compressor; - this.decompressor = decompressor; - } - - public static CompressionType getFromID(byte id) { - for (CompressionType c : CompressionType.values()) { - if (c.id == id) { - return c; - } - } - return null; - } - - public byte getID() { - return id; - } - - public OutputStream compress(OutputStream out) throws IOException { - return compressor.accept(out); - } - - public InputStream decompress(InputStream in) throws IOException { - return decompressor.accept(in); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/mca/ExceptionFunction.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/ExceptionFunction.java deleted file mode 100644 index 3138bc33d..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/mca/ExceptionFunction.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 com.volmit.iris.util.nbt.mca; - -@FunctionalInterface -public interface ExceptionFunction { - - R accept(T t) throws E; -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/mca/LoadFlags.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/LoadFlags.java deleted file mode 100644 index 234c6156d..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/mca/LoadFlags.java +++ /dev/null @@ -1,42 +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 com.volmit.iris.util.nbt.mca; - -public class LoadFlags { - - public static final long BIOMES = 0x0001; - public static final long HEIGHTMAPS = 0x0002; - public static final long CARVING_MASKS = 0x0004; - public static final long ENTITIES = 0x0008; - public static final long TILE_ENTITIES = 0x0010; - public static final long TILE_TICKS = 0x0040; - public static final long LIQUID_TICKS = 0x0080; - public static final long TO_BE_TICKED = 0x0100; - public static final long POST_PROCESSING = 0x0200; - public static final long STRUCTURES = 0x0400; - public static final long BLOCK_LIGHTS = 0x0800; - public static final long BLOCK_STATES = 0x1000; - public static final long SKY_LIGHT = 0x2000; - public static final long LIGHTS = 0x4000; - public static final long LIQUIDS_TO_BE_TICKED = 0x8000; - - public static final long ALL_DATA = 0xffffffffffffffffL; - - -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/mca/MCAFile.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/MCAFile.java deleted file mode 100644 index 47a878b90..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/mca/MCAFile.java +++ /dev/null @@ -1,342 +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 com.volmit.iris.util.nbt.mca; - -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.math.Position2; -import com.volmit.iris.util.nbt.tag.CompoundTag; -import com.volmit.iris.util.scheduling.J; - -import java.io.IOException; -import java.io.RandomAccessFile; -import java.util.concurrent.ConcurrentLinkedQueue; -import java.util.concurrent.atomic.AtomicReferenceArray; - -@SuppressWarnings("ALL") -public class MCAFile { - - /** - * The default chunk data version used when no custom version is supplied. - */ - public static final int DEFAULT_DATA_VERSION = 1628; - - private final int regionX; - private final int regionZ; - private AtomicReferenceArray chunks; - private ConcurrentLinkedQueue afterSave; - - /** - * MCAFile represents a world save file used by Minecraft to store world - * data on the hard drive. - * This constructor needs the x- and z-coordinates of the stored region, - * which can usually be taken from the file name {@code r.x.z.mca} - * - * @param regionX The x-coordinate of this region. - * @param regionZ The z-coordinate of this region. - */ - public MCAFile(int regionX, int regionZ) { - this.regionX = regionX; - this.regionZ = regionZ; - afterSave = new ConcurrentLinkedQueue<>(); - } - - /** - * Calculates the index of a chunk from its x- and z-coordinates in this region. - * This works with absolute and relative coordinates. - * - * @param chunkX The x-coordinate of the chunk. - * @param chunkZ The z-coordinate of the chunk. - * @return The index of this chunk. - */ - public static int getChunkIndex(int chunkX, int chunkZ) { - return (chunkX & 0x1F) + (chunkZ & 0x1F) * 32; - } - - /** - * Reads an .mca file from a {@code RandomAccessFile} into this object. - * This method does not perform any cleanups on the data. - * - * @param raf The {@code RandomAccessFile} to read from. - * @throws IOException If something went wrong during deserialization. - */ - public void deserialize(RandomAccessFile raf) throws IOException { - deserialize(raf, LoadFlags.ALL_DATA); - } - - /** - * Reads an .mca file from a {@code RandomAccessFile} into this object. - * This method does not perform any cleanups on the data. - * - * @param raf The {@code RandomAccessFile} to read from. - * @param loadFlags A logical or of {@link LoadFlags} constants indicating what data should be loaded - * @throws IOException If something went wrong during deserialization. - */ - public void deserialize(RandomAccessFile raf, long loadFlags) throws IOException { - chunks = new AtomicReferenceArray<>(1024); - for (int i = 0; i < 1024; i++) { - raf.seek(i * 4); - int offset = raf.read() << 16; - offset |= (raf.read() & 0xFF) << 8; - offset |= raf.read() & 0xFF; - if (raf.readByte() == 0) { - continue; - } - raf.seek(4096 + i * 4); - int timestamp = raf.readInt(); - Chunk chunk = new Chunk(timestamp); - raf.seek(4096L * offset + 4); //+4: skip data size - chunk.deserialize(raf, loadFlags); - chunks.set(i, chunk); - } - } - - public KList samplePositions(RandomAccessFile raf) throws IOException { - KList p2 = new KList<>(); - chunks = new AtomicReferenceArray<>(1024); - int x = 0; - int z = 0; - for (int i = 0; i < 1024; i++) { - x++; - z++; - - raf.seek(i * 4); - int offset = raf.read() << 16; - offset |= (raf.read() & 0xFF) << 8; - offset |= raf.read() & 0xFF; - if (raf.readByte() == 0) { - continue; - } - p2.add(new Position2(x & 31, (z / 31) & 31)); - } - return p2; - } - - public AtomicReferenceArray getChunks() { - return chunks; - } - - /** - * Calls {@link MCAFile#serialize(RandomAccessFile, boolean)} without updating any timestamps. - * - * @param raf The {@code RandomAccessFile} to writeNodeData to. - * @return The amount of chunks written to the file. - * @throws IOException If something went wrong during serialization. - * @see MCAFile#serialize(RandomAccessFile, boolean) - */ - public int serialize(RandomAccessFile raf) throws IOException { - return serialize(raf, false); - } - - /** - * Serializes this object to an .mca file. - * This method does not perform any cleanups on the data. - * - * @param raf The {@code RandomAccessFile} to writeNodeData to. - * @param changeLastUpdate Whether it should update all timestamps that show - * when this file was last updated. - * @return The amount of chunks written to the file. - * @throws IOException If something went wrong during serialization. - */ - public int serialize(RandomAccessFile raf, boolean changeLastUpdate) throws IOException { - int globalOffset = 2; - int lastWritten = 0; - int timestamp = (int) (System.currentTimeMillis() / 1000L); - int chunksWritten = 0; - int chunkXOffset = MCAUtil.regionToChunk(regionX); - int chunkZOffset = MCAUtil.regionToChunk(regionZ); - - if (chunks == null) { - return 0; - } - - for (int cx = 0; cx < 32; cx++) { - for (int cz = 0; cz < 32; cz++) { - int index = getChunkIndex(cx, cz); - Chunk chunk = chunks.get(index); - if (chunk == null) { - continue; - } - raf.seek(4096L * globalOffset); - lastWritten = chunk.serialize(raf, chunkXOffset + cx, chunkZOffset + cz); - - if (lastWritten == 0) { - continue; - } - - chunksWritten++; - - int sectors = (lastWritten >> 12) + (lastWritten % 4096 == 0 ? 0 : 1); - - raf.seek(index * 4L); - raf.writeByte(globalOffset >>> 16); - raf.writeByte(globalOffset >> 8 & 0xFF); - raf.writeByte(globalOffset & 0xFF); - raf.writeByte(sectors); - - // writeNodeData timestamp - raf.seek(index * 4L + 4096); - raf.writeInt(changeLastUpdate ? timestamp : chunk.getLastMCAUpdate()); - - globalOffset += sectors; - } - } - - // padding - if (lastWritten % 4096 != 0) { - raf.seek(globalOffset * 4096L - 1); - raf.write(0); - } - - J.a(() -> { - afterSave.forEach(i -> i.run()); - }, 20); - - return chunksWritten; - } - - /** - * Set a specific Chunk at a specific index. The index must be in range of 0 - 1023. - * - * @param index The index of the Chunk. - * @param chunk The Chunk to be set. - * @throws IndexOutOfBoundsException If index is not in the range. - */ - public void setChunk(int index, Chunk chunk) { - checkIndex(index); - if (chunks == null) { - chunks = new AtomicReferenceArray<>(1024); - } - chunks.set(index, chunk); - } - - /** - * Set a specific Chunk at a specific chunk location. - * The x- and z-value can be absolute chunk coordinates or they can be relative to the region origin. - * - * @param chunkX The x-coordinate of the Chunk. - * @param chunkZ The z-coordinate of the Chunk. - * @param chunk The chunk to be set. - */ - public void setChunk(int chunkX, int chunkZ, Chunk chunk) { - setChunk(getChunkIndex(chunkX, chunkZ), chunk); - } - - /** - * Returns the chunk data of a chunk at a specific index in this file. - * - * @param index The index of the chunk in this file. - * @return The chunk data. - */ - public Chunk getChunk(int index) { - checkIndex(index); - if (chunks == null) { - return null; - } - return chunks.get(index); - } - - /** - * Returns the chunk data of a chunk in this file. - * - * @param chunkX The x-coordinate of the chunk. - * @param chunkZ The z-coordinate of the chunk. - * @return The chunk data. - */ - public Chunk getChunk(int chunkX, int chunkZ) { - return getChunk(getChunkIndex(chunkX, chunkZ)); - } - - public boolean hasChunk(int chunkX, int chunkZ) { - return getChunk(chunkX, chunkZ) != null; - } - - private int checkIndex(int index) { - if (index < 0 || index > 1023) { - throw new IndexOutOfBoundsException(); - } - return index; - } - - private Chunk createChunkIfMissing(int blockX, int blockZ) { - int chunkX = MCAUtil.blockToChunk(blockX), chunkZ = MCAUtil.blockToChunk(blockZ); - Chunk chunk = getChunk(chunkX, chunkZ); - if (chunk == null) { - chunk = Chunk.newChunk(); - setChunk(getChunkIndex(chunkX, chunkZ), chunk); - } - return chunk; - } - - public void setBiomeAt(int blockX, int blockY, int blockZ, int biomeID) { - createChunkIfMissing(blockX, blockZ).setBiomeAt(blockX, blockY, blockZ, biomeID); - } - - /** - * Fetches the biome id at a specific block. - * - * @param blockX The x-coordinate of the block. - * @param blockY The y-coordinate of the block. - * @param blockZ The z-coordinate of the block. - * @return The biome id if the chunk exists and the chunk has biomes, otherwise -1. - */ - public int getBiomeAt(int blockX, int blockY, int blockZ) { - int chunkX = MCAUtil.blockToChunk(blockX), chunkZ = MCAUtil.blockToChunk(blockZ); - Chunk chunk = getChunk(getChunkIndex(chunkX, chunkZ)); - if (chunk == null) { - return -1; - } - return chunk.getBiomeAt(blockX, blockY, blockZ); - } - - /** - * Set a block state at a specific block location. - * The block coordinates can be absolute coordinates or they can be relative to the region. - * - * @param blockX The x-coordinate of the block. - * @param blockY The y-coordinate of the block. - * @param blockZ The z-coordinate of the block. - * @param state The block state to be set. - * @param cleanup Whether the Palette and the BLockStates should be recalculated after adding the block state. - */ - public void setBlockStateAt(int blockX, int blockY, int blockZ, CompoundTag state, boolean cleanup) { - createChunkIfMissing(blockX, blockZ).setBlockStateAt(blockX, blockY, blockZ, state, cleanup); - } - - /** - * Fetches a block state at a specific block location. - * The block coordinates can be absolute coordinates or they can be relative to the region. - * - * @param blockX The x-coordinate of the block. - * @param blockY The y-coordinate of the block. - * @param blockZ The z-coordinate of the block. - * @return The block state or null if the chunk or the section do not exist. - */ - public CompoundTag getBlockStateAt(int blockX, int blockY, int blockZ) { - int chunkX = MCAUtil.blockToChunk(blockX), chunkZ = MCAUtil.blockToChunk(blockZ); - Chunk chunk = getChunk(chunkX, chunkZ); - if (chunk == null) { - return null; - } - return chunk.getBlockStateAt(blockX, blockY, blockZ); - } - - public void afterSave(Runnable o) { - afterSave.add(o); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/mca/NBTWorld.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/NBTWorld.java deleted file mode 100644 index bc77bf299..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/mca/NBTWorld.java +++ /dev/null @@ -1,336 +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 com.volmit.iris.util.nbt.mca; - -import com.volmit.iris.Iris; -import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.engine.data.cache.Cache; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.data.B; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.nbt.tag.CompoundTag; -import com.volmit.iris.util.nbt.tag.StringTag; -import com.volmit.iris.util.parallel.HyperLock; -import org.bukkit.NamespacedKey; -import org.bukkit.block.Biome; -import org.bukkit.block.data.BlockData; - -import java.io.File; -import java.io.IOException; -import java.util.Map; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; -import java.util.function.Function; - -public class NBTWorld { - private static final BlockData AIR = B.get("AIR"); - private static final Map blockDataCache = new KMap<>(); - private static final Function BLOCK_DATA_COMPUTE = (blockData) -> { - CompoundTag s = new CompoundTag(); - String data = blockData.getAsString(true); - NamespacedKey key = blockData.getMaterial().getKey(); - s.putString("Name", key.getNamespace() + ":" + key.getKey()); - - if (data.contains("[")) { - String raw = data.split("\\Q[\\E")[1].replaceAll("\\Q]\\E", ""); - CompoundTag props = new CompoundTag(); - if (raw.contains(",")) { - for (String i : raw.split("\\Q,\\E")) { - String[] m = i.split("\\Q=\\E"); - String k = m[0]; - String v = m[1]; - props.put(k, new StringTag(v)); - } - } else { - String[] m = raw.split("\\Q=\\E"); - String k = m[0]; - String v = m[1]; - props.put(k, new StringTag(v)); - } - s.put("Properties", props); - } - - return s; - }; - private static final Map biomeIds = computeBiomeIDs(); - private final KMap loadedRegions; - private final HyperLock hyperLock = new HyperLock(); - private final KMap lastUse; - private final File worldFolder; - private final ExecutorService saveQueue; - - public NBTWorld(File worldFolder) { - this.worldFolder = worldFolder; - this.loadedRegions = new KMap<>(); - this.lastUse = new KMap<>(); - saveQueue = Executors.newSingleThreadExecutor(r -> { - Thread t = new Thread(r); - t.setName("Iris MCA Writer"); - t.setPriority(Thread.MIN_PRIORITY); - return t; - }); - } - - public static BlockData getBlockData(CompoundTag tag) { - if (tag == null) { - return B.getAir(); - } - - StringBuilder p = new StringBuilder(tag.getString("Name")); - - if (tag.containsKey("Properties")) { - CompoundTag props = tag.getCompoundTag("Properties"); - p.append('['); - - for (String i : props.keySet()) { - p.append(i).append('=').append(props.getString(i)).append(','); - } - - p.deleteCharAt(p.length() - 1).append(']'); - } - - BlockData b = B.getOrNull(p.toString(), true); - - if (b == null) { - return B.getAir(); - } - - return b; - } - - public static CompoundTag getCompound(BlockData bd) { - return blockDataCache.computeIfAbsent(bd, BLOCK_DATA_COMPUTE); - } - - private static Map computeBiomeIDs() { - Map biomeIds = new KMap<>(); - - for (Biome biome : Biome.values()) { - if (!biome.name().equals("CUSTOM")) { - biomeIds.put(biome, INMS.get().getBiomeId(biome)); - } - } - - return biomeIds; - } - - public void close() { - - for (Long i : loadedRegions.k()) { - queueSaveUnload(Cache.keyX(i), Cache.keyZ(i)); - } - - saveQueue.shutdown(); - try { - while (!saveQueue.awaitTermination(3, TimeUnit.SECONDS)) { - Iris.info("Still Waiting to save MCA Files..."); - } - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - - public void flushNow() { - for (Long i : loadedRegions.k()) { - doSaveUnload(Cache.keyX(i), Cache.keyZ(i)); - } - } - - public void queueSaveUnload(int x, int z) { - saveQueue.submit(() -> doSaveUnload(x, z)); - } - - public void doSaveUnload(int x, int z) { - MCAFile f = getMCAOrNull(x, z); - if (f != null) { - unloadRegion(x, z); - } - - saveRegion(x, z, f); - } - - public void save() { - boolean saving = true; - - for (Long i : loadedRegions.k()) { - int x = Cache.keyX(i); - int z = Cache.keyZ(i); - - if (!lastUse.containsKey(i)) { - lastUse.put(i, M.ms()); - } - - if (shouldUnload(x, z)) { - queueSaveUnload(x, z); - } - } - - Iris.debug("Regions: " + C.GOLD + loadedRegions.size() + C.LIGHT_PURPLE); - } - - public void queueSave() { - - } - - public synchronized void unloadRegion(int x, int z) { - long key = Cache.key(x, z); - loadedRegions.remove(key); - lastUse.remove(key); - Iris.debug("Unloaded Region " + C.GOLD + x + " " + z); - } - - public void saveRegion(int x, int z) { - long k = Cache.key(x, z); - MCAFile mca = getMCAOrNull(x, z); - try { - MCAUtil.write(mca, getRegionFile(x, z), true); - Iris.debug("Saved Region " + C.GOLD + x + " " + z); - } catch (IOException e) { - Iris.error("Failed to save region " + getRegionFile(x, z).getPath()); - e.printStackTrace(); - } - } - - public void saveRegion(int x, int z, MCAFile mca) { - try { - MCAUtil.write(mca, getRegionFile(x, z), true); - Iris.debug("Saved Region " + C.GOLD + x + " " + z); - } catch (IOException e) { - Iris.error("Failed to save region " + getRegionFile(x, z).getPath()); - e.printStackTrace(); - } - } - - public boolean shouldUnload(int x, int z) { - return getIdleDuration(x, z) > 60000; - } - - public File getRegionFile(int x, int z) { - return new File(worldFolder, "region/r." + x + "." + z + ".mca"); - } - - public BlockData getBlockData(int x, int y, int z) { - try { - CompoundTag tag = getChunkSection(x >> 4, y >> 4, z >> 4).getBlockStateAt(x & 15, y & 15, z & 15); - - if (tag == null) { - return AIR; - } - - return getBlockData(tag); - } catch (Throwable e) { - Iris.reportError(e); - - } - return AIR; - } - - public void setBlockData(int x, int y, int z, BlockData data) { - getChunkSection(x >> 4, y >> 4, z >> 4).setBlockStateAt(x & 15, y & 15, z & 15, getCompound(data), false); - } - - public int getBiomeId(Biome b) { - return biomeIds.get(b); - } - - public void setBiome(int x, int y, int z, Biome biome) { - getChunk(x >> 4, z >> 4).setBiomeAt(x & 15, y, z & 15, biomeIds.get(biome)); - } - - public Section getChunkSection(int x, int y, int z) { - Chunk c = getChunk(x, z); - Section s = c.getSection(y); - - if (s == null) { - s = Section.newSection(); - c.setSection(y, s); - } - - return s; - } - - public Chunk getChunk(int x, int z) { - return getChunk(getMCA(x >> 5, z >> 5), x, z); - } - - public Chunk getChunk(MCAFile mca, int x, int z) { - Chunk c = mca.getChunk(x & 31, z & 31); - - if (c == null) { - c = Chunk.newChunk(); - mca.setChunk(x & 31, z & 31, c); - } - - return c; - } - - public Chunk getNewChunk(MCAFile mca, int x, int z) { - Chunk c = Chunk.newChunk(); - mca.setChunk(x & 31, z & 31, c); - - return c; - } - - public long getIdleDuration(int x, int z) { - return hyperLock.withResult(x, z, () -> { - Long l = lastUse.get(Cache.key(x, z)); - return l == null ? 0 : (M.ms() - l); - }); - } - - public MCAFile getMCA(int x, int z) { - long key = Cache.key(x, z); - - return hyperLock.withResult(x, z, () -> { - lastUse.put(key, M.ms()); - - MCAFile mcaf = loadedRegions.get(key); - - if (mcaf == null) { - mcaf = new MCAFile(x, z); - loadedRegions.put(key, mcaf); - } - - return mcaf; - }); - } - - public MCAFile getMCAOrNull(int x, int z) { - long key = Cache.key(x, z); - - return hyperLock.withResult(x, z, () -> { - if (loadedRegions.containsKey(key)) { - lastUse.put(key, M.ms()); - return loadedRegions.get(key); - } - - return null; - }); - } - - public int size() { - return loadedRegions.size(); - } - - public boolean isLoaded(int x, int z) { - return loadedRegions.containsKey(Cache.key(x, z)); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCABiomeContainer.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCABiomeContainer.java deleted file mode 100644 index 60ff7eb26..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCABiomeContainer.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 com.volmit.iris.util.nbt.mca.palette; - -public interface MCABiomeContainer { - int[] getData(); - - void setBiome(int x, int y, int z, int id); - - int getBiome(int x, int y, int z); -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCABitStorage.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCABitStorage.java deleted file mode 100644 index b3413bf5b..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCABitStorage.java +++ /dev/null @@ -1,145 +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 com.volmit.iris.util.nbt.mca.palette; - -import org.apache.commons.lang3.Validate; - -import java.util.function.IntConsumer; - -public class MCABitStorage { - private static final int[] MAGIC = new int[]{ - -1, -1, 0, Integer.MIN_VALUE, 0, 0, 1431655765, 1431655765, 0, Integer.MIN_VALUE, - 0, 1, 858993459, 858993459, 0, 715827882, 715827882, 0, 613566756, 613566756, - 0, Integer.MIN_VALUE, 0, 2, 477218588, 477218588, 0, 429496729, 429496729, 0, - 390451572, 390451572, 0, 357913941, 357913941, 0, 330382099, 330382099, 0, 306783378, - 306783378, 0, 286331153, 286331153, 0, Integer.MIN_VALUE, 0, 3, 252645135, 252645135, - 0, 238609294, 238609294, 0, 226050910, 226050910, 0, 214748364, 214748364, 0, - 204522252, 204522252, 0, 195225786, 195225786, 0, 186737708, 186737708, 0, 178956970, - 178956970, 0, 171798691, 171798691, 0, 165191049, 165191049, 0, 159072862, 159072862, - 0, 153391689, 153391689, 0, 148102320, 148102320, 0, 143165576, 143165576, 0, - 138547332, 138547332, 0, Integer.MIN_VALUE, 0, 4, 130150524, 130150524, 0, 126322567, - 126322567, 0, 122713351, 122713351, 0, 119304647, 119304647, 0, 116080197, 116080197, - 0, 113025455, 113025455, 0, 110127366, 110127366, 0, 107374182, 107374182, 0, - 104755299, 104755299, 0, 102261126, 102261126, 0, 99882960, 99882960, 0, 97612893, - 97612893, 0, 95443717, 95443717, 0, 93368854, 93368854, 0, 91382282, 91382282, - 0, 89478485, 89478485, 0, 87652393, 87652393, 0, 85899345, 85899345, 0, - 84215045, 84215045, 0, 82595524, 82595524, 0, 81037118, 81037118, 0, 79536431, - 79536431, 0, 78090314, 78090314, 0, 76695844, 76695844, 0, 75350303, 75350303, - 0, 74051160, 74051160, 0, 72796055, 72796055, 0, 71582788, 71582788, 0, - 70409299, 70409299, 0, 69273666, 69273666, 0, 68174084, 68174084, 0, Integer.MIN_VALUE, - 0, 5}; - - private final long[] data; - - private final int bits; - - private final long mask; - - private final int size; - - private final int valuesPerLong; - - private final int divideMul; - - private final int divideAdd; - - private final int divideShift; - - public MCABitStorage(int bits, int length) { - this(bits, length, null); - } - - public MCABitStorage(int bits, int length, long[] data) { - Validate.inclusiveBetween(1L, 32L, bits); - this.size = length; - this.bits = bits; - this.mask = (1L << bits) - 1L; - this.valuesPerLong = (char) (64 / bits); - int var3 = 3 * (this.valuesPerLong - 1); - this.divideMul = MAGIC[var3]; - this.divideAdd = MAGIC[var3 + 1]; - this.divideShift = MAGIC[var3 + 2]; - int var4 = (length + this.valuesPerLong - 1) / this.valuesPerLong; - if (data != null) { - if (data.length != var4) - throw new RuntimeException("NO!"); - this.data = data; - } else { - this.data = new long[var4]; - } - } - - private int cellIndex(int var0) { - long var1 = Integer.toUnsignedLong(this.divideMul); - long var3 = Integer.toUnsignedLong(this.divideAdd); - return (int) (var0 * var1 + var3 >> 32L >> this.divideShift); - } - - public int getAndSet(int var0, int var1) { - Validate.inclusiveBetween(0L, (this.size - 1), var0); - Validate.inclusiveBetween(0L, this.mask, var1); - int var2 = cellIndex(var0); - long var3 = this.data[var2]; - int var5 = (var0 - var2 * this.valuesPerLong) * this.bits; - int var6 = (int) (var3 >> var5 & this.mask); - this.data[var2] = var3 & (this.mask << var5 ^ 0xFFFFFFFFFFFFFFFFL) | (var1 & this.mask) << var5; - return var6; - } - - public void set(int var0, int var1) { - Validate.inclusiveBetween(0L, (this.size - 1), var0); - Validate.inclusiveBetween(0L, this.mask, var1); - int var2 = cellIndex(var0); - long var3 = this.data[var2]; - int var5 = (var0 - var2 * this.valuesPerLong) * this.bits; - this.data[var2] = var3 & (this.mask << var5 ^ 0xFFFFFFFFFFFFFFFFL) | (var1 & this.mask) << var5; - } - - public int get(int var0) { - Validate.inclusiveBetween(0L, (this.size - 1), var0); - int var1 = cellIndex(var0); - long var2 = this.data[var1]; - int var4 = (var0 - var1 * this.valuesPerLong) * this.bits; - return (int) (var2 >> var4 & this.mask); - } - - public long[] getRaw() { - return this.data; - } - - public int getSize() { - return this.size; - } - - public int getBits() { - return this.bits; - } - - public void getAll(IntConsumer var0) { - int var1 = 0; - for (long var5 : this.data) { - for (int var7 = 0; var7 < this.valuesPerLong; var7++) { - var0.accept((int) (var5 & this.mask)); - var5 >>= this.bits; - if (++var1 >= this.size) - return; - } - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAChunkBiomeContainer.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAChunkBiomeContainer.java deleted file mode 100644 index 862574300..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAChunkBiomeContainer.java +++ /dev/null @@ -1,96 +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 com.volmit.iris.util.nbt.mca.palette; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -import java.util.Arrays; - -public class MCAChunkBiomeContainer { - private static final Logger LOGGER = LogManager.getLogger(); - private static final int WIDTH_BITS = MCAMth.ceillog2(16) - 2; - private static final int HORIZONTAL_MASK = (1 << WIDTH_BITS) - 1; - private static final int PACKED_X_LENGTH = 1 + MCAMth.log2(MCAMth.smallestEncompassingPowerOfTwo(30000000)); - private static final int PACKED_Z_LENGTH = PACKED_X_LENGTH; - public static final int PACKED_Y_LENGTH = 64 - PACKED_X_LENGTH - PACKED_Z_LENGTH; - public static final int MAX_SIZE = 1 << WIDTH_BITS + WIDTH_BITS + PACKED_Y_LENGTH - 2; - - public final MCAIdMap biomeRegistry; - - private final T[] biomes; - - private final int quartMinY; - - private final int quartHeight; - - protected MCAChunkBiomeContainer(MCAIdMap registry, int minHeight, int maxHeight, T[] abiomebase) { - this.biomeRegistry = registry; - this.biomes = abiomebase; - this.quartMinY = MCAQuartPos.fromBlock(minHeight); - this.quartHeight = MCAQuartPos.fromBlock(maxHeight) - 1; - } - - public MCAChunkBiomeContainer(MCAIdMap registry, int min, int max) { - this(registry, min, max, new int[(1 << WIDTH_BITS + WIDTH_BITS) * ceilDiv(max - min, 4)]); - } - - public MCAChunkBiomeContainer(MCAIdMap registry, int minHeight, int maxHeight, int[] aint) { - this(registry, minHeight, maxHeight, (T[]) new Object[aint.length]); - int i = -1; - for (int j = 0; j < this.biomes.length; j++) { - int k = aint[j]; - T biomebase = registry.byId(k); - if (biomebase == null) { - if (i == -1) - i = j; - this.biomes[j] = registry.byId(0); - } else { - this.biomes[j] = biomebase; - } - } - if (i != -1) - LOGGER.warn("Invalid biome data received, starting from {}: {}", Integer.valueOf(i), Arrays.toString(aint)); - } - - private static int ceilDiv(int i, int j) { - return (i + j - 1) / j; - } - - public int[] writeBiomes() { - int[] aint = new int[this.biomes.length]; - for (int i = 0; i < this.biomes.length; i++) - aint[i] = this.biomeRegistry.getId(this.biomes[i]); - return aint; - } - - public T getBiome(int i, int j, int k) { - int l = i & HORIZONTAL_MASK; - int i1 = MCAMth.clamp(j - this.quartMinY, 0, this.quartHeight); - int j1 = k & HORIZONTAL_MASK; - return this.biomes[i1 << WIDTH_BITS + WIDTH_BITS | j1 << WIDTH_BITS | l]; - } - - public void setBiome(int i, int j, int k, T biome) { - int l = i & HORIZONTAL_MASK; - int i1 = MCAMth.clamp(j - this.quartMinY, 0, this.quartHeight); - int j1 = k & HORIZONTAL_MASK; - this.biomes[i1 << WIDTH_BITS + WIDTH_BITS | j1 << WIDTH_BITS | l] = biome; - } -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCACountConsumer.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCACountConsumer.java deleted file mode 100644 index 89e4a24ce..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCACountConsumer.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 com.volmit.iris.util.nbt.mca.palette; - -@FunctionalInterface -public interface MCACountConsumer { - void accept(T paramT, int paramInt); -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCACrudeIncrementalIntIdentityHashBiMap.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCACrudeIncrementalIntIdentityHashBiMap.java deleted file mode 100644 index a59784f5d..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCACrudeIncrementalIntIdentityHashBiMap.java +++ /dev/null @@ -1,167 +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 com.volmit.iris.util.nbt.mca.palette; - -import com.google.common.base.Predicates; -import com.google.common.collect.Iterators; - -import java.util.Arrays; -import java.util.Iterator; - -public class MCACrudeIncrementalIntIdentityHashBiMap implements MCAIdMap { - public static final int NOT_FOUND = -1; - - private static final Object EMPTY_SLOT = null; - - private static final float LOADFACTOR = 0.8F; - - private K[] keys; - - private int[] values; - - private K[] byId; - - private int nextId; - - private int size; - - public MCACrudeIncrementalIntIdentityHashBiMap(int var0) { - var0 = (int) (var0 / 0.8F); - this.keys = (K[]) new Object[var0]; - this.values = new int[var0]; - this.byId = (K[]) new Object[var0]; - } - - public int getId(K var0) { - return getValue(indexOf(var0, hash(var0))); - } - - - public K byId(int var0) { - if (var0 < 0 || var0 >= this.byId.length) - return null; - return this.byId[var0]; - } - - private int getValue(int var0) { - if (var0 == -1) - return -1; - return this.values[var0]; - } - - public boolean contains(K var0) { - return (getId(var0) != -1); - } - - public boolean contains(int var0) { - return (byId(var0) != null); - } - - public int add(K var0) { - int var1 = nextId(); - addMapping(var0, var1); - return var1; - } - - private int nextId() { - while (this.nextId < this.byId.length && this.byId[this.nextId] != null) - this.nextId++; - return this.nextId; - } - - private void grow(int var0) { - K[] var1 = this.keys; - int[] var2 = this.values; - this.keys = (K[]) new Object[var0]; - this.values = new int[var0]; - this.byId = (K[]) new Object[var0]; - this.nextId = 0; - this.size = 0; - for (int var3 = 0; var3 < var1.length; var3++) { - if (var1[var3] != null) - addMapping(var1[var3], var2[var3]); - } - } - - public void addMapping(K var0, int var1) { - int var2 = Math.max(var1, this.size + 1); - if (var2 >= this.keys.length * 0.8F) { - int i = this.keys.length << 1; - while (i < var1) - i <<= 1; - grow(i); - } - int var3 = findEmpty(hash(var0)); - this.keys[var3] = var0; - this.values[var3] = var1; - this.byId[var1] = var0; - this.size++; - if (var1 == this.nextId) - this.nextId++; - } - - private int hash(K var0) { - return (MCAMth.murmurHash3Mixer(System.identityHashCode(var0)) & Integer.MAX_VALUE) % this.keys.length; - } - - private int indexOf(K var0, int var1) { - int var2; - for (var2 = var1; var2 < this.keys.length; var2++) { - if (this.keys[var2] == var0) - return var2; - if (this.keys[var2] == EMPTY_SLOT) - return -1; - } - for (var2 = 0; var2 < var1; var2++) { - if (this.keys[var2] == var0) - return var2; - if (this.keys[var2] == EMPTY_SLOT) - return -1; - } - return -1; - } - - private int findEmpty(int var0) { - int var1; - for (var1 = var0; var1 < this.keys.length; var1++) { - if (this.keys[var1] == EMPTY_SLOT) - return var1; - } - for (var1 = 0; var1 < var0; var1++) { - if (this.keys[var1] == EMPTY_SLOT) - return var1; - } - throw new RuntimeException("Overflowed :("); - } - - public Iterator iterator() { - return (Iterator) Iterators.filter(Iterators.forArray((Object[]) this.byId), Predicates.notNull()); - } - - public void clear() { - Arrays.fill(this.keys, null); - Arrays.fill(this.byId, null); - this.nextId = 0; - this.size = 0; - } - - public int size() { - return this.size; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAGlobalPalette.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAGlobalPalette.java deleted file mode 100644 index a7ce1296c..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAGlobalPalette.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 com.volmit.iris.util.nbt.mca.palette; - -import com.volmit.iris.util.nbt.tag.ListTag; - -import java.util.function.Predicate; - -public class MCAGlobalPalette implements MCAPalette { - private final MCAIdMapper registry; - - private final T defaultValue; - - public MCAGlobalPalette(MCAIdMapper var0, T var1) { - this.registry = var0; - this.defaultValue = var1; - } - - public int idFor(T var0) { - int var1 = this.registry.getId(var0); - return (var1 == -1) ? 0 : var1; - } - - public boolean maybeHas(Predicate var0) { - return true; - } - - public T valueFor(int var0) { - T var1 = this.registry.byId(var0); - return (var1 == null) ? this.defaultValue : var1; - } - - public int getSize() { - return this.registry.size(); - } - - public void read(ListTag var0) { - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAHashMapPalette.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAHashMapPalette.java deleted file mode 100644 index 45adf1abf..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAHashMapPalette.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 com.volmit.iris.util.nbt.mca.palette; - -import com.volmit.iris.util.nbt.tag.CompoundTag; -import com.volmit.iris.util.nbt.tag.ListTag; - -import java.util.function.Function; -import java.util.function.Predicate; - -public class MCAHashMapPalette implements MCAPalette { - private final MCAIdMapper registry; - - private final MCACrudeIncrementalIntIdentityHashBiMap values; - - private final MCAPaletteResize resizeHandler; - - private final Function reader; - - private final Function writer; - - private final int bits; - - public MCAHashMapPalette(MCAIdMapper var0, int var1, MCAPaletteResize var2, Function var3, Function var4) { - this.registry = var0; - this.bits = var1; - this.resizeHandler = var2; - this.reader = var3; - this.writer = var4; - this.values = new MCACrudeIncrementalIntIdentityHashBiMap(1 << var1); - } - - public int idFor(T var0) { - int var1 = this.values.getId(var0); - if (var1 == -1) { - var1 = this.values.add(var0); - if (var1 >= 1 << this.bits) - var1 = this.resizeHandler.onResize(this.bits + 1, var0); - } - return var1; - } - - public boolean maybeHas(Predicate var0) { - for (int var1 = 0; var1 < getSize(); var1++) { - if (var0.test(this.values.byId(var1))) - return true; - } - return false; - } - - public T valueFor(int var0) { - return this.values.byId(var0); - } - - public int getSize() { - return this.values.size(); - } - - public void read(ListTag var0) { - this.values.clear(); - for (int var1 = 0; var1 < var0.size(); var1++) - this.values.add(this.reader.apply((CompoundTag) var0.get(var1))); - } - - public void write(ListTag var0) { - for (int var1 = 0; var1 < getSize(); var1++) - var0.add(this.writer.apply(this.values.byId(var1))); - } -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAIdMap.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAIdMap.java deleted file mode 100644 index 047821a9e..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAIdMap.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 com.volmit.iris.util.nbt.mca.palette; - -public interface MCAIdMap extends Iterable { - int getId(T paramT); - - T byId(int paramInt); -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAIdMapper.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAIdMapper.java deleted file mode 100644 index 2793413d2..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAIdMapper.java +++ /dev/null @@ -1,102 +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 com.volmit.iris.util.nbt.mca.palette; - -import com.google.common.base.Predicates; -import com.google.common.collect.Iterators; -import com.google.common.collect.Lists; -import it.unimi.dsi.fastutil.Hash; -import it.unimi.dsi.fastutil.objects.Object2IntMap; -import it.unimi.dsi.fastutil.objects.Object2IntOpenCustomHashMap; - -import java.util.Iterator; -import java.util.List; - -public class MCAIdMapper implements MCAIdMap { - public static final int DEFAULT = -1; - private final Object2IntMap tToId; - private final List idToT; - private int nextId; - - public MCAIdMapper(Object2IntMap tToId, List idToT, int nextId) { - this.tToId = tToId; - this.idToT = idToT; - this.nextId = nextId; - } - - public MCAIdMapper() { - this(512); - } - - public MCAIdMapper(int var0) { - this.idToT = Lists.newArrayListWithExpectedSize(var0); - this.tToId = new Object2IntOpenCustomHashMap<>(var0, IdentityStrategy.INSTANCE); - } - - public void addMapping(T var0, int var1) { - this.tToId.put(var0, Integer.valueOf(var1)); - while (this.idToT.size() <= var1) - this.idToT.add(null); - this.idToT.set(var1, var0); - if (this.nextId <= var1) - this.nextId = var1 + 1; - } - - public void add(T var0) { - addMapping(var0, this.nextId); - } - - public int getId(T var0) { - Integer var1 = this.tToId.get(var0); - return (var1 == null) ? -1 : var1.intValue(); - } - - public final T byId(int var0) { - if (var0 >= 0 && var0 < this.idToT.size()) - return this.idToT.get(var0); - return null; - } - - public Iterator iterator() { - return Iterators.filter(this.idToT.iterator(), Predicates.notNull()); - } - - public boolean contains(int var0) { - return (byId(var0) != null); - } - - public int size() { - return this.tToId.size(); - } - - enum IdentityStrategy implements Hash.Strategy { - INSTANCE; - - IdentityStrategy() { - } - - public int hashCode(Object var0) { - return System.identityHashCode(var0); - } - - public boolean equals(Object var0, Object var1) { - return var0 == var1; - } - } -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCALinearPalette.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCALinearPalette.java deleted file mode 100644 index 7f91dfc36..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCALinearPalette.java +++ /dev/null @@ -1,87 +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 com.volmit.iris.util.nbt.mca.palette; - -import com.volmit.iris.util.nbt.tag.CompoundTag; -import com.volmit.iris.util.nbt.tag.ListTag; - -import java.util.function.Function; -import java.util.function.Predicate; - -public class MCALinearPalette implements MCAPalette { - private final MCAIdMapper registry; - - private final T[] values; - - private final MCAPaletteResize resizeHandler; - - private final Function reader; - - private final int bits; - - private int size; - - public MCALinearPalette(MCAIdMapper var0, int var1, MCAPaletteResize var2, Function var3) { - this.registry = var0; - this.values = (T[]) new Object[1 << var1]; - this.bits = var1; - this.resizeHandler = var2; - this.reader = var3; - } - - public int idFor(T var0) { - int var1; - for (var1 = 0; var1 < this.size; var1++) { - if (this.values[var1] == var0) - return var1; - } - var1 = this.size; - if (var1 < this.values.length) { - this.values[var1] = var0; - this.size++; - return var1; - } - return this.resizeHandler.onResize(this.bits + 1, var0); - } - - public boolean maybeHas(Predicate var0) { - for (int var1 = 0; var1 < this.size; var1++) { - if (var0.test(this.values[var1])) - return true; - } - return false; - } - - public T valueFor(int var0) { - if (var0 >= 0 && var0 < this.size) - return this.values[var0]; - return null; - } - - public int getSize() { - return this.size; - } - - public void read(ListTag var0) { - for (int var1 = 0; var1 < var0.size(); var1++) { - this.values[var1] = this.reader.apply((CompoundTag) var0.get(var1)); - } - this.size = var0.size(); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAMth.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAMth.java deleted file mode 100644 index 26ea63441..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAMth.java +++ /dev/null @@ -1,712 +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 com.volmit.iris.util.nbt.mca.palette; - -import java.util.Random; -import java.util.UUID; -import java.util.function.Consumer; -import java.util.function.Supplier; - -public class MCAMth { - public static final float PI = 3.1415927F; - public static final float HALF_PI = 1.5707964F; - public static final float TWO_PI = 6.2831855F; - public static final float DEG_TO_RAD = 0.017453292F; - public static final float RAD_TO_DEG = 57.295776F; - public static final float EPSILON = 1.0E-5F; - public static final float SQRT_OF_TWO = sqrt(2.0F); - private static final int BIG_ENOUGH_INT = 1024; - private static final float BIG_ENOUGH_FLOAT = 1024.0F; - private static final long UUID_VERSION = 61440L; - private static final long UUID_VERSION_TYPE_4 = 16384L; - private static final long UUID_VARIANT = -4611686018427387904L; - private static final long UUID_VARIANT_2 = -9223372036854775808L; - private static final float SIN_SCALE = 10430.378F; - - private static final float[] SIN; - private static final Random RANDOM = new Random(); - private static final int[] MULTIPLY_DE_BRUIJN_BIT_POSITION = new int[]{ - 0, 1, 28, 2, 29, 14, 24, 3, 30, 22, - 20, 15, 25, 17, 4, 8, 31, 27, 13, 23, - 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, - 10, 9}; - private static final double ONE_SIXTH = 0.16666666666666666D; - private static final int FRAC_EXP = 8; - private static final int LUT_SIZE = 257; - private static final double FRAC_BIAS = Double.longBitsToDouble(4805340802404319232L); - private static final double[] ASIN_TAB = new double[257]; - private static final double[] COS_TAB = new double[257]; - - static { - SIN = make(new float[65536], var0 -> { - for (int var1 = 0; var1 < var0.length; var1++) - var0[var1] = (float) Math.sin(var1 * Math.PI * 2.0D / 65536.0D); - }); - } - - static { - for (int var0 = 0; var0 < 257; var0++) { - double var1 = var0 / 256.0D; - double var3 = Math.asin(var1); - COS_TAB[var0] = Math.cos(var3); - ASIN_TAB[var0] = var3; - } - } - - public static T make(Supplier var0) { - return var0.get(); - } - - public static T make(T var0, Consumer var1) { - var1.accept(var0); - return var0; - } - - public static float sin(float var0) { - return SIN[(int) (var0 * 10430.378F) & 0xFFFF]; - } - - public static float cos(float var0) { - return SIN[(int) (var0 * 10430.378F + 16384.0F) & 0xFFFF]; - } - - public static float sqrt(float var0) { - return (float) Math.sqrt(var0); - } - - public static int floor(float var0) { - int var1 = (int) var0; - return (var0 < var1) ? (var1 - 1) : var1; - } - - public static int fastFloor(double var0) { - return (int) (var0 + 1024.0D) - 1024; - } - - public static int floor(double var0) { - int var2 = (int) var0; - return (var0 < var2) ? (var2 - 1) : var2; - } - - public static long lfloor(double var0) { - long var2 = (long) var0; - return (var0 < var2) ? (var2 - 1L) : var2; - } - - public static int absFloor(double var0) { - return (int) ((var0 >= 0.0D) ? var0 : (-var0 + 1.0D)); - } - - public static float abs(float var0) { - return Math.abs(var0); - } - - public static int abs(int var0) { - return Math.abs(var0); - } - - public static int ceil(float var0) { - int var1 = (int) var0; - return (var0 > var1) ? (var1 + 1) : var1; - } - - public static int ceil(double var0) { - int var2 = (int) var0; - return (var0 > var2) ? (var2 + 1) : var2; - } - - public static byte clamp(byte var0, byte var1, byte var2) { - if (var0 < var1) - return var1; - if (var0 > var2) - return var2; - return var0; - } - - public static int clamp(int var0, int var1, int var2) { - if (var0 < var1) - return var1; - if (var0 > var2) - return var2; - return var0; - } - - public static long clamp(long var0, long var2, long var4) { - if (var0 < var2) - return var2; - if (var0 > var4) - return var4; - return var0; - } - - public static float clamp(float var0, float var1, float var2) { - if (var0 < var1) - return var1; - if (var0 > var2) - return var2; - return var0; - } - - public static double clamp(double var0, double var2, double var4) { - if (var0 < var2) - return var2; - if (var0 > var4) - return var4; - return var0; - } - - public static double clampedLerp(double var0, double var2, double var4) { - if (var4 < 0.0D) - return var0; - if (var4 > 1.0D) - return var2; - return lerp(var4, var0, var2); - } - - public static float clampedLerp(float var0, float var1, float var2) { - if (var2 < 0.0F) - return var0; - if (var2 > 1.0F) - return var1; - return lerp(var2, var0, var1); - } - - public static double absMax(double var0, double var2) { - if (var0 < 0.0D) - var0 = -var0; - if (var2 < 0.0D) - var2 = -var2; - return (var0 > var2) ? var0 : var2; - } - - public static int intFloorDiv(int var0, int var1) { - return Math.floorDiv(var0, var1); - } - - public static int nextInt(Random var0, int var1, int var2) { - if (var1 >= var2) - return var1; - return var0.nextInt(var2 - var1 + 1) + var1; - } - - public static float nextFloat(Random var0, float var1, float var2) { - if (var1 >= var2) - return var1; - return var0.nextFloat() * (var2 - var1) + var1; - } - - public static double nextDouble(Random var0, double var1, double var3) { - if (var1 >= var3) - return var1; - return var0.nextDouble() * (var3 - var1) + var1; - } - - public static double average(long[] var0) { - long var1 = 0L; - for (long var6 : var0) - var1 += var6; - return var1 / var0.length; - } - - public static boolean equal(float var0, float var1) { - return (Math.abs(var1 - var0) < 1.0E-5F); - } - - public static boolean equal(double var0, double var2) { - return (Math.abs(var2 - var0) < 9.999999747378752E-6D); - } - - public static int positiveModulo(int var0, int var1) { - return Math.floorMod(var0, var1); - } - - public static float positiveModulo(float var0, float var1) { - return (var0 % var1 + var1) % var1; - } - - public static double positiveModulo(double var0, double var2) { - return (var0 % var2 + var2) % var2; - } - - public static int wrapDegrees(int var0) { - int var1 = var0 % 360; - if (var1 >= 180) - var1 -= 360; - if (var1 < -180) - var1 += 360; - return var1; - } - - public static float wrapDegrees(float var0) { - float var1 = var0 % 360.0F; - if (var1 >= 180.0F) - var1 -= 360.0F; - if (var1 < -180.0F) - var1 += 360.0F; - return var1; - } - - public static double wrapDegrees(double var0) { - double var2 = var0 % 360.0D; - if (var2 >= 180.0D) - var2 -= 360.0D; - if (var2 < -180.0D) - var2 += 360.0D; - return var2; - } - - public static float degreesDifference(float var0, float var1) { - return wrapDegrees(var1 - var0); - } - - public static float degreesDifferenceAbs(float var0, float var1) { - return abs(degreesDifference(var0, var1)); - } - - public static float rotateIfNecessary(float var0, float var1, float var2) { - float var3 = degreesDifference(var0, var1); - float var4 = clamp(var3, -var2, var2); - return var1 - var4; - } - - public static float approach(float var0, float var1, float var2) { - var2 = abs(var2); - if (var0 < var1) - return clamp(var0 + var2, var0, var1); - return clamp(var0 - var2, var1, var0); - } - - public static float approachDegrees(float var0, float var1, float var2) { - float var3 = degreesDifference(var0, var1); - return approach(var0, var0 + var3, var2); - } - - public static int getInt(String var0, int var1) { - return Integer.valueOf(var0, var1); - } - - public static int getInt(String var0, int var1, int var2) { - return Math.max(var2, getInt(var0, var1)); - } - - public static double getDouble(String var0, double var1) { - try { - return Double.parseDouble(var0); - } catch (Throwable var3) { - return var1; - } - } - - public static double getDouble(String var0, double var1, double var3) { - return Math.max(var3, getDouble(var0, var1)); - } - - public static int smallestEncompassingPowerOfTwo(int var0) { - int var1 = var0 - 1; - var1 |= var1 >> 1; - var1 |= var1 >> 2; - var1 |= var1 >> 4; - var1 |= var1 >> 8; - var1 |= var1 >> 16; - return var1 + 1; - } - - public static boolean isPowerOfTwo(int var0) { - return (var0 != 0 && (var0 & var0 - 1) == 0); - } - - public static int ceillog2(int var0) { - var0 = isPowerOfTwo(var0) ? var0 : smallestEncompassingPowerOfTwo(var0); - return MULTIPLY_DE_BRUIJN_BIT_POSITION[(int) (var0 * 125613361L >> 27L) & 0x1F]; - } - - public static int log2(int var0) { - return ceillog2(var0) - (isPowerOfTwo(var0) ? 0 : 1); - } - - public static int color(float var0, float var1, float var2) { - return color(floor(var0 * 255.0F), floor(var1 * 255.0F), floor(var2 * 255.0F)); - } - - public static int color(int var0, int var1, int var2) { - int var3 = var0; - var3 = (var3 << 8) + var1; - var3 = (var3 << 8) + var2; - return var3; - } - - public static int colorMultiply(int var0, int var1) { - int var2 = (var0 & 0xFF0000) >> 16; - int var3 = (var1 & 0xFF0000) >> 16; - int var4 = (var0 & 0xFF00) >> 8; - int var5 = (var1 & 0xFF00) >> 8; - int var6 = (var0 & 0xFF); - int var7 = (var1 & 0xFF); - int var8 = (int) (var2 * var3 / 255.0F); - int var9 = (int) (var4 * var5 / 255.0F); - int var10 = (int) (var6 * var7 / 255.0F); - return var0 & 0xFF000000 | var8 << 16 | var9 << 8 | var10; - } - - public static int colorMultiply(int var0, float var1, float var2, float var3) { - int var4 = (var0 & 0xFF0000) >> 16; - int var5 = (var0 & 0xFF00) >> 8; - int var6 = (var0 & 0xFF); - int var7 = (int) (var4 * var1); - int var8 = (int) (var5 * var2); - int var9 = (int) (var6 * var3); - return var0 & 0xFF000000 | var7 << 16 | var8 << 8 | var9; - } - - public static float frac(float var0) { - return var0 - floor(var0); - } - - public static double frac(double var0) { - return var0 - lfloor(var0); - } - - public static long getSeed(int var0, int var1, int var2) { - long var3 = (var0 * 3129871) ^ var2 * 116129781L ^ var1; - var3 = var3 * var3 * 42317861L + var3 * 11L; - return var3 >> 16L; - } - - public static UUID createInsecureUUID(Random var0) { - long var1 = var0.nextLong() & 0xFFFFFFFFFFFF0FFFL | 0x4000L; - long var3 = var0.nextLong() & 0x3FFFFFFFFFFFFFFFL | Long.MIN_VALUE; - return new UUID(var1, var3); - } - - public static UUID createInsecureUUID() { - return createInsecureUUID(RANDOM); - } - - public static double inverseLerp(double var0, double var2, double var4) { - return (var0 - var2) / (var4 - var2); - } - - public static double atan2(double var0, double var2) { - double var4 = var2 * var2 + var0 * var0; - if (Double.isNaN(var4)) - return Double.NaN; - boolean var6 = (var0 < 0.0D); - if (var6) - var0 = -var0; - boolean var7 = (var2 < 0.0D); - if (var7) - var2 = -var2; - boolean var8 = (var0 > var2); - if (var8) { - double d = var2; - var2 = var0; - var0 = d; - } - double var9 = fastInvSqrt(var4); - var2 *= var9; - var0 *= var9; - double var11 = FRAC_BIAS + var0; - int var13 = (int) Double.doubleToRawLongBits(var11); - double var14 = ASIN_TAB[var13]; - double var16 = COS_TAB[var13]; - double var18 = var11 - FRAC_BIAS; - double var20 = var0 * var16 - var2 * var18; - double var22 = (6.0D + var20 * var20) * var20 * 0.16666666666666666D; - double var24 = var14 + var22; - if (var8) - var24 = 1.5707963267948966D - var24; - if (var7) - var24 = Math.PI - var24; - if (var6) - var24 = -var24; - return var24; - } - - public static float fastInvSqrt(float var0) { - float var1 = 0.5F * var0; - int var2 = Float.floatToIntBits(var0); - var2 = 1597463007 - (var2 >> 1); - var0 = Float.intBitsToFloat(var2); - var0 *= 1.5F - var1 * var0 * var0; - return var0; - } - - public static double fastInvSqrt(double var0) { - double var2 = 0.5D * var0; - long var4 = Double.doubleToRawLongBits(var0); - var4 = 6910469410427058090L - (var4 >> 1L); - var0 = Double.longBitsToDouble(var4); - var0 *= 1.5D - var2 * var0 * var0; - return var0; - } - - public static float fastInvCubeRoot(float var0) { - int var1 = Float.floatToIntBits(var0); - var1 = 1419967116 - var1 / 3; - float var2 = Float.intBitsToFloat(var1); - var2 = 0.6666667F * var2 + 1.0F / 3.0F * var2 * var2 * var0; - var2 = 0.6666667F * var2 + 1.0F / 3.0F * var2 * var2 * var0; - return var2; - } - - public static int hsvToRgb(float var0, float var1, float var2) { - float var8, var9, var10; - int var11, var12, var13, var3 = (int) (var0 * 6.0F) % 6; - float var4 = var0 * 6.0F - var3; - float var5 = var2 * (1.0F - var1); - float var6 = var2 * (1.0F - var4 * var1); - float var7 = var2 * (1.0F - (1.0F - var4) * var1); - switch (var3) { - case 0: - var8 = var2; - var9 = var7; - var10 = var5; - var11 = clamp((int) (var8 * 255.0F), 0, 255); - var12 = clamp((int) (var9 * 255.0F), 0, 255); - var13 = clamp((int) (var10 * 255.0F), 0, 255); - return var11 << 16 | var12 << 8 | var13; - case 1: - var8 = var6; - var9 = var2; - var10 = var5; - var11 = clamp((int) (var8 * 255.0F), 0, 255); - var12 = clamp((int) (var9 * 255.0F), 0, 255); - var13 = clamp((int) (var10 * 255.0F), 0, 255); - return var11 << 16 | var12 << 8 | var13; - case 2: - var8 = var5; - var9 = var2; - var10 = var7; - var11 = clamp((int) (var8 * 255.0F), 0, 255); - var12 = clamp((int) (var9 * 255.0F), 0, 255); - var13 = clamp((int) (var10 * 255.0F), 0, 255); - return var11 << 16 | var12 << 8 | var13; - case 3: - var8 = var5; - var9 = var6; - var10 = var2; - var11 = clamp((int) (var8 * 255.0F), 0, 255); - var12 = clamp((int) (var9 * 255.0F), 0, 255); - var13 = clamp((int) (var10 * 255.0F), 0, 255); - return var11 << 16 | var12 << 8 | var13; - case 4: - var8 = var7; - var9 = var5; - var10 = var2; - var11 = clamp((int) (var8 * 255.0F), 0, 255); - var12 = clamp((int) (var9 * 255.0F), 0, 255); - var13 = clamp((int) (var10 * 255.0F), 0, 255); - return var11 << 16 | var12 << 8 | var13; - case 5: - var8 = var2; - var9 = var5; - var10 = var6; - var11 = clamp((int) (var8 * 255.0F), 0, 255); - var12 = clamp((int) (var9 * 255.0F), 0, 255); - var13 = clamp((int) (var10 * 255.0F), 0, 255); - return var11 << 16 | var12 << 8 | var13; - } - throw new RuntimeException("Something went wrong when converting from HSV to RGB. Input was " + var0 + ", " + var1 + ", " + var2); - } - - public static int murmurHash3Mixer(int var0) { - var0 ^= var0 >>> 16; - var0 *= -2048144789; - var0 ^= var0 >>> 13; - var0 *= -1028477387; - var0 ^= var0 >>> 16; - return var0; - } - - public static long murmurHash3Mixer(long var0) { - var0 ^= var0 >>> 33L; - var0 *= -49064778989728563L; - var0 ^= var0 >>> 33L; - var0 *= -4265267296055464877L; - var0 ^= var0 >>> 33L; - return var0; - } - - public static double[] cumulativeSum(double... var0) { - float var1 = 0.0F; - for (double var5 : var0) - var1 = (float) (var1 + var5); - int var2; - for (var2 = 0; var2 < var0.length; var2++) - var0[var2] = var0[var2] / var1; - for (var2 = 0; var2 < var0.length; var2++) - var0[var2] = ((var2 == 0) ? 0.0D : var0[var2 - 1]) + var0[var2]; - return var0; - } - - public static int getRandomForDistributionIntegral(Random var0, double[] var1) { - double var2 = var0.nextDouble(); - for (int var4 = 0; var4 < var1.length; var4++) { - if (var2 < var1[var4]) - return var4; - } - return var1.length; - } - - public static double[] binNormalDistribution(double var0, double var2, double var4, int var6, int var7) { - double[] var8 = new double[var7 - var6 + 1]; - int var9 = 0; - for (int var10 = var6; var10 <= var7; var10++) { - var8[var9] = Math.max(0.0D, var0 * - - StrictMath.exp(-(var10 - var4) * (var10 - var4) / 2.0D * var2 * var2)); - var9++; - } - return var8; - } - - public static double[] binBiModalNormalDistribution(double var0, double var2, double var4, double var6, double var8, double var10, int var12, int var13) { - double[] var14 = new double[var13 - var12 + 1]; - int var15 = 0; - for (int var16 = var12; var16 <= var13; var16++) { - var14[var15] = Math.max(0.0D, var0 * - - StrictMath.exp(-(var16 - var4) * (var16 - var4) / 2.0D * var2 * var2) + var6 * - StrictMath.exp(-(var16 - var10) * (var16 - var10) / 2.0D * var8 * var8)); - var15++; - } - return var14; - } - - public static double[] binLogDistribution(double var0, double var2, int var4, int var5) { - double[] var6 = new double[var5 - var4 + 1]; - int var7 = 0; - for (int var8 = var4; var8 <= var5; var8++) { - var6[var7] = Math.max(var0 * StrictMath.log(var8) + var2, 0.0D); - var7++; - } - return var6; - } - - public static float lerp(float var0, float var1, float var2) { - return var1 + var0 * (var2 - var1); - } - - public static double lerp(double var0, double var2, double var4) { - return var2 + var0 * (var4 - var2); - } - - public static double lerp2(double var0, double var2, double var4, double var6, double var8, double var10) { - return lerp(var2, - - lerp(var0, var4, var6), - lerp(var0, var8, var10)); - } - - public static double lerp3(double var0, double var2, double var4, double var6, double var8, double var10, double var12, double var14, double var16, double var18, double var20) { - return lerp(var4, - - lerp2(var0, var2, var6, var8, var10, var12), - lerp2(var0, var2, var14, var16, var18, var20)); - } - - public static double smoothstep(double var0) { - return var0 * var0 * var0 * (var0 * (var0 * 6.0D - 15.0D) + 10.0D); - } - - public static double smoothstepDerivative(double var0) { - return 30.0D * var0 * var0 * (var0 - 1.0D) * (var0 - 1.0D); - } - - public static int sign(double var0) { - if (var0 == 0.0D) - return 0; - return (var0 > 0.0D) ? 1 : -1; - } - - public static float rotLerp(float var0, float var1, float var2) { - return var1 + var0 * wrapDegrees(var2 - var1); - } - - public static float diffuseLight(float var0, float var1, float var2) { - return Math.min(var0 * var0 * 0.6F + var1 * var1 * (3.0F + var1) / 4.0F + var2 * var2 * 0.8F, 1.0F); - } - - @Deprecated - public static float rotlerp(float var0, float var1, float var2) { - float var3 = var1 - var0; - while (var3 < -180.0F) - var3 += 360.0F; - while (var3 >= 180.0F) - var3 -= 360.0F; - return var0 + var2 * var3; - } - - @Deprecated - public static float rotWrap(double var0) { - while (var0 >= 180.0D) - var0 -= 360.0D; - while (var0 < -180.0D) - var0 += 360.0D; - return (float) var0; - } - - public static float triangleWave(float var0, float var1) { - return (Math.abs(var0 % var1 - var1 * 0.5F) - var1 * 0.25F) / var1 * 0.25F; - } - - public static float square(float var0) { - return var0 * var0; - } - - public static double square(double var0) { - return var0 * var0; - } - - public static int square(int var0) { - return var0 * var0; - } - - public static double clampedMap(double var0, double var2, double var4, double var6, double var8) { - return clampedLerp(var6, var8, inverseLerp(var0, var2, var4)); - } - - public static double map(double var0, double var2, double var4, double var6, double var8) { - return lerp(inverseLerp(var0, var2, var4), var6, var8); - } - - public static double wobble(double var0) { - return var0 + (2.0D * (new Random(floor(var0 * 3000.0D))).nextDouble() - 1.0D) * 1.0E-7D / 2.0D; - } - - public static int roundToward(int var0, int var1) { - return (var0 + var1 - 1) / var1 * var1; - } - - public static int randomBetweenInclusive(Random var0, int var1, int var2) { - return var0.nextInt(var2 - var1 + 1) + var1; - } - - public static float randomBetween(Random var0, float var1, float var2) { - return var0.nextFloat() * (var2 - var1) + var1; - } - - public static float normal(Random var0, float var1, float var2) { - return var1 + (float) var0.nextGaussian() * var2; - } - - public static double length(int var0, double var1, int var3) { - return Math.sqrt((var0 * var0) + var1 * var1 + (var3 * var3)); - } -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPalette.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPalette.java deleted file mode 100644 index 2c815141c..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPalette.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 com.volmit.iris.util.nbt.mca.palette; - -import com.volmit.iris.util.nbt.tag.ListTag; - -import java.util.function.Predicate; - -public interface MCAPalette { - int idFor(T paramT); - - boolean maybeHas(Predicate paramPredicate); - - T valueFor(int paramInt); - - int getSize(); - - void read(ListTag paramListTag); -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPaletteAccess.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPaletteAccess.java deleted file mode 100644 index e72a7d246..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPaletteAccess.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 com.volmit.iris.util.nbt.mca.palette; - -import com.volmit.iris.util.nbt.tag.CompoundTag; - -public interface MCAPaletteAccess { - void setBlock(int x, int y, int z, CompoundTag data); - - CompoundTag getBlock(int x, int y, int z); - - void writeToSection(CompoundTag tag); - - void readFromSection(CompoundTag tag); -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPaletteResize.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPaletteResize.java deleted file mode 100644 index d6ca278d5..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPaletteResize.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 com.volmit.iris.util.nbt.mca.palette; - -interface MCAPaletteResize { - int onResize(int paramInt, T paramT); -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPalettedContainer.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPalettedContainer.java deleted file mode 100644 index 941c37447..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPalettedContainer.java +++ /dev/null @@ -1,179 +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 com.volmit.iris.util.nbt.mca.palette; - -import com.volmit.iris.util.nbt.tag.CompoundTag; -import com.volmit.iris.util.nbt.tag.ListTag; -import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap; - -import java.util.function.Function; -import java.util.function.Predicate; - -public class MCAPalettedContainer implements MCAPaletteResize { - public static final int GLOBAL_PALETTE_BITS = 9; - public static final int MIN_PALETTE_SIZE = 4; - private static final int SIZE = 4096; - private final MCAPalette globalPalette; - - private final MCAPaletteResize dummyPaletteResize = (var0, var1) -> 0; - - private final MCAIdMapper registry; - - private final Function reader; - - private final Function writer; - - private final T defaultValue; - - protected MCABitStorage storage; - - private MCAPalette palette; - - private int bits; - - public MCAPalettedContainer(MCAPalette var0, MCAIdMapper var1, Function var2, Function var3, T var4) { - this.globalPalette = var0; - this.registry = var1; - this.reader = var2; - this.writer = var3; - this.defaultValue = var4; - setBits(4); - } - - private static int getIndex(int var0, int var1, int var2) { - return var1 << 8 | var2 << 4 | var0; - } - - private void setBits(int var0) { - if (var0 == this.bits) - return; - this.bits = var0; - if (this.bits <= 4) { - this.bits = 4; - this.palette = new MCALinearPalette<>(this.registry, this.bits, this, this.reader); - } else if (this.bits < 9) { - this.palette = new MCAHashMapPalette<>(this.registry, this.bits, this, this.reader, this.writer); - } else { - this.palette = this.globalPalette; - this.bits = MCAMth.ceillog2(this.registry.size()); - } - this.palette.idFor(this.defaultValue); - this.storage = new MCABitStorage(this.bits, 4096); - } - - public int onResize(int var0, T var1) { - MCABitStorage var2 = this.storage; - MCAPalette var3 = this.palette; - setBits(var0); - for (int var4 = 0; var4 < var2.getSize(); var4++) { - T var5 = var3.valueFor(var2.get(var4)); - if (var5 != null) - set(var4, var5); - } - return this.palette.idFor(var1); - } - - public T getAndSet(int var0, int var1, int var2, T var3) { - return getAndSet(getIndex(var0, var1, var2), var3); - } - - public T getAndSetUnchecked(int var0, int var1, int var2, T var3) { - return getAndSet(getIndex(var0, var1, var2), var3); - } - - private T getAndSet(int var0, T var1) { - int var2 = this.palette.idFor(var1); - int var3 = this.storage.getAndSet(var0, var2); - T var4 = this.palette.valueFor(var3); - return (var4 == null) ? this.defaultValue : var4; - } - - public void set(int var0, int var1, int var2, T var3) { - set(getIndex(var0, var1, var2), var3); - } - - private void set(int var0, T var1) { - int var2 = this.palette.idFor(var1); - this.storage.set(var0, var2); - } - - public T get(int var0, int var1, int var2) { - return get(getIndex(var0, var1, var2)); - } - - protected T get(int var0) { - T var1 = this.palette.valueFor(this.storage.get(var0)); - return (var1 == null) ? this.defaultValue : var1; - } - - public void read(ListTag var0, long[] var1) { - int var2 = Math.max(4, MCAMth.ceillog2(var0.size())); - if (var2 != this.bits) - setBits(var2); - this.palette.read(var0); - int var3 = var1.length * 64 / 4096; - if (this.palette == this.globalPalette) { - MCAPalette var4 = new MCAHashMapPalette<>(this.registry, var2, this.dummyPaletteResize, this.reader, this.writer); - var4.read(var0); - MCABitStorage var5 = new MCABitStorage(var2, 4096, var1); - for (int var6 = 0; var6 < 4096; var6++) - this.storage.set(var6, this.globalPalette.idFor(var4.valueFor(var5.get(var6)))); - } else if (var3 == this.bits) { - System.arraycopy(var1, 0, this.storage.getRaw(), 0, var1.length); - } else { - MCABitStorage var4 = new MCABitStorage(var3, 4096, var1); - for (int var5 = 0; var5 < 4096; var5++) - this.storage.set(var5, var4.get(var5)); - } - } - - public void write(CompoundTag var0, String var1, String var2) { - MCAHashMapPalette var3 = new MCAHashMapPalette<>(this.registry, this.bits, this.dummyPaletteResize, this.reader, this.writer); - T var4 = this.defaultValue; - int var5 = var3.idFor(this.defaultValue); - int[] var6 = new int[4096]; - for (int i = 0; i < 4096; i++) { - T t = get(i); - if (t != var4) { - var4 = t; - var5 = var3.idFor(t); - } - var6[i] = var5; - } - ListTag paletteList = (ListTag) ListTag.createUnchecked(CompoundTag.class); - var3.write(paletteList); - var0.put(var1, paletteList); - int var8 = Math.max(4, MCAMth.ceillog2(paletteList.size())); - MCABitStorage var9 = new MCABitStorage(var8, 4096); - for (int var10 = 0; var10 < var6.length; var10++) { - var9.set(var10, var6[var10]); - } - var0.putLongArray(var2, var9.getRaw()); - } - - public boolean maybeHas(Predicate var0) { - return this.palette.maybeHas(var0); - } - - public void count(MCACountConsumer var0) { - Int2IntOpenHashMap int2IntOpenHashMap = new Int2IntOpenHashMap(); - this.storage.getAll(var1 -> int2IntOpenHashMap.put(var1, int2IntOpenHashMap.get(var1) + 1)); - int2IntOpenHashMap.int2IntEntrySet().forEach(var1 -> var0.accept(this.palette.valueFor(var1.getIntKey()), var1.getIntValue())); - } -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAQuartPos.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAQuartPos.java deleted file mode 100644 index a98f4d976..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAQuartPos.java +++ /dev/null @@ -1,43 +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 com.volmit.iris.util.nbt.mca.palette; - -public final class MCAQuartPos { - public static final int BITS = 2; - - public static final int SIZE = 4; - - private static final int SECTION_TO_QUARTS_BITS = 2; - - public static int fromBlock(int var0) { - return var0 >> 2; - } - - public static int toBlock(int var0) { - return var0 << 2; - } - - public static int fromSection(int var0) { - return var0 << 2; - } - - public static int toSection(int var0) { - return var0 >> 2; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAWrappedPalettedContainer.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAWrappedPalettedContainer.java deleted file mode 100644 index fcd7edd5c..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAWrappedPalettedContainer.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 com.volmit.iris.util.nbt.mca.palette; - -import com.volmit.iris.util.nbt.tag.CompoundTag; -import lombok.RequiredArgsConstructor; - -import java.util.function.Function; - -@RequiredArgsConstructor -public class MCAWrappedPalettedContainer implements MCAPaletteAccess { - private final MCAPalettedContainer container; - private final Function reader; - private final Function writer; - - public void setBlock(int x, int y, int z, CompoundTag data) { - container.set(x, y, z, writer.apply(data)); - } - - public CompoundTag getBlock(int x, int y, int z) { - return reader.apply(container.get(x, y, z)); - } - - public void writeToSection(CompoundTag tag) { - container.write(tag, "Palette", "BlockStates"); - } - - public void readFromSection(CompoundTag tag) { - container.read(tag.getListTag("Palette"), tag.getLongArrayTag("BlockStates").getValue()); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/tag/ArrayTag.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/ArrayTag.java deleted file mode 100644 index 9ec1bddc6..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/tag/ArrayTag.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 com.volmit.iris.util.nbt.tag; - -import java.lang.reflect.Array; - -/** - * ArrayTag is an abstract representation of any NBT array tag. - * For implementations see {@link ByteArrayTag}, {@link IntArrayTag}, {@link LongArrayTag}. - * - * @param The array type. - */ -public abstract class ArrayTag extends Tag { - - public ArrayTag(T value) { - super(value); - if (!value.getClass().isArray()) { - throw new UnsupportedOperationException("type of array tag must be an array"); - } - } - - public int length() { - return Array.getLength(getValue()); - } - - @Override - public T getValue() { - return super.getValue(); - } - - @Override - public void setValue(T value) { - super.setValue(value); - } - - @Override - public String valueToString(int maxDepth) { - return arrayToString("", ""); - } - - protected String arrayToString(@SuppressWarnings("SameParameterValue") String prefix, @SuppressWarnings("SameParameterValue") String suffix) { - StringBuilder sb = new StringBuilder("[").append(prefix).append("".equals(prefix) ? "" : ";"); - for (int i = 0; i < length(); i++) { - sb.append(i == 0 ? "" : ",").append(Array.get(getValue(), i)).append(suffix); - } - sb.append("]"); - return sb.toString(); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/tag/ByteArrayTag.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/ByteArrayTag.java deleted file mode 100644 index 8b94784c3..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/tag/ByteArrayTag.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 com.volmit.iris.util.nbt.tag; - -import java.util.Arrays; - -public class ByteArrayTag extends ArrayTag implements Comparable { - - public static final byte ID = 7; - public static final byte[] ZERO_VALUE = new byte[0]; - - public ByteArrayTag() { - super(ZERO_VALUE); - } - - public ByteArrayTag(byte[] value) { - super(value); - } - - @Override - public byte getID() { - return ID; - } - - @Override - public boolean equals(Object other) { - return super.equals(other) && Arrays.equals(getValue(), ((ByteArrayTag) other).getValue()); - } - - @Override - public int hashCode() { - return Arrays.hashCode(getValue()); - } - - @Override - public int compareTo(ByteArrayTag other) { - return Integer.compare(length(), other.length()); - } - - @Override - public ByteArrayTag clone() { - return new ByteArrayTag(Arrays.copyOf(getValue(), length())); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/tag/ByteTag.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/ByteTag.java deleted file mode 100644 index cabd9a107..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/tag/ByteTag.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 com.volmit.iris.util.nbt.tag; - -public class ByteTag extends NumberTag implements Comparable { - - public static final byte ID = 1; - public static final byte ZERO_VALUE = 0; - - public ByteTag() { - super(ZERO_VALUE); - } - - public ByteTag(byte value) { - super(value); - } - - public ByteTag(boolean value) { - super((byte) (value ? 1 : 0)); - } - - @Override - public byte getID() { - return ID; - } - - public boolean asBoolean() { - return getValue() > 0; - } - - public void setValue(byte value) { - super.setValue(value); - } - - @Override - public boolean equals(Object other) { - return super.equals(other) && asByte() == ((ByteTag) other).asByte(); - } - - @Override - public int compareTo(ByteTag other) { - return getValue().compareTo(other.getValue()); - } - - @Override - public ByteTag clone() { - return new ByteTag(getValue()); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/tag/CompoundTag.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/CompoundTag.java deleted file mode 100644 index dab272071..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/tag/CompoundTag.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 com.volmit.iris.util.nbt.tag; - -import com.volmit.iris.engine.data.io.MaxDepthIO; -import com.volmit.iris.util.collection.KMap; - -import java.util.*; -import java.util.function.BiConsumer; - -@SuppressWarnings("ALL") -public class CompoundTag extends Tag>> implements Iterable>>, Comparable, MaxDepthIO { - - public static final byte ID = 10; - - public CompoundTag() { - super(createEmptyValue()); - } - - private static Map> createEmptyValue() { - return new KMap<>(); - } - - @Override - public byte getID() { - return ID; - } - - public int size() { - return getValue().size(); - } - - public Tag remove(String key) { - return getValue().remove(key); - } - - public void clear() { - getValue().clear(); - } - - public boolean containsKey(String key) { - return getValue().containsKey(key); - } - - public boolean containsValue(Tag value) { - return getValue().containsValue(value); - } - - public Collection> values() { - return getValue().values(); - } - - public Set keySet() { - return getValue().keySet(); - } - - public Set>> entrySet() { - return new NonNullEntrySet<>(getValue().entrySet()); - } - - @Override - public Iterator>> iterator() { - return entrySet().iterator(); - } - - public void forEach(BiConsumer> action) { - getValue().forEach(action); - } - - public > C get(String key, Class type) { - Tag t = getValue().get(key); - if (t != null) { - return type.cast(t); - } - return null; - } - - public Tag get(String key) { - return getValue().get(key); - } - - public ByteTag getByteTag(String key) { - return get(key, ByteTag.class); - } - - public ShortTag getShortTag(String key) { - return get(key, ShortTag.class); - } - - public IntTag getIntTag(String key) { - return get(key, IntTag.class); - } - - public LongTag getLongTag(String key) { - return get(key, LongTag.class); - } - - public FloatTag getFloatTag(String key) { - return get(key, FloatTag.class); - } - - public DoubleTag getDoubleTag(String key) { - return get(key, DoubleTag.class); - } - - public StringTag getStringTag(String key) { - return get(key, StringTag.class); - } - - public ByteArrayTag getByteArrayTag(String key) { - return get(key, ByteArrayTag.class); - } - - public IntArrayTag getIntArrayTag(String key) { - return get(key, IntArrayTag.class); - } - - public LongArrayTag getLongArrayTag(String key) { - return get(key, LongArrayTag.class); - } - - public ListTag getListTag(String key) { - return get(key, ListTag.class); - } - - public CompoundTag getCompoundTag(String key) { - return get(key, CompoundTag.class); - } - - public boolean getBoolean(String key) { - Tag t = get(key); - return t instanceof ByteTag && ((ByteTag) t).asByte() > 0; - } - - public byte getByte(String key) { - ByteTag t = getByteTag(key); - return t == null ? ByteTag.ZERO_VALUE : t.asByte(); - } - - public short getShort(String key) { - ShortTag t = getShortTag(key); - return t == null ? ShortTag.ZERO_VALUE : t.asShort(); - } - - public int getInt(String key) { - IntTag t = getIntTag(key); - return t == null ? IntTag.ZERO_VALUE : t.asInt(); - } - - public long getLong(String key) { - LongTag t = getLongTag(key); - return t == null ? LongTag.ZERO_VALUE : t.asLong(); - } - - public float getFloat(String key) { - FloatTag t = getFloatTag(key); - return t == null ? FloatTag.ZERO_VALUE : t.asFloat(); - } - - public double getDouble(String key) { - DoubleTag t = getDoubleTag(key); - return t == null ? DoubleTag.ZERO_VALUE : t.asDouble(); - } - - public String getString(String key) { - StringTag t = getStringTag(key); - return t == null ? StringTag.ZERO_VALUE : t.getValue(); - } - - public byte[] getByteArray(String key) { - ByteArrayTag t = getByteArrayTag(key); - return t == null ? ByteArrayTag.ZERO_VALUE : t.getValue(); - } - - public int[] getIntArray(String key) { - IntArrayTag t = getIntArrayTag(key); - return t == null ? IntArrayTag.ZERO_VALUE : t.getValue(); - } - - public long[] getLongArray(String key) { - LongArrayTag t = getLongArrayTag(key); - return t == null ? LongArrayTag.ZERO_VALUE : t.getValue(); - } - - public Tag put(String key, Tag tag) { - return getValue().put(Objects.requireNonNull(key), Objects.requireNonNull(tag)); - } - - public Tag putBoolean(String key, boolean value) { - return put(key, new ByteTag(value)); - } - - public Tag putByte(String key, byte value) { - return put(key, new ByteTag(value)); - } - - public Tag putShort(String key, short value) { - return put(key, new ShortTag(value)); - } - - public Tag putInt(String key, int value) { - return put(key, new IntTag(value)); - } - - public Tag putLong(String key, long value) { - return put(key, new LongTag(value)); - } - - public Tag putFloat(String key, float value) { - return put(key, new FloatTag(value)); - } - - public Tag putDouble(String key, double value) { - return put(key, new DoubleTag(value)); - } - - public Tag putString(String key, String value) { - return put(key, new StringTag(value)); - } - - public Tag putByteArray(String key, byte[] value) { - return put(key, new ByteArrayTag(value)); - } - - public Tag putIntArray(String key, int[] value) { - return put(key, new IntArrayTag(value)); - } - - public Tag putLongArray(String key, long[] value) { - return put(key, new LongArrayTag(value)); - } - - @Override - public String valueToString(int maxDepth) { - StringBuilder sb = new StringBuilder("{"); - boolean first = true; - for (Map.Entry> e : getValue().entrySet()) { - sb.append(first ? "" : ",") - .append(escapeString(e.getKey(), false)).append(":") - .append(e.getValue().toString(decrementMaxDepth(maxDepth))); - first = false; - } - sb.append("}"); - return sb.toString(); - } - - @Override - public boolean equals(Object other) { - if (this == other) { - return true; - } - if (!super.equals(other) || size() != ((CompoundTag) other).size()) { - return false; - } - for (Map.Entry> e : getValue().entrySet()) { - Tag v; - if ((v = ((CompoundTag) other).get(e.getKey())) == null || !e.getValue().equals(v)) { - return false; - } - } - return true; - } - - @Override - public int compareTo(CompoundTag o) { - return Integer.compare(size(), o.getValue().size()); - } - - @Override - public CompoundTag clone() { - CompoundTag copy = new CompoundTag(); - for (Map.Entry> e : getValue().entrySet()) { - copy.put(e.getKey(), e.getValue().clone()); - } - return copy; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/tag/DoubleTag.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/DoubleTag.java deleted file mode 100644 index cc66c0d50..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/tag/DoubleTag.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 com.volmit.iris.util.nbt.tag; - -public class DoubleTag extends NumberTag implements Comparable { - - public static final byte ID = 6; - public static final double ZERO_VALUE = 0.0D; - - public DoubleTag() { - super(ZERO_VALUE); - } - - public DoubleTag(double value) { - super(value); - } - - @Override - public byte getID() { - return ID; - } - - public void setValue(double value) { - super.setValue(value); - } - - @Override - public boolean equals(Object other) { - return super.equals(other) && getValue().equals(((DoubleTag) other).getValue()); - } - - @Override - public int compareTo(DoubleTag other) { - return getValue().compareTo(other.getValue()); - } - - @Override - public DoubleTag clone() { - return new DoubleTag(getValue()); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/tag/FloatTag.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/FloatTag.java deleted file mode 100644 index 1f626de61..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/tag/FloatTag.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 com.volmit.iris.util.nbt.tag; - -public class FloatTag extends NumberTag implements Comparable { - - public static final byte ID = 5; - public static final float ZERO_VALUE = 0.0F; - - public FloatTag() { - super(ZERO_VALUE); - } - - public FloatTag(float value) { - super(value); - } - - @Override - public byte getID() { - return ID; - } - - public void setValue(float value) { - super.setValue(value); - } - - @Override - public boolean equals(Object other) { - return super.equals(other) && getValue().equals(((FloatTag) other).getValue()); - } - - @Override - public int compareTo(FloatTag other) { - return getValue().compareTo(other.getValue()); - } - - @Override - public FloatTag clone() { - return new FloatTag(getValue()); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/tag/IntArrayTag.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/IntArrayTag.java deleted file mode 100644 index 9fde7135b..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/tag/IntArrayTag.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 com.volmit.iris.util.nbt.tag; - -import java.util.Arrays; - -public class IntArrayTag extends ArrayTag implements Comparable { - - public static final byte ID = 11; - public static final int[] ZERO_VALUE = new int[0]; - - public IntArrayTag() { - super(ZERO_VALUE); - } - - public IntArrayTag(int[] value) { - super(value); - } - - @Override - public byte getID() { - return ID; - } - - @Override - public boolean equals(Object other) { - return super.equals(other) && Arrays.equals(getValue(), ((IntArrayTag) other).getValue()); - } - - @Override - public int hashCode() { - return Arrays.hashCode(getValue()); - } - - @Override - public int compareTo(IntArrayTag other) { - return Integer.compare(length(), other.length()); - } - - @Override - public IntArrayTag clone() { - return new IntArrayTag(Arrays.copyOf(getValue(), length())); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/tag/IntTag.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/IntTag.java deleted file mode 100644 index 3949bb98e..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/tag/IntTag.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 com.volmit.iris.util.nbt.tag; - -public class IntTag extends NumberTag implements Comparable { - - public static final byte ID = 3; - public static final int ZERO_VALUE = 0; - - public IntTag() { - super(ZERO_VALUE); - } - - public IntTag(int value) { - super(value); - } - - @Override - public byte getID() { - return ID; - } - - public void setValue(int value) { - super.setValue(value); - } - - @Override - public boolean equals(Object other) { - return super.equals(other) && asInt() == ((IntTag) other).asInt(); - } - - @Override - public int compareTo(IntTag other) { - return getValue().compareTo(other.getValue()); - } - - @Override - public IntTag clone() { - return new IntTag(getValue()); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/tag/ListTag.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/ListTag.java deleted file mode 100644 index d096a6f52..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/tag/ListTag.java +++ /dev/null @@ -1,349 +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 com.volmit.iris.util.nbt.tag; - -import com.volmit.iris.engine.data.io.MaxDepthIO; -import com.volmit.iris.util.collection.KList; - -import java.util.*; -import java.util.concurrent.CopyOnWriteArrayList; -import java.util.function.Consumer; - -/** - * ListTag represents a typed List in the nbt structure. - * An empty {@link ListTag} created using {@link ListTag#createUnchecked(Class)} will be of unknown type - * and returns an {@link EndTag}{@code .class} in {@link ListTag#getTypeClass()}. - * The type of an empty untyped {@link ListTag} can be set by using any of the {@code add()} - * methods or any of the {@code as...List()} methods. - */ -@SuppressWarnings("ALL") -public class ListTag> extends Tag> implements Iterable, Comparable>, MaxDepthIO { - - public static final byte ID = 9; - - private Class typeClass = null; - - private ListTag() { - super(createEmptyValue(3)); - } - - /** - * @param typeClass The exact class of the elements - * @throws IllegalArgumentException When {@code typeClass} is {@link EndTag}{@code .class} - * @throws NullPointerException When {@code typeClass} is {@code null} - */ - public ListTag(Class typeClass) throws IllegalArgumentException, NullPointerException { - super(createEmptyValue(3)); - if (typeClass == EndTag.class) { - throw new IllegalArgumentException("cannot create ListTag with EndTag elements"); - } - this.typeClass = Objects.requireNonNull(typeClass); - } - - /** - *

Creates a non-type-safe ListTag. Its element type will be set after the first - * element was added.

- * - *

This is an internal helper method for cases where the element type is not known - * at construction time. Use {@link #ListTag(Class)} when the type is known.

- * - * @return A new non-type-safe ListTag - */ - public static ListTag createUnchecked(Class typeClass) { - ListTag list = new ListTag<>(); - list.typeClass = typeClass; - return list; - } - - /** - *

Creates an empty mutable list to be used as empty value of ListTags.

- * - * @param Type of the list elements - * @param initialCapacity The initial capacity of the returned List - * @return An instance of {@link List} with an initial capacity of 3 - */ - private static List createEmptyValue(@SuppressWarnings("SameParameterValue") int initialCapacity) { - return new KList<>(initialCapacity); - } - - public ListTag makeAtomic() { - setValue(new CopyOnWriteArrayList<>(getValue())); - return this; - } - - @Override - public byte getID() { - return ID; - } - - public Class getTypeClass() { - return typeClass == null ? EndTag.class : typeClass; - } - - public int size() { - return getValue().size(); - } - - public T remove(int index) { - return getValue().remove(index); - } - - public void clear() { - getValue().clear(); - } - - public boolean contains(T t) { - return getValue().contains(t); - } - - public boolean containsAll(Collection> tags) { - return getValue().containsAll(tags); - } - - public void sort(Comparator comparator) { - getValue().sort(comparator); - } - - @Override - public Iterator iterator() { - return getValue().iterator(); - } - - @Override - public void forEach(Consumer action) { - getValue().forEach(action); - } - - public T set(int index, T t) { - return getValue().set(index, Objects.requireNonNull(t)); - } - - /** - * Adds a Tag to this ListTag after the last index. - * - * @param t The element to be added. - */ - public void add(T t) { - add(size(), t); - } - - public void add(int index, T t) { - Objects.requireNonNull(t); - if (typeClass == null || typeClass == EndTag.class) { - typeClass = t.getClass(); - } else if (typeClass != t.getClass()) { - throw new ClassCastException( - String.format("cannot add %s to ListTag<%s>", - t.getClass().getSimpleName(), - typeClass.getSimpleName())); - } - getValue().add(index, t); - } - - public void addAll(Collection t) { - for (T tt : t) { - add(tt); - } - } - - public void addAll(int index, Collection t) { - int i = 0; - for (T tt : t) { - add(index + i, tt); - i++; - } - } - - public void addBoolean(boolean value) { - addUnchecked(new ByteTag(value)); - } - - public void addByte(byte value) { - addUnchecked(new ByteTag(value)); - } - - public void addShort(short value) { - addUnchecked(new ShortTag(value)); - } - - public void addInt(int value) { - addUnchecked(new IntTag(value)); - } - - public void addLong(long value) { - addUnchecked(new LongTag(value)); - } - - public void addFloat(float value) { - addUnchecked(new FloatTag(value)); - } - - public void addDouble(double value) { - addUnchecked(new DoubleTag(value)); - } - - public void addString(String value) { - addUnchecked(new StringTag(value)); - } - - public void addByteArray(byte[] value) { - addUnchecked(new ByteArrayTag(value)); - } - - public void addIntArray(int[] value) { - addUnchecked(new IntArrayTag(value)); - } - - public void addLongArray(long[] value) { - addUnchecked(new LongArrayTag(value)); - } - - public T get(int index) { - return getValue().get(index); - } - - public int indexOf(T t) { - return getValue().indexOf(t); - } - - @SuppressWarnings("unchecked") - public > ListTag asTypedList(Class type) { - checkTypeClass(type); - typeClass = type; - return (ListTag) this; - } - - public ListTag asByteTagList() { - return asTypedList(ByteTag.class); - } - - public ListTag asShortTagList() { - return asTypedList(ShortTag.class); - } - - public ListTag asIntTagList() { - return asTypedList(IntTag.class); - } - - public ListTag asLongTagList() { - return asTypedList(LongTag.class); - } - - public ListTag asFloatTagList() { - return asTypedList(FloatTag.class); - } - - public ListTag asDoubleTagList() { - return asTypedList(DoubleTag.class); - } - - public ListTag asStringTagList() { - return asTypedList(StringTag.class); - } - - public ListTag asByteArrayTagList() { - return asTypedList(ByteArrayTag.class); - } - - public ListTag asIntArrayTagList() { - return asTypedList(IntArrayTag.class); - } - - public ListTag asLongArrayTagList() { - return asTypedList(LongArrayTag.class); - } - - @SuppressWarnings("unchecked") - public ListTag> asListTagList() { - checkTypeClass(ListTag.class); - typeClass = ListTag.class; - return (ListTag>) this; - } - - public ListTag asCompoundTagList() { - return asTypedList(CompoundTag.class); - } - - @Override - public String valueToString(int maxDepth) { - StringBuilder sb = new StringBuilder("{\"type\":\"").append(getTypeClass().getSimpleName()).append("\",\"list\":["); - for (int i = 0; i < size(); i++) { - sb.append(i > 0 ? "," : "").append(get(i).valueToString(decrementMaxDepth(maxDepth))); - } - sb.append("]}"); - return sb.toString(); - } - - @Override - public boolean equals(Object other) { - if (this == other) { - return true; - } - if (!super.equals(other) || size() != ((ListTag) other).size() || getTypeClass() != ((ListTag) other).getTypeClass()) { - return false; - } - for (int i = 0; i < size(); i++) { - if (!get(i).equals(((ListTag) other).get(i))) { - return false; - } - } - return true; - } - - @Override - public int hashCode() { - return Objects.hash(getValue().hashCode()); - } - - @Override - public int compareTo(ListTag o) { - return Integer.compare(size(), o.getValue().size()); - } - - @SuppressWarnings("unchecked") - @Override - public ListTag clone() { - ListTag copy = new ListTag<>(); - // assure type safety for clone - copy.typeClass = typeClass; - for (T t : getValue()) { - copy.add((T) t.clone()); - } - return copy; - } - - //TODO: make private - @SuppressWarnings("unchecked") - public void addUnchecked(Tag tag) { - if (typeClass != null && typeClass != tag.getClass() && typeClass != EndTag.class) { - throw new IllegalArgumentException(String.format( - "cannot add %s to ListTag<%s>", - tag.getClass().getSimpleName(), typeClass.getSimpleName())); - } - add(size(), (T) tag); - } - - private void checkTypeClass(Class clazz) { - if (typeClass != null && typeClass != EndTag.class && typeClass != clazz) { - throw new ClassCastException(String.format( - "cannot cast ListTag<%s> to ListTag<%s>", - typeClass.getSimpleName(), clazz.getSimpleName())); - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/tag/LongArrayTag.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/LongArrayTag.java deleted file mode 100644 index 4707b5f55..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/tag/LongArrayTag.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 com.volmit.iris.util.nbt.tag; - -import java.util.Arrays; - -public class LongArrayTag extends ArrayTag implements Comparable { - - public static final byte ID = 12; - public static final long[] ZERO_VALUE = new long[0]; - - public LongArrayTag() { - super(ZERO_VALUE); - } - - public LongArrayTag(long[] value) { - super(value); - } - - @Override - public byte getID() { - return ID; - } - - @Override - public boolean equals(Object other) { - return super.equals(other) && Arrays.equals(getValue(), ((LongArrayTag) other).getValue()); - } - - @Override - public int hashCode() { - return Arrays.hashCode(getValue()); - } - - @Override - public int compareTo(LongArrayTag other) { - return Integer.compare(length(), other.length()); - } - - @Override - public LongArrayTag clone() { - return new LongArrayTag(Arrays.copyOf(getValue(), length())); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/tag/LongTag.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/LongTag.java deleted file mode 100644 index d240b158f..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/tag/LongTag.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 com.volmit.iris.util.nbt.tag; - -public class LongTag extends NumberTag implements Comparable { - - public static final byte ID = 4; - public static final long ZERO_VALUE = 0L; - - public LongTag() { - super(ZERO_VALUE); - } - - public LongTag(long value) { - super(value); - } - - @Override - public byte getID() { - return ID; - } - - public void setValue(long value) { - super.setValue(value); - } - - @Override - public boolean equals(Object other) { - return super.equals(other) && asLong() == ((LongTag) other).asLong(); - } - - @Override - public int compareTo(LongTag other) { - return getValue().compareTo(other.getValue()); - } - - @Override - public LongTag clone() { - return new LongTag(getValue()); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/tag/NonNullEntrySet.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/NonNullEntrySet.java deleted file mode 100644 index 3053f757b..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/tag/NonNullEntrySet.java +++ /dev/null @@ -1,160 +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 com.volmit.iris.util.nbt.tag; - -import java.util.Collection; -import java.util.Iterator; -import java.util.Map; -import java.util.Set; - -/** - * A decorator for the Set returned by CompoundTag#entrySet() - * that disallows setting null values. - */ -@SuppressWarnings("ClassCanBeRecord") -class NonNullEntrySet implements Set> { - - private final Set> set; - - NonNullEntrySet(Set> set) { - this.set = set; - } - - @Override - public int size() { - return set.size(); - } - - @Override - public boolean isEmpty() { - return set.isEmpty(); - } - - @Override - public boolean contains(Object o) { - return set.contains(o); - } - - @Override - public Iterator> iterator() { - return new NonNullEntrySetIterator(set.iterator()); - } - - @Override - public Object[] toArray() { - return set.toArray(); - } - - @Override - public T[] toArray(T[] a) { - return set.toArray(a); - } - - @Override - public boolean add(Map.Entry kvEntry) { - return set.add(kvEntry); - } - - @Override - public boolean remove(Object o) { - return set.remove(o); - } - - @Override - public boolean containsAll(Collection c) { - return set.containsAll(c); - } - - @Override - public boolean addAll(Collection> c) { - return set.addAll(c); - } - - @Override - public boolean retainAll(Collection c) { - return set.retainAll(c); - } - - @Override - public boolean removeAll(Collection c) { - return set.removeAll(c); - } - - @Override - public void clear() { - set.clear(); - } - - class NonNullEntrySetIterator implements Iterator> { - - private final Iterator> iterator; - - NonNullEntrySetIterator(Iterator> iterator) { - this.iterator = iterator; - } - - @Override - public boolean hasNext() { - return iterator.hasNext(); - } - - @Override - public Map.Entry next() { - return new NonNullEntry(iterator.next()); - } - } - - class NonNullEntry implements Map.Entry { - - private final Map.Entry entry; - - NonNullEntry(Map.Entry entry) { - this.entry = entry; - } - - @Override - public K getKey() { - return entry.getKey(); - } - - @Override - public V getValue() { - return entry.getValue(); - } - - @Override - public V setValue(V value) { - if (value == null) { - throw new NullPointerException(getClass().getSimpleName() + " does not allow setting null"); - } - return entry.setValue(value); - } - - @SuppressWarnings("EqualsWhichDoesntCheckParameterClass") - @Override - public boolean equals(Object o) { - return entry.equals(o); - } - - @Override - public int hashCode() { - return entry.hashCode(); - } - } -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/nbt/tag/NumberTag.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/NumberTag.java deleted file mode 100644 index ca66a70f1..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/tag/NumberTag.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 com.volmit.iris.util.nbt.tag; - -public abstract class NumberTag> extends Tag { - - public NumberTag(T value) { - super(value); - } - - public byte asByte() { - return getValue().byteValue(); - } - - public short asShort() { - return getValue().shortValue(); - } - - public int asInt() { - return getValue().intValue(); - } - - public long asLong() { - return getValue().longValue(); - } - - public float asFloat() { - return getValue().floatValue(); - } - - public double asDouble() { - return getValue().doubleValue(); - } - - @Override - public String valueToString(int maxDepth) { - return getValue().toString(); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/tag/ShortTag.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/ShortTag.java deleted file mode 100644 index b92e939fe..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/tag/ShortTag.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 com.volmit.iris.util.nbt.tag; - -public class ShortTag extends NumberTag implements Comparable { - - public static final byte ID = 2; - public static final short ZERO_VALUE = 0; - - public ShortTag() { - super(ZERO_VALUE); - } - - public ShortTag(short value) { - super(value); - } - - @Override - public byte getID() { - return ID; - } - - public void setValue(short value) { - super.setValue(value); - } - - @Override - public boolean equals(Object other) { - return super.equals(other) && asShort() == ((ShortTag) other).asShort(); - } - - @Override - public int compareTo(ShortTag other) { - return getValue().compareTo(other.getValue()); - } - - @Override - public ShortTag clone() { - return new ShortTag(getValue()); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/tag/StringTag.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/StringTag.java deleted file mode 100644 index b135dc53d..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/tag/StringTag.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 com.volmit.iris.util.nbt.tag; - -public class StringTag extends Tag implements Comparable { - - public static final byte ID = 8; - public static final String ZERO_VALUE = ""; - - public StringTag() { - super(ZERO_VALUE); - } - - public StringTag(String value) { - super(value); - } - - @Override - public byte getID() { - return ID; - } - - @Override - public String getValue() { - return super.getValue(); - } - - @Override - public void setValue(String value) { - super.setValue(value); - } - - @Override - public String valueToString(int maxDepth) { - return escapeString(getValue(), false); - } - - @Override - public boolean equals(Object other) { - return super.equals(other) && getValue().equals(((StringTag) other).getValue()); - } - - @Override - public int compareTo(StringTag o) { - return getValue().compareTo(o.getValue()); - } - - @Override - public StringTag clone() { - return new StringTag(getValue()); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/nbt/tag/Tag.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/Tag.java deleted file mode 100644 index 5c9cf6c56..000000000 --- a/core/src/main/java/com/volmit/iris/util/nbt/tag/Tag.java +++ /dev/null @@ -1,218 +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 com.volmit.iris.util.nbt.tag; - -import com.volmit.iris.engine.data.io.MaxDepthReachedException; - -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; -import java.util.Objects; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -/** - * Base class for all NBT tags. - * - *

Nesting

- *

All methods serializing instances or deserializing data track the nesting levels to prevent - * circular references or malicious data which could, when deserialized, result in thousands - * of instances causing a denial of service.

- * - *

These methods have a parameter for the maximum nesting depth they are allowed to traverse. A - * value of {@code 0} means that only the object itself, but no nested objects may be processed. - * If an instance is nested further than allowed, a {@link MaxDepthReachedException} will be thrown. - * Providing a negative maximum nesting depth will cause an {@code IllegalArgumentException} - * to be thrown.

- * - *

Some methods do not provide a parameter to specify the maximum nesting depth, but instead use - * {@link #DEFAULT_MAX_DEPTH}, which is also the maximum used by Minecraft. This is documented for - * the respective methods.

- * - *

If custom NBT tags contain objects other than NBT tags, which can be nested as well, then there - * is no guarantee that {@code MaxDepthReachedException}s are thrown for them. The respective class - * will document this behavior accordingly.

- * - * @param The type of the contained value - */ -public abstract class Tag implements Cloneable { - - /** - * The default maximum depth of the NBT structure. - */ - public static final int DEFAULT_MAX_DEPTH = 512; - - private static final Map ESCAPE_CHARACTERS; - private static final Pattern ESCAPE_PATTERN = Pattern.compile("[\\\\\n\t\r\"]"); - private static final Pattern NON_QUOTE_PATTERN = Pattern.compile("[a-zA-Z0-9_\\-+]+"); - - static { - final Map temp = new HashMap<>(); - temp.put("\\", "\\\\\\\\"); - temp.put("\n", "\\\\n"); - temp.put("\t", "\\\\t"); - temp.put("\r", "\\\\r"); - temp.put("\"", "\\\\\""); - //noinspection Java9CollectionFactory - ESCAPE_CHARACTERS = Collections.unmodifiableMap(temp); - } - - private T value; - - /** - * Initializes this Tag with some value. If the value is {@code null}, it will - * throw a {@code NullPointerException} - * - * @param value The value to be set for this Tag. - */ - public Tag(T value) { - setValue(value); - } - - /** - * Escapes a string to fit into a JSON-like string representation for Minecraft - * or to create the JSON string representation of a Tag returned from {@link Tag#toString()} - * - * @param s The string to be escaped. - * @param lenient {@code true} if it should force double quotes ({@code "}) at the start and - * the end of the string. - * @return The escaped string. - */ - @SuppressWarnings("StringBufferMayBeStringBuilder") - protected static String escapeString(String s, @SuppressWarnings("SameParameterValue") boolean lenient) { - StringBuffer sb = new StringBuffer(); - Matcher m = ESCAPE_PATTERN.matcher(s); - while (m.find()) { - m.appendReplacement(sb, ESCAPE_CHARACTERS.get(m.group())); - } - m.appendTail(sb); - m = NON_QUOTE_PATTERN.matcher(s); - if (!lenient || !m.matches()) { - sb.insert(0, "\"").append("\""); - } - return sb.toString(); - } - - /** - * @return This Tag's ID, usually used for serialization and deserialization. - */ - public abstract byte getID(); - - /** - * @return The value of this Tag. - */ - public T getValue() { - return value; - } - - /** - * Sets the value for this Tag directly. - * - * @param value The value to be set. - * @throws NullPointerException If the value is null - */ - protected void setValue(T value) { - this.value = checkValue(value); - } - - /** - * Checks if the value {@code value} is {@code null}. - * - * @param value The value to check - * @return The parameter {@code value} - * @throws NullPointerException If {@code value} was {@code null} - */ - protected T checkValue(T value) { - return Objects.requireNonNull(value); - } - - /** - * Calls {@link Tag#toString(int)} with an initial depth of {@code 0}. - * - * @throws MaxDepthReachedException If the maximum nesting depth is exceeded. - * @see Tag#toString(int) - */ - @Override - public final String toString() { - return toString(DEFAULT_MAX_DEPTH); - } - - /** - * Creates a string representation of this Tag in a valid JSON format. - * - * @param maxDepth The maximum nesting depth. - * @return The string representation of this Tag. - * @throws MaxDepthReachedException If the maximum nesting depth is exceeded. - */ - public String toString(int maxDepth) { - return "{\"type\":\"" + getClass().getSimpleName() + "\"," + - "\"value\":" + valueToString(maxDepth) + "}"; - } - - /** - * Calls {@link Tag#valueToString(int)} with {@link Tag#DEFAULT_MAX_DEPTH}. - * - * @return The string representation of the value of this Tag. - * @throws MaxDepthReachedException If the maximum nesting depth is exceeded. - */ - public String valueToString() { - return valueToString(DEFAULT_MAX_DEPTH); - } - - /** - * Returns a JSON representation of the value of this Tag. - * - * @param maxDepth The maximum nesting depth. - * @return The string representation of the value of this Tag. - * @throws MaxDepthReachedException If the maximum nesting depth is exceeded. - */ - public abstract String valueToString(int maxDepth); - - /** - * Returns whether this Tag and some other Tag are equal. - * They are equal if {@code other} is not {@code null} and they are of the same class. - * Custom Tag implementations should overwrite this but check the result - * of this {@code super}-method while comparing. - * - * @param other The Tag to compare to. - * @return {@code true} if they are equal based on the conditions mentioned above. - */ - @Override - public boolean equals(Object other) { - return other != null && getClass() == other.getClass(); - } - - /** - * Calculates the hash code of this Tag. Tags which are equal according to {@link Tag#equals(Object)} - * must return an equal hash code. - * - * @return The hash code of this Tag. - */ - @Override - public int hashCode() { - return value.hashCode(); - } - - /** - * Creates a clone of this Tag. - * - * @return A clone of this Tag. - */ - public abstract Tag clone(); -} diff --git a/core/src/main/java/com/volmit/iris/util/network/DL.java b/core/src/main/java/com/volmit/iris/util/network/DL.java deleted file mode 100644 index 5eccf5a7d..000000000 --- a/core/src/main/java/com/volmit/iris/util/network/DL.java +++ /dev/null @@ -1,274 +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 com.volmit.iris.util.network; - -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.io.IO; -import com.volmit.iris.util.scheduling.ChronoLatch; - -import java.io.*; -import java.net.URL; -import java.net.URLConnection; -import java.util.Arrays; - -public abstract class DL { - protected File d; - protected URL u; - protected ChronoLatch latch; - protected KSet flags; - protected MeteredOutputStream o; - protected DownloadState state; - protected int timeout; - protected long size; - protected long start; - protected long downloaded; - protected long currentChunk; - protected long lastChunk; - protected long bps; - protected int bufferSize; - protected long lastPull; - protected DownloadMonitor m; - - public DL(URL u, File d, DownloadFlag... downloadFlags) { - this.d = d; - this.u = u; - size = -1; - lastPull = -1; - downloaded = 0; - bufferSize = 8192 * 32; - currentChunk = 0; - lastChunk = -1; - bps = -1; - start = -1; - timeout = 10000; - state = DownloadState.NEW; - flags = new KSet<>(); - latch = new ChronoLatch(500); - - flags.addAll(Arrays.asList(downloadFlags)); - } - - public void monitor(DownloadMonitor m) { - this.m = m; - } - - public void update() { - if (m != null) { - m.onUpdate(state, getProgress(), getElapsed(), getTimeLeft(), bps, getDiskBytesPerSecond(), size, downloaded, bufferSize, getBufferUse()); - } - } - - public boolean hasFlag(DownloadFlag f) { - return flags.contains(f); - } - - public boolean isState(DownloadState s) { - return state.equals(s); - } - - protected void state(DownloadState s) { - this.state = s; - update(); - } - - public int getBufferSize() { - return bufferSize; - } - - public void start() throws IOException { - if (!isState(DownloadState.NEW)) { - throw new DownloadException("Cannot start download while " + state.toString()); - } - - state(DownloadState.STARTING); - - if (hasFlag(DownloadFlag.CALCULATE_SIZE)) { - size = calculateSize(); - } - - start = System.currentTimeMillis(); - downloaded = 0; - bps = 0; - lastChunk = System.currentTimeMillis(); - o = new MeteredOutputStream(new FileOutputStream(d), 100); - openStream(); - state(DownloadState.DOWNLOADING); - } - - protected abstract long download() throws IOException; - - protected abstract void openStream() throws IOException; - - protected abstract void closeStream() throws IOException; - - public void downloadChunk() throws IOException { - if (!isState(DownloadState.DOWNLOADING)) { - throw new DownloadException("Cannot download while " + state.toString()); - } - - long d = download(); - lastPull = d; - - if (d < 0) { - finishDownload(); - return; - } - - downloaded += d; - currentChunk += d; - - double chunkTime = (double) (System.currentTimeMillis() - lastChunk) / 1000D; - bps = (long) ((double) currentChunk / chunkTime); - - if (latch.flip()) { - update(); - } - } - - public double getBufferUse() { - return (double) lastPull / (double) bufferSize; - } - - private void finishDownload() throws IOException { - if (!isState(DownloadState.NEW)) { - throw new DownloadException("Cannot finish download while " + state.toString()); - } - - closeStream(); - o.close(); - state(DownloadState.COMPLETE); - } - - public long getElapsed() { - return System.currentTimeMillis() - start; - } - - public long getRemaining() { - return size - downloaded; - } - - public long getTimeLeft() { - return (long) (((double) getRemaining() / (double) bps) * 1000D); - } - - public long getDiskBytesPerSecond() { - if (o == null) { - return -1; - } - - return o.getBps(); - } - - public long getBytesPerSecond() { - return bps; - } - - public double getProgress() { - return hasProgress() ? ((double) downloaded / (double) size) : -1D; - } - - public boolean hasProgress() { - return size > 0; - } - - private long calculateSize() throws IOException { - URLConnection c = u.openConnection(); - c.setConnectTimeout(timeout); - c.setReadTimeout(timeout); - c.connect(); - return c.getContentLengthLong(); - } - - public enum DownloadFlag { - CALCULATE_SIZE - } - - public enum DownloadState { - NEW, - STARTING, - DOWNLOADING, - FINALIZING, - COMPLETE, - FAILED - } - - public static class ThrottledDownload extends Download { - private final long mbps; - - public ThrottledDownload(URL u, File d, long mbps, DownloadFlag... downloadFlags) { - super(u, d, downloadFlags); - this.mbps = mbps; - } - - @Override - protected long download() throws IOException { - if (getBytesPerSecond() > mbps) { - try { - Thread.sleep(40); - } catch (InterruptedException e) { - e.printStackTrace(); - } - - return IO.transfer(in, o, 8192, mbps / 20); - } - - return IO.transfer(in, o, 8192, bufferSize); - } - } - - public static class DoubleBufferedDownload extends Download { - protected BufferedOutputStream os; - - public DoubleBufferedDownload(URL u, File d, DownloadFlag... downloadFlags) { - super(u, d, downloadFlags); - } - - @Override - protected void openStream() throws IOException { - os = new BufferedOutputStream(o, 8192 * 16); - in = new BufferedInputStream(u.openStream(), 8192 * 16); - buf = new byte[8192 * 2]; - } - } - - public static class Download extends DL { - protected InputStream in; - protected byte[] buf; - - public Download(URL u, File d, DownloadFlag... downloadFlags) { - super(u, d, downloadFlags); - } - - @Override - protected long download() throws IOException { - return IO.transfer(in, o, buf, bufferSize); - } - - @Override - protected void openStream() throws IOException { - in = u.openStream(); - buf = new byte[8192]; - } - - @Override - protected void closeStream() throws IOException { - in.close(); - } - } -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/network/DownloadException.java b/core/src/main/java/com/volmit/iris/util/network/DownloadException.java deleted file mode 100644 index 970f6691e..000000000 --- a/core/src/main/java/com/volmit/iris/util/network/DownloadException.java +++ /dev/null @@ -1,41 +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 com.volmit.iris.util.network; - -import java.io.IOException; - -public class DownloadException extends IOException { - private static final long serialVersionUID = 5137918663903349839L; - - public DownloadException() { - super(); - } - - public DownloadException(String message, Throwable cause) { - super(message, cause); - } - - public DownloadException(String message) { - super(message); - } - - public DownloadException(Throwable cause) { - super(cause); - } -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/network/DownloadMonitor.java b/core/src/main/java/com/volmit/iris/util/network/DownloadMonitor.java deleted file mode 100644 index 585ab84db..000000000 --- a/core/src/main/java/com/volmit/iris/util/network/DownloadMonitor.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 com.volmit.iris.util.network; - -@FunctionalInterface -public interface DownloadMonitor { - void onUpdate(DL.DownloadState state, double progress, long elapsed, long estimated, long bps, long iobps, long size, long downloaded, long buffer, double bufferuse); -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/network/MeteredInputStream.java b/core/src/main/java/com/volmit/iris/util/network/MeteredInputStream.java deleted file mode 100644 index a7d37ddf3..000000000 --- a/core/src/main/java/com/volmit/iris/util/network/MeteredInputStream.java +++ /dev/null @@ -1,105 +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 com.volmit.iris.util.network; - -import java.io.IOException; -import java.io.InputStream; - -public class MeteredInputStream extends InputStream { - private final InputStream os; - private long written; - private long totalWritten; - private long since; - private boolean auto; - private long interval; - private long bps; - - public MeteredInputStream(InputStream os, long interval) { - this.os = os; - written = 0; - totalWritten = 0; - auto = true; - this.interval = interval; - bps = 0; - since = System.currentTimeMillis(); - } - - public MeteredInputStream(InputStream os) { - this(os, 100); - auto = false; - } - - @Override - public int read() throws IOException { - written++; - totalWritten++; - - if (auto && System.currentTimeMillis() - getSince() > interval) { - pollRead(); - } - - return os.read(); - } - - public long getSince() { - return since; - } - - public long getRead() { - return written; - } - - public long pollRead() { - long w = written; - written = 0; - double secondsElapsedSince = (double) (System.currentTimeMillis() - since) / 1000.0; - bps = (long) ((double) w / secondsElapsedSince); - since = System.currentTimeMillis(); - - return w; - } - - public void close() throws IOException { - os.close(); - } - - public boolean isAuto() { - return auto; - } - - public void setAuto(boolean auto) { - this.auto = auto; - } - - public long getInterval() { - return interval; - } - - public void setInterval(long interval) { - this.interval = interval; - } - - public long getTotalRead() { - return totalWritten; - } - - public long getBps() { - return bps; - } -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/network/MeteredOutputStream.java b/core/src/main/java/com/volmit/iris/util/network/MeteredOutputStream.java deleted file mode 100644 index 105f4f56e..000000000 --- a/core/src/main/java/com/volmit/iris/util/network/MeteredOutputStream.java +++ /dev/null @@ -1,103 +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 com.volmit.iris.util.network; - -import java.io.IOException; -import java.io.OutputStream; - -public class MeteredOutputStream extends OutputStream { - private final OutputStream os; - private long written; - private long totalWritten; - private long since; - private boolean auto; - private long interval; - private long bps; - - public MeteredOutputStream(OutputStream os, long interval) { - this.os = os; - written = 0; - totalWritten = 0; - auto = true; - this.interval = interval; - bps = 0; - since = System.currentTimeMillis(); - } - - public MeteredOutputStream(OutputStream os) { - this(os, 100); - auto = false; - } - - @Override - public void write(int b) throws IOException { - os.write(b); - written++; - totalWritten++; - - if (auto && System.currentTimeMillis() - getSince() > interval) { - pollWritten(); - } - } - - public long getSince() { - return since; - } - - public long getWritten() { - return written; - } - - public long pollWritten() { - long w = written; - written = 0; - double secondsElapsedSince = (double) (System.currentTimeMillis() - since) / 1000.0; - bps = (long) ((double) w / secondsElapsedSince); - since = System.currentTimeMillis(); - return w; - } - - public void close() throws IOException { - os.close(); - } - - public boolean isAuto() { - return auto; - } - - public void setAuto(boolean auto) { - this.auto = auto; - } - - public long getInterval() { - return interval; - } - - public void setInterval(long interval) { - this.interval = interval; - } - - public long getTotalWritten() { - return totalWritten; - } - - public long getBps() { - return bps; - } -} \ No newline at end of file diff --git a/core/src/main/java/com/volmit/iris/util/parallel/AtomicBooleanArray.java b/core/src/main/java/com/volmit/iris/util/parallel/AtomicBooleanArray.java deleted file mode 100644 index 575634831..000000000 --- a/core/src/main/java/com/volmit/iris/util/parallel/AtomicBooleanArray.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.volmit.iris.util.parallel; - -import java.io.Serializable; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; - -public class AtomicBooleanArray implements Serializable { - private static final VarHandle AA = MethodHandles.arrayElementVarHandle(boolean[].class); - private final boolean[] array; - - public AtomicBooleanArray(int length) { - array = new boolean[length]; - } - - public final int length() { - return array.length; - } - - public final boolean get(int index) { - return (boolean) AA.getVolatile(array, index); - } - - public final void set(int index, boolean newValue) { - AA.setVolatile(array, index, newValue); - } - - public final boolean getAndSet(int index, boolean newValue) { - return (boolean) AA.getAndSet(array, index, newValue); - } - - public final boolean compareAndSet(int index, boolean expectedValue, boolean newValue) { - return (boolean) AA.compareAndSet(array, index, expectedValue, newValue); - } - - @Override - public String toString() { - int iMax = array.length - 1; - if (iMax == -1) - return "[]"; - - StringBuilder b = new StringBuilder(); - b.append('['); - for (int i = 0; ; i++) { - b.append(get(i)); - if (i == iMax) - return b.append(']').toString(); - b.append(',').append(' '); - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/parallel/BurstExecutor.java b/core/src/main/java/com/volmit/iris/util/parallel/BurstExecutor.java deleted file mode 100644 index dc512a9f3..000000000 --- a/core/src/main/java/com/volmit/iris/util/parallel/BurstExecutor.java +++ /dev/null @@ -1,117 +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 com.volmit.iris.util.parallel; - -import com.volmit.iris.Iris; -import com.volmit.iris.util.collection.KList; -import lombok.Getter; -import lombok.Setter; - -import java.util.List; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Future; - -@SuppressWarnings("ALL") -public class BurstExecutor { - private final ExecutorService executor; - @Getter - private final KList> futures; - @Setter - private boolean multicore = true; - - public BurstExecutor(ExecutorService executor, int burstSizeEstimate) { - this.executor = executor; - futures = new KList>(burstSizeEstimate); - } - - @SuppressWarnings("UnusedReturnValue") - public Future queue(Runnable r) { - if (!multicore) { - r.run(); - return CompletableFuture.completedFuture(null); - } - - synchronized (futures) { - - Future c = executor.submit(r); - futures.add(c); - return c; - } - } - - public BurstExecutor queue(List r) { - if (!multicore) { - for (Runnable i : new KList<>(r)) { - i.run(); - } - - return this; - } - - synchronized (futures) { - for (Runnable i : new KList<>(r)) { - queue(i); - } - } - - return this; - } - - public BurstExecutor queue(Runnable[] r) { - if (!multicore) { - for (Runnable i : new KList<>(r)) { - i.run(); - } - - return this; - } - - synchronized (futures) { - for (Runnable i : r) { - queue(i); - } - } - - return this; - } - - public void complete() { - if (!multicore) { - return; - } - - synchronized (futures) { - if (futures.isEmpty()) { - return; - } - - try { - for (Future i : futures) { - i.get(); - } - - futures.clear(); - } catch (InterruptedException | ExecutionException e) { - Iris.reportError(e); - } - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/parallel/GridLock.java b/core/src/main/java/com/volmit/iris/util/parallel/GridLock.java deleted file mode 100644 index 1afafe7fe..000000000 --- a/core/src/main/java/com/volmit/iris/util/parallel/GridLock.java +++ /dev/null @@ -1,99 +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 com.volmit.iris.util.parallel; - -import com.volmit.iris.Iris; -import com.volmit.iris.util.function.NastyRunnable; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.io.IORunnable; - -import java.io.IOException; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.locks.ReentrantLock; -import java.util.function.Supplier; - -public class GridLock { - private final Hunk locks; - - public GridLock(int x, int z) { - this.locks = Hunk.newAtomicHunk(x, 1, z); - locks.iterateSync((a, b, c) -> locks.set(a, b, c, new ReentrantLock())); - } - - public void with(int x, int z, Runnable r) { - lock(x, z); - r.run(); - unlock(x, z); - } - - public void withNasty(int x, int z, NastyRunnable r) throws Throwable { - lock(x, z); - r.run(); - unlock(x, z); - } - - public void withIO(int x, int z, IORunnable r) throws IOException { - lock(x, z); - r.run(); - unlock(x, z); - } - - public T withResult(int x, int z, Supplier r) { - lock(x, z); - T t = r.get(); - unlock(x, z); - return t; - } - - public void withAll(Runnable r) { - locks.iterateSync((a, b, c, d) -> d.lock()); - r.run(); - locks.iterateSync((a, b, c, d) -> d.unlock()); - } - - public T withAllResult(Supplier r) { - locks.iterateSync((a, b, c, d) -> d.lock()); - T t = r.get(); - locks.iterateSync((a, b, c, d) -> d.unlock()); - - return t; - } - - public boolean tryLock(int x, int z) { - return locks.get(x, 0, z).tryLock(); - } - - public boolean tryLock(int x, int z, long timeout) { - try { - return locks.get(x, 0, z).tryLock(timeout, TimeUnit.MILLISECONDS); - } catch (InterruptedException e) { - Iris.reportError(e); - } - - return false; - } - - public void lock(int x, int z) { - locks.get(x, 0, z).lock(); - } - - public void unlock(int x, int z) { - locks.get(x, 0, z).unlock(); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/parallel/HyperLock.java b/core/src/main/java/com/volmit/iris/util/parallel/HyperLock.java deleted file mode 100644 index 158a55e9d..000000000 --- a/core/src/main/java/com/volmit/iris/util/parallel/HyperLock.java +++ /dev/null @@ -1,167 +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 com.volmit.iris.util.parallel; - -import com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.data.cache.Cache; -import com.volmit.iris.util.function.NastyRunnable; -import com.volmit.iris.util.function.NastySupplier; -import com.volmit.iris.util.io.IORunnable; - -import java.io.IOException; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.locks.ReentrantLock; -import java.util.function.Supplier; - -public class HyperLock { - private final ConcurrentLinkedHashMap locks; - private boolean enabled = true; - private boolean fair = false; - - public HyperLock() { - this(1024, false); - } - - public HyperLock(int capacity) { - this(capacity, false); - } - - public HyperLock(int capacity, boolean fair) { - this.fair = fair; - locks = new ConcurrentLinkedHashMap.Builder() - .initialCapacity(capacity) - .maximumWeightedCapacity(capacity) - .listener((k, v) -> { - if (v.isLocked() || v.isHeldByCurrentThread()) { - Iris.warn("InfiniLock Eviction of " + k + " still has locks on it!"); - } - }) - .concurrencyLevel(32) - .build(); - } - - public void with(int x, int z, Runnable r) { - lock(x, z); - try { - r.run(); - } finally { - unlock(x, z); - } - } - - public void withLong(long k, Runnable r) { - int x = Cache.keyX(k), z = Cache.keyZ(k); - lock(x, z); - try { - r.run(); - } finally { - unlock(x, z); - } - } - - public void withNasty(int x, int z, NastyRunnable r) throws Throwable { - lock(x, z); - Throwable ee = null; - try { - r.run(); - } catch (Throwable e) { - ee = e; - } finally { - unlock(x, z); - - if (ee != null) { - throw ee; - } - } - } - - public void withIO(int x, int z, IORunnable r) throws IOException { - lock(x, z); - IOException ee = null; - try { - r.run(); - } catch (IOException e) { - ee = e; - } finally { - unlock(x, z); - - if (ee != null) { - throw ee; - } - } - } - - public T withResult(int x, int z, Supplier r) { - lock(x, z); - try { - return r.get(); - } finally { - unlock(x, z); - } - } - - public T withNastyResult(int x, int z, NastySupplier r) throws Throwable { - lock(x, z); - try { - return r.get(); - } finally { - unlock(x, z); - } - } - - public boolean tryLock(int x, int z) { - return getLock(x, z).tryLock(); - } - - public boolean tryLock(int x, int z, long timeout) { - try { - return getLock(x, z).tryLock(timeout, TimeUnit.MILLISECONDS); - } catch (InterruptedException e) { - Iris.reportError(e); - } - - return false; - } - - private ReentrantLock getLock(int x, int z) { - return locks.computeIfAbsent(Cache.key(x, z), k -> new ReentrantLock(fair)); - } - - public void lock(int x, int z) { - if (!enabled) { - return; - } - - getLock(x, z).lock(); - } - - public void unlock(int x, int z) { - if (!enabled) { - return; - } - - getLock(x, z).unlock(); - } - - public void disable() { - enabled = false; - locks.values().forEach(ReentrantLock::lock); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/parallel/MultiBurst.java b/core/src/main/java/com/volmit/iris/util/parallel/MultiBurst.java deleted file mode 100644 index 71eb45dfe..000000000 --- a/core/src/main/java/com/volmit/iris/util/parallel/MultiBurst.java +++ /dev/null @@ -1,289 +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 com.volmit.iris.util.parallel; - -import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; -import kotlinx.coroutines.CoroutineDispatcher; -import kotlinx.coroutines.ExecutorsKt; -import org.jetbrains.annotations.NotNull; - -import java.util.Collection; -import java.util.List; -import java.util.concurrent.*; -import java.util.concurrent.atomic.AtomicLong; -import java.util.function.IntSupplier; - -public class MultiBurst implements ExecutorService { - private static final long TIMEOUT = Long.getLong("iris.burst.timeout", 15000); - public static final MultiBurst burst = new MultiBurst(); - public static final MultiBurst ioBurst = new MultiBurst("Iris IO", () -> IrisSettings.get().getConcurrency().getIoParallelism()); - private final AtomicLong last; - private final String name; - private final int priority; - private final IntSupplier parallelism; - private final Object lock = new Object(); - private volatile ExecutorService service; - private volatile CoroutineDispatcher dispatcher; - - public MultiBurst() { - this("Iris"); - } - - public MultiBurst(String name) { - this(name, Thread.MIN_PRIORITY, () -> IrisSettings.get().getConcurrency().getParallelism()); - } - - public MultiBurst(String name, IntSupplier parallelism) { - this(name, Thread.MIN_PRIORITY, parallelism); - } - - public MultiBurst(String name, int priority, IntSupplier parallelism) { - this.name = name; - this.priority = priority; - this.parallelism = parallelism; - last = new AtomicLong(M.ms()); - } - - private ExecutorService getService() { - last.set(M.ms()); - if (service != null && !service.isShutdown()) - return service; - - synchronized (lock) { - if (service != null && !service.isShutdown()) - return service; - - service = new ForkJoinPool(IrisSettings.getThreadCount(parallelism.getAsInt()), - new ForkJoinPool.ForkJoinWorkerThreadFactory() { - int m = 0; - - @Override - public ForkJoinWorkerThread newThread(ForkJoinPool pool) { - final ForkJoinWorkerThread worker = ForkJoinPool.defaultForkJoinWorkerThreadFactory.newThread(pool); - worker.setPriority(priority); - worker.setName(name + " " + ++m); - return worker; - } - }, - (t, e) -> e.printStackTrace(), true); - dispatcher = ExecutorsKt.from(service); - return service; - } - } - - public CoroutineDispatcher getDispatcher() { - getService(); - return dispatcher; - } - - public void burst(Runnable... r) { - burst(r.length).queue(r).complete(); - } - - public void burst(boolean multicore, Runnable... r) { - if (multicore) { - burst(r); - } else { - sync(r); - } - } - - public void burst(List r) { - burst(r.size()).queue(r).complete(); - } - - public void burst(boolean multicore, List r) { - if (multicore) { - burst(r); - } else { - sync(r); - } - } - - private void sync(List r) { - for (Runnable i : new KList<>(r)) { - i.run(); - } - } - - public void sync(Runnable... r) { - for (Runnable i : r) { - i.run(); - } - } - - public void sync(KList r) { - for (Runnable i : r) { - i.run(); - } - } - - public BurstExecutor burst(int estimate) { - return new BurstExecutor(getService(), estimate); - } - - public BurstExecutor burst() { - return burst(16); - } - - public BurstExecutor burst(boolean multicore) { - BurstExecutor b = burst(); - b.setMulticore(multicore); - return b; - } - - public Future lazySubmit(Callable o) { - return getService().submit(o); - } - - public void lazy(Runnable o) { - getService().execute(o); - } - - public Future future(Runnable o) { - return getService().submit(o); - } - - public Future complete(Runnable o) { - return getService().submit(o); - } - - public Future completeValue(Callable o) { - return getService().submit(o); - } - - public CompletableFuture completableFuture(Callable o) { - CompletableFuture f = new CompletableFuture<>(); - getService().submit(() -> { - try { - f.complete(o.call()); - } catch (Exception e) { - f.completeExceptionally(e); - } - }); - return f; - } - - @Override - public void shutdown() { - close(); - } - - @NotNull - @Override - public List shutdownNow() { - close(); - return List.of(); - } - - @Override - public boolean isShutdown() { - return service == null || service.isShutdown(); - } - - @Override - public boolean isTerminated() { - return service == null || service.isTerminated(); - } - - @Override - public boolean awaitTermination(long timeout, @NotNull TimeUnit unit) throws InterruptedException { - return service == null || service.awaitTermination(timeout, unit); - } - - @Override - public void execute(@NotNull Runnable command) { - getService().execute(command); - } - - @NotNull - @Override - public Future submit(@NotNull Callable task) { - return getService().submit(task); - } - - @NotNull - @Override - public Future submit(@NotNull Runnable task, T result) { - return getService().submit(task, result); - } - - @NotNull - @Override - public Future submit(@NotNull Runnable task) { - return getService().submit(task); - } - - @NotNull - @Override - public List> invokeAll(@NotNull Collection> tasks) throws InterruptedException { - return getService().invokeAll(tasks); - } - - @NotNull - @Override - public List> invokeAll(@NotNull Collection> tasks, long timeout, @NotNull TimeUnit unit) throws InterruptedException { - return getService().invokeAll(tasks, timeout, unit); - } - - @NotNull - @Override - public T invokeAny(@NotNull Collection> tasks) throws InterruptedException, ExecutionException { - return getService().invokeAny(tasks); - } - - @Override - public T invokeAny(@NotNull Collection> tasks, long timeout, @NotNull TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException { - return getService().invokeAny(tasks, timeout, unit); - } - - public void close() { - if (service != null) { - close(service); - } - } - - public static void close(ExecutorService service) { - service.shutdown(); - PrecisionStopwatch p = PrecisionStopwatch.start(); - try { - while (!service.awaitTermination(1, TimeUnit.SECONDS)) { - Iris.info("Still waiting to shutdown burster..."); - if (p.getMilliseconds() > TIMEOUT) { - Iris.warn("Forcing Shutdown..."); - - try { - service.shutdownNow(); - } catch (Throwable e) { - - } - - break; - } - } - } catch (Throwable e) { - e.printStackTrace(); - Iris.reportError(e); - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/parallel/NOOPGridLock.java b/core/src/main/java/com/volmit/iris/util/parallel/NOOPGridLock.java deleted file mode 100644 index bc6ee8f2b..000000000 --- a/core/src/main/java/com/volmit/iris/util/parallel/NOOPGridLock.java +++ /dev/null @@ -1,81 +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 com.volmit.iris.util.parallel; - -import com.volmit.iris.util.function.NastyRunnable; -import com.volmit.iris.util.io.IORunnable; - -import java.io.IOException; -import java.util.function.Supplier; - -public class NOOPGridLock extends GridLock { - public NOOPGridLock(int x, int z) { - super(x, z); - } - - @Override - public void with(int x, int z, Runnable r) { - r.run(); - } - - @Override - public void withNasty(int x, int z, NastyRunnable r) throws Throwable { - r.run(); - } - - @Override - public void withIO(int x, int z, IORunnable r) throws IOException { - r.run(); - } - - @Override - public T withResult(int x, int z, Supplier r) { - return r.get(); - } - - @Override - public void withAll(Runnable r) { - r.run(); - } - - @Override - public T withAllResult(Supplier r) { - return r.get(); - } - - @Override - public boolean tryLock(int x, int z) { - return true; - } - - @Override - public boolean tryLock(int x, int z, long timeout) { - return true; - } - - @Override - public void lock(int x, int z) { - - } - - @Override - public void unlock(int x, int z) { - - } -} diff --git a/core/src/main/java/com/volmit/iris/util/parallel/StreamUtils.java b/core/src/main/java/com/volmit/iris/util/parallel/StreamUtils.java deleted file mode 100644 index dad656936..000000000 --- a/core/src/main/java/com/volmit/iris/util/parallel/StreamUtils.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.volmit.iris.util.parallel; - -import com.volmit.iris.util.math.Position2; -import lombok.SneakyThrows; -import org.jetbrains.annotations.Nullable; - -import java.util.function.Consumer; -import java.util.function.Function; -import java.util.stream.IntStream; -import java.util.stream.Stream; - -public class StreamUtils { - - public static Stream streamRadius(int x, int z, int radius) { - return streamRadius(x, z, radius, radius); - } - - public static Stream streamRadius(int x, int z, int radiusX, int radiusZ) { - return IntStream.rangeClosed(-radiusX, radiusX) - .mapToObj(xx -> IntStream.rangeClosed(-radiusZ, radiusZ) - .mapToObj(zz -> new Position2(x + xx, z + zz))) - .flatMap(Function.identity()); - } - - public static void forEach(Stream stream, Function> mapper, Consumer consumer, @Nullable MultiBurst burst) { - forEach(stream.flatMap(mapper), consumer, burst); - } - - @SneakyThrows - public static void forEach(Stream stream, Consumer task, @Nullable MultiBurst burst) { - if (burst == null) stream.forEach(task); - else { - var list = stream.toList(); - var exec = burst.burst(list.size()); - list.forEach(val -> exec.queue(() -> task.accept(val))); - exec.complete(); - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/parallel/SyncExecutor.java b/core/src/main/java/com/volmit/iris/util/parallel/SyncExecutor.java deleted file mode 100644 index 00966b226..000000000 --- a/core/src/main/java/com/volmit/iris/util/parallel/SyncExecutor.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.volmit.iris.util.parallel; - -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.scheduling.SR; -import org.jetbrains.annotations.NotNull; - -import java.util.Queue; -import java.util.concurrent.*; -import java.util.concurrent.atomic.AtomicBoolean; - -public class SyncExecutor implements Executor, AutoCloseable { - private final CountDownLatch latch = new CountDownLatch(1); - private final Queue queue = new ConcurrentLinkedQueue<>(); - private final AtomicBoolean closed = new AtomicBoolean(false); - - public SyncExecutor(int msPerTick) { - new SR() { - @Override - public void run() { - var time = M.ms() + msPerTick; - while (time > M.ms()) { - Runnable r = queue.poll(); - if (r == null) break; - r.run(); - } - - if (closed.get() && queue.isEmpty()) { - cancel(); - latch.countDown(); - } - } - }; - } - - @Override - public void execute(@NotNull Runnable command) { - if (closed.get()) throw new IllegalStateException("Executor is closed!"); - queue.add(command); - } - - @Override - public void close() throws Exception { - closed.set(true); - latch.await(); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/plugin/CancellableTask.java b/core/src/main/java/com/volmit/iris/util/plugin/CancellableTask.java deleted file mode 100644 index 2889b8758..000000000 --- a/core/src/main/java/com/volmit/iris/util/plugin/CancellableTask.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 com.volmit.iris.util.plugin; - -public interface CancellableTask { - void cancel(); -} diff --git a/core/src/main/java/com/volmit/iris/util/reflect/ShadeFix.java b/core/src/main/java/com/volmit/iris/util/reflect/ShadeFix.java deleted file mode 100644 index 204b1f8be..000000000 --- a/core/src/main/java/com/volmit/iris/util/reflect/ShadeFix.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 com.volmit.iris.util.reflect; - -public class ShadeFix { - public static void fix(Class c) { - c.getCanonicalName(); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/reflect/V.java b/core/src/main/java/com/volmit/iris/util/reflect/V.java deleted file mode 100644 index 919092365..000000000 --- a/core/src/main/java/com/volmit/iris/util/reflect/V.java +++ /dev/null @@ -1,139 +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 com.volmit.iris.util.reflect; - -import com.volmit.iris.Iris; -import com.volmit.iris.util.collection.KList; - -import java.lang.annotation.Annotation; - -public class V { - private final Object o; - private boolean local; - private boolean suppress = false; - - public V(Class c, Object... parameters) { - this.o = Violator.construct(c, parameters); - this.local = true; - } - - public V(Object o) { - this.o = o; - this.local = true; - } - - public V(Object o, boolean local, boolean suppress) { - this(o); - this.local = local; - this.suppress = suppress; - } - - public V(Object o, boolean local) { - this(o); - this.local = local; - } - - public T get(Class t) { - try { - return local ? Violator.getDeclaredAnnotation(o.getClass(), t) : Violator.getAnnotation(o.getClass(), t); - } catch (Throwable e) { - Iris.reportError(e); - if (!suppress) { - e.printStackTrace(); - } - } - - return null; - } - - public T get(Class t, String mn, Class... pars) { - try { - return local ? Violator.getDeclaredAnnotation(Violator.getDeclaredMethod(o.getClass(), mn, pars), t) : Violator.getAnnotation(Violator.getMethod(o.getClass(), mn, pars), t); - } catch (Throwable e) { - Iris.reportError(e); - if (!suppress) { - e.printStackTrace(); - } - } - - return null; - } - - public T get(Class t, String mn) { - try { - return local ? Violator.getDeclaredAnnotation(Violator.getDeclaredField(o.getClass(), mn), t) : Violator.getAnnotation(Violator.getField(o.getClass(), mn), t); - } catch (Throwable e) { - Iris.reportError(e); - if (!suppress) { - e.printStackTrace(); - } - } - - return null; - } - - @SuppressWarnings("unchecked") - public T get(String field) { - try { - return (T) (local ? Violator.getDeclaredField(o.getClass(), field) : Violator.getField(o.getClass(), field)).get(o); - } catch (Throwable e) { - Iris.reportError(e); - if (!suppress) { - e.printStackTrace(); - } - } - - return null; - } - - public Object getSelf() { - return o; - } - - public Object invoke(String method, Object... parameters) { - KList> par = new KList<>(); - - for (Object i : parameters) { - par.add(i.getClass()); - } - - try { - return (local ? Violator.getDeclaredMethod(o.getClass(), method, par.toArray(new Class[0])) : Violator.getMethod(o.getClass(), method, par.toArray(new Class[0]))).invoke(o, parameters); - } catch (Throwable e) { - Iris.reportError(e); - if (!suppress) { - e.printStackTrace(); - } - } - - return null; - } - - public void set(String field, Object value) { - try { - // https://github.com/VolmitSoftware/Mortar/issues/5 - (local ? Violator.getDeclaredField(o.getClass(), field) : Violator.getField(o.getClass(), field)).set(o, value); - } catch (Throwable e) { - Iris.reportError(e); - if (!suppress) { - e.printStackTrace(); - } - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/reflect/Violator.java b/core/src/main/java/com/volmit/iris/util/reflect/Violator.java deleted file mode 100644 index bc29f19a7..000000000 --- a/core/src/main/java/com/volmit/iris/util/reflect/Violator.java +++ /dev/null @@ -1,273 +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 com.volmit.iris.util.reflect; - -import com.volmit.iris.Iris; -import com.volmit.iris.util.collection.KList; - -import java.lang.annotation.Annotation; -import java.lang.reflect.Constructor; -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.util.concurrent.ConcurrentSkipListMap; - -public class Violator { - protected static final ConcurrentSkipListMap nodes = new ConcurrentSkipListMap<>(); - - private static String id(Object o, Object h) { - if (o instanceof Field) { - return id(((Field) o).getDeclaringClass(), null) + "." + ((Field) o).getName(); - } - - if (o instanceof String) { - return (String) o; - } - - if (o instanceof Class) { - return ((Class) o).getCanonicalName(); - } - - if (o instanceof Constructor co) { - - StringBuilder mx = new StringBuilder(); - - for (Class i : co.getParameterTypes()) { - mx.append(",").append(i.getCanonicalName()); - } - - mx = new StringBuilder(mx.length() >= 1 ? mx.substring(1) : mx.toString()); - - return id(co.getDeclaringClass(), null) + "(" + mx + ")"; - } - - if (o instanceof Method) { - StringBuilder mx = new StringBuilder(); - - for (Class i : ((Method) o).getParameterTypes()) { - mx.append(",").append(i.getCanonicalName()); - } - - mx = new StringBuilder(mx.length() >= 1 ? mx.substring(1) : mx.toString()); - - return id(((Method) o).getDeclaringClass(), null) + "." + ((Method) o).getName() + "(" + mx + ")"; - } - - if (o instanceof Annotation a) { - return "@" + a.annotationType().getCanonicalName() + "[" + id(h, null) + "]"; - } - - return o.hashCode() + o.toString(); - } - - private static void p(String n, Object o) { - nodes.put(n, o); - } - - @SuppressWarnings("BooleanMethodIsAlwaysInverted") - private static boolean h(String n) { - return nodes.containsKey(n); - } - - private static Object g(String n) { - return nodes.get(n); - } - - public static Constructor getConstructor(Class c, Class... params) throws NoSuchMethodException, SecurityException { - StringBuilder mx = new StringBuilder(); - - for (Class i : params) { - mx.append(",").append(i.getCanonicalName()); - } - - mx = new StringBuilder(mx.length() >= 1 ? mx.substring(1) : mx.toString()); - - if (!h(id(c, null) + "(" + mx + ")")) { - Constructor co = c.getConstructor(params); - co.setAccessible(true); - p(id(co, null), co); - } - - return (Constructor) g(id(c, null) + "(" + mx + ")"); - } - - @SuppressWarnings("rawtypes") - public static Field getField(Class c, String name) throws Throwable { - if (!h(id(c, null) + "." + name)) { - try { - Field f = c.getField(name); - f.setAccessible(true); - p(id(c, null) + "." + name, f); - } catch (NoSuchFieldException e) { - Iris.reportError(e); - Class s = c.getSuperclass(); - if (null == s) { - throw e; - } - Field f = s.getField(name); - f.setAccessible(true); - p(id(c, null) + "." + name, f); - } - } - - return (Field) g(id(c, null) + "." + name); - } - - @SuppressWarnings("rawtypes") - public static Field getDeclaredField(Class c, String name) throws Throwable { - if (!h(id(c, null) + "." + name)) { - try { - Field f = c.getDeclaredField(name); - f.setAccessible(true); - p(id(c, null) + "." + name, f); - } catch (NoSuchFieldException e) { - Iris.reportError(e); - Class s = c.getSuperclass(); - if (null == s) { - throw e; - } - Field f = s.getDeclaredField(name); - f.setAccessible(true); - p(id(c, null) + "." + name, f); - } - } - - return (Field) g(id(c, null) + "." + name); - } - - public static Method getMethod(Class c, String name, Class... pars) throws Throwable { - String iv = ""; - StringBuilder mx = new StringBuilder(); - - for (Class i : pars) { - mx.append(",").append(i.getCanonicalName()); - } - - mx = new StringBuilder(mx.length() >= 1 ? mx.substring(1) : mx.toString()); - iv = id(c, null) + "." + name + "(" + mx + ")"; - - if (!h(iv)) { - Method f = c.getMethod(name, pars); - f.setAccessible(true); - p(iv, f); - } - - return (Method) g(iv); - } - - @SuppressWarnings("unchecked") - public static T construct(Class c, Object... parameters) { - KList> cv = new KList<>(); - - for (Object i : parameters) { - cv.add(i.getClass()); - } - - try { - Constructor co = getConstructor(c, cv.toArray(new Class[0])); - return (T) co.newInstance(parameters); - } catch (Exception e) { - Iris.reportError(e); - e.printStackTrace(); - } - - return null; - } - - public static Method getDeclaredMethod(Class c, String name, Class... pars) throws Throwable { - String iv = ""; - StringBuilder mx = new StringBuilder(); - - for (Class i : pars) { - mx.append(",").append(i.getCanonicalName()); - } - - mx = new StringBuilder(mx.length() >= 1 ? mx.substring(1) : mx.toString()); - iv = id(c, null) + "." + name + "(" + mx + ")"; - - if (!h(iv)) { - Method f = c.getDeclaredMethod(name, pars); - f.setAccessible(true); - p(iv, f); - } - - return (Method) g(iv); - } - - @SuppressWarnings("unchecked") - public static T getAnnotation(Class c, Class a) { - if (!h("@" + a.getCanonicalName() + "[" + c.getCanonicalName() + "]")) { - T f = c.getAnnotation(a); - p(id(f, c), f); - } - - return (T) g("@" + a.getCanonicalName() + "[" + c.getCanonicalName() + "]"); - } - - @SuppressWarnings("unchecked") - public static T getDeclaredAnnotation(Class c, Class a) { - if (!h("@" + a.getCanonicalName() + "[" + c.getCanonicalName() + "]")) { - T f = c.getDeclaredAnnotation(a); - p(id(f, c), f); - } - - return (T) g("@" + a.getCanonicalName() + "[" + c.getCanonicalName() + "]"); - } - - @SuppressWarnings("unchecked") - public static T getAnnotation(Field c, Class a) { - if (!h("@" + a.getCanonicalName() + "[" + id(c, null) + "]")) { - T f = c.getAnnotation(a); - p(id(f, c), f); - } - - return (T) g("@" + a.getCanonicalName() + "[" + id(c, null) + "]"); - } - - @SuppressWarnings("unchecked") - public static T getDeclaredAnnotation(Field c, Class a) { - if (!h("@" + a.getCanonicalName() + "[" + id(c, null) + "]")) { - T f = c.getDeclaredAnnotation(a); - p(id(f, c), f); - } - - return (T) g("@" + a.getCanonicalName() + "[" + id(c, null) + "]"); - } - - @SuppressWarnings("unchecked") - public static T getAnnotation(Method c, Class a) { - if (!h("@" + a.getCanonicalName() + "[" + id(c, null) + "]")) { - T f = c.getAnnotation(a); - p(id(f, c), f); - } - - return (T) g("@" + a.getCanonicalName() + "[" + id(c, null) + "]"); - } - - @SuppressWarnings("unchecked") - public static T getDeclaredAnnotation(Method c, Class a) { - if (!h("@" + a.getCanonicalName() + "[" + id(c, null) + "]")) { - T f = c.getDeclaredAnnotation(a); - p(id(f, c), f); - - Iris.debug("Set as " + id(f, c) + " as " + ("@" + a.getCanonicalName() + "[" + id(c, null) + "]")); - } - - return (T) g("@" + a.getCanonicalName() + "[" + id(c, null) + "]"); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/scheduling/AR.java b/core/src/main/java/com/volmit/iris/util/scheduling/AR.java deleted file mode 100644 index b5fda2c52..000000000 --- a/core/src/main/java/com/volmit/iris/util/scheduling/AR.java +++ /dev/null @@ -1,42 +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 com.volmit.iris.util.scheduling; - -import com.volmit.iris.util.plugin.CancellableTask; - -public abstract class AR implements Runnable, CancellableTask { - private int id = 0; - - public AR() { - this(0); - } - - public AR(int interval) { - id = J.ar(this, interval); - } - - @Override - public void cancel() { - J.car(id); - } - - public int getId() { - return id; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/scheduling/Callback.java b/core/src/main/java/com/volmit/iris/util/scheduling/Callback.java deleted file mode 100644 index 2979e2f5c..000000000 --- a/core/src/main/java/com/volmit/iris/util/scheduling/Callback.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 com.volmit.iris.util.scheduling; - -/** - * Callback for async workers - * - * @param the type of object to be returned in the runnable - * @author cyberpwn - */ -@FunctionalInterface -public interface Callback { - /** - * Called when the callback calls back... - * - * @param t the object to be called back - */ - void run(T t); -} diff --git a/core/src/main/java/com/volmit/iris/util/scheduling/ChronoLatch.java b/core/src/main/java/com/volmit/iris/util/scheduling/ChronoLatch.java deleted file mode 100644 index 096ebcd91..000000000 --- a/core/src/main/java/com/volmit/iris/util/scheduling/ChronoLatch.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 com.volmit.iris.util.scheduling; - -public class ChronoLatch { - private final long interval; - private long since; - - public ChronoLatch(long interval, boolean openedAtStart) { - this.interval = interval; - since = System.currentTimeMillis() - (openedAtStart ? interval * 2 : 0); - } - - public ChronoLatch(long interval) { - this(interval, true); - } - - public void flipDown() { - since = System.currentTimeMillis(); - } - - public boolean couldFlip() { - return System.currentTimeMillis() - since > interval; - } - - public boolean flip() { - if (System.currentTimeMillis() - since > interval) { - since = System.currentTimeMillis(); - return true; - } - - return false; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/scheduling/Contained.java b/core/src/main/java/com/volmit/iris/util/scheduling/Contained.java deleted file mode 100644 index a010dd1f0..000000000 --- a/core/src/main/java/com/volmit/iris/util/scheduling/Contained.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 com.volmit.iris.util.scheduling; - -import java.util.function.Function; - -public class Contained { - private T t; - - public void mod(Function x) { - set(x.apply(t)); - } - - public T get() { - return t; - } - - public void set(T t) { - this.t = t; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/scheduling/GroupedExecutor.java b/core/src/main/java/com/volmit/iris/util/scheduling/GroupedExecutor.java deleted file mode 100644 index eb86f5e2d..000000000 --- a/core/src/main/java/com/volmit/iris/util/scheduling/GroupedExecutor.java +++ /dev/null @@ -1,112 +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 com.volmit.iris.util.scheduling; - -import com.volmit.iris.Iris; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.function.NastyRunnable; - -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.ForkJoinPool; -import java.util.concurrent.ForkJoinPool.ForkJoinWorkerThreadFactory; -import java.util.concurrent.ForkJoinWorkerThread; - -public class GroupedExecutor { - private final ExecutorService service; - private final KMap mirror; - private int xc; - - public GroupedExecutor(int threadLimit, int priority, String name) { - xc = 1; - mirror = new KMap<>(); - - if (threadLimit == 1) { - service = Executors.newSingleThreadExecutor((r) -> - { - Thread t = new Thread(r); - t.setName(name); - t.setPriority(priority); - - return t; - }); - } else if (threadLimit > 1) { - final ForkJoinWorkerThreadFactory factory = pool -> { - final ForkJoinWorkerThread worker = ForkJoinPool.defaultForkJoinWorkerThreadFactory.newThread(pool); - worker.setName(name + " " + xc++); - worker.setPriority(priority); - return worker; - }; - - service = new ForkJoinPool(threadLimit, factory, null, false); - } else { - service = Executors.newCachedThreadPool((r) -> - { - Thread t = new Thread(r); - t.setName(name + " " + xc++); - t.setPriority(priority); - - return t; - }); - } - } - - public void waitFor(String g) { - if (g == null) { - return; - } - - if (!mirror.containsKey(g)) { - return; - } - - while (true) { - if (mirror.get(g) == 0) { - break; - } - } - } - - public void queue(String q, NastyRunnable r) { - mirror.compute(q, (k, v) -> k == null || v == null ? 1 : v + 1); - service.execute(() -> - { - try { - r.run(); - } catch (Throwable e) { - Iris.reportError(e); - e.printStackTrace(); - } - - mirror.computeIfPresent(q, (k, v) -> v - 1); - }); - } - - public void close() { - J.a(() -> - { - J.sleep(100); - service.shutdown(); - }); - } - - public void closeNow() { - service.shutdown(); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/scheduling/IrisLock.java b/core/src/main/java/com/volmit/iris/util/scheduling/IrisLock.java deleted file mode 100644 index ab0fe0c63..000000000 --- a/core/src/main/java/com/volmit/iris/util/scheduling/IrisLock.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 com.volmit.iris.util.scheduling; - -import com.volmit.iris.Iris; -import lombok.Data; -import lombok.experimental.Accessors; - -import java.util.concurrent.locks.ReentrantLock; - -@Data -@Accessors( - chain = true -) -public class IrisLock { - private transient final ReentrantLock lock; - private transient final String name; - private transient boolean disabled = false; - - public IrisLock(String name) { - this.name = name; - lock = new ReentrantLock(false); - } - - public void lock() { - if (disabled) { - return; - } - - lock.lock(); - } - - public void unlock() { - if (disabled) { - return; - } - try { - lock.unlock(); - } catch (Throwable e) { - Iris.reportError(e); - - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/scheduling/Looper.java b/core/src/main/java/com/volmit/iris/util/scheduling/Looper.java deleted file mode 100644 index 72ba9ff03..000000000 --- a/core/src/main/java/com/volmit/iris/util/scheduling/Looper.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 com.volmit.iris.util.scheduling; - -import com.volmit.iris.Iris; -import com.volmit.iris.core.service.PreservationSVC; - -public abstract class Looper extends Thread { - @SuppressWarnings("BusyWait") - public void run() { - Iris.service(PreservationSVC.class).register(this); - while (!interrupted()) { - try { - long m = loop(); - - if (m < 0) { - break; - } - - //noinspection BusyWait - Thread.sleep(m); - } catch (InterruptedException e) { - break; - } catch (Throwable e) { - Iris.reportError(e); - e.printStackTrace(); - } - } - - Iris.debug("Iris Thread " + getName() + " Shutdown."); - } - - protected abstract long loop(); -} diff --git a/core/src/main/java/com/volmit/iris/util/scheduling/O.java b/core/src/main/java/com/volmit/iris/util/scheduling/O.java deleted file mode 100644 index 3c97d1c99..000000000 --- a/core/src/main/java/com/volmit/iris/util/scheduling/O.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 com.volmit.iris.util.scheduling; - -import com.volmit.iris.util.collection.KList; - -public class O implements Observable { - private T t = null; - private KList> observers; - - @Override - public T get() { - return t; - } - - @Override - public O set(T t) { - this.t = t; - - if (observers != null && observers.hasElements()) { - observers.forEach((o) -> o.onChanged(t, t)); - } - - return this; - } - - @Override - public boolean has() { - return t != null; - } - - @Override - public O clearObservers() { - observers.clear(); - return this; - } - - @Override - public O observe(Observer t) { - if (observers == null) { - observers = new KList<>(); - } - - observers.add(t); - - return this; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/scheduling/Observable.java b/core/src/main/java/com/volmit/iris/util/scheduling/Observable.java deleted file mode 100644 index 3fbd672cc..000000000 --- a/core/src/main/java/com/volmit/iris/util/scheduling/Observable.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 com.volmit.iris.util.scheduling; - -public interface Observable { - T get(); - - Observable set(T t); - - boolean has(); - - Observable clearObservers(); - - Observable observe(Observer t); -} diff --git a/core/src/main/java/com/volmit/iris/util/scheduling/Observer.java b/core/src/main/java/com/volmit/iris/util/scheduling/Observer.java deleted file mode 100644 index 49a378a54..000000000 --- a/core/src/main/java/com/volmit/iris/util/scheduling/Observer.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 com.volmit.iris.util.scheduling; - -@FunctionalInterface -public interface Observer { - void onChanged(T from, T to); -} diff --git a/core/src/main/java/com/volmit/iris/util/scheduling/PrecisionStopwatch.java b/core/src/main/java/com/volmit/iris/util/scheduling/PrecisionStopwatch.java deleted file mode 100644 index 4fa5b3b3c..000000000 --- a/core/src/main/java/com/volmit/iris/util/scheduling/PrecisionStopwatch.java +++ /dev/null @@ -1,123 +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 com.volmit.iris.util.scheduling; - -public class PrecisionStopwatch { - private long nanos; - private long startNano; - private long millis; - private long startMillis; - private double time; - private boolean profiling; - - public PrecisionStopwatch() { - reset(); - profiling = false; - } - - public static PrecisionStopwatch start() { - PrecisionStopwatch p = new PrecisionStopwatch(); - p.begin(); - - return p; - } - - public void begin() { - profiling = true; - startNano = System.nanoTime(); - startMillis = System.currentTimeMillis(); - } - - public void end() { - if (!profiling) { - return; - } - - profiling = false; - nanos = System.nanoTime() - startNano; - millis = System.currentTimeMillis() - startMillis; - time = (double) nanos / 1000000.0; - time = (double) millis - time > 1.01 ? millis : time; - } - - public void reset() { - nanos = -1; - millis = -1; - startNano = -1; - startMillis = -1; - time = -0; - profiling = false; - } - - public double getTicks() { - return getMilliseconds() / 50.0; - } - - public double getSeconds() { - return getMilliseconds() / 1000.0; - } - - public double getMinutes() { - return getSeconds() / 60.0; - } - - public double getHours() { - return getMinutes() / 60.0; - } - - public double getMilliseconds() { - nanos = System.nanoTime() - startNano; - millis = System.currentTimeMillis() - startMillis; - time = (double) nanos / 1000000.0; - time = (double) millis - time > 1.01 ? millis : time; - return time; - } - - public long getNanoseconds() { - return (long) (time * 1000000.0); - } - - public long getNanos() { - return nanos; - } - - public long getStartNano() { - return startNano; - } - - public long getMillis() { - return millis; - } - - public long getStartMillis() { - return startMillis; - } - - public double getTime() { - return time; - } - - public boolean isProfiling() { - return profiling; - } - - public void rewind(long l) { - startMillis -= l; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/scheduling/Queue.java b/core/src/main/java/com/volmit/iris/util/scheduling/Queue.java deleted file mode 100644 index c25bb715d..000000000 --- a/core/src/main/java/com/volmit/iris/util/scheduling/Queue.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 com.volmit.iris.util.scheduling; - -import com.volmit.iris.util.collection.KList; - -@SuppressWarnings("ALL") -public interface Queue { - static Queue create(KList t) { - return new ShurikenQueue().queue(t); - } - - @SuppressWarnings("unchecked") - static Queue create(T... t) { - return new ShurikenQueue().queue(new KList().add(t)); - } - - Queue queue(T t); - - Queue queue(KList t); - - boolean hasNext(int amt); - - boolean hasNext(); - - T next(); - - KList next(int amt); - - Queue clear(); - - int size(); - - boolean contains(T p); -} diff --git a/core/src/main/java/com/volmit/iris/util/scheduling/QueueExecutor.java b/core/src/main/java/com/volmit/iris/util/scheduling/QueueExecutor.java deleted file mode 100644 index 0bb094b58..000000000 --- a/core/src/main/java/com/volmit/iris/util/scheduling/QueueExecutor.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 com.volmit.iris.util.scheduling; - -import com.volmit.iris.Iris; - -public class QueueExecutor extends Looper { - private final Queue queue; - private boolean shutdown; - - public QueueExecutor() { - queue = new ShurikenQueue<>(); - shutdown = false; - } - - public Queue queue() { - return queue; - } - - @Override - protected long loop() { - while (queue.hasNext()) { - try { - queue.next().run(); - } catch (Throwable e) { - Iris.reportError(e); - e.printStackTrace(); - } - } - - if (shutdown && !queue.hasNext()) { - interrupt(); - return -1; - } - - return Math.max(500, (long) getRunTime() * 10); - } - - public double getRunTime() { - return 0; - } - - public void shutdown() { - shutdown = true; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/scheduling/S.java b/core/src/main/java/com/volmit/iris/util/scheduling/S.java deleted file mode 100644 index a6d37809f..000000000 --- a/core/src/main/java/com/volmit/iris/util/scheduling/S.java +++ /dev/null @@ -1,29 +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 com.volmit.iris.util.scheduling; - -public abstract class S implements Runnable { - public S() { - J.s(this); - } - - public S(int delay) { - J.s(this, delay); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/scheduling/SR.java b/core/src/main/java/com/volmit/iris/util/scheduling/SR.java deleted file mode 100644 index bbb41cd85..000000000 --- a/core/src/main/java/com/volmit/iris/util/scheduling/SR.java +++ /dev/null @@ -1,42 +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 com.volmit.iris.util.scheduling; - -import com.volmit.iris.util.plugin.CancellableTask; - -public abstract class SR implements Runnable, CancellableTask { - private int id = 0; - - public SR() { - this(0); - } - - public SR(int interval) { - id = J.sr(this, interval); - } - - @Override - public void cancel() { - J.csr(id); - } - - public int getId() { - return id; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/scheduling/ShurikenQueue.java b/core/src/main/java/com/volmit/iris/util/scheduling/ShurikenQueue.java deleted file mode 100644 index 996574bef..000000000 --- a/core/src/main/java/com/volmit/iris/util/scheduling/ShurikenQueue.java +++ /dev/null @@ -1,99 +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 com.volmit.iris.util.scheduling; - -import com.volmit.iris.util.collection.KList; - -public class ShurikenQueue implements Queue { - private KList queue; - private boolean randomPop; - private boolean reversePop; - - public ShurikenQueue() { - clear(); - } - - public ShurikenQueue responsiveMode() { - reversePop = true; - return this; - } - - public ShurikenQueue randomMode() { - randomPop = true; - return this; - } - - @Override - public ShurikenQueue queue(T t) { - queue.add(t); - return this; - } - - @Override - public ShurikenQueue queue(KList t) { - queue.add(t); - return this; - } - - @Override - public boolean hasNext(int amt) { - return queue.size() >= amt; - } - - @Override - public boolean hasNext() { - return !queue.isEmpty(); - } - - @Override - public T next() { - return reversePop ? queue.popLast() : randomPop ? queue.popRandom() : queue.pop(); - } - - @Override - public KList next(int amt) { - KList t = new KList<>(); - - for (int i = 0; i < amt; i++) { - if (!hasNext()) { - break; - } - - t.add(next()); - } - - return t; - } - - @Override - public ShurikenQueue clear() { - queue = new KList<>(); - return this; - } - - @Override - public int size() { - return queue.size(); - } - - @Override - public boolean contains(T p) { - return queue.contains(p); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/scheduling/Switch.java b/core/src/main/java/com/volmit/iris/util/scheduling/Switch.java deleted file mode 100644 index a4e25e8a2..000000000 --- a/core/src/main/java/com/volmit/iris/util/scheduling/Switch.java +++ /dev/null @@ -1,42 +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 com.volmit.iris.util.scheduling; - -public class Switch { - private volatile boolean b; - - /** - * Defaulted off - */ - public Switch() { - b = false; - } - - public void flip() { - b = true; - } - - public boolean isFlipped() { - return b; - } - - public void reset() { - b = false; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/scheduling/TaskExecutor.java b/core/src/main/java/com/volmit/iris/util/scheduling/TaskExecutor.java deleted file mode 100644 index a890a10a2..000000000 --- a/core/src/main/java/com/volmit/iris/util/scheduling/TaskExecutor.java +++ /dev/null @@ -1,206 +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 com.volmit.iris.util.scheduling; - -import com.volmit.iris.Iris; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.function.NastyRunnable; -import com.volmit.iris.util.math.M; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; - -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.ForkJoinPool; -import java.util.concurrent.ForkJoinPool.ForkJoinWorkerThreadFactory; -import java.util.concurrent.ForkJoinWorkerThread; - -public class TaskExecutor { - private final ExecutorService service; - private int xc; - - public TaskExecutor(int threadLimit, int priority, String name) { - xc = 1; - - if (threadLimit == 1) { - service = Executors.newSingleThreadExecutor((r) -> - { - Thread t = new Thread(r); - t.setName(name); - t.setPriority(priority); - - return t; - }); - } else if (threadLimit > 1) { - final ForkJoinWorkerThreadFactory factory = pool -> { - final ForkJoinWorkerThread worker = ForkJoinPool.defaultForkJoinWorkerThreadFactory.newThread(pool); - worker.setName(name + " " + xc++); - worker.setPriority(priority); - return worker; - }; - - service = new ForkJoinPool(threadLimit, factory, null, false); - } else { - service = Executors.newCachedThreadPool((r) -> - { - Thread t = new Thread(r); - t.setName(name + " " + xc++); - t.setPriority(priority); - - return t; - }); - } - } - - public TaskGroup startWork() { - return new TaskGroup(this); - } - - public void close() { - J.a(() -> - { - J.sleep(10000); - service.shutdown(); - }); - } - - public void closeNow() { - service.shutdown(); - } - - public enum TaskState { - QUEUED, - RUNNING, - COMPLETED, - FAILED - } - - public static class TaskGroup { - private final KList tasks; - private final TaskExecutor e; - - public TaskGroup(TaskExecutor e) { - tasks = new KList<>(); - this.e = e; - } - - public TaskGroup queue(NastyRunnable... r) { - for (NastyRunnable i : r) { - tasks.add(new AssignedTask(i)); - } - - return this; - } - - public TaskGroup queue(KList r) { - for (NastyRunnable i : r) { - tasks.add(new AssignedTask(i)); - } - - return this; - } - - public TaskResult execute() { - double timeElapsed = 0; - int tasksExecuted = 0; - int tasksFailed = 0; - int tasksCompleted = 0; - tasks.forEach((t) -> t.go(e)); - long msv = M.ns(); - - waiting: - while (true) { - try { - //noinspection BusyWait - Thread.sleep(0); - } catch (InterruptedException ignored) { - - } - - for (AssignedTask i : tasks) { - if (i.state.equals(TaskState.QUEUED) || i.state.equals(TaskState.RUNNING)) { - continue waiting; - } - } - - timeElapsed = (double) (M.ns() - msv) / 1000000D; - - for (AssignedTask i : tasks) { - if (i.state.equals(TaskState.COMPLETED)) { - tasksCompleted++; - } else { - tasksFailed++; - } - - tasksExecuted++; - } - - break; - } - - return new TaskResult(timeElapsed, tasksExecuted, tasksFailed, tasksCompleted); - } - } - - @SuppressWarnings("ClassCanBeRecord") - @ToString - public static class TaskResult { - public final double timeElapsed; - public final int tasksExecuted; - public final int tasksFailed; - public final int tasksCompleted; - - public TaskResult(double timeElapsed, int tasksExecuted, int tasksFailed, int tasksCompleted) { - this.timeElapsed = timeElapsed; - this.tasksExecuted = tasksExecuted; - this.tasksFailed = tasksFailed; - this.tasksCompleted = tasksCompleted; - } - } - - public static class AssignedTask { - @Getter - private final NastyRunnable task; - @Getter - @Setter - private TaskState state; - - public AssignedTask(NastyRunnable task) { - this.task = task; - state = TaskState.QUEUED; - } - - public void go(TaskExecutor e) { - e.service.execute(() -> - { - state = TaskState.RUNNING; - try { - task.run(); - state = TaskState.COMPLETED; - } catch (Throwable ex) { - Iris.reportError(ex); - ex.printStackTrace(); - Iris.reportError(ex); - state = TaskState.FAILED; - } - }); - } - } -} diff --git a/core/src/main/java/com/volmit/iris/util/scheduling/ThreadMonitor.java b/core/src/main/java/com/volmit/iris/util/scheduling/ThreadMonitor.java deleted file mode 100644 index 6d167b9c1..000000000 --- a/core/src/main/java/com/volmit/iris/util/scheduling/ThreadMonitor.java +++ /dev/null @@ -1,91 +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 com.volmit.iris.util.scheduling; - -import com.volmit.iris.Iris; -import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.math.RollingSequence; - -/** - * Not particularly efficient or perfectly accurate but is great at fast thread - * switching detection - * - * @author dan - */ -public class ThreadMonitor extends Thread { - private final Thread monitor; - private final ChronoLatch cl; - private final RollingSequence sq = new RollingSequence(3); - int cycles = 0; - private boolean running; - private State lastState; - private PrecisionStopwatch st; - - private ThreadMonitor(Thread monitor) { - running = true; - st = PrecisionStopwatch.start(); - this.monitor = monitor; - lastState = State.NEW; - cl = new ChronoLatch(1000); - start(); - } - - public static ThreadMonitor bind(Thread monitor) { - return new ThreadMonitor(monitor); - } - - public void run() { - while (running) { - try { - //noinspection BusyWait - Thread.sleep(0); - State s = monitor.getState(); - if (lastState != s) { - cycles++; - pushState(s); - } - - lastState = s; - - if (cl.flip()) { - Iris.info("Cycles: " + Form.f(cycles) + " (" + Form.duration(sq.getAverage(), 2) + ")"); - } - } catch (Throwable e) { - Iris.reportError(e); - running = false; - break; - } - } - } - - public void pushState(State s) { - if (s != State.RUNNABLE) { - if (st != null) { - sq.put(st.getMilliseconds()); - } - } else { - - st = PrecisionStopwatch.start(); - } - } - - public void unbind() { - running = false; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/scheduling/Wrapper.java b/core/src/main/java/com/volmit/iris/util/scheduling/Wrapper.java deleted file mode 100644 index 2e15751ca..000000000 --- a/core/src/main/java/com/volmit/iris/util/scheduling/Wrapper.java +++ /dev/null @@ -1,69 +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 com.volmit.iris.util.scheduling; - -public class Wrapper { - private T t; - - public Wrapper(T t) { - set(t); - } - - public void set(T t) { - this.t = t; - } - - public T get() { - return t; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((t == null) ? 0 : t.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (!(obj instanceof Wrapper other)) { - return false; - } - - if (t == null) { - return other.t == null; - } else return t.equals(other.t); - } - - @Override - public String toString() { - if (t != null) { - return get().toString(); - } - - return super.toString() + " (null)"; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/stream/ArraySignificance.java b/core/src/main/java/com/volmit/iris/util/stream/ArraySignificance.java deleted file mode 100644 index 12c8dbcb1..000000000 --- a/core/src/main/java/com/volmit/iris/util/stream/ArraySignificance.java +++ /dev/null @@ -1,69 +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 com.volmit.iris.util.stream; - -import com.volmit.iris.util.collection.KList; - -public class ArraySignificance implements Significance { - private final KList types; - private final KList significance; - private final T significant; - - public ArraySignificance(KList types, KList significance, T significant) { - this.types = types; - this.significance = significance; - this.significant = significant; - } - - public ArraySignificance(KList types, KList significance) { - this.types = types; - this.significance = significance; - double s = 0; - int v = 0; - for (int i = 0; i < significance.size(); i++) { - if (significance.get(i) > s) { - s = significance.get(i); - v = i; - } - } - - significant = types.get(v); - } - - @Override - public KList getFactorTypes() { - return types; - } - - @Override - public double getSignificance(T t) { - for (int i = 0; i < types.size(); i++) { - if (types.get(i).equals(t)) { - return significance.get(i); - } - } - - return 0; - } - - @Override - public T getMostSignificantType() { - return significant; - } -} diff --git a/core/src/main/java/com/volmit/iris/util/stream/BasicLayer.java b/core/src/main/java/com/volmit/iris/util/stream/BasicLayer.java deleted file mode 100644 index cffdd2fdf..000000000 --- a/core/src/main/java/com/volmit/iris/util/stream/BasicLayer.java +++ /dev/null @@ -1,44 +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 com.volmit.iris.util.stream; - -import lombok.AllArgsConstructor; -import lombok.Data; - -@Data -@AllArgsConstructor -public class BasicLayer implements ProceduralLayer { - private final long seed; - private final double zoom; - private final double offsetX; - private final double offsetY; - private final double offsetZ; - - public BasicLayer(long seed, double zoom) { - this(seed, zoom, 0D, 0D, 0D); - } - - public BasicLayer(long seed) { - this(seed, 1D); - } - - public BasicLayer() { - this(1337); - } -} diff --git a/core/src/main/java/com/volmit/iris/util/stream/ProceduralLayer.java b/core/src/main/java/com/volmit/iris/util/stream/ProceduralLayer.java deleted file mode 100644 index 5ae3f9c23..000000000 --- a/core/src/main/java/com/volmit/iris/util/stream/ProceduralLayer.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 com.volmit.iris.util.stream; - -public interface ProceduralLayer { - long getSeed(); - - double getOffsetX(); - - double getOffsetY(); - - double getOffsetZ(); - - double getZoom(); -} diff --git a/core/src/main/java/com/volmit/iris/util/stream/Significance.java b/core/src/main/java/com/volmit/iris/util/stream/Significance.java deleted file mode 100644 index 28937a641..000000000 --- a/core/src/main/java/com/volmit/iris/util/stream/Significance.java +++ /dev/null @@ -1,29 +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 com.volmit.iris.util.stream; - -import com.volmit.iris.util.collection.KList; - -public interface Significance { - KList getFactorTypes(); - - double getSignificance(T t); - - T getMostSignificantType(); -} diff --git a/core/src/main/java/com/volmit/iris/util/uniques/features/UFNOOP.java b/core/src/main/java/com/volmit/iris/util/uniques/features/UFNOOP.java deleted file mode 100644 index 084bdda34..000000000 --- a/core/src/main/java/com/volmit/iris/util/uniques/features/UFNOOP.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.volmit.iris.util.uniques.features; - -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.uniques.UFeature; -import com.volmit.iris.util.uniques.UFeatureMeta; -import com.volmit.iris.util.uniques.UImage; - -import java.util.function.Consumer; - -public class UFNOOP implements UFeature { - @Override - public void render(UImage image, RNG rng, double t, Consumer progressor, UFeatureMeta meta) { - } -} diff --git a/core/src/main/kotlin/com/volmit/iris/core/pregenerator/cache/PregenCacheImpl.kt b/core/src/main/kotlin/art/arcane/iris/core/pregenerator/cache/PregenCacheImpl.kt similarity index 96% rename from core/src/main/kotlin/com/volmit/iris/core/pregenerator/cache/PregenCacheImpl.kt rename to core/src/main/kotlin/art/arcane/iris/core/pregenerator/cache/PregenCacheImpl.kt index ba8575102..aa05bee7a 100644 --- a/core/src/main/kotlin/com/volmit/iris/core/pregenerator/cache/PregenCacheImpl.kt +++ b/core/src/main/kotlin/art/arcane/iris/core/pregenerator/cache/PregenCacheImpl.kt @@ -1,10 +1,10 @@ -package com.volmit.iris.core.pregenerator.cache +package art.arcane.iris.core.pregenerator.cache -import com.volmit.iris.Iris -import com.volmit.iris.util.data.Varint -import com.volmit.iris.util.documentation.ChunkCoordinates -import com.volmit.iris.util.documentation.RegionCoordinates -import com.volmit.iris.util.io.IO +import art.arcane.iris.Iris +import art.arcane.volmlib.util.data.Varint +import art.arcane.volmlib.util.documentation.ChunkCoordinates +import art.arcane.volmlib.util.documentation.RegionCoordinates +import art.arcane.volmlib.util.io.IO import it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch diff --git a/core/src/main/kotlin/com/volmit/iris/core/safeguard/IrisSafeguard.kt b/core/src/main/kotlin/art/arcane/iris/core/safeguard/IrisSafeguard.kt similarity index 92% rename from core/src/main/kotlin/com/volmit/iris/core/safeguard/IrisSafeguard.kt rename to core/src/main/kotlin/art/arcane/iris/core/safeguard/IrisSafeguard.kt index 0c9d66c4e..6a68d2bb8 100644 --- a/core/src/main/kotlin/com/volmit/iris/core/safeguard/IrisSafeguard.kt +++ b/core/src/main/kotlin/art/arcane/iris/core/safeguard/IrisSafeguard.kt @@ -1,13 +1,13 @@ -package com.volmit.iris.core.safeguard +package art.arcane.iris.core.safeguard -import com.volmit.iris.Iris -import com.volmit.iris.core.IrisSettings -import com.volmit.iris.core.safeguard.task.Diagnostic -import com.volmit.iris.core.safeguard.task.Task -import com.volmit.iris.core.safeguard.task.ValueWithDiagnostics -import com.volmit.iris.core.safeguard.task.tasks -import com.volmit.iris.util.format.C -import com.volmit.iris.util.scheduling.J +import art.arcane.iris.Iris +import art.arcane.iris.core.IrisSettings +import art.arcane.iris.core.safeguard.task.Diagnostic +import art.arcane.iris.core.safeguard.task.Task +import art.arcane.iris.core.safeguard.task.ValueWithDiagnostics +import art.arcane.iris.core.safeguard.task.tasks +import art.arcane.iris.util.format.C +import art.arcane.iris.util.scheduling.J import org.bukkit.Bukkit import java.util.* diff --git a/core/src/main/kotlin/com/volmit/iris/core/safeguard/Mode.kt b/core/src/main/kotlin/art/arcane/iris/core/safeguard/Mode.kt similarity index 92% rename from core/src/main/kotlin/com/volmit/iris/core/safeguard/Mode.kt rename to core/src/main/kotlin/art/arcane/iris/core/safeguard/Mode.kt index 6a5b282b2..d2c4f5ed1 100644 --- a/core/src/main/kotlin/com/volmit/iris/core/safeguard/Mode.kt +++ b/core/src/main/kotlin/art/arcane/iris/core/safeguard/Mode.kt @@ -1,10 +1,10 @@ -package com.volmit.iris.core.safeguard +package art.arcane.iris.core.safeguard -import com.volmit.iris.BuildConstants -import com.volmit.iris.Iris -import com.volmit.iris.core.IrisSettings -import com.volmit.iris.util.format.C -import com.volmit.iris.util.format.Form +import art.arcane.iris.BuildConstants +import art.arcane.iris.Iris +import art.arcane.iris.core.IrisSettings +import art.arcane.iris.util.format.C +import art.arcane.volmlib.util.format.Form enum class Mode(private val color: C) { STABLE(C.IRIS), diff --git a/core/src/main/kotlin/com/volmit/iris/core/safeguard/task/Task.kt b/core/src/main/kotlin/art/arcane/iris/core/safeguard/task/Task.kt similarity index 86% rename from core/src/main/kotlin/com/volmit/iris/core/safeguard/task/Task.kt rename to core/src/main/kotlin/art/arcane/iris/core/safeguard/task/Task.kt index aa0dd9202..321474f9b 100644 --- a/core/src/main/kotlin/com/volmit/iris/core/safeguard/task/Task.kt +++ b/core/src/main/kotlin/art/arcane/iris/core/safeguard/task/Task.kt @@ -1,7 +1,7 @@ -package com.volmit.iris.core.safeguard.task +package art.arcane.iris.core.safeguard.task -import com.volmit.iris.core.safeguard.Mode -import com.volmit.iris.util.format.Form +import art.arcane.iris.core.safeguard.Mode +import art.arcane.volmlib.util.format.Form import kotlin.properties.PropertyDelegateProvider import kotlin.properties.ReadOnlyProperty diff --git a/core/src/main/kotlin/com/volmit/iris/core/safeguard/task/Tasks.kt b/core/src/main/kotlin/art/arcane/iris/core/safeguard/task/Tasks.kt similarity index 89% rename from core/src/main/kotlin/com/volmit/iris/core/safeguard/task/Tasks.kt rename to core/src/main/kotlin/art/arcane/iris/core/safeguard/task/Tasks.kt index 54961fc0f..ee2fd04e6 100644 --- a/core/src/main/kotlin/com/volmit/iris/core/safeguard/task/Tasks.kt +++ b/core/src/main/kotlin/art/arcane/iris/core/safeguard/task/Tasks.kt @@ -1,15 +1,15 @@ -package com.volmit.iris.core.safeguard.task +package art.arcane.iris.core.safeguard.task -import com.volmit.iris.Iris -import com.volmit.iris.core.IrisWorlds -import com.volmit.iris.core.nms.INMS -import com.volmit.iris.core.nms.v1X.NMSBinding1X -import com.volmit.iris.core.safeguard.Mode -import com.volmit.iris.core.safeguard.Mode.* -import com.volmit.iris.core.safeguard.task.Diagnostic.Logger.* -import com.volmit.iris.core.safeguard.task.Task.Companion.of -import com.volmit.iris.util.agent.Agent -import com.volmit.iris.util.misc.getHardware +import art.arcane.iris.Iris +import art.arcane.iris.core.IrisWorlds +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.safeguard.Mode.* +import art.arcane.iris.core.safeguard.task.Diagnostic.Logger.* +import art.arcane.iris.core.safeguard.task.Task.Companion.of +import art.arcane.iris.util.agent.Agent +import art.arcane.iris.util.misc.getHardware import org.bukkit.Bukkit import java.util.stream.Collectors import javax.tools.ToolProvider diff --git a/core/src/main/kotlin/com/volmit/iris/core/safeguard/task/ValueWithDiagnostics.kt b/core/src/main/kotlin/art/arcane/iris/core/safeguard/task/ValueWithDiagnostics.kt similarity index 94% rename from core/src/main/kotlin/com/volmit/iris/core/safeguard/task/ValueWithDiagnostics.kt rename to core/src/main/kotlin/art/arcane/iris/core/safeguard/task/ValueWithDiagnostics.kt index d388f3d26..4e6e55d83 100644 --- a/core/src/main/kotlin/com/volmit/iris/core/safeguard/task/ValueWithDiagnostics.kt +++ b/core/src/main/kotlin/art/arcane/iris/core/safeguard/task/ValueWithDiagnostics.kt @@ -1,7 +1,7 @@ -package com.volmit.iris.core.safeguard.task +package art.arcane.iris.core.safeguard.task -import com.volmit.iris.Iris -import com.volmit.iris.util.format.C +import art.arcane.iris.Iris +import art.arcane.iris.util.format.C import java.io.ByteArrayOutputStream import java.io.PrintStream diff --git a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/base/ChunkUpdateScript.kt b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/base/ChunkUpdateScript.kt similarity index 81% rename from core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/base/ChunkUpdateScript.kt rename to core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/base/ChunkUpdateScript.kt index 4bad3524c..30e108c1e 100644 --- a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/base/ChunkUpdateScript.kt +++ b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/base/ChunkUpdateScript.kt @@ -1,7 +1,7 @@ -package com.volmit.iris.core.scripting.kotlin.base +package art.arcane.iris.core.scripting.kotlin.base -import com.volmit.iris.core.scripting.func.UpdateExecutor -import com.volmit.iris.util.mantle.MantleChunk +import art.arcane.iris.core.scripting.func.UpdateExecutor +import art.arcane.iris.util.mantle.MantleChunk import org.bukkit.Chunk import kotlin.script.experimental.annotations.KotlinScript import kotlin.script.experimental.api.ScriptCompilationConfiguration diff --git a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/base/DataScript.kt b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/base/DataScript.kt similarity index 84% rename from core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/base/DataScript.kt rename to core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/base/DataScript.kt index 1a180701c..bc8c80748 100644 --- a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/base/DataScript.kt +++ b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/base/DataScript.kt @@ -1,6 +1,6 @@ -package com.volmit.iris.core.scripting.kotlin.base +package art.arcane.iris.core.scripting.kotlin.base -import com.volmit.iris.core.loader.IrisData +import art.arcane.iris.core.loader.IrisData import kotlin.script.experimental.annotations.KotlinScript import kotlin.script.experimental.api.ScriptCompilationConfiguration import kotlin.script.experimental.api.providedProperties diff --git a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/base/EngineScript.kt b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/base/EngineScript.kt similarity index 73% rename from core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/base/EngineScript.kt rename to core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/base/EngineScript.kt index 8a091a50f..d829679bf 100644 --- a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/base/EngineScript.kt +++ b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/base/EngineScript.kt @@ -1,9 +1,9 @@ -package com.volmit.iris.core.scripting.kotlin.base +package art.arcane.iris.core.scripting.kotlin.base -import com.volmit.iris.core.scripting.func.BiomeLookup -import com.volmit.iris.engine.IrisComplex -import com.volmit.iris.engine.framework.Engine -import com.volmit.iris.engine.`object`.IrisDimension +import art.arcane.iris.core.scripting.func.BiomeLookup +import art.arcane.iris.engine.IrisComplex +import art.arcane.iris.engine.framework.Engine +import art.arcane.iris.engine.`object`.IrisDimension import kotlin.script.experimental.annotations.KotlinScript import kotlin.script.experimental.api.ScriptCompilationConfiguration import kotlin.script.experimental.api.providedProperties diff --git a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/base/MobSpawningScript.kt b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/base/MobSpawningScript.kt similarity index 91% rename from core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/base/MobSpawningScript.kt rename to core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/base/MobSpawningScript.kt index f9add58dc..e6f531acd 100644 --- a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/base/MobSpawningScript.kt +++ b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/base/MobSpawningScript.kt @@ -1,4 +1,4 @@ -package com.volmit.iris.core.scripting.kotlin.base +package art.arcane.iris.core.scripting.kotlin.base import org.bukkit.Location import kotlin.script.experimental.annotations.KotlinScript diff --git a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/base/NoiseScript.kt b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/base/NoiseScript.kt similarity index 84% rename from core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/base/NoiseScript.kt rename to core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/base/NoiseScript.kt index c8a7056fa..5b300d782 100644 --- a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/base/NoiseScript.kt +++ b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/base/NoiseScript.kt @@ -1,6 +1,6 @@ -package com.volmit.iris.core.scripting.kotlin.base +package art.arcane.iris.core.scripting.kotlin.base -import com.volmit.iris.util.math.RNG +import art.arcane.volmlib.util.math.RNG import kotlin.script.experimental.annotations.KotlinScript import kotlin.script.experimental.api.ScriptCompilationConfiguration import kotlin.script.experimental.api.providedProperties @@ -13,4 +13,4 @@ object NoiseScriptDefinition : ScriptCompilationConfiguration(listOf(DataScriptD }) { private fun readResolve(): Any = NoiseScriptDefinition -} \ No newline at end of file +} diff --git a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/base/PostMobSpawningScript.kt b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/base/PostMobSpawningScript.kt similarity index 92% rename from core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/base/PostMobSpawningScript.kt rename to core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/base/PostMobSpawningScript.kt index 02b485bed..b2ab432b2 100644 --- a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/base/PostMobSpawningScript.kt +++ b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/base/PostMobSpawningScript.kt @@ -1,4 +1,4 @@ -package com.volmit.iris.core.scripting.kotlin.base +package art.arcane.iris.core.scripting.kotlin.base import org.bukkit.entity.Entity import kotlin.script.experimental.annotations.KotlinScript diff --git a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/base/PreprocessorScript.kt b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/base/PreprocessorScript.kt similarity index 77% rename from core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/base/PreprocessorScript.kt rename to core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/base/PreprocessorScript.kt index c8941bb8d..13fbb96a4 100644 --- a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/base/PreprocessorScript.kt +++ b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/base/PreprocessorScript.kt @@ -1,8 +1,8 @@ -package com.volmit.iris.core.scripting.kotlin.base +package art.arcane.iris.core.scripting.kotlin.base -import com.volmit.iris.core.loader.IrisRegistrant -import com.volmit.iris.engine.framework.Engine -import com.volmit.iris.engine.`object`.IrisDimension +import art.arcane.iris.core.loader.IrisRegistrant +import art.arcane.iris.engine.framework.Engine +import art.arcane.iris.engine.`object`.IrisDimension import kotlin.script.experimental.annotations.KotlinScript import kotlin.script.experimental.api.ScriptCompilationConfiguration import kotlin.script.experimental.api.providedProperties diff --git a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/base/SimpleScript.kt b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/base/SimpleScript.kt similarity index 78% rename from core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/base/SimpleScript.kt rename to core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/base/SimpleScript.kt index 5839bbcc0..df3e29259 100644 --- a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/base/SimpleScript.kt +++ b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/base/SimpleScript.kt @@ -1,6 +1,6 @@ -package com.volmit.iris.core.scripting.kotlin.base +package art.arcane.iris.core.scripting.kotlin.base -import com.volmit.iris.core.scripting.kotlin.runner.configure +import art.arcane.iris.core.scripting.kotlin.runner.configure import kotlin.script.experimental.annotations.KotlinScript import kotlin.script.experimental.api.ScriptCompilationConfiguration import kotlin.script.experimental.api.defaultImports @@ -16,10 +16,10 @@ object SimpleScriptDefinition : ScriptCompilationConfiguration({ defaultImports( DependsOn::class.qualifiedName!!, Repository::class.qualifiedName!!, - "com.volmit.iris.Iris.info", - "com.volmit.iris.Iris.debug", - "com.volmit.iris.Iris.warn", - "com.volmit.iris.Iris.error" + "art.arcane.iris.Iris.info", + "art.arcane.iris.Iris.debug", + "art.arcane.iris.Iris.warn", + "art.arcane.iris.Iris.error" ) jvm { diff --git a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/environment/IrisExecutionEnvironment.kt b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/environment/IrisExecutionEnvironment.kt similarity index 70% rename from core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/environment/IrisExecutionEnvironment.kt rename to core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/environment/IrisExecutionEnvironment.kt index 2114f29d4..4b593ed8e 100644 --- a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/environment/IrisExecutionEnvironment.kt +++ b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/environment/IrisExecutionEnvironment.kt @@ -1,18 +1,18 @@ -package com.volmit.iris.core.scripting.kotlin.environment +package art.arcane.iris.core.scripting.kotlin.environment -import com.volmit.iris.core.loader.IrisRegistrant -import com.volmit.iris.core.scripting.environment.EngineEnvironment -import com.volmit.iris.core.scripting.func.BiomeLookup -import com.volmit.iris.core.scripting.func.UpdateExecutor -import com.volmit.iris.core.scripting.kotlin.base.ChunkUpdateScript -import com.volmit.iris.core.scripting.kotlin.base.EngineScript -import com.volmit.iris.core.scripting.kotlin.base.MobSpawningScript -import com.volmit.iris.core.scripting.kotlin.base.PostMobSpawningScript -import com.volmit.iris.core.scripting.kotlin.base.PreprocessorScript -import com.volmit.iris.core.scripting.kotlin.environment.IrisSimpleExecutionEnvironment -import com.volmit.iris.core.scripting.kotlin.runner.ScriptRunner -import com.volmit.iris.engine.framework.Engine -import com.volmit.iris.util.mantle.MantleChunk +import art.arcane.iris.core.loader.IrisRegistrant +import art.arcane.iris.core.scripting.environment.EngineEnvironment +import art.arcane.iris.core.scripting.func.BiomeLookup +import art.arcane.iris.core.scripting.func.UpdateExecutor +import art.arcane.iris.core.scripting.kotlin.base.ChunkUpdateScript +import art.arcane.iris.core.scripting.kotlin.base.EngineScript +import art.arcane.iris.core.scripting.kotlin.base.MobSpawningScript +import art.arcane.iris.core.scripting.kotlin.base.PostMobSpawningScript +import art.arcane.iris.core.scripting.kotlin.base.PreprocessorScript +import art.arcane.iris.core.scripting.kotlin.environment.IrisSimpleExecutionEnvironment +import art.arcane.iris.core.scripting.kotlin.runner.ScriptRunner +import art.arcane.iris.engine.framework.Engine +import art.arcane.iris.util.mantle.MantleChunk import org.bukkit.Chunk import org.bukkit.Location import org.bukkit.entity.Entity diff --git a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/environment/IrisPackExecutionEnvironment.kt b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/environment/IrisPackExecutionEnvironment.kt similarity index 67% rename from core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/environment/IrisPackExecutionEnvironment.kt rename to core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/environment/IrisPackExecutionEnvironment.kt index 412695f46..0899291d3 100644 --- a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/environment/IrisPackExecutionEnvironment.kt +++ b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/environment/IrisPackExecutionEnvironment.kt @@ -1,15 +1,15 @@ -package com.volmit.iris.core.scripting.kotlin.environment +package art.arcane.iris.core.scripting.kotlin.environment -import com.volmit.iris.core.loader.IrisData -import com.volmit.iris.core.scripting.environment.EngineEnvironment -import com.volmit.iris.core.scripting.environment.PackEnvironment -import com.volmit.iris.core.scripting.kotlin.base.DataScript -import com.volmit.iris.core.scripting.kotlin.base.NoiseScript -import com.volmit.iris.core.scripting.kotlin.runner.Script -import com.volmit.iris.core.scripting.kotlin.runner.ScriptRunner -import com.volmit.iris.core.scripting.kotlin.runner.valueOrThrow -import com.volmit.iris.engine.framework.Engine -import com.volmit.iris.util.math.RNG +import art.arcane.iris.core.loader.IrisData +import art.arcane.iris.core.scripting.environment.EngineEnvironment +import art.arcane.iris.core.scripting.environment.PackEnvironment +import art.arcane.iris.core.scripting.kotlin.base.DataScript +import art.arcane.iris.core.scripting.kotlin.base.NoiseScript +import art.arcane.iris.core.scripting.kotlin.runner.Script +import art.arcane.iris.core.scripting.kotlin.runner.ScriptRunner +import art.arcane.iris.core.scripting.kotlin.runner.valueOrThrow +import art.arcane.iris.engine.framework.Engine +import art.arcane.volmlib.util.math.RNG import kotlin.reflect.KClass open class IrisPackExecutionEnvironment internal constructor( @@ -45,4 +45,4 @@ open class IrisPackExecutionEnvironment internal constructor( *values, ) } -} \ No newline at end of file +} diff --git a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/environment/IrisSimpleExecutionEnvironment.kt b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/environment/IrisSimpleExecutionEnvironment.kt similarity index 89% rename from core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/environment/IrisSimpleExecutionEnvironment.kt rename to core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/environment/IrisSimpleExecutionEnvironment.kt index 274807eee..32d142d05 100644 --- a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/environment/IrisSimpleExecutionEnvironment.kt +++ b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/environment/IrisSimpleExecutionEnvironment.kt @@ -1,18 +1,18 @@ -package com.volmit.iris.core.scripting.kotlin.environment +package art.arcane.iris.core.scripting.kotlin.environment -import com.volmit.iris.Iris -import com.volmit.iris.core.IrisSettings -import com.volmit.iris.core.scripting.environment.SimpleEnvironment -import com.volmit.iris.core.scripting.kotlin.base.* -import com.volmit.iris.core.scripting.kotlin.runner.FileComponents -import com.volmit.iris.core.scripting.kotlin.runner.Script -import com.volmit.iris.core.scripting.kotlin.runner.ScriptRunner -import com.volmit.iris.core.scripting.kotlin.runner.classpath -import com.volmit.iris.core.scripting.kotlin.runner.value -import com.volmit.iris.core.scripting.kotlin.runner.valueOrThrow -import com.volmit.iris.util.collection.KMap -import com.volmit.iris.util.data.KCache -import com.volmit.iris.util.format.C +import art.arcane.iris.Iris +import art.arcane.iris.core.IrisSettings +import art.arcane.iris.core.scripting.environment.SimpleEnvironment +import art.arcane.iris.core.scripting.kotlin.base.* +import art.arcane.iris.core.scripting.kotlin.runner.FileComponents +import art.arcane.iris.core.scripting.kotlin.runner.Script +import art.arcane.iris.core.scripting.kotlin.runner.ScriptRunner +import art.arcane.iris.core.scripting.kotlin.runner.classpath +import art.arcane.iris.core.scripting.kotlin.runner.value +import art.arcane.iris.core.scripting.kotlin.runner.valueOrThrow +import art.arcane.volmlib.util.collection.KMap +import art.arcane.volmlib.util.data.KCache +import art.arcane.iris.util.format.C import java.io.File import kotlin.reflect.KClass import kotlin.script.experimental.annotations.KotlinScript diff --git a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/runner/CachedScript.kt b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/runner/CachedScript.kt similarity index 97% rename from core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/runner/CachedScript.kt rename to core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/runner/CachedScript.kt index c30df1f35..3ee4de34c 100644 --- a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/runner/CachedScript.kt +++ b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/runner/CachedScript.kt @@ -1,4 +1,4 @@ -package com.volmit.iris.core.scripting.kotlin.runner +package art.arcane.iris.core.scripting.kotlin.runner import java.util.concurrent.locks.ReentrantLock import kotlin.reflect.KClass diff --git a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/runner/Script.kt b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/runner/Script.kt similarity index 81% rename from core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/runner/Script.kt rename to core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/runner/Script.kt index fdb0dce03..d058b75b8 100644 --- a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/runner/Script.kt +++ b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/runner/Script.kt @@ -1,4 +1,4 @@ -package com.volmit.iris.core.scripting.kotlin.runner +package art.arcane.iris.core.scripting.kotlin.runner import kotlin.script.experimental.api.EvaluationResult import kotlin.script.experimental.api.ResultWithDiagnostics diff --git a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/runner/ScriptRunner.kt b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/runner/ScriptRunner.kt similarity index 95% rename from core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/runner/ScriptRunner.kt rename to core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/runner/ScriptRunner.kt index 2b5bb3099..98b1bebf1 100644 --- a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/runner/ScriptRunner.kt +++ b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/runner/ScriptRunner.kt @@ -1,6 +1,6 @@ -package com.volmit.iris.core.scripting.kotlin.runner +package art.arcane.iris.core.scripting.kotlin.runner -import com.volmit.iris.core.scripting.kotlin.base.SimpleScript +import art.arcane.iris.core.scripting.kotlin.base.SimpleScript import java.io.File import java.util.concurrent.ConcurrentHashMap import kotlin.reflect.KClass diff --git a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/runner/Utils.kt b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/runner/Utils.kt similarity index 98% rename from core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/runner/Utils.kt rename to core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/runner/Utils.kt index 0b6c7fbaf..779d7a25c 100644 --- a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/runner/Utils.kt +++ b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/runner/Utils.kt @@ -1,6 +1,6 @@ -package com.volmit.iris.core.scripting.kotlin.runner +package art.arcane.iris.core.scripting.kotlin.runner -import com.volmit.iris.core.scripting.kotlin.runner.resolver.CompoundDependenciesResolver +import art.arcane.iris.core.scripting.kotlin.runner.resolver.CompoundDependenciesResolver import kotlinx.coroutines.runBlocking import java.io.File import java.net.URLClassLoader diff --git a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/runner/resolver/CompoundDependenciesResolver.kt b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/runner/resolver/CompoundDependenciesResolver.kt similarity index 98% rename from core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/runner/resolver/CompoundDependenciesResolver.kt rename to core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/runner/resolver/CompoundDependenciesResolver.kt index 9ed722594..c0281bf86 100644 --- a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/runner/resolver/CompoundDependenciesResolver.kt +++ b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/runner/resolver/CompoundDependenciesResolver.kt @@ -1,4 +1,4 @@ -package com.volmit.iris.core.scripting.kotlin.runner.resolver +package art.arcane.iris.core.scripting.kotlin.runner.resolver import java.io.File import kotlin.collections.component1 diff --git a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/runner/resolver/DependenciesResolver.kt b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/runner/resolver/DependenciesResolver.kt similarity index 75% rename from core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/runner/resolver/DependenciesResolver.kt rename to core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/runner/resolver/DependenciesResolver.kt index c6ee1e29c..d2aafbc32 100644 --- a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/runner/resolver/DependenciesResolver.kt +++ b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/runner/resolver/DependenciesResolver.kt @@ -1,4 +1,4 @@ -package com.volmit.iris.core.scripting.kotlin.runner.resolver +package art.arcane.iris.core.scripting.kotlin.runner.resolver import java.io.File import kotlin.script.experimental.dependencies.ExternalDependenciesResolver diff --git a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/runner/resolver/FileDependenciesResolver.kt b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/runner/resolver/FileDependenciesResolver.kt similarity index 97% rename from core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/runner/resolver/FileDependenciesResolver.kt rename to core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/runner/resolver/FileDependenciesResolver.kt index ea9dac401..1f5364eda 100644 --- a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/runner/resolver/FileDependenciesResolver.kt +++ b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/runner/resolver/FileDependenciesResolver.kt @@ -1,4 +1,4 @@ -package com.volmit.iris.core.scripting.kotlin.runner.resolver +package art.arcane.iris.core.scripting.kotlin.runner.resolver import java.io.File import java.util.concurrent.ConcurrentHashMap diff --git a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/runner/resolver/LocalMavenDependenciesResolver.kt b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/runner/resolver/LocalMavenDependenciesResolver.kt similarity index 97% rename from core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/runner/resolver/LocalMavenDependenciesResolver.kt rename to core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/runner/resolver/LocalMavenDependenciesResolver.kt index a5ac11d2b..da15996ff 100644 --- a/core/src/main/kotlin/com/volmit/iris/core/scripting/kotlin/runner/resolver/LocalMavenDependenciesResolver.kt +++ b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/runner/resolver/LocalMavenDependenciesResolver.kt @@ -1,6 +1,6 @@ -package com.volmit.iris.core.scripting.kotlin.runner.resolver +package art.arcane.iris.core.scripting.kotlin.runner.resolver -import com.volmit.iris.util.io.IO +import art.arcane.volmlib.util.io.IO import org.dom4j.Document import org.dom4j.DocumentFactory import org.dom4j.io.SAXReader diff --git a/core/src/main/kotlin/com/volmit/iris/engine/mantle/MatterGenerator.kt b/core/src/main/kotlin/art/arcane/iris/engine/mantle/MatterGenerator.kt similarity index 83% rename from core/src/main/kotlin/com/volmit/iris/engine/mantle/MatterGenerator.kt rename to core/src/main/kotlin/art/arcane/iris/engine/mantle/MatterGenerator.kt index db579b096..284b7083a 100644 --- a/core/src/main/kotlin/com/volmit/iris/engine/mantle/MatterGenerator.kt +++ b/core/src/main/kotlin/art/arcane/iris/engine/mantle/MatterGenerator.kt @@ -1,13 +1,13 @@ -package com.volmit.iris.engine.mantle +package art.arcane.iris.engine.mantle -import com.volmit.iris.core.IrisSettings -import com.volmit.iris.core.nms.container.Pair -import com.volmit.iris.engine.framework.Engine -import com.volmit.iris.util.context.ChunkContext -import com.volmit.iris.util.documentation.ChunkCoordinates -import com.volmit.iris.util.mantle.Mantle -import com.volmit.iris.util.mantle.flag.MantleFlag -import com.volmit.iris.util.parallel.MultiBurst +import art.arcane.iris.core.IrisSettings +import art.arcane.iris.core.nms.container.Pair +import art.arcane.iris.engine.framework.Engine +import art.arcane.iris.util.context.ChunkContext +import art.arcane.volmlib.util.documentation.ChunkCoordinates +import art.arcane.iris.util.mantle.Mantle +import art.arcane.volmlib.util.mantle.flag.MantleFlag +import art.arcane.iris.util.parallel.MultiBurst import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking diff --git a/core/src/main/kotlin/art/arcane/iris/util/common/mantle/FlaggedChunk.kt b/core/src/main/kotlin/art/arcane/iris/util/common/mantle/FlaggedChunk.kt new file mode 100644 index 000000000..a6481eeca --- /dev/null +++ b/core/src/main/kotlin/art/arcane/iris/util/common/mantle/FlaggedChunk.kt @@ -0,0 +1,3 @@ +package art.arcane.iris.util.mantle + +abstract class FlaggedChunk : art.arcane.volmlib.util.mantle.FlaggedChunk() diff --git a/core/src/main/kotlin/com/volmit/iris/util/context/ChunkContext.kt b/core/src/main/kotlin/art/arcane/iris/util/project/context/ChunkContext.kt similarity index 83% rename from core/src/main/kotlin/com/volmit/iris/util/context/ChunkContext.kt rename to core/src/main/kotlin/art/arcane/iris/util/project/context/ChunkContext.kt index 26015204b..bf3342ba3 100644 --- a/core/src/main/kotlin/com/volmit/iris/util/context/ChunkContext.kt +++ b/core/src/main/kotlin/art/arcane/iris/util/project/context/ChunkContext.kt @@ -1,9 +1,9 @@ -package com.volmit.iris.util.context +package art.arcane.iris.util.context -import com.volmit.iris.engine.IrisComplex -import com.volmit.iris.engine.`object`.IrisBiome -import com.volmit.iris.engine.`object`.IrisRegion -import com.volmit.iris.util.parallel.MultiBurst +import art.arcane.iris.engine.IrisComplex +import art.arcane.iris.engine.`object`.IrisBiome +import art.arcane.iris.engine.`object`.IrisRegion +import art.arcane.iris.util.parallel.MultiBurst import kotlinx.coroutines.* import org.bukkit.block.data.BlockData diff --git a/core/src/main/kotlin/com/volmit/iris/util/context/ChunkedDataCache.kt b/core/src/main/kotlin/art/arcane/iris/util/project/context/ChunkedDataCache.kt similarity index 89% rename from core/src/main/kotlin/com/volmit/iris/util/context/ChunkedDataCache.kt rename to core/src/main/kotlin/art/arcane/iris/util/project/context/ChunkedDataCache.kt index 679b9c42f..d3e4a99fd 100644 --- a/core/src/main/kotlin/com/volmit/iris/util/context/ChunkedDataCache.kt +++ b/core/src/main/kotlin/art/arcane/iris/util/project/context/ChunkedDataCache.kt @@ -1,7 +1,7 @@ -package com.volmit.iris.util.context +package art.arcane.iris.util.context -import com.volmit.iris.util.documentation.BlockCoordinates -import com.volmit.iris.util.stream.ProceduralStream +import art.arcane.volmlib.util.documentation.BlockCoordinates +import art.arcane.iris.util.stream.ProceduralStream import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.supervisorScope diff --git a/core/src/main/kotlin/com/volmit/iris/util/mantle/FlaggedChunk.kt b/core/src/main/kotlin/com/volmit/iris/util/mantle/FlaggedChunk.kt deleted file mode 100644 index 28967ecbe..000000000 --- a/core/src/main/kotlin/com/volmit/iris/util/mantle/FlaggedChunk.kt +++ /dev/null @@ -1,113 +0,0 @@ -package com.volmit.iris.util.mantle - -import com.volmit.iris.util.data.Varint -import com.volmit.iris.util.mantle.flag.MantleFlag -import com.volmit.iris.util.parallel.AtomicBooleanArray -import kotlinx.coroutines.coroutineScope -import kotlinx.coroutines.launch -import kotlinx.coroutines.runBlocking -import kotlinx.coroutines.sync.Mutex -import kotlinx.coroutines.sync.withLock -import java.io.DataInput -import java.io.DataOutput -import java.io.IOException -import java.lang.Byte -import kotlin.Boolean -import kotlin.IllegalStateException -import kotlin.Int -import kotlin.Throwable -import kotlin.Throws -import kotlin.Unit - -abstract class FlaggedChunk() { - private val flags = AtomicBooleanArray(MantleFlag.MAX_ORDINAL + 1) - private val locks = 0.rangeUntil(flags.length()).map { Mutex() }.toTypedArray() - - abstract fun isClosed(): Boolean - - protected fun copyFrom(other: FlaggedChunk, action: Runnable) = runBlocking { - coroutineScope { - for (i in 0 until flags.length()) { - launch { locks[i].lock() }.start() - } - } - - action.run() - - for (i in 0 until flags.length()) { - flags[i] = other.flags[i] - } - - for (i in 0 until flags.length()) { - locks[i].unlock() - } - } - - fun isFlagged(flag: MantleFlag) = flags.get(flag.ordinal()) - fun flag(flag: MantleFlag, value: Boolean) { - if (isClosed()) throw IllegalStateException("Chunk is closed!") - flags.set(flag.ordinal(), value) - } - - suspend fun raiseFlagSuspend(flag: MantleFlag, task: suspend () -> Unit) { - if (isClosed()) throw IllegalStateException("Chunk is closed!") - if (isFlagged(flag)) return - - locks[flag.ordinal()].withLock { - if (isFlagged(flag)) return - task() - if (flags.getAndSet(flag.ordinal(), true)) - throw IllegalStateException("Flag ${flag.name()} was already set after task ran!") - } - } - - fun raiseFlagUnchecked(flag: MantleFlag, task: Runnable) { - if (isClosed()) throw IllegalStateException("Chunk is closed!") - if (flags.compareAndSet(flag.ordinal(), false, true)) { - try { - task.run() - } catch (e: Throwable) { - flags.set(flag.ordinal(), false) - throw e - } - } - } - - @Throws(IOException::class) - protected fun readFlags(version: Int, din: DataInput) { - val l = if (version < 0) 16 else Varint.readUnsignedVarInt(din) - - if (version >= 1) { - var i = 0 - while (i < l) { - val f = din.readByte() - var j = 0 - while (j < Byte.SIZE && i < flags.length()) { - flags.set(i, (f.toInt() and (1 shl j)) != 0) - j++ - i++ - } - } - } else { - for (i in 0 until l) { - flags.set(i, din.readBoolean()) - } - } - } - - @Throws(IOException::class) - protected fun writeFlags(dos: DataOutput) { - Varint.writeUnsignedVarInt(flags.length(), dos) - val count = flags.length() - var i = 0 - while (i < count) { - var f = 0 - for (j in 0 until Byte.SIZE) { - if (i >= count) break - f = f or if (flags.get(i)) 1 shl j else 0 - i++ - } - dos.write(f) - } - } -} \ No newline at end of file diff --git a/core/src/main/templates/BuildConstants.java b/core/src/main/templates/BuildConstants.java index 0bdbbf1cc..23f77cea3 100644 --- a/core/src/main/templates/BuildConstants.java +++ b/core/src/main/templates/BuildConstants.java @@ -1,4 +1,4 @@ -package com.volmit.iris; +package art.arcane.iris; // The constants are replaced before compilation public interface BuildConstants { diff --git a/nms/v1_20_R1/src/main/java/com/volmit/iris/core/nms/v1_20_R1/CustomBiomeSource.java b/nms/v1_20_R1/src/main/java/art/arcane/iris/core/nms/v1_20_R1/CustomBiomeSource.java similarity index 94% rename from nms/v1_20_R1/src/main/java/com/volmit/iris/core/nms/v1_20_R1/CustomBiomeSource.java rename to nms/v1_20_R1/src/main/java/art/arcane/iris/core/nms/v1_20_R1/CustomBiomeSource.java index 41f4170c8..680a72e0f 100644 --- a/nms/v1_20_R1/src/main/java/com/volmit/iris/core/nms/v1_20_R1/CustomBiomeSource.java +++ b/nms/v1_20_R1/src/main/java/art/arcane/iris/core/nms/v1_20_R1/CustomBiomeSource.java @@ -1,13 +1,13 @@ -package com.volmit.iris.core.nms.v1_20_R1; +package art.arcane.iris.core.nms.v1_20_R1; import com.mojang.serialization.Codec; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisBiomeCustom; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.iris.engine.object.IrisBiomeCustom; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.math.RNG; import net.minecraft.core.Holder; import net.minecraft.core.Registry; import net.minecraft.core.RegistryAccess; diff --git a/nms/v1_20_R1/src/main/java/com/volmit/iris/core/nms/v1_20_R1/IrisChunkGenerator.java b/nms/v1_20_R1/src/main/java/art/arcane/iris/core/nms/v1_20_R1/IrisChunkGenerator.java similarity index 96% rename from nms/v1_20_R1/src/main/java/com/volmit/iris/core/nms/v1_20_R1/IrisChunkGenerator.java rename to nms/v1_20_R1/src/main/java/art/arcane/iris/core/nms/v1_20_R1/IrisChunkGenerator.java index ce5412199..1fe0814f5 100644 --- a/nms/v1_20_R1/src/main/java/com/volmit/iris/core/nms/v1_20_R1/IrisChunkGenerator.java +++ b/nms/v1_20_R1/src/main/java/art/arcane/iris/core/nms/v1_20_R1/IrisChunkGenerator.java @@ -1,21 +1,21 @@ -package com.volmit.iris.core.nms.v1_20_R1; +package art.arcane.iris.core.nms.v1_20_R1; import com.mojang.datafixers.util.Pair; import com.mojang.serialization.Codec; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.ResultLocator; -import com.volmit.iris.engine.framework.WrongEngineBroException; -import com.volmit.iris.engine.object.IrisJigsawStructure; -import com.volmit.iris.engine.object.IrisJigsawStructurePlacement; -import com.volmit.iris.engine.object.IrisStructurePopulator; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.mantle.flag.MantleFlag; -import com.volmit.iris.util.math.Position2; -import com.volmit.iris.util.reflect.WrappedField; -import com.volmit.iris.util.reflect.WrappedReturningMethod; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.framework.ResultLocator; +import art.arcane.iris.engine.framework.WrongEngineBroException; +import art.arcane.iris.engine.object.IrisJigsawStructure; +import art.arcane.iris.engine.object.IrisJigsawStructurePlacement; +import art.arcane.iris.engine.object.IrisStructurePopulator; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.collection.KSet; +import art.arcane.volmlib.util.mantle.flag.MantleFlag; +import art.arcane.iris.util.math.Position2; +import art.arcane.iris.util.reflect.WrappedField; +import art.arcane.iris.util.reflect.WrappedReturningMethod; import net.minecraft.CrashReport; import net.minecraft.CrashReportCategory; import net.minecraft.ReportedException; diff --git a/nms/v1_20_R1/src/main/java/com/volmit/iris/core/nms/v1_20_R1/NMSBinding.java b/nms/v1_20_R1/src/main/java/art/arcane/iris/core/nms/v1_20_R1/NMSBinding.java similarity index 96% rename from nms/v1_20_R1/src/main/java/com/volmit/iris/core/nms/v1_20_R1/NMSBinding.java rename to nms/v1_20_R1/src/main/java/art/arcane/iris/core/nms/v1_20_R1/NMSBinding.java index 4b3d04f22..997ea0c91 100644 --- a/nms/v1_20_R1/src/main/java/com/volmit/iris/core/nms/v1_20_R1/NMSBinding.java +++ b/nms/v1_20_R1/src/main/java/art/arcane/iris/core/nms/v1_20_R1/NMSBinding.java @@ -1,30 +1,30 @@ -package com.volmit.iris.core.nms.v1_20_R1; +package art.arcane.iris.core.nms.v1_20_R1; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.datafixers.util.Pair; -import com.volmit.iris.Iris; -import com.volmit.iris.core.link.Identifier; -import com.volmit.iris.core.nms.INMSBinding; -import com.volmit.iris.core.nms.container.BiomeColor; -import com.volmit.iris.core.nms.container.StructurePlacement; -import com.volmit.iris.core.nms.container.BlockProperty; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisJigsawStructurePlacement; -import com.volmit.iris.engine.platform.PlatformChunkGenerator; -import com.volmit.iris.util.agent.Agent; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.mantle.Mantle; -import com.volmit.iris.util.math.Vector3d; -import com.volmit.iris.util.matter.MatterBiomeInject; -import com.volmit.iris.util.nbt.mca.NBTWorld; -import com.volmit.iris.util.nbt.mca.palette.*; -import com.volmit.iris.util.nbt.tag.CompoundTag; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.iris.core.link.Identifier; +import art.arcane.iris.core.nms.INMSBinding; +import art.arcane.iris.core.nms.container.BiomeColor; +import art.arcane.iris.core.nms.container.StructurePlacement; +import art.arcane.iris.core.nms.container.BlockProperty; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.object.IrisJigsawStructurePlacement; +import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.util.agent.Agent; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.format.C; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.iris.util.mantle.Mantle; +import art.arcane.iris.util.math.Vector3d; +import art.arcane.iris.util.matter.MatterBiomeInject; +import art.arcane.iris.util.nbt.mca.NBTWorld; +import art.arcane.iris.util.nbt.mca.palette.*; +import art.arcane.iris.util.nbt.tag.CompoundTag; +import art.arcane.iris.util.scheduling.J; import it.unimi.dsi.fastutil.objects.Object2IntMap; import net.bytebuddy.ByteBuddy; import net.bytebuddy.asm.Advice; @@ -749,7 +749,7 @@ public class NMSBinding implements INMSBinding { return null; } - return new com.volmit.iris.core.nms.container.Pair<>(new Identifier(key.getNamespace(), key.getPath()), builder + return new art.arcane.iris.core.nms.container.Pair<>(new Identifier(key.getNamespace(), key.getPath()), builder .salt(placement.salt) .frequency(placement.frequency) .structures(set.structures() @@ -771,7 +771,7 @@ public class NMSBinding implements INMSBinding { .build()); }) .filter(Objects::nonNull) - .collect(Collectors.toMap(com.volmit.iris.core.nms.container.Pair::getA, com.volmit.iris.core.nms.container.Pair::getB, (a, b) -> a, KMap::new)); + .collect(Collectors.toMap(art.arcane.iris.core.nms.container.Pair::getA, art.arcane.iris.core.nms.container.Pair::getB, (a, b) -> a, KMap::new)); } public LevelStem levelStem(RegistryAccess access, ChunkGenerator raw) { @@ -806,11 +806,11 @@ public class NMSBinding implements INMSBinding { @Advice.Argument(12) World.Environment env, @Advice.Argument(value = 13) ChunkGenerator gen ) { - if (gen == null || !gen.getClass().getPackageName().startsWith("com.volmit.iris")) + if (gen == null || !gen.getClass().getPackageName().startsWith("art.arcane.iris")) return; try { - Object bindings = Class.forName("com.volmit.iris.core.nms.INMS", true, Bukkit.getPluginManager().getPlugin("Iris") + Object bindings = Class.forName("art.arcane.iris.core.nms.INMS", true, Bukkit.getPluginManager().getPlugin("Iris") .getClass() .getClassLoader()) .getDeclaredMethod("get") diff --git a/nms/v1_20_R2/src/main/java/com/volmit/iris/core/nms/v1_20_R2/CustomBiomeSource.java b/nms/v1_20_R2/src/main/java/art/arcane/iris/core/nms/v1_20_R2/CustomBiomeSource.java similarity index 94% rename from nms/v1_20_R2/src/main/java/com/volmit/iris/core/nms/v1_20_R2/CustomBiomeSource.java rename to nms/v1_20_R2/src/main/java/art/arcane/iris/core/nms/v1_20_R2/CustomBiomeSource.java index fcf462f95..0346e241d 100644 --- a/nms/v1_20_R2/src/main/java/com/volmit/iris/core/nms/v1_20_R2/CustomBiomeSource.java +++ b/nms/v1_20_R2/src/main/java/art/arcane/iris/core/nms/v1_20_R2/CustomBiomeSource.java @@ -1,13 +1,13 @@ -package com.volmit.iris.core.nms.v1_20_R2; +package art.arcane.iris.core.nms.v1_20_R2; import com.mojang.serialization.Codec; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisBiomeCustom; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.iris.engine.object.IrisBiomeCustom; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.math.RNG; import net.minecraft.core.Holder; import net.minecraft.core.Registry; import net.minecraft.core.RegistryAccess; diff --git a/nms/v1_20_R2/src/main/java/com/volmit/iris/core/nms/v1_20_R2/IrisChunkGenerator.java b/nms/v1_20_R2/src/main/java/art/arcane/iris/core/nms/v1_20_R2/IrisChunkGenerator.java similarity index 96% rename from nms/v1_20_R2/src/main/java/com/volmit/iris/core/nms/v1_20_R2/IrisChunkGenerator.java rename to nms/v1_20_R2/src/main/java/art/arcane/iris/core/nms/v1_20_R2/IrisChunkGenerator.java index c22317c0f..78b060574 100644 --- a/nms/v1_20_R2/src/main/java/com/volmit/iris/core/nms/v1_20_R2/IrisChunkGenerator.java +++ b/nms/v1_20_R2/src/main/java/art/arcane/iris/core/nms/v1_20_R2/IrisChunkGenerator.java @@ -1,21 +1,21 @@ -package com.volmit.iris.core.nms.v1_20_R2; +package art.arcane.iris.core.nms.v1_20_R2; import com.mojang.datafixers.util.Pair; import com.mojang.serialization.Codec; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.ResultLocator; -import com.volmit.iris.engine.framework.WrongEngineBroException; -import com.volmit.iris.engine.object.IrisJigsawStructure; -import com.volmit.iris.engine.object.IrisJigsawStructurePlacement; -import com.volmit.iris.engine.object.IrisStructurePopulator; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.mantle.flag.MantleFlag; -import com.volmit.iris.util.math.Position2; -import com.volmit.iris.util.reflect.WrappedField; -import com.volmit.iris.util.reflect.WrappedReturningMethod; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.framework.ResultLocator; +import art.arcane.iris.engine.framework.WrongEngineBroException; +import art.arcane.iris.engine.object.IrisJigsawStructure; +import art.arcane.iris.engine.object.IrisJigsawStructurePlacement; +import art.arcane.iris.engine.object.IrisStructurePopulator; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.collection.KSet; +import art.arcane.volmlib.util.mantle.flag.MantleFlag; +import art.arcane.iris.util.math.Position2; +import art.arcane.iris.util.reflect.WrappedField; +import art.arcane.iris.util.reflect.WrappedReturningMethod; import net.minecraft.CrashReport; import net.minecraft.CrashReportCategory; import net.minecraft.ReportedException; diff --git a/nms/v1_20_R2/src/main/java/com/volmit/iris/core/nms/v1_20_R2/NMSBinding.java b/nms/v1_20_R2/src/main/java/art/arcane/iris/core/nms/v1_20_R2/NMSBinding.java similarity index 96% rename from nms/v1_20_R2/src/main/java/com/volmit/iris/core/nms/v1_20_R2/NMSBinding.java rename to nms/v1_20_R2/src/main/java/art/arcane/iris/core/nms/v1_20_R2/NMSBinding.java index d1db20679..9d4625301 100644 --- a/nms/v1_20_R2/src/main/java/com/volmit/iris/core/nms/v1_20_R2/NMSBinding.java +++ b/nms/v1_20_R2/src/main/java/art/arcane/iris/core/nms/v1_20_R2/NMSBinding.java @@ -1,4 +1,4 @@ -package com.volmit.iris.core.nms.v1_20_R2; +package art.arcane.iris.core.nms.v1_20_R2; import com.mojang.brigadier.exceptions.CommandSyntaxException; import java.awt.Color; @@ -16,31 +16,31 @@ import java.util.function.Function; import java.util.stream.Collectors; import com.mojang.datafixers.util.Pair; -import com.volmit.iris.Iris; -import com.volmit.iris.core.nms.INMSBinding; +import art.arcane.iris.Iris; +import art.arcane.iris.core.nms.INMSBinding; import com.mojang.serialization.Lifecycle; -import com.volmit.iris.core.link.Identifier; -import com.volmit.iris.core.nms.container.AutoClosing; -import com.volmit.iris.core.nms.container.BiomeColor; -import com.volmit.iris.core.nms.container.BlockProperty; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.platform.PlatformChunkGenerator; -import com.volmit.iris.util.agent.Agent; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.mantle.Mantle; -import com.volmit.iris.util.math.Vector3d; -import com.volmit.iris.util.matter.MatterBiomeInject; -import com.volmit.iris.util.nbt.mca.NBTWorld; -import com.volmit.iris.util.nbt.mca.palette.*; -import com.volmit.iris.util.nbt.tag.CompoundTag; -import com.volmit.iris.core.nms.container.StructurePlacement; -import com.volmit.iris.engine.object.IrisJigsawStructurePlacement; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.core.link.Identifier; +import art.arcane.iris.core.nms.container.AutoClosing; +import art.arcane.iris.core.nms.container.BiomeColor; +import art.arcane.iris.core.nms.container.BlockProperty; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.util.agent.Agent; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.format.C; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.iris.util.mantle.Mantle; +import art.arcane.iris.util.math.Vector3d; +import art.arcane.iris.util.matter.MatterBiomeInject; +import art.arcane.iris.util.nbt.mca.NBTWorld; +import art.arcane.iris.util.nbt.mca.palette.*; +import art.arcane.iris.util.nbt.tag.CompoundTag; +import art.arcane.iris.core.nms.container.StructurePlacement; +import art.arcane.iris.engine.object.IrisJigsawStructurePlacement; +import art.arcane.iris.util.scheduling.J; import it.unimi.dsi.fastutil.objects.Object2IntMap; import net.bytebuddy.ByteBuddy; import net.bytebuddy.asm.Advice; @@ -768,7 +768,7 @@ public class NMSBinding implements INMSBinding { return null; } - return new com.volmit.iris.core.nms.container.Pair<>(new Identifier(key.getNamespace(), key.getPath()), builder + return new art.arcane.iris.core.nms.container.Pair<>(new Identifier(key.getNamespace(), key.getPath()), builder .salt(placement.salt) .frequency(placement.frequency) .structures(set.structures() @@ -790,7 +790,7 @@ public class NMSBinding implements INMSBinding { .build()); }) .filter(Objects::nonNull) - .collect(Collectors.toMap(com.volmit.iris.core.nms.container.Pair::getA, com.volmit.iris.core.nms.container.Pair::getB, (a, b) -> a, KMap::new)); + .collect(Collectors.toMap(art.arcane.iris.core.nms.container.Pair::getA, art.arcane.iris.core.nms.container.Pair::getB, (a, b) -> a, KMap::new)); } public LevelStem levelStem(RegistryAccess access, ChunkGenerator raw) { @@ -825,11 +825,11 @@ public class NMSBinding implements INMSBinding { @Advice.Argument(12) World.Environment env, @Advice.Argument(value = 13) ChunkGenerator gen ) { - if (gen == null || !gen.getClass().getPackageName().startsWith("com.volmit.iris")) + if (gen == null || !gen.getClass().getPackageName().startsWith("art.arcane.iris")) return; try { - Object bindings = Class.forName("com.volmit.iris.core.nms.INMS", true, Bukkit.getPluginManager().getPlugin("Iris") + Object bindings = Class.forName("art.arcane.iris.core.nms.INMS", true, Bukkit.getPluginManager().getPlugin("Iris") .getClass() .getClassLoader()) .getDeclaredMethod("get") diff --git a/nms/v1_20_R3/src/main/java/com/volmit/iris/core/nms/v1_20_R3/CustomBiomeSource.java b/nms/v1_20_R3/src/main/java/art/arcane/iris/core/nms/v1_20_R3/CustomBiomeSource.java similarity index 94% rename from nms/v1_20_R3/src/main/java/com/volmit/iris/core/nms/v1_20_R3/CustomBiomeSource.java rename to nms/v1_20_R3/src/main/java/art/arcane/iris/core/nms/v1_20_R3/CustomBiomeSource.java index 3d3582239..11a3efb8c 100644 --- a/nms/v1_20_R3/src/main/java/com/volmit/iris/core/nms/v1_20_R3/CustomBiomeSource.java +++ b/nms/v1_20_R3/src/main/java/art/arcane/iris/core/nms/v1_20_R3/CustomBiomeSource.java @@ -1,13 +1,13 @@ -package com.volmit.iris.core.nms.v1_20_R3; +package art.arcane.iris.core.nms.v1_20_R3; import com.mojang.serialization.Codec; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisBiomeCustom; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.iris.engine.object.IrisBiomeCustom; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.math.RNG; import net.minecraft.core.Holder; import net.minecraft.core.Registry; import net.minecraft.core.RegistryAccess; diff --git a/nms/v1_20_R3/src/main/java/com/volmit/iris/core/nms/v1_20_R3/IrisChunkGenerator.java b/nms/v1_20_R3/src/main/java/art/arcane/iris/core/nms/v1_20_R3/IrisChunkGenerator.java similarity index 96% rename from nms/v1_20_R3/src/main/java/com/volmit/iris/core/nms/v1_20_R3/IrisChunkGenerator.java rename to nms/v1_20_R3/src/main/java/art/arcane/iris/core/nms/v1_20_R3/IrisChunkGenerator.java index e415d7d3a..4aa859de7 100644 --- a/nms/v1_20_R3/src/main/java/com/volmit/iris/core/nms/v1_20_R3/IrisChunkGenerator.java +++ b/nms/v1_20_R3/src/main/java/art/arcane/iris/core/nms/v1_20_R3/IrisChunkGenerator.java @@ -1,21 +1,21 @@ -package com.volmit.iris.core.nms.v1_20_R3; +package art.arcane.iris.core.nms.v1_20_R3; import com.mojang.datafixers.util.Pair; import com.mojang.serialization.Codec; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.ResultLocator; -import com.volmit.iris.engine.framework.WrongEngineBroException; -import com.volmit.iris.engine.object.IrisJigsawStructure; -import com.volmit.iris.engine.object.IrisJigsawStructurePlacement; -import com.volmit.iris.engine.object.IrisStructurePopulator; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.mantle.flag.MantleFlag; -import com.volmit.iris.util.math.Position2; -import com.volmit.iris.util.reflect.WrappedField; -import com.volmit.iris.util.reflect.WrappedReturningMethod; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.framework.ResultLocator; +import art.arcane.iris.engine.framework.WrongEngineBroException; +import art.arcane.iris.engine.object.IrisJigsawStructure; +import art.arcane.iris.engine.object.IrisJigsawStructurePlacement; +import art.arcane.iris.engine.object.IrisStructurePopulator; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.collection.KSet; +import art.arcane.volmlib.util.mantle.flag.MantleFlag; +import art.arcane.iris.util.math.Position2; +import art.arcane.iris.util.reflect.WrappedField; +import art.arcane.iris.util.reflect.WrappedReturningMethod; import net.minecraft.CrashReport; import net.minecraft.CrashReportCategory; import net.minecraft.ReportedException; diff --git a/nms/v1_20_R3/src/main/java/com/volmit/iris/core/nms/v1_20_R3/NMSBinding.java b/nms/v1_20_R3/src/main/java/art/arcane/iris/core/nms/v1_20_R3/NMSBinding.java similarity index 96% rename from nms/v1_20_R3/src/main/java/com/volmit/iris/core/nms/v1_20_R3/NMSBinding.java rename to nms/v1_20_R3/src/main/java/art/arcane/iris/core/nms/v1_20_R3/NMSBinding.java index 97f6adb54..20768d5e8 100644 --- a/nms/v1_20_R3/src/main/java/com/volmit/iris/core/nms/v1_20_R3/NMSBinding.java +++ b/nms/v1_20_R3/src/main/java/art/arcane/iris/core/nms/v1_20_R3/NMSBinding.java @@ -1,4 +1,4 @@ -package com.volmit.iris.core.nms.v1_20_R3; +package art.arcane.iris.core.nms.v1_20_R3; import java.awt.Color; import java.io.ByteArrayInputStream; @@ -16,31 +16,31 @@ import java.util.stream.Collectors; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.datafixers.util.Pair; -import com.volmit.iris.Iris; -import com.volmit.iris.core.nms.INMSBinding; +import art.arcane.iris.Iris; +import art.arcane.iris.core.nms.INMSBinding; import com.mojang.serialization.Lifecycle; -import com.volmit.iris.core.link.Identifier; -import com.volmit.iris.core.nms.container.AutoClosing; -import com.volmit.iris.core.nms.container.BiomeColor; -import com.volmit.iris.core.nms.container.BlockProperty; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.platform.PlatformChunkGenerator; -import com.volmit.iris.util.agent.Agent; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.mantle.Mantle; -import com.volmit.iris.util.math.Vector3d; -import com.volmit.iris.util.matter.MatterBiomeInject; -import com.volmit.iris.util.nbt.mca.NBTWorld; -import com.volmit.iris.util.nbt.mca.palette.*; -import com.volmit.iris.util.nbt.tag.CompoundTag; -import com.volmit.iris.core.nms.container.StructurePlacement; -import com.volmit.iris.engine.object.IrisJigsawStructurePlacement; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.core.link.Identifier; +import art.arcane.iris.core.nms.container.AutoClosing; +import art.arcane.iris.core.nms.container.BiomeColor; +import art.arcane.iris.core.nms.container.BlockProperty; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.util.agent.Agent; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.format.C; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.iris.util.mantle.Mantle; +import art.arcane.iris.util.math.Vector3d; +import art.arcane.iris.util.matter.MatterBiomeInject; +import art.arcane.iris.util.nbt.mca.NBTWorld; +import art.arcane.iris.util.nbt.mca.palette.*; +import art.arcane.iris.util.nbt.tag.CompoundTag; +import art.arcane.iris.core.nms.container.StructurePlacement; +import art.arcane.iris.engine.object.IrisJigsawStructurePlacement; +import art.arcane.iris.util.scheduling.J; import it.unimi.dsi.fastutil.objects.Object2IntMap; import net.bytebuddy.ByteBuddy; import net.bytebuddy.asm.Advice; @@ -769,7 +769,7 @@ public class NMSBinding implements INMSBinding { return null; } - return new com.volmit.iris.core.nms.container.Pair<>(new Identifier(key.getNamespace(), key.getPath()), builder + return new art.arcane.iris.core.nms.container.Pair<>(new Identifier(key.getNamespace(), key.getPath()), builder .salt(placement.salt) .frequency(placement.frequency) .structures(set.structures() @@ -791,7 +791,7 @@ public class NMSBinding implements INMSBinding { .build()); }) .filter(Objects::nonNull) - .collect(Collectors.toMap(com.volmit.iris.core.nms.container.Pair::getA, com.volmit.iris.core.nms.container.Pair::getB, (a, b) -> a, KMap::new)); + .collect(Collectors.toMap(art.arcane.iris.core.nms.container.Pair::getA, art.arcane.iris.core.nms.container.Pair::getB, (a, b) -> a, KMap::new)); } public LevelStem levelStem(RegistryAccess access, ChunkGenerator raw) { @@ -826,11 +826,11 @@ public class NMSBinding implements INMSBinding { @Advice.Argument(12) World.Environment env, @Advice.Argument(value = 13) ChunkGenerator gen ) { - if (gen == null || !gen.getClass().getPackageName().startsWith("com.volmit.iris")) + if (gen == null || !gen.getClass().getPackageName().startsWith("art.arcane.iris")) return; try { - Object bindings = Class.forName("com.volmit.iris.core.nms.INMS", true, Bukkit.getPluginManager().getPlugin("Iris") + Object bindings = Class.forName("art.arcane.iris.core.nms.INMS", true, Bukkit.getPluginManager().getPlugin("Iris") .getClass() .getClassLoader()) .getDeclaredMethod("get") diff --git a/nms/v1_20_R4/src/main/java/com/volmit/iris/core/nms/v1_20_R4/CustomBiomeSource.java b/nms/v1_20_R4/src/main/java/art/arcane/iris/core/nms/v1_20_R4/CustomBiomeSource.java similarity index 94% rename from nms/v1_20_R4/src/main/java/com/volmit/iris/core/nms/v1_20_R4/CustomBiomeSource.java rename to nms/v1_20_R4/src/main/java/art/arcane/iris/core/nms/v1_20_R4/CustomBiomeSource.java index d37284c25..51a6ade1d 100644 --- a/nms/v1_20_R4/src/main/java/com/volmit/iris/core/nms/v1_20_R4/CustomBiomeSource.java +++ b/nms/v1_20_R4/src/main/java/art/arcane/iris/core/nms/v1_20_R4/CustomBiomeSource.java @@ -1,13 +1,13 @@ -package com.volmit.iris.core.nms.v1_20_R4; +package art.arcane.iris.core.nms.v1_20_R4; import com.mojang.serialization.MapCodec; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisBiomeCustom; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.iris.engine.object.IrisBiomeCustom; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.math.RNG; import net.minecraft.core.Holder; import net.minecraft.core.Registry; import net.minecraft.core.RegistryAccess; diff --git a/nms/v1_20_R4/src/main/java/com/volmit/iris/core/nms/v1_20_R4/IrisChunkGenerator.java b/nms/v1_20_R4/src/main/java/art/arcane/iris/core/nms/v1_20_R4/IrisChunkGenerator.java similarity index 96% rename from nms/v1_20_R4/src/main/java/com/volmit/iris/core/nms/v1_20_R4/IrisChunkGenerator.java rename to nms/v1_20_R4/src/main/java/art/arcane/iris/core/nms/v1_20_R4/IrisChunkGenerator.java index 34dba3135..3860c87b7 100644 --- a/nms/v1_20_R4/src/main/java/com/volmit/iris/core/nms/v1_20_R4/IrisChunkGenerator.java +++ b/nms/v1_20_R4/src/main/java/art/arcane/iris/core/nms/v1_20_R4/IrisChunkGenerator.java @@ -1,21 +1,21 @@ -package com.volmit.iris.core.nms.v1_20_R4; +package art.arcane.iris.core.nms.v1_20_R4; import com.mojang.datafixers.util.Pair; import com.mojang.serialization.MapCodec; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.ResultLocator; -import com.volmit.iris.engine.framework.WrongEngineBroException; -import com.volmit.iris.engine.object.IrisJigsawStructure; -import com.volmit.iris.engine.object.IrisJigsawStructurePlacement; -import com.volmit.iris.engine.object.IrisStructurePopulator; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.mantle.flag.MantleFlag; -import com.volmit.iris.util.math.Position2; -import com.volmit.iris.util.reflect.WrappedField; -import com.volmit.iris.util.reflect.WrappedReturningMethod; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.framework.ResultLocator; +import art.arcane.iris.engine.framework.WrongEngineBroException; +import art.arcane.iris.engine.object.IrisJigsawStructure; +import art.arcane.iris.engine.object.IrisJigsawStructurePlacement; +import art.arcane.iris.engine.object.IrisStructurePopulator; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.collection.KSet; +import art.arcane.volmlib.util.mantle.flag.MantleFlag; +import art.arcane.iris.util.math.Position2; +import art.arcane.iris.util.reflect.WrappedField; +import art.arcane.iris.util.reflect.WrappedReturningMethod; import net.minecraft.CrashReport; import net.minecraft.CrashReportCategory; import net.minecraft.ReportedException; diff --git a/nms/v1_20_R4/src/main/java/com/volmit/iris/core/nms/v1_20_R4/NMSBinding.java b/nms/v1_20_R4/src/main/java/art/arcane/iris/core/nms/v1_20_R4/NMSBinding.java similarity index 96% rename from nms/v1_20_R4/src/main/java/com/volmit/iris/core/nms/v1_20_R4/NMSBinding.java rename to nms/v1_20_R4/src/main/java/art/arcane/iris/core/nms/v1_20_R4/NMSBinding.java index a33bd8d7b..6974b82cf 100644 --- a/nms/v1_20_R4/src/main/java/com/volmit/iris/core/nms/v1_20_R4/NMSBinding.java +++ b/nms/v1_20_R4/src/main/java/art/arcane/iris/core/nms/v1_20_R4/NMSBinding.java @@ -1,4 +1,4 @@ -package com.volmit.iris.core.nms.v1_20_R4; +package art.arcane.iris.core.nms.v1_20_R4; import java.awt.Color; import java.lang.reflect.Field; @@ -10,30 +10,30 @@ import java.util.stream.Collectors; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.datafixers.util.Pair; -import com.volmit.iris.Iris; -import com.volmit.iris.core.nms.INMSBinding; -import com.volmit.iris.core.link.Identifier; -import com.volmit.iris.core.nms.container.BiomeColor; -import com.volmit.iris.core.nms.container.BlockProperty; -import com.volmit.iris.core.nms.container.StructurePlacement; -import com.volmit.iris.core.nms.datapack.DataVersion; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.platform.PlatformChunkGenerator; -import com.volmit.iris.util.agent.Agent; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.mantle.Mantle; -import com.volmit.iris.util.math.Vector3d; -import com.volmit.iris.util.matter.MatterBiomeInject; -import com.volmit.iris.util.nbt.mca.NBTWorld; -import com.volmit.iris.util.nbt.mca.palette.*; -import com.volmit.iris.engine.object.IrisJigsawStructurePlacement; -import com.volmit.iris.util.nbt.tag.CompoundTag; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.iris.core.nms.INMSBinding; +import art.arcane.iris.core.link.Identifier; +import art.arcane.iris.core.nms.container.BiomeColor; +import art.arcane.iris.core.nms.container.BlockProperty; +import art.arcane.iris.core.nms.container.StructurePlacement; +import art.arcane.iris.core.nms.datapack.DataVersion; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.util.agent.Agent; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.format.C; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.iris.util.mantle.Mantle; +import art.arcane.iris.util.math.Vector3d; +import art.arcane.iris.util.matter.MatterBiomeInject; +import art.arcane.iris.util.nbt.mca.NBTWorld; +import art.arcane.iris.util.nbt.mca.palette.*; +import art.arcane.iris.engine.object.IrisJigsawStructurePlacement; +import art.arcane.iris.util.nbt.tag.CompoundTag; +import art.arcane.iris.util.scheduling.J; import it.unimi.dsi.fastutil.objects.Object2IntMap; import net.bytebuddy.ByteBuddy; import net.bytebuddy.asm.Advice; @@ -772,7 +772,7 @@ public class NMSBinding implements INMSBinding { return null; } - return new com.volmit.iris.core.nms.container.Pair<>(new Identifier(key.getNamespace(), key.getPath()), builder + return new art.arcane.iris.core.nms.container.Pair<>(new Identifier(key.getNamespace(), key.getPath()), builder .salt(placement.salt) .frequency(placement.frequency) .structures(set.structures() @@ -794,7 +794,7 @@ public class NMSBinding implements INMSBinding { .build()); }) .filter(Objects::nonNull) - .collect(Collectors.toMap(com.volmit.iris.core.nms.container.Pair::getA, com.volmit.iris.core.nms.container.Pair::getB, (a, b) -> a, KMap::new)); + .collect(Collectors.toMap(art.arcane.iris.core.nms.container.Pair::getA, art.arcane.iris.core.nms.container.Pair::getB, (a, b) -> a, KMap::new)); } public LevelStem levelStem(RegistryAccess access, ChunkGenerator raw) { @@ -829,11 +829,11 @@ public class NMSBinding implements INMSBinding { @Advice.Argument(12) World.Environment env, @Advice.Argument(value = 13) ChunkGenerator gen ) { - if (gen == null || !gen.getClass().getPackageName().startsWith("com.volmit.iris")) + if (gen == null || !gen.getClass().getPackageName().startsWith("art.arcane.iris")) return; try { - Object bindings = Class.forName("com.volmit.iris.core.nms.INMS", true, Bukkit.getPluginManager().getPlugin("Iris") + Object bindings = Class.forName("art.arcane.iris.core.nms.INMS", true, Bukkit.getPluginManager().getPlugin("Iris") .getClass() .getClassLoader()) .getDeclaredMethod("get") diff --git a/nms/v1_21_R1/src/main/java/com/volmit/iris/core/nms/v1_21_R1/CustomBiomeSource.java b/nms/v1_21_R1/src/main/java/art/arcane/iris/core/nms/v1_21_R1/CustomBiomeSource.java similarity index 94% rename from nms/v1_21_R1/src/main/java/com/volmit/iris/core/nms/v1_21_R1/CustomBiomeSource.java rename to nms/v1_21_R1/src/main/java/art/arcane/iris/core/nms/v1_21_R1/CustomBiomeSource.java index 464b9f57f..42285b41b 100644 --- a/nms/v1_21_R1/src/main/java/com/volmit/iris/core/nms/v1_21_R1/CustomBiomeSource.java +++ b/nms/v1_21_R1/src/main/java/art/arcane/iris/core/nms/v1_21_R1/CustomBiomeSource.java @@ -1,13 +1,13 @@ -package com.volmit.iris.core.nms.v1_21_R1; +package art.arcane.iris.core.nms.v1_21_R1; import com.mojang.serialization.MapCodec; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisBiomeCustom; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.iris.engine.object.IrisBiomeCustom; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.math.RNG; import net.minecraft.core.Holder; import net.minecraft.core.Registry; import net.minecraft.core.RegistryAccess; diff --git a/nms/v1_21_R1/src/main/java/com/volmit/iris/core/nms/v1_21_R1/IrisChunkGenerator.java b/nms/v1_21_R1/src/main/java/art/arcane/iris/core/nms/v1_21_R1/IrisChunkGenerator.java similarity index 96% rename from nms/v1_21_R1/src/main/java/com/volmit/iris/core/nms/v1_21_R1/IrisChunkGenerator.java rename to nms/v1_21_R1/src/main/java/art/arcane/iris/core/nms/v1_21_R1/IrisChunkGenerator.java index 9b63764e9..57d0db104 100644 --- a/nms/v1_21_R1/src/main/java/com/volmit/iris/core/nms/v1_21_R1/IrisChunkGenerator.java +++ b/nms/v1_21_R1/src/main/java/art/arcane/iris/core/nms/v1_21_R1/IrisChunkGenerator.java @@ -1,21 +1,21 @@ -package com.volmit.iris.core.nms.v1_21_R1; +package art.arcane.iris.core.nms.v1_21_R1; import com.mojang.datafixers.util.Pair; import com.mojang.serialization.MapCodec; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.ResultLocator; -import com.volmit.iris.engine.framework.WrongEngineBroException; -import com.volmit.iris.engine.object.IrisJigsawStructure; -import com.volmit.iris.engine.object.IrisJigsawStructurePlacement; -import com.volmit.iris.engine.object.IrisStructurePopulator; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.mantle.flag.MantleFlag; -import com.volmit.iris.util.math.Position2; -import com.volmit.iris.util.reflect.WrappedField; -import com.volmit.iris.util.reflect.WrappedReturningMethod; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.framework.ResultLocator; +import art.arcane.iris.engine.framework.WrongEngineBroException; +import art.arcane.iris.engine.object.IrisJigsawStructure; +import art.arcane.iris.engine.object.IrisJigsawStructurePlacement; +import art.arcane.iris.engine.object.IrisStructurePopulator; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.collection.KSet; +import art.arcane.volmlib.util.mantle.flag.MantleFlag; +import art.arcane.iris.util.math.Position2; +import art.arcane.iris.util.reflect.WrappedField; +import art.arcane.iris.util.reflect.WrappedReturningMethod; import net.minecraft.CrashReport; import net.minecraft.CrashReportCategory; import net.minecraft.ReportedException; diff --git a/nms/v1_21_R1/src/main/java/com/volmit/iris/core/nms/v1_21_R1/NMSBinding.java b/nms/v1_21_R1/src/main/java/art/arcane/iris/core/nms/v1_21_R1/NMSBinding.java similarity index 96% rename from nms/v1_21_R1/src/main/java/com/volmit/iris/core/nms/v1_21_R1/NMSBinding.java rename to nms/v1_21_R1/src/main/java/art/arcane/iris/core/nms/v1_21_R1/NMSBinding.java index 013ef508d..63cf54d75 100644 --- a/nms/v1_21_R1/src/main/java/com/volmit/iris/core/nms/v1_21_R1/NMSBinding.java +++ b/nms/v1_21_R1/src/main/java/art/arcane/iris/core/nms/v1_21_R1/NMSBinding.java @@ -1,4 +1,4 @@ -package com.volmit.iris.core.nms.v1_21_R1; +package art.arcane.iris.core.nms.v1_21_R1; import java.awt.Color; import java.lang.reflect.Field; @@ -10,30 +10,30 @@ import java.util.stream.Collectors; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.datafixers.util.Pair; -import com.volmit.iris.core.link.Identifier; -import com.volmit.iris.Iris; -import com.volmit.iris.core.nms.INMSBinding; -import com.volmit.iris.core.nms.container.BiomeColor; -import com.volmit.iris.core.nms.container.BlockProperty; -import com.volmit.iris.core.nms.container.StructurePlacement; -import com.volmit.iris.core.nms.datapack.DataVersion; -import com.volmit.iris.engine.object.IrisJigsawStructurePlacement; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.platform.PlatformChunkGenerator; -import com.volmit.iris.util.agent.Agent; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.mantle.Mantle; -import com.volmit.iris.util.math.Vector3d; -import com.volmit.iris.util.matter.MatterBiomeInject; -import com.volmit.iris.util.nbt.mca.NBTWorld; -import com.volmit.iris.util.nbt.mca.palette.*; -import com.volmit.iris.util.nbt.tag.CompoundTag; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.core.link.Identifier; +import art.arcane.iris.Iris; +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.container.StructurePlacement; +import art.arcane.iris.core.nms.datapack.DataVersion; +import art.arcane.iris.engine.object.IrisJigsawStructurePlacement; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.util.agent.Agent; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.format.C; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.iris.util.mantle.Mantle; +import art.arcane.iris.util.math.Vector3d; +import art.arcane.iris.util.matter.MatterBiomeInject; +import art.arcane.iris.util.nbt.mca.NBTWorld; +import art.arcane.iris.util.nbt.mca.palette.*; +import art.arcane.iris.util.nbt.tag.CompoundTag; +import art.arcane.iris.util.scheduling.J; import it.unimi.dsi.fastutil.objects.Object2IntMap; import net.bytebuddy.ByteBuddy; import net.bytebuddy.asm.Advice; @@ -782,7 +782,7 @@ public class NMSBinding implements INMSBinding { return null; } - return new com.volmit.iris.core.nms.container.Pair<>(new Identifier(key.getNamespace(), key.getPath()), builder + return new art.arcane.iris.core.nms.container.Pair<>(new Identifier(key.getNamespace(), key.getPath()), builder .salt(placement.salt) .frequency(placement.frequency) .structures(set.structures() @@ -804,7 +804,7 @@ public class NMSBinding implements INMSBinding { .build()); }) .filter(Objects::nonNull) - .collect(Collectors.toMap(com.volmit.iris.core.nms.container.Pair::getA, com.volmit.iris.core.nms.container.Pair::getB, (a, b) -> a, KMap::new)); + .collect(Collectors.toMap(art.arcane.iris.core.nms.container.Pair::getA, art.arcane.iris.core.nms.container.Pair::getB, (a, b) -> a, KMap::new)); } public LevelStem levelStem(RegistryAccess access, ChunkGenerator raw) { @@ -839,11 +839,11 @@ public class NMSBinding implements INMSBinding { @Advice.Argument(12) World.Environment env, @Advice.Argument(value = 13) ChunkGenerator gen ) { - if (gen == null || !gen.getClass().getPackageName().startsWith("com.volmit.iris")) + if (gen == null || !gen.getClass().getPackageName().startsWith("art.arcane.iris")) return; try { - Object bindings = Class.forName("com.volmit.iris.core.nms.INMS", true, Bukkit.getPluginManager().getPlugin("Iris") + Object bindings = Class.forName("art.arcane.iris.core.nms.INMS", true, Bukkit.getPluginManager().getPlugin("Iris") .getClass() .getClassLoader()) .getDeclaredMethod("get") diff --git a/nms/v1_21_R2/src/main/java/com/volmit/iris/core/nms/v1_21_R2/CustomBiomeSource.java b/nms/v1_21_R2/src/main/java/art/arcane/iris/core/nms/v1_21_R2/CustomBiomeSource.java similarity index 94% rename from nms/v1_21_R2/src/main/java/com/volmit/iris/core/nms/v1_21_R2/CustomBiomeSource.java rename to nms/v1_21_R2/src/main/java/art/arcane/iris/core/nms/v1_21_R2/CustomBiomeSource.java index ee1d212b9..325a5d55a 100644 --- a/nms/v1_21_R2/src/main/java/com/volmit/iris/core/nms/v1_21_R2/CustomBiomeSource.java +++ b/nms/v1_21_R2/src/main/java/art/arcane/iris/core/nms/v1_21_R2/CustomBiomeSource.java @@ -1,13 +1,13 @@ -package com.volmit.iris.core.nms.v1_21_R2; +package art.arcane.iris.core.nms.v1_21_R2; import com.mojang.serialization.MapCodec; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisBiomeCustom; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.iris.engine.object.IrisBiomeCustom; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.math.RNG; import net.minecraft.core.Holder; import net.minecraft.core.Registry; import net.minecraft.core.RegistryAccess; diff --git a/nms/v1_21_R2/src/main/java/com/volmit/iris/core/nms/v1_21_R2/IrisChunkGenerator.java b/nms/v1_21_R2/src/main/java/art/arcane/iris/core/nms/v1_21_R2/IrisChunkGenerator.java similarity index 96% rename from nms/v1_21_R2/src/main/java/com/volmit/iris/core/nms/v1_21_R2/IrisChunkGenerator.java rename to nms/v1_21_R2/src/main/java/art/arcane/iris/core/nms/v1_21_R2/IrisChunkGenerator.java index b91a4733f..664a91517 100644 --- a/nms/v1_21_R2/src/main/java/com/volmit/iris/core/nms/v1_21_R2/IrisChunkGenerator.java +++ b/nms/v1_21_R2/src/main/java/art/arcane/iris/core/nms/v1_21_R2/IrisChunkGenerator.java @@ -1,21 +1,21 @@ -package com.volmit.iris.core.nms.v1_21_R2; +package art.arcane.iris.core.nms.v1_21_R2; import com.mojang.datafixers.util.Pair; import com.mojang.serialization.MapCodec; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.ResultLocator; -import com.volmit.iris.engine.framework.WrongEngineBroException; -import com.volmit.iris.engine.object.IrisJigsawStructure; -import com.volmit.iris.engine.object.IrisJigsawStructurePlacement; -import com.volmit.iris.engine.object.IrisStructurePopulator; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.mantle.flag.MantleFlag; -import com.volmit.iris.util.math.Position2; -import com.volmit.iris.util.reflect.WrappedField; -import com.volmit.iris.util.reflect.WrappedReturningMethod; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.framework.ResultLocator; +import art.arcane.iris.engine.framework.WrongEngineBroException; +import art.arcane.iris.engine.object.IrisJigsawStructure; +import art.arcane.iris.engine.object.IrisJigsawStructurePlacement; +import art.arcane.iris.engine.object.IrisStructurePopulator; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.collection.KSet; +import art.arcane.volmlib.util.mantle.flag.MantleFlag; +import art.arcane.iris.util.math.Position2; +import art.arcane.iris.util.reflect.WrappedField; +import art.arcane.iris.util.reflect.WrappedReturningMethod; import net.minecraft.CrashReport; import net.minecraft.CrashReportCategory; import net.minecraft.ReportedException; diff --git a/nms/v1_21_R2/src/main/java/com/volmit/iris/core/nms/v1_21_R2/NMSBinding.java b/nms/v1_21_R2/src/main/java/art/arcane/iris/core/nms/v1_21_R2/NMSBinding.java similarity index 96% rename from nms/v1_21_R2/src/main/java/com/volmit/iris/core/nms/v1_21_R2/NMSBinding.java rename to nms/v1_21_R2/src/main/java/art/arcane/iris/core/nms/v1_21_R2/NMSBinding.java index 8e4468972..fa72f1949 100644 --- a/nms/v1_21_R2/src/main/java/com/volmit/iris/core/nms/v1_21_R2/NMSBinding.java +++ b/nms/v1_21_R2/src/main/java/art/arcane/iris/core/nms/v1_21_R2/NMSBinding.java @@ -1,4 +1,4 @@ -package com.volmit.iris.core.nms.v1_21_R2; +package art.arcane.iris.core.nms.v1_21_R2; import java.awt.Color; import java.lang.reflect.Field; @@ -8,32 +8,32 @@ import java.util.*; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; -import com.volmit.iris.core.link.Identifier; +import art.arcane.iris.core.link.Identifier; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.volmit.iris.Iris; -import com.volmit.iris.core.nms.INMSBinding; -import com.volmit.iris.core.nms.container.BiomeColor; -import com.volmit.iris.core.nms.container.Pair; -import com.volmit.iris.core.nms.container.StructurePlacement; -import com.volmit.iris.core.nms.container.BlockProperty; -import com.volmit.iris.core.nms.datapack.DataVersion; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.platform.PlatformChunkGenerator; -import com.volmit.iris.util.agent.Agent; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.mantle.Mantle; -import com.volmit.iris.util.math.Vector3d; -import com.volmit.iris.util.matter.MatterBiomeInject; -import com.volmit.iris.util.nbt.mca.NBTWorld; -import com.volmit.iris.util.nbt.mca.palette.*; -import com.volmit.iris.util.nbt.tag.CompoundTag; -import com.volmit.iris.engine.object.IrisJigsawStructurePlacement; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.iris.core.nms.INMSBinding; +import art.arcane.iris.core.nms.container.BiomeColor; +import art.arcane.iris.core.nms.container.Pair; +import art.arcane.iris.core.nms.container.StructurePlacement; +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.framework.Engine; +import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.util.agent.Agent; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.format.C; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.iris.util.mantle.Mantle; +import art.arcane.iris.util.math.Vector3d; +import art.arcane.iris.util.matter.MatterBiomeInject; +import art.arcane.iris.util.nbt.mca.NBTWorld; +import art.arcane.iris.util.nbt.mca.palette.*; +import art.arcane.iris.util.nbt.tag.CompoundTag; +import art.arcane.iris.engine.object.IrisJigsawStructurePlacement; +import art.arcane.iris.util.scheduling.J; import it.unimi.dsi.fastutil.objects.Object2IntMap; import it.unimi.dsi.fastutil.shorts.ShortList; import net.bytebuddy.ByteBuddy; @@ -838,11 +838,11 @@ public class NMSBinding implements INMSBinding { @Advice.Argument(12) World.Environment env, @Advice.Argument(value = 13) ChunkGenerator gen ) { - if (gen == null || !gen.getClass().getPackageName().startsWith("com.volmit.iris")) + if (gen == null || !gen.getClass().getPackageName().startsWith("art.arcane.iris")) return; try { - Object bindings = Class.forName("com.volmit.iris.core.nms.INMS", true, Bukkit.getPluginManager().getPlugin("Iris") + Object bindings = Class.forName("art.arcane.iris.core.nms.INMS", true, Bukkit.getPluginManager().getPlugin("Iris") .getClass() .getClassLoader()) .getDeclaredMethod("get") diff --git a/nms/v1_21_R3/src/main/java/com/volmit/iris/core/nms/v1_21_R3/CustomBiomeSource.java b/nms/v1_21_R3/src/main/java/art/arcane/iris/core/nms/v1_21_R3/CustomBiomeSource.java similarity index 94% rename from nms/v1_21_R3/src/main/java/com/volmit/iris/core/nms/v1_21_R3/CustomBiomeSource.java rename to nms/v1_21_R3/src/main/java/art/arcane/iris/core/nms/v1_21_R3/CustomBiomeSource.java index cfa5ede97..312e25767 100644 --- a/nms/v1_21_R3/src/main/java/com/volmit/iris/core/nms/v1_21_R3/CustomBiomeSource.java +++ b/nms/v1_21_R3/src/main/java/art/arcane/iris/core/nms/v1_21_R3/CustomBiomeSource.java @@ -1,13 +1,13 @@ -package com.volmit.iris.core.nms.v1_21_R3; +package art.arcane.iris.core.nms.v1_21_R3; import com.mojang.serialization.MapCodec; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisBiomeCustom; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.iris.engine.object.IrisBiomeCustom; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.math.RNG; import net.minecraft.core.Holder; import net.minecraft.core.Registry; import net.minecraft.core.RegistryAccess; diff --git a/nms/v1_21_R3/src/main/java/com/volmit/iris/core/nms/v1_21_R3/IrisChunkGenerator.java b/nms/v1_21_R3/src/main/java/art/arcane/iris/core/nms/v1_21_R3/IrisChunkGenerator.java similarity index 96% rename from nms/v1_21_R3/src/main/java/com/volmit/iris/core/nms/v1_21_R3/IrisChunkGenerator.java rename to nms/v1_21_R3/src/main/java/art/arcane/iris/core/nms/v1_21_R3/IrisChunkGenerator.java index 65b785929..11aff5c39 100644 --- a/nms/v1_21_R3/src/main/java/com/volmit/iris/core/nms/v1_21_R3/IrisChunkGenerator.java +++ b/nms/v1_21_R3/src/main/java/art/arcane/iris/core/nms/v1_21_R3/IrisChunkGenerator.java @@ -1,21 +1,21 @@ -package com.volmit.iris.core.nms.v1_21_R3; +package art.arcane.iris.core.nms.v1_21_R3; import com.mojang.datafixers.util.Pair; import com.mojang.serialization.MapCodec; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.ResultLocator; -import com.volmit.iris.engine.framework.WrongEngineBroException; -import com.volmit.iris.engine.object.IrisJigsawStructure; -import com.volmit.iris.engine.object.IrisJigsawStructurePlacement; -import com.volmit.iris.engine.object.IrisStructurePopulator; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.mantle.flag.MantleFlag; -import com.volmit.iris.util.math.Position2; -import com.volmit.iris.util.reflect.WrappedField; -import com.volmit.iris.util.reflect.WrappedReturningMethod; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.framework.ResultLocator; +import art.arcane.iris.engine.framework.WrongEngineBroException; +import art.arcane.iris.engine.object.IrisJigsawStructure; +import art.arcane.iris.engine.object.IrisJigsawStructurePlacement; +import art.arcane.iris.engine.object.IrisStructurePopulator; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.collection.KSet; +import art.arcane.volmlib.util.mantle.flag.MantleFlag; +import art.arcane.iris.util.math.Position2; +import art.arcane.iris.util.reflect.WrappedField; +import art.arcane.iris.util.reflect.WrappedReturningMethod; import net.minecraft.CrashReport; import net.minecraft.CrashReportCategory; import net.minecraft.ReportedException; diff --git a/nms/v1_21_R3/src/main/java/com/volmit/iris/core/nms/v1_21_R3/NMSBinding.java b/nms/v1_21_R3/src/main/java/art/arcane/iris/core/nms/v1_21_R3/NMSBinding.java similarity index 96% rename from nms/v1_21_R3/src/main/java/com/volmit/iris/core/nms/v1_21_R3/NMSBinding.java rename to nms/v1_21_R3/src/main/java/art/arcane/iris/core/nms/v1_21_R3/NMSBinding.java index 2295fb871..3febc5b52 100644 --- a/nms/v1_21_R3/src/main/java/com/volmit/iris/core/nms/v1_21_R3/NMSBinding.java +++ b/nms/v1_21_R3/src/main/java/art/arcane/iris/core/nms/v1_21_R3/NMSBinding.java @@ -1,31 +1,31 @@ -package com.volmit.iris.core.nms.v1_21_R3; +package art.arcane.iris.core.nms.v1_21_R3; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.volmit.iris.Iris; -import com.volmit.iris.core.link.Identifier; -import com.volmit.iris.core.nms.INMSBinding; -import com.volmit.iris.core.nms.container.BiomeColor; -import com.volmit.iris.core.nms.container.Pair; -import com.volmit.iris.core.nms.container.StructurePlacement; -import com.volmit.iris.core.nms.container.BlockProperty; -import com.volmit.iris.core.nms.datapack.DataVersion; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisJigsawStructurePlacement; -import com.volmit.iris.engine.platform.PlatformChunkGenerator; -import com.volmit.iris.util.agent.Agent; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.mantle.Mantle; -import com.volmit.iris.util.math.Vector3d; -import com.volmit.iris.util.matter.MatterBiomeInject; -import com.volmit.iris.util.nbt.mca.NBTWorld; -import com.volmit.iris.util.nbt.mca.palette.*; -import com.volmit.iris.util.nbt.tag.CompoundTag; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.iris.core.link.Identifier; +import art.arcane.iris.core.nms.INMSBinding; +import art.arcane.iris.core.nms.container.BiomeColor; +import art.arcane.iris.core.nms.container.Pair; +import art.arcane.iris.core.nms.container.StructurePlacement; +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.framework.Engine; +import art.arcane.iris.engine.object.IrisJigsawStructurePlacement; +import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.util.agent.Agent; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.format.C; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.iris.util.mantle.Mantle; +import art.arcane.iris.util.math.Vector3d; +import art.arcane.iris.util.matter.MatterBiomeInject; +import art.arcane.iris.util.nbt.mca.NBTWorld; +import art.arcane.iris.util.nbt.mca.palette.*; +import art.arcane.iris.util.nbt.tag.CompoundTag; +import art.arcane.iris.util.scheduling.J; import it.unimi.dsi.fastutil.objects.Object2IntMap; import it.unimi.dsi.fastutil.shorts.ShortList; import net.bytebuddy.ByteBuddy; @@ -837,11 +837,11 @@ public class NMSBinding implements INMSBinding { @Advice.Argument(12) World.Environment env, @Advice.Argument(value = 13) ChunkGenerator gen ) { - if (gen == null || !gen.getClass().getPackageName().startsWith("com.volmit.iris")) + if (gen == null || !gen.getClass().getPackageName().startsWith("art.arcane.iris")) return; try { - Object bindings = Class.forName("com.volmit.iris.core.nms.INMS", true, Bukkit.getPluginManager().getPlugin("Iris") + Object bindings = Class.forName("art.arcane.iris.core.nms.INMS", true, Bukkit.getPluginManager().getPlugin("Iris") .getClass() .getClassLoader()) .getDeclaredMethod("get") diff --git a/nms/v1_21_R4/src/main/java/com/volmit/iris/core/nms/v1_21_R4/CustomBiomeSource.java b/nms/v1_21_R4/src/main/java/art/arcane/iris/core/nms/v1_21_R4/CustomBiomeSource.java similarity index 94% rename from nms/v1_21_R4/src/main/java/com/volmit/iris/core/nms/v1_21_R4/CustomBiomeSource.java rename to nms/v1_21_R4/src/main/java/art/arcane/iris/core/nms/v1_21_R4/CustomBiomeSource.java index 570eaa0c3..e818f0a26 100644 --- a/nms/v1_21_R4/src/main/java/com/volmit/iris/core/nms/v1_21_R4/CustomBiomeSource.java +++ b/nms/v1_21_R4/src/main/java/art/arcane/iris/core/nms/v1_21_R4/CustomBiomeSource.java @@ -1,13 +1,13 @@ -package com.volmit.iris.core.nms.v1_21_R4; +package art.arcane.iris.core.nms.v1_21_R4; import com.mojang.serialization.MapCodec; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisBiomeCustom; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.iris.engine.object.IrisBiomeCustom; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.math.RNG; import net.minecraft.core.Holder; import net.minecraft.core.Registry; import net.minecraft.core.RegistryAccess; diff --git a/nms/v1_21_R4/src/main/java/com/volmit/iris/core/nms/v1_21_R4/IrisChunkGenerator.java b/nms/v1_21_R4/src/main/java/art/arcane/iris/core/nms/v1_21_R4/IrisChunkGenerator.java similarity index 96% rename from nms/v1_21_R4/src/main/java/com/volmit/iris/core/nms/v1_21_R4/IrisChunkGenerator.java rename to nms/v1_21_R4/src/main/java/art/arcane/iris/core/nms/v1_21_R4/IrisChunkGenerator.java index 91495316c..571fe6265 100644 --- a/nms/v1_21_R4/src/main/java/com/volmit/iris/core/nms/v1_21_R4/IrisChunkGenerator.java +++ b/nms/v1_21_R4/src/main/java/art/arcane/iris/core/nms/v1_21_R4/IrisChunkGenerator.java @@ -1,21 +1,21 @@ -package com.volmit.iris.core.nms.v1_21_R4; +package art.arcane.iris.core.nms.v1_21_R4; import com.mojang.datafixers.util.Pair; import com.mojang.serialization.MapCodec; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.ResultLocator; -import com.volmit.iris.engine.framework.WrongEngineBroException; -import com.volmit.iris.engine.object.IrisJigsawStructure; -import com.volmit.iris.engine.object.IrisJigsawStructurePlacement; -import com.volmit.iris.engine.object.IrisStructurePopulator; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.mantle.flag.MantleFlag; -import com.volmit.iris.util.math.Position2; -import com.volmit.iris.util.reflect.WrappedField; -import com.volmit.iris.util.reflect.WrappedReturningMethod; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.framework.ResultLocator; +import art.arcane.iris.engine.framework.WrongEngineBroException; +import art.arcane.iris.engine.object.IrisJigsawStructure; +import art.arcane.iris.engine.object.IrisJigsawStructurePlacement; +import art.arcane.iris.engine.object.IrisStructurePopulator; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.collection.KSet; +import art.arcane.volmlib.util.mantle.flag.MantleFlag; +import art.arcane.iris.util.math.Position2; +import art.arcane.iris.util.reflect.WrappedField; +import art.arcane.iris.util.reflect.WrappedReturningMethod; import net.minecraft.CrashReport; import net.minecraft.CrashReportCategory; import net.minecraft.ReportedException; diff --git a/nms/v1_21_R4/src/main/java/com/volmit/iris/core/nms/v1_21_R4/NMSBinding.java b/nms/v1_21_R4/src/main/java/art/arcane/iris/core/nms/v1_21_R4/NMSBinding.java similarity index 96% rename from nms/v1_21_R4/src/main/java/com/volmit/iris/core/nms/v1_21_R4/NMSBinding.java rename to nms/v1_21_R4/src/main/java/art/arcane/iris/core/nms/v1_21_R4/NMSBinding.java index 318943bf7..c1399fdc1 100644 --- a/nms/v1_21_R4/src/main/java/com/volmit/iris/core/nms/v1_21_R4/NMSBinding.java +++ b/nms/v1_21_R4/src/main/java/art/arcane/iris/core/nms/v1_21_R4/NMSBinding.java @@ -1,31 +1,31 @@ -package com.volmit.iris.core.nms.v1_21_R4; +package art.arcane.iris.core.nms.v1_21_R4; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.volmit.iris.Iris; -import com.volmit.iris.core.link.Identifier; -import com.volmit.iris.core.nms.INMSBinding; -import com.volmit.iris.core.nms.container.BiomeColor; -import com.volmit.iris.core.nms.container.Pair; -import com.volmit.iris.core.nms.container.StructurePlacement; -import com.volmit.iris.core.nms.container.BlockProperty; -import com.volmit.iris.core.nms.datapack.DataVersion; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisJigsawStructurePlacement; -import com.volmit.iris.engine.platform.PlatformChunkGenerator; -import com.volmit.iris.util.agent.Agent; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.mantle.Mantle; -import com.volmit.iris.util.math.Vector3d; -import com.volmit.iris.util.matter.MatterBiomeInject; -import com.volmit.iris.util.nbt.mca.NBTWorld; -import com.volmit.iris.util.nbt.mca.palette.*; -import com.volmit.iris.util.nbt.tag.CompoundTag; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.iris.core.link.Identifier; +import art.arcane.iris.core.nms.INMSBinding; +import art.arcane.iris.core.nms.container.BiomeColor; +import art.arcane.iris.core.nms.container.Pair; +import art.arcane.iris.core.nms.container.StructurePlacement; +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.framework.Engine; +import art.arcane.iris.engine.object.IrisJigsawStructurePlacement; +import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.util.agent.Agent; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.format.C; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.iris.util.mantle.Mantle; +import art.arcane.iris.util.math.Vector3d; +import art.arcane.iris.util.matter.MatterBiomeInject; +import art.arcane.iris.util.nbt.mca.NBTWorld; +import art.arcane.iris.util.nbt.mca.palette.*; +import art.arcane.iris.util.nbt.tag.CompoundTag; +import art.arcane.iris.util.scheduling.J; import it.unimi.dsi.fastutil.objects.Object2IntMap; import it.unimi.dsi.fastutil.shorts.ShortList; import net.bytebuddy.ByteBuddy; @@ -837,11 +837,11 @@ public class NMSBinding implements INMSBinding { @Advice.Argument(12) World.Environment env, @Advice.Argument(value = 13) ChunkGenerator gen ) { - if (gen == null || !gen.getClass().getPackageName().startsWith("com.volmit.iris")) + if (gen == null || !gen.getClass().getPackageName().startsWith("art.arcane.iris")) return; try { - Object bindings = Class.forName("com.volmit.iris.core.nms.INMS", true, Bukkit.getPluginManager().getPlugin("Iris") + Object bindings = Class.forName("art.arcane.iris.core.nms.INMS", true, Bukkit.getPluginManager().getPlugin("Iris") .getClass() .getClassLoader()) .getDeclaredMethod("get") diff --git a/nms/v1_21_R5/src/main/java/com/volmit/iris/core/nms/v1_21_R5/CustomBiomeSource.java b/nms/v1_21_R5/src/main/java/art/arcane/iris/core/nms/v1_21_R5/CustomBiomeSource.java similarity index 94% rename from nms/v1_21_R5/src/main/java/com/volmit/iris/core/nms/v1_21_R5/CustomBiomeSource.java rename to nms/v1_21_R5/src/main/java/art/arcane/iris/core/nms/v1_21_R5/CustomBiomeSource.java index c8fa95353..f27309991 100644 --- a/nms/v1_21_R5/src/main/java/com/volmit/iris/core/nms/v1_21_R5/CustomBiomeSource.java +++ b/nms/v1_21_R5/src/main/java/art/arcane/iris/core/nms/v1_21_R5/CustomBiomeSource.java @@ -1,13 +1,13 @@ -package com.volmit.iris.core.nms.v1_21_R5; +package art.arcane.iris.core.nms.v1_21_R5; import com.mojang.serialization.MapCodec; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisBiomeCustom; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.iris.engine.object.IrisBiomeCustom; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.math.RNG; import net.minecraft.core.Holder; import net.minecraft.core.Registry; import net.minecraft.core.RegistryAccess; diff --git a/nms/v1_21_R5/src/main/java/com/volmit/iris/core/nms/v1_21_R5/IrisChunkGenerator.java b/nms/v1_21_R5/src/main/java/art/arcane/iris/core/nms/v1_21_R5/IrisChunkGenerator.java similarity index 96% rename from nms/v1_21_R5/src/main/java/com/volmit/iris/core/nms/v1_21_R5/IrisChunkGenerator.java rename to nms/v1_21_R5/src/main/java/art/arcane/iris/core/nms/v1_21_R5/IrisChunkGenerator.java index 341c853fd..616b4de76 100644 --- a/nms/v1_21_R5/src/main/java/com/volmit/iris/core/nms/v1_21_R5/IrisChunkGenerator.java +++ b/nms/v1_21_R5/src/main/java/art/arcane/iris/core/nms/v1_21_R5/IrisChunkGenerator.java @@ -1,21 +1,21 @@ -package com.volmit.iris.core.nms.v1_21_R5; +package art.arcane.iris.core.nms.v1_21_R5; import com.mojang.datafixers.util.Pair; import com.mojang.serialization.MapCodec; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.ResultLocator; -import com.volmit.iris.engine.framework.WrongEngineBroException; -import com.volmit.iris.engine.object.IrisJigsawStructure; -import com.volmit.iris.engine.object.IrisJigsawStructurePlacement; -import com.volmit.iris.engine.object.IrisStructurePopulator; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.mantle.flag.MantleFlag; -import com.volmit.iris.util.math.Position2; -import com.volmit.iris.util.reflect.WrappedField; -import com.volmit.iris.util.reflect.WrappedReturningMethod; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.framework.ResultLocator; +import art.arcane.iris.engine.framework.WrongEngineBroException; +import art.arcane.iris.engine.object.IrisJigsawStructure; +import art.arcane.iris.engine.object.IrisJigsawStructurePlacement; +import art.arcane.iris.engine.object.IrisStructurePopulator; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.collection.KSet; +import art.arcane.volmlib.util.mantle.flag.MantleFlag; +import art.arcane.iris.util.math.Position2; +import art.arcane.iris.util.reflect.WrappedField; +import art.arcane.iris.util.reflect.WrappedReturningMethod; import net.minecraft.CrashReport; import net.minecraft.CrashReportCategory; import net.minecraft.ReportedException; diff --git a/nms/v1_21_R5/src/main/java/com/volmit/iris/core/nms/v1_21_R5/NMSBinding.java b/nms/v1_21_R5/src/main/java/art/arcane/iris/core/nms/v1_21_R5/NMSBinding.java similarity index 96% rename from nms/v1_21_R5/src/main/java/com/volmit/iris/core/nms/v1_21_R5/NMSBinding.java rename to nms/v1_21_R5/src/main/java/art/arcane/iris/core/nms/v1_21_R5/NMSBinding.java index f294d1243..68daaa5af 100644 --- a/nms/v1_21_R5/src/main/java/com/volmit/iris/core/nms/v1_21_R5/NMSBinding.java +++ b/nms/v1_21_R5/src/main/java/art/arcane/iris/core/nms/v1_21_R5/NMSBinding.java @@ -1,31 +1,31 @@ -package com.volmit.iris.core.nms.v1_21_R5; +package art.arcane.iris.core.nms.v1_21_R5; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.volmit.iris.Iris; -import com.volmit.iris.core.link.Identifier; -import com.volmit.iris.core.nms.INMSBinding; -import com.volmit.iris.core.nms.container.BiomeColor; -import com.volmit.iris.core.nms.container.Pair; -import com.volmit.iris.core.nms.container.StructurePlacement; -import com.volmit.iris.core.nms.container.BlockProperty; -import com.volmit.iris.core.nms.datapack.DataVersion; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisJigsawStructurePlacement; -import com.volmit.iris.engine.platform.PlatformChunkGenerator; -import com.volmit.iris.util.agent.Agent; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.mantle.Mantle; -import com.volmit.iris.util.math.Vector3d; -import com.volmit.iris.util.matter.MatterBiomeInject; -import com.volmit.iris.util.nbt.mca.NBTWorld; -import com.volmit.iris.util.nbt.mca.palette.*; -import com.volmit.iris.util.nbt.tag.CompoundTag; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.iris.core.link.Identifier; +import art.arcane.iris.core.nms.INMSBinding; +import art.arcane.iris.core.nms.container.BiomeColor; +import art.arcane.iris.core.nms.container.Pair; +import art.arcane.iris.core.nms.container.StructurePlacement; +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.framework.Engine; +import art.arcane.iris.engine.object.IrisJigsawStructurePlacement; +import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.util.agent.Agent; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.format.C; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.iris.util.mantle.Mantle; +import art.arcane.iris.util.math.Vector3d; +import art.arcane.iris.util.matter.MatterBiomeInject; +import art.arcane.iris.util.nbt.mca.NBTWorld; +import art.arcane.iris.util.nbt.mca.palette.*; +import art.arcane.iris.util.nbt.tag.CompoundTag; +import art.arcane.iris.util.scheduling.J; import it.unimi.dsi.fastutil.objects.Object2IntMap; import it.unimi.dsi.fastutil.shorts.ShortList; import net.bytebuddy.ByteBuddy; @@ -837,11 +837,11 @@ public class NMSBinding implements INMSBinding { @Advice.Argument(12) World.Environment env, @Advice.Argument(value = 13) ChunkGenerator gen ) { - if (gen == null || !gen.getClass().getPackageName().startsWith("com.volmit.iris")) + if (gen == null || !gen.getClass().getPackageName().startsWith("art.arcane.iris")) return; try { - Object bindings = Class.forName("com.volmit.iris.core.nms.INMS", true, Bukkit.getPluginManager().getPlugin("Iris") + Object bindings = Class.forName("art.arcane.iris.core.nms.INMS", true, Bukkit.getPluginManager().getPlugin("Iris") .getClass() .getClassLoader()) .getDeclaredMethod("get") diff --git a/nms/v1_21_R6/src/main/java/com/volmit/iris/core/nms/v1_21_R6/CustomBiomeSource.java b/nms/v1_21_R6/src/main/java/art/arcane/iris/core/nms/v1_21_R6/CustomBiomeSource.java similarity index 94% rename from nms/v1_21_R6/src/main/java/com/volmit/iris/core/nms/v1_21_R6/CustomBiomeSource.java rename to nms/v1_21_R6/src/main/java/art/arcane/iris/core/nms/v1_21_R6/CustomBiomeSource.java index 84711ceae..12d75d9c7 100644 --- a/nms/v1_21_R6/src/main/java/com/volmit/iris/core/nms/v1_21_R6/CustomBiomeSource.java +++ b/nms/v1_21_R6/src/main/java/art/arcane/iris/core/nms/v1_21_R6/CustomBiomeSource.java @@ -1,13 +1,13 @@ -package com.volmit.iris.core.nms.v1_21_R6; +package art.arcane.iris.core.nms.v1_21_R6; import com.mojang.serialization.MapCodec; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisBiomeCustom; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.iris.engine.object.IrisBiomeCustom; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.math.RNG; import net.minecraft.core.Holder; import net.minecraft.core.Registry; import net.minecraft.core.RegistryAccess; diff --git a/nms/v1_21_R6/src/main/java/com/volmit/iris/core/nms/v1_21_R6/IrisChunkGenerator.java b/nms/v1_21_R6/src/main/java/art/arcane/iris/core/nms/v1_21_R6/IrisChunkGenerator.java similarity index 96% rename from nms/v1_21_R6/src/main/java/com/volmit/iris/core/nms/v1_21_R6/IrisChunkGenerator.java rename to nms/v1_21_R6/src/main/java/art/arcane/iris/core/nms/v1_21_R6/IrisChunkGenerator.java index 82633ff5e..8ca94ba99 100644 --- a/nms/v1_21_R6/src/main/java/com/volmit/iris/core/nms/v1_21_R6/IrisChunkGenerator.java +++ b/nms/v1_21_R6/src/main/java/art/arcane/iris/core/nms/v1_21_R6/IrisChunkGenerator.java @@ -1,21 +1,21 @@ -package com.volmit.iris.core.nms.v1_21_R6; +package art.arcane.iris.core.nms.v1_21_R6; import com.mojang.datafixers.util.Pair; import com.mojang.serialization.MapCodec; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.ResultLocator; -import com.volmit.iris.engine.framework.WrongEngineBroException; -import com.volmit.iris.engine.object.IrisJigsawStructure; -import com.volmit.iris.engine.object.IrisJigsawStructurePlacement; -import com.volmit.iris.engine.object.IrisStructurePopulator; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.mantle.flag.MantleFlag; -import com.volmit.iris.util.math.Position2; -import com.volmit.iris.util.reflect.WrappedField; -import com.volmit.iris.util.reflect.WrappedReturningMethod; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.framework.ResultLocator; +import art.arcane.iris.engine.framework.WrongEngineBroException; +import art.arcane.iris.engine.object.IrisJigsawStructure; +import art.arcane.iris.engine.object.IrisJigsawStructurePlacement; +import art.arcane.iris.engine.object.IrisStructurePopulator; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.collection.KSet; +import art.arcane.volmlib.util.mantle.flag.MantleFlag; +import art.arcane.iris.util.math.Position2; +import art.arcane.iris.util.reflect.WrappedField; +import art.arcane.iris.util.reflect.WrappedReturningMethod; import net.minecraft.CrashReport; import net.minecraft.CrashReportCategory; import net.minecraft.ReportedException; diff --git a/nms/v1_21_R6/src/main/java/com/volmit/iris/core/nms/v1_21_R6/NMSBinding.java b/nms/v1_21_R6/src/main/java/art/arcane/iris/core/nms/v1_21_R6/NMSBinding.java similarity index 96% rename from nms/v1_21_R6/src/main/java/com/volmit/iris/core/nms/v1_21_R6/NMSBinding.java rename to nms/v1_21_R6/src/main/java/art/arcane/iris/core/nms/v1_21_R6/NMSBinding.java index f3bccedbe..296e876f4 100644 --- a/nms/v1_21_R6/src/main/java/com/volmit/iris/core/nms/v1_21_R6/NMSBinding.java +++ b/nms/v1_21_R6/src/main/java/art/arcane/iris/core/nms/v1_21_R6/NMSBinding.java @@ -1,31 +1,31 @@ -package com.volmit.iris.core.nms.v1_21_R6; +package art.arcane.iris.core.nms.v1_21_R6; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.volmit.iris.Iris; -import com.volmit.iris.core.link.Identifier; -import com.volmit.iris.core.nms.INMSBinding; -import com.volmit.iris.core.nms.container.BiomeColor; -import com.volmit.iris.core.nms.container.Pair; -import com.volmit.iris.core.nms.container.StructurePlacement; -import com.volmit.iris.core.nms.container.BlockProperty; -import com.volmit.iris.core.nms.datapack.DataVersion; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisJigsawStructurePlacement; -import com.volmit.iris.engine.platform.PlatformChunkGenerator; -import com.volmit.iris.util.agent.Agent; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.mantle.Mantle; -import com.volmit.iris.util.math.Vector3d; -import com.volmit.iris.util.matter.MatterBiomeInject; -import com.volmit.iris.util.nbt.mca.NBTWorld; -import com.volmit.iris.util.nbt.mca.palette.*; -import com.volmit.iris.util.nbt.tag.CompoundTag; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.iris.core.link.Identifier; +import art.arcane.iris.core.nms.INMSBinding; +import art.arcane.iris.core.nms.container.BiomeColor; +import art.arcane.iris.core.nms.container.Pair; +import art.arcane.iris.core.nms.container.StructurePlacement; +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.framework.Engine; +import art.arcane.iris.engine.object.IrisJigsawStructurePlacement; +import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.util.agent.Agent; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.format.C; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.iris.util.mantle.Mantle; +import art.arcane.iris.util.math.Vector3d; +import art.arcane.iris.util.matter.MatterBiomeInject; +import art.arcane.iris.util.nbt.mca.NBTWorld; +import art.arcane.iris.util.nbt.mca.palette.*; +import art.arcane.iris.util.nbt.tag.CompoundTag; +import art.arcane.iris.util.scheduling.J; import it.unimi.dsi.fastutil.objects.Object2IntMap; import it.unimi.dsi.fastutil.shorts.ShortList; import net.bytebuddy.ByteBuddy; @@ -833,11 +833,11 @@ public class NMSBinding implements INMSBinding { @Advice.Argument(11) World.Environment env, @Advice.Argument(12) ChunkGenerator gen ) { - if (gen == null || !gen.getClass().getPackageName().startsWith("com.volmit.iris")) + if (gen == null || !gen.getClass().getPackageName().startsWith("art.arcane.iris")) return; try { - Object bindings = Class.forName("com.volmit.iris.core.nms.INMS", true, Bukkit.getPluginManager().getPlugin("Iris") + Object bindings = Class.forName("art.arcane.iris.core.nms.INMS", true, Bukkit.getPluginManager().getPlugin("Iris") .getClass() .getClassLoader()) .getDeclaredMethod("get") diff --git a/nms/v1_21_R7/src/main/java/com/volmit/iris/core/nms/v1_21_R7/CustomBiomeSource.java b/nms/v1_21_R7/src/main/java/art/arcane/iris/core/nms/v1_21_R7/CustomBiomeSource.java similarity index 94% rename from nms/v1_21_R7/src/main/java/com/volmit/iris/core/nms/v1_21_R7/CustomBiomeSource.java rename to nms/v1_21_R7/src/main/java/art/arcane/iris/core/nms/v1_21_R7/CustomBiomeSource.java index 2f3f7827e..3fb38dec4 100644 --- a/nms/v1_21_R7/src/main/java/com/volmit/iris/core/nms/v1_21_R7/CustomBiomeSource.java +++ b/nms/v1_21_R7/src/main/java/art/arcane/iris/core/nms/v1_21_R7/CustomBiomeSource.java @@ -1,13 +1,13 @@ -package com.volmit.iris.core.nms.v1_21_R7; +package art.arcane.iris.core.nms.v1_21_R7; import com.mojang.serialization.MapCodec; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisBiomeCustom; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.math.RNG; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.data.cache.AtomicCache; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.iris.engine.object.IrisBiomeCustom; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.math.RNG; import net.minecraft.core.Holder; import net.minecraft.core.Registry; import net.minecraft.core.RegistryAccess; diff --git a/nms/v1_21_R7/src/main/java/com/volmit/iris/core/nms/v1_21_R7/IrisChunkGenerator.java b/nms/v1_21_R7/src/main/java/art/arcane/iris/core/nms/v1_21_R7/IrisChunkGenerator.java similarity index 96% rename from nms/v1_21_R7/src/main/java/com/volmit/iris/core/nms/v1_21_R7/IrisChunkGenerator.java rename to nms/v1_21_R7/src/main/java/art/arcane/iris/core/nms/v1_21_R7/IrisChunkGenerator.java index 6a9f95a23..245827c24 100644 --- a/nms/v1_21_R7/src/main/java/com/volmit/iris/core/nms/v1_21_R7/IrisChunkGenerator.java +++ b/nms/v1_21_R7/src/main/java/art/arcane/iris/core/nms/v1_21_R7/IrisChunkGenerator.java @@ -1,21 +1,21 @@ -package com.volmit.iris.core.nms.v1_21_R7; +package art.arcane.iris.core.nms.v1_21_R7; import com.mojang.datafixers.util.Pair; import com.mojang.serialization.MapCodec; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.framework.ResultLocator; -import com.volmit.iris.engine.framework.WrongEngineBroException; -import com.volmit.iris.engine.object.IrisJigsawStructure; -import com.volmit.iris.engine.object.IrisJigsawStructurePlacement; -import com.volmit.iris.engine.object.IrisStructurePopulator; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.mantle.flag.MantleFlag; -import com.volmit.iris.util.math.Position2; -import com.volmit.iris.util.reflect.WrappedField; -import com.volmit.iris.util.reflect.WrappedReturningMethod; +import art.arcane.iris.Iris; +import art.arcane.iris.engine.framework.Engine; +import art.arcane.iris.engine.framework.ResultLocator; +import art.arcane.iris.engine.framework.WrongEngineBroException; +import art.arcane.iris.engine.object.IrisJigsawStructure; +import art.arcane.iris.engine.object.IrisJigsawStructurePlacement; +import art.arcane.iris.engine.object.IrisStructurePopulator; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.volmlib.util.collection.KSet; +import art.arcane.volmlib.util.mantle.flag.MantleFlag; +import art.arcane.iris.util.math.Position2; +import art.arcane.iris.util.reflect.WrappedField; +import art.arcane.iris.util.reflect.WrappedReturningMethod; import net.minecraft.CrashReport; import net.minecraft.CrashReportCategory; import net.minecraft.ReportedException; diff --git a/nms/v1_21_R7/src/main/java/com/volmit/iris/core/nms/v1_21_R7/NMSBinding.java b/nms/v1_21_R7/src/main/java/art/arcane/iris/core/nms/v1_21_R7/NMSBinding.java similarity index 96% rename from nms/v1_21_R7/src/main/java/com/volmit/iris/core/nms/v1_21_R7/NMSBinding.java rename to nms/v1_21_R7/src/main/java/art/arcane/iris/core/nms/v1_21_R7/NMSBinding.java index 310e9efb5..628ac23b3 100644 --- a/nms/v1_21_R7/src/main/java/com/volmit/iris/core/nms/v1_21_R7/NMSBinding.java +++ b/nms/v1_21_R7/src/main/java/art/arcane/iris/core/nms/v1_21_R7/NMSBinding.java @@ -1,30 +1,30 @@ -package com.volmit.iris.core.nms.v1_21_R7; +package art.arcane.iris.core.nms.v1_21_R7; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.volmit.iris.Iris; -import com.volmit.iris.core.nms.INMSBinding; -import com.volmit.iris.core.nms.container.BiomeColor; -import com.volmit.iris.core.nms.container.Pair; -import com.volmit.iris.core.nms.container.StructurePlacement; -import com.volmit.iris.core.nms.container.BlockProperty; -import com.volmit.iris.core.nms.datapack.DataVersion; -import com.volmit.iris.engine.data.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisJigsawStructurePlacement; -import com.volmit.iris.engine.platform.PlatformChunkGenerator; -import com.volmit.iris.util.agent.Agent; -import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.format.C; -import com.volmit.iris.util.hunk.Hunk; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.mantle.Mantle; -import com.volmit.iris.util.math.Vector3d; -import com.volmit.iris.util.matter.MatterBiomeInject; -import com.volmit.iris.util.nbt.mca.NBTWorld; -import com.volmit.iris.util.nbt.mca.palette.*; -import com.volmit.iris.util.nbt.tag.CompoundTag; -import com.volmit.iris.util.scheduling.J; +import art.arcane.iris.Iris; +import art.arcane.iris.core.nms.INMSBinding; +import art.arcane.iris.core.nms.container.BiomeColor; +import art.arcane.iris.core.nms.container.Pair; +import art.arcane.iris.core.nms.container.StructurePlacement; +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.framework.Engine; +import art.arcane.iris.engine.object.IrisJigsawStructurePlacement; +import art.arcane.iris.engine.platform.PlatformChunkGenerator; +import art.arcane.iris.util.agent.Agent; +import art.arcane.volmlib.util.collection.KList; +import art.arcane.volmlib.util.collection.KMap; +import art.arcane.iris.util.format.C; +import art.arcane.iris.util.hunk.Hunk; +import art.arcane.volmlib.util.json.JSONObject; +import art.arcane.iris.util.mantle.Mantle; +import art.arcane.iris.util.math.Vector3d; +import art.arcane.iris.util.matter.MatterBiomeInject; +import art.arcane.iris.util.nbt.mca.NBTWorld; +import art.arcane.iris.util.nbt.mca.palette.*; +import art.arcane.iris.util.nbt.tag.CompoundTag; +import art.arcane.iris.util.scheduling.J; import it.unimi.dsi.fastutil.objects.Object2IntMap; import it.unimi.dsi.fastutil.shorts.ShortList; import net.bytebuddy.ByteBuddy; @@ -746,7 +746,7 @@ public class NMSBinding implements INMSBinding { } @Override - public KMap collectStructures() { + public KMap collectStructures() { var structureSets = registry().lookupOrThrow(Registries.STRUCTURE_SET); var structurePlacements = registry().lookupOrThrow(Registries.STRUCTURE_PLACEMENT); return structureSets.keySet() @@ -777,7 +777,7 @@ public class NMSBinding implements INMSBinding { return null; } - return new Pair<>(new com.volmit.iris.core.link.Identifier(key.getNamespace(), key.getPath()), builder + return new Pair<>(new art.arcane.iris.core.link.Identifier(key.getNamespace(), key.getPath()), builder .salt(placement.salt) .frequency(placement.frequency) .structures(set.structures() @@ -834,11 +834,11 @@ public class NMSBinding implements INMSBinding { @Advice.Argument(11) World.Environment env, @Advice.Argument(12) ChunkGenerator gen ) { - if (gen == null || !gen.getClass().getPackageName().startsWith("com.volmit.iris")) + if (gen == null || !gen.getClass().getPackageName().startsWith("art.arcane.iris")) return; try { - Object bindings = Class.forName("com.volmit.iris.core.nms.INMS", true, Bukkit.getPluginManager().getPlugin("Iris") + Object bindings = Class.forName("art.arcane.iris.core.nms.INMS", true, Bukkit.getPluginManager().getPlugin("Iris") .getClass() .getClassLoader()) .getDeclaredMethod("get")

Encodes signed and unsigned values using a common variable-length - * scheme, found for example in - * - * Google's Protocol Buffers. It uses fewer bytes to encode smaller values, - * but will use slightly more bytes to encode large values.