From 3ec2edd6d584679557ee428db2afe88308635bc8 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Mon, 19 Apr 2021 21:22:11 +0300 Subject: [PATCH] Buckets & entity enhancements, cleanup --- .../betterend/blocks/AuroraCrystalBlock.java | 1 - .../betterend/blocks/BlueVineSeedBlock.java | 1 + .../betterend/blocks/BoluxMushroomBlock.java | 4 +- .../ru/betterend/blocks/BulbVineBlock.java | 4 +- .../betterend/blocks/BulbVineSeedBlock.java | 1 + .../blocks/CavePumpkinVineBlock.java | 1 + .../ru/betterend/blocks/EndLilySeedBlock.java | 1 + .../betterend/blocks/EndLotusSeedBlock.java | 1 + .../java/ru/betterend/blocks/EndPedestal.java | 1 + .../ru/betterend/blocks/EternalPedestal.java | 4 +- .../blocks/EternalRunedFlavolite.java | 4 +- .../blocks/HydraluxSaplingBlock.java | 1 + .../ru/betterend/blocks/LanceleafBlock.java | 1 + .../betterend/blocks/LanceleafSeedBlock.java | 1 + .../betterend/blocks/LumecornSeedBlock.java | 1 + .../ru/betterend/blocks/PedestalVanilla.java | 1 + .../betterend/blocks/SmallAmaranitaBlock.java | 1 + .../blocks/TwistedUmbrellaMossTallBlock.java | 1 + .../blocks/UmbrellaMossTallBlock.java | 1 + .../ru/betterend/blocks/basis/BarkBlock.java | 1 + .../blocks/basis/BaseBlockWithEntity.java | 1 + .../ru/betterend/blocks/basis/BlockBase.java | 1 + .../blocks/basis/TripleTerrainBlock.java | 4 +- .../render/EndChestBlockEntityRenderer.java | 14 +- .../render/EndSignBlockEntityRenderer.java | 12 +- .../entities/render/PedestalItemRenderer.java | 1 + .../client/gui/BlockSignEditScreen.java | 1 + .../gui/EndStoneSmelterRecipeBookScreen.java | 1 + .../client/gui/EndStoneSmelterScreen.java | 1 + .../betterend/client/render/BeamRenderer.java | 1 + .../client/render/EndCrystalRenderer.java | 189 +++---- .../client/render/EternalCrystalRenderer.java | 139 ++--- .../ru/betterend/config/ConfigKeeper.java | 4 +- .../java/ru/betterend/config/IdConfig.java | 184 +++---- .../ru/betterend/entity/CubozoaEntity.java | 32 +- .../ru/betterend/entity/DragonflyEntity.java | 3 +- .../ru/betterend/entity/EndFishEntity.java | 23 +- .../ru/betterend/entity/EndSlimeEntity.java | 6 +- .../betterend/entity/ShadowWalkerEntity.java | 1 + .../ru/betterend/entity/SilkMothEntity.java | 4 +- .../entity/model/BlockBenchModel.java | 1 + .../entity/model/CubozoaEntityModel.java | 1 + .../entity/model/DragonflyEntityModel.java | 1 + .../entity/model/EndFishEntityModel.java | 1 + .../entity/model/EndSlimeEntityModel.java | 1 + .../entity/model/SilkMothEntityModel.java | 1 + .../entity/render/RendererEntityCubozoa.java | 1 + .../entity/render/RendererEntityEndFish.java | 1 + .../entity/render/RendererEntityEndSlime.java | 1 + .../FlamboyantRefabricatedIntegration.java | 4 +- .../integration/byg/BYGIntegration.java | 1 + .../integration/byg/biomes/EterialGrove.java | 1 + .../byg/biomes/NightshadeRedwoods.java | 1 + .../byg/biomes/OldBulbisGardens.java | 1 + .../byg/features/BigEtherTreeFeature.java | 6 +- .../features/GreatNightshadeTreeFeature.java | 8 +- .../NightshadeRedwoodTreeFeature.java | 8 +- .../byg/features/OldBulbisTreeFeature.java | 6 +- .../integration/rei/REIAlloyingCategory.java | 177 +++---- .../rei/REIAlloyingFuelCategory.java | 183 +++---- .../integration/rei/REIAnvilCategory.java | 201 ++++---- .../integration/rei/REIInfusionCategory.java | 161 +++--- .../ru/betterend/interfaces/IBiomeList.java | 1 + .../java/ru/betterend/item/EndArmorItem.java | 6 +- .../java/ru/betterend/item/EndBucketItem.java | 18 + .../java/ru/betterend/item/GuideBookItem.java | 87 ++-- .../item/material/EndToolMaterial.java | 1 + .../item/model/CrystaliteBootsModel.java | 84 +-- .../item/model/CrystaliteChestplateModel.java | 146 +++--- .../item/model/CrystaliteLeggingsModel.java | 70 +-- .../client/AbstractSoundInstanceAccessor.java | 3 +- .../mixin/client/AnvilScreenMixin.java | 18 +- .../mixin/client/BackgroundRendererMixin.java | 1 + .../client/ClientPlayNetworkHandlerMixin.java | 11 +- .../mixin/client/ClientRecipeBookMixin.java | 8 +- .../mixin/client/ContextGsonAccessor.java | 1 + .../client/EnchantingTableBlockMixin.java | 10 +- .../mixin/client/MinecraftClientMixin.java | 1 + .../mixin/client/ModelLoaderMixin.java | 16 +- .../mixin/client/ModelVariantMapMixin.java | 8 +- .../mixin/client/MusicTrackerMixin.java | 14 +- .../client/NamespaceResourceManagerMixin.java | 12 +- .../mixin/client/WorldRendererMixin.java | 1 + .../mixin/common/AnvilBlockMixin.java | 7 +- .../mixin/common/AnvilMenuMixin.java | 14 +- .../mixin/common/ArmorItemAccessor.java | 8 +- .../BiomeGenerationSettingsAccessor.java | 6 +- .../mixin/common/BlockBehaviourMixin.java | 14 +- .../mixin/common/BoneMealItemMixin.java | 10 +- .../mixin/common/ChorusFlowerBlockMixin.java | 18 +- .../mixin/common/ChorusPlantBlockMixin.java | 11 +- .../mixin/common/ChorusPlantFeatureMixin.java | 10 +- .../common/ChunkBiomeContainerMixin.java | 7 +- .../mixin/common/ComposterBlockAccessor.java | 5 +- .../mixin/common/CraftingMenuMixin.java | 9 +- .../mixin/common/DimensionTypeMixin.java | 9 +- .../mixin/common/EnchantmentMenuMixin.java | 14 +- .../mixin/common/EndCityFeatureMixin.java | 11 +- .../mixin/common/EndPodiumFeatureMixin.java | 16 +- .../betterend/mixin/common/EnderManMixin.java | 9 +- .../betterend/mixin/common/EntityMixin.java | 13 +- .../mixin/common/LivingEntityMixin.java | 12 +- .../betterend/mixin/common/MonsterMixin.java | 10 +- .../common/NoiseBasedChunkGeneratorMixin.java | 12 +- .../mixin/common/PlayerAdvancementsMixin.java | 7 +- .../betterend/mixin/common/PlayerMixin.java | 10 +- .../mixin/common/PotionBrewingAccessor.java | 5 +- .../mixin/common/RecipeManagerAccessor.java | 6 +- .../mixin/common/RecipeManagerMixin.java | 18 +- .../mixin/common/ServerPlayerMixin.java | 1 + .../ru/betterend/mixin/common/SlimeMixin.java | 3 +- .../mixin/common/SpikeFeatureMixin.java | 1 + .../mixin/common/TagLoaderMixin.java | 12 +- .../java/ru/betterend/noise/VoronoiNoise.java | 1 + .../particle/GlowingSphereParticleEffect.java | 1 + .../ru/betterend/patterns/BlockPatterned.java | 27 +- .../java/ru/betterend/patterns/Patterns.java | 314 ++++++------ .../ru/betterend/recipe/EndRecipeManager.java | 4 +- .../betterend/recipe/builders/GridRecipe.java | 4 +- .../betterend/registry/EndBlockEntities.java | 4 +- .../ru/betterend/registry/EndFeatures.java | 6 +- .../java/ru/betterend/registry/EndItems.java | 6 +- .../ru/betterend/registry/EndPortals.java | 1 + .../ru/betterend/registry/EndStructures.java | 1 + .../java/ru/betterend/registry/EndTags.java | 2 +- .../ru/betterend/rituals/EternalRitual.java | 3 +- .../ru/betterend/rituals/InfusionRitual.java | 1 + .../java/ru/betterend/util/BlocksHelper.java | 6 +- .../java/ru/betterend/util/BonemealUtil.java | 6 +- .../java/ru/betterend/util/ColorUtil.java | 479 +++++++++--------- .../ru/betterend/util/FeaturesHelper.java | 6 +- src/main/java/ru/betterend/util/ItemUtil.java | 145 +++--- src/main/java/ru/betterend/util/MHelper.java | 4 +- .../java/ru/betterend/util/SplineHelper.java | 6 +- .../ru/betterend/util/StructureHelper.java | 1 + .../java/ru/betterend/util/TagHelper.java | 6 +- .../ru/betterend/util/TranslationHelper.java | 6 +- .../java/ru/betterend/util/sdf/PosInfo.java | 1 + src/main/java/ru/betterend/util/sdf/SDF.java | 8 +- .../util/sdf/operator/SDFCoordModify.java | 3 +- .../util/sdf/operator/SDFDisplacement.java | 3 +- .../util/sdf/operator/SDFHeightmap.java | 1 + .../util/sdf/primitive/SDFPrimitive.java | 1 + .../world/biome/BiomeDefinition.java | 4 +- .../ru/betterend/world/biome/EndBiome.java | 8 +- .../world/biome/cave/EndCaveBiome.java | 1 + .../world/features/BiomeIslandFeature.java | 143 +++--- .../world/features/BlueVineFeature.java | 1 + .../world/features/CavePlantFeature.java | 1 + .../world/features/CavePumpkinFeature.java | 1 + .../world/features/CrashedShipFeature.java | 1 + .../world/features/DoublePlantFeature.java | 1 + .../world/features/EndLilyFeature.java | 1 + .../world/features/EndLotusFeature.java | 1 + .../world/features/EndLotusLeafFeature.java | 1 + .../world/features/FilaluxFeature.java | 1 + .../features/FullHeightScatterFeature.java | 1 + .../world/features/GlowPillarFeature.java | 1 + .../world/features/HydraluxFeature.java | 1 + .../features/InvertedScatterFeature.java | 1 + .../world/features/LanceleafFeature.java | 1 + .../betterend/world/features/ListFeature.java | 1 + .../world/features/MengerSpongeFeature.java | 1 + .../world/features/NBTStructureFeature.java | 1 + .../world/features/NeonCactusFeature.java | 1 + .../world/features/ScatterFeature.java | 1 + .../world/features/SilkMothNestFeature.java | 1 + .../SingleInvertedScatterFeature.java | 1 + .../world/features/SinglePlantFeature.java | 1 + .../world/features/SkyScatterFeature.java | 1 + .../features/UnderwaterPlantFeature.java | 1 + .../features/UnderwaterPlantScatter.java | 1 + .../betterend/world/features/VineFeature.java | 1 + .../world/features/WallPlantFeature.java | 1 + .../world/features/WallPlantOnLogFeature.java | 1 + .../world/features/WallScatterFeature.java | 1 + .../world/features/bushes/BushFeature.java | 1 + .../features/bushes/BushWithOuterFeature.java | 1 + .../bushes/LargeAmaranitaFeature.java | 1 + .../world/features/bushes/Lumecorn.java | 1 + .../features/bushes/TenaneaBushFeature.java | 4 +- .../terrain/BigAuroraCrystalFeature.java | 4 +- .../features/terrain/EndLakeFeature.java | 1 + .../features/terrain/FallenPillarFeature.java | 4 +- .../terrain/FloatingSpireFeature.java | 4 +- .../world/features/terrain/GeyserFeature.java | 4 +- .../features/terrain/IceStarFeature.java | 4 +- .../terrain/ObsidianBoulderFeature.java | 1 + .../ObsidianPillarBasementFeature.java | 4 +- .../features/terrain/OreLayerFeature.java | 1 + .../features/terrain/SingleBlockFeature.java | 1 + .../terrain/SmaragdantCrystalFeature.java | 1 + .../world/features/terrain/SpireFeature.java | 4 +- .../features/terrain/StalactiteFeature.java | 1 + .../features/terrain/SulphurHillFeature.java | 1 + .../terrain/SulphuricCaveFeature.java | 4 +- .../terrain/SulphuricLakeFeature.java | 4 +- .../features/terrain/SurfaceVentFeature.java | 1 + .../caves/CaveChunkPopulatorFeature.java | 4 +- .../terrain/caves/EndCaveFeature.java | 3 +- .../terrain/caves/RoundCaveFeature.java | 4 +- .../terrain/caves/TunelCaveFeature.java | 4 +- .../features/trees/DragonTreeFeature.java | 6 +- .../trees/GiganticAmaranitaFeature.java | 4 +- .../features/trees/HelixTreeFeature.java | 4 +- .../features/trees/JellyshroomFeature.java | 6 +- .../features/trees/LacugroveFeature.java | 4 +- .../world/features/trees/LucerniaFeature.java | 6 +- .../trees/MossyGlowshroomFeature.java | 4 +- .../trees/PythadendronTreeFeature.java | 4 +- .../world/features/trees/TenaneaFeature.java | 6 +- .../features/trees/UmbrellaTreeFeature.java | 6 +- .../world/generator/BetterEndBiomeSource.java | 8 +- .../betterend/world/generator/BiomeMap.java | 4 +- .../world/generator/BiomePicker.java | 4 +- .../world/generator/IslandLayer.java | 4 +- .../world/generator/TerrainGenerator.java | 4 +- .../world/structures/StructureWorld.java | 1 + .../features/FeatureBaseStructure.java | 1 + .../features/GiantIceStarStructure.java | 4 +- .../GiantMossyGlowshroomStructure.java | 4 +- .../features/SDFStructureFeature.java | 1 + .../world/structures/piece/CavePiece.java | 1 + .../piece/CrystalMountainPiece.java | 1 + .../world/structures/piece/LakePiece.java | 1 + .../world/structures/piece/MountainPiece.java | 1 + .../world/structures/piece/NBTPiece.java | 1 + .../piece/PaintedMountainPiece.java | 1 + .../world/structures/piece/VoxelPiece.java | 1 + .../surface/DoubleBlockSurfaceBuilder.java | 1 + .../surface/SulphuricSurfaceBuilder.java | 1 + .../assets/betterend/lang/en_us.json | 1 + .../assets/betterend/lang/ru_ru.json | 1 + .../textures/item/bucket_cubozoa.png | Bin 0 -> 1633 bytes 234 files changed, 1988 insertions(+), 1643 deletions(-) create mode 100644 src/main/java/ru/betterend/item/EndBucketItem.java create mode 100644 src/main/resources/assets/betterend/textures/item/bucket_cubozoa.png diff --git a/src/main/java/ru/betterend/blocks/AuroraCrystalBlock.java b/src/main/java/ru/betterend/blocks/AuroraCrystalBlock.java index 9533b296..99c12928 100644 --- a/src/main/java/ru/betterend/blocks/AuroraCrystalBlock.java +++ b/src/main/java/ru/betterend/blocks/AuroraCrystalBlock.java @@ -5,7 +5,6 @@ import java.util.List; import com.google.common.collect.Lists; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; -import net.fabricmc.fabric.api.tag.TagRegistry; import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags; import net.minecraft.client.color.block.BlockColor; import net.minecraft.client.color.item.ItemColor; diff --git a/src/main/java/ru/betterend/blocks/BlueVineSeedBlock.java b/src/main/java/ru/betterend/blocks/BlueVineSeedBlock.java index 0d5d63a4..586c81cc 100644 --- a/src/main/java/ru/betterend/blocks/BlueVineSeedBlock.java +++ b/src/main/java/ru/betterend/blocks/BlueVineSeedBlock.java @@ -1,6 +1,7 @@ package ru.betterend.blocks; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.WorldGenLevel; diff --git a/src/main/java/ru/betterend/blocks/BoluxMushroomBlock.java b/src/main/java/ru/betterend/blocks/BoluxMushroomBlock.java index fb512f7d..a7c95243 100644 --- a/src/main/java/ru/betterend/blocks/BoluxMushroomBlock.java +++ b/src/main/java/ru/betterend/blocks/BoluxMushroomBlock.java @@ -2,6 +2,9 @@ package ru.betterend.blocks; import java.util.List; import java.util.Random; + +import com.google.common.collect.Lists; + import net.minecraft.core.BlockPos; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.BlockGetter; @@ -12,7 +15,6 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; -import com.google.common.collect.Lists; import ru.betterend.blocks.basis.EndPlantBlock; import ru.betterend.registry.EndBlocks; diff --git a/src/main/java/ru/betterend/blocks/BulbVineBlock.java b/src/main/java/ru/betterend/blocks/BulbVineBlock.java index 50846ebc..504fe6f8 100644 --- a/src/main/java/ru/betterend/blocks/BulbVineBlock.java +++ b/src/main/java/ru/betterend/blocks/BulbVineBlock.java @@ -1,13 +1,15 @@ package ru.betterend.blocks; import java.util.List; + +import com.google.common.collect.Lists; + import net.minecraft.core.BlockPos; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.LevelReader; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.storage.loot.LootContext; -import com.google.common.collect.Lists; import ru.betterend.blocks.BlockProperties.TripleShape; import ru.betterend.blocks.basis.VineBlock; import ru.betterend.registry.EndBlocks; diff --git a/src/main/java/ru/betterend/blocks/BulbVineSeedBlock.java b/src/main/java/ru/betterend/blocks/BulbVineSeedBlock.java index 9ce91135..38b5e60c 100644 --- a/src/main/java/ru/betterend/blocks/BulbVineSeedBlock.java +++ b/src/main/java/ru/betterend/blocks/BulbVineSeedBlock.java @@ -1,6 +1,7 @@ package ru.betterend.blocks; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.tags.BlockTags; import net.minecraft.world.level.LevelReader; diff --git a/src/main/java/ru/betterend/blocks/CavePumpkinVineBlock.java b/src/main/java/ru/betterend/blocks/CavePumpkinVineBlock.java index e5754327..c0898eb8 100644 --- a/src/main/java/ru/betterend/blocks/CavePumpkinVineBlock.java +++ b/src/main/java/ru/betterend/blocks/CavePumpkinVineBlock.java @@ -1,6 +1,7 @@ package ru.betterend.blocks; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; diff --git a/src/main/java/ru/betterend/blocks/EndLilySeedBlock.java b/src/main/java/ru/betterend/blocks/EndLilySeedBlock.java index f2f67d4c..9bcdf0ec 100644 --- a/src/main/java/ru/betterend/blocks/EndLilySeedBlock.java +++ b/src/main/java/ru/betterend/blocks/EndLilySeedBlock.java @@ -1,6 +1,7 @@ package ru.betterend.blocks; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.material.Fluids; diff --git a/src/main/java/ru/betterend/blocks/EndLotusSeedBlock.java b/src/main/java/ru/betterend/blocks/EndLotusSeedBlock.java index 40111055..b9b8fb4d 100644 --- a/src/main/java/ru/betterend/blocks/EndLotusSeedBlock.java +++ b/src/main/java/ru/betterend/blocks/EndLotusSeedBlock.java @@ -1,6 +1,7 @@ package ru.betterend.blocks; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/ru/betterend/blocks/EndPedestal.java b/src/main/java/ru/betterend/blocks/EndPedestal.java index d5756e44..b626629a 100644 --- a/src/main/java/ru/betterend/blocks/EndPedestal.java +++ b/src/main/java/ru/betterend/blocks/EndPedestal.java @@ -2,6 +2,7 @@ package ru.betterend.blocks; import java.util.HashMap; import java.util.Map; + import net.minecraft.core.Registry; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.block.Block; diff --git a/src/main/java/ru/betterend/blocks/EternalPedestal.java b/src/main/java/ru/betterend/blocks/EternalPedestal.java index b857ac4c..8d057510 100644 --- a/src/main/java/ru/betterend/blocks/EternalPedestal.java +++ b/src/main/java/ru/betterend/blocks/EternalPedestal.java @@ -1,6 +1,9 @@ package ru.betterend.blocks; import java.util.List; + +import com.google.common.collect.Lists; + import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Registry; @@ -19,7 +22,6 @@ import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.BooleanProperty; import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.world.level.storage.loot.parameters.LootContextParams; -import com.google.common.collect.Lists; import ru.betterend.blocks.basis.PedestalBlock; import ru.betterend.blocks.entities.EternalPedestalEntity; import ru.betterend.registry.EndBlocks; diff --git a/src/main/java/ru/betterend/blocks/EternalRunedFlavolite.java b/src/main/java/ru/betterend/blocks/EternalRunedFlavolite.java index a139eafb..be662a47 100644 --- a/src/main/java/ru/betterend/blocks/EternalRunedFlavolite.java +++ b/src/main/java/ru/betterend/blocks/EternalRunedFlavolite.java @@ -1,6 +1,9 @@ package ru.betterend.blocks; import java.util.List; + +import com.google.common.collect.Lists; + import net.minecraft.core.BlockPos; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; @@ -9,7 +12,6 @@ import net.minecraft.world.level.Explosion; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.storage.loot.LootContext; -import com.google.common.collect.Lists; public class EternalRunedFlavolite extends RunedFlavolite { diff --git a/src/main/java/ru/betterend/blocks/HydraluxSaplingBlock.java b/src/main/java/ru/betterend/blocks/HydraluxSaplingBlock.java index 9afb2681..2d69864b 100644 --- a/src/main/java/ru/betterend/blocks/HydraluxSaplingBlock.java +++ b/src/main/java/ru/betterend/blocks/HydraluxSaplingBlock.java @@ -1,6 +1,7 @@ package ru.betterend.blocks; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.world.level.WorldGenLevel; diff --git a/src/main/java/ru/betterend/blocks/LanceleafBlock.java b/src/main/java/ru/betterend/blocks/LanceleafBlock.java index c6378032..e40ae5c7 100644 --- a/src/main/java/ru/betterend/blocks/LanceleafBlock.java +++ b/src/main/java/ru/betterend/blocks/LanceleafBlock.java @@ -2,6 +2,7 @@ package ru.betterend.blocks; import java.util.Collections; import java.util.List; + import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/ru/betterend/blocks/LanceleafSeedBlock.java b/src/main/java/ru/betterend/blocks/LanceleafSeedBlock.java index 3f631b57..f319eabc 100644 --- a/src/main/java/ru/betterend/blocks/LanceleafSeedBlock.java +++ b/src/main/java/ru/betterend/blocks/LanceleafSeedBlock.java @@ -1,6 +1,7 @@ package ru.betterend.blocks; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/ru/betterend/blocks/LumecornSeedBlock.java b/src/main/java/ru/betterend/blocks/LumecornSeedBlock.java index c3e6a14c..d3487a23 100644 --- a/src/main/java/ru/betterend/blocks/LumecornSeedBlock.java +++ b/src/main/java/ru/betterend/blocks/LumecornSeedBlock.java @@ -1,6 +1,7 @@ package ru.betterend.blocks; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.state.BlockBehaviour; diff --git a/src/main/java/ru/betterend/blocks/PedestalVanilla.java b/src/main/java/ru/betterend/blocks/PedestalVanilla.java index 292303fb..122ff0a1 100644 --- a/src/main/java/ru/betterend/blocks/PedestalVanilla.java +++ b/src/main/java/ru/betterend/blocks/PedestalVanilla.java @@ -2,6 +2,7 @@ package ru.betterend.blocks; import java.util.HashMap; import java.util.Map; + import net.minecraft.core.Registry; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.block.Block; diff --git a/src/main/java/ru/betterend/blocks/SmallAmaranitaBlock.java b/src/main/java/ru/betterend/blocks/SmallAmaranitaBlock.java index 9bf881c3..edb75b91 100644 --- a/src/main/java/ru/betterend/blocks/SmallAmaranitaBlock.java +++ b/src/main/java/ru/betterend/blocks/SmallAmaranitaBlock.java @@ -1,6 +1,7 @@ package ru.betterend.blocks; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.BlockGetter; diff --git a/src/main/java/ru/betterend/blocks/TwistedUmbrellaMossTallBlock.java b/src/main/java/ru/betterend/blocks/TwistedUmbrellaMossTallBlock.java index 843aa4a3..3d0ff3e8 100644 --- a/src/main/java/ru/betterend/blocks/TwistedUmbrellaMossTallBlock.java +++ b/src/main/java/ru/betterend/blocks/TwistedUmbrellaMossTallBlock.java @@ -1,6 +1,7 @@ package ru.betterend.blocks; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.item.ItemEntity; diff --git a/src/main/java/ru/betterend/blocks/UmbrellaMossTallBlock.java b/src/main/java/ru/betterend/blocks/UmbrellaMossTallBlock.java index 7e15e99a..51045ffb 100644 --- a/src/main/java/ru/betterend/blocks/UmbrellaMossTallBlock.java +++ b/src/main/java/ru/betterend/blocks/UmbrellaMossTallBlock.java @@ -1,6 +1,7 @@ package ru.betterend.blocks; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.item.ItemEntity; diff --git a/src/main/java/ru/betterend/blocks/basis/BarkBlock.java b/src/main/java/ru/betterend/blocks/basis/BarkBlock.java index 1b82913c..f408f369 100644 --- a/src/main/java/ru/betterend/blocks/basis/BarkBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/BarkBlock.java @@ -1,6 +1,7 @@ package ru.betterend.blocks.basis; import java.io.Reader; + import net.minecraft.core.Registry; import net.minecraft.resources.ResourceLocation; import ru.betterend.patterns.Patterns; diff --git a/src/main/java/ru/betterend/blocks/basis/BaseBlockWithEntity.java b/src/main/java/ru/betterend/blocks/basis/BaseBlockWithEntity.java index f8a8b656..fffe742d 100644 --- a/src/main/java/ru/betterend/blocks/basis/BaseBlockWithEntity.java +++ b/src/main/java/ru/betterend/blocks/basis/BaseBlockWithEntity.java @@ -2,6 +2,7 @@ package ru.betterend.blocks.basis; import java.util.Collections; import java.util.List; + import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.block.BaseEntityBlock; diff --git a/src/main/java/ru/betterend/blocks/basis/BlockBase.java b/src/main/java/ru/betterend/blocks/basis/BlockBase.java index 05f59723..9299f6d6 100644 --- a/src/main/java/ru/betterend/blocks/basis/BlockBase.java +++ b/src/main/java/ru/betterend/blocks/basis/BlockBase.java @@ -3,6 +3,7 @@ package ru.betterend.blocks.basis; import java.io.Reader; import java.util.Collections; import java.util.List; + import net.minecraft.core.Registry; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/ru/betterend/blocks/basis/TripleTerrainBlock.java b/src/main/java/ru/betterend/blocks/basis/TripleTerrainBlock.java index 3144d336..7e7bdbf1 100644 --- a/src/main/java/ru/betterend/blocks/basis/TripleTerrainBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/TripleTerrainBlock.java @@ -2,6 +2,9 @@ package ru.betterend.blocks.basis; import java.util.Map; import java.util.Random; + +import com.google.common.collect.Maps; + import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Registry; @@ -20,7 +23,6 @@ import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.level.material.MaterialColor; import net.minecraft.world.phys.BlockHitResult; -import com.google.common.collect.Maps; import ru.betterend.blocks.BlockProperties; import ru.betterend.blocks.BlockProperties.TripleShape; import ru.betterend.blocks.EndTerrainBlock; diff --git a/src/main/java/ru/betterend/blocks/entities/render/EndChestBlockEntityRenderer.java b/src/main/java/ru/betterend/blocks/entities/render/EndChestBlockEntityRenderer.java index 2b6b7838..b06c2316 100644 --- a/src/main/java/ru/betterend/blocks/entities/render/EndChestBlockEntityRenderer.java +++ b/src/main/java/ru/betterend/blocks/entities/render/EndChestBlockEntityRenderer.java @@ -1,6 +1,14 @@ package ru.betterend.blocks.entities.render; import java.util.HashMap; + +import com.google.common.collect.Maps; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import com.mojang.math.Vector3f; + +import it.unimi.dsi.fastutil.floats.Float2FloatFunction; +import it.unimi.dsi.fastutil.ints.Int2IntFunction; import net.minecraft.client.model.geom.ModelPart; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; @@ -22,12 +30,6 @@ import net.minecraft.world.level.block.entity.ChestBlockEntity; import net.minecraft.world.level.block.entity.LidBlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.ChestType; -import com.google.common.collect.Maps; -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexConsumer; -import com.mojang.math.Vector3f; -import it.unimi.dsi.fastutil.floats.Float2FloatFunction; -import it.unimi.dsi.fastutil.ints.Int2IntFunction; import ru.betterend.BetterEnd; import ru.betterend.blocks.basis.EndChestBlock; import ru.betterend.blocks.entities.EChestBlockEntity; diff --git a/src/main/java/ru/betterend/blocks/entities/render/EndSignBlockEntityRenderer.java b/src/main/java/ru/betterend/blocks/entities/render/EndSignBlockEntityRenderer.java index 9c979617..53b3a0fa 100644 --- a/src/main/java/ru/betterend/blocks/entities/render/EndSignBlockEntityRenderer.java +++ b/src/main/java/ru/betterend/blocks/entities/render/EndSignBlockEntityRenderer.java @@ -2,6 +2,13 @@ package ru.betterend.blocks.entities.render; import java.util.HashMap; import java.util.List; + +import com.google.common.collect.Maps; +import com.mojang.blaze3d.platform.NativeImage; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import com.mojang.math.Vector3f; + import net.minecraft.client.gui.Font; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; @@ -20,11 +27,6 @@ import net.minecraft.world.level.block.SignBlock; import net.minecraft.world.level.block.StandingSignBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.WoodType; -import com.google.common.collect.Maps; -import com.mojang.blaze3d.platform.NativeImage; -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexConsumer; -import com.mojang.math.Vector3f; import ru.betterend.BetterEnd; import ru.betterend.blocks.basis.EndSignBlock; import ru.betterend.blocks.entities.ESignBlockEntity; diff --git a/src/main/java/ru/betterend/blocks/entities/render/PedestalItemRenderer.java b/src/main/java/ru/betterend/blocks/entities/render/PedestalItemRenderer.java index d989e57d..1bb01cec 100644 --- a/src/main/java/ru/betterend/blocks/entities/render/PedestalItemRenderer.java +++ b/src/main/java/ru/betterend/blocks/entities/render/PedestalItemRenderer.java @@ -2,6 +2,7 @@ package ru.betterend.blocks.entities.render; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.math.Vector3f; + import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.Minecraft; diff --git a/src/main/java/ru/betterend/client/gui/BlockSignEditScreen.java b/src/main/java/ru/betterend/client/gui/BlockSignEditScreen.java index 797438f7..fea3c140 100644 --- a/src/main/java/ru/betterend/client/gui/BlockSignEditScreen.java +++ b/src/main/java/ru/betterend/client/gui/BlockSignEditScreen.java @@ -12,6 +12,7 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.Tesselator; import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.math.Matrix4f; + import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.Util; diff --git a/src/main/java/ru/betterend/client/gui/EndStoneSmelterRecipeBookScreen.java b/src/main/java/ru/betterend/client/gui/EndStoneSmelterRecipeBookScreen.java index 30cc0260..1ed760f5 100644 --- a/src/main/java/ru/betterend/client/gui/EndStoneSmelterRecipeBookScreen.java +++ b/src/main/java/ru/betterend/client/gui/EndStoneSmelterRecipeBookScreen.java @@ -6,6 +6,7 @@ import java.util.Set; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; + import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.gui.GuiComponent; diff --git a/src/main/java/ru/betterend/client/gui/EndStoneSmelterScreen.java b/src/main/java/ru/betterend/client/gui/EndStoneSmelterScreen.java index 6aba3065..7bb7f206 100644 --- a/src/main/java/ru/betterend/client/gui/EndStoneSmelterScreen.java +++ b/src/main/java/ru/betterend/client/gui/EndStoneSmelterScreen.java @@ -2,6 +2,7 @@ package ru.betterend.client.gui; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; + import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.gui.components.ImageButton; diff --git a/src/main/java/ru/betterend/client/render/BeamRenderer.java b/src/main/java/ru/betterend/client/render/BeamRenderer.java index fe8f8e3a..88de8add 100644 --- a/src/main/java/ru/betterend/client/render/BeamRenderer.java +++ b/src/main/java/ru/betterend/client/render/BeamRenderer.java @@ -5,6 +5,7 @@ import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.math.Matrix3f; import com.mojang.math.Matrix4f; import com.mojang.math.Vector3f; + import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.texture.OverlayTexture; diff --git a/src/main/java/ru/betterend/client/render/EndCrystalRenderer.java b/src/main/java/ru/betterend/client/render/EndCrystalRenderer.java index 9c559914..54a1d540 100644 --- a/src/main/java/ru/betterend/client/render/EndCrystalRenderer.java +++ b/src/main/java/ru/betterend/client/render/EndCrystalRenderer.java @@ -1,94 +1,95 @@ -package ru.betterend.client.render; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexConsumer; -import com.mojang.math.Matrix3f; -import com.mojang.math.Matrix4f; -import com.mojang.math.Quaternion; -import com.mojang.math.Vector3f; -import net.minecraft.client.model.geom.ModelPart; -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.texture.OverlayTexture; -import net.minecraft.core.BlockPos; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.util.Mth; - -public class EndCrystalRenderer { - private static final ResourceLocation CRYSTAL_TEXTURE = new ResourceLocation("textures/entity/end_crystal/end_crystal.png"); - private static final ResourceLocation CRYSTAL_BEAM_TEXTURE = new ResourceLocation("textures/entity/end_crystal/end_crystal_beam.png"); - private static final RenderType CRYSTAL_BEAM_LAYER; - private static final RenderType END_CRYSTAL; - private static final ModelPart CORE; - private static final ModelPart FRAME; - private static final int AGE_CYCLE = 240; - private static final float SINE_45_DEGREES; - - public static void render(int age, int maxAge, float tickDelta, PoseStack matrices, MultiBufferSource vertexConsumerProvider, int light) { - float k = (float) AGE_CYCLE / maxAge; - float rotation = (age * k + tickDelta) * 3.0F; - VertexConsumer vertexConsumer = vertexConsumerProvider.getBuffer(END_CRYSTAL); - matrices.pushPose(); - matrices.scale(0.8F, 0.8F, 0.8F); - matrices.translate(0.0D, -0.5D, 0.0D); - matrices.mulPose(Vector3f.YP.rotationDegrees(rotation)); - matrices.translate(0.0D, 0.8F, 0.0D); - matrices.mulPose(new Quaternion(new Vector3f(SINE_45_DEGREES, 0.0F, SINE_45_DEGREES), 60.0F, true)); - FRAME.render(matrices, vertexConsumer, light, OverlayTexture.NO_OVERLAY); - matrices.scale(0.875F, 0.875F, 0.875F); - matrices.mulPose(new Quaternion(new Vector3f(SINE_45_DEGREES, 0.0F, SINE_45_DEGREES), 60.0F, true)); - matrices.mulPose(Vector3f.YP.rotationDegrees(rotation)); - FRAME.render(matrices, vertexConsumer, light, OverlayTexture.NO_OVERLAY); - matrices.scale(0.875F, 0.875F, 0.875F); - matrices.mulPose(new Quaternion(new Vector3f(SINE_45_DEGREES, 0.0F, SINE_45_DEGREES), 60.0F, true)); - matrices.mulPose(Vector3f.YP.rotationDegrees(rotation)); - CORE.render(matrices, vertexConsumer, light, OverlayTexture.NO_OVERLAY); - matrices.popPose(); - } - - public static void renderBeam(BlockPos start, BlockPos end, float tickDelta, int age, PoseStack matrices, MultiBufferSource vertexConsumers, int light) { - float dx = start.getX() - end.getX() + 1.0F; - float dy = start.getY() - end.getY() + 1.0F; - float dz = start.getZ() - end.getZ() + 1.0F; - float f = Mth.sqrt(dx * dx + dz * dz); - float g = Mth.sqrt(dx * dx + dy * dy + dz * dz); - matrices.pushPose(); - matrices.translate(0.0D, 2.0D, 0.0D); - matrices.mulPose(Vector3f.YP.rotation((float)(-Math.atan2((double) dz, (double) dx)) - 1.5707964F)); - matrices.mulPose(Vector3f.XP.rotation((float)(-Math.atan2((double) f, (double) dy)) - 1.5707964F)); - VertexConsumer vertexConsumer = vertexConsumers.getBuffer(CRYSTAL_BEAM_LAYER); - float h = 0.0F - ((float) age + tickDelta) * 0.01F; - float i = Mth.sqrt(dx * dx + dy * dy + dz * dz) / 32.0F - ((float) age + tickDelta) * 0.01F; - float k = 0.0F; - float l = 0.75F; - float m = 0.0F; - PoseStack.Pose entry = matrices.last(); - Matrix4f matrix4f = entry.pose(); - Matrix3f matrix3f = entry.normal(); - - for(int n = 1; n <= 8; ++n) { - float o = Mth.sin((float) n * 6.2831855F / 8.0F) * 0.75F; - float p = Mth.cos((float) n * 6.2831855F / 8.0F) * 0.75F; - float q = (float) n / 8.0F; - vertexConsumer.vertex(matrix4f, k * 0.2F, l * 0.2F, 0.0F).color(0, 0, 0, 255).uv(m, h).overlayCoords(OverlayTexture.NO_OVERLAY).uv2(light).normal(matrix3f, 0.0F, -1.0F, 0.0F).endVertex(); - vertexConsumer.vertex(matrix4f, k, l, g).color(255, 255, 255, 255).uv(m, i).overlayCoords(OverlayTexture.NO_OVERLAY).uv2(light).normal(matrix3f, 0.0F, -1.0F, 0.0F).endVertex(); - vertexConsumer.vertex(matrix4f, o, p, g).color(255, 255, 255, 255).uv(q, i).overlayCoords(OverlayTexture.NO_OVERLAY).uv2(light).normal(matrix3f, 0.0F, -1.0F, 0.0F).endVertex(); - vertexConsumer.vertex(matrix4f, o * 0.2F, p * 0.2F, 0.0F).color(0, 0, 0, 255).uv(q, h).overlayCoords(OverlayTexture.NO_OVERLAY).uv2(light).normal(matrix3f, 0.0F, -1.0F, 0.0F).endVertex(); - k = o; - l = p; - m = q; - } - - matrices.popPose(); - } - - static { - END_CRYSTAL = RenderType.entityCutoutNoCull(CRYSTAL_TEXTURE); - CRYSTAL_BEAM_LAYER = RenderType.entitySmoothCutout(CRYSTAL_BEAM_TEXTURE); - SINE_45_DEGREES = (float) Math.sin(0.7853981633974483D); - FRAME = new ModelPart(64, 32, 0, 0); - FRAME.addBox(-4.0F, -4.0F, -4.0F, 8.0F, 8.0F, 8.0F); - CORE = new ModelPart(64, 32, 32, 0); - CORE.addBox(-4.0F, -4.0F, -4.0F, 8.0F, 8.0F, 8.0F); - } -} +package ru.betterend.client.render; + +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import com.mojang.math.Matrix3f; +import com.mojang.math.Matrix4f; +import com.mojang.math.Quaternion; +import com.mojang.math.Vector3f; + +import net.minecraft.client.model.geom.ModelPart; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.texture.OverlayTexture; +import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.Mth; + +public class EndCrystalRenderer { + private static final ResourceLocation CRYSTAL_TEXTURE = new ResourceLocation("textures/entity/end_crystal/end_crystal.png"); + private static final ResourceLocation CRYSTAL_BEAM_TEXTURE = new ResourceLocation("textures/entity/end_crystal/end_crystal_beam.png"); + private static final RenderType CRYSTAL_BEAM_LAYER; + private static final RenderType END_CRYSTAL; + private static final ModelPart CORE; + private static final ModelPart FRAME; + private static final int AGE_CYCLE = 240; + private static final float SINE_45_DEGREES; + + public static void render(int age, int maxAge, float tickDelta, PoseStack matrices, MultiBufferSource vertexConsumerProvider, int light) { + float k = (float) AGE_CYCLE / maxAge; + float rotation = (age * k + tickDelta) * 3.0F; + VertexConsumer vertexConsumer = vertexConsumerProvider.getBuffer(END_CRYSTAL); + matrices.pushPose(); + matrices.scale(0.8F, 0.8F, 0.8F); + matrices.translate(0.0D, -0.5D, 0.0D); + matrices.mulPose(Vector3f.YP.rotationDegrees(rotation)); + matrices.translate(0.0D, 0.8F, 0.0D); + matrices.mulPose(new Quaternion(new Vector3f(SINE_45_DEGREES, 0.0F, SINE_45_DEGREES), 60.0F, true)); + FRAME.render(matrices, vertexConsumer, light, OverlayTexture.NO_OVERLAY); + matrices.scale(0.875F, 0.875F, 0.875F); + matrices.mulPose(new Quaternion(new Vector3f(SINE_45_DEGREES, 0.0F, SINE_45_DEGREES), 60.0F, true)); + matrices.mulPose(Vector3f.YP.rotationDegrees(rotation)); + FRAME.render(matrices, vertexConsumer, light, OverlayTexture.NO_OVERLAY); + matrices.scale(0.875F, 0.875F, 0.875F); + matrices.mulPose(new Quaternion(new Vector3f(SINE_45_DEGREES, 0.0F, SINE_45_DEGREES), 60.0F, true)); + matrices.mulPose(Vector3f.YP.rotationDegrees(rotation)); + CORE.render(matrices, vertexConsumer, light, OverlayTexture.NO_OVERLAY); + matrices.popPose(); + } + + public static void renderBeam(BlockPos start, BlockPos end, float tickDelta, int age, PoseStack matrices, MultiBufferSource vertexConsumers, int light) { + float dx = start.getX() - end.getX() + 1.0F; + float dy = start.getY() - end.getY() + 1.0F; + float dz = start.getZ() - end.getZ() + 1.0F; + float f = Mth.sqrt(dx * dx + dz * dz); + float g = Mth.sqrt(dx * dx + dy * dy + dz * dz); + matrices.pushPose(); + matrices.translate(0.0D, 2.0D, 0.0D); + matrices.mulPose(Vector3f.YP.rotation((float)(-Math.atan2((double) dz, (double) dx)) - 1.5707964F)); + matrices.mulPose(Vector3f.XP.rotation((float)(-Math.atan2((double) f, (double) dy)) - 1.5707964F)); + VertexConsumer vertexConsumer = vertexConsumers.getBuffer(CRYSTAL_BEAM_LAYER); + float h = 0.0F - ((float) age + tickDelta) * 0.01F; + float i = Mth.sqrt(dx * dx + dy * dy + dz * dz) / 32.0F - ((float) age + tickDelta) * 0.01F; + float k = 0.0F; + float l = 0.75F; + float m = 0.0F; + PoseStack.Pose entry = matrices.last(); + Matrix4f matrix4f = entry.pose(); + Matrix3f matrix3f = entry.normal(); + + for(int n = 1; n <= 8; ++n) { + float o = Mth.sin((float) n * 6.2831855F / 8.0F) * 0.75F; + float p = Mth.cos((float) n * 6.2831855F / 8.0F) * 0.75F; + float q = (float) n / 8.0F; + vertexConsumer.vertex(matrix4f, k * 0.2F, l * 0.2F, 0.0F).color(0, 0, 0, 255).uv(m, h).overlayCoords(OverlayTexture.NO_OVERLAY).uv2(light).normal(matrix3f, 0.0F, -1.0F, 0.0F).endVertex(); + vertexConsumer.vertex(matrix4f, k, l, g).color(255, 255, 255, 255).uv(m, i).overlayCoords(OverlayTexture.NO_OVERLAY).uv2(light).normal(matrix3f, 0.0F, -1.0F, 0.0F).endVertex(); + vertexConsumer.vertex(matrix4f, o, p, g).color(255, 255, 255, 255).uv(q, i).overlayCoords(OverlayTexture.NO_OVERLAY).uv2(light).normal(matrix3f, 0.0F, -1.0F, 0.0F).endVertex(); + vertexConsumer.vertex(matrix4f, o * 0.2F, p * 0.2F, 0.0F).color(0, 0, 0, 255).uv(q, h).overlayCoords(OverlayTexture.NO_OVERLAY).uv2(light).normal(matrix3f, 0.0F, -1.0F, 0.0F).endVertex(); + k = o; + l = p; + m = q; + } + + matrices.popPose(); + } + + static { + END_CRYSTAL = RenderType.entityCutoutNoCull(CRYSTAL_TEXTURE); + CRYSTAL_BEAM_LAYER = RenderType.entitySmoothCutout(CRYSTAL_BEAM_TEXTURE); + SINE_45_DEGREES = (float) Math.sin(0.7853981633974483D); + FRAME = new ModelPart(64, 32, 0, 0); + FRAME.addBox(-4.0F, -4.0F, -4.0F, 8.0F, 8.0F, 8.0F); + CORE = new ModelPart(64, 32, 32, 0); + CORE.addBox(-4.0F, -4.0F, -4.0F, 8.0F, 8.0F, 8.0F); + } +} diff --git a/src/main/java/ru/betterend/client/render/EternalCrystalRenderer.java b/src/main/java/ru/betterend/client/render/EternalCrystalRenderer.java index a64ecc94..8df56267 100644 --- a/src/main/java/ru/betterend/client/render/EternalCrystalRenderer.java +++ b/src/main/java/ru/betterend/client/render/EternalCrystalRenderer.java @@ -1,69 +1,70 @@ -package ru.betterend.client.render; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexConsumer; -import com.mojang.math.Vector3f; -import net.minecraft.client.model.geom.ModelPart; -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.texture.OverlayTexture; -import net.minecraft.core.Vec3i; -import net.minecraft.util.Mth; -import ru.betterend.BetterEnd; -import ru.betterend.blocks.AuroraCrystalBlock; -import ru.betterend.util.ColorUtil; -import ru.betterend.util.MHelper; - -public class EternalCrystalRenderer { - private static final RenderType RENDER_LAYER; - private static final ModelPart[] SHARDS; - private static final ModelPart CORE; - - public static void render(int age, float tickDelta, PoseStack matrices, MultiBufferSource vertexConsumerProvider, int light) { - VertexConsumer vertexConsumer = vertexConsumerProvider.getBuffer(RENDER_LAYER); - float[] colors = colors(age); - float rotation = (age + tickDelta) / 25.0F + 6.0F; - matrices.pushPose(); - matrices.scale(0.6F, 0.6F, 0.6F); - matrices.mulPose(Vector3f.YP.rotation(rotation)); - CORE.render(matrices, vertexConsumer, light, OverlayTexture.NO_OVERLAY, colors[0], colors[1], colors[2], colors[3]); - - for (int i = 0; i < 4; i++) { - matrices.pushPose(); - float offset = Mth.sin(rotation * 2 + i) * 0.15F; - matrices.translate(0, offset, 0); - SHARDS[i].render(matrices, vertexConsumer, light, OverlayTexture.NO_OVERLAY, colors[0], colors[1], colors[2], colors[3]); - matrices.popPose(); - } - - matrices.popPose(); - } - - public static float[] colors(int age) { - double delta = age * 0.01; - int index = MHelper.floor(delta); - int index2 = (index + 1) & 3; - delta -= index; - index &= 3; - - Vec3i color1 = AuroraCrystalBlock.COLORS[index]; - Vec3i color2 = AuroraCrystalBlock.COLORS[index2]; - - int r = MHelper.floor(Mth.lerp(delta, color1.getX(), color2.getX())); - int g = MHelper.floor(Mth.lerp(delta, color1.getY(), color2.getY())); - int b = MHelper.floor(Mth.lerp(delta, color1.getZ(), color2.getZ())); - - return ColorUtil.toFloatArray(MHelper.color(r, g, b)); - } - - static { - RENDER_LAYER = RenderType.beaconBeam(BetterEnd.makeID("textures/entity/eternal_crystal.png"), true); - SHARDS = new ModelPart[4]; - SHARDS[0] = new ModelPart(16, 16, 2, 4).addBox(-5.0F, 1.0F, -3.0F, 2.0F, 8.0F, 2.0F); - SHARDS[1] = new ModelPart(16, 16, 2, 4).addBox(3.0F, -1.0F, -1.0F, 2.0F, 8.0F, 2.0F); - SHARDS[2] = new ModelPart(16, 16, 2, 4).addBox(-1.0F, 0.0F, -5.0F, 2.0F, 4.0F, 2.0F); - SHARDS[3] = new ModelPart(16, 16, 2, 4).addBox(0.0F, 3.0F, 4.0F, 2.0F, 6.0F, 2.0F); - CORE = new ModelPart(16, 16, 0, 0); - CORE.addBox(-2.0F, -2.0F, -2.0F, 4.0F, 12.0F, 4.0F); - } -} +package ru.betterend.client.render; + +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import com.mojang.math.Vector3f; + +import net.minecraft.client.model.geom.ModelPart; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.texture.OverlayTexture; +import net.minecraft.core.Vec3i; +import net.minecraft.util.Mth; +import ru.betterend.BetterEnd; +import ru.betterend.blocks.AuroraCrystalBlock; +import ru.betterend.util.ColorUtil; +import ru.betterend.util.MHelper; + +public class EternalCrystalRenderer { + private static final RenderType RENDER_LAYER; + private static final ModelPart[] SHARDS; + private static final ModelPart CORE; + + public static void render(int age, float tickDelta, PoseStack matrices, MultiBufferSource vertexConsumerProvider, int light) { + VertexConsumer vertexConsumer = vertexConsumerProvider.getBuffer(RENDER_LAYER); + float[] colors = colors(age); + float rotation = (age + tickDelta) / 25.0F + 6.0F; + matrices.pushPose(); + matrices.scale(0.6F, 0.6F, 0.6F); + matrices.mulPose(Vector3f.YP.rotation(rotation)); + CORE.render(matrices, vertexConsumer, light, OverlayTexture.NO_OVERLAY, colors[0], colors[1], colors[2], colors[3]); + + for (int i = 0; i < 4; i++) { + matrices.pushPose(); + float offset = Mth.sin(rotation * 2 + i) * 0.15F; + matrices.translate(0, offset, 0); + SHARDS[i].render(matrices, vertexConsumer, light, OverlayTexture.NO_OVERLAY, colors[0], colors[1], colors[2], colors[3]); + matrices.popPose(); + } + + matrices.popPose(); + } + + public static float[] colors(int age) { + double delta = age * 0.01; + int index = MHelper.floor(delta); + int index2 = (index + 1) & 3; + delta -= index; + index &= 3; + + Vec3i color1 = AuroraCrystalBlock.COLORS[index]; + Vec3i color2 = AuroraCrystalBlock.COLORS[index2]; + + int r = MHelper.floor(Mth.lerp(delta, color1.getX(), color2.getX())); + int g = MHelper.floor(Mth.lerp(delta, color1.getY(), color2.getY())); + int b = MHelper.floor(Mth.lerp(delta, color1.getZ(), color2.getZ())); + + return ColorUtil.toFloatArray(MHelper.color(r, g, b)); + } + + static { + RENDER_LAYER = RenderType.beaconBeam(BetterEnd.makeID("textures/entity/eternal_crystal.png"), true); + SHARDS = new ModelPart[4]; + SHARDS[0] = new ModelPart(16, 16, 2, 4).addBox(-5.0F, 1.0F, -3.0F, 2.0F, 8.0F, 2.0F); + SHARDS[1] = new ModelPart(16, 16, 2, 4).addBox(3.0F, -1.0F, -1.0F, 2.0F, 8.0F, 2.0F); + SHARDS[2] = new ModelPart(16, 16, 2, 4).addBox(-1.0F, 0.0F, -5.0F, 2.0F, 4.0F, 2.0F); + SHARDS[3] = new ModelPart(16, 16, 2, 4).addBox(0.0F, 3.0F, 4.0F, 2.0F, 6.0F, 2.0F); + CORE = new ModelPart(16, 16, 0, 0); + CORE.addBox(-2.0F, -2.0F, -2.0F, 4.0F, 12.0F, 4.0F); + } +} diff --git a/src/main/java/ru/betterend/config/ConfigKeeper.java b/src/main/java/ru/betterend/config/ConfigKeeper.java index b98c942e..ffd6ee5b 100644 --- a/src/main/java/ru/betterend/config/ConfigKeeper.java +++ b/src/main/java/ru/betterend/config/ConfigKeeper.java @@ -4,13 +4,15 @@ import java.lang.reflect.Type; import java.util.Map; import java.util.function.Consumer; import java.util.function.Supplier; -import net.minecraft.util.GsonHelper; + import org.jetbrains.annotations.Nullable; import com.google.common.collect.Maps; import com.google.common.reflect.TypeToken; import com.google.gson.JsonElement; import com.google.gson.JsonObject; + +import net.minecraft.util.GsonHelper; import ru.betterend.util.JsonFactory; public final class ConfigKeeper { diff --git a/src/main/java/ru/betterend/config/IdConfig.java b/src/main/java/ru/betterend/config/IdConfig.java index e6e84f7f..9bef635e 100644 --- a/src/main/java/ru/betterend/config/IdConfig.java +++ b/src/main/java/ru/betterend/config/IdConfig.java @@ -1,91 +1,93 @@ -package ru.betterend.config; - -import java.util.function.BiFunction; -import net.minecraft.resources.ResourceLocation; -import org.jetbrains.annotations.Nullable; -import ru.betterend.config.ConfigKeeper.Entry; -import ru.betterend.config.ConfigKeeper.FloatRange; -import ru.betterend.config.ConfigKeeper.IntegerRange; - -public class IdConfig extends Config { - - protected final BiFunction keyFactory; - - public IdConfig(String group, BiFunction keyFactory) { - super(group); - this.keyFactory = keyFactory; - } - - @Override - protected void registerEntries() {} - - protected ConfigKey createKey(ResourceLocation id, String key) { - return this.keyFactory.apply(id, key); - } - - @Nullable - public > E getEntry(ResourceLocation id, String key, Class type) { - return this.getEntry(createKey(id, key), type); - } - - @Nullable - public > T getDefault(ResourceLocation id, String key, Class type) { - return this.getDefault(createKey(id, key), type); - } - - public String getString(ResourceLocation id, String key, String defaultValue) { - return this.getString(createKey(id, key), defaultValue); - } - - public String getString(ResourceLocation id, String key) { - return this.getString(createKey(id, key)); - } - - public boolean setString(ResourceLocation id, String key, String value) { - return this.setString(createKey(id, key), value); - } - - public int getInt(ResourceLocation id, String key, int defaultValue) { - return this.getInt(createKey(id, key), defaultValue); - } - - public int getInt(ResourceLocation id, String key) { - return this.getInt(createKey(id, key)); - } - - public boolean setInt(ResourceLocation id, String key, int value) { - return this.setInt(createKey(id, key), value); - } - - public boolean setRangedInt(ResourceLocation id, String key, int value) { - return this.setRanged(createKey(id, key), value, IntegerRange.class); - } - - public boolean setRangedFloat(ResourceLocation id, String key, float value) { - return this.setRanged(createKey(id, key), value, FloatRange.class); - } - - public float getFloat(ResourceLocation id, String key, float defaultValue) { - return this.getFloat(createKey(id, key), defaultValue); - } - - public float getFloat(ResourceLocation id, String key) { - return this.getFloat(createKey(id, key)); - } - - public boolean setFloat(ResourceLocation id, String key, float value) { - return this.setFloat(createKey(id, key), value); - } - - public boolean getBoolean(ResourceLocation id, String key, boolean defaultValue) { - return this.getBoolean(createKey(id, key), defaultValue); - } - - public boolean getBoolean(ResourceLocation id, String key) { - return this.getBoolean(createKey(id, key)); - } - - public boolean setBoolean(ResourceLocation id, String key, boolean value) { - return this.setBoolean(createKey(id, key), value); - } -} +package ru.betterend.config; + +import java.util.function.BiFunction; + +import org.jetbrains.annotations.Nullable; + +import net.minecraft.resources.ResourceLocation; +import ru.betterend.config.ConfigKeeper.Entry; +import ru.betterend.config.ConfigKeeper.FloatRange; +import ru.betterend.config.ConfigKeeper.IntegerRange; + +public class IdConfig extends Config { + + protected final BiFunction keyFactory; + + public IdConfig(String group, BiFunction keyFactory) { + super(group); + this.keyFactory = keyFactory; + } + + @Override + protected void registerEntries() {} + + protected ConfigKey createKey(ResourceLocation id, String key) { + return this.keyFactory.apply(id, key); + } + + @Nullable + public > E getEntry(ResourceLocation id, String key, Class type) { + return this.getEntry(createKey(id, key), type); + } + + @Nullable + public > T getDefault(ResourceLocation id, String key, Class type) { + return this.getDefault(createKey(id, key), type); + } + + public String getString(ResourceLocation id, String key, String defaultValue) { + return this.getString(createKey(id, key), defaultValue); + } + + public String getString(ResourceLocation id, String key) { + return this.getString(createKey(id, key)); + } + + public boolean setString(ResourceLocation id, String key, String value) { + return this.setString(createKey(id, key), value); + } + + public int getInt(ResourceLocation id, String key, int defaultValue) { + return this.getInt(createKey(id, key), defaultValue); + } + + public int getInt(ResourceLocation id, String key) { + return this.getInt(createKey(id, key)); + } + + public boolean setInt(ResourceLocation id, String key, int value) { + return this.setInt(createKey(id, key), value); + } + + public boolean setRangedInt(ResourceLocation id, String key, int value) { + return this.setRanged(createKey(id, key), value, IntegerRange.class); + } + + public boolean setRangedFloat(ResourceLocation id, String key, float value) { + return this.setRanged(createKey(id, key), value, FloatRange.class); + } + + public float getFloat(ResourceLocation id, String key, float defaultValue) { + return this.getFloat(createKey(id, key), defaultValue); + } + + public float getFloat(ResourceLocation id, String key) { + return this.getFloat(createKey(id, key)); + } + + public boolean setFloat(ResourceLocation id, String key, float value) { + return this.setFloat(createKey(id, key), value); + } + + public boolean getBoolean(ResourceLocation id, String key, boolean defaultValue) { + return this.getBoolean(createKey(id, key), defaultValue); + } + + public boolean getBoolean(ResourceLocation id, String key) { + return this.getBoolean(createKey(id, key)); + } + + public boolean setBoolean(ResourceLocation id, String key, boolean value) { + return this.setBoolean(createKey(id, key), value); + } +} diff --git a/src/main/java/ru/betterend/entity/CubozoaEntity.java b/src/main/java/ru/betterend/entity/CubozoaEntity.java index 067e9226..3d45e55f 100644 --- a/src/main/java/ru/betterend/entity/CubozoaEntity.java +++ b/src/main/java/ru/betterend/entity/CubozoaEntity.java @@ -2,6 +2,7 @@ package ru.betterend.entity; import java.util.List; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.protocol.game.ClientboundGameEventPacket; @@ -30,7 +31,6 @@ import net.minecraft.world.entity.animal.AbstractSchoolingFish; import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.ServerLevelAccessor; import net.minecraft.world.phys.AABB; @@ -49,7 +49,13 @@ public class CubozoaEntity extends AbstractSchoolingFish { @Override public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, SpawnGroupData entityData, CompoundTag entityTag) { SpawnGroupData data = super.finalizeSpawn(world, difficulty, spawnReason, entityData, entityTag); - if (EndBiomes.getFromBiome(world.getBiome(blockPosition())) == EndBiomes.SULPHUR_SPRINGS) { + if (entityTag != null) { + if (entityTag.contains("variant")) + this.entityData.set(VARIANT, entityTag.getByte("variant")); + if (entityTag.contains("scale")) + this.entityData.set(SCALE, entityTag.getByte("scale")); + } + else if (EndBiomes.getFromBiome(world.getBiome(blockPosition())) == EndBiomes.SULPHUR_SPRINGS) { this.entityData.set(VARIANT, (byte) 1); } this.refreshDimensions(); @@ -67,7 +73,7 @@ public class CubozoaEntity extends AbstractSchoolingFish { public void addAdditionalSaveData(CompoundTag tag) { super.addAdditionalSaveData(tag); tag.putByte("Variant", (byte) getVariant()); - tag.putByte("Scale", (byte) getScale()); + tag.putByte("Scale", getByteScale()); } @Override @@ -80,6 +86,15 @@ public class CubozoaEntity extends AbstractSchoolingFish { this.entityData.set(SCALE, tag.getByte("Scale")); } } + + @Override + protected ItemStack getBucketItemStack() { + ItemStack bucket = EndItems.BUCKET_CUBOZOA.getDefaultInstance(); + CompoundTag tag = bucket.getOrCreateTag(); + tag.putByte("variant", entityData.get(VARIANT)); + tag.putByte("scale", entityData.get(SCALE)); + return bucket; + } public static AttributeSupplier.Builder createMobAttributes() { return LivingEntity.createLivingAttributes() @@ -91,9 +106,13 @@ public class CubozoaEntity extends AbstractSchoolingFish { public int getVariant() { return (int) this.entityData.get(VARIANT); } + + public byte getByteScale() { + return this.entityData.get(SCALE); + } public float getScale() { - return this.entityData.get(SCALE) / 32F + 0.75F; + return getByteScale() / 32F + 0.75F; } public static boolean canSpawn(EntityType type, ServerLevelAccessor world, MobSpawnType spawnReason, BlockPos pos, Random random) { @@ -117,11 +136,6 @@ public class CubozoaEntity extends AbstractSchoolingFish { } } - @Override - protected ItemStack getBucketItemStack() { - return new ItemStack(Items.WATER_BUCKET); - } - @Override protected SoundEvent getFlopSound() { return SoundEvents.SALMON_FLOP; diff --git a/src/main/java/ru/betterend/entity/DragonflyEntity.java b/src/main/java/ru/betterend/entity/DragonflyEntity.java index a105912e..ff66b062 100644 --- a/src/main/java/ru/betterend/entity/DragonflyEntity.java +++ b/src/main/java/ru/betterend/entity/DragonflyEntity.java @@ -2,6 +2,7 @@ package ru.betterend.entity; import java.util.EnumSet; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerLevel; import net.minecraft.sounds.SoundEvent; @@ -31,8 +32,6 @@ import net.minecraft.world.level.levelgen.Heightmap.Types; import net.minecraft.world.level.pathfinder.BlockPathTypes; import net.minecraft.world.level.pathfinder.Path; import net.minecraft.world.phys.Vec3; -import ru.betterend.entity.DragonflyEntity.DragonflyLookControl; -import ru.betterend.entity.DragonflyEntity.WanderAroundGoal; import ru.betterend.registry.EndEntities; import ru.betterend.registry.EndSounds; import ru.betterend.util.BlocksHelper; diff --git a/src/main/java/ru/betterend/entity/EndFishEntity.java b/src/main/java/ru/betterend/entity/EndFishEntity.java index a37d3854..9d3a170d 100644 --- a/src/main/java/ru/betterend/entity/EndFishEntity.java +++ b/src/main/java/ru/betterend/entity/EndFishEntity.java @@ -2,6 +2,7 @@ package ru.betterend.entity; import java.util.List; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.nbt.CompoundTag; @@ -42,7 +43,13 @@ public class EndFishEntity extends AbstractSchoolingFish { @Override public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, SpawnGroupData entityData, CompoundTag entityTag) { SpawnGroupData data = super.finalizeSpawn(world, difficulty, spawnReason, entityData, entityTag); - if (EndBiomes.getFromBiome(world.getBiome(blockPosition())) == EndBiomes.SULPHUR_SPRINGS) { + if (entityTag != null) { + if (entityTag.contains("variant")) + this.entityData.set(VARIANT, entityTag.getByte("variant")); + if (entityTag.contains("scale")) + this.entityData.set(SCALE, entityTag.getByte("scale")); + } + else if (EndBiomes.getFromBiome(world.getBiome(blockPosition())) == EndBiomes.SULPHUR_SPRINGS) { this.entityData.set(VARIANT, (byte) (random.nextInt(VARIANTS_SULPHUR) + VARIANTS_NORMAL)); } this.refreshDimensions(); @@ -60,7 +67,7 @@ public class EndFishEntity extends AbstractSchoolingFish { public void addAdditionalSaveData(CompoundTag tag) { super.addAdditionalSaveData(tag); tag.putByte("Variant", (byte) getVariant()); - tag.putByte("Scale", (byte) getScale()); + tag.putByte("Scale", getByteScale()); } @Override @@ -76,7 +83,11 @@ public class EndFishEntity extends AbstractSchoolingFish { @Override protected ItemStack getBucketItemStack() { - return new ItemStack(EndItems.BUCKET_END_FISH); + ItemStack bucket = EndItems.BUCKET_END_FISH.getDefaultInstance(); + CompoundTag tag = bucket.getOrCreateTag(); + tag.putByte("variant", entityData.get(VARIANT)); + tag.putByte("scale", entityData.get(SCALE)); + return bucket; } @Override @@ -121,8 +132,12 @@ public class EndFishEntity extends AbstractSchoolingFish { return (int) this.entityData.get(VARIANT); } + public byte getByteScale() { + return this.entityData.get(SCALE); + } + public float getScale() { - return this.entityData.get(SCALE) / 32F + 0.75F; + return getByteScale() / 32F + 0.75F; } public static boolean canSpawn(EntityType type, ServerLevelAccessor world, MobSpawnType spawnReason, BlockPos pos, Random random) { diff --git a/src/main/java/ru/betterend/entity/EndSlimeEntity.java b/src/main/java/ru/betterend/entity/EndSlimeEntity.java index bf1a8227..beaea327 100644 --- a/src/main/java/ru/betterend/entity/EndSlimeEntity.java +++ b/src/main/java/ru/betterend/entity/EndSlimeEntity.java @@ -3,6 +3,7 @@ package ru.betterend.entity; import java.util.EnumSet; import java.util.List; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.particles.ParticleOptions; @@ -37,11 +38,6 @@ import net.minecraft.world.level.ServerLevelAccessor; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.phys.AABB; -import ru.betterend.entity.EndSlimeEntity.EndSlimeMoveControl; -import ru.betterend.entity.EndSlimeEntity.FaceTowardTargetGoal; -import ru.betterend.entity.EndSlimeEntity.MoveGoal; -import ru.betterend.entity.EndSlimeEntity.RandomLookGoal; -import ru.betterend.entity.EndSlimeEntity.SwimmingGoal; import ru.betterend.interfaces.ISlime; import ru.betterend.registry.EndBiomes; import ru.betterend.util.BlocksHelper; diff --git a/src/main/java/ru/betterend/entity/ShadowWalkerEntity.java b/src/main/java/ru/betterend/entity/ShadowWalkerEntity.java index 9e466de1..8f209b7a 100644 --- a/src/main/java/ru/betterend/entity/ShadowWalkerEntity.java +++ b/src/main/java/ru/betterend/entity/ShadowWalkerEntity.java @@ -2,6 +2,7 @@ package ru.betterend.entity; import java.util.List; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.sounds.SoundEvent; diff --git a/src/main/java/ru/betterend/entity/SilkMothEntity.java b/src/main/java/ru/betterend/entity/SilkMothEntity.java index a88a78e8..edd20af3 100644 --- a/src/main/java/ru/betterend/entity/SilkMothEntity.java +++ b/src/main/java/ru/betterend/entity/SilkMothEntity.java @@ -5,6 +5,7 @@ import java.util.List; import java.util.Random; import org.jetbrains.annotations.Nullable; + import net.minecraft.core.BlockPos; import net.minecraft.core.Registry; import net.minecraft.nbt.CompoundTag; @@ -46,9 +47,6 @@ import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; import ru.betterend.BetterEnd; import ru.betterend.blocks.BlockProperties; -import ru.betterend.entity.SilkMothEntity.MothLookControl; -import ru.betterend.entity.SilkMothEntity.ReturnToHiveGoal; -import ru.betterend.entity.SilkMothEntity.WanderAroundGoal; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndEntities; import ru.betterend.registry.EndItems; diff --git a/src/main/java/ru/betterend/entity/model/BlockBenchModel.java b/src/main/java/ru/betterend/entity/model/BlockBenchModel.java index de949560..cb0758ad 100644 --- a/src/main/java/ru/betterend/entity/model/BlockBenchModel.java +++ b/src/main/java/ru/betterend/entity/model/BlockBenchModel.java @@ -1,6 +1,7 @@ package ru.betterend.entity.model; import java.util.function.Function; + import net.minecraft.client.model.EntityModel; import net.minecraft.client.model.geom.ModelPart; import net.minecraft.client.renderer.RenderType; diff --git a/src/main/java/ru/betterend/entity/model/CubozoaEntityModel.java b/src/main/java/ru/betterend/entity/model/CubozoaEntityModel.java index 68d9021b..91f0abda 100644 --- a/src/main/java/ru/betterend/entity/model/CubozoaEntityModel.java +++ b/src/main/java/ru/betterend/entity/model/CubozoaEntityModel.java @@ -2,6 +2,7 @@ package ru.betterend.entity.model; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; + import net.minecraft.client.model.geom.ModelPart; import net.minecraft.client.renderer.RenderType; import net.minecraft.util.Mth; diff --git a/src/main/java/ru/betterend/entity/model/DragonflyEntityModel.java b/src/main/java/ru/betterend/entity/model/DragonflyEntityModel.java index 08b04474..88162bc2 100644 --- a/src/main/java/ru/betterend/entity/model/DragonflyEntityModel.java +++ b/src/main/java/ru/betterend/entity/model/DragonflyEntityModel.java @@ -2,6 +2,7 @@ package ru.betterend.entity.model; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; + import net.minecraft.client.model.geom.ModelPart; import net.minecraft.client.renderer.RenderType; import ru.betterend.entity.DragonflyEntity; diff --git a/src/main/java/ru/betterend/entity/model/EndFishEntityModel.java b/src/main/java/ru/betterend/entity/model/EndFishEntityModel.java index 20357336..ebfe8f7b 100644 --- a/src/main/java/ru/betterend/entity/model/EndFishEntityModel.java +++ b/src/main/java/ru/betterend/entity/model/EndFishEntityModel.java @@ -2,6 +2,7 @@ package ru.betterend.entity.model; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; + import net.minecraft.client.model.geom.ModelPart; import net.minecraft.client.renderer.RenderType; import ru.betterend.entity.EndFishEntity; diff --git a/src/main/java/ru/betterend/entity/model/EndSlimeEntityModel.java b/src/main/java/ru/betterend/entity/model/EndSlimeEntityModel.java index 2f07e710..bd5b7d52 100644 --- a/src/main/java/ru/betterend/entity/model/EndSlimeEntityModel.java +++ b/src/main/java/ru/betterend/entity/model/EndSlimeEntityModel.java @@ -3,6 +3,7 @@ package ru.betterend.entity.model; import com.google.common.collect.ImmutableList; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; + import net.minecraft.client.model.ListModel; import net.minecraft.client.model.geom.ModelPart; import net.minecraft.client.renderer.RenderType; diff --git a/src/main/java/ru/betterend/entity/model/SilkMothEntityModel.java b/src/main/java/ru/betterend/entity/model/SilkMothEntityModel.java index 55766a70..5d21fafe 100644 --- a/src/main/java/ru/betterend/entity/model/SilkMothEntityModel.java +++ b/src/main/java/ru/betterend/entity/model/SilkMothEntityModel.java @@ -2,6 +2,7 @@ package ru.betterend.entity.model; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; + import net.minecraft.client.model.geom.ModelPart; import net.minecraft.client.renderer.RenderType; import net.minecraft.util.Mth; diff --git a/src/main/java/ru/betterend/entity/render/RendererEntityCubozoa.java b/src/main/java/ru/betterend/entity/render/RendererEntityCubozoa.java index 0e23ffed..5b6b78fe 100644 --- a/src/main/java/ru/betterend/entity/render/RendererEntityCubozoa.java +++ b/src/main/java/ru/betterend/entity/render/RendererEntityCubozoa.java @@ -2,6 +2,7 @@ package ru.betterend.entity.render; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; + import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.entity.EntityRenderDispatcher; diff --git a/src/main/java/ru/betterend/entity/render/RendererEntityEndFish.java b/src/main/java/ru/betterend/entity/render/RendererEntityEndFish.java index e37fe63d..fce70f61 100644 --- a/src/main/java/ru/betterend/entity/render/RendererEntityEndFish.java +++ b/src/main/java/ru/betterend/entity/render/RendererEntityEndFish.java @@ -2,6 +2,7 @@ package ru.betterend.entity.render; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; + import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.entity.EntityRenderDispatcher; diff --git a/src/main/java/ru/betterend/entity/render/RendererEntityEndSlime.java b/src/main/java/ru/betterend/entity/render/RendererEntityEndSlime.java index fa3de633..3fad8fc1 100644 --- a/src/main/java/ru/betterend/entity/render/RendererEntityEndSlime.java +++ b/src/main/java/ru/betterend/entity/render/RendererEntityEndSlime.java @@ -2,6 +2,7 @@ package ru.betterend.entity.render; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; + import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.entity.EntityRenderDispatcher; diff --git a/src/main/java/ru/betterend/integration/FlamboyantRefabricatedIntegration.java b/src/main/java/ru/betterend/integration/FlamboyantRefabricatedIntegration.java index d5f6e224..ec830f43 100644 --- a/src/main/java/ru/betterend/integration/FlamboyantRefabricatedIntegration.java +++ b/src/main/java/ru/betterend/integration/FlamboyantRefabricatedIntegration.java @@ -2,8 +2,10 @@ package ru.betterend.integration; import java.awt.Color; import java.util.Map; -import net.minecraft.world.level.ItemLike; + import com.google.common.collect.Maps; + +import net.minecraft.world.level.ItemLike; import ru.betterend.blocks.HydraluxPetalColoredBlock; import ru.betterend.blocks.complex.ColoredMaterial; import ru.betterend.registry.EndBlocks; diff --git a/src/main/java/ru/betterend/integration/byg/BYGIntegration.java b/src/main/java/ru/betterend/integration/byg/BYGIntegration.java index 4e18f028..64a805d7 100644 --- a/src/main/java/ru/betterend/integration/byg/BYGIntegration.java +++ b/src/main/java/ru/betterend/integration/byg/BYGIntegration.java @@ -2,6 +2,7 @@ package ru.betterend.integration.byg; import java.util.List; import java.util.stream.Collectors; + import net.minecraft.data.BuiltinRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.ai.behavior.WeightedList; diff --git a/src/main/java/ru/betterend/integration/byg/biomes/EterialGrove.java b/src/main/java/ru/betterend/integration/byg/biomes/EterialGrove.java index 42442df7..58c69b13 100644 --- a/src/main/java/ru/betterend/integration/byg/biomes/EterialGrove.java +++ b/src/main/java/ru/betterend/integration/byg/biomes/EterialGrove.java @@ -1,6 +1,7 @@ package ru.betterend.integration.byg.biomes; import java.util.List; + import net.minecraft.sounds.SoundEvent; import net.minecraft.world.entity.MobCategory; import net.minecraft.world.level.biome.Biome; diff --git a/src/main/java/ru/betterend/integration/byg/biomes/NightshadeRedwoods.java b/src/main/java/ru/betterend/integration/byg/biomes/NightshadeRedwoods.java index 69122484..d373af5e 100644 --- a/src/main/java/ru/betterend/integration/byg/biomes/NightshadeRedwoods.java +++ b/src/main/java/ru/betterend/integration/byg/biomes/NightshadeRedwoods.java @@ -1,6 +1,7 @@ package ru.betterend.integration.byg.biomes; import java.util.List; + import net.minecraft.core.particles.ParticleTypes; import net.minecraft.sounds.SoundEvent; import net.minecraft.world.entity.MobCategory; diff --git a/src/main/java/ru/betterend/integration/byg/biomes/OldBulbisGardens.java b/src/main/java/ru/betterend/integration/byg/biomes/OldBulbisGardens.java index 469c6609..d1aeb582 100644 --- a/src/main/java/ru/betterend/integration/byg/biomes/OldBulbisGardens.java +++ b/src/main/java/ru/betterend/integration/byg/biomes/OldBulbisGardens.java @@ -2,6 +2,7 @@ package ru.betterend.integration.byg.biomes; import java.util.List; import java.util.function.Supplier; + import net.minecraft.core.Registry; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.data.BuiltinRegistries; diff --git a/src/main/java/ru/betterend/integration/byg/features/BigEtherTreeFeature.java b/src/main/java/ru/betterend/integration/byg/features/BigEtherTreeFeature.java index ee76db67..19b254e4 100644 --- a/src/main/java/ru/betterend/integration/byg/features/BigEtherTreeFeature.java +++ b/src/main/java/ru/betterend/integration/byg/features/BigEtherTreeFeature.java @@ -2,14 +2,16 @@ package ru.betterend.integration.byg.features; import java.util.List; import java.util.Random; + +import com.google.common.base.Function; +import com.mojang.math.Vector3f; + import net.minecraft.core.BlockPos; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; -import com.google.common.base.Function; -import com.mojang.math.Vector3f; import ru.betterend.integration.Integrations; import ru.betterend.registry.EndTags; import ru.betterend.util.MHelper; diff --git a/src/main/java/ru/betterend/integration/byg/features/GreatNightshadeTreeFeature.java b/src/main/java/ru/betterend/integration/byg/features/GreatNightshadeTreeFeature.java index fc0b8bf4..12a3554e 100644 --- a/src/main/java/ru/betterend/integration/byg/features/GreatNightshadeTreeFeature.java +++ b/src/main/java/ru/betterend/integration/byg/features/GreatNightshadeTreeFeature.java @@ -2,6 +2,11 @@ package ru.betterend.integration.byg.features; import java.util.List; import java.util.Random; + +import com.google.common.base.Function; +import com.google.common.collect.Lists; +import com.mojang.math.Vector3f; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; @@ -12,9 +17,6 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; -import com.google.common.base.Function; -import com.google.common.collect.Lists; -import com.mojang.math.Vector3f; import ru.betterend.integration.Integrations; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; diff --git a/src/main/java/ru/betterend/integration/byg/features/NightshadeRedwoodTreeFeature.java b/src/main/java/ru/betterend/integration/byg/features/NightshadeRedwoodTreeFeature.java index f4e03327..72f35a9a 100644 --- a/src/main/java/ru/betterend/integration/byg/features/NightshadeRedwoodTreeFeature.java +++ b/src/main/java/ru/betterend/integration/byg/features/NightshadeRedwoodTreeFeature.java @@ -2,6 +2,11 @@ package ru.betterend.integration.byg.features; import java.util.List; import java.util.Random; + +import com.google.common.base.Function; +import com.google.common.collect.Lists; +import com.mojang.math.Vector3f; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; @@ -12,9 +17,6 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; -import com.google.common.base.Function; -import com.google.common.collect.Lists; -import com.mojang.math.Vector3f; import ru.betterend.integration.Integrations; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; diff --git a/src/main/java/ru/betterend/integration/byg/features/OldBulbisTreeFeature.java b/src/main/java/ru/betterend/integration/byg/features/OldBulbisTreeFeature.java index e7ed034a..479f1162 100644 --- a/src/main/java/ru/betterend/integration/byg/features/OldBulbisTreeFeature.java +++ b/src/main/java/ru/betterend/integration/byg/features/OldBulbisTreeFeature.java @@ -3,6 +3,10 @@ package ru.betterend.integration.byg.features; import java.util.List; import java.util.Random; import java.util.function.Function; + +import com.google.common.collect.Lists; +import com.mojang.math.Vector3f; + import net.minecraft.core.BlockPos; import net.minecraft.util.Mth; import net.minecraft.world.level.WorldGenLevel; @@ -12,8 +16,6 @@ import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; import net.minecraft.world.phys.AABB; -import com.google.common.collect.Lists; -import com.mojang.math.Vector3f; import ru.betterend.integration.Integrations; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndTags; diff --git a/src/main/java/ru/betterend/integration/rei/REIAlloyingCategory.java b/src/main/java/ru/betterend/integration/rei/REIAlloyingCategory.java index 285f0be4..507cfc15 100644 --- a/src/main/java/ru/betterend/integration/rei/REIAlloyingCategory.java +++ b/src/main/java/ru/betterend/integration/rei/REIAlloyingCategory.java @@ -1,88 +1,89 @@ -package ru.betterend.integration.rei; - -import java.text.DecimalFormat; -import java.util.List; - -import org.jetbrains.annotations.NotNull; - -import com.google.common.collect.Lists; -import com.mojang.blaze3d.vertex.PoseStack; -import it.unimi.dsi.fastutil.ints.IntList; -import me.shedaniel.math.Point; -import me.shedaniel.math.Rectangle; -import me.shedaniel.rei.api.EntryStack; -import me.shedaniel.rei.api.TransferRecipeCategory; -import me.shedaniel.rei.api.widgets.Widgets; -import me.shedaniel.rei.gui.entries.RecipeEntry; -import me.shedaniel.rei.gui.entries.SimpleRecipeEntry; -import me.shedaniel.rei.gui.widget.Widget; -import net.minecraft.client.gui.GuiComponent; -import net.minecraft.network.chat.TranslatableComponent; -import net.minecraft.resources.ResourceLocation; -import ru.betterend.recipe.builders.AlloyingRecipe; -import ru.betterend.registry.EndBlocks; -import ru.betterend.util.LangUtil; - -public class REIAlloyingCategory implements TransferRecipeCategory { - - @Override - public @NotNull ResourceLocation getIdentifier() { - return AlloyingRecipe.ID; - } - - @Override - public @NotNull String getCategoryName() { - return LangUtil.translate(EndBlocks.END_STONE_SMELTER.getDescriptionId()); - } - - @Override - public @NotNull EntryStack getLogo() { - return REIPlugin.END_STONE_SMELTER; - } - - @Override - public @NotNull List setupDisplay(REIAlloyingDisplay display, Rectangle bounds) { - Point startPoint = new Point(bounds.getCenterX() - 41, bounds.y + 10); - double smeltTime = display.getSmeltTime(); - DecimalFormat df = new DecimalFormat("###.##"); - List widgets = Lists.newArrayList(); - widgets.add(Widgets.createRecipeBase(bounds)); - widgets.add(Widgets.createResultSlotBackground(new Point(startPoint.x + 61, startPoint.y + 9))); - widgets.add(Widgets.createBurningFire(new Point(startPoint.x - 9, startPoint.y + 20)).animationDurationMS(10000)); - widgets.add(Widgets.createLabel(new Point(bounds.x + bounds.width - 5, bounds.y + 5), - new TranslatableComponent("category.rei.cooking.time&xp", df.format(display.getXp()), df.format(smeltTime / 20D))).noShadow().rightAligned().color(0xFF404040, 0xFFBBBBBB)); - widgets.add(Widgets.createArrow(new Point(startPoint.x + 24, startPoint.y + 8)).animationDurationTicks(smeltTime)); - List> inputEntries = display.getInputEntries(); - widgets.add(Widgets.createSlot(new Point(startPoint.x - 20, startPoint.y + 1)).entries(inputEntries.get(0)).markInput()); - if (inputEntries.size() > 1) { - widgets.add(Widgets.createSlot(new Point(startPoint.x + 1, startPoint.y + 1)).entries(inputEntries.get(1)).markInput()); - } else { - widgets.add(Widgets.createSlot(new Point(startPoint.x + 1, startPoint.y + 1)).entries(Lists.newArrayList()).markInput()); - } - widgets.add(Widgets.createSlot(new Point(startPoint.x + 61, startPoint.y + 9)).entries(display.getResultingEntries().get(0)).disableBackground().markOutput()); - return widgets; - } - - @Override - public void renderRedSlots(PoseStack matrices, List widgets, Rectangle bounds, REIAlloyingDisplay display, - IntList redSlots) { - Point startPoint = new Point(bounds.getCenterX() - 41, bounds.getCenterY() - 27); - matrices.pushPose(); - matrices.translate(0, 0, 400); - if (redSlots.contains(0)) { - GuiComponent.fill(matrices, startPoint.x - 20, startPoint.y + 1, startPoint.x - 20 + 16, startPoint.y + 1 + 16, 1090453504); - GuiComponent.fill(matrices, startPoint.x + 1, startPoint.y + 1, startPoint.x + 1 + 16, startPoint.y + 1 + 16, 1090453504); - } - matrices.popPose(); - } - - @Override - public @NotNull RecipeEntry getSimpleRenderer(REIAlloyingDisplay recipe) { - return SimpleRecipeEntry.from(recipe.getInputEntries(), recipe.getResultingEntries()); - } - - @Override - public int getDisplayHeight() { - return 49; - } -} +package ru.betterend.integration.rei; + +import java.text.DecimalFormat; +import java.util.List; + +import org.jetbrains.annotations.NotNull; + +import com.google.common.collect.Lists; +import com.mojang.blaze3d.vertex.PoseStack; + +import it.unimi.dsi.fastutil.ints.IntList; +import me.shedaniel.math.Point; +import me.shedaniel.math.Rectangle; +import me.shedaniel.rei.api.EntryStack; +import me.shedaniel.rei.api.TransferRecipeCategory; +import me.shedaniel.rei.api.widgets.Widgets; +import me.shedaniel.rei.gui.entries.RecipeEntry; +import me.shedaniel.rei.gui.entries.SimpleRecipeEntry; +import me.shedaniel.rei.gui.widget.Widget; +import net.minecraft.client.gui.GuiComponent; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.resources.ResourceLocation; +import ru.betterend.recipe.builders.AlloyingRecipe; +import ru.betterend.registry.EndBlocks; +import ru.betterend.util.LangUtil; + +public class REIAlloyingCategory implements TransferRecipeCategory { + + @Override + public @NotNull ResourceLocation getIdentifier() { + return AlloyingRecipe.ID; + } + + @Override + public @NotNull String getCategoryName() { + return LangUtil.translate(EndBlocks.END_STONE_SMELTER.getDescriptionId()); + } + + @Override + public @NotNull EntryStack getLogo() { + return REIPlugin.END_STONE_SMELTER; + } + + @Override + public @NotNull List setupDisplay(REIAlloyingDisplay display, Rectangle bounds) { + Point startPoint = new Point(bounds.getCenterX() - 41, bounds.y + 10); + double smeltTime = display.getSmeltTime(); + DecimalFormat df = new DecimalFormat("###.##"); + List widgets = Lists.newArrayList(); + widgets.add(Widgets.createRecipeBase(bounds)); + widgets.add(Widgets.createResultSlotBackground(new Point(startPoint.x + 61, startPoint.y + 9))); + widgets.add(Widgets.createBurningFire(new Point(startPoint.x - 9, startPoint.y + 20)).animationDurationMS(10000)); + widgets.add(Widgets.createLabel(new Point(bounds.x + bounds.width - 5, bounds.y + 5), + new TranslatableComponent("category.rei.cooking.time&xp", df.format(display.getXp()), df.format(smeltTime / 20D))).noShadow().rightAligned().color(0xFF404040, 0xFFBBBBBB)); + widgets.add(Widgets.createArrow(new Point(startPoint.x + 24, startPoint.y + 8)).animationDurationTicks(smeltTime)); + List> inputEntries = display.getInputEntries(); + widgets.add(Widgets.createSlot(new Point(startPoint.x - 20, startPoint.y + 1)).entries(inputEntries.get(0)).markInput()); + if (inputEntries.size() > 1) { + widgets.add(Widgets.createSlot(new Point(startPoint.x + 1, startPoint.y + 1)).entries(inputEntries.get(1)).markInput()); + } else { + widgets.add(Widgets.createSlot(new Point(startPoint.x + 1, startPoint.y + 1)).entries(Lists.newArrayList()).markInput()); + } + widgets.add(Widgets.createSlot(new Point(startPoint.x + 61, startPoint.y + 9)).entries(display.getResultingEntries().get(0)).disableBackground().markOutput()); + return widgets; + } + + @Override + public void renderRedSlots(PoseStack matrices, List widgets, Rectangle bounds, REIAlloyingDisplay display, + IntList redSlots) { + Point startPoint = new Point(bounds.getCenterX() - 41, bounds.getCenterY() - 27); + matrices.pushPose(); + matrices.translate(0, 0, 400); + if (redSlots.contains(0)) { + GuiComponent.fill(matrices, startPoint.x - 20, startPoint.y + 1, startPoint.x - 20 + 16, startPoint.y + 1 + 16, 1090453504); + GuiComponent.fill(matrices, startPoint.x + 1, startPoint.y + 1, startPoint.x + 1 + 16, startPoint.y + 1 + 16, 1090453504); + } + matrices.popPose(); + } + + @Override + public @NotNull RecipeEntry getSimpleRenderer(REIAlloyingDisplay recipe) { + return SimpleRecipeEntry.from(recipe.getInputEntries(), recipe.getResultingEntries()); + } + + @Override + public int getDisplayHeight() { + return 49; + } +} diff --git a/src/main/java/ru/betterend/integration/rei/REIAlloyingFuelCategory.java b/src/main/java/ru/betterend/integration/rei/REIAlloyingFuelCategory.java index 10c7564c..8b7a552a 100644 --- a/src/main/java/ru/betterend/integration/rei/REIAlloyingFuelCategory.java +++ b/src/main/java/ru/betterend/integration/rei/REIAlloyingFuelCategory.java @@ -1,91 +1,92 @@ -package ru.betterend.integration.rei; - -import java.text.DecimalFormat; -import java.util.List; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import com.google.common.collect.Lists; -import com.mojang.blaze3d.vertex.PoseStack; -import me.shedaniel.math.Point; -import me.shedaniel.math.Rectangle; -import me.shedaniel.rei.api.EntryStack; -import me.shedaniel.rei.api.RecipeCategory; -import me.shedaniel.rei.api.widgets.Slot; -import me.shedaniel.rei.api.widgets.Tooltip; -import me.shedaniel.rei.api.widgets.Widgets; -import me.shedaniel.rei.gui.entries.RecipeEntry; -import me.shedaniel.rei.gui.widget.Widget; -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.language.I18n; -import net.minecraft.network.chat.TranslatableComponent; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.Items; - -public class REIAlloyingFuelCategory implements RecipeCategory { - private static final DecimalFormat DECIMAL_FORMAT = new DecimalFormat("#.##"); - - @Override - public @NotNull ResourceLocation getIdentifier() { - return REIPlugin.ALLOYING_FUEL; - } - - @Override - public @NotNull String getCategoryName() { - return I18n.get("category.rei.fuel"); - } - - @Override - public int getDisplayHeight() { - return 49; - } - - @Override - public @NotNull EntryStack getLogo() { - return EntryStack.create(Items.COAL); - } - - @Override - public @NotNull List setupDisplay(REIAlloyingFuelDisplay recipeDisplay, Rectangle bounds) { - Point startPoint = new Point(bounds.getCenterX() - 41, bounds.getCenterY() - 17); - String burnTime = DECIMAL_FORMAT.format(recipeDisplay.getFuelTime()); - List widgets = Lists.newArrayList(); - widgets.add(Widgets.createRecipeBase(bounds)); - widgets.add(Widgets.createLabel(new Point(bounds.x + 26, bounds.getMaxY() - 15), new TranslatableComponent("category.rei.fuel.time", burnTime)) - .color(0xFF404040, 0xFFBBBBBB).noShadow().leftAligned()); - widgets.add(Widgets.createBurningFire(new Point(bounds.x + 6, startPoint.y + 1)).animationDurationTicks(recipeDisplay.getFuelTime())); - widgets.add(Widgets.createSlot(new Point(bounds.x + 6, startPoint.y + 18)).entries(recipeDisplay.getInputEntries().get(0)).markInput()); - return widgets; - } - - @Override - public @NotNull RecipeEntry getSimpleRenderer(REIAlloyingFuelDisplay recipe) { - Slot slot = Widgets.createSlot(new Point(0, 0)).entries(recipe.getInputEntries().get(0)).disableBackground().disableHighlight(); - String burnItems = DECIMAL_FORMAT.format(recipe.getFuelTime() / 200d); - return new RecipeEntry() { - private TranslatableComponent text = new TranslatableComponent("category.rei.fuel.time_short.items", burnItems); - - @Override - public int getHeight() { - return 22; - } - - @Nullable - @Override - public Tooltip getTooltip(Point point) { - if (slot.containsMouse(point)) - return slot.getCurrentTooltip(point); - return null; - } - - @Override - public void render(PoseStack matrices, Rectangle bounds, int mouseX, int mouseY, float delta) { - slot.setZ(getZ() + 50); - slot.getBounds().setLocation(bounds.x + 4, bounds.y + 2); - slot.render(matrices, mouseX, mouseY, delta); - Minecraft.getInstance().font.drawShadow(matrices, text.getVisualOrderText(), bounds.x + 25, bounds.y + 8, -1); - } - }; - } -} +package ru.betterend.integration.rei; + +import java.text.DecimalFormat; +import java.util.List; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import com.google.common.collect.Lists; +import com.mojang.blaze3d.vertex.PoseStack; + +import me.shedaniel.math.Point; +import me.shedaniel.math.Rectangle; +import me.shedaniel.rei.api.EntryStack; +import me.shedaniel.rei.api.RecipeCategory; +import me.shedaniel.rei.api.widgets.Slot; +import me.shedaniel.rei.api.widgets.Tooltip; +import me.shedaniel.rei.api.widgets.Widgets; +import me.shedaniel.rei.gui.entries.RecipeEntry; +import me.shedaniel.rei.gui.widget.Widget; +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.Items; + +public class REIAlloyingFuelCategory implements RecipeCategory { + private static final DecimalFormat DECIMAL_FORMAT = new DecimalFormat("#.##"); + + @Override + public @NotNull ResourceLocation getIdentifier() { + return REIPlugin.ALLOYING_FUEL; + } + + @Override + public @NotNull String getCategoryName() { + return I18n.get("category.rei.fuel"); + } + + @Override + public int getDisplayHeight() { + return 49; + } + + @Override + public @NotNull EntryStack getLogo() { + return EntryStack.create(Items.COAL); + } + + @Override + public @NotNull List setupDisplay(REIAlloyingFuelDisplay recipeDisplay, Rectangle bounds) { + Point startPoint = new Point(bounds.getCenterX() - 41, bounds.getCenterY() - 17); + String burnTime = DECIMAL_FORMAT.format(recipeDisplay.getFuelTime()); + List widgets = Lists.newArrayList(); + widgets.add(Widgets.createRecipeBase(bounds)); + widgets.add(Widgets.createLabel(new Point(bounds.x + 26, bounds.getMaxY() - 15), new TranslatableComponent("category.rei.fuel.time", burnTime)) + .color(0xFF404040, 0xFFBBBBBB).noShadow().leftAligned()); + widgets.add(Widgets.createBurningFire(new Point(bounds.x + 6, startPoint.y + 1)).animationDurationTicks(recipeDisplay.getFuelTime())); + widgets.add(Widgets.createSlot(new Point(bounds.x + 6, startPoint.y + 18)).entries(recipeDisplay.getInputEntries().get(0)).markInput()); + return widgets; + } + + @Override + public @NotNull RecipeEntry getSimpleRenderer(REIAlloyingFuelDisplay recipe) { + Slot slot = Widgets.createSlot(new Point(0, 0)).entries(recipe.getInputEntries().get(0)).disableBackground().disableHighlight(); + String burnItems = DECIMAL_FORMAT.format(recipe.getFuelTime() / 200d); + return new RecipeEntry() { + private TranslatableComponent text = new TranslatableComponent("category.rei.fuel.time_short.items", burnItems); + + @Override + public int getHeight() { + return 22; + } + + @Nullable + @Override + public Tooltip getTooltip(Point point) { + if (slot.containsMouse(point)) + return slot.getCurrentTooltip(point); + return null; + } + + @Override + public void render(PoseStack matrices, Rectangle bounds, int mouseX, int mouseY, float delta) { + slot.setZ(getZ() + 50); + slot.getBounds().setLocation(bounds.x + 4, bounds.y + 2); + slot.render(matrices, mouseX, mouseY, delta); + Minecraft.getInstance().font.drawShadow(matrices, text.getVisualOrderText(), bounds.x + 25, bounds.y + 8, -1); + } + }; + } +} diff --git a/src/main/java/ru/betterend/integration/rei/REIAnvilCategory.java b/src/main/java/ru/betterend/integration/rei/REIAnvilCategory.java index 95416a05..fddf1a83 100644 --- a/src/main/java/ru/betterend/integration/rei/REIAnvilCategory.java +++ b/src/main/java/ru/betterend/integration/rei/REIAnvilCategory.java @@ -1,100 +1,101 @@ -package ru.betterend.integration.rei; - -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; - -import org.jetbrains.annotations.NotNull; - -import com.google.common.collect.Lists; -import com.mojang.blaze3d.vertex.PoseStack; -import it.unimi.dsi.fastutil.ints.IntList; -import me.shedaniel.math.Point; -import me.shedaniel.math.Rectangle; -import me.shedaniel.rei.api.EntryStack; -import me.shedaniel.rei.api.TransferRecipeCategory; -import me.shedaniel.rei.api.widgets.Widgets; -import me.shedaniel.rei.gui.entries.RecipeEntry; -import me.shedaniel.rei.gui.entries.SimpleRecipeEntry; -import me.shedaniel.rei.gui.widget.Widget; -import net.minecraft.client.gui.GuiComponent; -import net.minecraft.network.chat.TranslatableComponent; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.Blocks; -import ru.betterend.blocks.basis.EndAnvilBlock; -import ru.betterend.util.LangUtil; - -public class REIAnvilCategory implements TransferRecipeCategory { - - @Override - public @NotNull ResourceLocation getIdentifier() { - return REIPlugin.SMITHING; - } - - @Override - public @NotNull String getCategoryName() { - return LangUtil.translate(Blocks.ANVIL.getDescriptionId()); - } - - @Override - public @NotNull EntryStack getLogo() { - return REIPlugin.ANVILS[0]; - } - - @Override - public @NotNull List setupDisplay(REIAnvilDisplay display, Rectangle bounds) { - Point startPoint = new Point(bounds.getCenterX() - 41, bounds.y + 10); - List widgets = Lists.newArrayList(); - widgets.add(Widgets.createRecipeBase(bounds)); - int x = startPoint.x + 10; - int y = startPoint.y; - widgets.add(Widgets.createResultSlotBackground(new Point(x + 61, y + 5))); - List> inputEntries = display.getInputEntries(); - List materials = inputEntries.get(1); - int anvilLevel = display.getAnvilLevel(); - List anvils = Arrays.stream(REIPlugin.ANVILS).filter(anvil -> { - Block block = ((BlockItem) anvil.getItem()).getBlock(); - if (block instanceof EndAnvilBlock) { - return ((EndAnvilBlock) block).getCraftingLevel() >= anvilLevel; - } - return anvilLevel == 1; - }).collect(Collectors.toList()); - materials.forEach(entryStack -> entryStack.setAmount(display.getInputCount())); - widgets.add(Widgets.createArrow(new Point(x + 24, y + 4))); - widgets.add(Widgets.createLabel(new Point(bounds.x + bounds.width - 7, bounds.y + bounds.height - 15), - new TranslatableComponent("category.rei.damage.amount&dmg", display.getDamage())).noShadow().rightAligned().color(0xFF404040, 0xFFBBBBBB)); - widgets.add(Widgets.createSlot(new Point(x - 20, y + 4)).entries(materials).markInput()); - widgets.add(Widgets.createSlot(new Point(x + 1, y + 4)).entries(inputEntries.get(0)).markInput()); - widgets.add(Widgets.createSlot(new Point(x + 61, y + 5)).entries(display.getResultingEntries().get(0)).disableBackground().markOutput()); - widgets.add(Widgets.createSlot(new Point(x - 9, y + 25)).entries(anvils)); - - return widgets; - } - - @Override - public void renderRedSlots(PoseStack matrices, List widgets, Rectangle bounds, REIAnvilDisplay display, - IntList redSlots) { - Point startPoint = new Point(bounds.getCenterX() - 41, bounds.getCenterY() - 27); - matrices.pushPose(); - matrices.translate(0, 0, 400); - if (redSlots.contains(0)) { - GuiComponent.fill(matrices, startPoint.x - 20, startPoint.y + 3, startPoint.x - 20 + 16, startPoint.y + 3 + 16, 1090453504); - GuiComponent.fill(matrices, startPoint.x + 1, startPoint.y + 3, startPoint.x + 1 + 16, startPoint.y + 3 + 16, 1090453504); - } - matrices.popPose(); - } - - @Override - public @NotNull RecipeEntry getSimpleRenderer(REIAnvilDisplay recipe) { - return SimpleRecipeEntry.from(Collections.singletonList(recipe.getInputEntries().get(0)), recipe.getResultingEntries()); - } - - @Override - public int getDisplayHeight() { - return 60; - } - -} +package ru.betterend.integration.rei; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +import org.jetbrains.annotations.NotNull; + +import com.google.common.collect.Lists; +import com.mojang.blaze3d.vertex.PoseStack; + +import it.unimi.dsi.fastutil.ints.IntList; +import me.shedaniel.math.Point; +import me.shedaniel.math.Rectangle; +import me.shedaniel.rei.api.EntryStack; +import me.shedaniel.rei.api.TransferRecipeCategory; +import me.shedaniel.rei.api.widgets.Widgets; +import me.shedaniel.rei.gui.entries.RecipeEntry; +import me.shedaniel.rei.gui.entries.SimpleRecipeEntry; +import me.shedaniel.rei.gui.widget.Widget; +import net.minecraft.client.gui.GuiComponent; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import ru.betterend.blocks.basis.EndAnvilBlock; +import ru.betterend.util.LangUtil; + +public class REIAnvilCategory implements TransferRecipeCategory { + + @Override + public @NotNull ResourceLocation getIdentifier() { + return REIPlugin.SMITHING; + } + + @Override + public @NotNull String getCategoryName() { + return LangUtil.translate(Blocks.ANVIL.getDescriptionId()); + } + + @Override + public @NotNull EntryStack getLogo() { + return REIPlugin.ANVILS[0]; + } + + @Override + public @NotNull List setupDisplay(REIAnvilDisplay display, Rectangle bounds) { + Point startPoint = new Point(bounds.getCenterX() - 41, bounds.y + 10); + List widgets = Lists.newArrayList(); + widgets.add(Widgets.createRecipeBase(bounds)); + int x = startPoint.x + 10; + int y = startPoint.y; + widgets.add(Widgets.createResultSlotBackground(new Point(x + 61, y + 5))); + List> inputEntries = display.getInputEntries(); + List materials = inputEntries.get(1); + int anvilLevel = display.getAnvilLevel(); + List anvils = Arrays.stream(REIPlugin.ANVILS).filter(anvil -> { + Block block = ((BlockItem) anvil.getItem()).getBlock(); + if (block instanceof EndAnvilBlock) { + return ((EndAnvilBlock) block).getCraftingLevel() >= anvilLevel; + } + return anvilLevel == 1; + }).collect(Collectors.toList()); + materials.forEach(entryStack -> entryStack.setAmount(display.getInputCount())); + widgets.add(Widgets.createArrow(new Point(x + 24, y + 4))); + widgets.add(Widgets.createLabel(new Point(bounds.x + bounds.width - 7, bounds.y + bounds.height - 15), + new TranslatableComponent("category.rei.damage.amount&dmg", display.getDamage())).noShadow().rightAligned().color(0xFF404040, 0xFFBBBBBB)); + widgets.add(Widgets.createSlot(new Point(x - 20, y + 4)).entries(materials).markInput()); + widgets.add(Widgets.createSlot(new Point(x + 1, y + 4)).entries(inputEntries.get(0)).markInput()); + widgets.add(Widgets.createSlot(new Point(x + 61, y + 5)).entries(display.getResultingEntries().get(0)).disableBackground().markOutput()); + widgets.add(Widgets.createSlot(new Point(x - 9, y + 25)).entries(anvils)); + + return widgets; + } + + @Override + public void renderRedSlots(PoseStack matrices, List widgets, Rectangle bounds, REIAnvilDisplay display, + IntList redSlots) { + Point startPoint = new Point(bounds.getCenterX() - 41, bounds.getCenterY() - 27); + matrices.pushPose(); + matrices.translate(0, 0, 400); + if (redSlots.contains(0)) { + GuiComponent.fill(matrices, startPoint.x - 20, startPoint.y + 3, startPoint.x - 20 + 16, startPoint.y + 3 + 16, 1090453504); + GuiComponent.fill(matrices, startPoint.x + 1, startPoint.y + 3, startPoint.x + 1 + 16, startPoint.y + 3 + 16, 1090453504); + } + matrices.popPose(); + } + + @Override + public @NotNull RecipeEntry getSimpleRenderer(REIAnvilDisplay recipe) { + return SimpleRecipeEntry.from(Collections.singletonList(recipe.getInputEntries().get(0)), recipe.getResultingEntries()); + } + + @Override + public int getDisplayHeight() { + return 60; + } + +} diff --git a/src/main/java/ru/betterend/integration/rei/REIInfusionCategory.java b/src/main/java/ru/betterend/integration/rei/REIInfusionCategory.java index 210d838f..5acb5b12 100644 --- a/src/main/java/ru/betterend/integration/rei/REIInfusionCategory.java +++ b/src/main/java/ru/betterend/integration/rei/REIInfusionCategory.java @@ -1,80 +1,81 @@ -package ru.betterend.integration.rei; - -import java.util.List; - -import org.jetbrains.annotations.NotNull; - -import com.google.common.collect.Lists; -import com.mojang.blaze3d.vertex.PoseStack; -import it.unimi.dsi.fastutil.ints.IntList; -import me.shedaniel.math.Point; -import me.shedaniel.math.Rectangle; -import me.shedaniel.rei.api.EntryStack; -import me.shedaniel.rei.api.TransferRecipeCategory; -import me.shedaniel.rei.api.widgets.Widgets; -import me.shedaniel.rei.gui.entries.RecipeEntry; -import me.shedaniel.rei.gui.entries.SimpleRecipeEntry; -import me.shedaniel.rei.gui.widget.Widget; -import net.minecraft.network.chat.TranslatableComponent; -import net.minecraft.resources.ResourceLocation; -import ru.betterend.BetterEnd; -import ru.betterend.recipe.builders.InfusionRecipe; -import ru.betterend.registry.EndBlocks; -import ru.betterend.util.LangUtil; - -public class REIInfusionCategory implements TransferRecipeCategory { - - private final static ResourceLocation BACKGROUND = BetterEnd.makeID("textures/gui/rei_infusion.png"); - - @Override - public @NotNull ResourceLocation getIdentifier() { - return InfusionRecipe.ID; - } - - @Override - public @NotNull String getCategoryName() { - return LangUtil.translate(EndBlocks.INFUSION_PEDESTAL.getDescriptionId()); - } - - @Override - public @NotNull EntryStack getLogo() { - return REIPlugin.INFUSION_RITUAL; - } - - @Override - public @NotNull RecipeEntry getSimpleRenderer(REIInfusionDisplay recipe) { - return SimpleRecipeEntry.from(recipe.getInputEntries(), recipe.getResultingEntries()); - } - - @Override - public @NotNull List setupDisplay(REIInfusionDisplay display, Rectangle bounds) { - Point centerPoint = new Point(bounds.getCenterX() - 34, bounds.getCenterY() - 2); - List widgets = Lists.newArrayList(); - widgets.add(Widgets.createRecipeBase(bounds)); - List> inputEntries = display.getInputEntries(); - List> outputEntries = display.getResultingEntries(); - widgets.add(Widgets.createTexturedWidget(BACKGROUND, bounds.x, bounds.y, 0, 0, 150, 104, 150, 104)); - widgets.add(Widgets.createSlot(centerPoint).entries(inputEntries.get(0)).disableBackground().markInput()); - widgets.add(Widgets.createSlot(new Point(centerPoint.x, centerPoint.y - 28)).entries(inputEntries.get(1)).disableBackground().markInput()); - widgets.add(Widgets.createSlot(new Point(centerPoint.x + 28, centerPoint.y)).entries(inputEntries.get(3)).disableBackground().markInput()); - widgets.add(Widgets.createSlot(new Point(centerPoint.x, centerPoint.y + 28)).entries(inputEntries.get(5)).disableBackground().markInput()); - widgets.add(Widgets.createSlot(new Point(centerPoint.x - 28, centerPoint.y)).entries(inputEntries.get(7)).disableBackground().markInput()); - widgets.add(Widgets.createSlot(new Point(centerPoint.x + 24, centerPoint.y - 24)).entries(inputEntries.get(2)).disableBackground().markInput()); - widgets.add(Widgets.createSlot(new Point(centerPoint.x + 24, centerPoint.y + 24)).entries(inputEntries.get(4)).disableBackground().markInput()); - widgets.add(Widgets.createSlot(new Point(centerPoint.x - 24, centerPoint.y + 24)).entries(inputEntries.get(6)).disableBackground().markInput()); - widgets.add(Widgets.createSlot(new Point(centerPoint.x - 24, centerPoint.y - 24)).entries(inputEntries.get(8)).disableBackground().markInput()); - widgets.add(Widgets.createSlot(new Point(centerPoint.x + 80, centerPoint.y)).entries(outputEntries.get(0)).disableBackground().markOutput()); - widgets.add(Widgets.createLabel(new Point(bounds.getMaxX() - 5, bounds.y + 6), new TranslatableComponent("category.rei.infusion.time&val", display.getInfusionTime())) - .noShadow().rightAligned().color(0xFF404040, 0xFFBBBBBB)); - return widgets; - } - - @Override - public void renderRedSlots(PoseStack matrices, List widgets, Rectangle bounds, - REIInfusionDisplay display, IntList redSlots) {} - - @Override - public int getDisplayHeight() { - return 104; - } -} +package ru.betterend.integration.rei; + +import java.util.List; + +import org.jetbrains.annotations.NotNull; + +import com.google.common.collect.Lists; +import com.mojang.blaze3d.vertex.PoseStack; + +import it.unimi.dsi.fastutil.ints.IntList; +import me.shedaniel.math.Point; +import me.shedaniel.math.Rectangle; +import me.shedaniel.rei.api.EntryStack; +import me.shedaniel.rei.api.TransferRecipeCategory; +import me.shedaniel.rei.api.widgets.Widgets; +import me.shedaniel.rei.gui.entries.RecipeEntry; +import me.shedaniel.rei.gui.entries.SimpleRecipeEntry; +import me.shedaniel.rei.gui.widget.Widget; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.resources.ResourceLocation; +import ru.betterend.BetterEnd; +import ru.betterend.recipe.builders.InfusionRecipe; +import ru.betterend.registry.EndBlocks; +import ru.betterend.util.LangUtil; + +public class REIInfusionCategory implements TransferRecipeCategory { + + private final static ResourceLocation BACKGROUND = BetterEnd.makeID("textures/gui/rei_infusion.png"); + + @Override + public @NotNull ResourceLocation getIdentifier() { + return InfusionRecipe.ID; + } + + @Override + public @NotNull String getCategoryName() { + return LangUtil.translate(EndBlocks.INFUSION_PEDESTAL.getDescriptionId()); + } + + @Override + public @NotNull EntryStack getLogo() { + return REIPlugin.INFUSION_RITUAL; + } + + @Override + public @NotNull RecipeEntry getSimpleRenderer(REIInfusionDisplay recipe) { + return SimpleRecipeEntry.from(recipe.getInputEntries(), recipe.getResultingEntries()); + } + + @Override + public @NotNull List setupDisplay(REIInfusionDisplay display, Rectangle bounds) { + Point centerPoint = new Point(bounds.getCenterX() - 34, bounds.getCenterY() - 2); + List widgets = Lists.newArrayList(); + widgets.add(Widgets.createRecipeBase(bounds)); + List> inputEntries = display.getInputEntries(); + List> outputEntries = display.getResultingEntries(); + widgets.add(Widgets.createTexturedWidget(BACKGROUND, bounds.x, bounds.y, 0, 0, 150, 104, 150, 104)); + widgets.add(Widgets.createSlot(centerPoint).entries(inputEntries.get(0)).disableBackground().markInput()); + widgets.add(Widgets.createSlot(new Point(centerPoint.x, centerPoint.y - 28)).entries(inputEntries.get(1)).disableBackground().markInput()); + widgets.add(Widgets.createSlot(new Point(centerPoint.x + 28, centerPoint.y)).entries(inputEntries.get(3)).disableBackground().markInput()); + widgets.add(Widgets.createSlot(new Point(centerPoint.x, centerPoint.y + 28)).entries(inputEntries.get(5)).disableBackground().markInput()); + widgets.add(Widgets.createSlot(new Point(centerPoint.x - 28, centerPoint.y)).entries(inputEntries.get(7)).disableBackground().markInput()); + widgets.add(Widgets.createSlot(new Point(centerPoint.x + 24, centerPoint.y - 24)).entries(inputEntries.get(2)).disableBackground().markInput()); + widgets.add(Widgets.createSlot(new Point(centerPoint.x + 24, centerPoint.y + 24)).entries(inputEntries.get(4)).disableBackground().markInput()); + widgets.add(Widgets.createSlot(new Point(centerPoint.x - 24, centerPoint.y + 24)).entries(inputEntries.get(6)).disableBackground().markInput()); + widgets.add(Widgets.createSlot(new Point(centerPoint.x - 24, centerPoint.y - 24)).entries(inputEntries.get(8)).disableBackground().markInput()); + widgets.add(Widgets.createSlot(new Point(centerPoint.x + 80, centerPoint.y)).entries(outputEntries.get(0)).disableBackground().markOutput()); + widgets.add(Widgets.createLabel(new Point(bounds.getMaxX() - 5, bounds.y + 6), new TranslatableComponent("category.rei.infusion.time&val", display.getInfusionTime())) + .noShadow().rightAligned().color(0xFF404040, 0xFFBBBBBB)); + return widgets; + } + + @Override + public void renderRedSlots(PoseStack matrices, List widgets, Rectangle bounds, + REIInfusionDisplay display, IntList redSlots) {} + + @Override + public int getDisplayHeight() { + return 104; + } +} diff --git a/src/main/java/ru/betterend/interfaces/IBiomeList.java b/src/main/java/ru/betterend/interfaces/IBiomeList.java index e7546aa6..4dbbfde4 100644 --- a/src/main/java/ru/betterend/interfaces/IBiomeList.java +++ b/src/main/java/ru/betterend/interfaces/IBiomeList.java @@ -1,6 +1,7 @@ package ru.betterend.interfaces; import java.util.List; + import net.minecraft.resources.ResourceKey; import net.minecraft.world.level.biome.Biome; diff --git a/src/main/java/ru/betterend/item/EndArmorItem.java b/src/main/java/ru/betterend/item/EndArmorItem.java index cc4faf42..61ed97d1 100644 --- a/src/main/java/ru/betterend/item/EndArmorItem.java +++ b/src/main/java/ru/betterend/item/EndArmorItem.java @@ -1,6 +1,10 @@ package ru.betterend.item; import java.util.UUID; + +import com.google.common.collect.ImmutableMultimap; +import com.google.common.collect.Multimap; + import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.ai.attributes.Attribute; import net.minecraft.world.entity.ai.attributes.AttributeModifier; @@ -8,8 +12,6 @@ import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.item.ArmorItem; import net.minecraft.world.item.ArmorMaterial; import net.minecraft.world.item.Item; -import com.google.common.collect.ImmutableMultimap; -import com.google.common.collect.Multimap; import ru.betterend.mixin.common.ArmorItemAccessor; import ru.betterend.patterns.Patterned; import ru.betterend.patterns.Patterns; diff --git a/src/main/java/ru/betterend/item/EndBucketItem.java b/src/main/java/ru/betterend/item/EndBucketItem.java new file mode 100644 index 00000000..5b84e7a4 --- /dev/null +++ b/src/main/java/ru/betterend/item/EndBucketItem.java @@ -0,0 +1,18 @@ +package ru.betterend.item; + +import net.minecraft.world.item.BucketItem; +import net.minecraft.world.level.material.Fluids; +import ru.betterend.patterns.Patterned; +import ru.betterend.patterns.Patterns; +import ru.betterend.registry.EndItems; + +public class EndBucketItem extends BucketItem implements Patterned { + public EndBucketItem() { + super(Fluids.WATER, EndItems.makeItemSettings().stacksTo(1)); + } + + @Override + public String getModelPattern(String name) { + return Patterns.createJson(Patterns.ITEM_GENERATED, name); + } +} diff --git a/src/main/java/ru/betterend/item/GuideBookItem.java b/src/main/java/ru/betterend/item/GuideBookItem.java index e60d441c..915ae3b3 100644 --- a/src/main/java/ru/betterend/item/GuideBookItem.java +++ b/src/main/java/ru/betterend/item/GuideBookItem.java @@ -1,43 +1,44 @@ -package ru.betterend.item; - -import java.util.List; -import net.minecraft.ChatFormatting; -import net.minecraft.network.chat.Component; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResultHolder; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.TooltipFlag; -import net.minecraft.world.level.Level; -import ru.betterend.BetterEnd; -import ru.betterend.registry.EndItems; -import ru.betterend.util.LangUtil; -import vazkii.patchouli.api.PatchouliAPI; - -public class GuideBookItem extends PatternedItem { - public final static ResourceLocation BOOK_ID = BetterEnd.makeID("guidebook"); - public static final Item GUIDE_BOOK = EndItems.registerItem(BOOK_ID, new GuideBookItem()); - - public static void register() {} - - public GuideBookItem() { - super(EndItems.makeItemSettings().stacksTo(1)); - } - - @Override - public InteractionResultHolder use(Level world, Player user, InteractionHand hand) { - if (!world.isClientSide && user instanceof ServerPlayer) { - PatchouliAPI.get().openBookGUI((ServerPlayer) user, BOOK_ID); - return InteractionResultHolder.success(user.getItemInHand(hand)); - } - return InteractionResultHolder.consume(user.getItemInHand(hand)); - } - - @Override - public void appendHoverText(ItemStack stack, Level world, List tooltip, TooltipFlag context) { - tooltip.add(LangUtil.getText("book.betterend", "subtitle").withStyle(ChatFormatting.DARK_PURPLE, ChatFormatting.ITALIC)); - } -} +package ru.betterend.item; + +import java.util.List; + +import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.Level; +import ru.betterend.BetterEnd; +import ru.betterend.registry.EndItems; +import ru.betterend.util.LangUtil; +import vazkii.patchouli.api.PatchouliAPI; + +public class GuideBookItem extends PatternedItem { + public final static ResourceLocation BOOK_ID = BetterEnd.makeID("guidebook"); + public static final Item GUIDE_BOOK = EndItems.registerItem(BOOK_ID, new GuideBookItem()); + + public static void register() {} + + public GuideBookItem() { + super(EndItems.makeItemSettings().stacksTo(1)); + } + + @Override + public InteractionResultHolder use(Level world, Player user, InteractionHand hand) { + if (!world.isClientSide && user instanceof ServerPlayer) { + PatchouliAPI.get().openBookGUI((ServerPlayer) user, BOOK_ID); + return InteractionResultHolder.success(user.getItemInHand(hand)); + } + return InteractionResultHolder.consume(user.getItemInHand(hand)); + } + + @Override + public void appendHoverText(ItemStack stack, Level world, List tooltip, TooltipFlag context) { + tooltip.add(LangUtil.getText("book.betterend", "subtitle").withStyle(ChatFormatting.DARK_PURPLE, ChatFormatting.ITALIC)); + } +} diff --git a/src/main/java/ru/betterend/item/material/EndToolMaterial.java b/src/main/java/ru/betterend/item/material/EndToolMaterial.java index b132224c..9c0197ae 100644 --- a/src/main/java/ru/betterend/item/material/EndToolMaterial.java +++ b/src/main/java/ru/betterend/item/material/EndToolMaterial.java @@ -1,6 +1,7 @@ package ru.betterend.item.material; import java.util.function.Supplier; + import net.minecraft.util.LazyLoadedValue; import net.minecraft.world.item.Tier; import net.minecraft.world.item.crafting.Ingredient; diff --git a/src/main/java/ru/betterend/item/model/CrystaliteBootsModel.java b/src/main/java/ru/betterend/item/model/CrystaliteBootsModel.java index 82ef8a4b..d1a37fde 100644 --- a/src/main/java/ru/betterend/item/model/CrystaliteBootsModel.java +++ b/src/main/java/ru/betterend/item/model/CrystaliteBootsModel.java @@ -1,41 +1,43 @@ -package ru.betterend.item.model; - -import java.util.Collections; -import net.minecraft.client.model.HumanoidModel; -import net.minecraft.client.model.geom.ModelPart; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.world.entity.LivingEntity; -import com.google.common.collect.Lists; - -public class CrystaliteBootsModel extends HumanoidModel { - - public ModelPart leftBoot; - public ModelPart rightBoot; - - public CrystaliteBootsModel(float scale) { - super(RenderType::entityTranslucent, scale, 0.0F, 64, 48); - this.leftBoot = new ModelPart(this, 0, 32); - this.leftBoot.addBox(-2.0F, 0.0F, -2.0F, 4.0F, 12.0F, 4.0F, scale + 0.25F); - this.leftBoot.setPos(1.9F, 12.0F, 0.0F); - this.rightBoot = new ModelPart(this, 0, 16); - this.rightBoot.addBox(-2.0F, 0.0F, -2.0F, 4.0F, 12.0F, 4.0F, scale + 0.25F); - this.rightBoot.setPos(-1.9F, 12.0F, 0.0F); - } - - @Override - public void copyPropertiesTo(HumanoidModel bipedEntityModel) { - super.copyPropertiesTo(bipedEntityModel); - this.leftBoot.copyFrom(leftLeg); - this.rightBoot.copyFrom(rightLeg); - } - - @Override - protected Iterable headParts() { - return Collections::emptyIterator; - } - - @Override - protected Iterable bodyParts() { - return Lists.newArrayList(leftBoot, rightBoot); - } -} +package ru.betterend.item.model; + +import java.util.Collections; + +import com.google.common.collect.Lists; + +import net.minecraft.client.model.HumanoidModel; +import net.minecraft.client.model.geom.ModelPart; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.world.entity.LivingEntity; + +public class CrystaliteBootsModel extends HumanoidModel { + + public ModelPart leftBoot; + public ModelPart rightBoot; + + public CrystaliteBootsModel(float scale) { + super(RenderType::entityTranslucent, scale, 0.0F, 64, 48); + this.leftBoot = new ModelPart(this, 0, 32); + this.leftBoot.addBox(-2.0F, 0.0F, -2.0F, 4.0F, 12.0F, 4.0F, scale + 0.25F); + this.leftBoot.setPos(1.9F, 12.0F, 0.0F); + this.rightBoot = new ModelPart(this, 0, 16); + this.rightBoot.addBox(-2.0F, 0.0F, -2.0F, 4.0F, 12.0F, 4.0F, scale + 0.25F); + this.rightBoot.setPos(-1.9F, 12.0F, 0.0F); + } + + @Override + public void copyPropertiesTo(HumanoidModel bipedEntityModel) { + super.copyPropertiesTo(bipedEntityModel); + this.leftBoot.copyFrom(leftLeg); + this.rightBoot.copyFrom(rightLeg); + } + + @Override + protected Iterable headParts() { + return Collections::emptyIterator; + } + + @Override + protected Iterable bodyParts() { + return Lists.newArrayList(leftBoot, rightBoot); + } +} diff --git a/src/main/java/ru/betterend/item/model/CrystaliteChestplateModel.java b/src/main/java/ru/betterend/item/model/CrystaliteChestplateModel.java index f33a27ef..d0dd72f0 100644 --- a/src/main/java/ru/betterend/item/model/CrystaliteChestplateModel.java +++ b/src/main/java/ru/betterend/item/model/CrystaliteChestplateModel.java @@ -1,72 +1,74 @@ -package ru.betterend.item.model; - -import java.util.Collections; -import net.minecraft.client.model.HumanoidModel; -import net.minecraft.client.model.geom.ModelPart; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.world.entity.HumanoidArm; -import net.minecraft.world.entity.LivingEntity; -import com.google.common.collect.Lists; -import com.mojang.blaze3d.vertex.PoseStack; - -public class CrystaliteChestplateModel extends HumanoidModel { - - public ModelPart leftShoulder; - public ModelPart rightShoulder; - private boolean thinArms; - - public CrystaliteChestplateModel(float scale, boolean thinArms) { - super(RenderType::entityTranslucent, scale, 0.0F, 64, 48); - this.thinArms = thinArms; - this.body = new ModelPart(this, 16, 16); - this.body.addBox(-4.0F, 0.0F, -2.0F, 8.0F, 12.0F, 4.0F, scale + 0.25F); - this.body.setPos(0.0F, 0.0F, 0.0F); - if (thinArms) { - this.leftShoulder = new ModelPart(this, 41, 32); - this.leftShoulder.addBox(-1.0F, -2.5F, -2.0F, 3.0F, 12.0F, 4.0F, scale + 0.35F); - this.leftShoulder.setPos(5.0F, 2.5F, 0.0F); - this.leftShoulder.mirror = true; - this.rightShoulder = new ModelPart(this, 41, 16); - this.rightShoulder.addBox(-2.0F, -2.5F, -2.0F, 3.0F, 12.0F, 4.0F, scale + 0.35F); - this.rightShoulder.setPos(-5.0F, 2.5F, 10.0F); - } else { - this.leftShoulder = new ModelPart(this, 40, 32); - this.leftShoulder.addBox(-1.0F, -2.5F, -2.0F, 4.0F, 12.0F, 4.0F, scale + 0.45F); - this.leftShoulder.setPos(5.0F, 2.0F, 0.0F); - this.leftShoulder.mirror = true; - this.rightShoulder = new ModelPart(this, 40, 16); - this.rightShoulder.addBox(-3.0F, -2.5F, -2.0F, 4.0F, 12.0F, 4.0F, scale + 0.45F); - this.rightShoulder.setPos(-5.0F, 2.0F, 10.0F); - } - } - - @Override - public void copyPropertiesTo(HumanoidModel bipedEntityModel) { - super.copyPropertiesTo(bipedEntityModel); - this.leftShoulder.copyFrom(leftArm); - this.rightShoulder.copyFrom(rightArm); - } - - @Override - protected Iterable headParts() { - return Collections::emptyIterator; - } - - @Override - protected Iterable bodyParts() { - return Lists.newArrayList(body, leftShoulder, rightShoulder); - } - - @Override - public void translateToHand(HumanoidArm arm, PoseStack matrices) { - ModelPart modelPart = this.getArm(arm); - if (this.thinArms) { - float f = 0.5F * (float)(arm == HumanoidArm.RIGHT ? 1 : -1); - modelPart.x += f; - modelPart.translateAndRotate(matrices); - modelPart.x -= f; - } else { - modelPart.translateAndRotate(matrices); - } - } -} +package ru.betterend.item.model; + +import java.util.Collections; + +import com.google.common.collect.Lists; +import com.mojang.blaze3d.vertex.PoseStack; + +import net.minecraft.client.model.HumanoidModel; +import net.minecraft.client.model.geom.ModelPart; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.world.entity.HumanoidArm; +import net.minecraft.world.entity.LivingEntity; + +public class CrystaliteChestplateModel extends HumanoidModel { + + public ModelPart leftShoulder; + public ModelPart rightShoulder; + private boolean thinArms; + + public CrystaliteChestplateModel(float scale, boolean thinArms) { + super(RenderType::entityTranslucent, scale, 0.0F, 64, 48); + this.thinArms = thinArms; + this.body = new ModelPart(this, 16, 16); + this.body.addBox(-4.0F, 0.0F, -2.0F, 8.0F, 12.0F, 4.0F, scale + 0.25F); + this.body.setPos(0.0F, 0.0F, 0.0F); + if (thinArms) { + this.leftShoulder = new ModelPart(this, 41, 32); + this.leftShoulder.addBox(-1.0F, -2.5F, -2.0F, 3.0F, 12.0F, 4.0F, scale + 0.35F); + this.leftShoulder.setPos(5.0F, 2.5F, 0.0F); + this.leftShoulder.mirror = true; + this.rightShoulder = new ModelPart(this, 41, 16); + this.rightShoulder.addBox(-2.0F, -2.5F, -2.0F, 3.0F, 12.0F, 4.0F, scale + 0.35F); + this.rightShoulder.setPos(-5.0F, 2.5F, 10.0F); + } else { + this.leftShoulder = new ModelPart(this, 40, 32); + this.leftShoulder.addBox(-1.0F, -2.5F, -2.0F, 4.0F, 12.0F, 4.0F, scale + 0.45F); + this.leftShoulder.setPos(5.0F, 2.0F, 0.0F); + this.leftShoulder.mirror = true; + this.rightShoulder = new ModelPart(this, 40, 16); + this.rightShoulder.addBox(-3.0F, -2.5F, -2.0F, 4.0F, 12.0F, 4.0F, scale + 0.45F); + this.rightShoulder.setPos(-5.0F, 2.0F, 10.0F); + } + } + + @Override + public void copyPropertiesTo(HumanoidModel bipedEntityModel) { + super.copyPropertiesTo(bipedEntityModel); + this.leftShoulder.copyFrom(leftArm); + this.rightShoulder.copyFrom(rightArm); + } + + @Override + protected Iterable headParts() { + return Collections::emptyIterator; + } + + @Override + protected Iterable bodyParts() { + return Lists.newArrayList(body, leftShoulder, rightShoulder); + } + + @Override + public void translateToHand(HumanoidArm arm, PoseStack matrices) { + ModelPart modelPart = this.getArm(arm); + if (this.thinArms) { + float f = 0.5F * (float)(arm == HumanoidArm.RIGHT ? 1 : -1); + modelPart.x += f; + modelPart.translateAndRotate(matrices); + modelPart.x -= f; + } else { + modelPart.translateAndRotate(matrices); + } + } +} diff --git a/src/main/java/ru/betterend/item/model/CrystaliteLeggingsModel.java b/src/main/java/ru/betterend/item/model/CrystaliteLeggingsModel.java index acbbd1bb..54772ebd 100644 --- a/src/main/java/ru/betterend/item/model/CrystaliteLeggingsModel.java +++ b/src/main/java/ru/betterend/item/model/CrystaliteLeggingsModel.java @@ -1,34 +1,36 @@ -package ru.betterend.item.model; - -import java.util.Collections; -import net.minecraft.client.model.HumanoidModel; -import net.minecraft.client.model.geom.ModelPart; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.world.entity.LivingEntity; -import com.google.common.collect.Lists; - -public class CrystaliteLeggingsModel extends HumanoidModel { - - public CrystaliteLeggingsModel(float scale) { - super(RenderType::entityTranslucent, scale, 0.0F, 64, 48); - this.body = new ModelPart(this, 16, 16); - this.body.addBox(-4.0F, 0.0F, -2.0F, 8.0F, 12.0F, 4.0F, scale); - this.body.setPos(0.0F, 0.0F, 0.0F); - this.leftLeg = new ModelPart(this, 0, 32); - this.leftLeg.addBox(-2.0F, 0.0F, -2.0F, 4.0F, 12.0F, 4.0F, scale); - this.leftLeg.setPos(1.9F, 12.0F, 0.0F); - this.rightLeg = new ModelPart(this, 0, 16); - this.rightLeg.addBox(-2.0F, 0.0F, -2.0F, 4.0F, 12.0F, 4.0F, scale); - this.rightLeg.setPos(-1.9F, 12.0F, 0.0F); - } - - @Override - protected Iterable headParts() { - return Collections::emptyIterator; - } - - @Override - protected Iterable bodyParts() { - return Lists.newArrayList(body, rightLeg, leftLeg); - } -} +package ru.betterend.item.model; + +import java.util.Collections; + +import com.google.common.collect.Lists; + +import net.minecraft.client.model.HumanoidModel; +import net.minecraft.client.model.geom.ModelPart; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.world.entity.LivingEntity; + +public class CrystaliteLeggingsModel extends HumanoidModel { + + public CrystaliteLeggingsModel(float scale) { + super(RenderType::entityTranslucent, scale, 0.0F, 64, 48); + this.body = new ModelPart(this, 16, 16); + this.body.addBox(-4.0F, 0.0F, -2.0F, 8.0F, 12.0F, 4.0F, scale); + this.body.setPos(0.0F, 0.0F, 0.0F); + this.leftLeg = new ModelPart(this, 0, 32); + this.leftLeg.addBox(-2.0F, 0.0F, -2.0F, 4.0F, 12.0F, 4.0F, scale); + this.leftLeg.setPos(1.9F, 12.0F, 0.0F); + this.rightLeg = new ModelPart(this, 0, 16); + this.rightLeg.addBox(-2.0F, 0.0F, -2.0F, 4.0F, 12.0F, 4.0F, scale); + this.rightLeg.setPos(-1.9F, 12.0F, 0.0F); + } + + @Override + protected Iterable headParts() { + return Collections::emptyIterator; + } + + @Override + protected Iterable bodyParts() { + return Lists.newArrayList(body, rightLeg, leftLeg); + } +} diff --git a/src/main/java/ru/betterend/mixin/client/AbstractSoundInstanceAccessor.java b/src/main/java/ru/betterend/mixin/client/AbstractSoundInstanceAccessor.java index 9c94ed93..296a013e 100644 --- a/src/main/java/ru/betterend/mixin/client/AbstractSoundInstanceAccessor.java +++ b/src/main/java/ru/betterend/mixin/client/AbstractSoundInstanceAccessor.java @@ -1,9 +1,10 @@ package ru.betterend.mixin.client; -import net.minecraft.client.resources.sounds.AbstractSoundInstance; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; +import net.minecraft.client.resources.sounds.AbstractSoundInstance; + @Mixin(AbstractSoundInstance.class) public interface AbstractSoundInstanceAccessor { @Accessor("volume") diff --git a/src/main/java/ru/betterend/mixin/client/AnvilScreenMixin.java b/src/main/java/ru/betterend/mixin/client/AnvilScreenMixin.java index 41cc84be..2efb8696 100644 --- a/src/main/java/ru/betterend/mixin/client/AnvilScreenMixin.java +++ b/src/main/java/ru/betterend/mixin/client/AnvilScreenMixin.java @@ -1,6 +1,16 @@ package ru.betterend.mixin.client; import java.util.List; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import com.google.common.collect.Lists; +import com.mojang.blaze3d.vertex.PoseStack; + import net.minecraft.client.gui.components.AbstractWidget; import net.minecraft.client.gui.components.Button; import net.minecraft.client.gui.components.EditBox; @@ -13,14 +23,6 @@ import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.inventory.AnvilMenu; import net.minecraft.world.item.ItemStack; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -import com.google.common.collect.Lists; -import com.mojang.blaze3d.vertex.PoseStack; import ru.betterend.interfaces.AnvilScreenHandlerExtended; @Mixin(AnvilScreen.class) diff --git a/src/main/java/ru/betterend/mixin/client/BackgroundRendererMixin.java b/src/main/java/ru/betterend/mixin/client/BackgroundRendererMixin.java index 2d6697dc..4e0db101 100644 --- a/src/main/java/ru/betterend/mixin/client/BackgroundRendererMixin.java +++ b/src/main/java/ru/betterend/mixin/client/BackgroundRendererMixin.java @@ -8,6 +8,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import com.mojang.blaze3d.platform.GlStateManager; import com.mojang.blaze3d.systems.RenderSystem; + import net.minecraft.Util; import net.minecraft.client.Camera; import net.minecraft.client.multiplayer.ClientLevel; diff --git a/src/main/java/ru/betterend/mixin/client/ClientPlayNetworkHandlerMixin.java b/src/main/java/ru/betterend/mixin/client/ClientPlayNetworkHandlerMixin.java index fd669eee..39163b8b 100644 --- a/src/main/java/ru/betterend/mixin/client/ClientPlayNetworkHandlerMixin.java +++ b/src/main/java/ru/betterend/mixin/client/ClientPlayNetworkHandlerMixin.java @@ -1,16 +1,17 @@ package ru.betterend.mixin.client; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.multiplayer.ClientPacketListener; import net.minecraft.network.protocol.PacketUtils; import net.minecraft.network.protocol.game.ClientboundOpenSignEditorPacket; import net.minecraft.world.level.block.entity.BlockEntity; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import ru.betterend.blocks.entities.ESignBlockEntity; import ru.betterend.client.gui.BlockSignEditScreen; diff --git a/src/main/java/ru/betterend/mixin/client/ClientRecipeBookMixin.java b/src/main/java/ru/betterend/mixin/client/ClientRecipeBookMixin.java index ff72ef08..4fd3d635 100644 --- a/src/main/java/ru/betterend/mixin/client/ClientRecipeBookMixin.java +++ b/src/main/java/ru/betterend/mixin/client/ClientRecipeBookMixin.java @@ -1,14 +1,14 @@ package ru.betterend.mixin.client; -import net.minecraft.client.ClientRecipeBook; -import net.minecraft.client.RecipeBookCategories; -import net.minecraft.world.item.crafting.Recipe; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import net.minecraft.client.ClientRecipeBook; +import net.minecraft.client.RecipeBookCategories; +import net.minecraft.world.item.crafting.Recipe; import ru.betterend.interfaces.BetterEndRecipe; -import ru.betterend.recipe.builders.AlloyingRecipe; @Mixin(ClientRecipeBook.class) public abstract class ClientRecipeBookMixin { diff --git a/src/main/java/ru/betterend/mixin/client/ContextGsonAccessor.java b/src/main/java/ru/betterend/mixin/client/ContextGsonAccessor.java index 3c208101..484b3a65 100644 --- a/src/main/java/ru/betterend/mixin/client/ContextGsonAccessor.java +++ b/src/main/java/ru/betterend/mixin/client/ContextGsonAccessor.java @@ -4,6 +4,7 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; import com.google.gson.Gson; + import net.minecraft.client.renderer.block.model.BlockModelDefinition; @Mixin(BlockModelDefinition.Context.class) diff --git a/src/main/java/ru/betterend/mixin/client/EnchantingTableBlockMixin.java b/src/main/java/ru/betterend/mixin/client/EnchantingTableBlockMixin.java index 4ff34f60..384dc491 100644 --- a/src/main/java/ru/betterend/mixin/client/EnchantingTableBlockMixin.java +++ b/src/main/java/ru/betterend/mixin/client/EnchantingTableBlockMixin.java @@ -1,16 +1,18 @@ package ru.betterend.mixin.client; import java.util.Random; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + import net.minecraft.core.BlockPos; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.EnchantmentTableBlock; import net.minecraft.world.level.block.state.BlockState; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import ru.betterend.registry.EndTags; @Mixin(EnchantmentTableBlock.class) diff --git a/src/main/java/ru/betterend/mixin/client/MinecraftClientMixin.java b/src/main/java/ru/betterend/mixin/client/MinecraftClientMixin.java index 32d4938c..00f48281 100644 --- a/src/main/java/ru/betterend/mixin/client/MinecraftClientMixin.java +++ b/src/main/java/ru/betterend/mixin/client/MinecraftClientMixin.java @@ -7,6 +7,7 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + import net.minecraft.client.Minecraft; import net.minecraft.client.color.block.BlockColors; import net.minecraft.client.color.item.ItemColors; diff --git a/src/main/java/ru/betterend/mixin/client/ModelLoaderMixin.java b/src/main/java/ru/betterend/mixin/client/ModelLoaderMixin.java index 0af76236..07c57f8f 100644 --- a/src/main/java/ru/betterend/mixin/client/ModelLoaderMixin.java +++ b/src/main/java/ru/betterend/mixin/client/ModelLoaderMixin.java @@ -4,6 +4,15 @@ import java.io.InputStreamReader; import java.io.Reader; import java.nio.charset.StandardCharsets; import java.util.Optional; + +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.ModifyVariable; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + import net.minecraft.client.renderer.block.model.BlockModel; import net.minecraft.client.resources.model.ModelBakery; import net.minecraft.core.Registry; @@ -12,13 +21,6 @@ import net.minecraft.server.packs.resources.Resource; import net.minecraft.server.packs.resources.ResourceManager; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.ModifyVariable; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import ru.betterend.BetterEnd; import ru.betterend.patterns.Patterned; import ru.betterend.world.generator.GeneratorOptions; diff --git a/src/main/java/ru/betterend/mixin/client/ModelVariantMapMixin.java b/src/main/java/ru/betterend/mixin/client/ModelVariantMapMixin.java index 924546b8..d657e0aa 100644 --- a/src/main/java/ru/betterend/mixin/client/ModelVariantMapMixin.java +++ b/src/main/java/ru/betterend/mixin/client/ModelVariantMapMixin.java @@ -2,15 +2,17 @@ package ru.betterend.mixin.client; import java.io.Reader; import java.io.StringReader; -import net.minecraft.client.renderer.block.model.BlockModelDefinition; -import net.minecraft.util.GsonHelper; -import net.minecraft.world.level.block.Block; + import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import com.google.gson.Gson; + +import net.minecraft.client.renderer.block.model.BlockModelDefinition; +import net.minecraft.util.GsonHelper; +import net.minecraft.world.level.block.Block; import ru.betterend.patterns.BlockPatterned; @Mixin(BlockModelDefinition.class) diff --git a/src/main/java/ru/betterend/mixin/client/MusicTrackerMixin.java b/src/main/java/ru/betterend/mixin/client/MusicTrackerMixin.java index 6e9072b1..7af64b12 100644 --- a/src/main/java/ru/betterend/mixin/client/MusicTrackerMixin.java +++ b/src/main/java/ru/betterend/mixin/client/MusicTrackerMixin.java @@ -1,6 +1,14 @@ package ru.betterend.mixin.client; import java.util.Random; + +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + import net.minecraft.client.Minecraft; import net.minecraft.client.resources.sounds.AbstractSoundInstance; import net.minecraft.client.resources.sounds.SoundInstance; @@ -8,12 +16,6 @@ import net.minecraft.client.sounds.MusicManager; import net.minecraft.sounds.Music; import net.minecraft.util.Mth; import net.minecraft.world.level.Level; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import ru.betterend.client.ClientOptions; @Mixin(MusicManager.class) diff --git a/src/main/java/ru/betterend/mixin/client/NamespaceResourceManagerMixin.java b/src/main/java/ru/betterend/mixin/client/NamespaceResourceManagerMixin.java index 824161eb..ca9e8460 100644 --- a/src/main/java/ru/betterend/mixin/client/NamespaceResourceManagerMixin.java +++ b/src/main/java/ru/betterend/mixin/client/NamespaceResourceManagerMixin.java @@ -1,11 +1,7 @@ package ru.betterend.mixin.client; import java.util.List; -import net.minecraft.core.Registry; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.packs.resources.FallbackResourceManager; -import net.minecraft.server.packs.resources.Resource; -import net.minecraft.world.level.block.Block; + import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; @@ -14,6 +10,12 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import com.google.common.collect.Lists; + +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.packs.resources.FallbackResourceManager; +import net.minecraft.server.packs.resources.Resource; +import net.minecraft.world.level.block.Block; import ru.betterend.BetterEnd; import ru.betterend.patterns.BlockPatterned; diff --git a/src/main/java/ru/betterend/mixin/client/WorldRendererMixin.java b/src/main/java/ru/betterend/mixin/client/WorldRendererMixin.java index 2830919a..9f06187d 100644 --- a/src/main/java/ru/betterend/mixin/client/WorldRendererMixin.java +++ b/src/main/java/ru/betterend/mixin/client/WorldRendererMixin.java @@ -19,6 +19,7 @@ import com.mojang.blaze3d.vertex.VertexBuffer; import com.mojang.blaze3d.vertex.VertexFormat; import com.mojang.math.Quaternion; import com.mojang.math.Vector3f; + import net.fabricmc.loader.api.FabricLoader; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; diff --git a/src/main/java/ru/betterend/mixin/common/AnvilBlockMixin.java b/src/main/java/ru/betterend/mixin/common/AnvilBlockMixin.java index b58e098b..fa27a791 100644 --- a/src/main/java/ru/betterend/mixin/common/AnvilBlockMixin.java +++ b/src/main/java/ru/betterend/mixin/common/AnvilBlockMixin.java @@ -1,12 +1,13 @@ package ru.betterend.mixin.common; -import net.minecraft.world.level.block.AnvilBlock; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.properties.IntegerProperty; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import net.minecraft.world.level.block.AnvilBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.IntegerProperty; import ru.betterend.blocks.basis.EndAnvilBlock; @Mixin(AnvilBlock.class) diff --git a/src/main/java/ru/betterend/mixin/common/AnvilMenuMixin.java b/src/main/java/ru/betterend/mixin/common/AnvilMenuMixin.java index f23b4e0f..cdd7f400 100644 --- a/src/main/java/ru/betterend/mixin/common/AnvilMenuMixin.java +++ b/src/main/java/ru/betterend/mixin/common/AnvilMenuMixin.java @@ -3,6 +3,14 @@ package ru.betterend.mixin.common; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + import net.minecraft.tags.BlockTags; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; @@ -16,12 +24,6 @@ import net.minecraft.world.item.crafting.RecipeManager; import net.minecraft.world.level.block.AnvilBlock; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import ru.betterend.blocks.basis.EndAnvilBlock; import ru.betterend.interfaces.AnvilScreenHandlerExtended; import ru.betterend.recipe.builders.AnvilRecipe; diff --git a/src/main/java/ru/betterend/mixin/common/ArmorItemAccessor.java b/src/main/java/ru/betterend/mixin/common/ArmorItemAccessor.java index 33f8224a..efd97bf5 100644 --- a/src/main/java/ru/betterend/mixin/common/ArmorItemAccessor.java +++ b/src/main/java/ru/betterend/mixin/common/ArmorItemAccessor.java @@ -1,14 +1,16 @@ package ru.betterend.mixin.common; import java.util.UUID; -import net.minecraft.world.entity.ai.attributes.Attribute; -import net.minecraft.world.entity.ai.attributes.AttributeModifier; -import net.minecraft.world.item.ArmorItem; + import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; import com.google.common.collect.Multimap; +import net.minecraft.world.entity.ai.attributes.Attribute; +import net.minecraft.world.entity.ai.attributes.AttributeModifier; +import net.minecraft.world.item.ArmorItem; + @Mixin(ArmorItem.class) public interface ArmorItemAccessor { @Accessor("ARMOR_MODIFIER_UUID_PER_SLOT") diff --git a/src/main/java/ru/betterend/mixin/common/BiomeGenerationSettingsAccessor.java b/src/main/java/ru/betterend/mixin/common/BiomeGenerationSettingsAccessor.java index 47bc7b98..eb1f962b 100644 --- a/src/main/java/ru/betterend/mixin/common/BiomeGenerationSettingsAccessor.java +++ b/src/main/java/ru/betterend/mixin/common/BiomeGenerationSettingsAccessor.java @@ -2,11 +2,13 @@ package ru.betterend.mixin.common; import java.util.List; import java.util.function.Supplier; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + import net.minecraft.world.level.biome.BiomeGenerationSettings; import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeature; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; @Mixin(BiomeGenerationSettings.class) public interface BiomeGenerationSettingsAccessor { diff --git a/src/main/java/ru/betterend/mixin/common/BlockBehaviourMixin.java b/src/main/java/ru/betterend/mixin/common/BlockBehaviourMixin.java index a0953f41..ed4ae4d8 100644 --- a/src/main/java/ru/betterend/mixin/common/BlockBehaviourMixin.java +++ b/src/main/java/ru/betterend/mixin/common/BlockBehaviourMixin.java @@ -1,6 +1,14 @@ package ru.betterend.mixin.common; import java.util.List; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import com.google.common.collect.Lists; + import net.minecraft.util.Mth; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; @@ -11,12 +19,6 @@ import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.world.level.storage.loot.parameters.LootContextParams; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; - -import com.google.common.collect.Lists; import ru.betterend.item.tool.EndHammerItem; import ru.betterend.util.MHelper; diff --git a/src/main/java/ru/betterend/mixin/common/BoneMealItemMixin.java b/src/main/java/ru/betterend/mixin/common/BoneMealItemMixin.java index 29bd14f5..b352bc3f 100644 --- a/src/main/java/ru/betterend/mixin/common/BoneMealItemMixin.java +++ b/src/main/java/ru/betterend/mixin/common/BoneMealItemMixin.java @@ -1,6 +1,12 @@ package ru.betterend.mixin.common; import java.util.Random; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; @@ -12,10 +18,6 @@ import net.minecraft.world.level.biome.Biome.BiomeCategory; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockState; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import ru.betterend.registry.EndBiomes; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; diff --git a/src/main/java/ru/betterend/mixin/common/ChorusFlowerBlockMixin.java b/src/main/java/ru/betterend/mixin/common/ChorusFlowerBlockMixin.java index ba5f2062..cfb4f4b3 100644 --- a/src/main/java/ru/betterend/mixin/common/ChorusFlowerBlockMixin.java +++ b/src/main/java/ru/betterend/mixin/common/ChorusFlowerBlockMixin.java @@ -1,6 +1,16 @@ package ru.betterend.mixin.common; import java.util.Random; + +import org.jetbrains.annotations.Nullable; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; @@ -16,14 +26,6 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; diff --git a/src/main/java/ru/betterend/mixin/common/ChorusPlantBlockMixin.java b/src/main/java/ru/betterend/mixin/common/ChorusPlantBlockMixin.java index 55539d66..c6f1bdcd 100644 --- a/src/main/java/ru/betterend/mixin/common/ChorusPlantBlockMixin.java +++ b/src/main/java/ru/betterend/mixin/common/ChorusPlantBlockMixin.java @@ -1,5 +1,11 @@ package ru.betterend.mixin.common; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.item.context.BlockPlaceContext; @@ -14,11 +20,6 @@ import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.BlockStateProperties; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; diff --git a/src/main/java/ru/betterend/mixin/common/ChorusPlantFeatureMixin.java b/src/main/java/ru/betterend/mixin/common/ChorusPlantFeatureMixin.java index de29482a..bcc4191f 100644 --- a/src/main/java/ru/betterend/mixin/common/ChorusPlantFeatureMixin.java +++ b/src/main/java/ru/betterend/mixin/common/ChorusPlantFeatureMixin.java @@ -1,6 +1,12 @@ package ru.betterend.mixin.common; import java.util.Random; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + import net.minecraft.core.BlockPos; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.Blocks; @@ -10,10 +16,6 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.ChorusPlantFeature; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import ru.betterend.registry.EndBlocks; import ru.betterend.util.BlocksHelper; import ru.betterend.util.MHelper; diff --git a/src/main/java/ru/betterend/mixin/common/ChunkBiomeContainerMixin.java b/src/main/java/ru/betterend/mixin/common/ChunkBiomeContainerMixin.java index 5f559269..9733e648 100644 --- a/src/main/java/ru/betterend/mixin/common/ChunkBiomeContainerMixin.java +++ b/src/main/java/ru/betterend/mixin/common/ChunkBiomeContainerMixin.java @@ -1,12 +1,13 @@ package ru.betterend.mixin.common; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; + import net.minecraft.core.BlockPos; import net.minecraft.util.Mth; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.chunk.ChunkBiomeContainer; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; import ru.betterend.interfaces.IBiomeArray; @Mixin(ChunkBiomeContainer.class) diff --git a/src/main/java/ru/betterend/mixin/common/ComposterBlockAccessor.java b/src/main/java/ru/betterend/mixin/common/ComposterBlockAccessor.java index c0bc899e..1d754b20 100644 --- a/src/main/java/ru/betterend/mixin/common/ComposterBlockAccessor.java +++ b/src/main/java/ru/betterend/mixin/common/ComposterBlockAccessor.java @@ -1,9 +1,10 @@ package ru.betterend.mixin.common; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Invoker; + import net.minecraft.world.level.ItemLike; import net.minecraft.world.level.block.ComposterBlock; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Invoker; @Mixin(ComposterBlock.class) public interface ComposterBlockAccessor { diff --git a/src/main/java/ru/betterend/mixin/common/CraftingMenuMixin.java b/src/main/java/ru/betterend/mixin/common/CraftingMenuMixin.java index 48e81bf2..11c7f94e 100644 --- a/src/main/java/ru/betterend/mixin/common/CraftingMenuMixin.java +++ b/src/main/java/ru/betterend/mixin/common/CraftingMenuMixin.java @@ -1,9 +1,5 @@ package ru.betterend.mixin.common; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.inventory.ContainerLevelAccess; -import net.minecraft.world.inventory.CraftingMenu; -import net.minecraft.world.level.block.CraftingTableBlock; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -11,6 +7,11 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.ContainerLevelAccess; +import net.minecraft.world.inventory.CraftingMenu; +import net.minecraft.world.level.block.CraftingTableBlock; + @Mixin(CraftingMenu.class) public abstract class CraftingMenuMixin { @Final diff --git a/src/main/java/ru/betterend/mixin/common/DimensionTypeMixin.java b/src/main/java/ru/betterend/mixin/common/DimensionTypeMixin.java index 982e906c..5e0ac980 100644 --- a/src/main/java/ru/betterend/mixin/common/DimensionTypeMixin.java +++ b/src/main/java/ru/betterend/mixin/common/DimensionTypeMixin.java @@ -1,15 +1,16 @@ package ru.betterend.mixin.common; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + import net.minecraft.core.Registry; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.dimension.DimensionType; import net.minecraft.world.level.levelgen.NoiseBasedChunkGenerator; import net.minecraft.world.level.levelgen.NoiseGeneratorSettings; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import ru.betterend.world.generator.BetterEndBiomeSource; import ru.betterend.world.generator.GeneratorOptions; diff --git a/src/main/java/ru/betterend/mixin/common/EnchantmentMenuMixin.java b/src/main/java/ru/betterend/mixin/common/EnchantmentMenuMixin.java index e47fa771..311b79fe 100644 --- a/src/main/java/ru/betterend/mixin/common/EnchantmentMenuMixin.java +++ b/src/main/java/ru/betterend/mixin/common/EnchantmentMenuMixin.java @@ -2,6 +2,14 @@ package ru.betterend.mixin.common; import java.util.List; import java.util.Random; + +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + import net.minecraft.core.Registry; import net.minecraft.world.Container; import net.minecraft.world.inventory.AbstractContainerMenu; @@ -12,12 +20,6 @@ import net.minecraft.world.inventory.MenuType; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.enchantment.EnchantmentHelper; import net.minecraft.world.item.enchantment.EnchantmentInstance; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import ru.betterend.registry.EndTags; @Mixin(EnchantmentMenu.class) diff --git a/src/main/java/ru/betterend/mixin/common/EndCityFeatureMixin.java b/src/main/java/ru/betterend/mixin/common/EndCityFeatureMixin.java index d4b691f1..e91f8949 100644 --- a/src/main/java/ru/betterend/mixin/common/EndCityFeatureMixin.java +++ b/src/main/java/ru/betterend/mixin/common/EndCityFeatureMixin.java @@ -1,5 +1,11 @@ package ru.betterend.mixin.common; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.biome.BiomeSource; @@ -7,11 +13,6 @@ import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.WorldgenRandom; import net.minecraft.world.level.levelgen.feature.EndCityFeature; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import ru.betterend.world.generator.GeneratorOptions; @Mixin(EndCityFeature.class) diff --git a/src/main/java/ru/betterend/mixin/common/EndPodiumFeatureMixin.java b/src/main/java/ru/betterend/mixin/common/EndPodiumFeatureMixin.java index a9c095b2..e96ded09 100644 --- a/src/main/java/ru/betterend/mixin/common/EndPodiumFeatureMixin.java +++ b/src/main/java/ru/betterend/mixin/common/EndPodiumFeatureMixin.java @@ -1,6 +1,15 @@ package ru.betterend.mixin.common; import java.util.Random; + +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.ModifyVariable; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + import net.minecraft.core.BlockPos; import net.minecraft.nbt.NbtUtils; import net.minecraft.world.level.WorldGenLevel; @@ -10,13 +19,6 @@ import net.minecraft.world.level.levelgen.feature.EndPodiumFeature; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.levelgen.structure.templatesystem.StructurePlaceSettings; import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.ModifyVariable; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import ru.betterend.BetterEnd; import ru.betterend.util.StructureHelper; import ru.betterend.util.WorldDataUtil; diff --git a/src/main/java/ru/betterend/mixin/common/EnderManMixin.java b/src/main/java/ru/betterend/mixin/common/EnderManMixin.java index dc5f1424..4102fef9 100644 --- a/src/main/java/ru/betterend/mixin/common/EnderManMixin.java +++ b/src/main/java/ru/betterend/mixin/common/EnderManMixin.java @@ -1,13 +1,14 @@ package ru.betterend.mixin.common; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.monster.EnderMan; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.enchantment.EnchantmentHelper; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import ru.betterend.effects.EndEnchantments; import ru.betterend.effects.EndStatusEffects; diff --git a/src/main/java/ru/betterend/mixin/common/EntityMixin.java b/src/main/java/ru/betterend/mixin/common/EntityMixin.java index 914cd05b..4f9372b8 100644 --- a/src/main/java/ru/betterend/mixin/common/EntityMixin.java +++ b/src/main/java/ru/betterend/mixin/common/EntityMixin.java @@ -1,5 +1,12 @@ package ru.betterend.mixin.common; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.Entity; @@ -7,12 +14,6 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.level.Level; import net.minecraft.world.level.portal.PortalInfo; import net.minecraft.world.phys.Vec3; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import ru.betterend.interfaces.TeleportingEntity; @Mixin(Entity.class) diff --git a/src/main/java/ru/betterend/mixin/common/LivingEntityMixin.java b/src/main/java/ru/betterend/mixin/common/LivingEntityMixin.java index 138e9c29..71777ea6 100644 --- a/src/main/java/ru/betterend/mixin/common/LivingEntityMixin.java +++ b/src/main/java/ru/betterend/mixin/common/LivingEntityMixin.java @@ -1,6 +1,13 @@ package ru.betterend.mixin.common; import java.util.Collection; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.ModifyArg; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + import net.minecraft.world.damagesource.DamageSource; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EquipmentSlot; @@ -8,11 +15,6 @@ import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.ai.attributes.AttributeModifier; import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.item.Item; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.ModifyArg; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(LivingEntity.class) public abstract class LivingEntityMixin { diff --git a/src/main/java/ru/betterend/mixin/common/MonsterMixin.java b/src/main/java/ru/betterend/mixin/common/MonsterMixin.java index d3f85e17..b2d77c7c 100644 --- a/src/main/java/ru/betterend/mixin/common/MonsterMixin.java +++ b/src/main/java/ru/betterend/mixin/common/MonsterMixin.java @@ -2,6 +2,12 @@ package ru.betterend.mixin.common; import java.util.List; import java.util.Random; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + import net.minecraft.core.BlockPos; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.MobSpawnType; @@ -9,10 +15,6 @@ import net.minecraft.world.entity.monster.EnderMan; import net.minecraft.world.entity.monster.Monster; import net.minecraft.world.level.ServerLevelAccessor; import net.minecraft.world.phys.AABB; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(Monster.class) public class MonsterMixin { diff --git a/src/main/java/ru/betterend/mixin/common/NoiseBasedChunkGeneratorMixin.java b/src/main/java/ru/betterend/mixin/common/NoiseBasedChunkGeneratorMixin.java index 7fcd2978..8d59913e 100644 --- a/src/main/java/ru/betterend/mixin/common/NoiseBasedChunkGeneratorMixin.java +++ b/src/main/java/ru/betterend/mixin/common/NoiseBasedChunkGeneratorMixin.java @@ -1,17 +1,19 @@ package ru.betterend.mixin.common; import java.util.function.Supplier; -import net.minecraft.world.level.biome.BiomeSource; -import net.minecraft.world.level.chunk.ChunkGenerator; -import net.minecraft.world.level.levelgen.NoiseBasedChunkGenerator; -import net.minecraft.world.level.levelgen.NoiseGeneratorSettings; -import net.minecraft.world.level.levelgen.StructureSettings; + import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import net.minecraft.world.level.biome.BiomeSource; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.NoiseBasedChunkGenerator; +import net.minecraft.world.level.levelgen.NoiseGeneratorSettings; +import net.minecraft.world.level.levelgen.StructureSettings; import ru.betterend.world.generator.GeneratorOptions; import ru.betterend.world.generator.TerrainGenerator; diff --git a/src/main/java/ru/betterend/mixin/common/PlayerAdvancementsMixin.java b/src/main/java/ru/betterend/mixin/common/PlayerAdvancementsMixin.java index a1bbcb95..08f2d54d 100644 --- a/src/main/java/ru/betterend/mixin/common/PlayerAdvancementsMixin.java +++ b/src/main/java/ru/betterend/mixin/common/PlayerAdvancementsMixin.java @@ -1,14 +1,15 @@ package ru.betterend.mixin.common; -import net.minecraft.advancements.Advancement; -import net.minecraft.server.PlayerAdvancements; -import net.minecraft.server.level.ServerPlayer; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.At.Shift; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import net.minecraft.advancements.Advancement; +import net.minecraft.server.PlayerAdvancements; +import net.minecraft.server.level.ServerPlayer; import ru.betterend.events.PlayerAdvancementsEvents; @Mixin(PlayerAdvancements.class) diff --git a/src/main/java/ru/betterend/mixin/common/PlayerMixin.java b/src/main/java/ru/betterend/mixin/common/PlayerMixin.java index 46a1c6dc..7b177e3a 100644 --- a/src/main/java/ru/betterend/mixin/common/PlayerMixin.java +++ b/src/main/java/ru/betterend/mixin/common/PlayerMixin.java @@ -1,16 +1,18 @@ package ru.betterend.mixin.common; import java.util.Optional; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.Vec3; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import ru.betterend.blocks.BlockProperties; import ru.betterend.blocks.BlockProperties.TripleShape; import ru.betterend.registry.EndBlocks; diff --git a/src/main/java/ru/betterend/mixin/common/PotionBrewingAccessor.java b/src/main/java/ru/betterend/mixin/common/PotionBrewingAccessor.java index d863d6cb..49366687 100644 --- a/src/main/java/ru/betterend/mixin/common/PotionBrewingAccessor.java +++ b/src/main/java/ru/betterend/mixin/common/PotionBrewingAccessor.java @@ -1,10 +1,11 @@ package ru.betterend.mixin.common; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Invoker; + import net.minecraft.world.item.Item; import net.minecraft.world.item.alchemy.Potion; import net.minecraft.world.item.alchemy.PotionBrewing; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Invoker; @Mixin(PotionBrewing.class) public interface PotionBrewingAccessor { diff --git a/src/main/java/ru/betterend/mixin/common/RecipeManagerAccessor.java b/src/main/java/ru/betterend/mixin/common/RecipeManagerAccessor.java index 1f3e2fb8..0035a588 100644 --- a/src/main/java/ru/betterend/mixin/common/RecipeManagerAccessor.java +++ b/src/main/java/ru/betterend/mixin/common/RecipeManagerAccessor.java @@ -1,12 +1,14 @@ package ru.betterend.mixin.common; import java.util.Map; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.crafting.Recipe; import net.minecraft.world.item.crafting.RecipeManager; import net.minecraft.world.item.crafting.RecipeType; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; @Mixin(RecipeManager.class) public interface RecipeManagerAccessor { diff --git a/src/main/java/ru/betterend/mixin/common/RecipeManagerMixin.java b/src/main/java/ru/betterend/mixin/common/RecipeManagerMixin.java index fa5c1250..02e33c4b 100644 --- a/src/main/java/ru/betterend/mixin/common/RecipeManagerMixin.java +++ b/src/main/java/ru/betterend/mixin/common/RecipeManagerMixin.java @@ -5,6 +5,16 @@ import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Optional; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import com.google.gson.JsonElement; + import net.minecraft.Util; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.packs.resources.ResourceManager; @@ -14,14 +24,6 @@ import net.minecraft.world.item.crafting.Recipe; import net.minecraft.world.item.crafting.RecipeManager; import net.minecraft.world.item.crafting.RecipeType; import net.minecraft.world.level.Level; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Overwrite; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -import com.google.gson.JsonElement; import ru.betterend.recipe.EndRecipeManager; @Mixin(RecipeManager.class) diff --git a/src/main/java/ru/betterend/mixin/common/ServerPlayerMixin.java b/src/main/java/ru/betterend/mixin/common/ServerPlayerMixin.java index 044ca48f..a4d0ce6a 100644 --- a/src/main/java/ru/betterend/mixin/common/ServerPlayerMixin.java +++ b/src/main/java/ru/betterend/mixin/common/ServerPlayerMixin.java @@ -9,6 +9,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import com.mojang.authlib.GameProfile; + import net.minecraft.core.BlockPos; import net.minecraft.network.protocol.game.ClientboundChangeDifficultyPacket; import net.minecraft.network.protocol.game.ClientboundLevelEventPacket; diff --git a/src/main/java/ru/betterend/mixin/common/SlimeMixin.java b/src/main/java/ru/betterend/mixin/common/SlimeMixin.java index 8dec140b..5d5ba94f 100644 --- a/src/main/java/ru/betterend/mixin/common/SlimeMixin.java +++ b/src/main/java/ru/betterend/mixin/common/SlimeMixin.java @@ -1,8 +1,9 @@ package ru.betterend.mixin.common; -import net.minecraft.world.entity.monster.Slime; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; + +import net.minecraft.world.entity.monster.Slime; import ru.betterend.interfaces.ISlime; @Mixin(Slime.class) diff --git a/src/main/java/ru/betterend/mixin/common/SpikeFeatureMixin.java b/src/main/java/ru/betterend/mixin/common/SpikeFeatureMixin.java index 4968ed91..699b1250 100644 --- a/src/main/java/ru/betterend/mixin/common/SpikeFeatureMixin.java +++ b/src/main/java/ru/betterend/mixin/common/SpikeFeatureMixin.java @@ -7,6 +7,7 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/ru/betterend/mixin/common/TagLoaderMixin.java b/src/main/java/ru/betterend/mixin/common/TagLoaderMixin.java index 0237ad8f..bdc9f568 100644 --- a/src/main/java/ru/betterend/mixin/common/TagLoaderMixin.java +++ b/src/main/java/ru/betterend/mixin/common/TagLoaderMixin.java @@ -4,16 +4,18 @@ import java.util.Map; import java.util.concurrent.CompletableFuture; import java.util.concurrent.Executor; -import com.google.common.collect.Maps; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.packs.resources.ResourceManager; -import net.minecraft.tags.Tag; -import net.minecraft.tags.TagLoader; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import com.google.common.collect.Maps; + +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.packs.resources.ResourceManager; +import net.minecraft.tags.Tag; +import net.minecraft.tags.TagLoader; import ru.betterend.util.TagHelper; @Mixin(TagLoader.class) diff --git a/src/main/java/ru/betterend/noise/VoronoiNoise.java b/src/main/java/ru/betterend/noise/VoronoiNoise.java index 20356055..b1a9a619 100644 --- a/src/main/java/ru/betterend/noise/VoronoiNoise.java +++ b/src/main/java/ru/betterend/noise/VoronoiNoise.java @@ -1,6 +1,7 @@ package ru.betterend.noise; import java.util.Random; + import net.minecraft.core.BlockPos; import ru.betterend.util.MHelper; diff --git a/src/main/java/ru/betterend/particle/GlowingSphereParticleEffect.java b/src/main/java/ru/betterend/particle/GlowingSphereParticleEffect.java index 67d8fca1..1481b70b 100644 --- a/src/main/java/ru/betterend/particle/GlowingSphereParticleEffect.java +++ b/src/main/java/ru/betterend/particle/GlowingSphereParticleEffect.java @@ -1,6 +1,7 @@ package ru.betterend.particle; import java.util.Locale; + import net.minecraft.core.Registry; import net.minecraft.core.particles.ParticleOptions; import net.minecraft.core.particles.ParticleType; diff --git a/src/main/java/ru/betterend/patterns/BlockPatterned.java b/src/main/java/ru/betterend/patterns/BlockPatterned.java index 3e35dee0..f1ca3f48 100644 --- a/src/main/java/ru/betterend/patterns/BlockPatterned.java +++ b/src/main/java/ru/betterend/patterns/BlockPatterned.java @@ -1,13 +1,14 @@ -package ru.betterend.patterns; - -import java.io.Reader; -import net.minecraft.resources.ResourceLocation; - -public interface BlockPatterned extends Patterned { - default String getStatesPattern(Reader data) { - return null; - } - default ResourceLocation statePatternId() { - return null; - } -} +package ru.betterend.patterns; + +import java.io.Reader; + +import net.minecraft.resources.ResourceLocation; + +public interface BlockPatterned extends Patterned { + default String getStatesPattern(Reader data) { + return null; + } + default ResourceLocation statePatternId() { + return null; + } +} diff --git a/src/main/java/ru/betterend/patterns/Patterns.java b/src/main/java/ru/betterend/patterns/Patterns.java index 9db38371..53851122 100644 --- a/src/main/java/ru/betterend/patterns/Patterns.java +++ b/src/main/java/ru/betterend/patterns/Patterns.java @@ -1,156 +1,158 @@ -package ru.betterend.patterns; - -import java.io.BufferedReader; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.Reader; -import java.nio.charset.StandardCharsets; -import java.util.Map; -import java.util.Map.Entry; -import java.util.stream.Collectors; -import net.minecraft.client.Minecraft; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.packs.resources.ResourceManager; -import com.google.common.collect.Maps; -import ru.betterend.BetterEnd; - -public class Patterns { - - //Blockstates - public final static ResourceLocation STATE_SIMPLE = BetterEnd.makeID("patterns/blockstate/block.json"); - public final static ResourceLocation STATE_SLAB = BetterEnd.makeID("patterns/blockstate/slab.json"); - public final static ResourceLocation STATE_STAIRS = BetterEnd.makeID("patterns/blockstate/stairs.json"); - public final static ResourceLocation STATE_WALL = BetterEnd.makeID("patterns/blockstate/wall.json"); - public final static ResourceLocation STATE_FENCE = BetterEnd.makeID("patterns/blockstate/fence.json"); - public final static ResourceLocation STATE_BUTTON = BetterEnd.makeID("patterns/blockstate/button.json"); - public final static ResourceLocation STATE_PILLAR = BetterEnd.makeID("patterns/blockstate/pillar.json"); - public final static ResourceLocation STATE_PLATE = BetterEnd.makeID("patterns/blockstate/pressure_plate.json"); - public final static ResourceLocation STATE_PLATE_ROTATED = BetterEnd.makeID("patterns/blockstate/pressure_plate_rotated.json"); - public final static ResourceLocation STATE_DOOR = BetterEnd.makeID("patterns/blockstate/door.json"); - public final static ResourceLocation STATE_SAPLING = BetterEnd.makeID("patterns/blockstate/sapling.json"); - public final static ResourceLocation STATE_GATE = BetterEnd.makeID("patterns/blockstate/fence_gate.json"); - public final static ResourceLocation STATE_TRAPDOOR = BetterEnd.makeID("patterns/blockstate/trapdoor.json"); - public final static ResourceLocation STATE_LADDER = BetterEnd.makeID("patterns/blockstate/ladder.json"); - public final static ResourceLocation STATE_BARREL = BetterEnd.makeID("patterns/blockstate/barrel.json"); - public final static ResourceLocation STATE_PEDESTAL = BetterEnd.makeID("patterns/blockstate/pedestal.json"); - public final static ResourceLocation STATE_STONE_LANTERN = BetterEnd.makeID("patterns/blockstate/stone_lantern.json"); - public final static ResourceLocation STATE_DIRECT = BetterEnd.makeID("patterns/blockstate/direct.json"); - public final static ResourceLocation STATE_BULB_LANTERN = BetterEnd.makeID("patterns/blockstate/bulb_lantern.json"); - public final static ResourceLocation STATE_COMPOSTER = BetterEnd.makeID("patterns/blockstate/composter.json"); - public final static ResourceLocation STATE_BARS = BetterEnd.makeID("patterns/blockstate/bars.json"); - public final static ResourceLocation STATE_ANVIL = BetterEnd.makeID("patterns/blockstate/anvil.json"); - public final static ResourceLocation STATE_ANVIL_LONG = BetterEnd.makeID("patterns/blockstate/anvil_long.json"); - public final static ResourceLocation STATE_CHAIN = BetterEnd.makeID("patterns/blockstate/chain.json"); - public final static ResourceLocation STATE_CHANDELIER = BetterEnd.makeID("patterns/blockstate/chandelier.json"); - public final static ResourceLocation STATE_FURNACE = BetterEnd.makeID("patterns/blockstate/furnace.json"); - public final static ResourceLocation STATE_ROTATED_TOP = BetterEnd.makeID("patterns/blockstate/rotated_top.json"); - public final static ResourceLocation STATE_TRIPLE_ROTATED_TOP = BetterEnd.makeID("patterns/blockstate/triple_rotated_top.json"); - public final static ResourceLocation STATE_STALACTITE = BetterEnd.makeID("patterns/blockstate/stalactite.json"); - - //Models Block - public final static ResourceLocation BLOCK_EMPTY = BetterEnd.makeID("patterns/block/empty.json"); - public final static ResourceLocation BLOCK_BASE = BetterEnd.makeID("patterns/block/block.json"); - public final static ResourceLocation BLOCK_SIDED = BetterEnd.makeID("patterns/block/block_sided.json"); - public final static ResourceLocation BLOCK_BOTTOM_TOP = BetterEnd.makeID("patterns/block/block_bottom_top.json"); - public final static ResourceLocation BLOCK_SLAB = BetterEnd.makeID("patterns/block/slab.json"); - public final static ResourceLocation BLOCK_STAIR = BetterEnd.makeID("patterns/block/stairs.json"); - public final static ResourceLocation BLOCK_STAIR_INNER = BetterEnd.makeID("patterns/block/inner_stairs.json"); - public final static ResourceLocation BLOCK_STAIR_OUTER = BetterEnd.makeID("patterns/block/outer_stairs.json"); - public final static ResourceLocation BLOCK_WALL_POST = BetterEnd.makeID("patterns/block/wall_post.json"); - public final static ResourceLocation BLOCK_WALL_SIDE = BetterEnd.makeID("patterns/block/wall_side.json"); - public final static ResourceLocation BLOCK_WALL_SIDE_TALL = BetterEnd.makeID("patterns/block/wall_side_tall.json"); - public final static ResourceLocation BLOCK_FENCE_POST = BetterEnd.makeID("patterns/block/fence_post.json"); - public final static ResourceLocation BLOCK_FENCE_SIDE = BetterEnd.makeID("patterns/block/fence_side.json"); - public final static ResourceLocation BLOCK_BUTTON = BetterEnd.makeID("patterns/block/button.json"); - public final static ResourceLocation BLOCK_BUTTON_PRESSED = BetterEnd.makeID("patterns/block/button_pressed.json"); - public final static ResourceLocation BLOCK_PILLAR = BetterEnd.makeID("patterns/block/pillar.json"); - public final static ResourceLocation BLOCK_PLATE_UP = BetterEnd.makeID("patterns/block/pressure_plate_up.json"); - public final static ResourceLocation BLOCK_PLATE_DOWN = BetterEnd.makeID("patterns/block/pressure_plate_down.json"); - public final static ResourceLocation BLOCK_DOOR_TOP = BetterEnd.makeID("patterns/block/door_top.json"); - public final static ResourceLocation BLOCK_DOOR_TOP_HINGE = BetterEnd.makeID("patterns/block/door_top_hinge.json"); - public final static ResourceLocation BLOCK_DOOR_BOTTOM = BetterEnd.makeID("patterns/block/door_bottom.json"); - public final static ResourceLocation BLOCK_DOOR_BOTTOM_HINGE = BetterEnd.makeID("patterns/block/door_bottom_hinge.json"); - public final static ResourceLocation BLOCK_CROSS = BetterEnd.makeID("patterns/block/cross.json"); - public final static ResourceLocation BLOCK_CROSS_SHADED = BetterEnd.makeID("patterns/block/cross_shaded.json"); - public final static ResourceLocation BLOCK_GATE_CLOSED = BetterEnd.makeID("patterns/block/fence_gate_closed.json"); - public final static ResourceLocation BLOCK_GATE_CLOSED_WALL = BetterEnd.makeID("patterns/block/wall_gate_closed.json"); - public final static ResourceLocation BLOCK_GATE_OPEN = BetterEnd.makeID("patterns/block/fence_gate_open.json"); - public final static ResourceLocation BLOCK_GATE_OPEN_WALL = BetterEnd.makeID("patterns/block/wall_gate_open.json"); - public final static ResourceLocation BLOCK_TRAPDOOR = BetterEnd.makeID("patterns/block/trapdoor.json"); - public final static ResourceLocation BLOCK_LADDER = BetterEnd.makeID("patterns/block/ladder.json"); - public final static ResourceLocation BLOCK_BARREL_OPEN = BetterEnd.makeID("patterns/block/barrel_open.json"); - public final static ResourceLocation BLOCK_PEDESTAL_DEFAULT = BetterEnd.makeID("patterns/block/pedestal_default.json"); - public final static ResourceLocation BLOKC_PEDESTAL_COLUMN = BetterEnd.makeID("patterns/block/pedestal_column.json"); - public final static ResourceLocation BLOCK_PEDESTAL_COLUMN_TOP = BetterEnd.makeID("patterns/block/pedestal_column_top.json"); - public final static ResourceLocation BLOCK_PEDESTAL_TOP = BetterEnd.makeID("patterns/block/pedestal_top.json"); - public final static ResourceLocation BLOCK_PEDESTAL_BOTTOM = BetterEnd.makeID("patterns/block/pedestal_bottom.json"); - public final static ResourceLocation BLOCK_PEDESTAL_PILLAR = BetterEnd.makeID("patterns/block/pedestal_pillar.json"); - public final static ResourceLocation BLOCK_BOOKSHELF = BetterEnd.makeID("patterns/block/bookshelf.json"); - public final static ResourceLocation BLOCK_STONE_LANTERN_CEIL = BetterEnd.makeID("patterns/block/stone_lantern_ceil.json"); - public final static ResourceLocation BLOCK_STONE_LANTERN_FLOOR = BetterEnd.makeID("patterns/block/stone_lantern_floor.json"); - public final static ResourceLocation BLOCK_BULB_LANTERN_FLOOR = BetterEnd.makeID("patterns/block/bulb_lantern_floor.json"); - public final static ResourceLocation BLOCK_BULB_LANTERN_CEIL = BetterEnd.makeID("patterns/block/bulb_lantern_ceil.json"); - public final static ResourceLocation BLOCK_PETAL_COLORED = BetterEnd.makeID("models/block/block_petal_colored.json"); - public final static ResourceLocation BLOCK_COMPOSTER = BetterEnd.makeID("patterns/block/composter.json"); - public final static ResourceLocation BLOCK_COLORED = BetterEnd.makeID("patterns/block/block_colored.json"); - public final static ResourceLocation BLOCK_BARS_POST = BetterEnd.makeID("patterns/block/bars_post.json"); - public final static ResourceLocation BLOCK_BARS_SIDE = BetterEnd.makeID("patterns/block/bars_side.json"); - public final static ResourceLocation BLOCK_ANVIL = BetterEnd.makeID("patterns/block/anvil.json"); - public final static ResourceLocation BLOCK_CHAIN = BetterEnd.makeID("patterns/block/chain.json"); - public final static ResourceLocation BLOCK_CHANDELIER_FLOOR = BetterEnd.makeID("patterns/block/chandelier_floor.json"); - public final static ResourceLocation BLOCK_CHANDELIER_WALL = BetterEnd.makeID("patterns/block/chandelier_wall.json"); - public final static ResourceLocation BLOCK_CHANDELIER_CEIL = BetterEnd.makeID("patterns/block/chandelier_ceil.json"); - public final static ResourceLocation BLOCK_FURNACE = BetterEnd.makeID("patterns/block/furnace.json"); - public final static ResourceLocation BLOCK_FURNACE_GLOW = BetterEnd.makeID("patterns/block/furnace_glow.json"); - public final static ResourceLocation BLOCK_TOP_SIDE_BOTTOM = BetterEnd.makeID("patterns/block/top_side_bottom.json"); - public final static ResourceLocation BLOCK_PATH = BetterEnd.makeID("patterns/block/path.json"); - - //Models Item - public final static ResourceLocation ITEM_WALL = BetterEnd.makeID("patterns/item/pattern_wall.json"); - public final static ResourceLocation ITEM_FENCE = BetterEnd.makeID("patterns/item/pattern_fence.json"); - public final static ResourceLocation ITEM_BUTTON = BetterEnd.makeID("patterns/item/pattern_button.json"); - public final static ResourceLocation ITEM_CHEST = BetterEnd.makeID("patterns/item/pattern_chest.json"); - public final static ResourceLocation ITEM_BLOCK = BetterEnd.makeID("patterns/item/pattern_block_item.json"); - public final static ResourceLocation ITEM_GENERATED = BetterEnd.makeID("patterns/item/pattern_item_generated.json"); - public final static ResourceLocation ITEM_HANDHELD = BetterEnd.makeID("patterns/item/pattern_item_handheld.json"); - public final static ResourceLocation ITEM_SPAWN_EGG = BetterEnd.makeID("patterns/item/pattern_item_spawn_egg.json"); - - public static String createJson(Reader data, String parent, String block) { - try (BufferedReader buffer = new BufferedReader(data)) { - return buffer.lines().collect(Collectors.joining()) - .replace("%parent%", parent) - .replace("%block%", block); - } catch (Exception ex) { - return null; - } - } - - public static String createJson(ResourceLocation patternId, String parent, String block) { - ResourceManager resourceManager = Minecraft.getInstance().getResourceManager(); - try (InputStream input = resourceManager.getResource(patternId).getInputStream()) { - return createJson(new InputStreamReader(input, StandardCharsets.UTF_8), parent, block); - } catch (Exception ex) { - return null; - } - } - - public static String createJson(ResourceLocation patternId, String texture) { - Map textures = Maps.newHashMap(); - textures.put("%texture%", texture); - return createJson(patternId, textures); - } - - public static String createJson(ResourceLocation patternId, Map textures) { - ResourceManager resourceManager = Minecraft.getInstance().getResourceManager(); - try (InputStream input = resourceManager.getResource(patternId).getInputStream()) { - String json = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8)) - .lines().collect(Collectors.joining()); - for (Entry texture : textures.entrySet()) { - json = json.replace(texture.getKey(), texture.getValue()); - } - return json; - } catch (Exception ex) { - return null; - } - } -} +package ru.betterend.patterns; + +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.nio.charset.StandardCharsets; +import java.util.Map; +import java.util.Map.Entry; +import java.util.stream.Collectors; + +import com.google.common.collect.Maps; + +import net.minecraft.client.Minecraft; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.packs.resources.ResourceManager; +import ru.betterend.BetterEnd; + +public class Patterns { + + //Blockstates + public final static ResourceLocation STATE_SIMPLE = BetterEnd.makeID("patterns/blockstate/block.json"); + public final static ResourceLocation STATE_SLAB = BetterEnd.makeID("patterns/blockstate/slab.json"); + public final static ResourceLocation STATE_STAIRS = BetterEnd.makeID("patterns/blockstate/stairs.json"); + public final static ResourceLocation STATE_WALL = BetterEnd.makeID("patterns/blockstate/wall.json"); + public final static ResourceLocation STATE_FENCE = BetterEnd.makeID("patterns/blockstate/fence.json"); + public final static ResourceLocation STATE_BUTTON = BetterEnd.makeID("patterns/blockstate/button.json"); + public final static ResourceLocation STATE_PILLAR = BetterEnd.makeID("patterns/blockstate/pillar.json"); + public final static ResourceLocation STATE_PLATE = BetterEnd.makeID("patterns/blockstate/pressure_plate.json"); + public final static ResourceLocation STATE_PLATE_ROTATED = BetterEnd.makeID("patterns/blockstate/pressure_plate_rotated.json"); + public final static ResourceLocation STATE_DOOR = BetterEnd.makeID("patterns/blockstate/door.json"); + public final static ResourceLocation STATE_SAPLING = BetterEnd.makeID("patterns/blockstate/sapling.json"); + public final static ResourceLocation STATE_GATE = BetterEnd.makeID("patterns/blockstate/fence_gate.json"); + public final static ResourceLocation STATE_TRAPDOOR = BetterEnd.makeID("patterns/blockstate/trapdoor.json"); + public final static ResourceLocation STATE_LADDER = BetterEnd.makeID("patterns/blockstate/ladder.json"); + public final static ResourceLocation STATE_BARREL = BetterEnd.makeID("patterns/blockstate/barrel.json"); + public final static ResourceLocation STATE_PEDESTAL = BetterEnd.makeID("patterns/blockstate/pedestal.json"); + public final static ResourceLocation STATE_STONE_LANTERN = BetterEnd.makeID("patterns/blockstate/stone_lantern.json"); + public final static ResourceLocation STATE_DIRECT = BetterEnd.makeID("patterns/blockstate/direct.json"); + public final static ResourceLocation STATE_BULB_LANTERN = BetterEnd.makeID("patterns/blockstate/bulb_lantern.json"); + public final static ResourceLocation STATE_COMPOSTER = BetterEnd.makeID("patterns/blockstate/composter.json"); + public final static ResourceLocation STATE_BARS = BetterEnd.makeID("patterns/blockstate/bars.json"); + public final static ResourceLocation STATE_ANVIL = BetterEnd.makeID("patterns/blockstate/anvil.json"); + public final static ResourceLocation STATE_ANVIL_LONG = BetterEnd.makeID("patterns/blockstate/anvil_long.json"); + public final static ResourceLocation STATE_CHAIN = BetterEnd.makeID("patterns/blockstate/chain.json"); + public final static ResourceLocation STATE_CHANDELIER = BetterEnd.makeID("patterns/blockstate/chandelier.json"); + public final static ResourceLocation STATE_FURNACE = BetterEnd.makeID("patterns/blockstate/furnace.json"); + public final static ResourceLocation STATE_ROTATED_TOP = BetterEnd.makeID("patterns/blockstate/rotated_top.json"); + public final static ResourceLocation STATE_TRIPLE_ROTATED_TOP = BetterEnd.makeID("patterns/blockstate/triple_rotated_top.json"); + public final static ResourceLocation STATE_STALACTITE = BetterEnd.makeID("patterns/blockstate/stalactite.json"); + + //Models Block + public final static ResourceLocation BLOCK_EMPTY = BetterEnd.makeID("patterns/block/empty.json"); + public final static ResourceLocation BLOCK_BASE = BetterEnd.makeID("patterns/block/block.json"); + public final static ResourceLocation BLOCK_SIDED = BetterEnd.makeID("patterns/block/block_sided.json"); + public final static ResourceLocation BLOCK_BOTTOM_TOP = BetterEnd.makeID("patterns/block/block_bottom_top.json"); + public final static ResourceLocation BLOCK_SLAB = BetterEnd.makeID("patterns/block/slab.json"); + public final static ResourceLocation BLOCK_STAIR = BetterEnd.makeID("patterns/block/stairs.json"); + public final static ResourceLocation BLOCK_STAIR_INNER = BetterEnd.makeID("patterns/block/inner_stairs.json"); + public final static ResourceLocation BLOCK_STAIR_OUTER = BetterEnd.makeID("patterns/block/outer_stairs.json"); + public final static ResourceLocation BLOCK_WALL_POST = BetterEnd.makeID("patterns/block/wall_post.json"); + public final static ResourceLocation BLOCK_WALL_SIDE = BetterEnd.makeID("patterns/block/wall_side.json"); + public final static ResourceLocation BLOCK_WALL_SIDE_TALL = BetterEnd.makeID("patterns/block/wall_side_tall.json"); + public final static ResourceLocation BLOCK_FENCE_POST = BetterEnd.makeID("patterns/block/fence_post.json"); + public final static ResourceLocation BLOCK_FENCE_SIDE = BetterEnd.makeID("patterns/block/fence_side.json"); + public final static ResourceLocation BLOCK_BUTTON = BetterEnd.makeID("patterns/block/button.json"); + public final static ResourceLocation BLOCK_BUTTON_PRESSED = BetterEnd.makeID("patterns/block/button_pressed.json"); + public final static ResourceLocation BLOCK_PILLAR = BetterEnd.makeID("patterns/block/pillar.json"); + public final static ResourceLocation BLOCK_PLATE_UP = BetterEnd.makeID("patterns/block/pressure_plate_up.json"); + public final static ResourceLocation BLOCK_PLATE_DOWN = BetterEnd.makeID("patterns/block/pressure_plate_down.json"); + public final static ResourceLocation BLOCK_DOOR_TOP = BetterEnd.makeID("patterns/block/door_top.json"); + public final static ResourceLocation BLOCK_DOOR_TOP_HINGE = BetterEnd.makeID("patterns/block/door_top_hinge.json"); + public final static ResourceLocation BLOCK_DOOR_BOTTOM = BetterEnd.makeID("patterns/block/door_bottom.json"); + public final static ResourceLocation BLOCK_DOOR_BOTTOM_HINGE = BetterEnd.makeID("patterns/block/door_bottom_hinge.json"); + public final static ResourceLocation BLOCK_CROSS = BetterEnd.makeID("patterns/block/cross.json"); + public final static ResourceLocation BLOCK_CROSS_SHADED = BetterEnd.makeID("patterns/block/cross_shaded.json"); + public final static ResourceLocation BLOCK_GATE_CLOSED = BetterEnd.makeID("patterns/block/fence_gate_closed.json"); + public final static ResourceLocation BLOCK_GATE_CLOSED_WALL = BetterEnd.makeID("patterns/block/wall_gate_closed.json"); + public final static ResourceLocation BLOCK_GATE_OPEN = BetterEnd.makeID("patterns/block/fence_gate_open.json"); + public final static ResourceLocation BLOCK_GATE_OPEN_WALL = BetterEnd.makeID("patterns/block/wall_gate_open.json"); + public final static ResourceLocation BLOCK_TRAPDOOR = BetterEnd.makeID("patterns/block/trapdoor.json"); + public final static ResourceLocation BLOCK_LADDER = BetterEnd.makeID("patterns/block/ladder.json"); + public final static ResourceLocation BLOCK_BARREL_OPEN = BetterEnd.makeID("patterns/block/barrel_open.json"); + public final static ResourceLocation BLOCK_PEDESTAL_DEFAULT = BetterEnd.makeID("patterns/block/pedestal_default.json"); + public final static ResourceLocation BLOKC_PEDESTAL_COLUMN = BetterEnd.makeID("patterns/block/pedestal_column.json"); + public final static ResourceLocation BLOCK_PEDESTAL_COLUMN_TOP = BetterEnd.makeID("patterns/block/pedestal_column_top.json"); + public final static ResourceLocation BLOCK_PEDESTAL_TOP = BetterEnd.makeID("patterns/block/pedestal_top.json"); + public final static ResourceLocation BLOCK_PEDESTAL_BOTTOM = BetterEnd.makeID("patterns/block/pedestal_bottom.json"); + public final static ResourceLocation BLOCK_PEDESTAL_PILLAR = BetterEnd.makeID("patterns/block/pedestal_pillar.json"); + public final static ResourceLocation BLOCK_BOOKSHELF = BetterEnd.makeID("patterns/block/bookshelf.json"); + public final static ResourceLocation BLOCK_STONE_LANTERN_CEIL = BetterEnd.makeID("patterns/block/stone_lantern_ceil.json"); + public final static ResourceLocation BLOCK_STONE_LANTERN_FLOOR = BetterEnd.makeID("patterns/block/stone_lantern_floor.json"); + public final static ResourceLocation BLOCK_BULB_LANTERN_FLOOR = BetterEnd.makeID("patterns/block/bulb_lantern_floor.json"); + public final static ResourceLocation BLOCK_BULB_LANTERN_CEIL = BetterEnd.makeID("patterns/block/bulb_lantern_ceil.json"); + public final static ResourceLocation BLOCK_PETAL_COLORED = BetterEnd.makeID("models/block/block_petal_colored.json"); + public final static ResourceLocation BLOCK_COMPOSTER = BetterEnd.makeID("patterns/block/composter.json"); + public final static ResourceLocation BLOCK_COLORED = BetterEnd.makeID("patterns/block/block_colored.json"); + public final static ResourceLocation BLOCK_BARS_POST = BetterEnd.makeID("patterns/block/bars_post.json"); + public final static ResourceLocation BLOCK_BARS_SIDE = BetterEnd.makeID("patterns/block/bars_side.json"); + public final static ResourceLocation BLOCK_ANVIL = BetterEnd.makeID("patterns/block/anvil.json"); + public final static ResourceLocation BLOCK_CHAIN = BetterEnd.makeID("patterns/block/chain.json"); + public final static ResourceLocation BLOCK_CHANDELIER_FLOOR = BetterEnd.makeID("patterns/block/chandelier_floor.json"); + public final static ResourceLocation BLOCK_CHANDELIER_WALL = BetterEnd.makeID("patterns/block/chandelier_wall.json"); + public final static ResourceLocation BLOCK_CHANDELIER_CEIL = BetterEnd.makeID("patterns/block/chandelier_ceil.json"); + public final static ResourceLocation BLOCK_FURNACE = BetterEnd.makeID("patterns/block/furnace.json"); + public final static ResourceLocation BLOCK_FURNACE_GLOW = BetterEnd.makeID("patterns/block/furnace_glow.json"); + public final static ResourceLocation BLOCK_TOP_SIDE_BOTTOM = BetterEnd.makeID("patterns/block/top_side_bottom.json"); + public final static ResourceLocation BLOCK_PATH = BetterEnd.makeID("patterns/block/path.json"); + + //Models Item + public final static ResourceLocation ITEM_WALL = BetterEnd.makeID("patterns/item/pattern_wall.json"); + public final static ResourceLocation ITEM_FENCE = BetterEnd.makeID("patterns/item/pattern_fence.json"); + public final static ResourceLocation ITEM_BUTTON = BetterEnd.makeID("patterns/item/pattern_button.json"); + public final static ResourceLocation ITEM_CHEST = BetterEnd.makeID("patterns/item/pattern_chest.json"); + public final static ResourceLocation ITEM_BLOCK = BetterEnd.makeID("patterns/item/pattern_block_item.json"); + public final static ResourceLocation ITEM_GENERATED = BetterEnd.makeID("patterns/item/pattern_item_generated.json"); + public final static ResourceLocation ITEM_HANDHELD = BetterEnd.makeID("patterns/item/pattern_item_handheld.json"); + public final static ResourceLocation ITEM_SPAWN_EGG = BetterEnd.makeID("patterns/item/pattern_item_spawn_egg.json"); + + public static String createJson(Reader data, String parent, String block) { + try (BufferedReader buffer = new BufferedReader(data)) { + return buffer.lines().collect(Collectors.joining()) + .replace("%parent%", parent) + .replace("%block%", block); + } catch (Exception ex) { + return null; + } + } + + public static String createJson(ResourceLocation patternId, String parent, String block) { + ResourceManager resourceManager = Minecraft.getInstance().getResourceManager(); + try (InputStream input = resourceManager.getResource(patternId).getInputStream()) { + return createJson(new InputStreamReader(input, StandardCharsets.UTF_8), parent, block); + } catch (Exception ex) { + return null; + } + } + + public static String createJson(ResourceLocation patternId, String texture) { + Map textures = Maps.newHashMap(); + textures.put("%texture%", texture); + return createJson(patternId, textures); + } + + public static String createJson(ResourceLocation patternId, Map textures) { + ResourceManager resourceManager = Minecraft.getInstance().getResourceManager(); + try (InputStream input = resourceManager.getResource(patternId).getInputStream()) { + String json = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8)) + .lines().collect(Collectors.joining()); + for (Entry texture : textures.entrySet()) { + json = json.replace(texture.getKey(), texture.getValue()); + } + return json; + } catch (Exception ex) { + return null; + } + } +} diff --git a/src/main/java/ru/betterend/recipe/EndRecipeManager.java b/src/main/java/ru/betterend/recipe/EndRecipeManager.java index eef6a87e..d6699142 100644 --- a/src/main/java/ru/betterend/recipe/EndRecipeManager.java +++ b/src/main/java/ru/betterend/recipe/EndRecipeManager.java @@ -2,12 +2,14 @@ package ru.betterend.recipe; import java.util.Map; import java.util.Map.Entry; + +import com.google.common.collect.Maps; + import net.minecraft.core.Registry; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.crafting.Recipe; import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraft.world.item.crafting.RecipeType; -import com.google.common.collect.Maps; import ru.betterend.BetterEnd; public class EndRecipeManager { diff --git a/src/main/java/ru/betterend/recipe/builders/GridRecipe.java b/src/main/java/ru/betterend/recipe/builders/GridRecipe.java index b8ec3625..64d705c5 100644 --- a/src/main/java/ru/betterend/recipe/builders/GridRecipe.java +++ b/src/main/java/ru/betterend/recipe/builders/GridRecipe.java @@ -2,6 +2,9 @@ package ru.betterend.recipe.builders; import java.util.Arrays; import java.util.Map; + +import com.google.common.collect.Maps; + import net.minecraft.core.NonNullList; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.Tag; @@ -13,7 +16,6 @@ import net.minecraft.world.item.crafting.RecipeType; import net.minecraft.world.item.crafting.ShapedRecipe; import net.minecraft.world.item.crafting.ShapelessRecipe; import net.minecraft.world.level.ItemLike; -import com.google.common.collect.Maps; import ru.betterend.BetterEnd; import ru.betterend.config.Configs; import ru.betterend.recipe.EndRecipeManager; diff --git a/src/main/java/ru/betterend/registry/EndBlockEntities.java b/src/main/java/ru/betterend/registry/EndBlockEntities.java index e722dc94..003777b3 100644 --- a/src/main/java/ru/betterend/registry/EndBlockEntities.java +++ b/src/main/java/ru/betterend/registry/EndBlockEntities.java @@ -1,12 +1,14 @@ package ru.betterend.registry; import java.util.List; + +import com.google.common.collect.Lists; + import net.minecraft.core.Registry; import net.minecraft.world.item.BlockItem; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; -import com.google.common.collect.Lists; import ru.betterend.BetterEnd; import ru.betterend.blocks.EndStoneSmelter; import ru.betterend.blocks.EternalPedestal; diff --git a/src/main/java/ru/betterend/registry/EndFeatures.java b/src/main/java/ru/betterend/registry/EndFeatures.java index 10fba6ad..d2228007 100644 --- a/src/main/java/ru/betterend/registry/EndFeatures.java +++ b/src/main/java/ru/betterend/registry/EndFeatures.java @@ -2,15 +2,18 @@ package ru.betterend.registry; import java.util.List; import java.util.function.Supplier; + +import com.google.common.collect.Lists; + import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.levelgen.GenerationStep; import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; -import com.google.common.collect.Lists; import ru.betterend.BetterEnd; import ru.betterend.world.biome.BiomeDefinition; import ru.betterend.world.biome.EndBiome; +import ru.betterend.world.features.BiomeIslandFeature; import ru.betterend.world.features.BlueVineFeature; import ru.betterend.world.features.CavePumpkinFeature; import ru.betterend.world.features.CharniaFeature; @@ -27,7 +30,6 @@ import ru.betterend.world.features.HydraluxFeature; import ru.betterend.world.features.LanceleafFeature; import ru.betterend.world.features.MengerSpongeFeature; import ru.betterend.world.features.NeonCactusFeature; -import ru.betterend.world.features.BiomeIslandFeature; import ru.betterend.world.features.SilkMothNestFeature; import ru.betterend.world.features.SingleInvertedScatterFeature; import ru.betterend.world.features.SinglePlantFeature; diff --git a/src/main/java/ru/betterend/registry/EndItems.java b/src/main/java/ru/betterend/registry/EndItems.java index 0b35f495..d3fbe6cf 100644 --- a/src/main/java/ru/betterend/registry/EndItems.java +++ b/src/main/java/ru/betterend/registry/EndItems.java @@ -20,7 +20,6 @@ import net.minecraft.world.entity.MobSpawnType; import net.minecraft.world.food.FoodProperties; import net.minecraft.world.food.Foods; import net.minecraft.world.item.ArmorItem; -import net.minecraft.world.item.FishBucketItem; import net.minecraft.world.item.Item; import net.minecraft.world.item.Item.Properties; import net.minecraft.world.item.ItemStack; @@ -32,12 +31,12 @@ import net.minecraft.world.item.SwordItem; import net.minecraft.world.item.TieredItem; import net.minecraft.world.item.Tiers; import net.minecraft.world.level.block.DispenserBlock; -import net.minecraft.world.level.material.Fluids; import ru.betterend.BetterEnd; import ru.betterend.config.Configs; import ru.betterend.item.DrinkItem; import ru.betterend.item.EnchantedPetalItem; import ru.betterend.item.EndArmorItem; +import ru.betterend.item.EndBucketItem; import ru.betterend.item.EndSpawnEggItem; import ru.betterend.item.EternalCrystalItem; import ru.betterend.item.PatternedDiscItem; @@ -119,7 +118,8 @@ public class EndItems { public final static Item SHADOW_BERRY_COOKED = registerFood("shadow_berry_cooked", 6, 0.7F); public final static Item END_FISH_RAW = registerFood("end_fish_raw", Foods.SALMON); public final static Item END_FISH_COOKED = registerFood("end_fish_cooked", Foods.COOKED_SALMON); - public final static Item BUCKET_END_FISH = registerItem("bucket_end_fish", new FishBucketItem(EndEntities.END_FISH, Fluids.WATER, makeItemSettings().stacksTo(1))); + public final static Item BUCKET_END_FISH = registerItem("bucket_end_fish", new EndBucketItem()); + public final static Item BUCKET_CUBOZOA = registerItem("bucket_cubozoa", new EndBucketItem()); public final static Item SWEET_BERRY_JELLY = registerFood("sweet_berry_jelly", 6, 0.75F); public final static Item SHADOW_BERRY_JELLY = registerFood("shadow_berry_jelly", 7, 0.75F, new MobEffectInstance(MobEffects.NIGHT_VISION, 400)); public final static Item BLOSSOM_BERRY = registerFood("blossom_berry", Foods.APPLE); diff --git a/src/main/java/ru/betterend/registry/EndPortals.java b/src/main/java/ru/betterend/registry/EndPortals.java index 81710747..8288f60b 100644 --- a/src/main/java/ru/betterend/registry/EndPortals.java +++ b/src/main/java/ru/betterend/registry/EndPortals.java @@ -4,6 +4,7 @@ import java.io.File; import com.google.gson.JsonArray; import com.google.gson.JsonObject; + import net.minecraft.resources.ResourceLocation; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerLevel; diff --git a/src/main/java/ru/betterend/registry/EndStructures.java b/src/main/java/ru/betterend/registry/EndStructures.java index 08d1b32a..c3ed2370 100644 --- a/src/main/java/ru/betterend/registry/EndStructures.java +++ b/src/main/java/ru/betterend/registry/EndStructures.java @@ -2,6 +2,7 @@ package ru.betterend.registry; import java.util.Collection; import java.util.function.Supplier; + import net.minecraft.core.Registry; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.biome.Biome; diff --git a/src/main/java/ru/betterend/registry/EndTags.java b/src/main/java/ru/betterend/registry/EndTags.java index 4c686a8b..c2866b47 100644 --- a/src/main/java/ru/betterend/registry/EndTags.java +++ b/src/main/java/ru/betterend/registry/EndTags.java @@ -1,10 +1,10 @@ package ru.betterend.registry; -import java.util.Arrays; import java.util.List; import java.util.function.Supplier; import com.google.common.collect.Lists; + import net.fabricmc.fabric.api.tag.TagRegistry; import net.fabricmc.fabric.impl.tool.attribute.ToolManagerImpl; import net.fabricmc.fabric.impl.tool.attribute.handlers.ModdedToolsVanillaBlocksToolHandler; diff --git a/src/main/java/ru/betterend/rituals/EternalRitual.java b/src/main/java/ru/betterend/rituals/EternalRitual.java index 56e58413..995c3244 100644 --- a/src/main/java/ru/betterend/rituals/EternalRitual.java +++ b/src/main/java/ru/betterend/rituals/EternalRitual.java @@ -7,10 +7,11 @@ import java.util.Random; import java.util.Set; import java.util.function.Predicate; -import com.google.common.collect.Lists; import org.jetbrains.annotations.Nullable; +import com.google.common.collect.Lists; import com.google.common.collect.Sets; + import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Registry; diff --git a/src/main/java/ru/betterend/rituals/InfusionRitual.java b/src/main/java/ru/betterend/rituals/InfusionRitual.java index 9939c3cf..edad8922 100644 --- a/src/main/java/ru/betterend/rituals/InfusionRitual.java +++ b/src/main/java/ru/betterend/rituals/InfusionRitual.java @@ -1,6 +1,7 @@ package ru.betterend.rituals; import java.awt.Point; + import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/ru/betterend/util/BlocksHelper.java b/src/main/java/ru/betterend/util/BlocksHelper.java index 84e3ec12..62b5eeaa 100644 --- a/src/main/java/ru/betterend/util/BlocksHelper.java +++ b/src/main/java/ru/betterend/util/BlocksHelper.java @@ -5,6 +5,10 @@ import java.util.Iterator; import java.util.Map; import java.util.Random; import java.util.Set; + +import com.google.common.collect.Maps; +import com.google.common.collect.Sets; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; @@ -19,8 +23,6 @@ import net.minecraft.world.level.block.Rotation; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BooleanProperty; import net.minecraft.world.level.block.state.properties.Property; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; import ru.betterend.blocks.BlueVineBlock; import ru.betterend.blocks.basis.DoublePlantBlock; import ru.betterend.blocks.basis.FurBlock; diff --git a/src/main/java/ru/betterend/util/BonemealUtil.java b/src/main/java/ru/betterend/util/BonemealUtil.java index dae14b5b..2229d089 100644 --- a/src/main/java/ru/betterend/util/BonemealUtil.java +++ b/src/main/java/ru/betterend/util/BonemealUtil.java @@ -3,10 +3,12 @@ package ru.betterend.util; import java.util.List; import java.util.Map; import java.util.Random; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.level.block.Block; + import com.google.common.collect.Lists; import com.google.common.collect.Maps; + +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.block.Block; import ru.betterend.registry.EndBiomes; import ru.betterend.registry.EndBlocks; import ru.betterend.world.biome.EndBiome; diff --git a/src/main/java/ru/betterend/util/ColorUtil.java b/src/main/java/ru/betterend/util/ColorUtil.java index 87b7b5b4..2ea3523a 100644 --- a/src/main/java/ru/betterend/util/ColorUtil.java +++ b/src/main/java/ru/betterend/util/ColorUtil.java @@ -1,240 +1,241 @@ -package ru.betterend.util; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import com.google.common.collect.Maps; -import com.mojang.blaze3d.platform.NativeImage; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.fabricmc.fabric.impl.client.indigo.renderer.helper.ColorHelper; -import net.minecraft.client.Minecraft; -import net.minecraft.core.Registry; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.packs.resources.Resource; -import net.minecraft.server.packs.resources.ResourceManager; -import net.minecraft.util.Mth; -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.Item; -import ru.betterend.BetterEnd; - -@Environment(EnvType.CLIENT) -public class ColorUtil { - - private static float[] floatBuffer = new float[4]; - - public static int[] toIntArray(int color) { - return new int[] { - (color >> 24) & 255, - (color >> 16) & 255, - (color >> 8) & 255, - color & 255 - }; - } - - public static float[] toFloatArray(int color) { - floatBuffer[0] = ((color >> 16 & 255) / 255.0F); - floatBuffer[1] = ((color >> 8 & 255) / 255.0F); - floatBuffer[2] = ((color & 255) / 255.0F); - floatBuffer[3] = ((color >> 24 & 255) / 255.0F); - - return floatBuffer; - } - - public static float[] RGBtoHSB(int r, int g, int b, float[] hsbvals) { - float hue, saturation, brightness; - if (hsbvals == null) { - hsbvals = floatBuffer; - } - int cmax = (r > g) ? r : g; - if (b > cmax) cmax = b; - int cmin = (r < g) ? r : g; - if (b < cmin) cmin = b; - - brightness = ((float) cmax) / 255.0F; - if (cmax != 0) - saturation = ((float) (cmax - cmin)) / ((float) cmax); - else - saturation = 0; - if (saturation == 0) - hue = 0; - else { - float redc = ((float) (cmax - r)) / ((float) (cmax - cmin)); - float greenc = ((float) (cmax - g)) / ((float) (cmax - cmin)); - float bluec = ((float) (cmax - b)) / ((float) (cmax - cmin)); - if (r == cmax) - hue = bluec - greenc; - else if (g == cmax) - hue = 2.0F + redc - bluec; - else - hue = 4.0F + greenc - redc; - hue = hue / 6.0F; - if (hue < 0) - hue = hue + 1.0F; - } - hsbvals[0] = hue; - hsbvals[1] = saturation; - hsbvals[2] = brightness; - return hsbvals; - } - - public static int HSBtoRGB(float hue, float saturation, float brightness) { - int r = 0, g = 0, b = 0; - if (saturation == 0) { - r = g = b = (int) (brightness * 255.0F + 0.5F); - } else { - float h = (hue - (float)Math.floor(hue)) * 6.0F; - float f = h - (float)java.lang.Math.floor(h); - float p = brightness * (1.0F - saturation); - float q = brightness * (1.0F - saturation * f); - float t = brightness * (1.0F - (saturation * (1.0F - f))); - switch ((int) h) { - case 0: - r = (int) (brightness * 255.0F + 0.5F); - g = (int) (t * 255.0F + 0.5F); - b = (int) (p * 255.0F + 0.5F); - break; - case 1: - r = (int) (q * 255.0F + 0.5F); - g = (int) (brightness * 255.0F + 0.5F); - b = (int) (p * 255.0F + 0.5F); - break; - case 2: - r = (int) (p * 255.0F + 0.5F); - g = (int) (brightness * 255.0F + 0.5F); - b = (int) (t * 255.0F + 0.5F); - break; - case 3: - r = (int) (p * 255.0F + 0.5F); - g = (int) (q * 255.0F + 0.5F); - b = (int) (brightness * 255.0F + 0.5F); - break; - case 4: - r = (int) (t * 255.0F + 0.5F); - g = (int) (p * 255.0F + 0.5F); - b = (int) (brightness * 255.0F + 0.5F); - break; - case 5: - r = (int) (brightness * 255.0F + 0.5F); - g = (int) (p * 255.0F + 0.5F); - b = (int) (q * 255.0F + 0.5F); - break; - } - } - return 0xFF000000 | (r << 16) | (g << 8) | (b << 0); - } - - public static int parseHex(String hexColor) { - int len = hexColor.length(); - if (len < 6 || len > 8 || len % 2 > 0) { - return -1; - } - - int color, shift; - if(len == 6) { - color = 0xFF000000; shift = 16; - } else { - color = 0; shift = 24; - } - - try { - String[] splited = hexColor.split("(?<=\\G.{2})"); - for (String digit : splited) { - color |= Integer.valueOf(digit, 16) << shift; - shift -= 8; - } - } catch(NumberFormatException ex) { - BetterEnd.LOGGER.catching(ex); - return -1; - } - - return color; - } - - public static int toABGR(int color) { - int r = (color >> 16) & 255; - int g = (color >> 8) & 255; - int b = color & 255; - return 0xFF000000 | b << 16 | g << 8 | r; - } - - public static int ABGRtoARGB(int color) { - int a = (color >> 24) & 255; - int b = (color >> 16) & 255; - int g = (color >> 8) & 255; - int r = color & 255; - return a << 24 | r << 16 | g << 8 | b; - } - - public static int colorBrigtness(int color, float val) { - RGBtoHSB((color >> 16) & 255, (color >> 8) & 255, color & 255, floatBuffer); - floatBuffer[2] += val / 10.0F; - floatBuffer[2] = Mth.clamp(floatBuffer[2], 0.0F, 1.0F); - return HSBtoRGB(floatBuffer[0], floatBuffer[1], floatBuffer[2]); - } - - public static int applyTint(int color, int tint) { - return colorBrigtness(ColorHelper.multiplyColor(color, tint), 1.5F); - } - - public static int colorDistance(int color1, int color2) { - int r1 = (color1 >> 16) & 255; - int g1 = (color1 >> 8) & 255; - int b1 = color1 & 255; - int r2 = (color2 >> 16) & 255; - int g2 = (color2 >> 8) & 255; - int b2 = color2 & 255; - return MHelper.pow2(r1 - r2) + MHelper.pow2(g1 - g2) + MHelper.pow2(b1 - b2); - } - - private static Map colorPalette = Maps.newHashMap(); - - public static int extractColor(Item item) { - ResourceLocation id = Registry.ITEM.getKey(item); - if (id.equals(Registry.ITEM.getDefaultKey())) return -1; - if (colorPalette.containsKey(id)) { - return colorPalette.get(id); - } - ResourceLocation texture; - if (item instanceof BlockItem) { - texture = new ResourceLocation(id.getNamespace(), "textures/block/" + id.getPath() + ".png"); - } else { - texture = new ResourceLocation(id.getNamespace(), "textures/item/" + id.getPath() + ".png"); - } - NativeImage image = loadImage(texture, 16, 16); - List colors = new ArrayList<>(); - for (int i = 0; i < image.getWidth(); i++) { - for (int j = 0; j < 16; j++) { - int col = image.getPixelRGBA(i, j); - if (((col >> 24) & 255) > 0) { - colors.add(ABGRtoARGB(col)); - } - } - } - image.close(); - - if (colors.size() == 0) return -1; - - ColorExtractor extractor = new ColorExtractor(colors); - int color = extractor.analize(); - colorPalette.put(id, color); - - return color; - } - - public static NativeImage loadImage(ResourceLocation image, int w, int h) { - Minecraft minecraft = Minecraft.getInstance(); - ResourceManager resourceManager = minecraft.getResourceManager(); - if (resourceManager.hasResource(image)) { - try (Resource resource = resourceManager.getResource(image)) { - return NativeImage.read(resource.getInputStream()); - } catch (IOException e) { - BetterEnd.LOGGER.warning("Can't load texture image: {}. Will be created empty image.", image); - BetterEnd.LOGGER.warning("Cause: {}.", e.getMessage()); - } - } - return new NativeImage(w, h, false); - } +package ru.betterend.util; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import com.google.common.collect.Maps; +import com.mojang.blaze3d.platform.NativeImage; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.fabricmc.fabric.impl.client.indigo.renderer.helper.ColorHelper; +import net.minecraft.client.Minecraft; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.packs.resources.Resource; +import net.minecraft.server.packs.resources.ResourceManager; +import net.minecraft.util.Mth; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.Item; +import ru.betterend.BetterEnd; + +@Environment(EnvType.CLIENT) +public class ColorUtil { + + private static float[] floatBuffer = new float[4]; + + public static int[] toIntArray(int color) { + return new int[] { + (color >> 24) & 255, + (color >> 16) & 255, + (color >> 8) & 255, + color & 255 + }; + } + + public static float[] toFloatArray(int color) { + floatBuffer[0] = ((color >> 16 & 255) / 255.0F); + floatBuffer[1] = ((color >> 8 & 255) / 255.0F); + floatBuffer[2] = ((color & 255) / 255.0F); + floatBuffer[3] = ((color >> 24 & 255) / 255.0F); + + return floatBuffer; + } + + public static float[] RGBtoHSB(int r, int g, int b, float[] hsbvals) { + float hue, saturation, brightness; + if (hsbvals == null) { + hsbvals = floatBuffer; + } + int cmax = (r > g) ? r : g; + if (b > cmax) cmax = b; + int cmin = (r < g) ? r : g; + if (b < cmin) cmin = b; + + brightness = ((float) cmax) / 255.0F; + if (cmax != 0) + saturation = ((float) (cmax - cmin)) / ((float) cmax); + else + saturation = 0; + if (saturation == 0) + hue = 0; + else { + float redc = ((float) (cmax - r)) / ((float) (cmax - cmin)); + float greenc = ((float) (cmax - g)) / ((float) (cmax - cmin)); + float bluec = ((float) (cmax - b)) / ((float) (cmax - cmin)); + if (r == cmax) + hue = bluec - greenc; + else if (g == cmax) + hue = 2.0F + redc - bluec; + else + hue = 4.0F + greenc - redc; + hue = hue / 6.0F; + if (hue < 0) + hue = hue + 1.0F; + } + hsbvals[0] = hue; + hsbvals[1] = saturation; + hsbvals[2] = brightness; + return hsbvals; + } + + public static int HSBtoRGB(float hue, float saturation, float brightness) { + int r = 0, g = 0, b = 0; + if (saturation == 0) { + r = g = b = (int) (brightness * 255.0F + 0.5F); + } else { + float h = (hue - (float)Math.floor(hue)) * 6.0F; + float f = h - (float)java.lang.Math.floor(h); + float p = brightness * (1.0F - saturation); + float q = brightness * (1.0F - saturation * f); + float t = brightness * (1.0F - (saturation * (1.0F - f))); + switch ((int) h) { + case 0: + r = (int) (brightness * 255.0F + 0.5F); + g = (int) (t * 255.0F + 0.5F); + b = (int) (p * 255.0F + 0.5F); + break; + case 1: + r = (int) (q * 255.0F + 0.5F); + g = (int) (brightness * 255.0F + 0.5F); + b = (int) (p * 255.0F + 0.5F); + break; + case 2: + r = (int) (p * 255.0F + 0.5F); + g = (int) (brightness * 255.0F + 0.5F); + b = (int) (t * 255.0F + 0.5F); + break; + case 3: + r = (int) (p * 255.0F + 0.5F); + g = (int) (q * 255.0F + 0.5F); + b = (int) (brightness * 255.0F + 0.5F); + break; + case 4: + r = (int) (t * 255.0F + 0.5F); + g = (int) (p * 255.0F + 0.5F); + b = (int) (brightness * 255.0F + 0.5F); + break; + case 5: + r = (int) (brightness * 255.0F + 0.5F); + g = (int) (p * 255.0F + 0.5F); + b = (int) (q * 255.0F + 0.5F); + break; + } + } + return 0xFF000000 | (r << 16) | (g << 8) | (b << 0); + } + + public static int parseHex(String hexColor) { + int len = hexColor.length(); + if (len < 6 || len > 8 || len % 2 > 0) { + return -1; + } + + int color, shift; + if(len == 6) { + color = 0xFF000000; shift = 16; + } else { + color = 0; shift = 24; + } + + try { + String[] splited = hexColor.split("(?<=\\G.{2})"); + for (String digit : splited) { + color |= Integer.valueOf(digit, 16) << shift; + shift -= 8; + } + } catch(NumberFormatException ex) { + BetterEnd.LOGGER.catching(ex); + return -1; + } + + return color; + } + + public static int toABGR(int color) { + int r = (color >> 16) & 255; + int g = (color >> 8) & 255; + int b = color & 255; + return 0xFF000000 | b << 16 | g << 8 | r; + } + + public static int ABGRtoARGB(int color) { + int a = (color >> 24) & 255; + int b = (color >> 16) & 255; + int g = (color >> 8) & 255; + int r = color & 255; + return a << 24 | r << 16 | g << 8 | b; + } + + public static int colorBrigtness(int color, float val) { + RGBtoHSB((color >> 16) & 255, (color >> 8) & 255, color & 255, floatBuffer); + floatBuffer[2] += val / 10.0F; + floatBuffer[2] = Mth.clamp(floatBuffer[2], 0.0F, 1.0F); + return HSBtoRGB(floatBuffer[0], floatBuffer[1], floatBuffer[2]); + } + + public static int applyTint(int color, int tint) { + return colorBrigtness(ColorHelper.multiplyColor(color, tint), 1.5F); + } + + public static int colorDistance(int color1, int color2) { + int r1 = (color1 >> 16) & 255; + int g1 = (color1 >> 8) & 255; + int b1 = color1 & 255; + int r2 = (color2 >> 16) & 255; + int g2 = (color2 >> 8) & 255; + int b2 = color2 & 255; + return MHelper.pow2(r1 - r2) + MHelper.pow2(g1 - g2) + MHelper.pow2(b1 - b2); + } + + private static Map colorPalette = Maps.newHashMap(); + + public static int extractColor(Item item) { + ResourceLocation id = Registry.ITEM.getKey(item); + if (id.equals(Registry.ITEM.getDefaultKey())) return -1; + if (colorPalette.containsKey(id)) { + return colorPalette.get(id); + } + ResourceLocation texture; + if (item instanceof BlockItem) { + texture = new ResourceLocation(id.getNamespace(), "textures/block/" + id.getPath() + ".png"); + } else { + texture = new ResourceLocation(id.getNamespace(), "textures/item/" + id.getPath() + ".png"); + } + NativeImage image = loadImage(texture, 16, 16); + List colors = new ArrayList<>(); + for (int i = 0; i < image.getWidth(); i++) { + for (int j = 0; j < 16; j++) { + int col = image.getPixelRGBA(i, j); + if (((col >> 24) & 255) > 0) { + colors.add(ABGRtoARGB(col)); + } + } + } + image.close(); + + if (colors.size() == 0) return -1; + + ColorExtractor extractor = new ColorExtractor(colors); + int color = extractor.analize(); + colorPalette.put(id, color); + + return color; + } + + public static NativeImage loadImage(ResourceLocation image, int w, int h) { + Minecraft minecraft = Minecraft.getInstance(); + ResourceManager resourceManager = minecraft.getResourceManager(); + if (resourceManager.hasResource(image)) { + try (Resource resource = resourceManager.getResource(image)) { + return NativeImage.read(resource.getInputStream()); + } catch (IOException e) { + BetterEnd.LOGGER.warning("Can't load texture image: {}. Will be created empty image.", image); + BetterEnd.LOGGER.warning("Cause: {}.", e.getMessage()); + } + } + return new NativeImage(w, h, false); + } } \ No newline at end of file diff --git a/src/main/java/ru/betterend/util/FeaturesHelper.java b/src/main/java/ru/betterend/util/FeaturesHelper.java index 476f5071..d2b9658c 100644 --- a/src/main/java/ru/betterend/util/FeaturesHelper.java +++ b/src/main/java/ru/betterend/util/FeaturesHelper.java @@ -4,12 +4,14 @@ import java.util.ArrayList; import java.util.List; import java.util.Set; import java.util.function.Supplier; + +import com.google.common.collect.Lists; +import com.google.common.collect.Sets; + import net.minecraft.core.Registry; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeature; -import com.google.common.collect.Lists; -import com.google.common.collect.Sets; import ru.betterend.mixin.common.BiomeGenerationSettingsAccessor; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndStructures; diff --git a/src/main/java/ru/betterend/util/ItemUtil.java b/src/main/java/ru/betterend/util/ItemUtil.java index 954de98e..20f57987 100644 --- a/src/main/java/ru/betterend/util/ItemUtil.java +++ b/src/main/java/ru/betterend/util/ItemUtil.java @@ -1,72 +1,73 @@ -package ru.betterend.util; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import com.google.gson.JsonObject; -import net.minecraft.core.Registry; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.util.GsonHelper; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import ru.betterend.BetterEnd; - -public class ItemUtil { - - public static String toStackString(@NotNull ItemStack stack) { - try { - if (stack == null) { - throw new IllegalStateException("Stack can't be null!"); - } - Item item = stack.getItem(); - return Registry.ITEM.getKey(item) + ":" + stack.getCount(); - } catch (Exception ex) { - BetterEnd.LOGGER.error("ItemStack serialization error!", ex); - } - return ""; - } - - @Nullable - public static ItemStack fromStackString(String stackString) { - if (stackString == null || stackString.equals("")) { - return null; - } - try { - String[] parts = stackString.split(":"); - if (parts.length < 2) return null; - if (parts.length == 2) { - ResourceLocation itemId = new ResourceLocation(stackString); - Item item = Registry.ITEM.getOptional(itemId).orElseThrow(() -> { - return new IllegalStateException("Output item " + itemId + " does not exists!"); - }); - return new ItemStack(item); - } - ResourceLocation itemId = new ResourceLocation(parts[0], parts[1]); - Item item = Registry.ITEM.getOptional(itemId).orElseThrow(() -> { - return new IllegalStateException("Output item " + itemId + " does not exists!"); - }); - return new ItemStack(item, Integer.valueOf(parts[2])); - } catch (Exception ex) { - BetterEnd.LOGGER.error("ItemStack deserialization error!", ex); - } - return null; - } - - @Nullable - public static ItemStack fromJsonRecipe(JsonObject recipe) { - try { - if (!recipe.has("item")) { - throw new IllegalStateException("Invalid JsonObject. Entry 'item' does not exists!"); - } - ResourceLocation itemId = new ResourceLocation(GsonHelper.getAsString(recipe, "item")); - Item item = Registry.ITEM.getOptional(itemId).orElseThrow(() -> { - return new IllegalStateException("Output item " + itemId + " does not exists!"); - }); - int count = GsonHelper.getAsInt(recipe, "count", 1); - return new ItemStack(item, count); - } catch (Exception ex) { - BetterEnd.LOGGER.error("ItemStack deserialization error!", ex); - } - return null; - } -} +package ru.betterend.util; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import com.google.gson.JsonObject; + +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.GsonHelper; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import ru.betterend.BetterEnd; + +public class ItemUtil { + + public static String toStackString(@NotNull ItemStack stack) { + try { + if (stack == null) { + throw new IllegalStateException("Stack can't be null!"); + } + Item item = stack.getItem(); + return Registry.ITEM.getKey(item) + ":" + stack.getCount(); + } catch (Exception ex) { + BetterEnd.LOGGER.error("ItemStack serialization error!", ex); + } + return ""; + } + + @Nullable + public static ItemStack fromStackString(String stackString) { + if (stackString == null || stackString.equals("")) { + return null; + } + try { + String[] parts = stackString.split(":"); + if (parts.length < 2) return null; + if (parts.length == 2) { + ResourceLocation itemId = new ResourceLocation(stackString); + Item item = Registry.ITEM.getOptional(itemId).orElseThrow(() -> { + return new IllegalStateException("Output item " + itemId + " does not exists!"); + }); + return new ItemStack(item); + } + ResourceLocation itemId = new ResourceLocation(parts[0], parts[1]); + Item item = Registry.ITEM.getOptional(itemId).orElseThrow(() -> { + return new IllegalStateException("Output item " + itemId + " does not exists!"); + }); + return new ItemStack(item, Integer.valueOf(parts[2])); + } catch (Exception ex) { + BetterEnd.LOGGER.error("ItemStack deserialization error!", ex); + } + return null; + } + + @Nullable + public static ItemStack fromJsonRecipe(JsonObject recipe) { + try { + if (!recipe.has("item")) { + throw new IllegalStateException("Invalid JsonObject. Entry 'item' does not exists!"); + } + ResourceLocation itemId = new ResourceLocation(GsonHelper.getAsString(recipe, "item")); + Item item = Registry.ITEM.getOptional(itemId).orElseThrow(() -> { + return new IllegalStateException("Output item " + itemId + " does not exists!"); + }); + int count = GsonHelper.getAsInt(recipe, "count", 1); + return new ItemStack(item, count); + } catch (Exception ex) { + BetterEnd.LOGGER.error("ItemStack deserialization error!", ex); + } + return null; + } +} diff --git a/src/main/java/ru/betterend/util/MHelper.java b/src/main/java/ru/betterend/util/MHelper.java index 4d6d4d0a..ba74b438 100644 --- a/src/main/java/ru/betterend/util/MHelper.java +++ b/src/main/java/ru/betterend/util/MHelper.java @@ -1,7 +1,9 @@ package ru.betterend.util; -import com.mojang.math.Vector3f; import java.util.Random; + +import com.mojang.math.Vector3f; + import net.minecraft.world.phys.Vec3; public class MHelper { diff --git a/src/main/java/ru/betterend/util/SplineHelper.java b/src/main/java/ru/betterend/util/SplineHelper.java index 8dfef055..ed862612 100644 --- a/src/main/java/ru/betterend/util/SplineHelper.java +++ b/src/main/java/ru/betterend/util/SplineHelper.java @@ -4,13 +4,15 @@ import java.util.ArrayList; import java.util.List; import java.util.Random; import java.util.function.Function; + +import com.google.common.collect.Lists; +import com.mojang.math.Vector3f; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.util.Mth; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.state.BlockState; -import com.google.common.collect.Lists; -import com.mojang.math.Vector3f; import ru.betterend.util.sdf.SDF; import ru.betterend.util.sdf.operator.SDFUnion; import ru.betterend.util.sdf.primitive.SDFLine; diff --git a/src/main/java/ru/betterend/util/StructureHelper.java b/src/main/java/ru/betterend/util/StructureHelper.java index 4274a66d..bf136865 100644 --- a/src/main/java/ru/betterend/util/StructureHelper.java +++ b/src/main/java/ru/betterend/util/StructureHelper.java @@ -10,6 +10,7 @@ import java.util.zip.ZipEntry; import java.util.zip.ZipFile; import com.google.common.collect.Sets; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/ru/betterend/util/TagHelper.java b/src/main/java/ru/betterend/util/TagHelper.java index d4224e2c..af8a1d04 100644 --- a/src/main/java/ru/betterend/util/TagHelper.java +++ b/src/main/java/ru/betterend/util/TagHelper.java @@ -2,14 +2,16 @@ package ru.betterend.util; import java.util.Map; import java.util.Set; + +import com.google.common.collect.Maps; +import com.google.common.collect.Sets; + import net.minecraft.core.Registry; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.Tag; import net.minecraft.world.item.Item; import net.minecraft.world.level.ItemLike; import net.minecraft.world.level.block.Block; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; public class TagHelper { private static final Map> TAGS_BLOCK = Maps.newConcurrentMap(); diff --git a/src/main/java/ru/betterend/util/TranslationHelper.java b/src/main/java/ru/betterend/util/TranslationHelper.java index cd6adfa7..92cdc229 100644 --- a/src/main/java/ru/betterend/util/TranslationHelper.java +++ b/src/main/java/ru/betterend/util/TranslationHelper.java @@ -4,11 +4,13 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.util.Collections; import java.util.List; -import net.minecraft.core.Registry; -import net.minecraft.resources.ResourceLocation; + import com.google.common.collect.Lists; import com.google.gson.Gson; import com.google.gson.JsonObject; + +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceLocation; import ru.betterend.BetterEnd; import ru.betterend.registry.EndBiomes; import ru.betterend.registry.EndItems; diff --git a/src/main/java/ru/betterend/util/sdf/PosInfo.java b/src/main/java/ru/betterend/util/sdf/PosInfo.java index 74510770..9d7133f0 100644 --- a/src/main/java/ru/betterend/util/sdf/PosInfo.java +++ b/src/main/java/ru/betterend/util/sdf/PosInfo.java @@ -1,6 +1,7 @@ package ru.betterend.util.sdf; import java.util.Map; + import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.block.Blocks; diff --git a/src/main/java/ru/betterend/util/sdf/SDF.java b/src/main/java/ru/betterend/util/sdf/SDF.java index e288291e..6e446fdd 100644 --- a/src/main/java/ru/betterend/util/sdf/SDF.java +++ b/src/main/java/ru/betterend/util/sdf/SDF.java @@ -6,15 +6,17 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.function.Function; + +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import com.google.common.collect.Sets; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.ServerLevelAccessor; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.AABB; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; import ru.betterend.util.BlocksHelper; import ru.betterend.world.structures.StructureWorld; diff --git a/src/main/java/ru/betterend/util/sdf/operator/SDFCoordModify.java b/src/main/java/ru/betterend/util/sdf/operator/SDFCoordModify.java index ccba6d7e..108a9c39 100644 --- a/src/main/java/ru/betterend/util/sdf/operator/SDFCoordModify.java +++ b/src/main/java/ru/betterend/util/sdf/operator/SDFCoordModify.java @@ -1,8 +1,9 @@ package ru.betterend.util.sdf.operator; -import com.mojang.math.Vector3f; import java.util.function.Consumer; +import com.mojang.math.Vector3f; + public class SDFCoordModify extends SDFUnary { private static final Vector3f POS = new Vector3f(); private Consumer function; diff --git a/src/main/java/ru/betterend/util/sdf/operator/SDFDisplacement.java b/src/main/java/ru/betterend/util/sdf/operator/SDFDisplacement.java index 14e212b8..531d7158 100644 --- a/src/main/java/ru/betterend/util/sdf/operator/SDFDisplacement.java +++ b/src/main/java/ru/betterend/util/sdf/operator/SDFDisplacement.java @@ -1,8 +1,9 @@ package ru.betterend.util.sdf.operator; -import com.mojang.math.Vector3f; import java.util.function.Function; +import com.mojang.math.Vector3f; + public class SDFDisplacement extends SDFUnary { private static final Vector3f POS = new Vector3f(); private Function displace; diff --git a/src/main/java/ru/betterend/util/sdf/operator/SDFHeightmap.java b/src/main/java/ru/betterend/util/sdf/operator/SDFHeightmap.java index 62c17d22..a05ebdad 100644 --- a/src/main/java/ru/betterend/util/sdf/operator/SDFHeightmap.java +++ b/src/main/java/ru/betterend/util/sdf/operator/SDFHeightmap.java @@ -1,6 +1,7 @@ package ru.betterend.util.sdf.operator; import com.mojang.blaze3d.platform.NativeImage; + import net.minecraft.util.Mth; public class SDFHeightmap extends SDFDisplacement { diff --git a/src/main/java/ru/betterend/util/sdf/primitive/SDFPrimitive.java b/src/main/java/ru/betterend/util/sdf/primitive/SDFPrimitive.java index 27ef4f91..533a7496 100644 --- a/src/main/java/ru/betterend/util/sdf/primitive/SDFPrimitive.java +++ b/src/main/java/ru/betterend/util/sdf/primitive/SDFPrimitive.java @@ -1,6 +1,7 @@ package ru.betterend.util.sdf.primitive; import java.util.function.Function; + import net.minecraft.core.BlockPos; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; diff --git a/src/main/java/ru/betterend/world/biome/BiomeDefinition.java b/src/main/java/ru/betterend/world/biome/BiomeDefinition.java index 687db4cb..0da55eba 100644 --- a/src/main/java/ru/betterend/world/biome/BiomeDefinition.java +++ b/src/main/java/ru/betterend/world/biome/BiomeDefinition.java @@ -1,6 +1,9 @@ package ru.betterend.world.biome; import java.util.List; + +import com.google.common.collect.Lists; + import net.minecraft.core.Registry; import net.minecraft.core.particles.ParticleOptions; import net.minecraft.resources.ResourceLocation; @@ -30,7 +33,6 @@ import net.minecraft.world.level.levelgen.feature.configurations.ProbabilityFeat import net.minecraft.world.level.levelgen.surfacebuilders.ConfiguredSurfaceBuilder; import net.minecraft.world.level.levelgen.surfacebuilders.SurfaceBuilder; import net.minecraft.world.level.levelgen.surfacebuilders.SurfaceBuilderBaseConfiguration; -import com.google.common.collect.Lists; import ru.betterend.BetterEnd; import ru.betterend.registry.EndFeatures; import ru.betterend.util.MHelper; diff --git a/src/main/java/ru/betterend/world/biome/EndBiome.java b/src/main/java/ru/betterend/world/biome/EndBiome.java index 00e8bccc..bb9b957f 100644 --- a/src/main/java/ru/betterend/world/biome/EndBiome.java +++ b/src/main/java/ru/betterend/world/biome/EndBiome.java @@ -3,12 +3,14 @@ package ru.betterend.world.biome; import java.io.InputStream; import java.util.List; import java.util.Random; -import net.minecraft.core.Registry; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.level.biome.Biome; + import com.google.common.collect.Lists; import com.google.gson.JsonArray; import com.google.gson.JsonObject; + +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.biome.Biome; import ru.betterend.config.Configs; import ru.betterend.util.JsonFactory; import ru.betterend.util.StructureHelper; diff --git a/src/main/java/ru/betterend/world/biome/cave/EndCaveBiome.java b/src/main/java/ru/betterend/world/biome/cave/EndCaveBiome.java index 673f9556..26c07fbf 100644 --- a/src/main/java/ru/betterend/world/biome/cave/EndCaveBiome.java +++ b/src/main/java/ru/betterend/world/biome/cave/EndCaveBiome.java @@ -1,6 +1,7 @@ package ru.betterend.world.biome.cave; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.world.entity.ai.behavior.WeightedList; import net.minecraft.world.level.block.state.BlockState; diff --git a/src/main/java/ru/betterend/world/features/BiomeIslandFeature.java b/src/main/java/ru/betterend/world/features/BiomeIslandFeature.java index 9d880546..4a3a44ba 100644 --- a/src/main/java/ru/betterend/world/features/BiomeIslandFeature.java +++ b/src/main/java/ru/betterend/world/features/BiomeIslandFeature.java @@ -1,71 +1,72 @@ -package ru.betterend.world.features; - -import java.util.Random; -import net.minecraft.core.BlockPos; -import net.minecraft.core.BlockPos.MutableBlockPos; -import net.minecraft.world.level.WorldGenLevel; -import net.minecraft.world.level.biome.Biome; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.chunk.ChunkGenerator; -import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; -import net.minecraft.world.level.levelgen.surfacebuilders.SurfaceBuilderBaseConfiguration; -import net.minecraft.world.level.levelgen.surfacebuilders.SurfaceBuilderConfiguration; -import ru.betterend.noise.OpenSimplexNoise; -import ru.betterend.util.BlocksHelper; -import ru.betterend.util.sdf.SDF; -import ru.betterend.util.sdf.operator.SDFDisplacement; -import ru.betterend.util.sdf.operator.SDFTranslate; -import ru.betterend.util.sdf.primitive.SDFCappedCone; - -public class BiomeIslandFeature extends DefaultFeature { - private static final MutableBlockPos CENTER = new MutableBlockPos(); - private static final SDF ISLAND; - - private static OpenSimplexNoise simplexNoise = new OpenSimplexNoise(412L); - private static BlockState topBlock = Blocks.GRASS_BLOCK.defaultBlockState(); - private static BlockState underBlock = Blocks.DIRT.defaultBlockState(); - - @Override - public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - NoneFeatureConfiguration config) { - Biome biome = world.getBiome(pos); - SurfaceBuilderConfiguration surfaceConfig = biome.getGenerationSettings().getSurfaceBuilderConfig(); - BlockState topMaterial = surfaceConfig.getTopMaterial(); - if (BlocksHelper.isFluid(topMaterial)) { - topBlock = ((SurfaceBuilderBaseConfiguration) surfaceConfig).getUnderwaterMaterial(); - } else { - topBlock = topMaterial; - } - underBlock = surfaceConfig.getUnderMaterial(); - simplexNoise = new OpenSimplexNoise(world.getSeed()); - CENTER.set(pos); - ISLAND.fillRecursive(world, pos.below()); - return true; - } - - private static SDF createSDFIsland() { - SDF sdfCone = new SDFCappedCone().setRadius1(0).setRadius2(6).setHeight(4).setBlock(pos -> { - if (pos.getY() > CENTER.getY()) - return AIR; - if (pos.getY() == CENTER.getY()) - return topBlock; - return underBlock; - }); - sdfCone = new SDFTranslate().setTranslate(0, -2, 0).setSource(sdfCone); - sdfCone = new SDFDisplacement().setFunction(pos -> { - float deltaX = Math.abs(pos.x()); - float deltaY = Math.abs(pos.y()); - float deltaZ = Math.abs(pos.z()); - if (deltaY < 2.0f && (deltaX < 3.0f || deltaZ < 3.0F)) - return 0.0f; - return (float) simplexNoise.eval(CENTER.getX() + pos.x(), CENTER.getY() + pos.y(), CENTER.getZ() + pos.z()); - }).setSource(sdfCone) - .setReplaceFunction(state -> BlocksHelper.isFluid(state) || state.getMaterial().isReplaceable()); - return sdfCone; - } - - static { - ISLAND = createSDFIsland(); - } -} +package ru.betterend.world.features; + +import java.util.Random; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.BlockPos.MutableBlockPos; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; +import net.minecraft.world.level.levelgen.surfacebuilders.SurfaceBuilderBaseConfiguration; +import net.minecraft.world.level.levelgen.surfacebuilders.SurfaceBuilderConfiguration; +import ru.betterend.noise.OpenSimplexNoise; +import ru.betterend.util.BlocksHelper; +import ru.betterend.util.sdf.SDF; +import ru.betterend.util.sdf.operator.SDFDisplacement; +import ru.betterend.util.sdf.operator.SDFTranslate; +import ru.betterend.util.sdf.primitive.SDFCappedCone; + +public class BiomeIslandFeature extends DefaultFeature { + private static final MutableBlockPos CENTER = new MutableBlockPos(); + private static final SDF ISLAND; + + private static OpenSimplexNoise simplexNoise = new OpenSimplexNoise(412L); + private static BlockState topBlock = Blocks.GRASS_BLOCK.defaultBlockState(); + private static BlockState underBlock = Blocks.DIRT.defaultBlockState(); + + @Override + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { + Biome biome = world.getBiome(pos); + SurfaceBuilderConfiguration surfaceConfig = biome.getGenerationSettings().getSurfaceBuilderConfig(); + BlockState topMaterial = surfaceConfig.getTopMaterial(); + if (BlocksHelper.isFluid(topMaterial)) { + topBlock = ((SurfaceBuilderBaseConfiguration) surfaceConfig).getUnderwaterMaterial(); + } else { + topBlock = topMaterial; + } + underBlock = surfaceConfig.getUnderMaterial(); + simplexNoise = new OpenSimplexNoise(world.getSeed()); + CENTER.set(pos); + ISLAND.fillRecursive(world, pos.below()); + return true; + } + + private static SDF createSDFIsland() { + SDF sdfCone = new SDFCappedCone().setRadius1(0).setRadius2(6).setHeight(4).setBlock(pos -> { + if (pos.getY() > CENTER.getY()) + return AIR; + if (pos.getY() == CENTER.getY()) + return topBlock; + return underBlock; + }); + sdfCone = new SDFTranslate().setTranslate(0, -2, 0).setSource(sdfCone); + sdfCone = new SDFDisplacement().setFunction(pos -> { + float deltaX = Math.abs(pos.x()); + float deltaY = Math.abs(pos.y()); + float deltaZ = Math.abs(pos.z()); + if (deltaY < 2.0f && (deltaX < 3.0f || deltaZ < 3.0F)) + return 0.0f; + return (float) simplexNoise.eval(CENTER.getX() + pos.x(), CENTER.getY() + pos.y(), CENTER.getZ() + pos.z()); + }).setSource(sdfCone) + .setReplaceFunction(state -> BlocksHelper.isFluid(state) || state.getMaterial().isReplaceable()); + return sdfCone; + } + + static { + ISLAND = createSDFIsland(); + } +} diff --git a/src/main/java/ru/betterend/world/features/BlueVineFeature.java b/src/main/java/ru/betterend/world/features/BlueVineFeature.java index 92fd0862..27452987 100644 --- a/src/main/java/ru/betterend/world/features/BlueVineFeature.java +++ b/src/main/java/ru/betterend/world/features/BlueVineFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.world.level.WorldGenLevel; import ru.betterend.blocks.basis.EndPlantWithAgeBlock; diff --git a/src/main/java/ru/betterend/world/features/CavePlantFeature.java b/src/main/java/ru/betterend/world/features/CavePlantFeature.java index c3ed7edb..760eafc2 100644 --- a/src/main/java/ru/betterend/world/features/CavePlantFeature.java +++ b/src/main/java/ru/betterend/world/features/CavePlantFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.Block; diff --git a/src/main/java/ru/betterend/world/features/CavePumpkinFeature.java b/src/main/java/ru/betterend/world/features/CavePumpkinFeature.java index 09016953..05d4788a 100644 --- a/src/main/java/ru/betterend/world/features/CavePumpkinFeature.java +++ b/src/main/java/ru/betterend/world/features/CavePumpkinFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.chunk.ChunkGenerator; diff --git a/src/main/java/ru/betterend/world/features/CrashedShipFeature.java b/src/main/java/ru/betterend/world/features/CrashedShipFeature.java index 64a5838e..66d34061 100644 --- a/src/main/java/ru/betterend/world/features/CrashedShipFeature.java +++ b/src/main/java/ru/betterend/world/features/CrashedShipFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.LevelReader; diff --git a/src/main/java/ru/betterend/world/features/DoublePlantFeature.java b/src/main/java/ru/betterend/world/features/DoublePlantFeature.java index 8f1fa22a..9cd9a790 100644 --- a/src/main/java/ru/betterend/world/features/DoublePlantFeature.java +++ b/src/main/java/ru/betterend/world/features/DoublePlantFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.Block; diff --git a/src/main/java/ru/betterend/world/features/EndLilyFeature.java b/src/main/java/ru/betterend/world/features/EndLilyFeature.java index 6172ddf4..4ecbd3cf 100644 --- a/src/main/java/ru/betterend/world/features/EndLilyFeature.java +++ b/src/main/java/ru/betterend/world/features/EndLilyFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.world.level.WorldGenLevel; import ru.betterend.blocks.EndLilySeedBlock; diff --git a/src/main/java/ru/betterend/world/features/EndLotusFeature.java b/src/main/java/ru/betterend/world/features/EndLotusFeature.java index ce462ce3..dc65d14a 100644 --- a/src/main/java/ru/betterend/world/features/EndLotusFeature.java +++ b/src/main/java/ru/betterend/world/features/EndLotusFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.world.level.WorldGenLevel; import ru.betterend.blocks.EndLotusSeedBlock; diff --git a/src/main/java/ru/betterend/world/features/EndLotusLeafFeature.java b/src/main/java/ru/betterend/world/features/EndLotusLeafFeature.java index 9701f584..207a20ae 100644 --- a/src/main/java/ru/betterend/world/features/EndLotusLeafFeature.java +++ b/src/main/java/ru/betterend/world/features/EndLotusLeafFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/ru/betterend/world/features/FilaluxFeature.java b/src/main/java/ru/betterend/world/features/FilaluxFeature.java index 8ad288b0..e30c60de 100644 --- a/src/main/java/ru/betterend/world/features/FilaluxFeature.java +++ b/src/main/java/ru/betterend/world/features/FilaluxFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.WorldGenLevel; diff --git a/src/main/java/ru/betterend/world/features/FullHeightScatterFeature.java b/src/main/java/ru/betterend/world/features/FullHeightScatterFeature.java index 4de057f0..c1a37cda 100644 --- a/src/main/java/ru/betterend/world/features/FullHeightScatterFeature.java +++ b/src/main/java/ru/betterend/world/features/FullHeightScatterFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.world.level.WorldGenLevel; diff --git a/src/main/java/ru/betterend/world/features/GlowPillarFeature.java b/src/main/java/ru/betterend/world/features/GlowPillarFeature.java index 64aea15c..b8a1d6f2 100644 --- a/src/main/java/ru/betterend/world/features/GlowPillarFeature.java +++ b/src/main/java/ru/betterend/world/features/GlowPillarFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.world.level.WorldGenLevel; import ru.betterend.blocks.basis.EndPlantWithAgeBlock; diff --git a/src/main/java/ru/betterend/world/features/HydraluxFeature.java b/src/main/java/ru/betterend/world/features/HydraluxFeature.java index 08f7f35c..73d6b4ec 100644 --- a/src/main/java/ru/betterend/world/features/HydraluxFeature.java +++ b/src/main/java/ru/betterend/world/features/HydraluxFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.world.level.WorldGenLevel; import ru.betterend.blocks.HydraluxSaplingBlock; diff --git a/src/main/java/ru/betterend/world/features/InvertedScatterFeature.java b/src/main/java/ru/betterend/world/features/InvertedScatterFeature.java index 4478357d..6b9b7da8 100644 --- a/src/main/java/ru/betterend/world/features/InvertedScatterFeature.java +++ b/src/main/java/ru/betterend/world/features/InvertedScatterFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.world.level.WorldGenLevel; diff --git a/src/main/java/ru/betterend/world/features/LanceleafFeature.java b/src/main/java/ru/betterend/world/features/LanceleafFeature.java index 6724b0b0..5800a71f 100644 --- a/src/main/java/ru/betterend/world/features/LanceleafFeature.java +++ b/src/main/java/ru/betterend/world/features/LanceleafFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.world.level.WorldGenLevel; import ru.betterend.blocks.basis.EndPlantWithAgeBlock; diff --git a/src/main/java/ru/betterend/world/features/ListFeature.java b/src/main/java/ru/betterend/world/features/ListFeature.java index 15c980c4..899e16d0 100644 --- a/src/main/java/ru/betterend/world/features/ListFeature.java +++ b/src/main/java/ru/betterend/world/features/ListFeature.java @@ -2,6 +2,7 @@ package ru.betterend.world.features; import java.util.List; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.Mirror; diff --git a/src/main/java/ru/betterend/world/features/MengerSpongeFeature.java b/src/main/java/ru/betterend/world/features/MengerSpongeFeature.java index 669c8f7f..2a859ab1 100644 --- a/src/main/java/ru/betterend/world/features/MengerSpongeFeature.java +++ b/src/main/java/ru/betterend/world/features/MengerSpongeFeature.java @@ -2,6 +2,7 @@ package ru.betterend.world.features; import java.util.Random; import java.util.function.Function; + import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.WorldGenLevel; diff --git a/src/main/java/ru/betterend/world/features/NBTStructureFeature.java b/src/main/java/ru/betterend/world/features/NBTStructureFeature.java index 65bb5d14..8ca4639c 100644 --- a/src/main/java/ru/betterend/world/features/NBTStructureFeature.java +++ b/src/main/java/ru/betterend/world/features/NBTStructureFeature.java @@ -3,6 +3,7 @@ package ru.betterend.world.features; import java.io.IOException; import java.io.InputStream; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/ru/betterend/world/features/NeonCactusFeature.java b/src/main/java/ru/betterend/world/features/NeonCactusFeature.java index 9a018747..3bdb8c1d 100644 --- a/src/main/java/ru/betterend/world/features/NeonCactusFeature.java +++ b/src/main/java/ru/betterend/world/features/NeonCactusFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/ru/betterend/world/features/ScatterFeature.java b/src/main/java/ru/betterend/world/features/ScatterFeature.java index 833985ef..fad40d0e 100644 --- a/src/main/java/ru/betterend/world/features/ScatterFeature.java +++ b/src/main/java/ru/betterend/world/features/ScatterFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.world.level.WorldGenLevel; diff --git a/src/main/java/ru/betterend/world/features/SilkMothNestFeature.java b/src/main/java/ru/betterend/world/features/SilkMothNestFeature.java index d8383f44..0fbac2e2 100644 --- a/src/main/java/ru/betterend/world/features/SilkMothNestFeature.java +++ b/src/main/java/ru/betterend/world/features/SilkMothNestFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/ru/betterend/world/features/SingleInvertedScatterFeature.java b/src/main/java/ru/betterend/world/features/SingleInvertedScatterFeature.java index 20d87cec..2f91ca33 100644 --- a/src/main/java/ru/betterend/world/features/SingleInvertedScatterFeature.java +++ b/src/main/java/ru/betterend/world/features/SingleInvertedScatterFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.WorldGenLevel; diff --git a/src/main/java/ru/betterend/world/features/SinglePlantFeature.java b/src/main/java/ru/betterend/world/features/SinglePlantFeature.java index be176c6b..fd58b83f 100644 --- a/src/main/java/ru/betterend/world/features/SinglePlantFeature.java +++ b/src/main/java/ru/betterend/world/features/SinglePlantFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.Block; diff --git a/src/main/java/ru/betterend/world/features/SkyScatterFeature.java b/src/main/java/ru/betterend/world/features/SkyScatterFeature.java index d2e1eaeb..1ca53a94 100644 --- a/src/main/java/ru/betterend/world/features/SkyScatterFeature.java +++ b/src/main/java/ru/betterend/world/features/SkyScatterFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/ru/betterend/world/features/UnderwaterPlantFeature.java b/src/main/java/ru/betterend/world/features/UnderwaterPlantFeature.java index 5b0ce2dc..9ee99007 100644 --- a/src/main/java/ru/betterend/world/features/UnderwaterPlantFeature.java +++ b/src/main/java/ru/betterend/world/features/UnderwaterPlantFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.Block; diff --git a/src/main/java/ru/betterend/world/features/UnderwaterPlantScatter.java b/src/main/java/ru/betterend/world/features/UnderwaterPlantScatter.java index 3c40c55f..c97f15df 100644 --- a/src/main/java/ru/betterend/world/features/UnderwaterPlantScatter.java +++ b/src/main/java/ru/betterend/world/features/UnderwaterPlantScatter.java @@ -1,6 +1,7 @@ package ru.betterend.world.features; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.world.level.WorldGenLevel; diff --git a/src/main/java/ru/betterend/world/features/VineFeature.java b/src/main/java/ru/betterend/world/features/VineFeature.java index 3cca3e78..8e31591a 100644 --- a/src/main/java/ru/betterend/world/features/VineFeature.java +++ b/src/main/java/ru/betterend/world/features/VineFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.Block; diff --git a/src/main/java/ru/betterend/world/features/WallPlantFeature.java b/src/main/java/ru/betterend/world/features/WallPlantFeature.java index 54e61ee0..8d38ffaf 100644 --- a/src/main/java/ru/betterend/world/features/WallPlantFeature.java +++ b/src/main/java/ru/betterend/world/features/WallPlantFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.WorldGenLevel; diff --git a/src/main/java/ru/betterend/world/features/WallPlantOnLogFeature.java b/src/main/java/ru/betterend/world/features/WallPlantOnLogFeature.java index 7a4b2681..7ca5cb1e 100644 --- a/src/main/java/ru/betterend/world/features/WallPlantOnLogFeature.java +++ b/src/main/java/ru/betterend/world/features/WallPlantOnLogFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.tags.BlockTags; diff --git a/src/main/java/ru/betterend/world/features/WallScatterFeature.java b/src/main/java/ru/betterend/world/features/WallScatterFeature.java index 052e9dd5..5563c1ed 100644 --- a/src/main/java/ru/betterend/world/features/WallScatterFeature.java +++ b/src/main/java/ru/betterend/world/features/WallScatterFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/ru/betterend/world/features/bushes/BushFeature.java b/src/main/java/ru/betterend/world/features/bushes/BushFeature.java index e557592e..740f853e 100644 --- a/src/main/java/ru/betterend/world/features/bushes/BushFeature.java +++ b/src/main/java/ru/betterend/world/features/bushes/BushFeature.java @@ -2,6 +2,7 @@ package ru.betterend.world.features.bushes; import java.util.Random; import java.util.function.Function; + import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.WorldGenLevel; diff --git a/src/main/java/ru/betterend/world/features/bushes/BushWithOuterFeature.java b/src/main/java/ru/betterend/world/features/bushes/BushWithOuterFeature.java index 4de7f7ec..79713f00 100644 --- a/src/main/java/ru/betterend/world/features/bushes/BushWithOuterFeature.java +++ b/src/main/java/ru/betterend/world/features/bushes/BushWithOuterFeature.java @@ -2,6 +2,7 @@ package ru.betterend.world.features.bushes; import java.util.Random; import java.util.function.Function; + import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.WorldGenLevel; diff --git a/src/main/java/ru/betterend/world/features/bushes/LargeAmaranitaFeature.java b/src/main/java/ru/betterend/world/features/bushes/LargeAmaranitaFeature.java index 45d6f250..3b5de04e 100644 --- a/src/main/java/ru/betterend/world/features/bushes/LargeAmaranitaFeature.java +++ b/src/main/java/ru/betterend/world/features/bushes/LargeAmaranitaFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features.bushes; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/ru/betterend/world/features/bushes/Lumecorn.java b/src/main/java/ru/betterend/world/features/bushes/Lumecorn.java index 0b1cfa55..5598f080 100644 --- a/src/main/java/ru/betterend/world/features/bushes/Lumecorn.java +++ b/src/main/java/ru/betterend/world/features/bushes/Lumecorn.java @@ -1,6 +1,7 @@ package ru.betterend.world.features.bushes; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/ru/betterend/world/features/bushes/TenaneaBushFeature.java b/src/main/java/ru/betterend/world/features/bushes/TenaneaBushFeature.java index 3e0901d2..a6beb01d 100644 --- a/src/main/java/ru/betterend/world/features/bushes/TenaneaBushFeature.java +++ b/src/main/java/ru/betterend/world/features/bushes/TenaneaBushFeature.java @@ -3,6 +3,9 @@ package ru.betterend.world.features.bushes; import java.util.List; import java.util.Random; import java.util.function.Function; + +import com.google.common.collect.Lists; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; @@ -12,7 +15,6 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; -import com.google.common.collect.Lists; import ru.betterend.blocks.BlockProperties; import ru.betterend.blocks.BlockProperties.TripleShape; import ru.betterend.blocks.basis.FurBlock; diff --git a/src/main/java/ru/betterend/world/features/terrain/BigAuroraCrystalFeature.java b/src/main/java/ru/betterend/world/features/terrain/BigAuroraCrystalFeature.java index c471ab5f..25e2de29 100644 --- a/src/main/java/ru/betterend/world/features/terrain/BigAuroraCrystalFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/BigAuroraCrystalFeature.java @@ -1,7 +1,9 @@ package ru.betterend.world.features.terrain; -import com.mojang.math.Vector3f; import java.util.Random; + +import com.mojang.math.Vector3f; + import net.minecraft.core.BlockPos; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.chunk.ChunkGenerator; diff --git a/src/main/java/ru/betterend/world/features/terrain/EndLakeFeature.java b/src/main/java/ru/betterend/world/features/terrain/EndLakeFeature.java index 788dd936..b2cc2103 100644 --- a/src/main/java/ru/betterend/world/features/terrain/EndLakeFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/EndLakeFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features.terrain; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.world.level.WorldGenLevel; diff --git a/src/main/java/ru/betterend/world/features/terrain/FallenPillarFeature.java b/src/main/java/ru/betterend/world/features/terrain/FallenPillarFeature.java index 0cd32d05..0613e2ac 100644 --- a/src/main/java/ru/betterend/world/features/terrain/FallenPillarFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/FallenPillarFeature.java @@ -1,7 +1,9 @@ package ru.betterend.world.features.terrain; -import com.mojang.math.Vector3f; import java.util.Random; + +import com.mojang.math.Vector3f; + import net.minecraft.core.BlockPos; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.Blocks; diff --git a/src/main/java/ru/betterend/world/features/terrain/FloatingSpireFeature.java b/src/main/java/ru/betterend/world/features/terrain/FloatingSpireFeature.java index 3eefb3d6..878fba9a 100644 --- a/src/main/java/ru/betterend/world/features/terrain/FloatingSpireFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/FloatingSpireFeature.java @@ -2,13 +2,15 @@ package ru.betterend.world.features.terrain; import java.util.List; import java.util.Random; + +import com.google.common.collect.Lists; + import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; -import com.google.common.collect.Lists; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBiomes; import ru.betterend.registry.EndFeatures; diff --git a/src/main/java/ru/betterend/world/features/terrain/GeyserFeature.java b/src/main/java/ru/betterend/world/features/terrain/GeyserFeature.java index d565d233..40655747 100644 --- a/src/main/java/ru/betterend/world/features/terrain/GeyserFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/GeyserFeature.java @@ -1,8 +1,10 @@ package ru.betterend.world.features.terrain; -import com.mojang.math.Vector3f; import java.util.Random; import java.util.function.Function; + +import com.mojang.math.Vector3f; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/ru/betterend/world/features/terrain/IceStarFeature.java b/src/main/java/ru/betterend/world/features/terrain/IceStarFeature.java index d106c5c9..7dc540e8 100644 --- a/src/main/java/ru/betterend/world/features/terrain/IceStarFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/IceStarFeature.java @@ -1,9 +1,11 @@ package ru.betterend.world.features.terrain; -import com.mojang.math.Vector3f; import java.util.ArrayList; import java.util.List; import java.util.Random; + +import com.mojang.math.Vector3f; + import net.minecraft.core.BlockPos; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.state.BlockState; diff --git a/src/main/java/ru/betterend/world/features/terrain/ObsidianBoulderFeature.java b/src/main/java/ru/betterend/world/features/terrain/ObsidianBoulderFeature.java index a47a0eb5..4f10ad23 100644 --- a/src/main/java/ru/betterend/world/features/terrain/ObsidianBoulderFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/ObsidianBoulderFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features.terrain; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.Blocks; diff --git a/src/main/java/ru/betterend/world/features/terrain/ObsidianPillarBasementFeature.java b/src/main/java/ru/betterend/world/features/terrain/ObsidianPillarBasementFeature.java index 923b39e6..66d1bc3d 100644 --- a/src/main/java/ru/betterend/world/features/terrain/ObsidianPillarBasementFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/ObsidianPillarBasementFeature.java @@ -1,7 +1,9 @@ package ru.betterend.world.features.terrain; -import com.mojang.math.Vector3f; import java.util.Random; + +import com.mojang.math.Vector3f; + import net.minecraft.core.BlockPos; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.Blocks; diff --git a/src/main/java/ru/betterend/world/features/terrain/OreLayerFeature.java b/src/main/java/ru/betterend/world/features/terrain/OreLayerFeature.java index 2e8624b3..b1ec8284 100644 --- a/src/main/java/ru/betterend/world/features/terrain/OreLayerFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/OreLayerFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features.terrain; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.Blocks; diff --git a/src/main/java/ru/betterend/world/features/terrain/SingleBlockFeature.java b/src/main/java/ru/betterend/world/features/terrain/SingleBlockFeature.java index a1f1aca3..d35ce510 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SingleBlockFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SingleBlockFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features.terrain; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.Block; diff --git a/src/main/java/ru/betterend/world/features/terrain/SmaragdantCrystalFeature.java b/src/main/java/ru/betterend/world/features/terrain/SmaragdantCrystalFeature.java index 66aac613..ee4be50f 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SmaragdantCrystalFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SmaragdantCrystalFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features.terrain; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.world.level.WorldGenLevel; diff --git a/src/main/java/ru/betterend/world/features/terrain/SpireFeature.java b/src/main/java/ru/betterend/world/features/terrain/SpireFeature.java index 980d436d..bcb3c382 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SpireFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SpireFeature.java @@ -3,6 +3,9 @@ package ru.betterend.world.features.terrain; import java.util.List; import java.util.Random; import java.util.function.Function; + +import com.google.common.collect.Lists; + import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.WorldGenLevel; @@ -12,7 +15,6 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; -import com.google.common.collect.Lists; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBiomes; import ru.betterend.registry.EndFeatures; diff --git a/src/main/java/ru/betterend/world/features/terrain/StalactiteFeature.java b/src/main/java/ru/betterend/world/features/terrain/StalactiteFeature.java index bfc53e91..76522f31 100644 --- a/src/main/java/ru/betterend/world/features/terrain/StalactiteFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/StalactiteFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features.terrain; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.util.Mth; diff --git a/src/main/java/ru/betterend/world/features/terrain/SulphurHillFeature.java b/src/main/java/ru/betterend/world/features/terrain/SulphurHillFeature.java index cab6b03f..639ffb06 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SulphurHillFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SulphurHillFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features.terrain; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/ru/betterend/world/features/terrain/SulphuricCaveFeature.java b/src/main/java/ru/betterend/world/features/terrain/SulphuricCaveFeature.java index e02cf7cb..58e0480f 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SulphuricCaveFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SulphuricCaveFeature.java @@ -2,6 +2,9 @@ package ru.betterend.world.features.terrain; import java.util.Random; import java.util.Set; + +import com.google.common.collect.Sets; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; @@ -13,7 +16,6 @@ import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.Heightmap; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; -import com.google.common.collect.Sets; import ru.betterend.blocks.BlockProperties; import ru.betterend.blocks.SulphurCrystalBlock; import ru.betterend.noise.OpenSimplexNoise; diff --git a/src/main/java/ru/betterend/world/features/terrain/SulphuricLakeFeature.java b/src/main/java/ru/betterend/world/features/terrain/SulphuricLakeFeature.java index 50de79e8..46ac438e 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SulphuricLakeFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SulphuricLakeFeature.java @@ -2,6 +2,9 @@ package ru.betterend.world.features.terrain; import java.util.Random; import java.util.Set; + +import com.google.common.collect.Sets; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; @@ -11,7 +14,6 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Fluids; -import com.google.common.collect.Sets; import ru.betterend.blocks.BlockProperties; import ru.betterend.blocks.SulphurCrystalBlock; import ru.betterend.noise.OpenSimplexNoise; diff --git a/src/main/java/ru/betterend/world/features/terrain/SurfaceVentFeature.java b/src/main/java/ru/betterend/world/features/terrain/SurfaceVentFeature.java index 1ddf691e..84ce8055 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SurfaceVentFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SurfaceVentFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.features.terrain; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.world.level.WorldGenLevel; diff --git a/src/main/java/ru/betterend/world/features/terrain/caves/CaveChunkPopulatorFeature.java b/src/main/java/ru/betterend/world/features/terrain/caves/CaveChunkPopulatorFeature.java index d01a6dad..91aa7714 100644 --- a/src/main/java/ru/betterend/world/features/terrain/caves/CaveChunkPopulatorFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/caves/CaveChunkPopulatorFeature.java @@ -3,6 +3,9 @@ package ru.betterend.world.features.terrain.caves; import java.util.Random; import java.util.Set; import java.util.function.Supplier; + +import com.google.common.collect.Sets; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.world.level.WorldGenLevel; @@ -12,7 +15,6 @@ import net.minecraft.world.level.chunk.ChunkAccess; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.Feature; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; -import com.google.common.collect.Sets; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; import ru.betterend.world.biome.cave.EndCaveBiome; diff --git a/src/main/java/ru/betterend/world/features/terrain/caves/EndCaveFeature.java b/src/main/java/ru/betterend/world/features/terrain/caves/EndCaveFeature.java index 8142416a..0afc7c87 100644 --- a/src/main/java/ru/betterend/world/features/terrain/caves/EndCaveFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/caves/EndCaveFeature.java @@ -81,8 +81,7 @@ public abstract class EndCaveFeature extends DefaultFeature { protected abstract Set generate(WorldGenLevel world, BlockPos center, int radius, Random random); - protected void placeFloor(WorldGenLevel world, EndCaveBiome biome, Set floorPositions, Random random, - BlockState surfaceBlock) { + protected void placeFloor(WorldGenLevel world, EndCaveBiome biome, Set floorPositions, Random random, BlockState surfaceBlock) { float density = biome.getFloorDensity(); floorPositions.forEach((pos) -> { BlocksHelper.setWithoutUpdate(world, pos, surfaceBlock); diff --git a/src/main/java/ru/betterend/world/features/terrain/caves/RoundCaveFeature.java b/src/main/java/ru/betterend/world/features/terrain/caves/RoundCaveFeature.java index bcdffd3e..726d1873 100644 --- a/src/main/java/ru/betterend/world/features/terrain/caves/RoundCaveFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/caves/RoundCaveFeature.java @@ -2,12 +2,14 @@ package ru.betterend.world.features.terrain.caves; import java.util.Random; import java.util.Set; + +import com.google.common.collect.Sets; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Material; -import com.google.common.collect.Sets; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; diff --git a/src/main/java/ru/betterend/world/features/terrain/caves/TunelCaveFeature.java b/src/main/java/ru/betterend/world/features/terrain/caves/TunelCaveFeature.java index 7a3db063..c907b07d 100644 --- a/src/main/java/ru/betterend/world/features/terrain/caves/TunelCaveFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/caves/TunelCaveFeature.java @@ -1,10 +1,12 @@ package ru.betterend.world.features.terrain.caves; -import com.mojang.math.Vector3f; import java.util.List; import java.util.Random; import java.util.Set; import java.util.function.Function; + +import com.mojang.math.Vector3f; + import net.minecraft.core.BlockPos; import net.minecraft.util.Mth; import net.minecraft.world.level.WorldGenLevel; diff --git a/src/main/java/ru/betterend/world/features/trees/DragonTreeFeature.java b/src/main/java/ru/betterend/world/features/trees/DragonTreeFeature.java index b9bf59a0..47f71a2b 100644 --- a/src/main/java/ru/betterend/world/features/trees/DragonTreeFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/DragonTreeFeature.java @@ -3,6 +3,10 @@ package ru.betterend.world.features.trees; import java.util.List; import java.util.Random; import java.util.function.Function; + +import com.google.common.collect.Lists; +import com.mojang.math.Vector3f; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; @@ -12,8 +16,6 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; -import com.google.common.collect.Lists; -import com.mojang.math.Vector3f; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; diff --git a/src/main/java/ru/betterend/world/features/trees/GiganticAmaranitaFeature.java b/src/main/java/ru/betterend/world/features/trees/GiganticAmaranitaFeature.java index af633bfd..1f89af04 100644 --- a/src/main/java/ru/betterend/world/features/trees/GiganticAmaranitaFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/GiganticAmaranitaFeature.java @@ -1,9 +1,11 @@ package ru.betterend.world.features.trees; -import com.mojang.math.Vector3f; import java.util.List; import java.util.Random; import java.util.function.Function; + +import com.mojang.math.Vector3f; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/ru/betterend/world/features/trees/HelixTreeFeature.java b/src/main/java/ru/betterend/world/features/trees/HelixTreeFeature.java index 2b294fa0..75ac74f7 100644 --- a/src/main/java/ru/betterend/world/features/trees/HelixTreeFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/HelixTreeFeature.java @@ -1,10 +1,12 @@ package ru.betterend.world.features.trees; -import com.mojang.math.Vector3f; import java.util.ArrayList; import java.util.List; import java.util.Random; import java.util.function.Function; + +import com.mojang.math.Vector3f; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.util.Mth; diff --git a/src/main/java/ru/betterend/world/features/trees/JellyshroomFeature.java b/src/main/java/ru/betterend/world/features/trees/JellyshroomFeature.java index d553bc59..7ffbc9a3 100644 --- a/src/main/java/ru/betterend/world/features/trees/JellyshroomFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/JellyshroomFeature.java @@ -3,6 +3,10 @@ package ru.betterend.world.features.trees; import java.util.List; import java.util.Random; import java.util.function.Function; + +import com.google.common.collect.Lists; +import com.mojang.math.Vector3f; + import net.minecraft.core.BlockPos; import net.minecraft.util.Mth; import net.minecraft.world.level.WorldGenLevel; @@ -10,8 +14,6 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; -import com.google.common.collect.Lists; -import com.mojang.math.Vector3f; import ru.betterend.blocks.JellyshroomCapBlock; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; diff --git a/src/main/java/ru/betterend/world/features/trees/LacugroveFeature.java b/src/main/java/ru/betterend/world/features/trees/LacugroveFeature.java index 2c235cd0..c35edc9d 100644 --- a/src/main/java/ru/betterend/world/features/trees/LacugroveFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/LacugroveFeature.java @@ -1,9 +1,11 @@ package ru.betterend.world.features.trees; -import com.mojang.math.Vector3f; import java.util.List; import java.util.Random; import java.util.function.Function; + +import com.mojang.math.Vector3f; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/ru/betterend/world/features/trees/LucerniaFeature.java b/src/main/java/ru/betterend/world/features/trees/LucerniaFeature.java index 4ad56fb5..45c6e34f 100644 --- a/src/main/java/ru/betterend/world/features/trees/LucerniaFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/LucerniaFeature.java @@ -3,6 +3,10 @@ package ru.betterend.world.features.trees; import java.util.List; import java.util.Random; import java.util.function.Function; + +import com.google.common.collect.Lists; +import com.mojang.math.Vector3f; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; @@ -12,8 +16,6 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; -import com.google.common.collect.Lists; -import com.mojang.math.Vector3f; import ru.betterend.blocks.BlockProperties; import ru.betterend.blocks.BlockProperties.TripleShape; import ru.betterend.blocks.basis.FurBlock; diff --git a/src/main/java/ru/betterend/world/features/trees/MossyGlowshroomFeature.java b/src/main/java/ru/betterend/world/features/trees/MossyGlowshroomFeature.java index d51eaac2..0208167d 100644 --- a/src/main/java/ru/betterend/world/features/trees/MossyGlowshroomFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/MossyGlowshroomFeature.java @@ -1,9 +1,11 @@ package ru.betterend.world.features.trees; -import com.mojang.math.Vector3f; import java.util.List; import java.util.Random; import java.util.function.Function; + +import com.mojang.math.Vector3f; + import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.WorldGenLevel; diff --git a/src/main/java/ru/betterend/world/features/trees/PythadendronTreeFeature.java b/src/main/java/ru/betterend/world/features/trees/PythadendronTreeFeature.java index 17254bee..1cc92aa8 100644 --- a/src/main/java/ru/betterend/world/features/trees/PythadendronTreeFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/PythadendronTreeFeature.java @@ -1,9 +1,11 @@ package ru.betterend.world.features.trees; -import com.mojang.math.Vector3f; import java.util.List; import java.util.Random; import java.util.function.Function; + +import com.mojang.math.Vector3f; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/ru/betterend/world/features/trees/TenaneaFeature.java b/src/main/java/ru/betterend/world/features/trees/TenaneaFeature.java index 6a9164a2..0ef7a3e5 100644 --- a/src/main/java/ru/betterend/world/features/trees/TenaneaFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/TenaneaFeature.java @@ -3,6 +3,10 @@ package ru.betterend.world.features.trees; import java.util.List; import java.util.Random; import java.util.function.Function; + +import com.google.common.collect.Lists; +import com.mojang.math.Vector3f; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; @@ -12,8 +16,6 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; -import com.google.common.collect.Lists; -import com.mojang.math.Vector3f; import ru.betterend.blocks.BlockProperties; import ru.betterend.blocks.BlockProperties.TripleShape; import ru.betterend.blocks.basis.FurBlock; diff --git a/src/main/java/ru/betterend/world/features/trees/UmbrellaTreeFeature.java b/src/main/java/ru/betterend/world/features/trees/UmbrellaTreeFeature.java index b2ab2b2a..455ed41f 100644 --- a/src/main/java/ru/betterend/world/features/trees/UmbrellaTreeFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/UmbrellaTreeFeature.java @@ -3,6 +3,10 @@ package ru.betterend.world.features.trees; import java.util.List; import java.util.Random; import java.util.function.Function; + +import com.google.common.collect.Lists; +import com.mojang.math.Vector3f; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; @@ -12,8 +16,6 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; -import com.google.common.collect.Lists; -import com.mojang.math.Vector3f; import ru.betterend.blocks.UmbrellaTreeClusterBlock; import ru.betterend.blocks.UmbrellaTreeMembraneBlock; import ru.betterend.registry.EndBlocks; diff --git a/src/main/java/ru/betterend/world/generator/BetterEndBiomeSource.java b/src/main/java/ru/betterend/world/generator/BetterEndBiomeSource.java index e5bd64d9..6c85f2ab 100644 --- a/src/main/java/ru/betterend/world/generator/BetterEndBiomeSource.java +++ b/src/main/java/ru/betterend/world/generator/BetterEndBiomeSource.java @@ -1,6 +1,11 @@ package ru.betterend.world.generator; import java.util.List; + +import com.google.common.collect.Lists; +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; + import net.minecraft.core.Registry; import net.minecraft.resources.RegistryLookupCodec; import net.minecraft.world.level.biome.Biome; @@ -9,9 +14,6 @@ import net.minecraft.world.level.biome.Biomes; import net.minecraft.world.level.biome.TheEndBiomeSource; import net.minecraft.world.level.levelgen.WorldgenRandom; import net.minecraft.world.level.levelgen.synth.SimplexNoise; -import com.google.common.collect.Lists; -import com.mojang.serialization.Codec; -import com.mojang.serialization.codecs.RecordCodecBuilder; import ru.betterend.BetterEnd; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBiomes; diff --git a/src/main/java/ru/betterend/world/generator/BiomeMap.java b/src/main/java/ru/betterend/world/generator/BiomeMap.java index 5a12b27b..1aa8c3c8 100644 --- a/src/main/java/ru/betterend/world/generator/BiomeMap.java +++ b/src/main/java/ru/betterend/world/generator/BiomeMap.java @@ -1,9 +1,11 @@ package ru.betterend.world.generator; import java.util.Map; + +import com.google.common.collect.Maps; + import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.levelgen.WorldgenRandom; -import com.google.common.collect.Maps; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.util.MHelper; import ru.betterend.world.biome.EndBiome; diff --git a/src/main/java/ru/betterend/world/generator/BiomePicker.java b/src/main/java/ru/betterend/world/generator/BiomePicker.java index b237a1e5..8239777f 100644 --- a/src/main/java/ru/betterend/world/generator/BiomePicker.java +++ b/src/main/java/ru/betterend/world/generator/BiomePicker.java @@ -3,9 +3,11 @@ package ru.betterend.world.generator; import java.util.List; import java.util.Random; import java.util.Set; -import net.minecraft.resources.ResourceLocation; + import com.google.common.collect.Lists; import com.google.common.collect.Sets; + +import net.minecraft.resources.ResourceLocation; import ru.betterend.world.biome.EndBiome; public class BiomePicker { diff --git a/src/main/java/ru/betterend/world/generator/IslandLayer.java b/src/main/java/ru/betterend/world/generator/IslandLayer.java index 7fcc6919..fc98a264 100644 --- a/src/main/java/ru/betterend/world/generator/IslandLayer.java +++ b/src/main/java/ru/betterend/world/generator/IslandLayer.java @@ -4,9 +4,11 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Random; -import net.minecraft.core.BlockPos; + import com.google.common.collect.Lists; import com.google.common.collect.Maps; + +import net.minecraft.core.BlockPos; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.util.MHelper; import ru.betterend.util.sdf.SDF; diff --git a/src/main/java/ru/betterend/world/generator/TerrainGenerator.java b/src/main/java/ru/betterend/world/generator/TerrainGenerator.java index 6b2818d8..b4ce4e53 100644 --- a/src/main/java/ru/betterend/world/generator/TerrainGenerator.java +++ b/src/main/java/ru/betterend/world/generator/TerrainGenerator.java @@ -4,10 +4,12 @@ import java.awt.Point; import java.util.List; import java.util.Random; import java.util.concurrent.locks.ReentrantLock; + +import com.google.common.collect.Lists; + import net.minecraft.util.Mth; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.biome.BiomeSource; -import com.google.common.collect.Lists; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.util.MHelper; diff --git a/src/main/java/ru/betterend/world/structures/StructureWorld.java b/src/main/java/ru/betterend/world/structures/StructureWorld.java index 9374441e..5ae3f4f3 100644 --- a/src/main/java/ru/betterend/world/structures/StructureWorld.java +++ b/src/main/java/ru/betterend/world/structures/StructureWorld.java @@ -3,6 +3,7 @@ package ru.betterend.world.structures; import java.util.Map; import com.google.common.collect.Maps; + import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; diff --git a/src/main/java/ru/betterend/world/structures/features/FeatureBaseStructure.java b/src/main/java/ru/betterend/world/structures/features/FeatureBaseStructure.java index cf36a3ac..a3986e2f 100644 --- a/src/main/java/ru/betterend/world/structures/features/FeatureBaseStructure.java +++ b/src/main/java/ru/betterend/world/structures/features/FeatureBaseStructure.java @@ -1,6 +1,7 @@ package ru.betterend.world.structures.features; import java.util.Random; + import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.biome.BiomeSource; diff --git a/src/main/java/ru/betterend/world/structures/features/GiantIceStarStructure.java b/src/main/java/ru/betterend/world/structures/features/GiantIceStarStructure.java index 456c8183..d844fa06 100644 --- a/src/main/java/ru/betterend/world/structures/features/GiantIceStarStructure.java +++ b/src/main/java/ru/betterend/world/structures/features/GiantIceStarStructure.java @@ -1,9 +1,11 @@ package ru.betterend.world.structures.features; -import com.mojang.math.Vector3f; import java.util.ArrayList; import java.util.List; import java.util.Random; + +import com.mojang.math.Vector3f; + import net.minecraft.core.BlockPos; import net.minecraft.core.RegistryAccess; import net.minecraft.world.level.biome.Biome; diff --git a/src/main/java/ru/betterend/world/structures/features/GiantMossyGlowshroomStructure.java b/src/main/java/ru/betterend/world/structures/features/GiantMossyGlowshroomStructure.java index 3def5bb3..6cf3b28a 100644 --- a/src/main/java/ru/betterend/world/structures/features/GiantMossyGlowshroomStructure.java +++ b/src/main/java/ru/betterend/world/structures/features/GiantMossyGlowshroomStructure.java @@ -1,8 +1,10 @@ package ru.betterend.world.structures.features; -import com.mojang.math.Vector3f; import java.util.List; import java.util.Random; + +import com.mojang.math.Vector3f; + import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import ru.betterend.blocks.MossyGlowshroomCapBlock; diff --git a/src/main/java/ru/betterend/world/structures/features/SDFStructureFeature.java b/src/main/java/ru/betterend/world/structures/features/SDFStructureFeature.java index 299b8477..75acf8e9 100644 --- a/src/main/java/ru/betterend/world/structures/features/SDFStructureFeature.java +++ b/src/main/java/ru/betterend/world/structures/features/SDFStructureFeature.java @@ -1,6 +1,7 @@ package ru.betterend.world.structures.features; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.RegistryAccess; import net.minecraft.world.level.biome.Biome; diff --git a/src/main/java/ru/betterend/world/structures/piece/CavePiece.java b/src/main/java/ru/betterend/world/structures/piece/CavePiece.java index fef5d2f0..8bd1755d 100644 --- a/src/main/java/ru/betterend/world/structures/piece/CavePiece.java +++ b/src/main/java/ru/betterend/world/structures/piece/CavePiece.java @@ -1,6 +1,7 @@ package ru.betterend.world.structures.piece; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/ru/betterend/world/structures/piece/CrystalMountainPiece.java b/src/main/java/ru/betterend/world/structures/piece/CrystalMountainPiece.java index e85ca44d..946ba467 100644 --- a/src/main/java/ru/betterend/world/structures/piece/CrystalMountainPiece.java +++ b/src/main/java/ru/betterend/world/structures/piece/CrystalMountainPiece.java @@ -1,6 +1,7 @@ package ru.betterend.world.structures.piece; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/ru/betterend/world/structures/piece/LakePiece.java b/src/main/java/ru/betterend/world/structures/piece/LakePiece.java index 7200068a..eee3fdf1 100644 --- a/src/main/java/ru/betterend/world/structures/piece/LakePiece.java +++ b/src/main/java/ru/betterend/world/structures/piece/LakePiece.java @@ -4,6 +4,7 @@ import java.util.Map; import java.util.Random; import com.google.common.collect.Maps; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/ru/betterend/world/structures/piece/MountainPiece.java b/src/main/java/ru/betterend/world/structures/piece/MountainPiece.java index 95f10b32..31c30b58 100644 --- a/src/main/java/ru/betterend/world/structures/piece/MountainPiece.java +++ b/src/main/java/ru/betterend/world/structures/piece/MountainPiece.java @@ -4,6 +4,7 @@ import java.util.Map; import java.util.Random; import com.google.common.collect.Maps; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/ru/betterend/world/structures/piece/NBTPiece.java b/src/main/java/ru/betterend/world/structures/piece/NBTPiece.java index 63fa5bd7..9cf35d99 100644 --- a/src/main/java/ru/betterend/world/structures/piece/NBTPiece.java +++ b/src/main/java/ru/betterend/world/structures/piece/NBTPiece.java @@ -1,6 +1,7 @@ package ru.betterend.world.structures.piece; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtUtils; diff --git a/src/main/java/ru/betterend/world/structures/piece/PaintedMountainPiece.java b/src/main/java/ru/betterend/world/structures/piece/PaintedMountainPiece.java index 915c9126..cbc18a5e 100644 --- a/src/main/java/ru/betterend/world/structures/piece/PaintedMountainPiece.java +++ b/src/main/java/ru/betterend/world/structures/piece/PaintedMountainPiece.java @@ -1,6 +1,7 @@ package ru.betterend.world.structures.piece; import java.util.Random; + import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/ru/betterend/world/structures/piece/VoxelPiece.java b/src/main/java/ru/betterend/world/structures/piece/VoxelPiece.java index 07276d85..1837d3eb 100644 --- a/src/main/java/ru/betterend/world/structures/piece/VoxelPiece.java +++ b/src/main/java/ru/betterend/world/structures/piece/VoxelPiece.java @@ -2,6 +2,7 @@ package ru.betterend.world.structures.piece; import java.util.Random; import java.util.function.Consumer; + import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.ChunkPos; diff --git a/src/main/java/ru/betterend/world/surface/DoubleBlockSurfaceBuilder.java b/src/main/java/ru/betterend/world/surface/DoubleBlockSurfaceBuilder.java index b69dc71a..4e63a4f2 100644 --- a/src/main/java/ru/betterend/world/surface/DoubleBlockSurfaceBuilder.java +++ b/src/main/java/ru/betterend/world/surface/DoubleBlockSurfaceBuilder.java @@ -1,6 +1,7 @@ package ru.betterend.world.surface; import java.util.Random; + import net.minecraft.core.Registry; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.block.Block; diff --git a/src/main/java/ru/betterend/world/surface/SulphuricSurfaceBuilder.java b/src/main/java/ru/betterend/world/surface/SulphuricSurfaceBuilder.java index e9317b48..5d020a83 100644 --- a/src/main/java/ru/betterend/world/surface/SulphuricSurfaceBuilder.java +++ b/src/main/java/ru/betterend/world/surface/SulphuricSurfaceBuilder.java @@ -1,6 +1,7 @@ package ru.betterend.world.surface; import java.util.Random; + import net.minecraft.core.Registry; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.block.state.BlockState; diff --git a/src/main/resources/assets/betterend/lang/en_us.json b/src/main/resources/assets/betterend/lang/en_us.json index 2d63c8a3..140e8f20 100644 --- a/src/main/resources/assets/betterend/lang/en_us.json +++ b/src/main/resources/assets/betterend/lang/en_us.json @@ -316,6 +316,7 @@ "block.betterend.quartz_lantern": "Quartz Lantern", "item.betterend.bucket_end_fish": "Bucket of End Fish", + "item.betterend.bucket_cubozoa": "Bucket of Cubozoa", "item.betterend.end_fish_cooked": "Cooked End Fish", "item.betterend.end_fish_raw": "End Fish", diff --git a/src/main/resources/assets/betterend/lang/ru_ru.json b/src/main/resources/assets/betterend/lang/ru_ru.json index d23383e6..ae48d1e6 100644 --- a/src/main/resources/assets/betterend/lang/ru_ru.json +++ b/src/main/resources/assets/betterend/lang/ru_ru.json @@ -318,6 +318,7 @@ "block.betterend.quartz_lantern": "Кварцевый фонарь", "item.betterend.bucket_end_fish": "Ведро с рыбой Края", + "item.betterend.bucket_cubozoa": "Ведро с кубомедузой", "item.betterend.end_fish_cooked": "Приготовленная рыба Края", "item.betterend.end_fish_raw": "Рыба Края", diff --git a/src/main/resources/assets/betterend/textures/item/bucket_cubozoa.png b/src/main/resources/assets/betterend/textures/item/bucket_cubozoa.png new file mode 100644 index 0000000000000000000000000000000000000000..6b1e88c42bcf7b84deacfb1570d7868c63d65b05 GIT binary patch literal 1633 zcmV-n2A=teP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3yslIti8M*p*lSpoutU^$pa)!o4?e?A^2iR13- z&Rn}~a5hPLd-#<G1ZeLTOv|kGT zlA|RjzR2x%W3JRr&o2W;wCLySDR-@v&|00VOU@%xUadu)OBp>V9!RAf(>!j$htZdD zN8ABR%pg`k^T3@IMKZ{CBS(c2HL9b{lo6sc)d*T+G8lAOuwtUg06<7QZfZtsv_*l4 zu^H4X#Ae4r!*3k^G6i@p1Wjy)48P|6R(HZr?ro^GUb@(QVdn~QnO@U0>EKja8UJW@vaWS2SnEIH(uQ!&LBZ2#hms1iynsZvELRad$C zDmBztQ$wva+g#)3o3zkkOPkuF`bv#1Et>y9St@G8&D(ea0+!|Am}O?ZnW7w$bHLAvHKM_^A$PO(fti_s-s)v z-nrdSD`|YA*a4{T!k$xY8xA%o)R0U_{X6O7R{dWC_l6p~-Z94!n&@VZ`4(K$xw$ys zl4~yKH55a$x?q;NA37};_cXa#|D!@iS|P{8kuoZ-cO8B% zc;X>VRJ^ZCBjzyWY7R)uPa|p0C`J-Sj`@}|>g_c8-m2LVe=L!}?ikjTS76O0#ASxP z-p*vis98oY^jpnE`>BO6mpv?LbeM{s5jE@Z1y&`V9*LjBQa5ov!t-UtBpJW!{4w7u z>@{q}kyGcUBZVb|X8wYr6yr4A&x?F6(YqOH%~Wx)g&8V-xW!s2^HkIN zia9LHQ&231dCxVrsCVAOa7qQ*QqrAWt@m2%&T z%=D@LgLe}R?cRJNojzw1eL&;j%sNcc;3P1A2%3Bw^|u5k<)zs*gvdH_6)na$0XA9Ex1HPB5lZXe+-QM<_1UrEq7A@!$+>o@p+>iw=&pHBSD z5dIYv{JU2F0f1??Xd#zUb^rhX24YJ`L;x%RegJ_vqK}pU000SaNLh0L04^f{04^f| zc%?sf00007bV*G`2jv731~oG4ruM-A00CJ^L_t(I%dL{JPQp+WhQDHwAjnXNi9{0y zw9!SDs}oaSfz1bSGI7uca5kNM0EUh{0~2B4E_IPK>C95nffzbatOnaHOGZm=#s&>y_xr}~L1|VKWd`1y(i`Sn-RYArB z$8m677u&XBv1xL*+oj!Z)9?55O$6w4IyjC4fa|&dgkgy9`?-@V`